////////////////////////////////////////
//       TELLY HUNTER (SENTINEL)      //
////////////////////////////////////////

Actor TellyHunter 30910
{
//$Category MM8BDM-Monsters (Strife)
//$Title Telly Hunter (Sentinel)
//$Sprite D044B8B2
Tag "Telly Hunter"
Translation "192:192=192:192", "198:198=198:198"
MONSTER
Species "TellyHunterMonster"
BloodType "MonsterRipperProtect_Helper"
//+NOBLOOD
+FLOORCLIP
+MISSILEMORE
+LOOKALLAROUND
+NOGRAVITY
+DROPOFF
+NOBLOCKMONST
Health 100
Radius 23
Height 53
Speed 1 // 7
MinMissileChance 150
PainChance 255
PainChance "WindStorm", 255
PainChance "GravityHold", 255
PainChance "ConcreteShot", 255
PainChance "TornadoBlow", 255
PainChance "BlackHoleBomb", 255
PainChance "TimeStopper", 256
DamageFactor "Dummy", 0.0
SeeSound "item/rushdetect"
PainSound "monster/mm2pain"
DeathSound "misc/pumpsplash"
ActiveSound "misc/repairing"
Obituary "$OB_SENTINEL"
Mass 9999
Scale 2.5
States
{
Spawn:
TEL2 A 0 NoDelay A_Stop
TEL2 A 0 A_TakeInventory("CutterFlag",1)
TEL2 A 0 ACS_NamedExecuteAlways("Monster_PassivePain",0)
TEL2 A 0 A_SpawnItemEx("MonsterHitbox23_53")
TEL2 A 5 A_Look
TEL2 B 5
TEL2 C 5 A_Look
TEL2 D 5
TEL2 M 5 A_Look
TEL2 D 5
TEL2 E 5 A_Look
TEL2 F 5
Goto Spawn+4

FirstSee:
TEL2 A 0 A_TakeInventory("CutterFlag",1)
TEL2 A 0 ACS_NamedExecuteAlways("Monster_PassivePain",0)
TEL2 A 0 Thing_SetTranslation(0,30501) //ALLRED
TEL2 A 2 Bright
TEL2 A 0 Thing_SetTranslation(0,30910) //TELLYHUNTERMONSTER
TEL2 A 0 A_GiveInventory("CutterFlag",1)
Goto See

See:
TEL2 A 0 A_JumpIfInventory("CutterFlag",1,1)
Goto FirstSee
TEL2 B 1 A_SentinelBob
TEL2 BBCCC 1 A_ChangeVelocity(1.6,0,momz,3)
TEL2 D 1 A_Chase
TEL2 DDMMM 1 A_ChangeVelocity(1.6,0,momz,3)
TEL2 D 1 A_SentinelBob
TEL2 DDEEE 1 A_ChangeVelocity(1.6,0,momz,3)
TEL2 F 1 A_Chase
TEL2 FFAAA 1 A_ChangeVelocity(1.6,0,momz,3)
Loop

Missile:
TEL2 G 0 A_Stop
TEL2 I 2 A_FaceTarget
TEL2 J 2
TEL2 J 0 A_PlaySoundEx("misc/sparkzap","Weapon")
TEL2 J 0 A_CustomMissile("TellyHunterShot",19,0,0,0,0)
TEL2 J 0 Thing_SetTranslation(0,30504) //MISSILEFLASH
TEL2 K 2 Bright
TEL2 K 0 Thing_SetTranslation(0,30910) //TELLYHUNTERMONSTER
TEL2 L 3
TEL2 D 3
TEL2 G 4 A_SentinelRefire
Goto Missile+2

Pain:
TEL2 H 0 A_Stop
Pain.WindStorm:
Pain.GravityHold:
Pain.ConcreteShot:
Pain.TornadoBlow:
Pain.BlackHoleBomb:
TEL2 H 0 Thing_SetTranslation(0,30910) //TELLYHUNTERMONSTER
TEL2 H 8 A_Pain
Goto See

Pain.TimeStopper:
TEL2 H 0 A_Stop
TEL2 H 0 Thing_SetTranslation(0,30910) //TELLYHUNTERMONSTER
TEL2 H 0 A_ChangeFlag("NOPAIN",true)
TEL2 "##############################################################################################################################################################################################################################################################################################################################################################" 1 A_SpawnItemEx("TimeStopGFX",random(8,56),0,random(0,72),0,0,0,random(0,359),0,80)
TEL2 H 0 A_ChangeFlag("NOPAIN",false)
Goto See

Death.WindStorm:
Death.GravityHold:
Death.TornadoBlow:
BlowDeath:
TEL2 H 0 A_Stop
TEL2 H 0 Thing_SetTranslation(0,30910) //TELLYHUNTERMONSTER
TEL2 H 0 A_ChangeFlag("SHOOTABLE",false)
TEL2 H 0 A_ChangeFlag("NODAMAGE",false)
TEL2 H 0 A_ChangeFlag("SOLID",false)
TEL2 H 1 ThrustThingZ(0,10,0,1)
TEL2 H 0 A_JumpIf(ceilingz-z<64,"Death")
TEL2 H 0 A_GiveInventory("BlowDeathTimer",1)
TEL2 H 0 A_JumpIfInventory("BlowDeathTimer",35,"Death")
Goto BlowDeath+5

Death:
XDeath:
TEL2 H 0 A_Stop
TEL2 H 0 A_FaceTarget
TEL2 H 0 Thing_SetTranslation(0,30910) //TELLYHUNTERMONSTER
TEL2 H 2 A_NoBlocking
TEL2 H 0 A_Scream
TEL2 H 0 A_PlaySoundEx("monster/mm2pain","Body")
TEL2 H 0 A_SpawnItemEx("ExplosionEffect1",0,0,16)
TEL2 H 0 A_JumpIf(CallACS("Monster_CanDropWeapon"),4)
TEL2 H 0 A_Jump(1,2)
TEL2 H 0 A_JumpIf(True,2)
TEL2 H 0 ACS_NamedExecuteWithResult("Monster_WeaponDrop",6) //Dusk Bringer
TEL2 H 0
Stop
}
}

