actor Magicman : SemiWeakArmorClass
{
Player.ScoreIcon "MAGIMUGS"
player.startitem "BaseFlagPack", 1
player.displayname "Magicman"
player.soundclass "Magicmanc"
player.startitem "MagicCardBoss"
player.startitem "UltimateAttackItem8"
player.startitem "UltSoundWatcherSpawn8"
player.startitem "Base112Ammo", 112
player.startitem "IsFromMMB"
player.startitem "NoHealthBar"
player.viewheight 52
player.forwardmove 0.85,0.85
player.sidemove 0.83,0.83
player.jumpz 14
States
{
Animation0:
Spawn:
MGIC B 0 A_JumpIfInventory("BaseCustomFlag2",1,"Spawn2")
MGIC B 1 A_JumpIf(z-floorz>0, "Jumping")
MGIC A 0 A_JumpIfInventory("BaseCustomFlag2",1,"Spawn2")
MGIC A 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+2

Spawn2:
MGI2 C 0 A_JumpIf(momx>0.01||momy>0.01||momx<-0.01||momy<-0.01,"See2")
MGI2 C 1 A_JumpIf(z-floorz>0, "Jumping2")
MGI2 D 0 A_JumpIf(momx>0.01||momy>0.01||momx<-0.01||momy<-0.01,"See2")
MGI2 D 1 A_JumpIf(z-floorz>0, "Jumping2")
Goto Spawn+2

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

See2:
Animation8:
MGI2 CCCCCDDDDD 1 A_JumpIf(z-floorz>0, "Jumping2")
Goto Spawn2+1

Jumping:
MGIC J 0 A_JumpIf(momz<1,"Falling")
MGIC J 1 A_JumpIf(z-floorz<=0, "Spawn")
loop
		
Falling:
MGIC K 1 A_JumpIf(z-floorz<=0, "Spawn")
wait

Jumping2:
MGI2 C 1 A_JumpIf(z-floorz<=0, "Spawn2")
wait

Missile:
MGIC F 0 A_JumpIfInventory("BaseCustomFlag2",1,"See2")
MGIC FFF 1 A_JumpIf(z-floorz>0, "JumpingMissile")
Missile2:
MGIC GGGGG 1 A_JumpIf(z-floorz>0, "JumpingMissile2")
Goto Spawn+2

JumpingMissile:
MGIC LLL 1 A_JumpIf(z-floorz<=0, "Missile")
JumpingMissile2:
MGIC MMMMM 1 A_JumpIf(z-floorz<=0, "Missile2")
Goto Jumping

Animation1:
MGI2 V 1
loop
Animation2:
MGIC Q 1
loop
Animation3:
MGIC R 1
loop
Animation4:
MGIC S 1
loop

Animation9:
MGI2 VWXYYYY 2
MGIC SAAA 2
goto Spawn+2

Animation5:
MGIC PQRRRS 2
goto Spawn+2

Animation6:
Missile.MagicBall:
MGI2 TTTTT 1 A_JumpIf(z-floorz>0, "JumpingMissile.MagicBall")
Animation7:
Missile2.MagicBall:
MGI2 UUUUU 1 A_JumpIf(z-floorz>0, "JumpingMissile2.MagicBall")
Goto Spawn+2
JumpingMissile.MagicBall:
MGIC NNNNN 1 A_JumpIf(z-floorz<=0, "Missile.MagicBall")
JumpingMissile2.MagicBall:
MGIC OOOOO 1 A_JumpIf(z-floorz<=0, "Missile2.MagicBall")
Goto Jumping

Pain.TenguBlade:
Pain.TenguSlash:
Pain.TenguManUlt:
MGIC HHHH 0 A_SpawnItemEx("CardSpawnerRandomizer",0,0,32,0,0,0,0,0,192)
goto Pain+1
ClassPain:
MGIC HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+1

Death.TenguBlade:
Death.TenguSlash:
Death.TenguManUlt:
MGIC HHHHHHHHHH 0 A_SpawnItem("CardSpawnerRandomizer",0,0,32)
TNT1 A 0 A_SpawnItemEx("DeadSplitMagicMan",0,0,32,0,0,0,0,SXF_TRANSFERTRANSLATION)
NOFX A 20 ACS_ExecuteAlways(999,0,0)
NOFX A 1 A_CheckPlayerDone
wait
ClassDeath:
MGIC H 20 ACS_ExecuteAlways(999,0,0)
MGIC H 0 A_PlayerScream
PLY1 H 0 A_SpawnItemEx("FakeDeathFXMMB", 0, 0, 32)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
MGIC H 0 A_JumpIfInTargetInventory("MagicCardWepM",1,2)
MGIC H 0 A_GiveToTarget("WeaponGetter")
MGIC H 0 A_GiveToTarget("MagicCardWepM")
goto ClassDeath
}
}

Actor CardSpawnerRandomizer
{
PROJECTILE
+NOINTERACTION
Height 1
Radius 1
ReactionTime 35
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Jump(256,"Spade","Diamond","Heart","Club")
wait
Spade: TNT1 A 0 A_SpawnItemEx("SpadeCardRM",0,0,Random(16,48),Random(3,6),0,Random(3,6),Random(0,359)) stop
Diamond: TNT1 A 0 A_SpawnItemEx("DiamondCardRM",0,0,Random(16,48),Random(3,6),0,Random(3,6),Random(0,359)) stop
Heart: TNT1 A 0 A_SpawnItemEx("HeartCardRM",0,0,Random(16,48),Random(3,6),0,Random(3,6),Random(0,359)) stop
Club: TNT1 A 0 A_SpawnItemEx("ClubCardRM",0,0,Random(16,48),Random(3,6),0,Random(3,6),Random(0,359)) stop
}
}

actor SpadeCardRM
{
PROJECTILE
-NOGRAVITY
Gravity 1.0
Height 1
Radius 1
ReactionTime 35
Scale 2.5
States
{
Spawn:
TNT1 A 0
MCRD D 1 A_CountDown
wait
Death:
TNT1 A 0
Stop
}
}

actor DiamondCardRM : SpadeCardRM
{
States
{
Spawn:
TNT1 A 0
MCRD B 1 A_CountDown
wait
}
}

actor HeartCardRM : SpadeCardRM
{
States
{
Spawn:
TNT1 A 0
MCRD C 1 A_CountDown
wait
}
}

actor ClubCardRM : SpadeCardRM
{
States
{
Spawn:
TNT1 A 0
MCRD A 1 A_CountDown
wait
}
}

actor DeadSplitMagicMan
{
Translation "192:192=216:216", "198:198=3:3"
PROJECTILE
-NOGRAVITY
+THRUACTORS
+BOUNCEONWALLS
+BOUNCEONCEILINGS
+NOEXPLODEFLOOR
+DONTBLAST
Gravity 1.0
height 8
radius 8
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_PlaySoundEx("weapon/mirrorabsorb","Auto")
Spawn2:
MGI2 EFGFGFGFGF 1
MGI2 GFGFGFGFGF 1
MGI2 GFGFGFGFGF 1
MGI2 GFGFGFGFGF 1
TNT1 A 0 A_PlaySoundEx("mm7/dead","Auto")
TNT1 A 2 A_SpawnItemEX("CriticalDeathSpawner",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
stop
}
}

Actor MagicCardBoss : VCBaseWeapon
{
weapon.ammotype "Base112Ammo"
weapon.ammotype2 "BaseAltFireAmmo"
Obituary "$OB_MAGICMAN1"
const int TRN_SPD = 15;
const int TRN_RSE = 3;
States
{
Ready:
MGCH A 0
MGCH A 2 ACS_NamedExecuteWithResult("VC_SetState",9)

Ready2:
MGCH A 0 A_JumpIfInventory("Base112Ammo",42,"Ready2.CanTF")
MGCH A 1 A_WeaponReady MGCH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
MGCH A 1 A_WeaponReady MGCH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
MGCH A 0 A_GiveInventory("Base112Ammo",1)
loop
Ready2.CanTF:
MGCH A 1 A_WeaponReady MGCH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") MGCH A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
MGCH A 1 A_WeaponReady MGCH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") MGCH A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
MGCH A 0 A_GiveInventory("Base112Ammo",1)
loop
Ready3:
MGCH AA 0 A_JumpIfInventory("MaximumUltimateAmmo",1,"Ready4")
Goto UltEnd
Ready4:
TNT1 A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,28))
TNT1 A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,28))
MGCH A 0 A_GiveInventory("Base112Ammo",1)
Goto Ready3

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
MGCH A 1 A_Lower
Loop
Select:
TNT1 A 0 ACS_ExecuteAlways(991,0,927)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
MGCH A 1 A_Raise
Loop

