//	Movement recoded
actor Toadman : SemiHighArmorClass
{
Player.ScoreIcon "TOADMUGS"
player.startitem "BaseFlagPack", 1
player.displayname "Toadman"
player.soundclass "toadmanc"
player.startitem "SemiHighArmor"
player.startitem "RainFlushBoss"
player.startitem "Base28Ammo",28
player.jumpz 14
player.viewheight 48
player.startitem "UltimateAttackItem8"
player.startitem "UltSoundWatcherSpawn8"
player.startitem "IsFromMM4"
States
{
Spawn:
TOAD A 0
TOAD R 1 A_JumpIf(z-floorz>0, "Jumping")
TOAD A 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+2

See:
TOAD RRRRRSSSSSTTTTTSSSSS 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+1

Jumping:
TOAD D 1 A_JumpIf(z-floorz<=0, "Spawn")
wait

Missile:
TOAD FFFFFFFF 1 A_JumpIf(z-floorz>0, "JumpingMissile")
goto Spawn+1

JumpingMissile:
TOAD QQQQQQQQ 1 A_JumpIf(z-floorz<=0, "Missile")
goto Jumping

Animation1:
TOAD IJKLMNOP 2
TOAD FGFG 2
goto Spawn+2

Animation2:
TOAD B 5
goto Spawn+2

Animation3:
TOAD FGFGFG 3
goto Spawn+2

ClassTimeStop:
PLAY A 0 SetPlayerProperty(0,1,4)
PLAY A 0 ACS_Execute(528,0)
TOAD AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Stop
PLAY A 0 SetPlayerProperty(0,0,4)
Goto pain+1
ClassPain:
TOAD H 0 A_GiveInventory("ToadM1Cancel")
TOAD H 0 A_TakeInventory("ToadManCharge",999)
TOAD HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+1
ClassDeath:
TOAD H 20 ACS_ExecuteAlways(999,0,0)
TOAD H 0 A_PlayerScream
NOFX A 0 A_SpawnItemEx("FakeDeathFX",0,0,32)
NOFX A 1 A_CheckPlayerDone
wait
ClassIceDeath:
TOAD A 35
NOFX A 0 A_SpawnItemEx("FrozenDeathFX",0,0,16)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
CUTM H 0 A_JumpIfInTargetInventory("RainFlushWepM",1,2)
CUTM H 0 A_GiveToTarget("WeaponGetter")
CUTM H 0 A_GiveToTarget("RainFlushWepM")
goto ClassDeath
}
}