Actor TellyHunterShot
{
PROJECTILE
Translation "0:40=4:4", "41:41=4:4", "42:255=4:4"
+BRIGHT
Radius 10
Height 8
Speed 40
FastSpeed 55
Damage (12)
DamageType "Buster"
RenderStyle Normal
Scale 2.5
States
{
Spawn:
YBIT G 1 NoDelay A_SpawnItemEx("TellyHunterShot_Trail")
loop
}
}

Actor TellyHunterShot_Trail : BasicGraphicEffect
{
Translation "0:255=198:198"
Renderstyle Add
Alpha 0.4
Scale 2.5
States
{
Spawn:
YBIT GGGGGGGGGGGG 1 NoDelay A_SetScale(ScaleX-0.2,ScaleY-0.2)
Stop
}
}

Actor TellyHunter_Replaced : TellyHunter replaces Sentinel {}

////////////////////////////////////////////////////////////////////
//       TELLY HUNTER RUST (SPAWNED BY WARPED JOE SURVEYORS)      //
////////////////////////////////////////////////////////////////////

Actor TellyHunter_Rust : TellyHunter
{
//$Category MM8BDM-Monsters (Strife)
//$Title Surveyor Telly (Sentinel)
//$Sprite D045B8B2
Tag "Surveyor Telly"
Translation "192:192=226:226", "198:198=233:233"
+MISSILEMORE
Health 40
States
{
Spawn:
TEL2 A 0 NoDelay A_Stop
TEL2 A 0 A_TakeInventory("CutterFlag",1)
TEL2 A 0 ACS_NamedExecuteAlways("Monster_PassivePain",0)
TEL2 A 0 A_SpawnItemEx("MonsterHitbox23_53")
TEL2 A 5 A_Look
TEL2 B 5
TEL2 C 5 A_Look
TEL2 D 5
TEL2 M 5 A_Look
TEL2 D 5
TEL2 E 5 A_Look
TEL2 F 5
Goto Spawn+4

FirstSee:
TEL2 A 0 A_TakeInventory("CutterFlag",1)
TEL2 A 0 ACS_NamedExecuteAlways("Monster_PassivePain",0)
TEL2 A 0 Thing_SetTranslation(0,30501) //ALLRED
TEL2 A 2 Bright
TEL2 A 0 Thing_SetTranslation(0,30911) //TELLYHUNTERRUSTMONSTER
TEL2 A 0 A_GiveInventory("CutterFlag",1)
Goto See

Missile:
TEL2 G 0 A_Stop
TEL2 I 2 A_FaceTarget
TEL2 J 2
TEL2 J 0 A_PlaySoundEx("misc/sparkzap","Weapon")
TEL2 J 0 A_CustomMissile("TellyHunterShot",19,0,0,0,0)
TEL2 J 0 Thing_SetTranslation(0,30504) //MISSILEFLASH
TEL2 K 2 Bright
TEL2 K 0 Thing_SetTranslation(0,30911) //TELLYHUNTERRUSTMONSTER
TEL2 L 3
TEL2 D 3
TEL2 G 4 A_SentinelRefire
Goto Missile+2

Pain:
TEL2 H 0 A_Stop
Pain.WindStorm:
Pain.GravityHold:
Pain.ConcreteShot:
Pain.TornadoBlow:
Pain.BlackHoleBomb:
TEL2 H 0 Thing_SetTranslation(0,30911) //TELLYHUNTERRUSTMONSTER
TEL2 H 8 A_Pain
Goto See

Pain.TimeStopper:
TEL2 H 0 A_Stop
TEL2 H 0 Thing_SetTranslation(0,30911) //TELLYHUNTERRUSTMONSTER
TEL2 H 0 A_ChangeFlag("NOPAIN",true)
TEL2 "##############################################################################################################################################################################################################################################################################################################################################################" 1 A_SpawnItemEx("TimeStopGFX",random(8,56),0,random(0,72),0,0,0,random(0,359),0,80)
TEL2 H 0 A_ChangeFlag("NOPAIN",false)
Goto See

Death.WindStorm:
Death.GravityHold:
Death.TornadoBlow:
BlowDeath:
TEL2 H 0 A_Stop
TEL2 H 0 Thing_SetTranslation(0,30911) //TELLYHUNTERRUSTMONSTER
TEL2 H 0 A_ChangeFlag("SHOOTABLE",false)
TEL2 H 0 A_ChangeFlag("NODAMAGE",false)
TEL2 H 0 A_ChangeFlag("SOLID",false)
TEL2 H 1 ThrustThingZ(0,10,0,1)
TEL2 H 0 A_JumpIf(ceilingz-z<64,"Death")
TEL2 H 0 A_GiveInventory("BlowDeathTimer",1)
TEL2 H 0 A_JumpIfInventory("BlowDeathTimer",35,"Death")
Goto BlowDeath+5

Death:
XDeath:
TEL2 H 0 A_Stop
TEL2 H 0 A_FaceTarget
TEL2 H 0 Thing_SetTranslation(0,30911) //TELLYHUNTERRUSTMONSTER
TEL2 H 2 A_NoBlocking
TEL2 H 0 A_Scream
TEL2 H 0 A_TakeInventory("AdaptorFlag",99,0,AAPTR_MASTER)
TEL2 H 0 A_PlaySoundEx("monster/mm2pain","Body")
TEL2 H 0 A_SpawnItemEx("ExplosionEffect1",0,0,16)
TEL2 H 0 A_JumpIf(CallACS("Monster_CanDropWeapon"),4)
TEL2 H 0 A_Jump(1,2)
TEL2 H 0 A_JumpIf(True,2)
TEL2 H 0 ACS_NamedExecuteWithResult("Monster_WeaponDrop",6) //Dusk Bringer
TEL2 H 0
Stop
}
}

