More voice changes:

* Additional kiss voices
* Mirror interaction lines (not yet implemented)
* Intonation changes for two existing lines
* Fix randomization of some voices (grunts and whatnot)
This commit is contained in:
Mari the Deer 2023-01-19 09:47:00 +01:00
commit ae67e4691c
44 changed files with 159 additions and 59 deletions

View file

@ -476,6 +476,32 @@ SWWM_SUBS_DEFAULT_MRTOUCH4 = "Boop.";
SWWM_SUBS_DEFAULT_NMRFLICK = "2";
SWWM_SUBS_DEFAULT_MRFLICK1 = "Click.";
SWWM_SUBS_DEFAULT_MRFLICK2 = "Clack.";
// Mirror interaction
SWWM_SUBS_DEFAULT_NMIRROR = "10";
SWWM_SUBS_DEFAULT_MIRROR1 = "Who's that handsome robot? Oh! It's me~";
SWWM_SUBS_DEFAULT_MIRROR2 = "Looking good...";
SWWM_SUBS_DEFAULT_MIRROR3 = "Does this chassis make my ass look fat?";
SWWM_SUBS_DEFAULT_MIRROR4 = "It's me, Demo-chan!";
SWWM_SUBS_DEFAULT_MIRROR5 = "I think I look cute today.";
SWWM_SUBS_DEFAULT_MIRROR6 = "Hmmm... My body could use some nice polishing.";
SWWM_SUBS_DEFAULT_MIRROR7 = "That's a mirror.";
SWWM_SUBS_DEFAULT_MIRROR8 = "Nice and reflective, just how I like it.";
SWWM_SUBS_DEFAULT_MIRROR9 = "I should really try not to break this.";
SWWM_SUBS_DEFAULT_MIRROR10 = "I kinda like looking at myself... Not that it's wrong or anything.";
// Kiss hit
SWWM_SUBS_DEFAULT_NSMOOCH = "3";
SWWM_SUBS_DEFAULT_SMOOCH1 = "Smoochies~";
SWWM_SUBS_DEFAULT_SMOOCH2 = "$$SWWM_SUBS_DEFAULT_SMOOCH1"; // all subtitles are the same here, only the sound changes
SWWM_SUBS_DEFAULT_SMOOCH3 = "$$SWWM_SUBS_DEFAULT_SMOOCH1";
// Randomization ranges for other voices
SWWM_DEFAULT_NGRUNT = "5";
SWWM_DEFAULT_NUSEGRUNT = "4";
SWWM_DEFAULT_NLOPAIN = "2";
SWWM_DEFAULT_NPAIN = "3";
SWWM_DEFAULT_NHIPAIN = "3";
SWWM_DEFAULT_NDEATH = "8";
SWWM_DEFAULT_NJUMP = "5";
SWWM_DEFAULT_NKISS = "10";
//// LEGACY VOICE - Fallout 4 JP Sole Survivor
SWWM_VOICENAME_LEGACY = "Classic";
// new weapon received
@ -731,3 +757,12 @@ SWWM_SUBS_LEGACY_KORAXMASTERS6 = "None of your damn business.";
SWWM_SUBS_LEGACY_KORAXMASTERS7 = "Yes, I am.";
SWWM_SUBS_LEGACY_KORAXMASTERS8 = "That's none of your business.";
SWWM_SUBS_LEGACY_KORAXMASTERS9 = "Just shut up already...";
// Randomization ranges for other voices
SWWM_LEGACY_NGRUNT = "6";
SWWM_LEGACY_NUSEGRUNT = "1"; // technically zero
SWWM_LEGACY_NLOPAIN = "5";
SWWM_LEGACY_NPAIN = "5";
SWWM_LEGACY_NHIPAIN = "5";
SWWM_LEGACY_NDEATH = "5";
SWWM_LEGACY_NJUMP = "1"; // technically zero
SWWM_LEGACY_NKISS = "1";

View file