actor RainFlushBoss : VCBaseWeapon
{
	Weapon.AmmoType "Base28Ammo"
	Weapon.AmmoType2 "ToadManCharge"
	Weapon.ammouse 4
	Obituary "$OB_TOADMAN1"
	States
	{
		Ready:
		TNT1 A 0
		TARM A 0 A_JumpIfInventory("Base28Ammo",9,"Ready.TF")
		TARM A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,8)) TARM A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		TARM A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,8)) TARM A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		TARM A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,8)) TARM A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		TARM A 0 A_GiveInventory("Base28Ammo",1)
		goto Ready
		
		Ready.TF:
		TARM A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,8)) TARM A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") TARM A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
		TARM A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,8)) TARM A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") TARM A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
		TARM A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,8)) TARM A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") TARM A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
		TARM A 0 A_GiveInventory("Base28Ammo",1)
		goto Ready
		
		Ready.Ult:
		TARM A 1 A_WeaponReady TARM A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
		TARM A 1 A_WeaponReady TARM A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
		TARM A 1 A_WeaponReady TARM A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
		TARM A 0 A_GiveInventory("Base28Ammo",1)
		TARM A 0 A_JumpIfInventory("BaseCustomFlag1",1,"Ready.Ult")
		goto Ready
		
		Deselect:
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
		TARM A 1 A_Lower
		Loop
		
		Select:
		TNT1 A 0 ACS_ExecuteAlways(991,0,4781)
		TNT1 A 0 A_GunFlash
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
		TARM A 1 A_Raise
		Loop
		
		Fire:
		TARM B 0 A_JumpIfInventory("BaseCustomFlag1",1,"Fire.Ult")
		TARM B 0 A_JumpIfInventory("ToadM1Cooldown",1,"Fire.Release")
		TARM B 0 A_TakeInventory("ToadM1Cancel")
		
		Hold1a:
		TOAD A 0 A_GiveInventory("ToadChargeDamageGive")
		TARM B 1 Offset(-1,0) A_GiveInventory("ToadManCharge",1)
		TARM B 1 Offset(1,0) A_GiveInventory("ToadManCharge",1)
		TARM A 0 A_Refire("Hold1b")
		goto Fire.Release
		
		Hold1b:
		TARM B 1 Offset(-1,0) A_GiveInventory("ToadManCharge",1)
		TARM B 1 Offset(1,0) A_GiveInventory("ToadManCharge",1)
		TARM A 0 A_Refire("Hold1c")
		goto Fire.Release
		
		Hold1c:
		TARM B 0 A_JumpIfInventory("ToadM1Cancel",1,"Fire.Cancel")
		TARM B 1 Offset(-1,0) A_GiveInventory("ToadManCharge",1)
		TARM B 0 A_JumpIfInventory("ToadM1Cancel",1,"Fire.Cancel")
		TARM B 1 Offset(1,0) A_GiveInventory("ToadManCharge",1)
		TARM A 0 A_JumpIfInventory("ToadManCharge",70,"Hold2a")
		TARM A 0 A_Refire("Hold1c")
		goto Fire.Release
		
		Hold2a:
		TARM A 0 A_PlaySoundEx("weapon/toadcharge1","Body")
		
		Hold2:
		TARM B 0 A_JumpIfInventory("ToadM1Cancel",1,"Fire.Cancel")
		TARM B 1 Offset(-2,0) A_GiveInventory("ToadManCharge",1)
		TARM B 0 A_JumpIfInventory("ToadM1Cancel",1,"Fire.Cancel")
		TARM B 1 Offset(2,0) A_GiveInventory("ToadManCharge",1)
		TARM A 0 A_JumpIfInventory("ToadManCharge",140,"Hold3a")
		TARM A 0 A_Refire("Hold2")
		goto Fire.Release
		
		Hold3a:
		TARM A 0 A_PlaySoundEx("weapon/toadcharge2","Body")
		
		Hold3:
		TARM B 0 A_JumpIfInventory("ToadM1Cancel",1,"Fire.Cancel")
		TARM B 1 Offset(-3,0) A_GiveInventory("ToadManCharge",1)
		TARM B 0 A_JumpIfInventory("ToadM1Cancel",1,"Fire.Cancel")
		TARM B 1 Offset(3,0) A_GiveInventory("ToadManCharge",1)
		TARM A 0 A_JumpIfInventory("ToadManCharge",210,"Hold4a")
		TARM A 0 A_Refire("Hold3")
		goto Fire.Release
		
		Hold4a:
		TARM A 0 A_PlaySoundEx("weapon/toadcharge3","Body")
		
		Hold4:
		TARM B 0 A_JumpIfInventory("ToadM1Cancel",1,"Fire.Cancel")
		TARM B 1 Offset(-4,0) A_GiveInventory("ToadManCharge",1)
		TARM B 0 A_JumpIfInventory("ToadM1Cancel",1,"Fire.Cancel")
		TARM B 1 Offset(4,0) A_GiveInventory("ToadManCharge",1)
		TARM A 0 A_Refire("Hold4")
		goto Fire.Release
		
		Fire.Release:
		TARM A 0 A_GiveInventory("ToadM1Handler")
		TARM CDEFFGGFFHHFFGGFFHH 1 A_WeaponReady(WRF_NOFIRE)
		goto Ready
		
		Fire.Cancel:
		//TNT1 A 0 A_WeaponReady(WRF_NOFIRE)
		TNT1 A 3 A_PlaySoundEx("weapon/toadcroak","Weapon")//A_ClearRefire
		TARM A 2 Offset(0,80)
		TARM A 2 Offset(0,64)
		TARM A 2 Offset(0,48)
		TARM A 0 A_GiveInventory("ToadM1Cooldown",60)
		TARM A 2 Offset(0,32) A_SpawnItemEx("ToadCooldownWatcher")
		goto Ready
		
		Fire.Ult:
		TARM BCDE 1
		TARM A 0 A_PlaySoundEx("misc/catcherdrop","Weapon")
		TARM F 0 A_FireCustomMissile("EscarooBomb",0,0,0,8)
		TARM FFFFEDCB 2
		TARM A 0 A_JumpIfInventory("BaseCustomFlag1",1,"Ready.Ult")
		goto Ready
		
		Altfire:
		RATU A 0 A_JumpIfInventory("NoAltfire",1,"NoAmmo")
		TARM B 0 A_JumpIfInventory("BaseCustomFlag1",1,"Altfire.Ult")
		TARM BCDE 1
		TARM F 0 A_TakeInventory("Base28Ammo",8)
		TARM F 0 A_PlaySoundEx("weapon/toadshot","Weapon")
		TARM F 0 A_FireCustomMissile("ToadBall",0,0,0,8)
		TARM FFEDCB 2
		goto Ready
		
		Altfire.Ult:
		TARM BCD 1
		TARM A 0 A_PlaySoundEx("weapon/mbuster","Weapon")
		TARM F 0 A_FireCustomMissile("EscarooEyes",0,0,0,8)
		
		Altfire.UltLoop:
		TARM E 1 A_GiveInventory("CutterFlag",1)
		TARM E 0 A_JumpIfInventory("CutterFlag",350,"Altfire.UltFinish")
		loop
		
		Altfire.UltFinish:
		TARM DCB 1 A_TakeInventory("CutterFlag",999)
		TARM A 0 A_JumpIfInventory("BaseCustomFlag1",1,"Ready.Ult")
		goto Ready
		
		User1:
		TARM A 0 A_CheckFloor("U1.NextPre")
		TARM A 1 A_Jump(256,"Ready")
		
		U1.NextPre:
		TARM A 0 A_CheckFloor("U1.Next")
		TARM A 1 A_Jump(256,"Ready")
		
		U1.Next:
		TARM AA 1 Offset(0,56)
		TARM A 0 A_GiveInventory("ToadU1Handler")
		TARM AAAAA 1 Offset(0,68) A_SpawnItemEx("ToadLeapHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		
		U1.Wait:
		TARM A 0 Offset(0,68) A_SpawnItemEx("ToadLeapHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		TARM A 1 A_CheckFloor("U1.Land")
		loop
		
		U1.Land:
		TARM A 0 A_Stop
		TARM A 0 SetPlayerProperty(0,1,0)
		PHAH A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
		TARM A 0 A_JumpIfInventory("ToadTFHitFlag",1,"U1.LandShort")
		TARM AAA 3 Offset(0,80)
		TARM AA 3 Offset(0,68)
		TARM AA 3 Offset(0,56)
		TARM AAAA 3 A_WeaponReady(WRF_NOFIRE)
		TARM A 0 SetPlayerProperty(0,0,0)
		TARM A 0 A_TakeInventory("ToadTFHitFlag")
		goto Ready
		
		U1.LandShort:
		TARM AAA 1 Offset(0,80)
		TARM AA 1 Offset(0,68)
		TARM AA 1 Offset(0,56)
		TARM AAAA 1 A_WeaponReady(WRF_NOFIRE)
		TARM A 0 SetPlayerProperty(0,0,0)
		TARM A 0 A_TakeInventory("ToadTFHitFlag")
		goto Ready
		
		UltimateAttack:
		TARM A 1
		PHAH A 0 A_GiveInventory("InvProtection")
		PHAH A 0 A_ChangeFlag("INVULNERABLE",1)
		TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,34)
		TNT1 A 0 A_TakeInventory("UltAttackFlag",1)
		TNT1 A 0 A_TakeInventory("MaximumUltimateAmmo",200)
		TNT1 A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
		TNT1 A 0 A_GiveInventory("UltBuildCooldownGiver",1)
		DRIH A 0 ACS_Execute(191,0,APROP_JumpZ,0,1)
		PHAH A 0 SetPlayerProperty(0,1,0)
		PHAH A 0 A_Stop
		PHAH A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
		TARM BCDEFGFHEDCB 2
		TARM A 0 A_PlaySoundEx("weapon/toadult","Weapon")
		TARM F 0 A_GiveInventory("ToadUltJumpChecker")
		PHAH A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
		TARM BCDEFGFHFGFHFGFHEDCB 1
		TARM A 0 A_PlaySoundEx("weapon/toadult","Weapon")
		TARM F 0 A_GiveInventory("ToadUltJumpChecker")
		PHAH A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
		TARM BCDEFGFHFGFHFGFHEDCB 1
		TARM A 0 A_PlaySoundEx("weapon/toadult","Weapon")
		TARM F 0 A_GiveInventory("ToadUltJumpChecker")
		PHAH A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
		TARM BCDEFGFHFGFHFGFHEDCB 1
		TARM A 0 A_PlaySoundEx("weapon/toadult","Weapon")
		TARM F 0 A_GiveInventory("ToadUltJumpChecker")
		TARM A 0 A_PlaySoundEx("weapon/rainflush","Body")
		FLSA A 0 ACS_NamedExecuteAlways("VC_ToadmanUltStart",0)
		TARM A 0 A_SpawnItemEx("ToadUltWatcher")

		TARM BCDEFGFHFEDCB 1
		DRIH A 0 ACS_Execute(191,0,APROP_JumpZ,14,1)
		PHAH A 0 SetPlayerProperty(0,0,0)
		PHAH A 0 A_TakeInventory("InvProtection")
		PHAH A 0 A_ChangeFlag("INVULNERABLE",0)
		goto Ready
		
		Flash:
		TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
		TNT1 A 0 A_JumpIfInventory("ToadManCharge",1,"Flash.Ammo")
		TNT1 A 1 A_GiveInventory("ToadJumpChecker")
		loop
		Flash.Ammo:
		TNT1 A 0 A_GiveInventory("Base28Ammo",1)
		TNT1 AAA 1 A_GiveInventory("ToadJumpChecker")
		TNT1 A 0 A_JumpIfInventory("ToadManCharge",1,"Flash.Ammo")
		goto Flash
	}
}

