- Try to get rid of all implicit casts from string to name, color or class. - Use FindClass where needed. - Used a map in a case where a dictionary was unneeded. - Use new bounce flags where needed. - Replace Legacy of Rust weapons/ammo.
339 lines
8.1 KiB
Text
339 lines
8.1 KiB
Text
// Demo-chan just loves to fiddle around
|
|
Class GenericCubeGesture : SWWMItemGesture
|
|
{
|
|
States
|
|
{
|
|
Fire:
|
|
XZW1 A 3;
|
|
XZW1 B 3 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 CD 3;
|
|
XZW1 EFGHIJK 4;
|
|
XZW1 LM 3;
|
|
XZW1 N 3 A_StartSound("demolitionist/handsdown",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 OPQRST 3;
|
|
XZW1 A -1 A_FinishGesture();
|
|
Stop;
|
|
}
|
|
}
|
|
Class AkariProjectGesture : SWWMItemGesture
|
|
{
|
|
States
|
|
{
|
|
Fire:
|
|
XZW1 A 3;
|
|
XZW1 B 3 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 CDEFG 3;
|
|
XZW1 HIJKLM 4;
|
|
XZW1 NO 3;
|
|
XZW1 P 3 A_StartSound("demolitionist/handsdown",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 QRST 3;
|
|
XZW1 A -1 A_FinishGesture();
|
|
Stop;
|
|
}
|
|
}
|
|
Class LoveSignalsCDGesture : SWWMItemGesture
|
|
{
|
|
States
|
|
{
|
|
Fire:
|
|
XZW1 A 3;
|
|
XZW1 B 3 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 CDEFG 3;
|
|
XZW1 HIJK 4;
|
|
XZW1 LM 3;
|
|
XZW1 N 3 A_StartSound("demolitionist/handsdown",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 OPQRST 3;
|
|
XZW1 A -1 A_FinishGesture();
|
|
Stop;
|
|
}
|
|
}
|
|
Class NutatcoBarGesture : SWWMItemGesture
|
|
{
|
|
States
|
|
{
|
|
Fire:
|
|
XZW1 A 3;
|
|
XZW1 B 3 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 CDEFGH 3;
|
|
XZW1 IJKL 4;
|
|
XZW1 MN 3;
|
|
XZW1 O 3 A_StartSound("demolitionist/handsdown",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 PQRST 3;
|
|
XZW1 A -1 A_FinishGesture();
|
|
Stop;
|
|
}
|
|
}
|
|
Class FrispyCornGesture : SWWMItemGesture
|
|
{
|
|
States
|
|
{
|
|
Fire:
|
|
XZW1 A 3;
|
|
XZW1 B 3 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 CDEFGH 3;
|
|
XZW1 IJKLM 4;
|
|
XZW1 NO 3;
|
|
XZW1 P 3 A_StartSound("demolitionist/handsdown",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 QRST 3;
|
|
XZW1 A -1 A_FinishGesture();
|
|
Stop;
|
|
}
|
|
}
|
|
Class SayaBeanGesture : SWWMItemGesture
|
|
{
|
|
action void A_PreSquish()
|
|
{
|
|
if ( Demolitionist(self) ) Demolitionist(self).facegrin = true;
|
|
}
|
|
action void A_Squish1()
|
|
{
|
|
A_StartSound("squeak",CHAN_ITEMEXTRA,CHANF_OVERLAP);
|
|
}
|
|
action void A_Squish2()
|
|
{
|
|
A_StartSound("saya/giggle",CHAN_ITEMEXTRA,CHANF_OVERLAP);
|
|
}
|
|
action void A_UsePlush()
|
|
{
|
|
if ( !Demolitionist(self) ) return;
|
|
let s = Demolitionist(self).mystats;
|
|
if ( !s ) return;
|
|
s.plushuses++;
|
|
SWWMUtility.AchievementProgress("plush",s.plushuses,player);
|
|
}
|
|
override void MarkPrecacheSounds()
|
|
{
|
|
Super.MarkPrecacheSounds();
|
|
MarkSound("saya/giggle1");
|
|
MarkSound("saya/giggle2");
|
|
MarkSound("saya/giggle3");
|
|
MarkSound("saya/giggle4");
|
|
MarkSound("saya/giggle5");
|
|
MarkSound("saya/giggle6");
|
|
MarkSound("saya/giggle7");
|
|
MarkSound("saya/giggle8");
|
|
MarkSound("saya/giggle9");
|
|
MarkSound("saya/giggle10");
|
|
MarkSound("saya/giggle11");
|
|
MarkSound("saya/giggle12");
|
|
MarkSound("saya/giggle13");
|
|
MarkSound("saya/giggle14");
|
|
MarkSound("saya/pervert");
|
|
}
|
|
States
|
|
{
|
|
Fire:
|
|
XZW1 A 3 A_UsePlush();
|
|
XZW1 B 3 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 CDEFGH 3;
|
|
XZW1 I 4 A_PreSquish();
|
|
XZW1 J 4;
|
|
XZW1 KL 3;
|
|
XZW1 M 2 A_Squish1();
|
|
XZW1 N 2 A_Squish2();
|
|
XZW1 O 3;
|
|
XZW1 PQRS 4;
|
|
XZW1 T 4 A_StartSound("demolitionist/handsdown",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 UVWX 3;
|
|
XZW1 A -1 A_FinishGesture();
|
|
Stop;
|
|
}
|
|
}
|
|
Class MothPlushyGesture : SWWMItemGesture
|
|
{
|
|
action void A_MothCheck()
|
|
{
|
|
let realmoth = MothPlushy(FindInventory('MothPlushy'));
|
|
if ( !realmoth || realmoth.activated ) return;
|
|
realmoth.uses = min(10,realmoth.uses+1);
|
|
if ( (realmoth.uses > 1) && !Random[Gesture](0,12-realmoth.uses) )
|
|
{
|
|
realmoth.activated = true;
|
|
realmoth.gigglecnt = 90;
|
|
}
|
|
}
|
|
States
|
|
{
|
|
Fire:
|
|
XZW1 A 3;
|
|
XZW1 B 3 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 CDEFGH 3;
|
|
XZW1 IJKLM 3;
|
|
XZW1 NO 4;
|
|
XZW1 P 4 A_MothCheck();
|
|
XZW1 QRSTUV 4;
|
|
XZW1 W 3;
|
|
XZW1 X 3 A_StartSound("demolitionist/handsdown",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 YZ 3;
|
|
XZW2 ABCD 3;
|
|
XZW1 A -1 A_FinishGesture();
|
|
Stop;
|
|
}
|
|
}
|
|
Class SayasMugGesture : SWWMItemGesture
|
|
{
|
|
States
|
|
{
|
|
Fire:
|
|
XZW1 A 2;
|
|
XZW1 B 2 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 CDEFGHIJKLMNOPQRSTUVWXYZ 2;
|
|
XZW2 ABCDEFGHIJKLMNO 2;
|
|
XZW2 P 2 A_StartSound("demolitionist/handsdown",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW2 QRSTUVW 2;
|
|
XZW2 X -1 A_FinishGesture();
|
|
Stop;
|
|
}
|
|
}
|
|
Class DemoPlushGesture : SWWMItemGesture
|
|
{
|
|
States
|
|
{
|
|
Fire:
|
|
XZW1 A 3;
|
|
XZW1 B 3 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 CDEFG 3;
|
|
XZW1 HI 4;
|
|
XZW1 JKL 2;
|
|
XZW1 MNO 4;
|
|
XZW1 PQ 3;
|
|
XZW1 R 3 A_StartSound("demolitionist/handsdown",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 STUVWX 3;
|
|
XZW1 A -1 A_FinishGesture();
|
|
Stop;
|
|
}
|
|
}
|
|
Class KirinSippyGesture : SWWMItemGesture
|
|
{
|
|
States
|
|
{
|
|
Fire:
|
|
XZW1 A 3;
|
|
XZW1 B 3 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 CDEFGH 3;
|
|
XZW1 IJKLM 4;
|
|
XZW1 NO 3;
|
|
XZW1 P 3 A_StartSound("demolitionist/handsdown",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 QRST 3;
|
|
XZW1 A -1 A_FinishGesture();
|
|
Stop;
|
|
}
|
|
}
|
|
Class MilkBreadsGesture : SWWMItemGesture
|
|
{
|
|
States
|
|
{
|
|
Fire:
|
|
XZW1 A 3;
|
|
XZW1 B 3 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 CDEFGH 3;
|
|
XZW1 IJKLM 4;
|
|
XZW1 NO 3;
|
|
XZW1 P 3 A_StartSound("demolitionist/handsdown",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 QRST 3;
|
|
XZW1 A -1 A_FinishGesture();
|
|
Stop;
|
|
}
|
|
}
|
|
Class KirinMangaGesture : SWWMItemGesture
|
|
{
|
|
States
|
|
{
|
|
Fire:
|
|
XZW1 A 3;
|
|
XZW1 B 3 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 CDEFG 3;
|
|
XZW1 HIJKLM 4;
|
|
XZW1 NO 3;
|
|
XZW1 P 3 A_StartSound("demolitionist/handsdown",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 QRST 3;
|
|
XZW1 A -1 A_FinishGesture();
|
|
Stop;
|
|
}
|
|
}
|
|
Class KirinPlushGesture : SWWMItemGesture
|
|
{
|
|
action void A_UsePlush()
|
|
{
|
|
if ( !Demolitionist(self) ) return;
|
|
let s = Demolitionist(self).mystats;
|
|
if ( !s ) return;
|
|
s.plushuses++;
|
|
SWWMUtility.AchievementProgress("plush",s.plushuses,player);
|
|
}
|
|
action void A_PreKiss()
|
|
{
|
|
if ( Demolitionist(self) ) Demolitionist(self).faceblink = true;
|
|
}
|
|
action void A_PetPlush()
|
|
{
|
|
A_StartSound("demolitionist/petting",CHAN_WEAPON,CHANF_OVERLAP);
|
|
}
|
|
action void A_KissPlush()
|
|
{
|
|
if ( swwm_mutevoice < 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);
|
|
for ( int i=0; i<numpt; i++ )
|
|
{
|
|
let s = Spawn('LoveHeartSparkle',Vec3Offset(FRandom[ExploS](-.8,.8)*radius,FRandom[ExploS](-.8,.8)*radius,FRandom[ExploS](.1,.9)*height));
|
|
s.angle = FRandom[ExploS](0,360);
|
|
s.pitch = FRandom[ExploS](-90,90);
|
|
}
|
|
int givehp = (Health<=25)?25:(Health<=50)?15:(Health<=100)?10:5;
|
|
if ( GiveBody(givehp,200) ) SWWMHandler.DoFlash(self,Color(32,224,128,255),10);
|
|
}
|
|
action void A_KirinGiggle()
|
|
{
|
|
A_StartSound("kirin/giggle",CHAN_ITEMEXTRA,CHANF_OVERLAP);
|
|
}
|
|
|
|
override void MarkPrecacheSounds()
|
|
{
|
|
Super.MarkPrecacheSounds();
|
|
MarkSound("kirin/giggle1");
|
|
MarkSound("kirin/giggle2");
|
|
MarkSound("kirin/giggle3");
|
|
MarkSound("kirin/giggle4");
|
|
MarkSound("kirin/giggle5");
|
|
MarkSound("kirin/giggle6");
|
|
MarkSound("kirin/giggle7");
|
|
MarkSound("kirin/giggle8");
|
|
MarkSound("kirin/giggle9");
|
|
MarkSound("kirin/giggle10");
|
|
MarkSound("kirin/giggle11");
|
|
}
|
|
States
|
|
{
|
|
Fire:
|
|
XZW1 A 3 A_UsePlush();
|
|
XZW1 B 3 A_StartSound("demolitionist/handsup",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 CDEFGH 3;
|
|
XZW1 IJKL 5;
|
|
XZW1 M 5 A_StartSound("demolitionist/handsdown",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 N 4 A_PreKiss();
|
|
XZW1 O 2;
|
|
XZW1 P 2 A_PetPlush();
|
|
XZW1 Q 3 A_KissPlush();
|
|
XZW1 R 3 A_KirinGiggle();
|
|
XZW1 ST 5;
|
|
XZW1 UVW 6;
|
|
XZW1 X 5;
|
|
XZW1 Y 4 A_StartSound("demolitionist/handsdown",CHAN_WEAPON,CHANF_OVERLAP);
|
|
XZW1 Z 4;
|
|
XZW2 ABC 4;
|
|
XZW1 A -1 A_FinishGesture();
|
|
Stop;
|
|
}
|
|
}
|