@ -418,6 +418,19 @@ SWWM_SUBS_DEFAULT_MRTOUCH4 = "Bup.";
// Mortal Rifle finger flick
SWWM_SUBS_DEFAULT_MRFLICK1 = "Clic.";
SWWM_SUBS_DEFAULT_MRFLICK2 = "Clac.";
// Mirror interaction
SWWM_SUBS_DEFAULT_MIRROR1 = "¿Quien es ese robot tan guapo? ¡Oh! Soy yo~";
SWWM_SUBS_DEFAULT_MIRROR2 = "Que vien me veo...";
SWWM_SUBS_DEFAULT_MIRROR3 = "¿Este chasis me hace el culo gordo?";
SWWM_SUBS_DEFAULT_MIRROR4 = "Soy yo, ¡Demo-chan!";
SWWM_SUBS_DEFAULT_MIRROR5 = "Me veo bien bonita hoy.";
SWWM_SUBS_DEFAULT_MIRROR6 = "Hmmm... A mi cuerpo le vendría bien un buen abrillantado.";
SWWM_SUBS_DEFAULT_MIRROR7 = "Es un espejo.";
SWWM_SUBS_DEFAULT_MIRROR8 = "Todo bien reflejado, tal como me gusta.";
SWWM_SUBS_DEFAULT_MIRROR9 = "En serio debería intentar no romper esto.";
SWWM_SUBS_DEFAULT_MIRROR10 = "La verdad es que me gusta mirarme... Tampoco es que sea algo malo o tal.";
// Kiss hit
SWWM_SUBS_DEFAULT_SMOOCH1 = "Besitos~";
//// LEGACY VOICE - Fallout 4 JP Sole Survivor
// voice name
SWWM_VOICENAME_LEGACY = "Clásico";

View file

@ -1,3 +1,3 @@
[default]
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r731 \cu(Wed 18 Jan 23:31:28 CET 2023)\c-";
SWWM_SHORTVER="\cw1.3pre r731 \cu(2023-01-18 23:31:28)\c-";
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r732 \cu(Thu 19 Jan 10:11:24 CET 2023)\c-";
SWWM_SHORTVER="\cw1.3pre r732 \cu(2023-01-19 10:11:24)\c-";

View file