Fire:
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag2",1,"TrainMagicBall")
MGCH A 1 Offset(-2,32)ACS_NamedExecuteWithResult("VC_SetState",5)
MGCH A 1 Offset(-5,30)
MGCH A 1 Offset(-8,28)
MGCH A 1 Offset(-14,27)
MGCH A 0 A_PlaySoundEx("weapon/MagicManOrb","Weapon") 
MGCH A 0 A_SpawnItemEx("MagicManShot",0,8,44,40*cos(pitch),0,40*-sin(pitch),0,SXF_TRANSFERPITCH)
MGCH BCBAAA 2 Offset(-20,25)
MGCH A 7 Offset(-20,25)
MGCH A 1 Offset(-14,27)
MGCH A 1 Offset(-8,28)
MGCH A 1 Offset(-5,30)
MGCH A 1 Offset(-2,32)
Goto Ready2
TrainMagicBall:
MGKH SST 2 A_GiveInventory("TrainBallThrow",1)
TNT1 A 0 A_PlaySoundEx("misc/sharktorpedo","Weapon")
TNT1 A 0 A_PlaySoundEx("weapon/pshot","Body")
TNT1 A 0 A_FireCustomMissile("MagicManBall2",0,0,0,56)
MGKH A 0 A_TakeInventory("Base112Ammo",28)
MGKH UVWX 1
TNT1 A 20
Goto Ready3

Altfire:
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag2",1,"TrainRam")
RATU A 0 A_JumpIfInventory("NoAltfire",1,"Ready2")
MGCH A 0 A_GunFlash("MagicCardStart")
Hold1:
TOAD A 0 A_GiveInventory("ToadChargeDamageGive")
MGCH A 1 Offset( 0,32)A_GiveInventory("BaseAltFireAmmo",1) TNT1 A 0 A_JumpIfInventory("BaseAltFireAmmo",56,"Hold2") TNT1 A 0 A_refire(1) Goto ThrowCard
MGCH A 1 Offset( 0,32)A_GiveInventory("BaseAltFireAmmo",2) TNT1 A 0 A_JumpIfInventory("BaseAltFireAmmo",56,"Hold2") TNT1 A 0 A_refire(1) Goto ThrowCard
MGCH AA 0
loop
Hold2:
MGCH A 1 Offset( 1,32)A_GiveInventory("BaseAltFireAmmo",1) TNT1 A 0 A_JumpIfInventory("BaseAltFireAmmo",112,"Hold3Pre") TNT1 A 0 A_refire(1) Goto ThrowCard
MGCH A 1 Offset(-1,32)A_GiveInventory("BaseAltFireAmmo",2) TNT1 A 0 A_JumpIfInventory("BaseAltFireAmmo",112,"Hold3Pre") TNT1 A 0 A_refire(1) Goto ThrowCard
MGCH AA 0
loop
Hold3Pre:
TNT1 A 0 A_SpawnItemEx("MagicSpotlight")
Hold3:
MGCH A 1 Offset( 2,32) 
MGCH A 0 A_refire(1)
Goto ThrowCard
MGCH A 1 Offset(-2,32)
MGCH A 0 A_refire(1)
Goto ThrowCard
MGCH A 0
loop
ThrowCard:
TOAD A 0 A_GiveInventory("ToadChargeDamageTake")
TNT1 A 0 A_GunFlash("MagicCardThrow")
TNT1 A 0 A_GiveInventory("MagicManCardPickUp",1)
MGCH A 2 Offset(18,41)
MGCH AAAAAAAA 2 Offset(36,52)
MGCH A 2 Offset(23,43)
MGCH A 2 Offset(13,37)
MGCH A 2 Offset(7,35)
Goto Ready2
TrainRam:
RATU A 0 A_JumpIfInventory("NoAltfire",1,"Ready3")
TNT1 A 0 A_PlaySoundEx("weapon/chargecoal","Weapon")
TNT1 A 0 A_GunFlash("TrainSpeedUp")
TNT1 A 0 SetPlayerProperty(0,1,4)
TNT1 A 0 A_GiveInventory("TrainSpeedIncrease")
TNT1 A 5 A_PlaySoundEx("weapon/chargetrain","Auto") TNT1 A 0 A_SpawnItemEx("TrainSmoke",40,0,64,0,0,5)
TNT1 A 5 A_PlaySoundEx("weapon/chargetrain","Auto") TNT1 A 0 A_SpawnItemEx("TrainSmoke",40,0,64,0,0,5)
TNT1 A 5 A_PlaySoundEx("weapon/chargetrain","Auto") TNT1 A 0 A_SpawnItemEx("TrainSmoke",40,0,64,0,0,5)
TNT1 A 5 A_PlaySoundEx("weapon/chargetrain","Auto") TNT1 A 0 A_SpawnItemEx("TrainSmoke",40,0,64,0,0,5)
TNT1 A 5 A_PlaySoundEx("weapon/chargetrain","Auto") TNT1 A 0 A_SpawnItemEx("TrainSmoke",40,0,64,0,0,5)
TNT1 A 0 A_GunFlash("TrainMovement")
TNT1 A 0 SetPlayerProperty(0,0,4)
TNT1 A 0 A_TakeInventory("TrainSpeedIncrease")
TNT1 A 18
Goto Ready3

User1:
MGCH A 0 A_GunFlash("MagicBallAnim")
MGCH A 0 A_Setgravity(0.0)
MGCH A 1 A_JumpIfInventory("BaseCustomFlag1",1,"EndUser1")
wait
EndUser1:
MGCH A 0 A_GiveInventory("GravityRestore",1)
MGCH AAA 5 A_TakeInventory("BaseCustomFlag1",1)
Goto Ready2

