/***************************************************************************** * DECOHack Patch File ****************************************************************************/ #include #include // Legacy of Rust Sate and Thing Protection set state free safety on state protect 1100 to 1566 each thing from 151 to 209 {} // Removes number conversion warnings when compiling set suppress warning "conversion" on // Your DECOHack code here ... //#include "strings.dh" auto thing cacoferno_ball {} auto thing cacoferno_explode {} auto thing cacoferno "Cacoferno" {} // Damage and radius values for spawner #define cacoferno_explodeDamage 128 #define cacoferno_explodeRadius 128 #define cacoferno_radius 31 custom thing property bloodcolor "Blood color" int // --------------------------------------------------------------- // Projectile / effect things are defined FIRST so that their flags // are set before A_MonsterProjectile / A_SpawnObject are parsed. // --------------------------------------------------------------- thing cacoferno_ball { health 1000 speed 20 radius 6 height 8 damage 8 reactiontime 8 painchance 0 mass 100 seesound "firsht" deathsound "firxpl" clear flags +NOBLOCKMAP +MISSILE +DROPOFF +NOGRAVITY states { spawn: CFFB ABC 4 bright loop death: CFFB DEFG 4 bright TNT1 A 0 A_AddFlags(TRANSLUCENT, 0) CFFB HI 3 bright CFFB J 2 bright stop raise: TROO A -1 stop } } thing cacoferno_explode { clear flags //+NOSECTOR //+NOBLOCKMAP +NOCLIP states { spawn: SLOD S 1 bright death: TNT1 A 0 A_PlaySound(emcaco,0) //(barexp, 0) SLOD S 7 bright SLOD TU 8 bright TNT1 A 20 stop } } thing cacoferno { //$Category c_Monsters //$Colour 13 //$Sprite HED3A1 EdNum 6000 bloodcolor 3 health 400 speed 8 radius cacoferno_radius height 56 damage 0 reactiontime 8 painchance 128 mass 400 seesound "cacsit" painsound "dmpain" deathsound "cacdth" activesound "dmact" clear flags +SOLID +SHOOTABLE +FLOAT +NOGRAVITY +COUNTKILL states { spawn: HED3 A 10 A_Look loop see: HED3 A 3 A_Chase loop missile: HED3 BC 5 A_FaceTarget TNT1 A 0 A_JumpIfTargetCloser(missile_single, 400) TNT1 A 0 A_RandomJump(missile_volley, 192) goto missile_single missile_single: HED3 D 5 bright A_MonsterProjectile(cacoferno_ball, 0, 0, 0, 0) goto see missile_volley: TNT1 A 0 A_RandomJump(missile_volley2, 128) missile_volley1: HED3 D 1 bright A_MonsterProjectile(cacoferno_ball, 12, 0, 8, 0) HED3 D 2 bright A_MonsterProjectile(cacoferno_ball, -6, 0, -10, 0) HED3 D 2 bright A_MonsterProjectile(cacoferno_ball, 3, 0, 10, 0) HED3 A 4 A_FaceTarget goto see missile_volley2: HED3 D 1 bright A_MonsterProjectile(cacoferno_ball, -12, 0, -10, 0) HED3 D 4 bright A_MonsterProjectile(cacoferno_ball, 6, 0, 8, 0) HED3 D 4 bright A_MonsterProjectile(cacoferno_ball, -3, 0, 0, 0) HED3 A 4 A_FaceTarget goto see pain: HED3 E 3 HED3 E 3 A_Pain HED3 F 6 goto see death: HED3 I 0 A_JumpIfTargetCloser(deathExplode, 100) HED3 I 0 A_RandomJump(deathExplode,85)//, 85) // Always jump while testing (128 == 50%) HED3 I 8 HED3 J 8 A_Scream HED3 KL 8 HED3 M 2 A_Fall HED3 NO 2 HED3 O -1 stop deathExplode: HD3X B 0 { A_RadiusDamage(cacoferno_explodeRadius, cacoferno_explodeDamage) A_SpawnObject(cacoferno_explode, 0, 0, 0, 0, 0, 0, 0) } HD3X A 8 HD3X B 4 HD3X B 2 A_Scream HD3X CD 8 HD3X EFG 2 A_Fall HD3X HIJ 2 HD3X J -1 stop } }