@ -13,6 +13,10 @@ voice/default/grunt2 = "sounds/voice/default/demogrunt2.ogg"
voice/default/grunt3 = "sounds/voice/default/demogrunt3.ogg"
voice/default/grunt4 = "sounds/voice/default/demogrunt4.ogg"
voice/default/grunt5 = "sounds/voice/default/demogrunt5.ogg"
voice/default/usegrunt1 = "sounds/voice/default/demousegrunt1.ogg"
voice/default/usegrunt2 = "sounds/voice/default/demousegrunt2.ogg"
voice/default/usegrunt3 = "sounds/voice/default/demousegrunt3.ogg"
voice/default/usegrunt4 = "sounds/voice/default/demousegrunt4.ogg"
voice/default/hipain1 = "sounds/voice/default/demohipain1.ogg"
voice/default/hipain2 = "sounds/voice/default/demohipain2.ogg"
voice/default/hipain3 = "sounds/voice/default/demohipain3.ogg"
@ -26,13 +30,16 @@ voice/default/jump2 = "sounds/voice/default/demojump2.ogg"
voice/default/jump3 = "sounds/voice/default/demojump3.ogg"
voice/default/jump4 = "sounds/voice/default/demojump4.ogg"
voice/default/jump5 = "sounds/voice/default/demojump5.ogg"
$random voice/default/grunt { voice/default/grunt1 voice/default/grunt2 voice/default/grunt3 voice/default/grunt4 voice/default/grunt5 }
$random voice/default/lopain { voice/default/lopain1 voice/default/lopain2 }
$random voice/default/pain { voice/default/pain1 voice/default/pain2 voice/default/pain3 }
$random voice/default/hipain { voice/default/hipain1 voice/default/hipain2 voice/default/hipain3 voice/default/hipain2 voice/default/hipain1 }
$random voice/default/death { voice/default/death1 voice/default/death2 voice/default/death3 voice/default/death4 voice/default/death5 voice/default/death6 voice/default/death7 voice/default/death8 }
$random voice/default/jump { voice/default/jump1 voice/default/jump2 voice/default/jump3 voice/default/jump4 voice/default/jump5 }
voice/default/kiss1 = "sounds/voice/default/demokiss1.ogg"
voice/default/kiss2 = "sounds/voice/default/demokiss2.ogg"
voice/default/kiss3 = "sounds/voice/default/demokiss3.ogg"
voice/default/kiss4 = "sounds/voice/default/demokiss4.ogg"
voice/default/kiss5 = "sounds/voice/default/demokiss5.ogg"
voice/default/kiss6 = "sounds/voice/default/demokiss6.ogg"
voice/default/kiss7 = "sounds/voice/default/demokiss7.ogg"
voice/default/kiss8 = "sounds/voice/default/demokiss8.ogg"
voice/default/kiss9 = "sounds/voice/default/demokiss9.ogg"
voice/default/kiss10 = "sounds/voice/default/demokiss10.ogg"
voice/default/fightstart1 = "sounds/voice/default/va/demofightstart1.ogg"
voice/default/fightstart2 = "sounds/voice/default/va/demofightstart2.ogg"
@ -311,11 +318,6 @@ voice/default/usefail6 = "sounds/voice/default/va/demousefail6.ogg"
voice/default/usefail7 = "sounds/voice/default/va/demousefail7.ogg"
voice/default/usefail8 = "sounds/voice/default/va/demousefail8.ogg"
voice/default/usefail9 = "sounds/voice/default/va/demousefail9.ogg"
voice/default/usegrunt1 = "sounds/voice/default/va/demousegrunt1.ogg"
voice/default/usegrunt2 = "sounds/voice/default/va/demousegrunt2.ogg"
voice/default/usegrunt3 = "sounds/voice/default/va/demousegrunt3.ogg"
voice/default/usegrunt4 = "sounds/voice/default/va/demousegrunt4.ogg"
$random voice/default/usegrunt { voice/default/usegrunt1 voice/default/usegrunt2 voice/default/usegrunt3 voice/default/usegrunt4 }
voice/default/cubeget = "sounds/voice/default/va/democubeget.ogg"
voice/default/akariget = "sounds/voice/default/va/demoakariget.ogg"
voice/default/signalsget = "sounds/voice/default/va/demosignalsget.ogg"
@ -427,3 +429,16 @@ voice/default/mrtouch3 = "sounds/voice/default/va/demomrtouch3.ogg"
voice/default/mrtouch4 = "sounds/voice/default/va/demomrtouch4.ogg"
voice/default/mrflick1 = "sounds/voice/default/va/demomrflick1.ogg"
voice/default/mrflick2 = "sounds/voice/default/va/demomrflick2.ogg"
voice/default/mirror1 = "sounds/voice/default/va/demomirror1.ogg"
voice/default/mirror2 = "sounds/voice/default/va/demomirror2.ogg"
voice/default/mirror3 = "sounds/voice/default/va/demomirror3.ogg"
voice/default/mirror4 = "sounds/voice/default/va/demomirror4.ogg"
voice/default/mirror5 = "sounds/voice/default/va/demomirror5.ogg"
voice/default/mirror6 = "sounds/voice/default/va/demomirror6.ogg"
voice/default/mirror7 = "sounds/voice/default/va/demomirror7.ogg"
voice/default/mirror8 = "sounds/voice/default/va/demomirror8.ogg"
voice/default/mirror9 = "sounds/voice/default/va/demomirror9.ogg"
voice/default/mirror10 = "sounds/voice/default/va/demomirror10.ogg"
voice/default/smooch1 = "sounds/voice/default/va/demosmooch1.ogg"
voice/default/smooch2 = "sounds/voice/default/va/demosmooch2.ogg"
voice/default/smooch3 = "sounds/voice/default/va/demosmooch3.ogg"

View file