UltimateAttack:
MGCH A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,79)
MGCH A 0 A_PlaySoundEx("misc/clnwindup","SoundSlot1")
MGCH A 0 A_PlaySoundEx("classes/ultimateactivation","SoundSlot2")
MGCH A 0 A_ChangeFlag("INVULNERABLE",True)
MGCH A 0 A_GiveInventory("InvProtection")
MGCH A 0 A_GiveInventory("BaseCustomFlag2",1)
MGCH A 0 A_GiveInventory("PowerUltBuildCooldown",1)
MGCH A 0 A_TakeInventory("CutterFlag",999) 
MGCH A 0 A_TakeInventory("UltAttackFlag",1)
MGCH A 0 SetPlayerProperty(0,1,4)
MGCH A 0 A_TakeInventory("MaximumUltimateAmmo",1) 
MGCH A 1 Offset(5,42)ACS_NamedExecuteWithResult("VC_SetState",4)
MGCH A 1 Offset(10,52)ACS_NamedExecuteWithResult("VC_SetState",4)
MGCH A 1 Offset(15,62)ACS_NamedExecuteWithResult("VC_SetState",4)
MGCH A 1 Offset(20,72)ACS_NamedExecuteWithResult("VC_SetState",3)
MGCH A 1 Offset(25,82)ACS_NamedExecuteWithResult("VC_SetState",3)
MGCH A 1 Offset(30,92)ACS_NamedExecuteWithResult("VC_SetState",3)
MGCH A 1 Offset(35,102)ACS_NamedExecuteWithResult("VC_SetState",2)
MGCH A 1 Offset(40,112)ACS_NamedExecuteWithResult("VC_SetState",2)
MGCH A 1 Offset(45,122)ACS_NamedExecuteWithResult("VC_SetState",2)
MGCH A 1 Offset(55,132)ACS_NamedExecuteWithResult("VC_SetState",1)
MGCH A 1 Offset(60,142)ACS_NamedExecuteWithResult("VC_SetState",1)
MGCH A 1 Offset(65,152)ACS_NamedExecuteWithResult("VC_SetState",1)
MGCH A 0 ACS_NamedExecute("VC_ViewHeight",0,100)
MGCH A 0 A_SpawnItemEx("MagicManDummy",0,0,64,0,0,0,0,1)
MGCH A 0 A_PlaySoundEx("weapon/shad_poof","SoundSlot3")
MGCH AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ShadowPoof2",random(0,120),0,random(-30,100),0,0,0,random(0,359))
MGCH A 0 ACS_NamedExecute("Class_Music_Changer",0,1,0)
UltWait:
TNT1 A 0 A_JumpIfInventory("CutterFlag",135,"UltReady")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",0)
TNT1 A 0 A_GiveInventory("CutterFlag",1)
loop
UltReady:
TNT1 A 0 ACS_NamedExecute("Class_Music_Changer",0,1,1)
TNT1 A 0 A_GunFlash("TrainMovement")
TNT1 A 0 A_GiveInventory("MagicManUltActive",1)
TNT1 A 0 A_SpawnItemEx("MagicManUltWatcher")
TNT1 A 0 SetPlayerProperty(0,0,4)
Goto Ready3
UltEnd:
TNT1 A 0 A_GiveInventory("MagicUltFinish",1)
MGCH A 0 A_PlaySoundEx("misc/clnwindup","SoundSlot1")
MGCH A 0 A_PlaySoundEx("weapon/shad_poof","SoundSlot2")
MGCH A 0 ACS_NamedExecute("VC_ViewHeight",0,52)
MGCH A 0 A_ChangeFlag("INVULNERABLE",False) MGCH A 0 A_TakeInventory("InvProtection")
MGCH A 0 A_TakeInventory("MagicManUltActive",1) MGCH A 0 A_TakeInventory("CutterFlag",999)
MGCH A 0 A_TakeInventory("PowerUltBuildCooldown",1) MGCH A 0 A_TakeInventory("BaseCustomFlag2",1)
MGCH AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ShadowPoof2",random(0,120),0,random(-20,100),0,0,0,random(0,359))
MGCH A 0 A_GunFlash("NoFlash") TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",0)
MGCH A 1 Offset(65,152)A_GiveInventory("GravityRestore")
MGCH A 1 Offset(60,142)
MGCH A 1 Offset(55,132)
MGCH A 1 Offset(45,122)
MGCH A 1 Offset(40,112)
MGCH A 1 Offset(35,102)
MGCH A 1 Offset(30,92)
MGCH A 1 Offset(25,82)
MGCH A 1 Offset(20,72)
MGCH A 1 Offset(15,62)
MGCH A 1 Offset(10,52)
MGCH A 1 Offset(5,42)
Goto Ready2

MagicBallAnim: 
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash") MGKH S 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",6) TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash") MGKH S 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",6)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash") MGKH S 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",6) TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash") MGKH S 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",6)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash") MGKH T 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",6) TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash") MGKH T 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",6)
TNT1 A 0 A_PlaySoundEx("misc/sharktorpedo","Weapon")
TNT1 A 0 A_PlaySoundEx("weapon/pshot","Body")
TNT1 A 0 A_FireCustomMissile("MagicManBall",0,0,-8,8)
TNT1 A 0 A_TakeInventory("Base112Ammo",42)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash") MGKH U 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",7) TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash") MGKH V 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",7)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash") MGKH W 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",7) TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash") MGKH X 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",7)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash") TNT1 A 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",7) TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash") TNT1 A 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",7)
TNT1 A 0 A_GiveInventory("BaseCustomFlag1",1)
stop
MagicCardStart:
MGCH J 1 A_JumpIfInventory("IsDead",1,"NoFlash")
loop
MagicCardThrow:
MGCH KLMNO 1 A_JumpIfInventory("IsDead",1,"NoFlash")
stop
TrainMovement: 
TNT1 A 0 A_GiveInventory("GravityRestore")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"StopMusic") TNT1 A 1 A_ChangeVelocity(TRN_SPD,0,momz,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_SpawnItemEx("MagicManTrainHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",2)>0,"RaiseTrain")
loop
RaiseTrain:
TNT1 A 0 A_Jump(192,"RaiseTrain1")
TNT1 A 0 A_GiveInventory("MagicCheerHandler",1)
RaiseTrain1:
TNT1 A 0 A_SetGravity(0.0)
TNT1 A 0 A_PlaySoundEx("weapon/gyrofly","SoundSlot1")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"StopMusic") TNT1 A 1 A_ChangeVelocity(TRN_SPD,0,TRN_RSE,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_GiveInventory("MagicDoveFlyPickUp1",1) TNT1 A 0 A_SpawnItemEx("MagicManTrainHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"StopMusic") TNT1 A 1 A_ChangeVelocity(TRN_SPD,0,TRN_RSE,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_GiveInventory("MagicDoveFlyPickUp1",1) TNT1 A 0 A_SpawnItemEx("MagicManTrainHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"StopMusic") TNT1 A 1 A_ChangeVelocity(TRN_SPD,0,TRN_RSE,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_GiveInventory("MagicDoveFlyPickUp1",1) TNT1 A 0 A_SpawnItemEx("MagicManTrainHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",2)>0,"RaiseTrain2")
Goto TrainMovement
RaiseTrain2:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"StopMusic") TNT1 A 1 A_ChangeVelocity(TRN_SPD,0,TRN_RSE,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_GiveInventory("MagicDoveFlyPickUp2",1) TNT1 A 0 A_SpawnItemEx("MagicManTrainHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"StopMusic") TNT1 A 1 A_ChangeVelocity(TRN_SPD,0,TRN_RSE,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_GiveInventory("MagicDoveFlyPickUp2",1) TNT1 A 0 A_SpawnItemEx("MagicManTrainHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"StopMusic") TNT1 A 1 A_ChangeVelocity(TRN_SPD,0,TRN_RSE,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_GiveInventory("MagicDoveFlyPickUp2",1) TNT1 A 0 A_SpawnItemEx("MagicManTrainHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",2)>0,"RaiseTrain3")
Goto TrainMovement
RaiseTrain3:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"StopMusic") TNT1 A 1 A_ChangeVelocity(TRN_SPD,0,TRN_RSE,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_GiveInventory("MagicDoveFlyPickUp3",1) TNT1 A 0 A_SpawnItemEx("MagicManTrainHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"StopMusic") TNT1 A 1 A_ChangeVelocity(TRN_SPD,0,TRN_RSE,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_GiveInventory("MagicDoveFlyPickUp3",1) TNT1 A 0 A_SpawnItemEx("MagicManTrainHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"StopMusic") TNT1 A 1 A_ChangeVelocity(TRN_SPD,0,TRN_RSE,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_GiveInventory("MagicDoveFlyPickUp3",1) TNT1 A 0 A_SpawnItemEx("MagicManTrainHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",2)>0,"RaiseTrain4")
Goto TrainMovement
RaiseTrain4:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"StopMusic") TNT1 A 1 A_ChangeVelocity(TRN_SPD,0,TRN_RSE,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_GiveInventory("MagicDoveFlyPickUp4",1) TNT1 A 0 A_SpawnItemEx("MagicManTrainHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"StopMusic") TNT1 A 1 A_ChangeVelocity(TRN_SPD,0,TRN_RSE,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_GiveInventory("MagicDoveFlyPickUp4",1) TNT1 A 0 A_SpawnItemEx("MagicManTrainHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"StopMusic") TNT1 A 1 A_ChangeVelocity(TRN_SPD,0,TRN_RSE,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_GiveInventory("MagicDoveFlyPickUp4",1) TNT1 A 0 A_SpawnItemEx("MagicManTrainHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",2)>0,"RaiseTrain1")
Goto TrainMovement
TrainSpeedUp:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"StopMusic") TNT1 A 1 A_ChangeVelocity(TRN_SPD*2,0,momz,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_SpawnItemEx("MagicManTrainHitBox2",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"StopMusic") TNT1 A 1 A_ChangeVelocity(TRN_SPD*2,0,momz,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_SpawnItemEx("MagicManTrainHitBox2",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
loop
StopMusic:
TNT1 A 0 A_GiveInventory("GravityRestore")
TNT1 A 0 ACS_NamedExecute("Magic_Man_Music_Changer",0,2)
stop
}
}

actor MagicManShot
{
Translation "204:204=197:197", "195:195=241:241", "250:250=229:229", "249:249=109:109"
PROJECTILE
Species "MagicShotType"
+THRUSPECIES
-NOINTERACTION
-NOBLOCKMAP
+SHOOTABLE
+NOBLOOD
+NORADIUSDMG
+DONTREFLECT
+GHOST
+DONTRIP
+NOTARGETSWITCH
Health 99999
painchance 256
mass 99999
Damagetype "MagicMan"
Obituary "$OB_MAGICMAN1"
damagefactor "FireTrap", 0.0
damagefactor "FirePillar", 0.0
damagefactor "Beam", 0.0
Damage (24)
Radius 16
Height 24
Speed 25
scale 3.0
const int OFS = 16;
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1
Spawn2:
MGB9 QR 2 A_SpawnItemEx("MagicManShotFX",0,Random(-OFS,OFS),Random(-OFS,OFS),0,0,0,0,SXF_TRANSFERTRANSLATION)
loop
Pain:
TNT1 A 0 A_PlaySound("weapon/BounceBallPop")
TNT1 A 0 A_ChangeFlag("NOINTERACTION",True)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",True)
TNT1 AA 0 A_SpawnItemEx("MagicManRomper",0,0,0,8,0,8,Random(0,359))
Death:
XDeath:
TNT1 A 0 A_Stop
MGB9 ST 2 A_SpawnItemEx("MagicManShotFX",0,Random(-OFS,OFS),Random(-OFS,OFS),0,0,0,0,SXF_TRANSFERTRANSLATION)
stop
}
}