actor ToadM1Cancel : Powerup
{
Powerup.Duration 10
}

actor ToadManCharge : Ammo
{
	inventory.amount 1
	inventory.maxamount 210
	+INVENTORY.IGNORESKILL
}

actor ToadM1Cooldown : Ammo
{
	inventory.amount 1
	inventory.maxamount 60
	+INVENTORY.IGNORESKILL
}

Actor ToadJumpChecker : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_CheckFloor("Nope")
TNT1 A 0 A_SpawnItemEx("ToadJumpHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
stop

Nope:
TNT1 A 0
stop
}
}

actor ToadJumpHitbox
{
species "DustManType"
+THRUSPECIES
Obituary "$OB_TOADMAN3"
PROJECTILE
+NOEXPLODEFLOOR
Radius 1
Height 1
scale 2.5
speed 0
damage (0)
Damagetype "ToadmanJump"
States
{
Spawn:
TNT1 A 0
TNT1 A 2 A_Explode(3,48,0,0,48)
stop
}
}

actor ToadmanJumpProtect : PowerProtection
{
powerup.duration 17
damagefactor "ToadmanJump", 0.0
}

actor ToadChargeDamageGive : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("ToadUltFlag")
TNT1 A 0 A_GiveInventory("ToadChargeDamage")
stop
}
}