@ -11,6 +11,7 @@ voice/legacy/grunt3 = "sounds/voice/legacy/demogrunt3.ogg"
voice/legacy/grunt4 = "sounds/voice/legacy/demogrunt4.ogg"
voice/legacy/grunt5 = "sounds/voice/legacy/demogrunt5.ogg"
voice/legacy/grunt6 = "sounds/voice/legacy/demogrunt6.ogg"
voice/legacy/usegrunt1 = DSEMPTY // no sounds available
voice/legacy/hipain1 = "sounds/voice/legacy/demohipain1.ogg"
voice/legacy/hipain2 = "sounds/voice/legacy/demohipain2.ogg"
voice/legacy/hipain3 = "sounds/voice/legacy/demohipain3.ogg"
@ -27,13 +28,9 @@ voice/legacy/pain3 = "sounds/voice/legacy/demopain3.ogg"
voice/legacy/pain4 = "sounds/voice/legacy/demopain4.ogg"
voice/legacy/pain5 = "sounds/voice/legacy/demopain5.ogg"
voice/legacy/pain6 = "sounds/voice/legacy/demopain6.ogg"
$random voice/legacy/grunt { voice/legacy/grunt1 voice/legacy/grunt2 voice/legacy/grunt3 voice/legacy/grunt4 voice/legacy/grunt5 voice/legacy/grunt6 }
$random voice/legacy/lopain { voice/legacy/lopain1 voice/legacy/lopain2 voice/legacy/lopain3 voice/legacy/lopain4 voice/legacy/lopain5 }
$random voice/legacy/pain { voice/legacy/pain1 voice/legacy/pain2 voice/legacy/pain3 voice/legacy/pain4 voice/legacy/pain5 }
$random voice/legacy/hipain { voice/legacy/hipain1 voice/legacy/hipain2 voice/legacy/hipain3 voice/legacy/hipain4 voice/legacy/hipain5 }
$random voice/legacy/death { voice/legacy/death1 voice/legacy/death2 voice/legacy/death3 voice/legacy/death4 voice/legacy/death5 }
voice/legacy/jump = DSEMPTY // no sounds available
voice/legacy/jump1 = DSEMPTY // no sounds available
voice/legacy/kiss1 = "sounds/voice/legacy/demokiss.ogg"
$volume voice/legacy/kiss1 0.4 // kinda loud by default
voice/legacy/fightstart1 = "sounds/voice/legacy/va/demofightstart1.ogg"
voice/legacy/fightstart2 = "sounds/voice/legacy/va/demofightstart2.ogg"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -283,7 +283,16 @@ Class KirinPlushGesture : SWWMItemGesture
action void A_KissPlush()
{
if ( swwm_mutevoice < 4 )
A_StartSound("demolitionist/smooch",CHAN_DEMOVOICE,CHANF_OVERLAP,.4);
{
String myvoice = CVar.GetCVar('swwm_voicetype',player).GetString();
int loudlv = swwm_voiceamp;
int maxkiss = StringTable.Localize("$SWWM_"..myvoice.."_NKISS").ToInt();
int idx = (maxkiss<=1)?1:Random[DemoLines](1,maxkiss);
A_StartSound(String.Format("voice/%s/kiss%d",myvoice,idx),CHAN_DEMOVOICE,CHANF_OVERLAP);
if ( loudlv > 1 ) A_StartSound(String.Format("voice/%s/kiss%d",myvoice,idx),CHAN_DEMOVOICEAUX,CHANF_OVERLAP);
if ( loudlv > 2 ) A_StartSound(String.Format("voice/%s/kiss%d",myvoice,idx),CHAN_DEMOVOICEAUX2,CHANF_OVERLAP);
if ( loudlv > 3 ) A_StartSound(String.Format("voice/%s/kiss%d",myvoice,idx),CHAN_DEMOVOICEAUX3,CHANF_OVERLAP);
}
SWWMHandler.DoFlash(self,Color(48,255,128,128),10);
SWWMHandler.DoFlash(self,Color(24,255,128,128),30);
int numpt = Random[ExploS](6,9);

View file

@ -97,7 +97,7 @@ Class Demolitionist : PlayerPawn
int invwipe; // inventory wipe flags for next level
transient int lastbang, lastbust;
transient int lastbang, lastbust, lastkiss;
transient bool ingivecheat;
@ -870,10 +870,10 @@ Class Demolitionist : PlayerPawn
MarkSound("demolitionist/whitm3");
MarkSound("demolitionist/whitl1");
MarkSound("demolitionist/whitl2");
MarkSound("demolitionist/buttslam");
MarkSound("demolitionist/buttslam1");
MarkSound("demolitionist/buttslam2");
MarkSound("demolitionist/buttslam3");
MarkSound("demolitionist/buttslamx");
MarkSound("demolitionist/smooch");
MarkSound("demolitionist/blowkiss");
MarkSound("demolitionist/petting");
MarkSound("demolitionist/knockout");
}