actor MagicManShotFX
{
Translation "250:205=229:229"
+NOINTERACTION
+DONTSPLASH
Gravity 0
Damage (0)
height 0
radius 0
scale 3.0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
MGB9 UVWX 2
stop
}
}

actor MagicManRomper
{
translation "192:192=215:215", "198:198=128:128"
Damagetype "MagicManRomper"
Obituary "$OB_MAGICMAN2"
PROJECTILE
scale 2.5
damage(1)
radius 8
height 8
-NOGRAVITY
+SEEKERMISSILE
+LOOKALLAROUND
bouncetype "Hexen"
bouncecount 30
speed 0
ReactionTime 525
Species "MagicShotType"
+THRUSPECIES
-BOUNCEONFLOORS
+BOUNCEONCEILINGS
+NOEXPLODEFLOOR
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
M0RO G 1 A_CheckFloor("loopit2")
loop
loopit2:
M0RO GGGG 0 A_FaceTracer
M0RO G 0 A_ChangeVelocity(3,0,momz,CVF_REPLACE|CVF_RELATIVE)
M0RO GGGGHHHHGGGGIIII 1 A_SeekerMissile(0, 0, SMF_LOOK, 256)
M0RO GGGGGGGGGGGGGGGG 0 A_Countdown
loop
Death:
TNT1 A 0 A_ChangeFlag("THRUACTORS",True)
TNT1 A 0 A_ChangeFlag("NOGRAVITY",True)
TNT1 A 0 A_Jump(64,"Detonate3")
TNT1 A 0 A_Jump(128,"Detonate2")
Detonate1:
TNT1 A 0 A_PlaySound("misc/metdie")
TNT1 A 0 A_Explode(15,80,0)
MMFX FGHI 3 A_Stop
stop
Detonate2:
TNT1 A 0 A_PlaySound("weapon/napalm")
TNT1 A 0 A_Explode(30,128,0)
NAPA EFGHIJKLMNOPQRS 2
stop
Detonate3:
TNT1 A 0 A_PlaySound("weapon/crashexplode")
CRAS K 3 A_Explode(18,64,0)
CRAS LM 3
CRAS N 3 A_Explode(18,64,0)
CRAS OP 3
CRAS Q 3 A_Explode(18,64,0)
CRAS RS 3
CRAS T 3 A_Explode(18,64,0)
CRAS VW 3
stop
}
}

actor RobbedBolts
{
+MISSILE
+RIPPER
+THRUACTORS
+CLIENTSIDEONLY
+FLOORCLIP
Damage (0)
Scale 2.5
Height 5
Radius 5
-NOGRAVITY
+BOUNCEONFLOORS
+DOOMBOUNCE
bouncefactor 1.0
Bouncecount 3
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_Jump(25,"Bolt3")
TNT1 A 0 A_Jump(64,"Bolt2")
Goto Bolt1
Bolt1:
BOLT A 1
TNT1 A 1
loop
Bolt2:
BOLT J 1
TNT1 A 1
loop
Bolt3:
BOLT S 1
TNT1 A 1
loop
Death:
XDeath:
TNT1 A 0
stop
}
}

actor MagicManBall
{
PROJECTILE
Damagetype "MagicMan"
Obituary "$OB_MAGICMAN3"
+DONTBLAST
+DONTREFLECT
+THRUGHOST
+SKYEXPLODE
+EXPLODEONWATER
Damage (24)
Radius 16
Height 16
Speed 35
scale 2.5
const int X_OFS = 32;
const int Z_OFS = 16;
const int X_SPD = 14;
const int Z_SPD = 1;
const int DEG = 25;
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
MGBX EEFF 1 A_JumpIfInTargetInventory("IsDead",1,"Death")
loop
Death:
TNT1 A 0 A_CheckFloor("FloorSpawn")
TNT1 A 0 A_CheckCeiling("CeilingSpawn")
Goto WallSpawn
FloorSpawn:
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM",0,0,Z_OFS,X_SPD,0,Z_SPD,   0)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM",0,0,Z_OFS,X_SPD,0,Z_SPD, DEG)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM",0,0,Z_OFS,X_SPD,0,Z_SPD,-DEG)
Goto ExtraAssets
CeilingSpawn:
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM",0,0,-Z_OFS,X_SPD,0,-Z_SPD,   0)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM",0,0,-Z_OFS,X_SPD,0,-Z_SPD, DEG)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM",0,0,-Z_OFS,X_SPD,0,-Z_SPD,-DEG)
Goto ExtraAssets
WallSpawn:
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM",0,0,0,X_SPD,0,0,   0)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM",0,0,0,X_SPD,0,0, DEG)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM",0,0,0,X_SPD,0,0,-DEG)
Goto ExtraAssets
XDeath:
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM",X_OFS,0,0,X_SPD,0,0,  0)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM",X_OFS,0,0,X_SPD,0,0,120)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM",X_OFS,0,0,X_SPD,0,0,240)
Goto ExtraAssets
ExtraAssets:
TNT1 A 0 A_PlaySoundEx("weapon/MagicManDove","Weapon")
//TNT1 A 0 A_SpawnItemEx("MagicBallShell")
TNT1 A 2 A_SpawnItemEx("MagicManFirework",0,0,9,0,0,12,0,1)
stop
}
}