actor ToadChargeDamageTake : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("ToadUltFlag")
TNT1 A 0 A_TakeInventory("ToadChargeDamage")
stop
}
}

actor ToadChargeDamage : PowerProtection
{
powerup.duration 9999999
damagefactor "ToadmanFlush", 1.2
}

actor ToadM1Handler : CustomInventory
{
States
{
Pickup:
TOAD A 0 A_GiveInventory("ToadChargeDamageTake")
TNT1 A 0 A_JumpIfInventory("ToadManCharge",210,"Pickup4")
TNT1 A 0 A_JumpIfInventory("ToadManCharge",140,"Pickup3")
TNT1 A 0 A_JumpIfInventory("ToadManCharge",70,"Pickup2")
goto Pickup1

Pickup1:
TNT1 A 0 A_SpawnItemEx("ToadDropStart",100,0,0,0,0,100,72*1)
TNT1 A 0 A_SpawnItemEx("ToadDropStart",100,0,0,0,0,100,72*2)
TNT1 A 0 A_SpawnItemEx("ToadDropStart",100,0,0,0,0,100,72*3)
TNT1 A 0 A_SpawnItemEx("ToadDropStart",100,0,0,0,0,100,72*4)
TNT1 A 0 A_SpawnItemEx("ToadDropStart",100,0,0,0,0,100,72*5)
TNT1 A 0 A_TakeInventory("ToadManCharge",999)
stop

Pickup2:
TNT1 A 0 A_TakeInventory("ToadM1Cooldown",999)
TNT1 A 0 A_PlaySoundEx("weapon/toadflush1","Weapon")
TNT1 A 0 A_FireCustomMissile("ToadDrizzle")
TNT1 A 0 A_TakeInventory("ToadManCharge",999)
stop

Pickup3:
TNT1 A 0 A_TakeInventory("ToadM1Cooldown",999)
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",3)
TNT1 A 0 A_PlaySoundEx("weapon/toadflush2","Auto")
TNT1 A 0 A_FireCustomMissile("ToadAlmostFlush")
//TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ToadFallFlushStart",random(0,200),0,0,0,0,100)
TNT1 A 0 A_TakeInventory("ToadManCharge",999)
stop

Pickup4:
TNT1 A 0 A_TakeInventory("ToadM1Cooldown",999)
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",3)TNT1 A 0 A_PlaySoundEx("weapon/rainflush","Auto")
TNT1 A 0 A_SpawnItemEx("ToadManFlush")
TNT1 A 0 A_TakeInventory("ToadManCharge",999)
stop
}
}

actor ToadCooldownWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
reactiontime 60
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_TakeFromTarget("ToadM1Cooldown",1)
TNT1 A 0 A_CountDown
loop
Death:
TNT1 A 1 A_TakeFromTarget("ToadM1Cooldown",999)
stop
}
}

actor ToadDropStart
{
Radius 12
Height 12
scale 2.5
PROJECTILE
+DONTBLAST
+SKYEXPLODE
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 2
Death:
TNT1 A 0 A_SpawnItemEx("ToadDrop", 0, 0, 0, 0, 0, -40, 0)
stop
}
}

actor ToadDrop
{
translation "225:225=104:104", "44:44=216:216"
PROJECTILE
+FORCEXYBILLBOARD
Obituary "$OB_TOADMAN1"
damagetype "ToadmanStun"
Damage (1)
Speed 20
Height 10
Radius 10
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
ACID D 1
goto Spawn+2
Death:
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TNT1 A 0 A_Explode(12, 64, 0, 0, 36)
TNT1 A 0 A_PlaySoundEx("misc/aciddrip2","Weapon")
ACID EF 2
stop
}
}