View file

@ -409,10 +409,12 @@ extend Class Demolitionist
lastbump *= 1.04;
if ( swwm_mutevoice < 4 )
{
A_StartSound(String.Format("voice/%s/hipain",myvoice),CHAN_DEMOVOICE,CHANF_OVERLAP);
if ( loudlv > 1 ) A_StartSound(String.Format("voice/%s/hipain",myvoice),CHAN_DEMOVOICEAUX,CHANF_OVERLAP);
if ( loudlv > 2 ) A_StartSound(String.Format("voice/%s/hipain",myvoice),CHAN_DEMOVOICEAUX2,CHANF_OVERLAP);
if ( loudlv > 3 ) A_StartSound(String.Format("voice/%s/hipain",myvoice),CHAN_DEMOVOICEAUX3,CHANF_OVERLAP);
int maxpain = StringTable.Localize("$SWWM_"..myvoice.."_NHIPAIN").ToInt();
int idx = (maxpain<=1)?1:Random[DemoLines](1,maxpain);
A_StartSound(String.Format("voice/%s/hipain%d",myvoice,idx),CHAN_DEMOVOICE,CHANF_OVERLAP);
if ( loudlv > 1 ) A_StartSound(String.Format("voice/%s/hipain%d",myvoice,idx),CHAN_DEMOVOICEAUX,CHANF_OVERLAP);
if ( loudlv > 2 ) A_StartSound(String.Format("voice/%s/hipain%d",myvoice,idx),CHAN_DEMOVOICEAUX2,CHANF_OVERLAP);
if ( loudlv > 3 ) A_StartSound(String.Format("voice/%s/hipain%d",myvoice,idx),CHAN_DEMOVOICEAUX3,CHANF_OVERLAP);
}
}
else if ( lastdamage > 30 )
@ -422,10 +424,12 @@ extend Class Demolitionist
lastbump *= 1.02;
if ( swwm_mutevoice < 4 )
{
A_StartSound(String.Format("voice/%s/pain",myvoice),CHAN_DEMOVOICE,CHANF_OVERLAP);
if ( loudlv > 1 ) A_StartSound(String.Format("voice/%s/pain",myvoice),CHAN_DEMOVOICEAUX,CHANF_OVERLAP);
if ( loudlv > 2 ) A_StartSound(String.Format("voice/%s/pain",myvoice),CHAN_DEMOVOICEAUX2,CHANF_OVERLAP);
if ( loudlv > 3 ) A_StartSound(String.Format("voice/%s/pain",myvoice),CHAN_DEMOVOICEAUX3,CHANF_OVERLAP);
int maxpain = StringTable.Localize("$SWWM_"..myvoice.."_NPAIN").ToInt();
int idx = (maxpain<=1)?1:Random[DemoLines](1,maxpain);
A_StartSound(String.Format("voice/%s/pain%d",myvoice,idx),CHAN_DEMOVOICE,CHANF_OVERLAP);
if ( loudlv > 1 ) A_StartSound(String.Format("voice/%s/pain%d",myvoice,idx),CHAN_DEMOVOICEAUX,CHANF_OVERLAP);
if ( loudlv > 2 ) A_StartSound(String.Format("voice/%s/pain%d",myvoice,idx),CHAN_DEMOVOICEAUX2,CHANF_OVERLAP);
if ( loudlv > 3 ) A_StartSound(String.Format("voice/%s/pain%d",myvoice,idx),CHAN_DEMOVOICEAUX3,CHANF_OVERLAP);
}
}
else if ( lastdamage > 0 )
@ -435,10 +439,12 @@ extend Class Demolitionist
lastbump *= 1.01;
if ( swwm_mutevoice < 4 )
{
A_StartSound(String.Format("voice/%s/lopain",myvoice),CHAN_DEMOVOICE,CHANF_OVERLAP);
if ( loudlv > 1 ) A_StartSound(String.Format("voice/%s/lopain",myvoice),CHAN_DEMOVOICEAUX,CHANF_OVERLAP);
if ( loudlv > 2 ) A_StartSound(String.Format("voice/%s/lopain",myvoice),CHAN_DEMOVOICEAUX2,CHANF_OVERLAP);
if ( loudlv > 3 ) A_StartSound(String.Format("voice/%s/lopain",myvoice),CHAN_DEMOVOICEAUX3,CHANF_OVERLAP);
int maxpain = StringTable.Localize("$SWWM_"..myvoice.."_NLOPAIN").ToInt();
int idx = (maxpain<=1)?1:Random[DemoLines](1,maxpain);
A_StartSound(String.Format("voice/%s/lopain%d",myvoice,idx),CHAN_DEMOVOICE,CHANF_OVERLAP);
if ( loudlv > 1 ) A_StartSound(String.Format("voice/%s/lopain%d",myvoice,idx),CHAN_DEMOVOICEAUX,CHANF_OVERLAP);
if ( loudlv > 2 ) A_StartSound(String.Format("voice/%s/lopain%d",myvoice,idx),CHAN_DEMOVOICEAUX2,CHANF_OVERLAP);
if ( loudlv > 3 ) A_StartSound(String.Format("voice/%s/lopain%d",myvoice,idx),CHAN_DEMOVOICEAUX3,CHANF_OVERLAP);
}
}
}
@ -461,10 +467,12 @@ extend Class Demolitionist
A_StartSound(snd,CHAN_VOICE);
if ( swwm_mutevoice < 4 )
{
A_StartSound(String.Format("voice/%s/death",myvoice),CHAN_DEMOVOICE,CHANF_OVERLAP);
if ( loudlv > 1 ) A_StartSound(String.Format("voice/%s/death",myvoice),CHAN_DEMOVOICEAUX,CHANF_OVERLAP);
if ( loudlv > 2 ) A_StartSound(String.Format("voice/%s/death",myvoice),CHAN_DEMOVOICEAUX2,CHANF_OVERLAP);
if ( loudlv > 3 ) A_StartSound(String.Format("voice/%s/death",myvoice),CHAN_DEMOVOICEAUX3,CHANF_OVERLAP);
int maxdeath = StringTable.Localize("$SWWM_"..myvoice.."_NDEATH").ToInt();
int idx = (maxdeath<=1)?1:Random[DemoLines](1,maxdeath);
A_StartSound(String.Format("voice/%s/death%d",myvoice,idx),CHAN_DEMOVOICE,CHANF_OVERLAP);
if ( loudlv > 1 ) A_StartSound(String.Format("voice/%s/death%d",myvoice,idx),CHAN_DEMOVOICEAUX,CHANF_OVERLAP);
if ( loudlv > 2 ) A_StartSound(String.Format("voice/%s/death%d",myvoice,idx),CHAN_DEMOVOICEAUX2,CHANF_OVERLAP);
if ( loudlv > 3 ) A_StartSound(String.Format("voice/%s/death%d",myvoice,idx),CHAN_DEMOVOICEAUX3,CHANF_OVERLAP);
}
}