actor MagicManBall2
{
PROJECTILE
Damagetype "MagicManBallUlt"
Obituary "$OB_MAGICMAN6"
+DONTBLAST
+DONTREFLECT
+THRUGHOST
+SKYEXPLODE
+EXPLODEONWATER
Damage (0)
Radius 16
Height 56
Speed 45
scale 2.5
const int X_OFS = 32;
const int Z_OFS = 16;
const int X_SPD = 14;
const int Z_SPD = 1;
const int DEG = 25;
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
MGBX EEFF 1 A_JumpIfInTargetInventory("IsDead",1,"Death")
loop
Death:
TNT1 A 0 A_CheckFloor("FloorSpawn")
TNT1 A 0 A_CheckCeiling("CeilingSpawn")
Goto WallSpawn
FloorSpawn:
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM2",0,0,Z_OFS,X_SPD,0,Z_SPD, DEG*2)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM2",0,0,Z_OFS,X_SPD,0,Z_SPD, DEG)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM2",0,0,Z_OFS,X_SPD,0,Z_SPD,-DEG)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM2",0,0,Z_OFS,X_SPD,0,Z_SPD,-DEG*2)
Goto ExtraAssets
CeilingSpawn:
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM2",0,0,-Z_OFS,X_SPD,0,-Z_SPD, DEG*2)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM2",0,0,-Z_OFS,X_SPD,0,-Z_SPD, DEG)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM2",0,0,-Z_OFS,X_SPD,0,-Z_SPD,-DEG)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM2",0,0,-Z_OFS,X_SPD,0,-Z_SPD,-DEG*2)
Goto ExtraAssets
WallSpawn:
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM2",0,0,0,X_SPD,0,0, DEG*2)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM2",0,0,0,X_SPD,0,0, DEG)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM2",0,0,0,X_SPD,0,0,-DEG)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM2",0,0,0,X_SPD,0,0,-DEG*2)
Goto ExtraAssets
XDeath:
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM2",X_OFS,0,0,X_SPD,0,0, 45)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM2",X_OFS,0,0,X_SPD,0,0,135)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM2",X_OFS,0,0,X_SPD,0,0,225)
TNT1 A 0 A_SpawnItemEx("MagicHomingBirdsRM2",X_OFS,0,0,X_SPD,0,0,315)
Goto ExtraAssets
ExtraAssets:
TNT1 A 0 A_PlaySoundEx("weapon/MagicManDove","SoundSlot1")
TNT1 A 0 A_PlaySoundEx("weapon/napalm","SoundSlot2")
TNT1 A 0 A_Explode(20,128,0)
NAPA EFGHIJKLMNOPQRS 2
stop
}
}

actor MagicHomingBirdsRM
{
PROJECTILE
Radius 8
Height 5
scale 2.5
Damagetype "MagicMan"
Obituary "$OB_MAGICMAN4"
damage (8)
speed 16
BounceCount 2
ReactionTime 10
+DOOMBOUNCE
+SEEKERMISSILE
-EXTREMEDEATH
+SCREENSEEKER
+LOOKALLAROUND
Species "MagicShotType"
+THRUSPECIES
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
MGBX AB 3
TNT1 A 0 A_ChangeFlag("THRUACTORS",False)
MGBX CD 3
Spawn2:
TNT1 A 0 A_CountDown
MGBX AAABBBCCCDDD 1 A_SeekerMissile (2, 10, SMF_LOOK, 256, 10)
loop
Death:
MMFX BCDE 2
stop
}
}

actor MagicHomingBirdsRM2 : MagicHomingBirdsRM
{
Damagetype "MagicManDoveUlt"
Obituary "$OB_MAGICMAN6"
damage (6)
speed 20
States
{
Spawn2:
TNT1 A 0 A_CountDown
MGBX AAABBBCCCDDD 1 A_SeekerMissile (4, 20, SMF_LOOK, 256, 20)
loop
}
}

actor MagicBallShell : BasicClientSide
{
Translation "199:199=176:176","202:202=218:218"
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
MGB8 Q 2
TNT1 A 2
MGB8 R 2
TNT1 A 2
MGB8 S 2
TNT1 A 2
MGB8 T 2
stop
}
}

actor MagicManFirework
{ 
scale 2.5
+THRUACTORS
PROJECTILE
damage (0)
radius 1
height 1
States
{
Spawn:
TNT1 A 0
TNT1 A 4 A_SpawnItemEx("MagicManFireworkExp",random(-15,15),random(-15,15),10,0,0,0,0,1)
TNT1 A 4 A_SpawnItemEx("MagicManFireworkExp",random(-15,15),random(-15,15), 0,0,0,0,0,1)
TNT1 A 4 A_SpawnItemEx("MagicManFireworkExp",random(-15,15),random(-15,15),-10,0,0,0,0,1)
stop
}
}

actor MagicManFireworkExp : MagicManShotFX
{
translation "192:192=176:176","198:198=218:218","199:199=176:176","202:202=218:218"
scale 2.0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 4
MGB9 JKLMN 4
stop
}
}

actor MagicManCardPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("MagicCardAnim",1)
TNT1 A 0 A_PlaySound("weapon/magiccard","Weapon")
TNT1 A 0 A_JumpIfInventory("BaseAltFireAmmo",112,"Pickup3")
TNT1 A 0 A_JumpIfInventory("BaseAltFireAmmo",56,"Pickup2")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,"Pickup1b")
TNT1 A 0 A_FireCustomMissile("MagicManCard",0,0,-8,8)
TNT1 A 0 A_GiveInventory("WeaponCharge",1)
Goto End
Pickup1b:
TNT1 A 0 A_FireCustomMissile("MagicManCardB",0,0,-8,8)
TNT1 A 0 A_TakeInventory("WeaponCharge",1)
Goto End
Pickup2:
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,"Pickup2b")
TNT1 A 0 A_FireCustomMissile("MagicManCard2",0,0,-8,8)
TNT1 A 0 A_GiveInventory("WeaponCharge",1)
Goto End
Pickup2b:
TNT1 A 0 A_FireCustomMissile("MagicManCard2B",0,0,-8,8)
TNT1 A 0 A_TakeInventory("WeaponCharge",1)
Goto End
Pickup3:
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,"Pickup3b")
TNT1 A 0 A_FireCustomMissile("MagicManCard3",0,0,-8,8)
TNT1 A 0 A_GiveInventory("WeaponCharge",1)
Goto End
Pickup3b:
TNT1 A 0 A_FireCustomMissile("MagicManCard3B",0,0,-8,8)
TNT1 A 0 A_TakeInventory("WeaponCharge",1)
Goto End
End:
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",112)
stop
}
}

actor MagicManCard
{
Translation "192:192=197:197","198:198=109:109","0:2=241:241"
PROJECTILE
+NOCLIP
+NOINTERACTION
+THRUGHOST
Radius 5
Height 5
scale 2.5
damage (0)
meleerange 12
speed 35
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
X_BH A 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH A 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH B 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH B 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH D 0 A_ScaleVelocity(0.5)
X_BH D 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH D 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH D 0 A_ScaleVelocity(0.5)
X_BH E 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH E 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH D 0 A_ScaleVelocity(-2.0)
X_BH F 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH F 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
goto Return
Return:
X_BH A 0 A_CustomMissile("ReturningMagicManCard",0,0,0,0)
stop
Death:
TNT1 A 0
stop
}
}

actor MagicManCardB : MagicManCard
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
X_BH A 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH A 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH B 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH B 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH D 0 A_ScaleVelocity(0.5)
X_BH D 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH D 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH D 0 A_ScaleVelocity(0.5)
X_BH E 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH E 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH D 0 A_ScaleVelocity(-2.0)
X_BH F 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH F 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
goto Return
Return:
X_BH A 0 A_CustomMissile("ReturningMagicManCardB",0,0,0,0)
stop
}
}

actor MagicManCard2 : MagicManCard
{
speed 50
States
{
Return:
X_BH A 0 A_CustomMissile("ReturningMagicManCard2",0,0,0,0)
stop
}
}

actor MagicManCard2B : MagicManCardB
{
speed 50
States
{
Return:
X_BH A 0 A_CustomMissile("ReturningMagicManCard2B",0,0,0,0)
stop
}
}

actor MagicManCard3 : MagicManCard
{
speed 65
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
X_BH A 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH A 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH B 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH B 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH D 0 A_ScaleVelocity(0.5)
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH D 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH D 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH D 0 A_ScaleVelocity(0.5)
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH E 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH E 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH D 0 A_ScaleVelocity(-2.0)
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH F 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH F 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death")
X_BH F 0 A_CustomMissile("ReturningMagicManCard3",0,0,0,0)
stop
}
}