actor ToadDrizzle
{
Obituary "$OB_TOADMAN1"
damagetype "ToadFlush2"
reactiontime 4
+NOGRAVITY
+MISSILE
+SKYEXPLODE
+NOCLIP
+DONTBLAST
height 1
radius 1
-SOLID
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
TNT1 A 0 A_Explode(7,300,0,0,300)
TNT1 AA 0 A_SpawnItemEx("ToadRainDrizzle", random(0,300), random(-300,300), 200, -15, 0, -15, 180, 1)
TNT1 A 1 A_SpawnItemEx("ToadRainDrizzle", random(0,300), random(-300,300), 200, -15, 0, -15, 180, 1)
TNT1 AA 0 A_SpawnItemEx("ToadRainDrizzle", random(0,300), random(-300,300), 200, -15, 0, -15, 180, 1)
TNT1 A 1 A_SpawnItemEx("ToadRainDrizzle", random(0,300), random(-300,300), 200, -15, 0, -15, 180, 1)
TNT1 AA 0 A_SpawnItemEx("ToadRainDrizzle", random(0,300), random(-300,300), 200, -15, 0, -15, 180, 1)
TNT1 A 1 A_SpawnItemEx("ToadRainDrizzle", random(0,300), random(-300,300), 200, -15, 0, -15, 180, 1)
TNT1 A 0 A_Countdown
loop
Death:
TNT1 A 0
stop
}
}

actor ToadRainDrizzle
{
+CLIENTSIDEONLY
+NOINTERACTION
-SOLID
+NOGRAVITY
height 0
radius 0
Scale 1.5
States
{
Spawn:
RAIN D 16
stop
}
}

actor ToadAlmostFlush
{
reactiontime 35
+NOGRAVITY
+MISSILE
+SKYEXPLODE
+NOINTERACTION
+DONTBLAST
height 1
radius 1
-SOLID
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_PlaySoundEx("weapon/rainflush","Voice")
loopit:
TNT1 A 1 A_SpawnItemEx("ToadRainSprinkle", random(-200,200), random(-200,200), 256, 30, 0, -30, 0, 1)
TNT1 A 0 A_Countdown
loop
Death:
TNT1 A 0
stop
}
}

actor ToadRainSprinkle
{
Obituary "$OB_TOADMAN1"
PROJECTILE
+RIPPER
+NOINTERACTION
+DONTBLAST
+BRIGHT
Damagetype "Megabuster"
damage (1)
height 8
radius 16
Scale 3.5
Reactiontime 35
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TRA2 AAAAAAAAA 1 A_JumpIf(ceilingz-z>8, "Spawn2")
TRA2 A 0 A_JumpIf(momz==0,"Death")
TRA2 A 0 A_CountDown
goto Spawn+2

Spawn2:
TRA2 A 0 A_ChangeFlag("RIPPER", 0)
TRA2 A 0 A_ChangeFlag("NOINTERACTION",0)
TRA2 AAAAAAAAA 1 A_JumpIf(momz==0,"Death")
TRA2 A 0 A_CountDown
loop

Death:
TRA2 K 0 A_playSoundEx("misc/splash","Weapon")
TRA2 K 0 A_ChangeFlag(NOGRAVITY,1)
TRA2 K 0 A_Explode(17,96,0)
TRA2 KLMN 2
stop
}
}

actor ToadManFlush
{
Obituary "$OB_TOADMAN1"
reactiontime 9
+NOGRAVITY
+MISSILE
+SKYEXPLODE
+NOINTERACTION
+DONTBLAST
damagetype "ToadmanRainFlush"
height 1
radius 1
-SOLID
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_PlaySoundEx("weapon/rainflush","Voice")
TNT1 A 0 A_Explode(5,550,0,0,550)//A_Explode(60,550,0,0,275)
loopit:
TNT1 AAAAAAAAA 0 A_SpawnItemEx("ToadRainFX", random(-400,400), random(-400,400), 300, 30, 0, -30, 0, 1)
TNT1 A 1 A_SpawnItemEx("ToadRainFX", random(-400,400), random(-400,400), 300, 30, 0, -30, 0, 1)
TNT1 AAAAAAAAA 0 A_SpawnItemEx("ToadRainFX", random(-400,400), random(-400,400), 300, 30, 0, -30, 0, 1)
TNT1 A 1 A_SpawnItemEx("ToadRainFX", random(-400,400), random(-400,400), 300, 30, 0, -30, 0, 1)
TNT1 AAAAAAAAA 0 A_SpawnItemEx("ToadRainFX", random(-400,400), random(-400,400), 300, 30, 0, -30, 0, 1)
TNT1 A 1 A_SpawnItemEx("ToadRainFX", random(-400,400), random(-400,400), 300, 30, 0, -30, 0, 1)
TNT1 AAAAAAAAA 0 A_SpawnItemEx("ToadRainFX", random(-400,400), random(-400,400), 300, 30, 0, -30, 0, 1)
TNT1 A 1 A_SpawnItemEx("ToadRainFX", random(-400,400), random(-400,400), 300, 30, 0, -30, 0, 1)
TNT1 AAAAAAAAA 0 A_SpawnItemEx("ToadRainFX", random(-400,400), random(-400,400), 300, 30, 0, -30, 0, 1)
TNT1 A 1 A_SpawnItemEx("ToadRainFX", random(-400,400), random(-400,400), 300, 30, 0, -30, 0, 1)
TNT1 AAAAAAAAA 0 A_SpawnItemEx("ToadRainFX", random(-400,400), random(-400,400), 300, 30, 0, -30, 0, 1)
TNT1 A 1 A_SpawnItemEx("ToadRainFX", random(-400,400), random(-400,400), 300, 30, 0, -30, 0, 1)
TNT1 A 0 A_Explode(5,550,0,0,550)
TNT1 A 0 A_Countdown
loop
Death:
TNT1 A 0
stop
}
}