View file

@ -540,10 +540,12 @@ extend Class Demolitionist
{
String myvoice = CVar.GetCVar('swwm_voicetype',player).GetString();
int loudlv = swwm_voiceamp;
A_StartSound(String.Format("voice/%s/jump",myvoice),CHAN_DEMOVOICE,CHANF_OVERLAP);
if ( loudlv > 1 ) A_StartSound(String.Format("voice/%s/jump",myvoice),CHAN_DEMOVOICEAUX,CHANF_OVERLAP);
if ( loudlv > 2 ) A_StartSound(String.Format("voice/%s/jump",myvoice),CHAN_DEMOVOICEAUX2,CHANF_OVERLAP);
if ( loudlv > 3 ) A_StartSound(String.Format("voice/%s/jump",myvoice),CHAN_DEMOVOICEAUX3,CHANF_OVERLAP);
int maxjump = StringTable.Localize("$SWWM_"..myvoice.."_NJUMP").ToInt();
int idx = (maxjump<=1)?1:Random[DemoLines](1,maxjump);
A_StartSound(String.Format("voice/%s/jump%d",myvoice,idx),CHAN_DEMOVOICE,CHANF_OVERLAP);
if ( loudlv > 1 ) A_StartSound(String.Format("voice/%s/jump%d",myvoice,idx),CHAN_DEMOVOICEAUX,CHANF_OVERLAP);
if ( loudlv > 2 ) A_StartSound(String.Format("voice/%s/jump%d",myvoice,idx),CHAN_DEMOVOICEAUX2,CHANF_OVERLAP);
if ( loudlv > 3 ) A_StartSound(String.Format("voice/%s/jump%d",myvoice,idx),CHAN_DEMOVOICEAUX3,CHANF_OVERLAP);
}
SetStateLabel("Jump");
}