actor MagicManCard3B : MagicManCard3
{
speed 65
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
X_BH A 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH A 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH B 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH B 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH D 0 A_ScaleVelocity(0.5)
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH D 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH D 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH D 0 A_ScaleVelocity(0.5)
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH E 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH E 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH D 0 A_ScaleVelocity(-2.0)
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH F 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH F 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death")
X_BH F 0 A_CustomMissile("ReturningMagicManCard3B",0,0,0,0)
stop
}
}

actor ReturningMagicManCard : MagicManCard
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
X_BH A 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH A 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH B 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH B 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH D 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH D 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH E 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH E 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH F 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH F 1 A_SpawnItemEx("MagicCardDamagerRM",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
goto Return
}
}

actor ReturningMagicManCardB : MagicManCardB
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
X_BH A 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH A 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH B 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH B 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH D 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH D 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH E 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH E 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH F 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH F 1 A_SpawnItemEx("MagicCardDamagerRMB",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
goto Return
}
}

actor ReturningMagicManCard2 : MagicManCard2
{
States
{
Return:
X_BH F 0 A_CustomMissile("ReturningMagicManCard2",0,0,0,0)
stop
}
}

actor ReturningMagicManCard2B : MagicManCard2B
{
States
{
Return:
X_BH F 0 A_CustomMissile("ReturningMagicManCard2B",0,0,0,0)
stop
}
}

actor ReturningMagicManCard3 : MagicManCard3
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH A 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH A 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH B 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH B 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH D 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH D 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH E 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH E 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH F 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH F 1 A_SpawnItemEx("MagicCardDamagerRM2",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHit",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
goto Return
}
}

actor ReturningMagicManCard3B : MagicManCard3B
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH A 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH A 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH B 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH B 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH C 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH D 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH D 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH E 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH E 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
TNT1 A 0 A_SpawnItemEx("MagicManCardFX",0,0,0,0,0,0,0,1)
X_BH F 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
X_BH F 1 A_SpawnItemEx("MagicCardDamagerRM2B",0,0,0,2,0,0) TNT1 A 0 A_JumpIfInTargetInventory("MagicCardHitB",1,"Death") TNT1 A 0 A_JumpIfCloser(64,"Death")
goto Return
}
}

actor MagicCardDamagerRM
{
PROJECTILE
+DONTSPLASH
+DONTBLAST
+THRUGHOST
+PICKUP
Damagetype "MagicManCard"
Obituary "$OB_MAGICMAN5"
radius 16
height 8
Damage (18)
States
{
Spawn:
TNT1 A 2
stop
Death:
TNT1 AAAA 0 A_SpawnItemEx("MagicManShotFX",random(-16,16),0,random(-8,8),frandom(4,8),0,frandom(-4,4),random(0,359),1)
XDeath:
TNT1 A 0
stop
}
}

actor MagicCardDamagerRMB : MagicCardDamagerRM
{
Damagetype "MagicManCardB"
}

actor MagicCardDamagerRM2 : MagicCardDamagerRM
{
Damagetype "MagicManCard2"
Damage (36)
States
{
Spawn:
TNT1 A 2
stop
}
}

actor MagicCardDamagerRM2B : MagicCardDamagerRM2
{
Damagetype "MagicManCard2B"
}

actor MagicManCardFX : BasicClientSide
{
renderstyle add
alpha 1.0
+BRIGHT
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 2
X_BH AABBCCDDEEFF 1 A_FadeOut(0.10)
stop
}
}

actor MagicCardProtect : PowerProtection
{
Powerup.Duration 11
DamageFactor "MagicManCard", 0.0
}

actor MagicCardBProtect : PowerProtection
{
Powerup.Duration 11
DamageFactor "MagicManCardB", 0.0
}

actor MagicCardProtect2 : PowerProtection
{
Powerup.Duration 11
DamageFactor "MagicManCard2", 0.0
}

actor MagicCardProtect2B : PowerProtection
{
Powerup.Duration 11
DamageFactor "MagicManCard2B", 0.0
}

actor MagicManCloud : BasicClientSide
{
scale 4.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
POOF CD 2
stop
}
}

actor MagicManCloud2 : BasicClientSide
{
scale 1.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
POOF CD 2
stop
}
}

actor MagicManUltWatcher
{
PROJECTILE
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
reactiontime 400
Speed 0
Scale 2.5
States
{
Spawn:
TNT1 AA 0
TNT1 AAA 1 A_JumpIfInTargetInventory("IsDead",1,"Death")
TNT1 A 0 A_TakeFromTarget("MaximumUltimateAmmo",2) 
TNT1 A 0 A_JumpIfInTargetInventory("MaximumUltimateAmmo",1,"Spawn")
Spawn2:
TNT1 AA 0
TNT1 A 1 A_JumpIfInTargetInventory("IsDead",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("MagicManUltActive",1,"Spawn2")
Death:
MGCH A 0 ACS_NamedExecute("Class_Music_Changer",0,1,2)
stop
}
}

actor MagicManDummy
{
Height 0
Radius 0
scale 2.5
Species "MagicShotType"
+THRUSPECIES
+NOCLIP
-SOLID
+NOGRAVITY
+NOINTERACTION
+MISSILE
const int Z_OFS = 64;
States
{
Spawn:
TNT1 A 0
Spawn2:
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 V 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz)
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",100,"Unveil")
loop
Unveil:
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 V 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 W 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 W 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 X 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 X 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 Y 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 Y 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 Y 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 Y 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 Y 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 Y 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 Y 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 Y 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGIC S 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGIC S 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGIC A 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGIC A 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGIC A 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGIC A 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGIC A 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGIC A 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz) TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall")
Stance:
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGIC A 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz)
TNT1 A 0 A_JumpIfInTargetInventory("TrainBallThrow",1,"ThrowBall") TNT1 A 0 A_JumpIfInTargetInventory("TrainSpeedIncrease",1,"SpeedUp")
loop
ThrowBall:
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 T 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz)
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 T 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz)
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 T 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz)
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 T 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz)
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 T 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz)
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 T 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz)
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 U 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz)
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 U 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz)
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 U 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz)
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 U 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz)
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 U 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz)
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGI2 U 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz)
TNT1 AAAA 0 A_TakeFromTarget("TrainBallThrow",1)
Goto Stance
SpeedUp:
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGIC G 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz)
TNT1 A 0 A_JumpIfInTargetInventory("MagicUltFinish",1,"Death") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death") MGIC G 1 A_Warp(AAPTR_TARGET,0,0,Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SpawnItemEx("MagicManDummyHitBox",0,0,0,momx,momy,momz)
TNT1 A 0 A_JumpIfInTargetInventory("TrainSpeedIncrease",1,"SpeedUp")
Goto Stance
Death:
TNT1 A 0
stop
}
}

actor MagicManTrainProtect : PowerProtection
{
Powerup.Duration 15
DamageFactor "MagicManTrain", 0.0
}

actor MagicManTrainHitBox
{
PROJECTILE
+DONTBLAST
+DONTREFLECT
-NOBLOCKMAP
damagetype "MagicManTrain"
Obituary "$OB_MAGICMAN6"
Species "MagicShotType"
+THRUSPECIES
damage (24)
Radius 48
Height 48
Speed 0
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
Death:
XDeath:
TNT1 A 0 
TNT1 A 1
stop
}
}

actor MagicManTrainHitBox2 : MagicManTrainHitBox
{
damage (48)
}

actor MagicManDummyHitBox
{
PROJECTILE
Height 72
health 99999
+NOBLOOD
Radius 32
Damage (0)
+SHOOTABLE
+NORADIUSDMG
-NOBLOCKMAP
+DONTREFLECT
+GHOST
Species "MagicShotType"
+THRUSPECIES
Speed 5
scale 2.5
painchance 256
mass 99999
+DONTRIP
States
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
Pain:
TNT1 A 0 A_PlaySoundEx("weapon/BounceBallPop","Weapon") 
TNT1 A 0 A_SpawnItemEx("DoveSpawnerRM",0,0,32)
TNT1 A 0 A_SpawnItemEx("MagicManCloud2",0,0,32)
TNT1 A 2 A_Jump(64,"Cheer")
stop
Cheer:
TNT1 A 2 A_GiveToTarget("MagicCheerHandler")
stop
}
}