actor ToadRainFX
{
+CLIENTSIDEONLY
+NOINTERACTION
-SOLID
+NOGRAVITY
height 0
radius 0
Scale 2.5
reactiontime 50
States
{
Spawn:
TRA2 A 0
TRA2 A 1 A_CheckFloor("Death2")
TRA2 A 0 A_Countdown
loop
Death2:
TNT1 A 0 A_Stop
TNT1 A 0 A_PlaySoundEx("weapon/toaddrop","Body")
TRA2 VWX 3

Death:
TNT1 A 0
stop
}
}

actor ToadBall
{
	Obituary "$OB_TOADMAN2"
	PROJECTILE
	Radius 12
	Height 12
	scale 2.5
	damagetype "ToadmanAlt"
	damage (13)
	speed 50
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode")
		TRA2 T 0 A_SpawnItemEx("ToadAltFX",Random(-16, 16), random(-16, 16),random(-16, 16),0,0,0,0,1)
		TRA2 T 1 A_SpawnItemEx("ToadAltDrop",0,0,0,random(0,8),0,random(3,6),random(0,359),1)
		TRA2 T 0 A_SpawnItemEx("ToadAltFX",Random(-16, 16), random(-16, 16),random(-16, 16),0,0,0,0,1)
		TRA2 T 1 A_SpawnItemEx("ToadAltDrop",0,0,0,random(0,8),0,random(3,6),random(0,359),1)
		TRA2 U 0 A_SpawnItemEx("ToadAltFX",Random(-16, 16), random(-16, 16),random(-16, 16),0,0,0,0,1)
		TRA2 U 1 A_SpawnItemEx("ToadAltDrop",0,0,0,random(0,8),0,random(3,6),random(0,359),1)
		TRA2 U 0 A_SpawnItemEx("ToadAltFX",Random(-16, 16), random(-16, 16),random(-16, 16),0,0,0,0,1)
		TRA2 U 1 A_SpawnItemEx("ToadAltDrop",0,0,0,random(0,8),0,random(3,6),random(0,359),1)
		Goto Spawn+2
	}
}

actor ToadAltFX : BasicClientSide
{
States
{
Spawn:
TRA2 S 10
TRA2 SSSSS 1 A_FadeOut(0.2)
stop
}
}

actor ToadAltDrop
{
PROJECTILE
+CLIENTSIDEONLY
-SOLID
-NOGRAVITY
height 4
radius 4
scale 2.5
States
{
Spawn:
TRA2 O 0
TRA2 O 1 A_JumpIf(momz<0, "Down")
goto Spawn+1
Down:
TRA2 P 1
loop
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_Jump(128,"Death2")
TRA2 Q 4
stop
Death2:
TRA2 S 4
stop
}
}

actor ToadDebuffWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
TNT1 A 0 A_GiveToTarget("ToadGravity")
TNT1 A 0 A_JumpIfInTargetInventory("ToadDebuffTimer",1,"Spawn")
TNT1 A 1
Death:
TNT1 A 0 A_TakeFromTarget("ToadMovement",999)
TNT1 A 0 A_TakeFromTarget("ToadDebuffTimer",999)
stop
}
}

actor ToadDebuffTimer : Powerup
{
Powerup.Duration 105//210
}

actor ToadGravity : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("ToadAltDrop", random(12, 40), 0, Random(16,48), random(1,3), 0, 0, random(0, 359))
//TNT1 A 0 A_JumpIf(z-floorz<5, "Nope")
//TNT1 A 0 ThrustThingZ(0,3,1,1)
stop
Nope:
TNT1 A 0
stop
}
}

actor ToadMovement : PowerSpeed
{
Speed 0.50
Powerup.Color "164 230 255", 0.7
}

actor ToadLeapHitbox
{
species "DustManType"
+THRUSPECIES
Obituary "$OB_TOADMAN3"
PROJECTILE
+NOEXPLODEFLOOR
Radius 40
Height 40
scale 2.5
speed 0
damage (18)
Damagetype "ToadmanLeap"
States
{
Spawn:
TNT1 A 0
TNT1 A 2 A_Explode(18,48,0,0,48)
stop
}
}

Actor ToadTFHitFlag : VCOnce {}

actor ToadmanLeapProtect : PowerProtection
{
powerup.duration 25
damagefactor "ToadmanLeap", 0.0
}

Actor ToadUltJumpChecker : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_CheckFloor("Next")
stop

Next:
TNT1 A 0 ThrustThingZ(0,25,0,0)
stop
}
}

Actor ToadUltEffectGiver : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("ToadUltScreen")
TNT1 A 0 A_GiveInventory("ToadDoubleDamage")
TNT1 A 0 A_SpawnItemEx("ToadUltEffectWatcher")
stop
}
}