View file

@ -210,11 +210,13 @@ extend Class Demolitionist
{
String myvoice = CVar.GetCVar('swwm_voicetype',player).GetString();
int loudlv = swwm_voiceamp;
A_StartSound(String.Format("voice/%s/usegrunt",myvoice),CHAN_DEMOVOICE,CHANF_OVERLAP);
if ( loudlv > 1 ) A_StartSound(String.Format("voice/%s/usegrunt",myvoice),CHAN_DEMOVOICEAUX,CHANF_OVERLAP);
if ( loudlv > 2 ) A_StartSound(String.Format("voice/%s/usegrunt",myvoice),CHAN_DEMOVOICEAUX2,CHANF_OVERLAP);
if ( loudlv > 3 ) A_StartSound(String.Format("voice/%s/usegrunt",myvoice),CHAN_DEMOVOICEAUX3,CHANF_OVERLAP);
failcooldown = int(S_GetLength(String.Format("voice/%s/usegrunt",myvoice))*GameTicRate);
int maxusegrunt = StringTable.Localize("$SWWM_"..myvoice.."_NUSEGRUNT").ToInt();
int idx = (maxusegrunt<=1)?1:Random[DemoLines](1,maxusegrunt);
A_StartSound(String.Format("voice/%s/usegrunt",myvoice,idx),CHAN_DEMOVOICE,CHANF_OVERLAP);
if ( loudlv > 1 ) A_StartSound(String.Format("voice/%s/usegrunt",myvoice,idx),CHAN_DEMOVOICEAUX,CHANF_OVERLAP);
if ( loudlv > 2 ) A_StartSound(String.Format("voice/%s/usegrunt",myvoice,idx),CHAN_DEMOVOICEAUX2,CHANF_OVERLAP);
if ( loudlv > 3 ) A_StartSound(String.Format("voice/%s/usegrunt",myvoice,idx),CHAN_DEMOVOICEAUX3,CHANF_OVERLAP);
failcooldown = int(S_GetLength(String.Format("voice/%s/usegrunt",myvoice,idx))*GameTicRate);
failcounter = max(2,failcounter-1);
}
}

View file