Actor DoveSpawnerRM
{
PROJECTILE
+NOINTERACTION
Height 1
Radius 1
ReactionTime 35
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 AA 0 A_SpawnItemEx("Dove", Random(3,5), Random(3,5),0,Random(3,5), Random(3,5), Random(0, 2), Random(0, 360))
stop
}
}

actor MagicDoveFlyPickUp1 : CustomInventory
{
const int X_OFS = 32;
const int Y_OFS = 16;
states
{
Pickup:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport",(X_OFS*0), Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport",(X_OFS*0),-Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport",(X_OFS*1), Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport",(X_OFS*1),-Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport",(X_OFS*2), Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport",(X_OFS*2),-Y_OFS)
stop
}
}

actor MagicDoveFlyPickUp2 : MagicDoveFlyPickUp1
{
states
{
Pickup:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport2",(X_OFS*0), Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport2",(X_OFS*0),-Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport2",(X_OFS*1), Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport2",(X_OFS*1),-Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport2",(X_OFS*2), Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport2",(X_OFS*2),-Y_OFS)
stop
}
}

actor MagicDoveFlyPickUp3 : MagicDoveFlyPickUp1
{
states
{
Pickup:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport3",(X_OFS*0), Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport3",(X_OFS*0),-Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport3",(X_OFS*1), Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport3",(X_OFS*1),-Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport3",(X_OFS*2), Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport3",(X_OFS*2),-Y_OFS)
stop
}
}

actor MagicDoveFlyPickUp4 : MagicDoveFlyPickUp1
{
states
{
Pickup:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport4",(X_OFS*0), Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport4",(X_OFS*0),-Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport4",(X_OFS*1), Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport4",(X_OFS*1),-Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport4",(X_OFS*2), Y_OFS)
TNT1 A 0 A_SpawnItemEx("MagicManDoveSupport4",(X_OFS*2),-Y_OFS)
stop
}
}

actor MagicManDoveSupport
{
Translation "195:195=3:3", "204:204=216:216"
Height 0
Radius 0
scale 3.0
+NOCLIP
-SOLID
+NOGRAVITY
+NOINTERACTION
+CLIENTSIDEONLY
+MISSILE
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
Spawn2:
MGBX A 1
stop
}
}

actor MagicManDoveSupport2 : MagicManDoveSupport
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
Spawn2:
MGBX B 1
stop
}
}

actor MagicManDoveSupport3 : MagicManDoveSupport
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
Spawn2:
MGBX C 1
stop
}
}

actor MagicManDoveSupport4 : MagicManDoveSupport
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
Spawn2:
MGBX D 1
stop
}
}

actor TrainBallThrow : Inventory
{
inventory.amount 1
inventory.maxamount 1
}
actor TrainSpeedIncrease : TrainBallThrow {}
actor MagicManUltActive : TrainBallThrow {}
actor MagicManStealCoolDown : TrainBallThrow {}

//CBM
actor PainMagicM_CardHit : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 1 A_SpawnItemEx("MagicCardHealth",0,0,28,0,0,0,0,1)
stop
}
}

actor PainMagicM_CardHit2 : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 1 A_SpawnItemEx("MagicCardHealth2",0,0,28,0,0,0,0,1)
stop

No:
TNT1 A 0
stop
}
}

actor MagicCardHealth
{
Translation "192:192=216:216","198:198=3:3"
PROJECTILE
+NOINTERACTION
+NOCLIP
+SEEKERMISSILE
ReactionTime 200
Damage (0)
Radius 2
Height 2
speed 35
scale 2.5
const int CRD_RNG = 64;
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_TransferPointer(2,0,2,2)
TNT1 A 0 A_RearrangePointers(0,0,2)
TNT1 A 0 A_FaceTarget
TNT1 A 0 A_Jump(256,"Spawn2")
Goto Spawn2

Spawn2:
X_BH H 1 A_JumpIfCloser(CRD_RNG,"Giver") X_BH H 0 A_SeekerMissile(90,90,2) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
X_BH H 1 A_JumpIfCloser(CRD_RNG,"Giver") X_BH H 0 A_SeekerMissile(90,90,2) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
X_BH H 1 A_JumpIfCloser(CRD_RNG,"Giver") X_BH H 0 A_SeekerMissile(90,90,2) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
X_BH H 1 A_JumpIfCloser(CRD_RNG,"Giver") X_BH H 0 A_SeekerMissile(90,90,2) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
X_BH H 1 A_JumpIfCloser(CRD_RNG,"Giver") X_BH H 0 A_SeekerMissile(90,90,2) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
X_BH H 1 A_JumpIfCloser(CRD_RNG,"Giver") X_BH H 0 A_SeekerMissile(90,90,2) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
X_BH G 0 A_CountDown
loop
Giver:
TNT1 A 0 A_Stop
TNT1 A 0 A_GiveToTarget("CBM_HealThing1_PU")
TNT1 A 1 A_SpawnItemEx("MagicCardPickUpFX")
stop
Death:
TNT1 A 1
stop
}
}

actor MagicCardHealth2 : MagicCardHealth
{
ReactionTime 150
states
{
Spawn2:
X_BH I 1 A_JumpIfCloser(CRD_RNG,"Giver") X_BH G 0 A_SeekerMissile(90,90,2) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
X_BH I 1 A_JumpIfCloser(CRD_RNG,"Giver") X_BH G 0 A_SeekerMissile(90,90,2) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
X_BH I 1 A_JumpIfCloser(CRD_RNG,"Giver") X_BH G 0 A_SeekerMissile(90,90,2) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
X_BH G 0 A_CountDown
loop
Giver:
TNT1 A 0 A_Stop
TNT1 A 0 A_GiveToTarget("CBM_HealThing2_PU")
TNT1 A 1 A_SpawnItemEx("MagicCardPickUpFXB")
stop
Death:
TNT1 A 1
stop
}
}

actor MagicCardPickUpFX : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("mmb/longheal","Weapon")
TNT1 A 0 A_SpawnItemEx("MagicCardPickUpFX2",0,0,-32)
stop
}
}

actor MagicCardPickUpFXB : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("mmb/longheal","Weapon")
TNT1 A 0 A_SpawnItemEx("MagicCardPickUpFX2",0,0,-32)
stop
}
}

actor MagicCardPickUpFX2
{
Translation "192:192=216:216","198:198=3:3"
+NOINTERACTION
+DONTSPLASH
Gravity 0
Damage (0)
height 0
radius 0
scale 3.0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
MGB9 ABCDEFG 2
stop
}
}

actor CBM_HealThing1_PU : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(Health>0,"Pickup2")
stop
Pickup2:
TNT1 A 0 HealThing(10)
TNT1 A 0 A_TakeInventory("MagicManStealCoolDown",1)
stop
}
}

actor CBM_HealThing2_PU : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(Health>0,"Pickup2")
stop
Pickup2:
TNT1 A 0 HealThing(35)
TNT1 A 0 A_TakeInventory("MagicManStealCoolDown",1)
stop
}
}