actor ToadUltScreen : Powerup
{
Powerup.Duration 35
}

actor ToadUltScreen2 : Powerup
{
Powerup.Duration 35
}

actor ToadDoubleDamage : powerup//: PowerProtection
{
Powerup.Duration 35
//damagefactor "normal", 2.0
}

actor ToadUltCancel : Powerup
{
Powerup.Duration 35
}

actor ToadUltEffectWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
Renderstyle none
reactiontime 70
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("ToadUltCancel",1,"Death")
TNT1 AAAAA 1 A_Warp(AAPTR_TARGET, 0.0,0.0,0.0,0.0,WARPF_NOCHECKPOSITION)
TNT1 A 0 A_GiveToTarget("ToadUltScreen")
TNT1 A 0 A_GiveToTarget("ToadDoubleDamage")
TNT1 A 0 A_SpawnItemEx("ToadSteam", random(0, 16), 0, random(32, 48), random(1,2), 0, random(2,5), random(0, 359))
TNT1 A 0 A_Countdown
loop
Death:
TNT1 A 0 A_TakeFromTarget("ToadUltScreen")
TNT1 A 0 A_GiveToTarget("ToadDoubleDamage",1)
stop
}
}

actor ToadSteam
{
+NOINTERACTION
+NOGRAVITY
+CLIENTSIDEONLY
+MISSILE
scale 1.0
renderstyle translucent
alpha 0.8
States
{
	Spawn:
	POOF A 0 A_Jump(256, "Smoke1", "Smoke2")
	Smoke1:
	POOF A 1 A_FadeOut(0.05)
	POOF A 1 A_SetScale(scaleX + 0.1, scaleY + 0.1)
	loop
	Smoke2:
	POOF B 1 A_FadeOut(0.1)
	POOF B 1 A_SetScale(scaleX + 0.1, scaleY + 0.1)
	loop
}
}

actor ToadUltWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
var int user_lasted;
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("ToadUltScreen2")
TNT1 A 0 A_GiveToTarget("ToadAOESpawner")
TNT1 AA 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_SetUserVar("user_lasted",user_lasted + 2)
TNT1 A 0 A_LogInt(user_lasted)
TNT1 A 0 A_TakeFromTarget("MaximumUltimateAmmo",2)
TNT1 A 0 A_JumpIfInTargetInventory("MaximumUltimateAmmo",1,"Spawn")
TNT1 AA 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_SetUserVar("user_lasted",user_lasted + 2)
TNT1 A 0 A_LogInt(user_lasted)
TNT1 A 0 A_TakeFromTarget("MaximumUltimateAmmo",1)
TNT1 A 0 A_JumpIfInTargetInventory("MaximumUltimateAmmo",1,"Spawn")
goto Death
Death:
TNT1 A 0 ACS_NamedExecuteAlways("VC_ToadmanUltEnd",0)
TNT1 A 0 A_GiveToTarget("ToadUltCancel",1)
TNT1 A 35 A_TakeFromTarget("BaseCustomFlag1",999)
TNT1 A 0 A_TakeFromTarget("PowerUltBuildCooldown")
stop
}
}

actor EscarooBomb
{
	Obituary "$OB_TOADMAN4"
	DamageType "ToadmanUlt"
	PROJECTILE
	-NOGRAVITY
	Radius 16
	Height 16
	Speed 45
	Damage (10)
	Scale 2.5
	Gravity 1.0
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		TNT1 A 0 ThrustThingZ(0,15,0,1)
		
		SpawnL:
		ESCB AB 3
		loop

		Death:
		NAPA E 0 A_Stop
		NAPA E 0 A_PlaySoundEx("weapon/mm4explode", "Weapon")
		NAPA E 0 A_ChangeFlag("NOGRAVITY",1)
		NAPA E 0 A_Explode(30, 128, 0, 0, 32)
		NAPA EFGHIJKLMNOPQRS 1
		stop
	}
}

actor EscarooEyes
{
PROJECTILE
Radius 16
Height 16
scale 2.5
damage (1)
+RIPPER
+HEXENBOUNCE
+NOTARGETSWITCH
+CANBOUNCEWATER
+HEXENBOUNCE
+DONTREFLECT
damagetype "ToadmanUltEye"
Obituary "$OB_TOADMAN5"
speed 50
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
ESCE AAAAAAAAAAA 1 A_SpawnItemEx("EscarooEyeDamager",0,0,0,2,0,0)
ESCE A 0 A_Stop
ESCE BBBCCCCCCCCC 1 A_SpawnItemEx("EscarooEyeDamager",0,0,0,2,0,0)
Goto Death

Death:
ESCE C 0
ESCE C 0 A_CustomMissile("ReturningEscarooEyes",0,0,0,0)
stop
}
}

actor ToadmanEyeProtect : PowerProtection
{
powerup.duration 25
damagefactor "ToadmanUltEye", 0.0
}

