swwmgz_m/zscript/items/swwm_collectibles_gesture.zsc
Marisa the Magician 80db58b0d0 Bump zscript ver to 4.14.1, plus a whole lot of stuff.
- 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.
2025-03-13 14:50:58 +01:00

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;
}
}