actor MagicSpotlight : BaseShieldWarper
{
scale 1.5
RenderStyle "add"
Alpha 0.2
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:
MSP0 L 0 A_JumpIfInTargetInventory("MagicCardAnim",1,"Death")
MSP0 L 1 A_Warp(AAPTR_TARGET, 0, 0, 32, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
MSP0 L 0 A_SetScale(scalex-0.08,scaley-0.08)
MSP0 L 0 A_JumpIfInTargetInventory("MagicCardAnim",1,"Death")
MSP0 L 1 A_Warp(AAPTR_TARGET, 0, 0, 32, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
MSP0 L 0 A_SetScale(scalex-0.08,scaley-0.08)
MSP0 L 0 A_JumpIfInTargetInventory("MagicCardAnim",1,"Death")
MSP0 L 1 A_Warp(AAPTR_TARGET, 0, 0, 32, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
MSP0 L 0 A_SetScale(scalex-0.08,scaley-0.08)
MSP0 L 0 A_JumpIfInTargetInventory("MagicCardAnim",1,"Death")
MSP0 L 1 A_Warp(AAPTR_TARGET, 0, 0, 32, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
MSP0 L 0 A_SetScale(scalex-0.08,scaley-0.08)
MSP0 L 0 A_JumpIfInTargetInventory("MagicCardAnim",1,"Death")
MSP0 L 1 A_Warp(AAPTR_TARGET, 0, 0, 32, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
MSP0 L 0 A_SetScale(scalex-0.08,scaley-0.08)
MSP0 L 0 A_JumpIfInTargetInventory("MagicCardAnim",1,"Death")
MSP0 L 1 A_Warp(AAPTR_TARGET, 0, 0, 32, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
MSP0 L 0 A_SetScale(scalex-0.08,scaley-0.08)
MSP0 L 0 A_JumpIfInTargetInventory("MagicCardAnim",1,"Death")
MSP0 L 1 A_Warp(AAPTR_TARGET, 0, 0, 32, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
MSP0 L 0 A_SetScale(scalex-0.08,scaley-0.08)
MSP0 L 0 A_JumpIfInTargetInventory("MagicCardAnim",1,"Death")
MSP0 L 1 A_Warp(AAPTR_TARGET, 0, 0, 32, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
MSP0 L 0 A_SetScale(scalex-0.08,scaley-0.08)
MSP0 L 0 A_JumpIfInTargetInventory("MagicCardAnim",1,"Death")
MSP0 L 1 A_Warp(AAPTR_TARGET, 0, 0, 32, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
MSP0 L 0 A_SetScale(scalex-0.08,scaley-0.08)
MSP0 L 0 A_JumpIfInTargetInventory("MagicCardAnim",1,"Death")
MSP0 L 1 A_Warp(AAPTR_TARGET, 0, 0, 32, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
MSP0 L 0 A_SetScale(scalex-0.08,scaley-0.08)
MSP0 L 0 A_JumpIfInTargetInventory("MagicCardAnim",1,"Death")
MSP0 L 1 A_Warp(AAPTR_TARGET, 0, 0, 32, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
MSP0 L 0 A_SetScale(scalex-0.08,scaley-0.08)
MSP0 L 0 A_JumpIfInTargetInventory("MagicCardAnim",1,"Death")
MSP0 L 1 A_Warp(AAPTR_TARGET, 0, 0, 32, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
MSP0 L 0 A_SetScale(scalex-0.08,scaley-0.08)
MSP0 L 0 A_JumpIfInTargetInventory("MagicCardAnim",1,"Death")
MSP0 L 1 A_Warp(AAPTR_TARGET, 0, 0, 32, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
MSP0 L 0 A_SetScale(scalex-0.08,scaley-0.08)
MSP0 L 0 A_JumpIfInTargetInventory("MagicCardAnim",1,"Death")
MSP0 L 1 A_Warp(AAPTR_TARGET, 0, 0, 32, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
MSP0 L 0 A_SetScale(scalex-0.08,scaley-0.08)
MSP0 L 0 A_JumpIfInTargetInventory("MagicCardAnim",1,"Death")
MSP0 L 1 A_Warp(AAPTR_TARGET, 0, 0, 32, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
loopit:
MSP0 L 0 A_JumpIfInTargetInventory("MagicCardAnim",1,"Death")
MSP0 L 1 A_Warp(AAPTR_TARGET, 0, 0, 32, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
loop

Death:
TNT1 A 0
stop
}
}

actor MagicShowBullet1
{
Obituary "$OB_MAGICMAN6"
PROJECTILE
DamageType "MagicShowDeath5"
Speed 50
Damage (200)
Radius 8
Height 8
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
BASB A 1
Goto Spawn+2
}
}

actor MagicCardAnim : Powerup 
{
powerup.duration 5
}

actor MagicCardHit : Powerup 
{
powerup.duration 3
}

actor MagicCardHitB : Powerup 
{
powerup.duration 3
}

actor MagicCheerHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_Jump(256,"Cheer1","Cheer2","Cheer3","Cheer4","Cheer5","Cheer6")
Cheer1:
TNT1 A 0 A_PlaySoundEx("weapon/strikecheer","Auto",0,0.5)
stop
Cheer2:
TNT1 A 0 A_PlaySoundEx("weapon/nitrocheer","Auto",0,0.5)
stop
Cheer3:
TNT1 A 0 A_PlaySoundEx("weapon/magiccheer","Auto",0,0.5)
stop
Cheer4:
TNT1 A 0 A_PlaySoundEx("weapon/magiccheer2","Auto",0,0.5)
stop
Cheer5:
TNT1 A 0 A_PlaySoundEx("weapon/magiccheer3","Auto",0,0.5)
stop
Cheer6:
TNT1 A 0 A_PlaySoundEx("weapon/magiccheer4","Auto",0,0.5)
stop
}
}

actor MagicDeathBalloon : BasicClientSide
{
-NOINTERACTION
+THRUACTORS
bouncetype hexen
bouncefactor 0.3
reactiontime 175
bouncefactor 12
States
{
Spawn:
TBAL D 0
TBAL DDDDDDD 2 ThrustThingZ(0,1,0,1)
loopit:
TBAL D 0 ThrustThingZ(0,1,0,1)
TBAL D 0 A_Jump(6,"Death")
TBAL D 1 A_Countdown
TBAL D 0 A_Jump(6,"Death")
TBAL D 1 A_Countdown
loop
Death:
TBAL E 0 A_Stop
TBAL E 4 A_PlaySoundEx("weapon/magicpop","Body")
stop
}
}

actor MagicBoxingGlove : ClownBoxingGlove
{
States
{
Spawn:
CBOX A 0
CBOX A 0 A_PlaySoundEx("weapon/coilfire1","Auto")
CBOX A 0 A_PlaySoundEx("mm7/boing","Body")
CBOX ABCDEEDCBCDEFEFEFEFEFEFEF 1
CBOX D 35
TNT1 AAAAAAAA 0 A_SpawnItemEx("ShadowPoof2",random(0,40),0,random(-40,80),0,0,0,random(0,359))
CBOX A 2
stop
}
}

actor MagicDeathRomper : MagicManRomper
{
+THRUACTORS
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
R0MP G 1 A_CheckFloor("loopit2")
loop
loopit2:
M0RO G 20 A_Stop
M0RO G 13 A_SetAngle(angle-45)
M0RO G 13 A_SetAngle(angle+90)
M0RO G 4 A_SetAngle(angle-45)
M0RO G 0 A_SetGravity(5.0)
M0RO G 0 A_ChangeVelocity(0,0,12,CVF_REPLACE|CVF_RELATIVE)
M0RO G 0 A_PlaySoundEx("weapon/romperohno","Body")
M0RO GHGIGHGIGHGI 2
M0RO G 0 A_PlaySoundEx("weapon/romperrun","Body")
M0RO GHGIGHGIGHGIGHGIGHGIGHGIGHGIGHGIGHGIGHGIGHGIGHGIGHGIGHGIGHGIGHGIGHGIGHGIGHGIGHGIGHGIGHGIGHGIGHGI 1 A_ChangeVelocity(50,0,momz,CVF_REPLACE|CVF_RELATIVE)
MMFX FGHI 2 A_Stop
stop
}
}

actor MagicUltFinish : Powerup 
{
powerup.duration 17
}

actor MagicMonopellan : BasicClientSide
{
radius 24
height 28
-NOINTERACTION
+THRUACTORS
PROJECTILE
States
{
Spawn:
MPEL A 0
MPEL ABABABABABAB 2
MPEL A 0 A_PlaySoundEx("weapon/gyrofly","Body",1)
loopit:
MPEL A 0 ThrustThingz(0,1,0,1)
MPEL A 0 A_Recoil(-5)
MPEL A 1 A_SetAngle(angle+random(0,20))
MPEL B 1 A_SetAngle(angle+random(0,20))
loop
Death:
TNT1 A 0 A_GiveInventory("CriticalDeathGiver", 1)
stop
}
}