@ -346,10 +346,12 @@ extend Class Demolitionist
{
String myvoice = CVar.GetCVar('swwm_voicetype',player).GetString();
int loudlv = swwm_voiceamp;
A_StartSound(String.Format("voice/%s/grunt",myvoice),CHAN_DEMOVOICE,CHANF_OVERLAP);
if ( loudlv > 1 ) A_StartSound(String.Format("voice/%s/grunt",myvoice),CHAN_DEMOVOICEAUX,CHANF_OVERLAP);
if ( loudlv > 2 ) A_StartSound(String.Format("voice/%s/grunt",myvoice),CHAN_DEMOVOICEAUX2,CHANF_OVERLAP);
if ( loudlv > 3 ) A_StartSound(String.Format("voice/%s/grunt",myvoice),CHAN_DEMOVOICEAUX3,CHANF_OVERLAP);
int maxgrunt = StringTable.Localize("$SWWM_"..myvoice.."_NGRUNT").ToInt();
int idx = (maxgrunt<=1)?1:Random[DemoLines](1,maxgrunt);
A_StartSound(String.Format("voice/%s/grunt%d",myvoice,idx),CHAN_DEMOVOICE,CHANF_OVERLAP);
if ( loudlv > 1 ) A_StartSound(String.Format("voice/%s/grunt%d",myvoice,idx),CHAN_DEMOVOICEAUX,CHANF_OVERLAP);
if ( loudlv > 2 ) A_StartSound(String.Format("voice/%s/grunt%d",myvoice,idx),CHAN_DEMOVOICEAUX2,CHANF_OVERLAP);
if ( loudlv > 3 ) A_StartSound(String.Format("voice/%s/grunt%d",myvoice,idx),CHAN_DEMOVOICEAUX3,CHANF_OVERLAP);
}
if ( lastvelz < -1 )
A_Footstep(0,1,clamp(-lastvelz*0.05,0.0,1.0),true);

View file

@ -321,13 +321,20 @@ Class SWWMGesture : SWWMWeapon
action void A_Smooch()
{
if ( swwm_mutevoice < 4 )
A_StartSound("demolitionist/smooch",CHAN_DEMOVOICE,CHANF_OVERLAP,.4);
{
String myvoice = CVar.GetCVar('swwm_voicetype',player).GetString();
int loudlv = swwm_voiceamp;
int maxkiss = StringTable.Localize("$SWWM_"..myvoice.."_NKISS").ToInt();
int idx = (maxkiss<=1)?1:Random[DemoLines](1,maxkiss);
A_StartSound(String.Format("voice/%s/kiss%d",myvoice,idx),CHAN_DEMOVOICE,CHANF_OVERLAP);
if ( loudlv > 1 ) A_StartSound(String.Format("voice/%s/kiss%d",myvoice,idx),CHAN_DEMOVOICEAUX,CHANF_OVERLAP);
if ( loudlv > 2 ) A_StartSound(String.Format("voice/%s/kiss%d",myvoice,idx),CHAN_DEMOVOICEAUX2,CHANF_OVERLAP);
if ( loudlv > 3 ) A_StartSound(String.Format("voice/%s/kiss%d",myvoice,idx),CHAN_DEMOVOICEAUX3,CHANF_OVERLAP);
}
}
action void A_BlowKiss()
{
if ( swwm_mutevoice < 4 )
A_StartSound("demolitionist/blowkiss",CHAN_DEMOVOICE,CHANF_OVERLAP,.4);
let weap = Weapon(invoker);
if ( !weap ) return;
Vector3 x2, y2, z2, dir;

View file

@ -106,7 +106,17 @@ Class LoveHeart : Actor
bEXTREMEDEATH = false;
bNOEXTREMEDEATH = false;
SWWMStats s = null;
if ( Demolitionist(self.target) ) s = Demolitionist(self.target).mystats;
if ( Demolitionist(self.target) )
{
s = Demolitionist(self.target).mystats;
// guaranteed on first smooch
if ( !Demolitionist(self.target).lastkiss || !Random[DemoLines](0,2) )
{
if ( gametic > Demolitionist(self.target).lastkiss )
SWWMHandler.AddOneliner("smooch",2,20);
Demolitionist(self.target).lastkiss = gametic+140;
}
}
if ( s ) s.smooch++;
let raging = RagekitPower(self.target.FindInventory("RagekitPower"));
if ( (target is 'WolfensteinSS') || (target.Species == 'WolfensteinSS') ) target.bFRIENDLY = false;