actor ReturningEscarooEyes : EscarooEyes
{
speed 25
+NOINTERACTION
radius 0
height 0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
ESCE C 0 A_JumpIfCloser(48,"Death")
ESCE C 1 A_SpawnItemEx("EscarooEyeDamager",0,0,0,2,0,0)
ESCE C 0 A_CustomMissile("ReturningEscarooEyes",0,0,0,0)
stop
Death:
ESCE A 0 A_GiveToTarget("CutterFlag",350)
stop
}
}

actor EscarooEyeDamager : RingBoomerangDamager
{
damagetype "ToadmanUltEye"
Obituary "$OB_TOADMAN5"
damage (1)
radius 48
height 48
}

actor ToadAOESpawner : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_RadiusGive("ToadUltScreen",1000,RGF_PLAYERS,1)
TNT1 A 0 A_SpawnItemEx("ToadBlower")
TNT1 A 0 A_JumpIfInventory("ToadUltAOETriggerCooldown",1,"Failed")
TNT1 A 0 A_FireCustomMissile("ToadUltAOE",0,0,0,0)
stop
Failed:
TNT1 A 0 
stop
}
}

actor ToadUltAOE
{
+MISSILE
+NOCLIP
-SOLID
-DONTBLAST
+NOGRAVITY
+RIPPER
+SKYEXPLODE
+NOINTERACTION
+DONTSPLASH
+THRUGHOST
+THRUACTORS
+DONTREFLECT
Obituary "$OB_TOADMAN6"
Damage (0) //Uses A_Explode
Radius 5
Height 10
Scale 2.5
DamageType "ToadUltTrigger"//"ToadUltAOE"
States
{
Spawn:
TNT1 A 0
//TNT1 A 1 A_ClearTarget
TNT1 A 1 A_Explode(2,10,XF_HURTSOURCE,0,10)//A_Explode(2,1000,0,0,1000)
TNT1 A 1 A_GiveToTarget("ToadUltAOETriggerCooldown")
stop
}
}

Actor ToadUltAOEReal : ToadUltAOE
{
DamageType "ToadUltAOE"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(3,10,0,0,10)//A_Explode(2,1000,0,0,1000)
TNT1 A 1
stop
}
}

actor ToadUltAOEProtect : PowerProtection
{
powerup.duration 13
damagefactor "ToadUltAOE", 0.0
}

actor ToadUltAOETriggerCooldown : PowerProtection
{
powerup.duration 13
damagefactor "ToadUltTrigger", 0.0
}

actor ToadUltFlag : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor ToadU1Handler : BaseMovement//CustomInventory
{
States
{
itTimeGo:
TNT1 A 0 A_PlaySoundEx("weapon/superarmuse","Weapon")
TNT1 A 0 A_TakeInventory("Base28Ammo",9)
TNT1 A 0 ThrustThingZ(0,80,0,0)
TNT1 A 0 A_Recoil(CallACS("VC_XYMob", -40.0))
stop
}
}

actor ToadEyeWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
+CLIENTSIDEONLY
renderstyle translucent
alpha 0.75
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 ACS_NamedExecuteAlways("core_shieldwarper", 0, 1)
TNT1 A 0 A_Jump(256, "Shield")
Goto Shield

Shield:
ESCE C 0 A_JumpIfInTargetInventory("ToadUltCancel",1,"Death")
ESCE C 0 A_JumpIfInTargetInventory("CutterFlag",1,"Invis")
ESCE C 1 A_Warp(AAPTR_TARGET, 0, 0, 76, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
loop

Invis:
TNT1 A 0 A_JumpIfInTargetInventory("ToadUltCancel",1,"Death")
TNT1 A 1 A_Warp(AAPTR_TARGET, 0, 0, 76, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
TNT1 A 1 A_JumpIfInTargetInventory("CutterFlag",1,"Invis")
TNT1 A 1 A_JumpIfInTargetInventory("CutterFlag",1,"Invis")
goto Shield

Death:
MMFX BCDE 2
stop
}
}

actor ToadBlower
{
PROJECTILE
+NOINTERACTION
height 0
radius 0
speed 0
States
{
Spawn:
TNT1 A 0
TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("ToadWindParticle",-1000,random(-500,500),random(0,800),random(35,60))
TNT1 A 4 ACS_ExecuteAlways(C_JAX_SUCKRECODE,0,450,360,1)//ACS_ExecuteAlways(C_JAX_SUCKRECODE,0,450,22,1)//11,1)
stop
}
}


actor ToadWindSpawn : CustomInventory
{
states
{
Pickup:
TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ToadWindParticle",-1000,random(-500,500),random(0,800),random(50,60))
//TNT1 AAAAAA 0 A_SpawnItemEx("ToadWindParticle",random(0,32),0,random(0,64),0,0,random(-1,-8),random(0,359))
stop
}
}

actor ToadWindParticle : CommandoSandParticle
{
Translation "96:96=4:4", "197:197=104:104", "60:60=104:104"
scale 1
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
G3BU D 0
G3BU D 40 A_SetScale(random(0.1,1),random(0.1,1))
stop
}
}