
Zscript:
Spoiler:TEXTURES:Code: Select all
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
// 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.