More cheat stuff (includes a flag!).

This commit is contained in:
Mari the Deer 2021-04-29 23:26:34 +02:00
commit e6133c8a25
16 changed files with 417 additions and 11 deletions

View file

@ -1,3 +1,3 @@
[default] [default]
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r458 \cu(Thu 29 Apr 23:25:24 CEST 2021)\c-"; SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r459 \cu(Thu 29 Apr 23:26:34 CEST 2021)\c-";
SWWM_SHORTVER="\cw0.9.11b-pre r458 \cu(2021-04-29 23:25:24)\c-"; SWWM_SHORTVER="\cw0.9.11b-pre r459 \cu(2021-04-29 23:26:34)\c-";

View file

@ -9,6 +9,262 @@ Model "FroggyChair"
FrameIndex XZW1 A 0 0 FrameIndex XZW1 A 0 0
} }
Model "SWWMFlag"
{
Path "models"
Model 0 "SWWMFlag_d.3d"
Skin 0 "SWWMFlag.png"
Scale 0.5 0.5 0.5
// Default
FrameIndex XZW1 A 0 0
FrameIndex XZW1 B 0 1
FrameIndex XZW1 C 0 2
FrameIndex XZW1 D 0 3
FrameIndex XZW1 E 0 4
FrameIndex XZW1 F 0 5
FrameIndex XZW1 G 0 6
FrameIndex XZW1 H 0 7
FrameIndex XZW1 I 0 8
FrameIndex XZW1 J 0 9
FrameIndex XZW1 K 0 10
FrameIndex XZW1 L 0 11
FrameIndex XZW1 M 0 12
FrameIndex XZW1 N 0 13
FrameIndex XZW1 O 0 14
FrameIndex XZW1 P 0 15
FrameIndex XZW1 Q 0 16
FrameIndex XZW1 R 0 17
FrameIndex XZW1 S 0 18
FrameIndex XZW1 T 0 19
FrameIndex XZW1 U 0 20
FrameIndex XZW1 V 0 21
FrameIndex XZW1 W 0 22
FrameIndex XZW1 X 0 23
FrameIndex XZW1 Y 0 24
FrameIndex XZW1 Z 0 25
FrameIndex XZW2 A 0 26
FrameIndex XZW2 B 0 27
FrameIndex XZW2 C 0 28
FrameIndex XZW2 D 0 29
FrameIndex XZW2 E 0 30
FrameIndex XZW2 F 0 31
FrameIndex XZW2 G 0 32
FrameIndex XZW2 H 0 33
FrameIndex XZW2 I 0 34
FrameIndex XZW2 J 0 35
FrameIndex XZW2 K 0 36
FrameIndex XZW2 L 0 37
FrameIndex XZW2 M 0 38
FrameIndex XZW2 N 0 39
FrameIndex XZW2 O 0 40
FrameIndex XZW2 P 0 41
FrameIndex XZW2 Q 0 42
FrameIndex XZW2 R 0 43
FrameIndex XZW2 S 0 44
FrameIndex XZW2 T 0 45
FrameIndex XZW2 U 0 46
FrameIndex XZW2 V 0 47
FrameIndex XZW2 W 0 48
FrameIndex XZW2 X 0 49
FrameIndex XZW2 Y 0 50
FrameIndex XZW2 Z 0 51
FrameIndex XZW3 A 0 52
FrameIndex XZW3 B 0 53
FrameIndex XZW3 C 0 54
FrameIndex XZW3 D 0 55
FrameIndex XZW3 E 0 56
FrameIndex XZW3 F 0 57
FrameIndex XZW3 G 0 58
FrameIndex XZW3 H 0 59
// Pride
Skin 0 "SWWMFlag_Pride.png"
FrameIndex XZW3 I 0 0
FrameIndex XZW3 J 0 1
FrameIndex XZW3 K 0 2
FrameIndex XZW3 L 0 3
FrameIndex XZW3 M 0 4
FrameIndex XZW3 N 0 5
FrameIndex XZW3 O 0 6
FrameIndex XZW3 P 0 7
FrameIndex XZW3 Q 0 8
FrameIndex XZW3 R 0 9
FrameIndex XZW3 S 0 10
FrameIndex XZW3 T 0 11
FrameIndex XZW3 U 0 12
FrameIndex XZW3 V 0 13
FrameIndex XZW3 W 0 14
FrameIndex XZW3 X 0 15
FrameIndex XZW3 Y 0 16
FrameIndex XZW3 Z 0 17
FrameIndex XZW4 A 0 18
FrameIndex XZW4 B 0 19
FrameIndex XZW4 C 0 20
FrameIndex XZW4 D 0 21
FrameIndex XZW4 E 0 22
FrameIndex XZW4 F 0 23
FrameIndex XZW4 G 0 24
FrameIndex XZW4 H 0 25
FrameIndex XZW4 I 0 26
FrameIndex XZW4 J 0 27
FrameIndex XZW4 K 0 28
FrameIndex XZW4 L 0 29
FrameIndex XZW4 M 0 30
FrameIndex XZW4 N 0 31
FrameIndex XZW4 O 0 32
FrameIndex XZW4 P 0 33
FrameIndex XZW4 Q 0 34
FrameIndex XZW4 R 0 35
FrameIndex XZW4 S 0 36
FrameIndex XZW4 T 0 37
FrameIndex XZW4 U 0 38
FrameIndex XZW4 V 0 39
FrameIndex XZW4 W 0 40
FrameIndex XZW4 X 0 41
FrameIndex XZW4 Y 0 42
FrameIndex XZW4 Z 0 43
FrameIndex XZW5 A 0 44
FrameIndex XZW5 B 0 45
FrameIndex XZW5 C 0 46
FrameIndex XZW5 D 0 47
FrameIndex XZW5 E 0 48
FrameIndex XZW5 F 0 49
FrameIndex XZW5 G 0 50
FrameIndex XZW5 H 0 51
FrameIndex XZW5 I 0 52
FrameIndex XZW5 J 0 53
FrameIndex XZW5 K 0 54
FrameIndex XZW5 L 0 55
FrameIndex XZW5 M 0 56
FrameIndex XZW5 N 0 57
FrameIndex XZW5 O 0 58
FrameIndex XZW5 P 0 59
// Trans
Skin 0 "SWWMFlag_Trans.png"
FrameIndex XZW5 Q 0 0
FrameIndex XZW5 R 0 1
FrameIndex XZW5 S 0 2
FrameIndex XZW5 T 0 3
FrameIndex XZW5 U 0 4
FrameIndex XZW5 V 0 5
FrameIndex XZW5 W 0 6
FrameIndex XZW5 X 0 7
FrameIndex XZW5 Y 0 8
FrameIndex XZW5 Z 0 9
FrameIndex XZW6 A 0 10
FrameIndex XZW6 B 0 11
FrameIndex XZW6 C 0 12
FrameIndex XZW6 D 0 13
FrameIndex XZW6 E 0 14
FrameIndex XZW6 F 0 15
FrameIndex XZW6 G 0 16
FrameIndex XZW6 H 0 17
FrameIndex XZW6 I 0 18
FrameIndex XZW6 J 0 19
FrameIndex XZW6 K 0 20
FrameIndex XZW6 L 0 21
FrameIndex XZW6 M 0 22
FrameIndex XZW6 N 0 23
FrameIndex XZW6 O 0 24
FrameIndex XZW6 P 0 25
FrameIndex XZW6 Q 0 26
FrameIndex XZW6 R 0 27
FrameIndex XZW6 S 0 28
FrameIndex XZW6 T 0 29
FrameIndex XZW6 U 0 30
FrameIndex XZW6 V 0 31
FrameIndex XZW6 W 0 32
FrameIndex XZW6 X 0 33
FrameIndex XZW6 Y 0 34
FrameIndex XZW6 Z 0 35
FrameIndex XZW7 A 0 36
FrameIndex XZW7 B 0 37
FrameIndex XZW7 C 0 38
FrameIndex XZW7 D 0 39
FrameIndex XZW7 E 0 40
FrameIndex XZW7 F 0 41
FrameIndex XZW7 G 0 42
FrameIndex XZW7 H 0 43
FrameIndex XZW7 I 0 44
FrameIndex XZW7 J 0 45
FrameIndex XZW7 K 0 46
FrameIndex XZW7 L 0 47
FrameIndex XZW7 M 0 48
FrameIndex XZW7 N 0 49
FrameIndex XZW7 O 0 50
FrameIndex XZW7 P 0 51
FrameIndex XZW7 Q 0 52
FrameIndex XZW7 R 0 53
FrameIndex XZW7 S 0 54
FrameIndex XZW7 T 0 55
FrameIndex XZW7 U 0 56
FrameIndex XZW7 V 0 57
FrameIndex XZW7 W 0 58
FrameIndex XZW7 X 0 59
// Enby
Skin 0 "SWWMFlag_Enby.png"
FrameIndex XZW7 Y 0 0
FrameIndex XZW7 Z 0 1
FrameIndex XZW8 A 0 2
FrameIndex XZW8 B 0 3
FrameIndex XZW8 C 0 4
FrameIndex XZW8 D 0 5
FrameIndex XZW8 E 0 6
FrameIndex XZW8 F 0 7
FrameIndex XZW8 G 0 8
FrameIndex XZW8 H 0 9
FrameIndex XZW8 I 0 10
FrameIndex XZW8 J 0 11
FrameIndex XZW8 K 0 12
FrameIndex XZW8 L 0 13
FrameIndex XZW8 M 0 14
FrameIndex XZW8 N 0 15
FrameIndex XZW8 O 0 16
FrameIndex XZW8 P 0 17
FrameIndex XZW8 Q 0 18
FrameIndex XZW8 R 0 19
FrameIndex XZW8 S 0 20
FrameIndex XZW8 T 0 21
FrameIndex XZW8 U 0 22
FrameIndex XZW8 V 0 23
FrameIndex XZW8 W 0 24
FrameIndex XZW8 X 0 25
FrameIndex XZW8 Y 0 26
FrameIndex XZW8 Z 0 27
FrameIndex XZW9 A 0 28
FrameIndex XZW9 B 0 29
FrameIndex XZW9 C 0 30
FrameIndex XZW9 D 0 31
FrameIndex XZW9 E 0 32
FrameIndex XZW9 F 0 33
FrameIndex XZW9 G 0 34
FrameIndex XZW9 H 0 35
FrameIndex XZW9 I 0 36
FrameIndex XZW9 J 0 37
FrameIndex XZW9 K 0 38
FrameIndex XZW9 L 0 39
FrameIndex XZW9 M 0 40
FrameIndex XZW9 N 0 41
FrameIndex XZW9 O 0 42
FrameIndex XZW9 P 0 43
FrameIndex XZW9 Q 0 44
FrameIndex XZW9 R 0 45
FrameIndex XZW9 S 0 46
FrameIndex XZW9 T 0 47
FrameIndex XZW9 U 0 48
FrameIndex XZW9 V 0 49
FrameIndex XZW9 W 0 50
FrameIndex XZW9 X 0 51
FrameIndex XZW9 Y 0 52
FrameIndex XZW9 Z 0 53
FrameIndex XZWA A 0 54
FrameIndex XZWA B 0 55
FrameIndex XZWA C 0 56
FrameIndex XZWA D 0 57
FrameIndex XZWA E 0 58
FrameIndex XZWA F 0 59
}
Model "Chancebox" Model "Chancebox"
{ {
Path "models" Path "models"

BIN
models/SWWMFlag.blend Normal file

Binary file not shown.

BIN
models/SWWMFlag.mdd Normal file

Binary file not shown.

BIN
models/SWWMFlag.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
models/SWWMFlag.xcf Normal file

Binary file not shown.

BIN
models/SWWMFlag_Enby.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
models/SWWMFlag_Pride.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
models/SWWMFlag_Trans.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
models/SWWMFlag_a.3d Normal file

Binary file not shown.

BIN
models/SWWMFlag_d.3d Normal file

Binary file not shown.

View file

@ -916,6 +916,7 @@ misc/achievement sounds/CTF6.ogg
misc/wow sounds/WOW.ogg misc/wow sounds/WOW.ogg
misc/achievement2 sounds/YAY.ogg misc/achievement2 sounds/YAY.ogg
misc/orbexplode sounds/ORBEXPLODE.ogg misc/orbexplode sounds/ORBEXPLODE.ogg
misc/omgfart sounds/omgfart.ogg
misc/voice sounds/dlgvoice.ogg misc/voice sounds/dlgvoice.ogg
misc/gibber1 sounds/general/Gib1.ogg misc/gibber1 sounds/general/Gib1.ogg
misc/gibber2 sounds/general/Gib2.ogg misc/gibber2 sounds/general/Gib2.ogg

BIN
sounds/omgfart.ogg Normal file

Binary file not shown.

View file

@ -177,9 +177,19 @@ extend Class SWWMHandler
{ {
if ( consoleplayer == e.Args[0] ) if ( consoleplayer == e.Args[0] )
{ {
Console.Printf("\cyThere are no flags here.\c-"); Console.Printf("\cyLet your flag stand proud, Demolitionist.\c-");
S_StartSound("misc/nocheat",CHAN_ITEM,CHANF_UI); S_StartSound("menu/buyinv",CHAN_ITEM,CHANF_UI);
} }
let mo = players[e.Args[0]].mo;
Actor f = Actor(ThinkerIterator.Create("SWWMFlag").Next());
if ( !f ) f = mo.Spawn("SWWMFlag");
Vector2 spos = mo.Vec2Offset(cos(mo.angle)*40.,sin(mo.angle)*40.);
Sector sat = level.PointInSector(spos);
double sz = sat.NextLowestFloorAt(spos.x,spos.y,mo.player.viewz-32.);
f.SetOrigin((spos.x,spos.y,sz),false);
f.A_SetAngle(mo.angle);
f.Spawn("SWWMItemFog",f.pos);
f.A_StartSound("bestsound",CHAN_ITEMEXTRA);
} }
else if ( e.Name ~== "swwmballcheat" ) else if ( e.Name ~== "swwmballcheat" )
{ {
@ -231,19 +241,30 @@ extend Class SWWMHandler
} }
else if ( e.Name ~== "swwmfartcheat" ) else if ( e.Name ~== "swwmfartcheat" )
{ {
let mo = players[e.Args[0]].mo;
if ( consoleplayer == e.Args[0] ) if ( consoleplayer == e.Args[0] )
{ {
Console.Printf("\cyI'd rather not reimplement that one.\c-"); Console.Printf("\cyI regret implementing this.\c-");
S_StartSound("misc/nocheat",CHAN_ITEM,CHANF_UI); S_StartSound("menu/buyinv",CHAN_ITEM,CHANF_UI);
S_StartSound("misc/omgfart",CHAN_VOICE,CHANF_UI);
} }
else mo.A_StartSound("misc/omgfart",CHAN_VOICE,CHANF_OVERLAP,1.,.5);
let f = mo.Spawn("SWWMGasCloudSpawner",mo.Vec3Angle(mo.radius*.5,mo.angle-180,mo.Height*.4));
f.target = mo;
f.angle = mo.angle+180;
f.pitch = -mo.pitch;
} }
else if ( e.Name ~== "swwmsupercheat" ) else if ( e.Name ~== "swwmsupercheat" )
{ {
if ( consoleplayer == e.Args[0] ) if ( consoleplayer == e.Args[0] )
{ {
Console.Printf("\cyNo, you're the Demolitionist.\c-"); Console.Printf("\cyNo, you're the Demolitionist. But with this thing, you'll also be invincible.\c-");
S_StartSound("misc/nocheat",CHAN_ITEM,CHANF_UI); S_StartSound("menu/buyinv",CHAN_ITEM,CHANF_UI);
S_StartSound("misc/p_pkup",CHAN_VOICE,CHANF_UI);
} }
let i = InvinciballPower(players[e.Args[0]].mo.FindInventory("InvinciballPower"));
if ( i ) i.EffectTics += i.default.EffectTics;
else players[e.Args[0]].mo.GiveInventory("InvinciballPower",1);
} }
else if ( e.Name ~== "swwmstonecheat" ) else if ( e.Name ~== "swwmstonecheat" )
{ {
@ -342,11 +363,11 @@ extend Class SWWMHandler
if ( kstr != cht[i].Left(kstr.length()) ) continue; if ( kstr != cht[i].Left(kstr.length()) ) continue;
matchany = true; matchany = true;
if ( kstr != cht[i] ) continue; if ( kstr != cht[i] ) continue;
if ( (i > 4) && !nostalgic ) if ( (i > 4) && !swwm_oldcheat )
{ {
let m = new("SWWMSecretZanavethMessage").Init(); let m = new("SWWMSecretZanavethMessage").Init();
StatusBar.AttachMessage(m,-1232); StatusBar.AttachMessage(m,-1232);
nostalgic = true; CVar.FindCVar('swwm_oldcheat').SetBool(true);
} }
if ( SWWMUtility.CheatsDisabled(consoleplayer) ) if ( SWWMUtility.CheatsDisabled(consoleplayer) )
{ {

View file

@ -367,7 +367,7 @@ Class SWWMSecretZanavethMessage : HUDMessageBase
int idx = punctuation.IndexOf(ch); int idx = punctuation.IndexOf(ch);
if ( idx >= 0 ) delay += (idx*2)+1; if ( idx >= 0 ) delay += (idx*2)+1;
charcnt++; charcnt++;
if ( charcnt >= TotalLength() ) delay += 90; if ( charcnt >= TotalLength() ) delay += (seqnum==5)?90:40;
} }
override bool Tick() override bool Tick()

View file

@ -163,6 +163,134 @@ Class FroggyChair : Actor
} }
} }
// a flag
Class SWWMFlag : Actor
{
int seq;
override bool Used( Actor user )
{
seq = (seq+1)%4;
switch ( seq )
{
case 0:
SetStateLabel("Spawn");
break;
case 1:
SetStateLabel("FlagPride");
break;
case 2:
SetStateLabel("FlagTrans");
break;
case 3:
SetStateLabel("FlagEnby");
break;
}
A_StartSound("bestsound",CHAN_BODY,CHANF_OVERLAP);
return true;
}
Default
{
+SOLID;
+NOTELEPORT;
+DONTSPLASH;
Radius 2;
Height 104;
}
States
{
Spawn:
XZW1 ABCDEFGHIJKLMNOPQRSTUVWXYZ 2;
XZW2 ABCDEFGHIJKLMNOPQRSTUVWXYZ 2;
XZW3 ABCDEFGH 2;
Loop;
FlagPride:
XZW3 IJKLMNOPQRSTUVWXYZ 2;
XZW4 ABCDEFGHIJKLMNOPQRSTUVWXYZ 2;
XZW5 ABCDEFGHIJKLMNOP 2;
Loop;
FlagTrans:
XZW5 QRSTUVWXYZ 2;
XZW6 ABCDEFGHIJKLMNOPQRSTUVWXYZ 2;
XZW7 ABCDEFGHIJKLMNOPQRSTUVWX 2;
Loop;
FlagEnby:
XZW7 YZ 2;
XZW8 ABCDEFGHIJKLMNOPQRSTUVWXYZ 2;
XZW9 ABCDEFGHIJKLMNOPQRSTUVWXYZ 2;
XZWA ABCDEF 2;
Loop;
}
}
// oof
Class SWWMGasCloudSpawner : Actor
{
Default
{
Radius .1;
Height 0.;
+NOBLOCKMAP;
+NOTELEPORT;
+DONTSPLASH;
+NOINTERACTION;
}
override void Tick()
{
if ( !(special1%5) )
{
Vector3 x, y, z;
[x, y, z] = swwm_CoordUtil.GetAxes(pitch,angle,roll);
let c = Spawn("SWWMGasCloud",level.Vec3Offset(pos,x*(20+special1*12)));
c.target = target;
c.specialf1 = 1+special1/10.;
}
special1++;
if ( special1 > 20 ) Destroy();
}
}
Class SWWMGasCloud : Actor
{
Default
{
Radius .1;
Height 0.;
+NOBLOCKMAP;
+NOTELEPORT;
+DONTSPLASH;
+NOINTERACTION;
}
override void Tick()
{
for ( int i=0; i<2; i++ )
{
let e = Spawn("SWWMFart",level.Vec3Offset(pos,specialf1*(FRandom[ExploS](-20,20),FRandom[ExploS](-20,20),FRandom[ExploS](-20,20))));
e.target = target;
e.scale *= specialf1;
}
SWWMUtility.DoExplosion(self,Random[ExploS](2,6),0,60*specialf1,40,DE_NOBLEED|DE_NOSPLASH|DE_THRUWALLS|DE_HOWL,'Gas',target);
special1++;
if ( special1 >= 90 ) Destroy();
}
}
Class SWWMFart : SWWMHalfSmoke
{
Default
{
RenderStyle "Add";
Alpha .1;
}
States
{
Spawn:
FRT1 ABCDEFGHIJKLMNOPQRSTUVWXYZ 2 Bright;
FRT2 ABCDEFGHI 2 Bright;
Stop;
}
}
// yay! // yay!
Class FancyConfetti : Actor Class FancyConfetti : Actor
{ {