
Zscript:
Spoiler:TEXTURES:
- Code: Select all • Expand view
class firestarter : supershotgun replaces supershotgun
{
default
{
Weapon.SlotNumber 3;
}
states
{
Fire:
SHT2 A 3;
SHT2 A 7 A_FireBullets(10.0,10.0,10,(1),"wpglob");
SHT2 B 7;
SHT2 C 7 A_CheckReload;
SHT2 D 7 A_OpenShotgun2;
SHT2 E 7;
SHT2 F 7 A_LoadShotgun2;
SHT2 G 6;
SHT2 H 6 A_CloseShotgun2;
SHT2 A 5 A_ReFire;
Goto Ready;
}
}
class wpglob : bulletpuff
{
default
{
Radius 2;
Height 2;
Speed 10;
scale 0.2;
+puffonactors;
+hittracer;
vspeed 0;
}
States
{
crash:
FBOM CDEFCDEFCDEFCDEFCDEFCDEFCDEFCDEF 4 bright A_SpawnItemEx("wpglobsmoke");
stop;
spawn:
TNT1 A 0;
TNT1 A 1 A_SpawnItemEx("WPHitActor",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS);
stop;
melee:
goto spawn;
}
}
class wpglobsmoke : actor
{
default
{
+noblockmap;
+nogravity;
//+nointeraction;
radius 2;
height 2;
scale 0.2;
+FORCEXYBILLBOARD;
renderstyle "translucent";
alpha 0.5;
// VSpeed 12;
}
states
{
spawn:
TNT1 A 0 nodelay
{
thrustthingz(0,2,0,0);
thrustthing(random(0,255),1,0,0);
}
goto fadeloop;
fadeloop:
SMK2 A 1 A_fadeout(0.005);
SMK2 A 0 A_setscale(scalex+0.004);
loop;
}
}
class WPHitActor : actor
{
int lifetimer;
int burntime;
int burntics;
default
{
+noblockmap;
}
override void BeginPlay()
{
burntics = 7;
burntime = 30;
}
states
{
spawn:
TNT1 A 7 nodelay;
TNT1 A 0
{
statelabel nextstate = "spawn";
A_Warp(AAPTR_TRACER);
A_spawnitemex("wpactorflame",frandom(-tracer.radius, tracer.radius),frandom(-tracer.radius, tracer.radius),frandom(-tracer.height, tracer.height),0,0,0,0,SXF_NOCHECKPOSITION);
A_DamageTracer((1));
lifetimer++;
if(lifetimer >= burntime)
{
nextstate = "death";
}
return ResolveState(nextstate);
}
stop;
death:
stop;
}
}
class wpactorflame : actor
{
default
{
+noblockmap;
+nogravity;
//+nointeraction;
radius 2;
height 2;
scale 0.2;
+FORCEXYBILLBOARD;
// VSpeed 12;
}
States
{
Spawn:
TNT1 A 0 nodelay thrustthingz(0,5,0,0);
FBOM ABCDEFGH 3 Bright;
goto smokestart;
smokestart:
TNT1 A 0
{
thrustthingz(0,2,0,0);
thrustthing(random(0,255),1,0,0);
A_SetTranslucent(0.5,0);
A_SetScale(0.3);
}
goto smoke;
smoke:
SMK2 A 1 A_fadeout(0.005);
SMK2 A 0 A_setscale(scalex+0.004);
loop;
}
}
class grensmoke : actor
{
default
{
+nogravity;
+noblockmap;
+nointeraction;
height 0;
radius 0;
alpha 0.3;
renderstyle "translucent";
scale 0.2;
}
states
{
spawn:
TNT1 A 0;
SMOK A 1 A_fadeout(0.01);
SMOK A 0 A_setscale(scalex+0.001);
loop;
death:
stop;
}
}
class wptrail : actor
{
default
{
+nogravity;
+noblockmap;
+nointeraction;
height 0;
radius 0;
alpha 0.3;
renderstyle "translucent";
scale 0.03;
}
states
{
spawn:
TNT1 A 0;
SMOK A 1 A_fadeout(0.01);
SMOK A 0 A_setscale(scalex+0.005);
loop;
death:
stop;
}
}
Spoiler:Screenshot:
- Code: Select all • Expand view
// Texture definitions generated by SLADE3
// on Sun Jan 8 18:37:16 2017
Sprite "BOOMA0", 73, 60
{
XScale 2.000
YScale 2.000
Offset 37, 31
Patch "MISLB0", 0, 0
{
Translation "208:223=224:231", "232:235=90:111", "191:191=251:251", "175:175=208:208", "177:183=213:217", "184:191=92:111", "32:47=80:111", "176:176=96:96"
}
}
Sprite "BOOMB0", 73, 60
{
XScale 1.700
YScale 1.700
Offset 37, 31
Patch "MISLB0", 0, 0
{
Translation "208:223=224:231", "232:235=90:111", "191:191=251:251", "175:175=208:208", "177:183=213:217", "184:191=92:111", "32:47=80:111", "176:176=96:96"
}
}
Sprite "BOOMC0", 88, 72
{
XScale 1.500
YScale 1.500
Offset 45, 37
Patch "MISLC0", 0, 0
{
Translation "177:185=224:228", "186:187=213:214", "188:189=96:98", "190:190=108:108", "191:191=100:100", "44:47=109:111"
}
}
Sprite "BOOMD0", 88, 72
{
XScale 1.200
YScale 1.200
Offset 45, 37
Patch "MISLC0", 0, 0
{
Translation "177:185=224:228", "186:187=213:214", "188:189=96:98", "190:190=108:108", "191:191=100:100", "44:47=109:111"
}
}
Sprite "BOOME0", 103, 86
{
Offset 52, 46
Patch "MISLD0", 0, 0
{
Translation "191:191=0:0", "188:190=96:111", "45:47=105:111"
}
}
Sprite "BOOMF0", 103, 86
{
XScale 0.800
YScale 0.800
Offset 52, 46
Patch "MISLD0", 0, 0
{
Translation "191:191=0:0", "188:190=96:111", "45:47=105:111"
}
}
Sprite "FBOMA0", 36, 32
{
XScale 1.200
Offset 19, 25
Patch "FIREA0", 0, 2
{
FlipX
}
Patch "FIREA0", 0, 2
{
FlipX
Translation "160:167=224:231"
Alpha 0.40
Style Add
}
}
Sprite "FBOMB0", 39, 48
{
YScale 1.200
Offset 20, 34
Patch "FIREB0", 0, 2
{
FlipX
}
Patch "FIREB0", 0, 2
{
FlipX
Translation "160:167=224:231"
Alpha 0.40
Style Add
}
}
Sprite "FBOMC0", 42, 71
{
YScale 1.600
Offset 20, 47
Patch "FIREC0", 0, 2
{
FlipX
}
Patch "FIREC0", 0, 2
{
FlipX
Translation "160:167=224:231"
Alpha 0.40
Style Add
}
}
Sprite "FBOMD0", 45, 80
{
XScale 0.800
YScale 1.500
Offset 22, 52
Patch "FIRED0", 0, 2
{
FlipX
}
Patch "FIRED0", 0, 2
{
FlipX
Translation "160:167=224:231"
Alpha 0.40
Style Add
}
}
Sprite "FBOME0", 43, 76
{
XScale 0.800
YScale 1.400
Offset 21, 52
Patch "FIREE0", 0, 0
{
FlipX
}
Patch "FIREE0", 0, 0
{
FlipX
Translation "160:167=224:231"
Alpha 0.40
Style Add
}
}
Sprite "FBOMF0", 42, 71
{
XScale 0.800
YScale 1.400
Offset 21, 52
Patch "FIREF0", 0, 0
{
FlipX
}
Patch "FIREF0", 0, 0
{
FlipX
Translation "160:167=224:231"
Alpha 0.40
Style Add
}
}
Sprite "FBOMG0", 28, 48
{
XScale 0.700
YScale 1.200
Offset 14, 38
Patch "FIREG0", 0, 0
{
FlipX
}
Patch "FIREG0", 0, 0
{
FlipX
Translation "160:167=224:231"
Alpha 0.40
Style Add
}
}
Sprite "FBOMH0", 16, 17
{
Offset 8, 14
Patch "FIREH0", 0, 0
{
FlipX
}
Patch "FIREH0", 0, 0
{
FlipX
Translation "160:167=224:231"
Alpha 0.40
Style Add
}
}
Texture "FLAKE1", 25, 13
{
Patch "BFE1D0", 0, -8
}
Texture "FLAKE2", 65, 63
{
Patch "FLAKE1", -1, 25
Patch "FLAKE1", 24, 25
{
FlipX
FlipY
}
Patch "FLAKE1", 18, 6
{
FlipY
Rotate 90
}
Patch "FLAKE1", 18, 32
{
Rotate -90
}
}
Texture "SMOKE", 64, 64
{
Patch "BAL7C0", 14, 12
{
Translation "112:112=4:4", "113:116=81:84", "117:120=85:88", "120:123=92:94"
Alpha 0.40
Style Translucent
}
Patch "BAL7C0", 22, 20
{
Translation "112:127=80:111"
Alpha 0.40
Style Translucent
}
Patch "BAL7C0", 3, 19
{
Translation "112:127=80:111"
Alpha 0.40
Style Translucent
}
Patch "BAL7C0", 10, 12
{
Translation "112:127=80:111"
Alpha 0.40
Style Translucent
}
Patch "BAL7C0", 18, 11
{
Translation "112:127=80:111"
Alpha 0.40
Style Translucent
}
Patch "BAL7C0", 15, 23
{
Translation "112:127=80:111"
Alpha 0.40
Style Translucent
}
Patch "BAL7C0", 21, 24
{
Translation "112:127=80:111"
Alpha 0.40
Style Translucent
}
Patch "BAL7C0", 27, 17
{
Translation "112:127=80:111"
Alpha 0.40
Style Translucent
}
}
Sprite "SMOKA0", 64, 64
{
Offset 32, 32
Patch "SMOKE", 0, 0
{
Translation "86:89=4:4", "89:111=80:95"
}
}
Sprite "SMOKB0", 64, 64
{
Offset 32, 32
Patch "SMOKE", 0, 0
{
FlipX
FlipY
Translation "86:89=4:4", "89:111=80:95"
}
}
Sprite "SMK2A0", 64, 64
{
Offset 32, 32
Patch "SMOKE", 0, 0
{
Translation "80:111=[129,129,129]:[0,0,0]"
}
}
// End of texture definitions
Spoiler:
EDIT:
Here's the opposite of the former, a grenade (replaces rocket launcher projectile) that freezes enemies. It's supposed to be more or less compatible with any monster replacement. I would very much appreciate bug reports on this

Note: it is NOT compatible with the fire code above right now and will probably crash the game if you attempt combining them.