Actor TellyHunter_Deployer
{
Translation "192:192=226:226", "193:193=198:198", "198:198=233:233"
PROJECTILE
Radius 18
Height 18
Speed 12
Gravity 1.5
-NOGRAVITY
+HEXENBOUNCE
+CANBOUNCEWATER
+RIPPER
+THRUACTORS
+THRUGHOST
Scale 2.5
States
{
Spawn:
TNT1 A 0 NoDelay ThrustThingZ(0,28,0,1)
TL2I AABB 1 A_CheckFloor("Bounce")
Goto Spawn+1

Bounce:
TL2I A 0 A_PlaySoundEx("weapon/megaball","Body")
TL2I A 0 A_Stop
TL2I A 0 ThrustThingZ(0,35,0,1)
TL2I A 0 A_SetGravity(0.245)
TL2I ABABABABA 2
TL2I CDEFG 3
TL2I A 0 A_PlaySoundEx("misc/archiveawake","Body")
TL2I H 3
TL2I A 0 A_Stop
TNT1 A 0 A_SpawnItemEx("TellyHunter_Deployed",0,0,-18,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
Stop

Death:
XDeath:
TNT1 A 0 A_TakeFromTarget("AdaptorFlag",99)
Stop
}
}

Actor TellyHunter_Deployed : TellyHunter_Rust
{
Translation "192:192=226:226", "193:193=198:198", "198:198=233:233"
SeeSound "Silence"
DamageFactor "TellyHunter", 1.0
PainChance "TellyHunter", 0
Obituary "$OB_ACOLYTESENTINEL"
States
{
Spawn:
TEL2 A 0 NoDelay A_Stop
TEL2 A 0 A_TakeInventory("CutterFlag",1)
TEL2 A 0 ACS_NamedExecuteAlways("Monster_PassivePain",0)
TEL2 A 0 A_SpawnItemEx("MonsterHitbox23_53")
TEL2 LDD 5
TEL2 A 5 A_Look
TEL2 B 5
TEL2 C 5 A_Look
TEL2 D 5
TEL2 M 5 A_Look
TEL2 D 5
TEL2 E 5 A_Look
TEL2 F 5
Goto Spawn+7

FirstSee:
TEL2 A 0 A_TakeInventory("CutterFlag",1)
TEL2 A 0 ACS_NamedExecuteAlways("Monster_PassivePain",0)
TEL2 A 2 Bright
TEL2 A 0 A_GiveInventory("CutterFlag",1)
Goto See

See:
TEL2 A 0 A_JumpIfInventory("CutterFlag",1,1)
Goto FirstSee
TEL2 B 1 A_SentinelBob
TEL2 BBCCC 1 A_ChangeVelocity(1.6,0,momz,3)
TEL2 D 1 A_Chase
TEL2 DDMMM 1 A_ChangeVelocity(1.6,0,momz,3)
TEL2 D 1 A_SentinelBob
TEL2 DDEEE 1 A_ChangeVelocity(1.6,0,momz,3)
TEL2 F 1 A_Chase
TEL2 FFAAA 1 A_ChangeVelocity(1.6,0,momz,3)
Goto Super::See

Pain.TellyHunter:
Death.TellyHunter:
TEL2 A 0 Thing_SetTranslation(0,30503) //ALLWHITE
TEL2 AAAA 1 Bright A_Stop
TEL2 A 0 Thing_SetTranslation(0,30911) //TELLYHUNTERRUSTMONSTER
TEL2 A 0 A_ChangeFlag("NOGRAVITY",False)
TEL2 A 0 A_ChangeFlag("NONSHOOTABLE",True)
TEL2 A 0 A_ChangeFlag("THRUACTORS",True)
TEL2 A 0 A_ChangeFlag("THRUGHOST",True)
TEL2 A 0 A_ChangeVelocity(frandom(-2,2),frandom(-2,2),random(7,12),CVF_RELATIVE|CVF_REPLACE)
TEL2 A 0 A_PlaySound("misc/catcherdrop",CHAN_BODY,0.5)
TEL2 NNNNOOOOPPPPQQQQ 1 A_CheckFloor("XDeath")
Goto Death.TellyHunter+12

Death:
XDeath:
TEL2 H 0 A_Stop
TEL2 H 0 A_FaceTarget
TEL2 H 0 Thing_SetTranslation(0,30911) //TELLYHUNTERRUSTMONSTER
TEL2 H 0 A_NoBlocking
TEL2 H 0 A_Scream
TEL2 H 0 A_TakeInventory("AdaptorFlag",99,0,AAPTR_MASTER)
TEL2 H 0 A_PlaySoundEx("monster/mm2pain","Body")
TEL2 H 0 A_SpawnItemEx("ExplosionEffect1",0,0,16)
TEL2 H 0 A_JumpIf(CallACS("Monster_CanDropWeapon"),4)
TEL2 H 0 A_Jump(1,2)
TEL2 H 0 A_JumpIf(True,2)
TEL2 H 0 ACS_NamedExecuteWithResult("Monster_WeaponDrop",6) //Dusk Bringer
TEL2 H 0
Stop
}
}