//Changes bounce sound, lol
Actor King : TankArmorClass
{
Player.ScoreIcon "KINGMUGS"
player.startitem "BaseFlagPack", 1
player.displayname "King"
player.soundclass "kingc"
player.startitem "KingShieldBoss"
player.startitem "UltimateAttackItem5King"
player.startitem "UltSoundWatcherSpawn5"
player.startitem "Base56Ammo", 56
player.startitem "IsFromMMB"
player.startitem "NoHealthBar"
player.viewheight 63
projectilepassheight 88
player.jumpz 10
player.forwardmove 0.7,0.7
player.sidemove 0.68,0.68
States
{
Spawn:
KNGM B 0 A_JumpIfInventory("KingAxeBoss",1,"Spawn.Axe")
KNGM B 1 A_JumpIf(z-floorz>0,"Jumping")
Animation0:
KNGM A 0 A_JumpIfInventory("KingAxeBoss",1,"Spawn.Axe")
KNGM A 1 A_JumpIf(z-floorz>0,"Jumping")
Goto Spawn+2
Spawn.Axe:
KIN2 B 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See.Axe")
KIN2 B 1 A_JumpIf(z-floorz>0,"Jumping.Axe")
Animation1:
KIN2 A 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See.Axe")
KIN2 A 1 A_JumpIf(z-floorz>0,"Jumping.Axe")
Goto Spawn.Axe+2

See:
KNGM B 0 A_JumpIfInventory("KingAxeBoss",1,"See.Axe")
KNGM B 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"See.Ult")
KNGM BBBBBBCCCCCCDDDDDDEEEEEE 1 A_JumpIf(z-floorz>0,"Jumping")
Goto Spawn+1
See.Ult:
KNGM BBBBCCCCDDDDEEEE 1 A_JumpIf(z-floorz>0,"Jumping")
Goto Spawn+1
See.Axe:
KNGM B 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"See.AxeUlt")
KIN2 BBBBBCCCCCDDDDDCCCCC 1 A_JumpIf(z-floorz>0,"Jumping.Axe")
Goto Spawn.Axe+1
See.AxeUlt:
KIN2 BBBBCCCCDDDDEEEE 1 A_JumpIf(z-floorz>0,"Jumping.Axe")
Goto Spawn.Axe+1

Jumping:
KNGM K 0 A_JumpIfInventory("KingAxeBoss",1,"Jumping.Axe") KNGM K 1 A_JumpIf(z-floorz<=0,"Spawn") KNGM K 0 A_JumpIf(momz<=0,"Landing")
KNGM K 0 A_JumpIfInventory("KingAxeBoss",1,"Jumping.Axe") KNGM K 1 A_JumpIf(z-floorz<=0,"Spawn") KNGM K 0 A_JumpIf(momz<=0,"Landing")
KNGM L 0 A_JumpIfInventory("KingAxeBoss",1,"Jumping.Axe") KNGM L 1 A_JumpIf(z-floorz<=0,"Spawn") KNGM L 0 A_JumpIf(momz<=0,"Landing")
KNGM L 0 A_JumpIfInventory("KingAxeBoss",1,"Jumping.Axe") KNGM L 1 A_JumpIf(z-floorz<=0,"Spawn") KNGM L 0 A_JumpIf(momz<=0,"Landing")
loop
Landing:
KNGM I 0 A_JumpIfInventory("KingAxeBoss",1,"Landing.Axe") KNGM I 1 A_JumpIf(z-floorz<=0,"Spawn") KNGM I 0 A_JumpIf(momz>0,"Jumping")
KNGM I 0 A_JumpIfInventory("KingAxeBoss",1,"Landing.Axe") KNGM I 1 A_JumpIf(z-floorz<=0,"Spawn") KNGM I 0 A_JumpIf(momz>0,"Jumping")
KNGM J 0 A_JumpIfInventory("KingAxeBoss",1,"Landing.Axe") KNGM J 1 A_JumpIf(z-floorz<=0,"Spawn") KNGM J 0 A_JumpIf(momz>0,"Jumping")
KNGM J 0 A_JumpIfInventory("KingAxeBoss",1,"Landing.Axe") KNGM J 1 A_JumpIf(z-floorz<=0,"Spawn") KNGM J 0 A_JumpIf(momz>0,"Jumping")
loop
Jumping.Axe:
KIN2 L 1 A_JumpIf(z-floorz<=0,"Spawn.Axe")
KIN2 L 0 A_JumpIf(momz<=0,"Landing.Axe")
loop
Landing.Axe:
KIN2 M 1 A_JumpIf(z-floorz<=0,"Spawn.Axe")
KIN2 M 0 A_JumpIf(momz>0,"Jumping.Axe")
loop

Missile:
KNGM AAA 0 A_JumpIfInventory("KingAxeBoss",1,"AxeSwing") 
KNGM A 0 A_JumpIfInventory("IsUsingKingShield",1,"XBlast")
KNGM A 0 A_JumpIfInventory("IsUsingKingShield2",1,"XBlast2")
KNGM A 0 A_JumpIfInventory("IsUsingRaisedShield",1,"RaiseShield")
KNGM A 1
Goto Spawn+2

Animation2:
XBlast:
KNGM FFF 1 A_JumpIf(z-floorz>0,"JumpingXBlast")
Animation3:
XBlast2:
KNGM GGG 1 A_JumpIf(z-floorz>0,"JumpingXBlast2")
Goto Spawn+2
JumpingXBlast:
KNGM MMM 1 A_JumpIf(z-floorz<=0,"XBlast")
JumpingXBlast2:
KNGM NNN 1 A_JumpIf(z-floorz<=0,"XBlast2")
Goto Jumping

Animation4:
RaiseShield:
KNGM OOOOO 1 A_JumpIf(z-floorz>0,"JumpingRaiseShield")
Goto Spawn+2
JumpingRaiseShield:
KNGM OOOOO 1 A_JumpIf(z-floorz<=0,"RaiseShield")
Goto Jumping

Animation5:
UltChange:
KNGM HHHHH 1 A_JumpIfInventory("KingAxeBoss",1,"UltChange.Axe") 
Goto Spawn+2
UltChange.Axe:
KIN2 HHHHH 1
Goto Spawn.Axe+2

Animation6:
GigaLaserCoolDown:
KIN3 HHH 1
KIN3 HHH 1 A_JumpIfInventory("IsKingKneeling",1,"GigaLaserCoolDown")
Goto Spawn+2

Animation7:
AxeSwing:
TNT1 A 0 A_JumpIfInventory("IsUsingKingAxe",1,"AxeSwing2")
KIN2 FFF 1 A_JumpIf(z-floorz>0,"JumpingAxeSwing")
Animation8:
AxeSwing2:
KIN2 GGG 1 A_JumpIf(z-floorz>0,"JumpingAxeSwing2")
AxeSwing3:
KIN2 III 1 A_JumpIf(z-floorz>0,"JumpingAxeSwing3")
AxeSwing4:
KIN2 JJJ 1 A_JumpIf(z-floorz>0,"JumpingAxeSwing4")
AxeSwing5:
KIN2 KKK 1 A_JumpIf(z-floorz>0,"JumpingAxeSwing5")
Goto Spawn.Axe+2
JumpingAxeSwing:
KIN2 NNN 1 A_JumpIf(z-floorz<=0, "AxeSwing")
JumpingAxeSwing2:
KIN2 OOO 1 A_JumpIf(z-floorz<=0,"AxeSwing2")
JumpingAxeSwing3:
KIN2 PPP 1 A_JumpIf(z-floorz<=0,"AxeSwing3")
JumpingAxeSwing4:
KIN2 QQQ 1 A_JumpIf(z-floorz<=0,"AxeSwing4")
JumpingAxeSwing5:
KIN2 RRR 1 A_JumpIf(z-floorz<=0,"AxeSwing5")
Goto Jumping.Axe

Animation9:
VerticalAxeSwing:
KIN2 SSS 1
Animation10:
VerticalAxeSwing2:
KIN2 TTT 1
Goto Spawn.Axe+2
Animation11:
AxeChop:
KIN2 UUU 1
Animation12:
AxeChop2:
KIN2 VVV 1
Goto Spawn.Axe+2

Animation13:
ReboundLaser:
KIN2 WWWWW 1 A_JumpIf(z-floorz>0,"JumpingReboundLaser")
Animation14:
ReboundLaser2:
KIN2 XXXXX 1 A_JumpIf(z-floorz>0,"JumpingReboundLaser2")
Goto Spawn.Axe+2
JumpingReboundLaser:
KIN2 YYYYY 1 A_JumpIf(z-floorz<=0,"ReboundLaser")
JumpingReboundLaser2:
KIN2 ZZZZZ 1 A_JumpIf(z-floorz<=0,"ReboundLaser2")
Goto Jumping

Animation15:
AxeSpin:
KIN3 FFF 1
Animation16:
AxeSpin2:
KIN3 GGG 1
Goto Spawn.Axe+2

Animation17:
KingMachineA:
KNGX III 1
Goto Spawn+2
Animation18:
KingMachineB:
KNGX JJJ 1
Goto Spawn+2
Animation19:
KingMachineC:
KNGX KKK 1
Goto Spawn+2

ClassPain:
KNGM H 0 A_JumpIfInventory("KingAxeBoss",1,"ClassPain2")
KNGM HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+1
ClassPain2:
KIN2 HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn.Axe+1

Death.LightningBolt:
Death.LightningBoltGear:
Death.DynamoShocker:
TNT1 A 0 A_SpawnItemEx("DeadStruckKing",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
NOFX A 20 ACS_ExecuteAlways(999,0,0)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
ClassDeath:
TNT1 A 0 A_JumpIfInventory("KingAxeBoss",1,"ClassDeath2")
TNT1 A 0 A_SpawnItemEx("DeadShieldKing",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 20 ACS_ExecuteAlways(999,0,0)
NOFX A 1 A_CheckPlayerDone
wait
ClassDeath2:
TNT1 A 0 A_SpawnItemEx("DeadAxeKing",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 20 ACS_ExecuteAlways(999,0,0)
NOFX A 1 A_CheckPlayerDone
wait
}
}

Actor DeadShieldKing : BasicNotClientSide
{
-NOINTERACTION
-NOGRAVITY
-NOEXPLODEFLOOR
+DONTBLAST
States
{
Spawn:
TNT1 A 0
KNGM H 0
Goto Spawn2
Spawn2:
"####" "#" 12
"####" "###" 12 A_SpawnItemEx("KingExplode2", random(-48,48), random(-48,48), random(0,48))
"####" "########" 5 A_SpawnItemEx("KingExplode2", random(-48,48), random(-48,48), random(0,48))
"####" "################" 2 A_SpawnItemEx("KingExplode2", random(-48,48), random(-48,48), random(0,48))
"####" "#" 0 A_PlaySoundEx("mm7/dead","Body")
"####" "#" 0 A_SpawnItemEx("FakeDeathFXMMB", 0, 0, 32)
TNT1 A 2
stop
}
}

Actor DeadAxeKing : DeadShieldKing
{
States
{
Spawn:
TNT1 A 0
KIN2 H 0
Goto Spawn2
}
}

Actor KingExplode2 : KingExplode
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/napalm","Auto")
TNT1 A 0 A_SpawnItemEx("DrillExplode")
stop
}
}

actor DeadStruckKing
{
PROJECTILE
+MISSILE
species "DeadBody"
+THRUSPECIES
+THRUACTORS
+NOGRAVITY
-NOEXPLODEFLOOR
+NOINTERACTION
scale 2.5
reactiontime 55
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
TNT1 A 0 A_PlaySoundEx("weapon/dynamorecharger","Auto")
KIN4 ABCABC 1 A_Countdown
loop

Death:
KIN4 A 1 ACS_ExecuteAlways(971,0,5678)
TNT1 A 0 A_PlaySoundEx("mm7/dead","Auto")
TNT1 A 2 A_SpawnItemEX("CriticalDeathSpawner",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
stop
}
}

//Pick ups used by both weapons
Actor KingUltStartPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SetGravity(0.0)
TNT1 A 0 A_GiveInventory("NoSpeed",1)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",True)
TNT1 A 0 A_GiveInventory("InvProtection",1)
TNT1 A 0 A_SpawnItemEx("KingMachineSpawner")
TNT1 A 0 A_TakeInventory("LongUltimateAmmo",500)
TNT1 A 0 A_PlaySoundEx("misc/catcherdrop", "Auto")
TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,74)
TNT1 A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
stop
}
}

Actor KingUltActivatePickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 ACS_ExecuteAlways(971,0,10866)
TNT1 A 0 A_SpawnItemEx("KingMachineExit")
TNT1 A 0 A_TakeInventory("BaseCustomFlag1",1)
TNT1 A 0 A_TakeInventory("KingChargeUpFlag",1)
TNT1 A 0 A_PlaySoundEx("misc/ERPossess","Auto")
TNT1 A 0 A_GiveInventory("PowerUltBuildCooldown",1)
TNT1 A 0 A_GiveInventory("KingUltimateActiveFlag",1)
TNT1 A 0 A_GiveInventory("HalfHalfDamageProtection")
TNT1 A 0 A_JumpIfInventory("KingAxeBoss",1,"PickUp2")
TNT1 A 0 ACS_Execute(191,0,APROP_JumpZ,14,1)
TNT1 A 0 A_GiveInventory("KingShieldUltSpeed")
stop
PickUp2:
TNT1 A 0 ACS_Execute(191,0,APROP_JumpZ,18,1)
TNT1 A 0 A_GiveInventory("KingAxeUltSpeed")
stop
}
}

Actor KingUltBeginPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_TakeInventory("NoSpeed",999)
TNT1 A 0 A_SpawnItemEx("KingUltWatcher")
TNT1 A 0 A_ChangeFlag("INVULNERABLE",False)
TNT1 A 0 A_GiveInventory("GravityRestore")
TNT1 A 0 A_TakeInventory("InvProtection",1)
stop
}
}

Actor KingUltDeactivatePickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SetGravity(0.0)
TNT1 A 0 A_GiveInventory("NoSpeed",1)
TNT1 A 0 ACS_ExecuteAlways(971,0,1234)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",True)
TNT1 A 0 A_GiveInventory("InvProtection",1)
TNT1 A 0 A_PlaySoundEx("weapon/combatmode","Weapon")
stop
}
}

Actor KingUltOffPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 ACS_ExecuteAlways(971,0,928)
TNT1 A 0 A_TakeInventory("NoSpeed",999)
TNT1 A 0 A_TakeInventory("CutterFlag",99)
TNT1 A 0 A_GiveInventory("GravityRestore")
TNT1 A 0 A_TakeInventory("InvProtection",1)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",False)
TNT1 A 0 A_TakeInventory("PowerUltBuildCooldown",1)
TNT1 A 0 A_TakeInventory("KingUltimateActiveFlag",1)
TNT1 A 0 A_TakeInventory("HalfHalfDamageProtection")
TNT1 A 0 A_JumpIfInventory("KingAxeBoss",1,"PickUp2")
TNT1 A 0 ACS_Execute(191,0,APROP_JumpZ,10,1)
TNT1 A 0 A_TakeInventory("KingShieldUltSpeed")
TNT1 A 0 A_TakeInventory("KingAxeUltSpeed")
stop
PickUp2:
TNT1 A 0 ACS_Execute(191,0,APROP_JumpZ,14,1)
TNT1 A 0 A_TakeInventory("KingShieldUltSpeed")
TNT1 A 0 A_TakeInventory("KingAxeUltSpeed")
stop
}
}

Actor KingGigaBeamStartPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("HaltDrain")
TNT1 A 0 A_ChangeFlag("INVULNERABLE",True)
TNT1 A 0 A_GiveInventory("InvProtection",1)
TNT1 A 0 A_TakeInventory("KingAxeUltSpeed")
TNT1 A 0 A_TakeInventory("KingShieldUltSpeed")
TNT1 A 0 A_GiveInventory("KingGigaBeamSpeed",1)
stop
}
}

Actor KingGigaBeamFirePickUp : CustomInventory
{
states
{
Pickup:
KNG2 R 0 A_SetGravity(0.0)
KNG2 R 0 SetPlayerProperty(0,1,4)
KNG2 R 0 A_GiveInventory("NoSpeed",1)
KNG2 R 0 A_PlaySoundEx("weapon/WilyPressCrush","Weapon")
KNG2 R 0 A_PlaySoundEx("weapon/jetkingrobolaser","Body")
stop
}
}

Actor KingGigaBeamCoolDownPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 SetPlayerProperty(0,0,4)
TNT1 A 0 ACS_ExecuteAlways(971,0,1234)
TNT1 A 0 A_TakeInventory("NoSpeed",999)
TNT1 A 0 A_GiveInventory("GravityRestore")
TNT1 A 0 A_TakeInventory("InvProtection",1)
TNT1 A 0 ACS_Execute(191,0,APROP_JumpZ,5,1)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",False)
TNT1 A 0 A_PlaySoundEx("weapon/combatmode","Weapon")
stop
}
}

Actor KingGigaBeamCoolDown2PickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 ACS_ExecuteAlways(971,0,928)
TNT1 A 0 A_TakeInventory("CutterFlag",99)
TNT1 A 0 A_SpawnItemEx("KingWeakCoolDownWatcher")
TNT1 A 0 A_TakeInventory("PowerUltBuildCooldown",1)
TNT1 A 0 A_TakeInventory("KingUltimateActiveFlag",1)
TNT1 A 0 A_TakeInventory("HalfHalfDamageProtection")
stop
}
}

Actor KingGigaBeamFinishPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_TakeInventory("HaltDrain")
TNT1 A 0 A_ChangeFlag("INVULNERABLE",False)
TNT1 A 0 A_TakeInventory("InvProtection",1)
TNT1 A 0 A_TakeInventory("IsKingKneeling",1)
TNT1 A 0 A_TakeInventory("KingGigaBeamSpeed",1)
TNT1 A 0 A_JumpIfInventory("KingAxeBoss",1,"PickUp2")
TNT1 A 0 ACS_Execute(191,0,APROP_JumpZ,10,1)
stop
PickUp2:
TNT1 A 0 ACS_Execute(191,0,APROP_JumpZ,14,1)
stop
}
}

//King shield actors
const int MCHN_POS = 15;

Actor IsUsingKingShield : VCOnce {}
Actor IsUsingKingShield2 : VCOnce {}
Actor IsUsingRaisedShield : VCOnce {}
Actor IsKingKneeling : VCOnce {}

Actor KingShieldBoss : VCBaseWeapon
{
weapon.ammotype "Base56Ammo"
Obituary "$OB_KING1"
const int X_POS = 28; const int Y_POS = 28;
const int POS_MVE = 7; const int DEG_TRN = -18;
States
{
Ready:
KNGH KKKKLLLLMMMMRRRR 1
KNGH R 0 A_GiveInventory("KingHealthWatcherPickUp",1)
Goto Ready2
Ready2:
KNGH R 0 A_JumpIfInventory("EnhancedKingTimer",1,"Ready3")
KNGH R 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",1,14)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) KNGH R 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
KNGH R 0 A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,0,SXF_NOCHECKPOSITION) KNGH R 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
KNGH R 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",1,14)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) KNGH R 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
KNGH R 0 A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,0,SXF_NOCHECKPOSITION) KNGH R 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
KNGH R 0 A_GiveInventory("Base56Ammo",1)
loop
Ready3:
KNG2 R 0 A_JumpIfInventory("EnhancedKingTimer",1,1)
Goto UltEnd
KNG2 R 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",1,14)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) KNG2 R 0 A_JumpIfInventory("UltAttackFlag",1,"KingLaser")
KNG2 R 0 A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,0,SXF_NOCHECKPOSITION) KNG2 R 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
KNG2 R 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",1,14)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) KNG2 R 0 A_JumpIfInventory("UltAttackFlag",1,"KingLaser")
KNG2 R 0 A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,0,SXF_NOCHECKPOSITION) KNG2 R 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
KNG2 R 0 A_GiveInventory("Base56Ammo",1)
loop

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
KNGH R 1 A_Lower
Loop
Select:
TNT1 A 0 ACS_ExecuteAlways(971,0,928)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
KNGH R 1 A_Raise
Loop

Fire:
KNGH R 0 A_GunFlash("XBlasting")
KNGH R 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"Fire.Ult")
KNGH R 1 OffSet( 8,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*1.0),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(16,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*1.5),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(24,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*2.0),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(32,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*2.5),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(40,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*3.0),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(48,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*3.5),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(56,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*4.0),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(64,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*4.5),SXF_NOCHECKPOSITION)
KNGH R 0 A_GiveInventory("KingShieldMainFirePickUp",1)
Goto MainHoldA

MainHoldA:
TNT1 A 0 A_GiveInventory("IsUsingKingShield",1)
TNT1 A 0 A_TakeInventory("IsUsingKingShield2",1)
KNGH R 1 OffSet(66,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*5.0),SXF_NOCHECKPOSITION)
KNGH R 0 OffSet(66,32)A_Refire("MainHoldB")
Goto MainHoldEnd

MainHoldB:
KNGH R 1 OffSet(68,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*5.0),SXF_NOCHECKPOSITION)
KNGH R 0 OffSet(68,32)A_Refire("MainHoldC")
Goto MainHoldEnd

MainHoldC:
TNT1 A 0 A_TakeInventory("IsUsingKingShield",1)
TNT1 A 0 A_GiveInventory("IsUsingKingShield2",1)
KNGH R 1 OffSet(70,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*5.0),SXF_NOCHECKPOSITION)
KNGH R 0 OffSet(70,32)A_Refire("MainHoldD")
Goto MainHoldEnd

MainHoldD:
KNGH R 1 OffSet(68,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*5.0),SXF_NOCHECKPOSITION)
KNGH R 0 OffSet(68,32)A_Refire("MainHoldA")
Goto MainHoldEnd

MainHoldEnd:
KNGH R 0 A_GunFlash("EndFlash")
TNT1 A 0 A_TakeInventory("IsUsingKingShield",1)
TNT1 A 0 A_TakeInventory("IsUsingKingShield2",1)
KNGH R 1 OffSet(70,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*4.5),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(68,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*4.5),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(66,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*4.5),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(64,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*4.5),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(56,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*4.0),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(48,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*3.5),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(40,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*3.0),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(32,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*2.5),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(24,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*2.0),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(16,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*1.5),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet( 8,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*1.0),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet( 4,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*1.0),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet( 2,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*1.0),SXF_NOCHECKPOSITION)
KNGH R 1 OffSet( 1,32)A_SpawnItemEx("TheKingShield",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*1.0),SXF_NOCHECKPOSITION)
Goto Ready2

Fire.Ult:
KNG2 R 1 OffSet( 8,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*1.0),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(16,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*1.5),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(24,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*2.0),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(32,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*2.5),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(40,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*3.0),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(48,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*3.5),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(56,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*4.0),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(64,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*4.5),SXF_NOCHECKPOSITION)
KNG2 R 0 A_GiveInventory("KingShieldMainFirePickUp",1)
Goto UltMainHoldA

UltMainHoldA:
TNT1 A 0 A_GiveInventory("IsUsingKingShield",1)
TNT1 A 0 A_TakeInventory("IsUsingKingShield2",1)
KNG2 R 1 OffSet(66,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*5.0),SXF_NOCHECKPOSITION)
KNG2 R 0 OffSet(66,32)A_Refire("UltMainHoldB")
Goto UltMainHoldEnd

UltMainHoldB:
KNG2 R 1 OffSet(68,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*5.0),SXF_NOCHECKPOSITION)
KNG2 R 0 OffSet(68,32)A_Refire("UltMainHoldC")
Goto UltMainHoldEnd

UltMainHoldC:
TNT1 A 0 A_TakeInventory("IsUsingKingShield",1)
TNT1 A 0 A_GiveInventory("IsUsingKingShield2",1)
KNG2 R 1 OffSet(70,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*5.0),SXF_NOCHECKPOSITION)
KNG2 R 0 OffSet(70,32)A_Refire("UltMainHoldD")
Goto UltMainHoldEnd

UltMainHoldD:
KNG2 R 1 OffSet(68,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*5.0),SXF_NOCHECKPOSITION)
KNG2 R 0 OffSet(68,32)A_Refire("UltMainHoldA")
Goto UltMainHoldEnd

UltMainHoldEnd:
KNG2 R 0 A_GunFlash("EndFlash")
TNT1 A 0 A_TakeInventory("IsUsingKingShield",1)
TNT1 A 0 A_TakeInventory("IsUsingKingShield2",1)
KNG2 R 1 OffSet(70,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*4.5),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(68,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*4.5),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(66,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*4.5),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(64,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*4.5),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(56,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*4.0),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(48,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*3.5),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(40,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*3.0),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(32,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*2.5),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(24,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*2.0),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(16,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*1.5),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet( 8,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*1.0),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet( 4,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*1.0),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet( 2,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*1.0),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet( 1,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*1.0),SXF_NOCHECKPOSITION)
Goto Ready3

Altfire:
KNGH R 0 A_JumpIfInventory("NoAltfire",1,"Ready2")
KNGH R 0 A_GunFlash("KingShielding")
KNGH R 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"Altfire.Ult")
KNGH R 1 OffSet(-18,30)A_SpawnItemEx("TheKingShield",X_POS,Y_POS-(POS_MVE*1.0),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(-36,28)A_SpawnItemEx("TheKingShield",X_POS,Y_POS-(POS_MVE*1.5),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(-50,26)A_SpawnItemEx("TheKingShield",X_POS,Y_POS-(POS_MVE*2.0),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(-64,24)A_SpawnItemEx("TheKingShield",X_POS,Y_POS-(POS_MVE*2.5),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(-76,22)A_SpawnItemEx("TheKingShield",X_POS,Y_POS-(POS_MVE*3.0),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(-88,20)A_SpawnItemEx("TheKingShield",X_POS,Y_POS-(POS_MVE*3.5),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
Goto AltFireHold

AltFireHold:
KNGH R 0 A_JumpIfInventory("Base56Ammo",1,1)
Goto EndAlt
TNT1 A 0 A_GiveInventory("IsUsingRaisedShield",1)
KNGH R 1 OffSet(-98,19)A_SpawnItemEx("TheKingShield",X_POS,Y_POS-(POS_MVE*4.0),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNGH R 0 OffSet(-98,19)A_Refire("AltFireHold")
Goto EndAlt

EndAlt:
KNGH R 0 A_GunFlash("EndFlash")
TNT1 A 0 A_TakeInventory("IsUsingRaisedShield",1)
KNGH R 1 OffSet(-88,20)A_SpawnItemEx("TheKingShield",X_POS,Y_POS-(POS_MVE*3.5),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(-76,22)A_SpawnItemEx("TheKingShield",X_POS,Y_POS-(POS_MVE*3.0),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(-64,24)A_SpawnItemEx("TheKingShield",X_POS,Y_POS-(POS_MVE*2.5),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(-50,26)A_SpawnItemEx("TheKingShield",X_POS,Y_POS-(POS_MVE*2.0),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(-36,28)A_SpawnItemEx("TheKingShield",X_POS,Y_POS-(POS_MVE*1.5),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNGH R 1 OffSet(-18,30)A_SpawnItemEx("TheKingShield",X_POS,Y_POS-(POS_MVE*1.0),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
Goto Ready2

Altfire.Ult:
KNG2 R 1 OffSet(-18,30)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS-(POS_MVE*1.0),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(-36,28)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS-(POS_MVE*1.5),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(-50,26)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS-(POS_MVE*2.0),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(-64,24)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS-(POS_MVE*2.5),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(-76,22)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS-(POS_MVE*3.0),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(-88,20)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS-(POS_MVE*3.5),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
Goto UltAltFireHold

UltAltFireHold:
KNG2 R 0 A_JumpIfInventory("Base56Ammo",1,1)
Goto UltEndAlt
TNT1 A 0 A_GiveInventory("IsUsingRaisedShield",1)
KNG2 R 1 OffSet(-98,19)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS-(POS_MVE*4.0),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNG2 R 0 A_Refire("UltAltFireHold")
Goto UltEndAlt

UltEndAlt:
KNG2 R 0 A_GunFlash("EndFlash")
TNT1 A 0 A_TakeInventory("IsUsingRaisedShield",1)
KNG2 R 1 OffSet(-88,20)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS-(POS_MVE*3),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(-76,22)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS-(POS_MVE*3),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(-64,24)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS-(POS_MVE*2),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(-50,26)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS-(POS_MVE*2),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(-36,28)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS-(POS_MVE*1),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(-18,30)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS-(POS_MVE*1),0,momx,momy,momz,0,SXF_NOCHECKPOSITION)
Goto Ready3

User1:
KNGH R 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"User1.Ult")
TNT1 A 0 A_TakeInventory("IsUsingKingShield",1)
TNT1 A 0 A_TakeInventory("IsUsingKingShield2",1)
TNT1 A 0 A_TakeInventory("IsUsingRaisedShield",1)
KNGH R 1 A_GiveInventory("KingWeaponSwitchPickUp",1)
wait

User1.Ult:
KNG2 R 1 A_GiveInventory("KingWeaponSwitchPickUp",1)
wait

UltimateAttack:
KNGH R 0 A_GiveInventory("KingUltStartPickUp",1)
KNGH R 1 OffSet(0,42)A_Stop
KNGH R 1 OffSet(0,52)A_Stop
KNGH R 1 OffSet(0,62)A_Stop
KNGH R 1 OffSet(0,72)A_Stop
KNGH R 1 OffSet(0,82)A_Stop
KNGH R 1 OffSet(0,92)A_Stop
KNGH R 1 OffSet(0,102)A_Stop
KNGH R 1 OffSet(0,112)A_Stop
KNGH R 1 OffSet(0,122)A_Stop
KNGH R 1 OffSet(0,132)A_Stop
UltWait:
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 A_TakeInventory("UltAttackFlag",1)
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag1",1,"UltStartHold")
loop
UltStartHold:
TNT1 A 0 A_GiveInventory("KingChargeUpFlag",1)
TNT1 A 0 A_PlaySoundEx("weapon/kingsummon","Weapon")
TNT1 A 0 A_PlaySoundEx("weapon/kingult","Auto")
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",17) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",17) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",17) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 0 A_PlaySoundEx("weapon/kingult","Auto")
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",18) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",18) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",18) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 0 A_PlaySoundEx("weapon/kingult","Auto")
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",19) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",19) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",19) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 0 A_PlaySoundEx("weapon/kingult","Auto")
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",18) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",18) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",18) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 0 A_JumpIfInventory("EnhancedKingTimer",500,"UltStartHoldEnd")
Goto UltStartHold+2
UltStartHoldEnd:
KNG2 R 0 A_GiveInventory("KingUltActivatePickUp",1)
KNG2 R 1 OffSet(0,132)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",0)
KNG2 R 1 OffSet(0,122)A_Stop
KNG2 R 1 OffSet(0,112)A_Stop
KNG2 R 1 OffSet(0,102)A_Stop
KNG2 R 1 OffSet(0,92)A_Stop
KNG2 R 1 OffSet(0,82)A_Stop
KNG2 R 1 OffSet(0,72)A_Stop
KNG2 R 1 OffSet(0,62)A_Stop
KNG2 R 1 OffSet(0,52)A_Stop
KNG2 R 1 OffSet(0,42)A_Stop
KNG2 R 0 A_GiveInventory("KingUltBeginPickUp",1)
Goto Ready3

UltEnd:
KNG3 B 0 A_GunFlash("StateChange")
KNG3 B 0 A_GiveInventory("KingUltDeactivatePickUp",1)
KNG3 B 1 OffSet(0,36)A_Stop 
KNG3 B 1 OffSet(0,40)A_Stop
KNG3 B 1 OffSet(0,44)A_Stop
KNG3 B 1 OffSet(0,48)A_Stop
UltFinishHold:
KNG3 B 1 A_Stop
KNG3 B 0 A_GiveInventory("CutterFlag",1)
KNG3 B 0 A_JumpIfInventory("CutterFlag",25,"UltFinishHoldEnd")
loop
UltFinishHoldEnd:
KNGH R 1 OffSet(0,48)A_Stop
KNGH R 1 OffSet(0,44)A_Stop
KNGH R 1 OffSet(0,40)A_Stop
KNGH R 1 OffSet(0,36)A_Stop
KNGH R 0 A_GunFlash("EndFlash")
KNGH R 0 A_GiveInventory("KingUltOffPickUp",1)
Goto Ready2

KingLaser:
KNG2 R 0 A_GunFlash("XBlasting")
KNG2 R 0 A_GiveInventory("KingGigaBeamStartPickUp",1)
KNG2 R 1 OffSet( 8,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*1.0),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(16,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*1.5),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(24,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*2.0),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(32,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*2.5),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(40,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*3.0),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(48,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*3.5),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(56,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*4.0),SXF_NOCHECKPOSITION)
KNG2 R 1 OffSet(64,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*4.5),SXF_NOCHECKPOSITION)
LaserHold:
KNG2 R 0 A_TakeInventory("UltAttackFlag",1)
KNG2 R 1 OffSet(66,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*5.0),SXF_NOCHECKPOSITION)
KNG2 R 0 A_GiveInventory("GigaBeamCharge",1) KNG2 R 0 A_JumpIfInventory("GigaBeamCharge",105,"FireLaser")
KNG2 RRR 0 A_FireCustomMissile("GigaBeamEnergyFXSpawner",random(-15,15),0,0,0,0,random(-30,30)) KNG2 R 0 A_GiveInventory("KingLaserSounderPickUp")
KNG2 R 1 OffSet(68,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*5.0),SXF_NOCHECKPOSITION)
KNG2 R 0 A_GiveInventory("GigaBeamCharge",1) KNG2 R 0 A_JumpIfInventory("GigaBeamCharge",105,"FireLaser")
KNG2 RRR 0 A_FireCustomMissile("GigaBeamEnergyFXSpawner",random(-15,15),0,0,0,0,random(-30,30)) KNG2 R 0 A_GiveInventory("KingLaserSounderPickUp")
KNG2 R 1 OffSet(70,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*5.0),SXF_NOCHECKPOSITION)
KNG2 R 0 A_GiveInventory("GigaBeamCharge",1) KNG2 R 0 A_JumpIfInventory("GigaBeamCharge",105,"FireLaser")
KNG2 RRR 0 A_FireCustomMissile("GigaBeamEnergyFXSpawner",random(-15,15),0,0,0,0,random(-30,30)) KNG2 R 0 A_GiveInventory("KingLaserSounderPickUp")
KNG2 R 1 OffSet(68,32)A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*5.0),SXF_NOCHECKPOSITION)
KNG2 R 0 A_GiveInventory("GigaBeamCharge",1) KNG2 R 0 A_JumpIfInventory("GigaBeamCharge",105,"FireLaser")
KNG2 RRR 0 A_FireCustomMissile("GigaBeamEnergyFXSpawner",random(-15,15),0,0,0,0,random(-30,30)) KNG2 R 0 A_GiveInventory("KingLaserSounderPickUp")
loop
FireLaser:
KNG2 R 0 A_GiveInventory("KingGigaBeamFirePickUp",1)
KNG2 R 1 A_SpawnItemEx("GigaBeamSpawn",128,0,64)
FireLaserHold:
KNG2 R 0 A_Quake(3,10,0,500)
KNG2 R 1 OffSet(70,32)A_Stop KNG2 R 0 A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*5.0),SXF_NOCHECKPOSITION)
KNG2 RRRRR 0 A_SpawnItemEx("GigaBeamParticle",150,random(-128,128),random(0,128),Random(35,70)) TNT1 A 0 A_TakeInventory("EnhancedKingTimer",6)
KNG2 R 1 OffSet(70,32)A_Stop KNG2 R 0 A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*5.0),SXF_NOCHECKPOSITION)
KNG2 RRRRR 0 A_SpawnItemEx("GigaBeamParticle",150,random(-128,128),random(0,128),Random(35,70)) TNT1 A 0 A_TakeInventory("EnhancedKingTimer",6)
KNG2 R 1 OffSet(70,32)A_Stop KNG2 R 0 A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*5.0),SXF_NOCHECKPOSITION)
KNG2 RRRRR 0 A_SpawnItemEx("GigaBeamParticle",150,random(-128,128),random(0,128),Random(35,70)) TNT1 A 0 A_TakeInventory("EnhancedKingTimer",6)
KNG2 R 1 OffSet(70,32)A_Stop KNG2 R 0 A_SpawnItemEx("TheKingShieldUlt",X_POS,Y_POS,0,momx,momy,momz,(DEG_TRN*5.0),SXF_NOCHECKPOSITION)
KNG2 RRRRR 0 A_SpawnItemEx("GigaBeamParticle",150,random(-128,128),random(0,128),Random(35,70)) TNT1 A 0 A_TakeInventory("EnhancedKingTimer",6)
KNG2 R 0 A_JumpIfInventory("EnhancedKingTimer",1,"FireLaserHold")
FireLaserEnd:
KNG3 B 0 A_GunFlash("StateChange")
KNG3 B 0 A_GiveInventory("KingGigaBeamCoolDownPickUp",1)
KNG3 B 1 Offset(70,47)A_Stop
KNG3 B 1 Offset(66,62)A_Stop
KNG3 B 1 Offset(64,77)A_Stop
KNG3 B 1 Offset(56,92)A_Stop
KNG3 B 1 Offset(48,107)A_Stop
KNG3 B 1 Offset(40,122)A_Stop
KNG3 B 1 Offset(32,137)A_Stop
KNG3 B 1 Offset(24,152)A_Stop
KNG3 B 1 Offset(16,167)A_Stop
FireLaserEndHold:
KNG3 B 1 Offset(8,182)A_Stop
KNG3 B 0 A_GiveInventory("CutterFlag",1)
KNG3 B 0 A_JumpIfInventory("CutterFlag",15,"FireLaserCoolDown")
loop
FireLaserCoolDown:
KNG2 R 0 A_GunFlash("EndFlash")
KNG2 R 0 A_GiveInventory("KingGigaBeamCoolDown2PickUp",1)
FireLaserCoolDownHold:
TNT1 A 0 A_GiveInventory("IsKingKneeling",1)
TNT1 A 1 Offset(8,182)ACS_NamedExecuteWithResult("VC_SetState",6)
TNT1 A 0 A_JumpIfInventory("GigaBeamCharge",1,"FireLaserCoolDownHold")
TNT1 A 0 A_TakeInventory("IsKingKneeling",1)
KNGH R 1 Offset(6,167)A_GiveInventory("KingGigaBeamFinishPickUp",1)
KNGH R 1 Offset(6,152)A_TakeInventory("KingGigaBeamSpeed",1)
KNGH R 1 Offset(6,137)A_TakeInventory("KingGigaBeamSpeed",1)
KNGH R 1 Offset(4,122)
KNGH R 1 Offset(4,107)
KNGH R 1 Offset(4,92)
KNGH R 1 Offset(2,77)
KNGH R 1 Offset(2,62)
KNGH R 1 Offset(2,47)
Goto Ready2

XBlasting:
TNT1 A 0 A_TakeInventory("XBlastNoAim",1)
TNT1 A 0 A_PlaySoundEx("weapon/NeedleSARDakka","Body")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",2) TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndFlash")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",2) TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndFlash")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",3) TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndFlash")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",3) TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndFlash")
Goto XBlasting+2
KingShielding:
TNT1 A 0 A_GiveInventory("BaseCustomFlag1") 
TNT1 A 0 A_PlaySoundEx("weapon/kingshield","Weapon")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",4) TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndFlash")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",4) TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndFlash")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",4) TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndFlash")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",4) TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndFlash")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",4) TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndFlash")
TNT1 A 0 A_TakeInventory("Base56Ammo",1)
Goto KingShielding+2
StateChange:
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",5)
loop
EndFlash:
TNT1 A 1 A_GiveInventory("XBlastNoAim",1)
TNT1 A 1 A_TakeInventory("BaseCustomFlag1",1)
stop
}
}

Actor KingHealthWatcher
{
PROJECTILE
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
Scale 2.5
States
{
Spawn:
TNT1 AA 0
TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("KingAxeBoss",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("KingNoWeaponBoss",1,"Death")
TNT1 A 1 A_GiveToTarget("KingHealthCheckPickUp",1)
loop
Death:
TNT1 A 0
stop
}
}

Actor KingHealthCheckPickUp : CustomInventory
{
states
{
Pickup: 
TNT1 A 0 A_JumpIfHealthLower(129,1)
stop
TNT1 A 0 A_GiveInventory("KingNoWeaponBoss",1)
TNT1 A 0 A_TakeInventory("KingShieldBoss",1)
stop
}
}

Actor TheKingShield
{
Translation "192:192=215:215", "198:198=220:220"
var int user_USER;
Height 68
Radius 20
Speed 0
health 1
-SOLID
+GHOST
+NOGRAVITY
+DONTDRAIN
+THRUSPECIES
+NORADIUSDMG
+NOTARGETSWITCH
painchance 256
bloodtype ""
renderstyle "none"
species "KingShield"
States
{
Spawn:
PLAY A 0
PLAY A 0 A_RearrangePointers(0,0,2)
PLAY A 0 A_ChangeFlag("SHOOTABLE",True)
PLAY A 0 A_ChangeFlag("DONTRIP",True)
PLAY AA 1
stop
Death:
TNT1 A 0 A_PlaySound("item/protoreflect")
PLAY A 0 ACS_NamedExecuteWithResult("cbm_GiveIfPlayerHitMe",119147)
PLAY A 1
stop
//Remove shield if damaged by ultimate attacks. Ones without unique ultimate damage type commented out.
//Heroes
Death.MegaUlt:
Death.BigBangStrike:
//MM1
Death.CutmanUlt:
Death.ElecmanLightning:
//Death.Iceman:
Death.FiremanUlt:
//Death.Timeman:
Death.OilmanUlt:
//Death.GutsGBlock:
//Death.GutsGDrill:
Death.GutsmanGUpperCut:
//Death.GigaBomb:
//MM2
//Death.Quickman:
Death.NoUlt: //Woodman
Death.MetalUlt:
//Death.Crashman:
Death.AirmanUlt:
Death.HeatmanAfterBurnPillar:
Death.BubbleCrit:
//Death.Flashman:
Death.AlienDozer:
//MM3
Death.SparkmanUlt:
Death.GeminimanUlt:
Death.TopmanUltimate:
Death.NeedleUlt:
Death.MagnetmanUlt:
Death.ShadowmanTongue:
Death.ShadowmanFlame:
Death.HardmanUlt:
Death.SnakemanUlt:
//Death.DocRobot:
//MM4
Death.BrightManUltSmall:
Death.BrightManUltLarge:
Death.DivemanMoby:
Death.DrillmanUlt:
Death.PharaohUlt:
Death.DustmanUlt:
Death.RingRing:
Death.SkullmanUlt:
Death.ToadmanUlt:
//MM5
Death.NapalmUlt:
Death.WavemanBike:
Death.StarManRock:
Death.CrystalmanUlt:
Death.ChargemanUltCoal:
Death.GyromanAttackUlt:
Death.GravityUltDrop:
//Death.Darkman1:
//Death.Darkman2:
//Death.Darkman3:
//Death.Darkman4:
//MM6
Death.FlameUlt:
Death.KnightFullJump:
//Death.Tomahawkman:
Death.CentaurUlt:
Death.CentaurDash:
Death.WindmanUlt:
//Death.Yamatoman:
//MM6
Death.FreezemanUltFreeze:
Death.FreezemanUltFreeze2:
Death.BurstmanUlt:
//Death.Cloudman:
Death.TurbomanUlt:
//MM8
Death.TenguManUlt:
Death.AstroCrushUlt:
Death.GrenademanUlt:
Death.SearchBush:
//MMB
//Death.Coldman:
Death.BurnerTrap:
Death.KingUlt:
//MM9
//Death.Plugman:
Death.GalaxymanUlt:
//Death.Concreteman:
Death.MagmamanUlt:
//MM10
Death.CommandomanStorm:
Death.ChillmanFreeze:
Death.StrikeManUlt:
Death.SheepmanUlt:
Death.PumpmanUlt:
Death.BadTraffic:
Death.SolarInferno:
Death.BlademanUlt:
//MM11
//Death.Blastman:
Death.AcidmanUlt:
Death.FusemanHighVoltage:
//MMV
//Death.Mercury:
Death.VenusWaterCrash:
Death.TerraUlt:
Death.MarsUlt:
//Death.Jupiter:
Death.SaturnStopper:
Death.UranusDeepDestroyer:
Death.NeptuneInstantRust:
//Death.Pluto:
//MMK
Death.EnkerUlt:
Death.QuintUlt:
Death.PunkUlt:
Death.BalladeUlt:
Death.RaThorUlt:
//WT
//Death.BusterRodG:
Death.HyperStormHUlt:
//Other
//Death.Metool:
PLAY A 0 ACS_NamedExecuteWithResult("cbm_GiveIfPlayerHitMe",1191472)
PLAY A 1
Goto End
End:
TNT1 A 0
stop
}
}

Actor TheKingShieldUlt : TheKingShield
{
Translation "192:192=34:34", "198:198=239:239"
States
{
Death:
TNT1 A 0 A_PlaySound("item/protoreflect")
PLAY A 0 ACS_NamedExecuteWithResult("cbm_GiveIfPlayerHitMe",119147)
PLAY A 1
stop
}
}

Actor KingShieldCounter : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag1",1,"Pickup2")
stop

Pickup2:
TNT1 A 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"Pickup3")
TNT1 A 0 A_SpawnItemEx("TheKingShieldLaserStart",28,0,40,0,0,0,random(-1,1))
stop

Pickup3:
TNT1 A 0 A_SpawnItemEx("TheKingShieldLaser2Start",28,0,40,0,0,0,random(-1,1))
stop
}
}

Actor KingShieldCounter2 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag1",1,"Pickup2")
stop

Pickup2:
TNT1 A 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"Pickup3")
TNT1 A 0 A_SpawnItemEx("TheKingShieldLaserStart2",28,0,40,0,0,0,random(-1,1))
stop

Pickup3:
TNT1 A 0 A_SpawnItemEx("TheKingShieldLaser2Start2",28,0,40,0,0,0,random(-1,1))
stop
}
}

Actor TheKingShieldLaserStart
{
PROJECTILE
+NOINTERACTION
height 0
radius 0
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
KINP A 0 A_PlaySoundEx("weapon/heat1","Voice")
KINP BBBBCCCCDDDD 1 A_Warp(AAPTR_TARGET, 0, 0, 40, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KINP A 0 A_PlaySoundEx("weapon/centaurflash","Voice")
TNT1 A 0 A_SpawnItemEx("TheKingShieldLaser",10,0,0,55,0,0,-2)
stop
}
}

Actor TheKingShieldLaserStart2 : TheKingShieldLaserStart
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
KINP A 0 A_PlaySoundEx("weapon/heat1","Voice")
KINP BBBBCCCCDDDD 1 A_Warp(AAPTR_TARGET, 0, 0, 40, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KINP A 0 A_PlaySoundEx("weapon/centaurflash","Voice")
TNT1 A 0 A_SpawnItemEx("TheKingShieldLaserB",10,0,0,55,0,0,-2)
stop
}
}

Actor TheKingShieldLaser2Start : TheKingShieldLaserStart
{
Translation "4:4=44:44", "72:72=41:41"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
KINP A 0 A_PlaySoundEx("weapon/heat1","Voice")
KINP BBBBCCCCDDDD 1 A_Warp(AAPTR_TARGET, 0, 0, 40, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KINP A 0 A_PlaySoundEx("weapon/centaurflash","Voice")
TNT1 A 0 A_SpawnItemEx("TheKingShieldLaser2",10,0,0,55,0,0,0)
TNT1 A 0 A_SpawnItemEx("TheKingShieldLaser2",10,20,0,55,0,0,10)
TNT1 A 0 A_SpawnItemEx("TheKingShieldLaser2",10,-20,0,55,0,0,-10)
stop
}
}

Actor TheKingShieldLaser2Start2 : TheKingShieldLaser2Start
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
KINP A 0 A_PlaySoundEx("weapon/heat1","Voice")
KINP BBBBCCCCDDDD 1 A_Warp(AAPTR_TARGET, 0, 0, 40, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
KINP A 0 A_PlaySoundEx("weapon/centaurflash","Voice")
TNT1 A 0 A_SpawnItemEx("TheKingShieldLaser2B",10,0,0,55,0,0,0)
TNT1 A 0 A_SpawnItemEx("TheKingShieldLaser2B",10,20,0,55,0,0,10)
TNT1 A 0 A_SpawnItemEx("TheKingShieldLaser2B",10,-20,0,55,0,0,-10)
stop
}
}

Actor TheKingShieldLaser
{
+THRUSPECIES
PROJECTILE
+RIPPER
+SEEKERMISSILE
+LOOKALLAROUND
DamageType "King"
Obituary "$OB_KING2"
species "KingShield"
Height 10
Radius 10
Scale 2.5
Speed 25
damage (10)
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1 A_SeekerMissile(90,90,SMF_LOOK|SMF_PRECISE|SMF_CURSPEED,256,10)
KINP EEEE 1 A_SpawnItemEx("TheKingShieldLaserTrailW")
TNT1 A 0 A_ChangeFlag("THRUSPECIES",False)
KINP E 1 A_SpawnItemEx("TheKingShieldLaserTrailW")
wait
}
}
Actor TheKingShieldLaserB : TheKingShieldLaser{damage(5)}

Actor TheKingShieldLaser2 : TheKingShieldLaser
{
Obituary "$OB_KING7"
DamageType "KingUlt"
damage (20)
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1 A_SeekerMissile(90,90,SMF_LOOK|SMF_PRECISE|SMF_CURSPEED,256,10)
KNGA AAAA 1 A_SpawnItemEx("TheKingShieldLaser2TrailW")
TNT1 A 0 A_ChangeFlag("THRUSPECIES",False)
KNGA A 1 A_SpawnItemEx("TheKingShieldLaser2TrailW")
wait
}
}
Actor TheKingShieldLaser2B : TheKingShieldLaser2{damage(10)}

Actor TheKingShieldLaserTrailW
{
+NOGRAVITY
+NOINTERACTION
renderstyle translucent
alpha 1.0
+BRIGHT
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
KINP EEEEEEEEEE 1 A_FadeOut(0.1)
stop
}
}

Actor TheKingShieldLaser2TrailW : TheKingShieldLaserTrailW
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
KNGA AAAAAAAAAA 1 A_FadeOut(0.1)
stop
}
}

Actor KingShieldMainFirePickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_TakeInventory("Base56Ammo",14)
TNT1 A 0 A_PlaySoundEx("weapon/kingxblast","Weapon")
TNT1 A 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"PickUp2")
TNT1 A 0 A_FireCustomMissile("XBlast")
stop
PickUp2:
TNT1 A 0 A_FireCustomMissile("XBlast2")
stop
}
}

Actor XBlast
{
PROJECTILE
+RIPPER
+SKYEXPLODE
+DONTSPLASH
+THRUSPECIES
DamageType "King"
Obituary "$OB_KING1"
Species "KingShield"
Mass 10
damage (0)
Speed 20
Height 16
Radius 8
Scale 2.5
const int XBLAST_VELOCITY = 20;
const int XBLAST_RADIUS = 32;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
KGNP F 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP F 0 ACS_ExecuteAlways(259,0,1)
KGNP F 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP F 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP F 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP F 0 ACS_ExecuteAlways(259,0,1)
KGNP F 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP F 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP G 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP G 0 ACS_ExecuteAlways(259,0,1)
KGNP G 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP G 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP G 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP G 0 ACS_ExecuteAlways(259,0,1)
KGNP G 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP G 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP H 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP H 0 ACS_ExecuteAlways(259,0,1)
KGNP H 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP H 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP H 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP H 0 ACS_ExecuteAlways(259,0,1)
KGNP H 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP H 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP I 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP I 0 ACS_ExecuteAlways(259,0,1)
KGNP I 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP I 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP I 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP I 0 ACS_ExecuteAlways(259,0,1)
KGNP I 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP I 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP I 0 A_ChangeFlag("THRUSPECIES",False)
Spawn2:
KGNP H 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP H 0 ACS_ExecuteAlways(259,0,1)
KGNP H 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP H 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP H 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP H 0 ACS_ExecuteAlways(259,0,1)
KGNP H 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP H 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP I 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP I 0 ACS_ExecuteAlways(259,0,1)
KGNP I 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP I 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP I 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP I 0 ACS_ExecuteAlways(259,0,1)
KGNP I 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP I 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
loop
Spawn3:
KGNP HHII 1 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
loop
}
}

Actor XBlast2 : XBlast
{
Translation "192:192=34:34", "198:198=239:239"
Obituary "$OB_KING6"
DamageType "KingUlt"
mass 20
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
KGNP F 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP F 0 ACS_ExecuteAlways(259,0,1)
KGNP F 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP F 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP F 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP F 0 ACS_ExecuteAlways(259,0,1)
KGNP F 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP F 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP G 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP G 0 ACS_ExecuteAlways(259,0,1)
KGNP G 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP G 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP G 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP G 0 ACS_ExecuteAlways(259,0,1)
KGNP G 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP G 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP H 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP H 0 ACS_ExecuteAlways(259,0,1) KNGP H 0 A_SpawnItemEx("XBlastFX",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
KGNP H 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP H 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP H 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP H 0 ACS_ExecuteAlways(259,0,1) KNGP H 0 A_SpawnItemEx("XBlastFX",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
KGNP H 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP H 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP I 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP I 0 ACS_ExecuteAlways(259,0,1) KNGP I 0 A_SpawnItemEx("XBlastFX",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
KGNP I 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP I 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP I 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP I 0 ACS_ExecuteAlways(259,0,1) KNGP I 0 A_SpawnItemEx("XBlastFX",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
KGNP I 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP I 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP I 0 A_ChangeFlag("THRUSPECIES",False)
Spawn2:
KGNP H 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP H 0 ACS_ExecuteAlways(259,0,1) KNGP H 0 A_SpawnItemEx("XBlastFX",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
KGNP H 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP H 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP H 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP H 0 ACS_ExecuteAlways(259,0,1) KNGP H 0 A_SpawnItemEx("XBlastFX",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
KGNP H 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP H 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP I 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP I 0 ACS_ExecuteAlways(259,0,1) KNGP I 0 A_SpawnItemEx("XBlastFX",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
KGNP I 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP I 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
KGNP I 1 A_JumpIfInTargetInventory("XBlastNoAim",1,"Spawn3") KGNP I 0 ACS_ExecuteAlways(259,0,1) KNGP I 0 A_SpawnItemEx("XBlastFX",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
KGNP I 0 A_ChangeVelocity(cos(-pitch)*XBLAST_VELOCITY,0,sin(-pitch)*XBLAST_VELOCITY,3) KGNP I 0 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS)
loop
Spawn3:
KGNP H 1 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS) KNGP H 0 A_SpawnItemEx("XBlastFX",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
KGNP H 1 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS) KNGP H 0 A_SpawnItemEx("XBlastFX",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
KGNP I 1 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS) KNGP I 0 A_SpawnItemEx("XBlastFX",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
KGNP I 1 A_Explode(mass,XBLAST_RADIUS,0,0,XBLAST_RADIUS) KNGP I 0 A_SpawnItemEx("XBlastFX",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
loop
}
}

Actor XBlastFX : BasicClientSide
{
+BRIGHT
RenderStyle Add
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
KGNP HHIIHHIIHH 1 A_FadeOut(0.1)
stop
}
}

//No weapon actors
Actor KingNoWeaponBoss : VCBaseWeapon
{
States
{
Ready:
TNT1 A 0 A_GiveInventory("KingPhaseChangePickUp",1)
Ready2:
TNT1 A 0 A_JumpIfHealthLower(167,1)
Goto Stall3
TNT1 A 0 A_GiveInventory("IsKingKneeling",1)
TNT1 A 0 A_GiveInventory("Health",1)
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",6)
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",25,"Ready2B")
loop
Ready2B:
TNT1 A 0 A_JumpIfHealthLower(167,1)
Goto Stall2
TNT1 A 0 A_GiveInventory("Health",2)
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",6)
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",50,"Ready2C")
loop
Ready2C:
TNT1 A 0 A_JumpIfHealthLower(167,1)
Goto Stall1
TNT1 A 0 A_GiveInventory("Health",3)
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",6)
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",75,"Ready2D")
loop
Ready2D:
TNT1 A 0 A_JumpIfHealthLower(167,1)
Goto Stall0
TNT1 A 0 A_GiveInventory("Health",4)
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",6)
loop
Stall3:
TNT1 AAAAAAAAAAAAAAAAA 1 ACS_NamedExecuteWithResult("VC_SetState",6)
Stall2:
TNT1 AAAAAAAAAAAAAAAAA 1 ACS_NamedExecuteWithResult("VC_SetState",6)
Stall1:
TNT1 AAAAAAAAAAAAAAAAA 1 ACS_NamedExecuteWithResult("VC_SetState",6)
Stall0:
TNT1 A 0 A_TakeInventory("IsKingKneeling",1)
TNT1 A 0 A_GiveInventory("KingPhaseChange2PickUp",1)
TNT1 A 1
wait

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
KNGH R 1 A_Lower
loop
Select:
TNT1 A 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"SelectB")
TNT1 A 0 ACS_ExecuteAlways(971,0,928)
Goto Select2
SelectB:
TNT1 A 0 ACS_ExecuteAlways(971,0,10866)
Select2:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
KNGH R 1 A_Raise
loop

EndFlash:
TNT1 A 1
stop
}
}

Actor KingWeaponSwitchPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 HealThing(167,167)
TNT1 A 0 A_GiveInventory("KingAxeBoss",1)
TNT1 A 0 A_TakeInventory("KingShieldBoss",1)
TNT1 A 0 A_GiveInventory("BaseCustomFlag2",1)
TNT1 A 0 A_SpawnItemEx("EjectedCape",-32,0,32,-10)
TNT1 A 0 A_PlaySoundEx("weapon/kingshield","Voice")
TNT1 A 0 ACS_NamedExecuteWithResult("VC_AdjustMaxHealth",100,0)
TNT1 A 0 A_SpawnItemEx("EjectedShield",32,0,32,10,0,0,0,SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"PickUp2")
TNT1 A 0 A_GiveInventory("KingAxeSpeed",1)
TNT1 A 0 ACS_Execute(191,0,APROP_JumpZ,14,1)
stop
PickUp2:
TNT1 A 0 ACS_Execute(191,0,APROP_JumpZ,18,1)
TNT1 A 0 A_GiveInventory("KingAxeUltSpeed",1)
TNT1 A 0 A_TakeInventory("KingShieldUltSpeed",1)
stop
}
}

Actor KingPhaseChangePickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 SetPlayerProperty(0,1,4)
TNT1 A 0 A_GiveInventory("HaltDrain",1)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",True)
TNT1 A 0 A_GiveInventory("InvProtection",1)
TNT1 A 0 A_PlaySoundEx("weapon/napalm", "Weapon")
TNT1 A 0 A_SpawnItemEx("EjectedCape",-28,0,32,-10)
TNT1 A 0 A_SpawnItemEx("EjectedShieldPieceA",32,0,32,Random(5,10),0,Random(5,10),Random(-45,45),SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("EjectedShieldPieceB",32,0,32,Random(5,10),0,Random(5,10),Random(-45,45),SXF_TRANSFERTRANSLATION)
stop
}
}

Actor KingPhaseChange2PickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 SetPlayerProperty(0,0,4)
TNT1 A 0 A_TakeInventory("HaltDrain",1)
TNT1 A 0 A_GiveInventory("KingAxeBoss",1)
TNT1 A 0 A_TakeInventory("InvProtection",1)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",False)
TNT1 A 0 A_TakeInventory("IsKingKneeling",1)
TNT1 A 0 A_GiveInventory("BaseCustomFlag2",1)
TNT1 A 0 A_TakeInventory("KingNoWeaponBoss",1)
TNT1 A 0 A_PlaySoundEx("weapon/kingshield","Auto")
TNT1 A 0 ACS_NamedExecuteWithResult("VC_AdjustMaxHealth",100,0)
TNT1 A 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"PickUp2")
TNT1 A 0 ACS_Execute(191,0,APROP_JumpZ,14,1)
TNT1 A 0 A_GiveInventory("KingAxeSpeed",1)
stop
PickUp2:
TNT1 A 0 ACS_Execute(191,0,APROP_JumpZ,18,1)
TNT1 A 0 A_GiveInventory("KingAxeUltSpeed",1)
stop
}
}


//King axe actors
Actor IsUsingKingAxe : VCOnce {}

Actor KingAxeBoss : VCBaseWeapon
{
weapon.ammotype "Base56Ammo"
Obituary "$OB_KING6"
const int SPD = 24; const int GRVTY = -8;
States
{
Ready:
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
TNT1 A 1 Offset(-4,132)A_GiveInventory("Base56Ammo",56)
TNT1 A 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"Ready.Ult")
KNGH A 1 Offset(-4,132)
KNGH A 1 Offset(-4,122)
KNGH A 1 Offset(-4,112)
KNGH A 1 Offset(-4,102)
KNGH A 1 Offset(-4,92)
KNGH A 1 Offset(-4,82)
KNGH A 1 Offset(-4,72)
KNGH A 1 Offset(-3,62)
KNGH A 1 Offset(-2,52)
KNGH A 1 Offset(-1,42)
Goto Ready2
Ready.Ult:
KNG2 A 1 Offset(-4,132)
KNG2 A 1 Offset(-4,122)
KNG2 A 1 Offset(-4,112)
KNG2 A 1 Offset(-4,102)
KNG2 A 1 Offset(-4,92)
KNG2 A 1 Offset(-4,82)
KNG2 A 1 Offset(-4,72)
KNG2 A 1 Offset(-3,62)
KNG2 A 1 Offset(-2,52)
KNG2 A 1 Offset(-1,42)
Goto Ready3
Ready2:
KNGH A 1 A_WeaponReady(WRF_NOFIRE)
KNGH A 0 A_JumpIfInventory("EnhancedKingTimer",1,"Ready3")
KNGH A 0 A_JumpIfInventory("Base56Ammo",14,"Ready2.CanTF")
KNGH A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) KNGH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
KNGH A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) KNGH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
KNGH A 0 A_GiveInventory("Base56Ammo",1)
Goto Ready2+1
Ready2.CanTF:
KNGH A 1 A_WeaponReady(WRF_NOFIRE)
KNGH A 0 A_JumpIfInventory("EnhancedKingTimer",1,"Ready3.CanTF")
KNGH A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) KNGH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
KNGH A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
KNGH A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) KNGH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
KNGH A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
KNGH A 0 A_GiveInventory("Base56Ammo",1)
Goto Ready2.CanTF+1
Ready3:
KNG2 A 0 A_JumpIfInventory("EnhancedKingTimer",1,1)
Goto UltEnd
KNG2 A 0 A_JumpIfInventory("Base56Ammo",14,"Ready3.CanTF")
KNG2 A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) KNG2 A 0 A_JumpIfInventory("UltAttackFlag",1,"KingLaser")
KNG2 A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) KNG2 A 0 A_JumpIfInventory("UltAttackFlag",1,"KingLaser")
KNG2 A 0 A_GiveInventory("Base56Ammo",1)
loop
Ready3.CanTF:
KNG2 A 0 A_JumpIfInventory("EnhancedKingTimer",1,1)
Goto UltEnd
KNG2 A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) KNG2 A 0 A_JumpIfInventory("UltAttackFlag",1,"KingLaser")
KNG2 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
KNG2 A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) KNG2 A 0 A_JumpIfInventory("UltAttackFlag",1,"KingLaser")
KNG2 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
KNG2 A 0 A_GiveInventory("Base56Ammo",1)
loop

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
KNGH A 1 A_Lower
Loop
Select:
TNT1 A 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"SelectB")
TNT1 A 0 ACS_ExecuteAlways(971,0,928)
Goto Select2
SelectB:
TNT1 A 0 ACS_ExecuteAlways(971,0,10866)
Select2:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
KNGH A 1 A_Raise
Loop

Fire:
KNGH A 0 A_TakeInventory("KingAxeCharge",99)
KNGH A 0 A_GiveInventory("ToadChargeDamageGive")
TNT1 A 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"Fire.Ult")
KNGH A 1 Offset(0,42)ACS_NamedExecuteWithResult("VC_SetState",7)
KNGH A 1 Offset(0,52)ACS_NamedExecuteWithResult("VC_SetState",7)
Goto FireHold

FireHold:
KNGH A 0 A_GiveInventory("IsUsingKingAxe",1)
KNGH A 0 A_GiveInventory("KingAxeCharge",1)
KNGH A 0 A_JumpIfInventory("KingAxeCharge",35,"FireHold2A")
KNGH A 1 Offset(0,62)ACS_NamedExecuteWithResult("VC_SetState",8)
KNGH A 0 Offset(0,62)A_Refire("FireHold")
Goto AxeSwing

FireHold2A:
KNGH A 1 Offset(0,64)ACS_NamedExecuteWithResult("VC_SetState",8)
KNGH A 0 Offset(0,64)A_Refire("FireHold2B")
Goto AxeChop

FireHold2B:
KNGH A 1 Offset(0,66)ACS_NamedExecuteWithResult("VC_SetState",8)
KNGH A 0 Offset(0,66)A_Refire("FireHold2A")
Goto AxeChop

Fire.Ult:
KNG2 A 1 Offset(0,42)ACS_NamedExecuteWithResult("VC_SetState",7)
KNG2 A 1 Offset(0,52)ACS_NamedExecuteWithResult("VC_SetState",7)
Goto UltFireHold

UltFireHold:
KNG2 A 0 A_GiveInventory("IsUsingKingAxe",1)
KNG2 A 0 A_GiveInventory("KingAxeCharge",1)
KNG2 A 0 A_JumpIfInventory("KingAxeCharge",35,"UltFireHold2A")
KNG2 A 1 Offset(0,62)ACS_NamedExecuteWithResult("VC_SetState",8)
KNG2 A 0 Offset(0,62)A_Refire("UltFireHold")
Goto AxeSwing

UltFireHold2A:
KNG2 A 1 Offset(0,64)ACS_NamedExecuteWithResult("VC_SetState",8)
KNG2 A 0 Offset(0,64)A_Refire("UltFireHold2B")
Goto AxeChop

UltFireHold2B:
KNG2 A 1 Offset(0,66)ACS_NamedExecuteWithResult("VC_SetState",8)
KNG2 A 0 Offset(0,66)A_Refire("UltFireHold2A")
Goto AxeChop

AxeSwing:
KNGH A 0 A_WeaponReady(WRF_NOFIRE)
TNT1 A 0 A_TakeInventory("IsUsingKingAxe",1)
KNG2 A 0 A_TakeInventory("KingAxeCharge",35)
KNG2 A 0 A_GiveInventory("ToadChargeDamageTake")
KNG2 A 0 A_PlaySoundEx("weapon/kingaxeswinghorizontal","Weapon")
KNG2 A 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"UltMain")
//KNG2 D 0 A_FireCustomMissile("AxeSlasher2",0,0,0,0)//To compare
KNGH D 1 A_FireBullets(-70, 0, -1, 0, "AxeSlash", FBF_NORANDOM|FBF_NORANDOMPUFFZ|FBF_EXPLICITANGLE,116)//A_FireCustomMissile("AxeSlasher",0,0,0,0)
KNGH H 1 A_FireBullets(-35, 0, -1, 0, "AxeSlash", FBF_NORANDOM|FBF_NORANDOMPUFFZ|FBF_EXPLICITANGLE,116)
KNGH H 1 OffSet(-40,34) A_FireBullets(0, 0, -1, 0, "AxeSlash", FBF_NORANDOM|FBF_NORANDOMPUFFZ|FBF_EXPLICITANGLE,116)
KNGH H 1 OffSet(-82,36) A_FireBullets(35, 0, -1, 0, "AxeSlash", FBF_NORANDOM|FBF_NORANDOMPUFFZ|FBF_EXPLICITANGLE,116)
KNGH H 1 OffSet(-126,38) A_FireBullets(70, 0, -1, 0, "AxeSlash", FBF_NORANDOM|FBF_NORANDOMPUFFZ|FBF_EXPLICITANGLE,116)
KNGH H 1 OffSet(-172,40)
KNGH H 1 OffSet(-220,42)
TNT1 A 3 OffSet(14,172)
KNGH A 1 OffSet(14,172)
KNGH A 1 OffSet(12,152)
KNGH A 1 OffSet(10,132)
KNGH A 1 OffSet(8,112)
KNGH A 1 OffSet(6,92)
KNGH A 1 OffSet(4,72)
KNGH A 1 OffSet(2,52)A_Refire("AxeSwing")
Goto Ready2
UltMain:
KNG2 A 0
KNG2 A 1 A_JumpIfInventory("EnhancedKingTimer",1,"UltMain.Continue")
KNG2 A 1 A_Jump(256,"UltEnd")
wait
UltMain.Continue:
KNG2 D 0 A_PlaySoundEx("weapon/kingaxeswinghorizontal","Weapon")
KNG2 D 1 A_FireBullets(-70, 0, -1, 0, "AxeSlash2", FBF_NORANDOM|FBF_NORANDOMPUFFZ|FBF_EXPLICITANGLE,116)//A_FireCustomMissile("AxeSlasher2",0,0,0,0)
KNG2 H 1 A_FireBullets(-35, 0, -1, 0, "AxeSlash2", FBF_NORANDOM|FBF_NORANDOMPUFFZ|FBF_EXPLICITANGLE,116)
KNG2 H 1 OffSet(-40,34) A_FireBullets(0, 0, -1, 0, "AxeSlash2", FBF_NORANDOM|FBF_NORANDOMPUFFZ|FBF_EXPLICITANGLE,116)
KNG2 H 1 OffSet(-82,36) A_FireBullets(35, 0, -1, 0, "AxeSlash2", FBF_NORANDOM|FBF_NORANDOMPUFFZ|FBF_EXPLICITANGLE,116)
KNG2 H 1 OffSet(-126,38)  A_FireBullets(70, 0, -1, 0, "AxeSlash2", FBF_NORANDOM|FBF_NORANDOMPUFFZ|FBF_EXPLICITANGLE,116)
KNG2 H 1 OffSet(-172,40)
KNG2 H 1 OffSet(-220,42)
TNT1 A 3 OffSet(14,172)
KNG2 A 1 OffSet(14,172)
KNG2 A 1 OffSet(12,152)
KNG2 A 1 OffSet(10,132)
KNG2 A 1 OffSet(8,112)
KNG2 A 1 OffSet(6,92)
KNG2 A 1 OffSet(4,72)
KNG2 A 1 OffSet(2,52)A_Refire("UltMain")
Goto Ready3

AxeChop:
TNT1 A 0 A_TakeInventory("IsUsingKingAxe",1)
KNGH D 0 A_GiveInventory("KingAxeMainfirePickUp",1)
KNGH D 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"UltAxeChop")
KNGH D 0 A_JumpIf(z-floorz<=8,"AxeJump")
KNGH D 1 ACS_NamedExecuteWithResult("VC_SetState",9) KNGH D 0 A_ChangeVelocity(SPD,0,momz,CVF_RELATIVE|CVF_REPLACE) KNGH D 0 ThrustThingZ(0,GRVTY,0,1)
KNGH D 1 ACS_NamedExecuteWithResult("VC_SetState",9) KNGH D 0 A_ChangeVelocity(SPD,0,momz,CVF_RELATIVE|CVF_REPLACE) KNGH D 0 ThrustThingZ(0,GRVTY,0,1)
KNGH D 1 ACS_NamedExecuteWithResult("VC_SetState",9) KNGH D 0 A_ChangeVelocity(SPD,0,momz,CVF_RELATIVE|CVF_REPLACE) KNGH D 0 ThrustThingZ(0,GRVTY,0,1)
KNGH D 1 ACS_NamedExecuteWithResult("VC_SetState",9) KNGH D 0 A_ChangeVelocity(SPD,0,momz,CVF_RELATIVE|CVF_REPLACE) KNGH D 0 ThrustThingZ(0,GRVTY,0,1)
Goto AxeChopHold

AxeJump:
KNGH D 0 ThrustThingZ(0,140,0,1)
KNGH D 1 ACS_NamedExecuteWithResult("VC_SetState",9) KNGH D 0 A_ChangeVelocity(SPD,0,momz,CVF_RELATIVE|CVF_REPLACE) KNGH D 0 ThrustThingZ(0,GRVTY,0,1)
KNGH D 1 ACS_NamedExecuteWithResult("VC_SetState",9) KNGH D 0 A_ChangeVelocity(SPD,0,momz,CVF_RELATIVE|CVF_REPLACE) KNGH D 0 ThrustThingZ(0,GRVTY,0,1)
KNGH D 1 ACS_NamedExecuteWithResult("VC_SetState",9) KNGH D 0 A_ChangeVelocity(SPD,0,momz,CVF_RELATIVE|CVF_REPLACE) KNGH D 0 ThrustThingZ(0,GRVTY,0,1)
KNGH D 1 ACS_NamedExecuteWithResult("VC_SetState",9) KNGH D 0 A_ChangeVelocity(SPD,0,momz,CVF_RELATIVE|CVF_REPLACE) KNGH D 0 ThrustThingZ(0,GRVTY,0,1)
Goto AxeChopHold

AxeChopHold:
KNGH D 0 ThrustThingZ(0,GRVTY,0,1)
KNGH D 0 ACS_NamedExecuteWithResult("VC_SetState",10)
KNGH D 1 A_JumpIf(z-floorz<=8,"AxeStrike")
loop

UltAxeChop:
KNG2 D 0 A_JumpIf(z-floorz<=8,"UltAxeJump")
KNG2 D 1 ACS_NamedExecuteWithResult("VC_SetState",9) KNG2 D 0 A_ChangeVelocity(SPD,0,momz,CVF_RELATIVE|CVF_REPLACE) KNG2 D 0 ThrustThingZ(0,GRVTY,0,1)
KNG2 D 1 ACS_NamedExecuteWithResult("VC_SetState",9) KNG2 D 0 A_ChangeVelocity(SPD,0,momz,CVF_RELATIVE|CVF_REPLACE) KNG2 D 0 ThrustThingZ(0,GRVTY,0,1)
KNG2 D 1 ACS_NamedExecuteWithResult("VC_SetState",9) KNG2 D 0 A_ChangeVelocity(SPD,0,momz,CVF_RELATIVE|CVF_REPLACE) KNG2 D 0 ThrustThingZ(0,GRVTY,0,1)
KNG2 D 1 ACS_NamedExecuteWithResult("VC_SetState",9) KNG2 D 0 A_ChangeVelocity(SPD,0,momz,CVF_RELATIVE|CVF_REPLACE) KNG2 D 0 ThrustThingZ(0,GRVTY,0,1)
Goto UltAxeChopHold

UltAxeJump:
KNG2 D 0 ThrustThingZ(0,140,0,1)
KNG2 D 1 ACS_NamedExecuteWithResult("VC_SetState",9) KNG2 D 0 A_ChangeVelocity(SPD,0,momz,CVF_RELATIVE|CVF_REPLACE) KNG2 D 0 ThrustThingZ(0,GRVTY,0,1)
KNG2 D 1 ACS_NamedExecuteWithResult("VC_SetState",9) KNG2 D 0 A_ChangeVelocity(SPD,0,momz,CVF_RELATIVE|CVF_REPLACE) KNG2 D 0 ThrustThingZ(0,GRVTY,0,1)
KNG2 D 1 ACS_NamedExecuteWithResult("VC_SetState",9) KNG2 D 0 A_ChangeVelocity(SPD,0,momz,CVF_RELATIVE|CVF_REPLACE) KNG2 D 0 ThrustThingZ(0,GRVTY,0,1)
KNG2 D 1 ACS_NamedExecuteWithResult("VC_SetState",9) KNG2 D 0 A_ChangeVelocity(SPD,0,momz,CVF_RELATIVE|CVF_REPLACE) KNG2 D 0 ThrustThingZ(0,GRVTY,0,1)
Goto UltAxeChopHold
UltAxeChopHold:
KNG2 D 0 ThrustThingZ(0,GRVTY,0,1)
KNG2 D 0 ACS_NamedExecuteWithResult("VC_SetState",10)
KNG2 D 1 A_JumpIf(z-floorz<=8,"AxeStrike")
loop

AxeStrike:
TNT1 A 0 A_TakeInventory("IsUsingKingAxe",1)
KNGH E 0 A_PlaySoundEx("weapon/kingaxeswingvertical","Auto")
KNGH E 0 A_PlaySoundEx("weapon/kingaxeswingvertical2","Auto")
KNGH E 0 A_Quake(3,10,0,150)
KNGH E 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"UltAxeStrike")
KNGH E 0 A_SpawnItemEx("AxeChop",32,0,32,25)
KNGH E 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",11)
KNGH E 1 OffSet(-10,62)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",11)
KNGH F 1 OffSet(-17,82)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",11)
KNGH F 1 OffSet(-24,102)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",11)
KNGH F 1 OffSet(-31,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",12)
TNT1 A 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",12)
TNT1 A 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",12)
KNGH A 1 Offset(-4,132)A_TakeInventory("HalfDamageProtection",1)
KNGH A 1 Offset(-4,122)
KNGH A 1 Offset(-4,112)
KNGH A 1 Offset(-4,102)
KNGH A 1 Offset(-4,92)
KNGH A 1 Offset(-4,82)
KNGH A 1 Offset(-4,72)
KNGH A 1 Offset(-4,62)
KNGH A 1 Offset(-2,52)
KNGH A 1 Offset(-1,42)
Goto Ready2

UltAxeStrike:
KNG2 E 0 A_SpawnItemEx("AxeChopUlt",32,0,32,25) 
KNG2 E 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",11)
KNG2 E 1 OffSet(-10,62) A_stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",11)
KNG2 F 1 OffSet(-17,82) A_stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",11)
KNG2 F 1 OffSet(-24,102)A_stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",12)
KNG2 F 1 OffSet(-31,142)A_stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",12)
TNT1 A 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",12)
TNT1 A 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",12)
KNG2 A 1 Offset(-4,132)A_TakeInventory("HalfDamageProtection",1)
KNG2 A 1 Offset(-4,122)
KNG2 A 1 Offset(-4,112)
KNG2 A 1 Offset(-4,102)
KNG2 A 1 Offset(-4,92)
KNG2 A 1 Offset(-4,82)
KNG2 A 1 Offset(-4,72)
KNG2 A 1 Offset(-4,62)
KNG2 A 1 Offset(-2,52)
KNG2 A 1 Offset(-1,42)
Goto Ready3

Altfire:
KNGH A 0 A_JumpIfInventory("NoAltfire",1,"Ready2")
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",13)
KNGH A 0 A_GiveInventory("KingAltfirePickUp",1)
KNGH A 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"Altfire.Ult")
KNGH A 1 Offset(0,37)
KNGH A 1 Offset(0,42)
KNGH A 1 Offset(0,47)
KNGH A 1 Offset(0,52)
KNGH A 1 Offset(0,57)
KNGH A 15 Offset(0,62)
KNGH A 1 Offset(0,57)
KNGH A 1 Offset(0,52)
KNGH A 1 Offset(0,47)
KNGH A 1 Offset(0,42)
KNGH A 1 Offset(0,37)
Goto Ready2

Altfire.Ult:
KNG2 A 1 Offset(0,37)
KNG2 A 1 Offset(0,42)
KNG2 A 1 Offset(0,47)
KNG2 A 1 Offset(0,52)
KNG2 A 1 Offset(0,57)
KNG2 A 15 Offset(0,62)
KNG2 A 1 Offset(0,57)
KNG2 A 1 Offset(0,52)
KNG2 A 1 Offset(0,47)
KNG2 A 1 Offset(0,42)
KNG2 A 1 Offset(0,37)
Goto Ready3

User1:
TNT1 A 0 A_JumpIfInventory("AxeSpinCooldown",1,"Ready2")
TNT1 A 0 A_GunFlash("AxeSpinning")
TNT1 A 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"User1.Ult")
KNGH E 1 Offset(-4,32)
KNGH E 1 Offset(-8,32)
Goto SpinHold

SpinHold:
KNGH I 0 A_JumpIfInventory("CutterFlag",7,"SpinHold.CanCancel")
KNGH I 0 A_PlaySoundEx("weapon/kingaxespin","Weapon")
KNGH I 1 Offset(-12,32)A_GiveInventory("AxeSpinPickUp",1) KNGH I 0 A_JumpIfInventory("Base56Ammo",1,1) Goto SpinEnd KNGH I 0 A_TakeInventory("Base56Ammo",1)
KNGH I 1 Offset(-12,32)A_GiveInventory("AxeSpinPickUp",1) KNGH I 0 A_JumpIfInventory("Base56Ammo",1,1) Goto SpinEnd
KNGH J 1 Offset(-12,32)A_GiveInventory("AxeSpinPickUp",1) KNGH J 0 A_JumpIfInventory("Base56Ammo",1,1) Goto SpinEnd KNGH J 0 A_TakeInventory("Base56Ammo",1)
KNGH J 1 Offset(-12,32)A_GiveInventory("AxeSpinPickUp",1) KNGH J 0 A_JumpIfInventory("Base56Ammo",1,1) Goto SpinEnd
KNGH J 0 A_GiveInventory("CutterFlag",1)
loop

SpinHold.CanCancel:
KNGH I 0 A_PlaySoundEx("weapon/kingaxespin","Weapon")
KNGH I 1 Offset(-12,32)A_GiveInventory("AxeSpinPickUp",1) KNGH I 0 A_JumpIfInventory("Base56Ammo",1,1) Goto SpinEnd KNGH I 0 A_TakeInventory("Base56Ammo",1)
KNGH I 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"SpinEnd")
KNGH I 1 Offset(-12,32)A_GiveInventory("AxeSpinPickUp",1) KNGH I 0 A_JumpIfInventory("Base56Ammo",1,1) Goto SpinEnd
KNGH I 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"SpinEnd")
KNGH J 1 Offset(-12,32)A_GiveInventory("AxeSpinPickUp",1) KNGH J 0 A_JumpIfInventory("Base56Ammo",1,1) Goto SpinEnd KNGH J 0 A_TakeInventory("Base56Ammo",1)
KNGH J 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"SpinEnd")
KNGH J 1 Offset(-12,32)A_GiveInventory("AxeSpinPickUp",1) KNGH J 0 A_JumpIfInventory("Base56Ammo",1,1) Goto SpinEnd
KNGH J 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"SpinEnd")
loop

SpinEnd:
KNGH E 0 A_GunFlash("EndFlash")
KNGH E 0 A_GiveInventory("KingAxeSpinEndPickUp",1)
KNGH E 1 Offset(-8,32)
KNGH E 1 Offset(-4,32)
Goto Ready2

User1.Ult:
KNG2 E 1 Offset(-4,32)
KNG2 E 1 Offset(-8,32)
Goto UltSpinHold

UltSpinHold:
KNG2 I 0 A_JumpIfInventory("CutterFlag",6,"UltSpinHold.CanCancel")
KNG2 I 0 A_PlaySoundEx("weapon/kingaxespin","Weapon")
KNG2 I 1 Offset(-12,32)A_GiveInventory("AxeSpinPickUp",1) KNG2 I 0 A_JumpIfInventory("Base56Ammo",1,1) Goto UltSpinEnd KNG2 I 0 A_TakeInventory("Base56Ammo",1)
KNG2 I 1 Offset(-12,32)A_GiveInventory("AxeSpinPickUp",1) KNG2 I 0 A_JumpIfInventory("Base56Ammo",1,1) Goto UltSpinEnd
KNG2 J 1 Offset(-12,32)A_GiveInventory("AxeSpinPickUp",1) KNG2 J 0 A_JumpIfInventory("Base56Ammo",1,1) Goto UltSpinEnd KNG2 J 0 A_TakeInventory("Base56Ammo",1)
KNG2 J 1 Offset(-12,32)A_GiveInventory("AxeSpinPickUp",1) KNG2 J 0 A_JumpIfInventory("Base56Ammo",1,1) Goto UltSpinEnd
KNG2 J 0 A_GiveInventory("CutterFlag",1)
loop

UltSpinHold.CanCancel:
KNG2 I 0 A_PlaySoundEx("weapon/kingaxespin","Weapon")
KNG2 I 1 Offset(-12,32)A_GiveInventory("AxeSpinPickUp",1) KNG2 I 0 A_JumpIfInventory("Base56Ammo",1,1) Goto UltSpinEnd KNG2 I 0 A_TakeInventory("Base56Ammo",1)
KNG2 I 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"SpinEnd")
KNG2 I 1 Offset(-12,32)A_GiveInventory("AxeSpinPickUp",1) KNG2 I 0 A_JumpIfInventory("Base56Ammo",1,1) Goto UltSpinEnd
KNG2 I 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"SpinEnd")
KNG2 J 1 Offset(-12,32)A_GiveInventory("AxeSpinPickUp",1) KNG2 J 0 A_JumpIfInventory("Base56Ammo",1,1) Goto UltSpinEnd KNG2 I 0 A_TakeInventory("Base56Ammo",1)
KNG2 J 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"SpinEnd")
KNG2 J 1 Offset(-12,32)A_GiveInventory("AxeSpinPickUp",1) KNG2 J 0 A_JumpIfInventory("Base56Ammo",1,1) Goto UltSpinEnd
KNG2 J 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"SpinEnd")
loop

UltSpinEnd:
KNG2 E 0 A_GunFlash("EndFlash")
KNG2 E 0 A_GiveInventory("KingAxeSpinEndPickUp",1)
KNG2 E 1 Offset(-8,32)
KNG2 E 1 Offset(-4,32)
Goto Ready3

UltimateAttack:
KNGH A 0 A_GiveInventory("KingUltStartPickUp",1)
KNGH A 1 OffSet(0,42)A_Stop
KNGH A 1 OffSet(0,52)A_Stop
KNGH A 1 OffSet(0,62)A_Stop
KNGH A 1 OffSet(0,72)A_Stop
KNGH A 1 OffSet(0,82)A_Stop
KNGH A 1 OffSet(0,92)A_Stop
KNGH A 1 OffSet(0,102)A_Stop
KNGH A 1 OffSet(0,112)A_Stop
KNGH A 1 OffSet(0,122)A_Stop 
KNGH A 1 OffSet(0,132)A_Stop
UltWait:
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 A_TakeInventory("UltAttackFlag",1)
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag1",1,"UltStartHold")
loop
UltStartHold:
TNT1 A 0 A_GiveInventory("KingChargeUpFlag",1)
TNT1 A 0 A_PlaySoundEx("weapon/kingsummon","Weapon")
TNT1 A 0 A_PlaySoundEx("weapon/kingult","Auto")
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",17) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",17) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",17) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 0 A_PlaySoundEx("weapon/kingult","Auto")
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",18) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",18) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",18) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 0 A_PlaySoundEx("weapon/kingult","Auto")
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",19) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",19) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",19) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 0 A_PlaySoundEx("weapon/kingult","Auto")
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",18) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",18) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 1 OffSet(0,142)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",18) TNT1 A 0 A_GiveInventory("EnhancedKingTimer",5)
TNT1 A 0 A_JumpIfInventory("EnhancedKingTimer",500,"UltStartHoldEnd")
Goto UltStartHold+2
UltStartHoldEnd:
KNG2 A 0 A_GiveInventory("KingUltActivatePickUp",1)
KNG2 A 1 OffSet(0,132)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
KNG2 A 1 OffSet(0,122)A_Stop
KNG2 A 1 OffSet(0,112)A_Stop
KNG2 A 1 OffSet(0,102)A_Stop
KNG2 A 1 OffSet(0,92)A_Stop
KNG2 A 1 OffSet(0,82)A_Stop
KNG2 A 1 OffSet(0,72)A_Stop
KNG2 A 1 OffSet(0,62)A_Stop
KNG2 A 1 OffSet(0,52)A_Stop
KNG2 A 1 OffSet(0,42)A_Stop
KNG2 A 0 A_GiveInventory("KingUltBeginPickUp",1)
Goto Ready3

UltEnd:
KNG3 A 0 A_GunFlash("StateChange")
KNG3 A 0 A_GiveInventory("KingUltDeactivatePickUp",1)
KNG3 A 1 OffSet(0,36)A_Stop
KNG3 A 1 OffSet(0,40)A_Stop
KNG3 A 1 OffSet(0,44)A_Stop
KNG3 A 1 OffSet(0,48)A_Stop
UltFinishHold:
KNG3 A 1 A_Stop
KNG3 A 0 A_GiveInventory("CutterFlag",1)
KNG3 A 0 A_JumpIfInventory("CutterFlag",25,"UltFinishHoldEnd")
loop
UltFinishHoldEnd:
KNGH A 0 A_GunFlash("EndFlash")
KNGH A 1 OffSet(0,48)A_Stop
KNGH A 1 OffSet(0,44)A_Stop
KNGH A 1 OffSet(0,40)A_Stop
KNGH A 1 OffSet(0,36)A_Stop
KNGH A 0 A_ClearRefire
KNGH A 0 A_GiveInventory("KingUltOffPickUp",1)
Goto Ready2

KingLaser:
KNG2 A 0 A_GunFlash("KingLasering")
KNG2 A 0 A_GiveInventory("KingGigaBeamStartPickUp",1)
KNG2 A 1 OffSet( 8,32)
KNG2 A 1 OffSet(16,32)
KNG2 A 1 OffSet(24,32)
KNG2 A 1 OffSet(32,32)
KNG2 A 1 OffSet(40,32)
KNG2 A 1 OffSet(48,32)
KNG2 A 1 OffSet(56,32)
KNG2 A 1 OffSet(64,32)
LaserHold:
KNG2 A 0 A_TakeInventory("UltAttackFlag",1)
KNG2 A 1 OffSet(66,32)A_GiveInventory("GigaBeamCharge",1) KNG2 A 0 A_JumpIfInventory("GigaBeamCharge",105,"FireLaser")
KNG2 AAA 0 A_FireCustomMissile("GigaBeamEnergyFXSpawner",random(-15,15),0,0,0,0,random(-30,30)) KNG2 A 0 A_GiveInventory("KingLaserSounderPickUp")
KNG2 A 1 OffSet(68,32)A_GiveInventory("GigaBeamCharge",1) KNG2 A 0 A_JumpIfInventory("GigaBeamCharge",105,"FireLaser")
KNG2 AAA 0 A_FireCustomMissile("GigaBeamEnergyFXSpawner",random(-15,15),0,0,0,0,random(-30,30)) KNG2 A 0 A_GiveInventory("KingLaserSounderPickUp")
KNG2 A 1 OffSet(70,32)A_GiveInventory("GigaBeamCharge",1) KNG2 A 0 A_JumpIfInventory("GigaBeamCharge",105,"FireLaser")
KNG2 AAA 0 A_FireCustomMissile("GigaBeamEnergyFXSpawner",random(-15,15),0,0,0,0,random(-30,30)) KNG2 A 0 A_GiveInventory("KingLaserSounderPickUp")
KNG2 A 1 OffSet(68,32)A_GiveInventory("GigaBeamCharge",1) KNG2 A 0 A_JumpIfInventory("GigaBeamCharge",105,"FireLaser")
KNG2 AAA 0 A_FireCustomMissile("GigaBeamEnergyFXSpawner",random(-15,15),0,0,0,0,random(-30,30)) KNG2 A 0 A_GiveInventory("KingLaserSounderPickUp")
loop
FireLaser:
KNG2 A 0 A_GiveInventory("KingGigaBeamFirePickUp",1)
KNG2 A 1 A_SpawnItemEx("GigaBeamSpawn",128,0,64)
FireLaserHold:
KNG2 A 0 A_Quake(3,10,0,500)
KNG2 A 1 OffSet(70,32)A_Stop
KNG2 AAAAA 0 A_SpawnItemEx("GigaBeamParticle",150,random(-128,128),random(0,128),70) TNT1 A 0 A_TakeInventory("EnhancedKingTimer",6)
KNG2 A 1 OffSet(70,32)A_Stop
KNG2 AAAAA 0 A_SpawnItemEx("GigaBeamParticle",150,random(-128,128),random(0,128),70) TNT1 A 0 A_TakeInventory("EnhancedKingTimer",6)
KNG2 A 1 OffSet(70,32)A_Stop
KNG2 AAAAA 0 A_SpawnItemEx("GigaBeamParticle",150,random(-128,128),random(0,128),70) TNT1 A 0 A_TakeInventory("EnhancedKingTimer",6)
KNG2 A 1 OffSet(70,32)A_Stop
KNG2 AAAAA 0 A_SpawnItemEx("GigaBeamParticle",150,random(-128,128),random(0,128),70) TNT1 A 0 A_TakeInventory("EnhancedKingTimer",6)
KNG2 A 0 A_JumpIfInventory("EnhancedKingTimer",1,"FireLaserHold")
FireLaserEnd:
KNG2 A 0 A_GunFlash("StateChange")
KNG2 A 0 A_GiveInventory("KingGigaBeamCoolDownPickUp",1)
KNG3 A 1 Offset(70,47)A_Stop
KNG3 A 1 Offset(68,62)A_Stop
KNG3 A 1 Offset(66,77)A_Stop
KNG3 A 1 Offset(64,92)A_Stop
KNG3 A 1 Offset(56,107)A_Stop
KNG3 A 1 Offset(48,122)A_Stop
KNG3 A 1 Offset(40,137)A_Stop
KNG3 A 1 Offset(32,152)A_Stop
KNG3 A 1 Offset(24,167)A_Stop
KNG3 A 1 Offset(16,182)A_Stop
FireLaserEndHold:
TNT1 A 1 Offset(8,182)A_Stop
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",15,"FireLaserCoolDown")
loop
FireLaserCoolDown:
KNG2 R 0 A_GunFlash("EndFlash")
KNG2 R 0 A_GiveInventory("KingGigaBeamCoolDown2PickUp",1)
FireLaserCoolDownHold:
TNT1 A 0 A_GiveInventory("IsKingKneeling",1)
TNT1 A 1 Offset(8,182)ACS_NamedExecuteWithResult("VC_SetState",6)
TNT1 A 0 A_JumpIfInventory("GigaBeamCharge",1,"FireLaserCoolDownHold")
TNT1 A 0 A_TakeInventory("IsKingKneeling",1)
KNGH A 1 Offset(6,167)A_GiveInventory("KingGigaBeamFinishPickUp",1)
KNGH A 1 Offset(6,152)A_TakeInventory("KingGigaBeamSpeed",1)
KNGH A 1 Offset(6,137)A_TakeInventory("KingGigaBeamSpeed",1)
KNGH A 1 Offset(4,122)
KNGH A 1 Offset(4,107)
KNGH A 1 Offset(4,92)
KNGH A 1 Offset(2,77)
KNGH A 1 Offset(2,62)
KNGH A 1 Offset(2,47)
Goto Ready2

KingLasering:
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",13) TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndFlash")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",13) TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndFlash")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",14) TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndFlash")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",14) TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndFlash")
loop
AxeSpinning:
TNT1 A 0 A_TakeInventory("CutterFlag",999)
TNT1 A 0 A_GiveInventory("BaseCustomFlag1",1)
TNT1 A 0 A_GiveInventory("HalfDamageProtection",1)
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",15) TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndFlash")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",15) TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndFlash")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",16) TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndFlash")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",16) TNT1 A 0 A_JumpIfInventory("IsDead",1,"EndFlash")
Goto AxeSpinning+3
StateChange:
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",5)
loop
EndFlash:
TNT1 A 1 A_TakeInventory("BaseCustomFlag1",1)
stop
}
}

Actor KingAxeMainfirePickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_TakeInventory("KingAxeCharge",35)
TNT1 A 0 A_PlaySoundEx("shadowman/jump","Body")
TNT1 A 0 A_GiveInventory("HalfDamageProtection")
TNT1 A 0 A_PlaySoundEx("weapon/chargekick","Weapon")
stop
}
}

Actor KingAltfirePickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_TakeInventory("Base56Ammo",14)
TNT1 A 0 A_PlaySoundEx("weapon/gemini","Weapon")
TNT1 A 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"PickUp2")
TNT1 A 0 A_FireCustomMissile("ReboundLaser",0,0,0,30,0,0)
stop
PickUp2:
TNT1 A 0 A_PlaySoundEx("misc/minilaser","Body")
TNT1 A 0 A_FireCustomMissile("ReboundLaser2",0,0,0,30,0,0)
stop
}
}

Actor KingAxeSpinEndPickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("CutterFlag",99)
TNT1 A 0 A_GiveInventory("AxeSpinCooldown",175)
TNT1 A 0 A_TakeInventory("HalfDamageProtection",1)
TNT1 A 0 A_SpawnItemEx("AxeSpinWatcher")
stop
}
}

actor AxeSlasher : BasicHelper
{
const int DST = 2; const int Z_WRP = 40; const int FLG = 26;
const int X_OFS = 4; const int Z_OFS = 4; const int X_SPD = 110;
States
{
Spawn:
TNT1 A 0 A_Warp(DST,0,0,Z_WRP,angle,FLG)
TNT1 A 1 A_SpawnItemEx("AxeSlash",X_OFS,-10,Z_OFS,X_SPD,0,0,-70)
TNT1 A 0 A_Warp(DST,0,0,Z_WRP,angle,FLG)
TNT1 A 1 A_SpawnItemEx("AxeSlash",X_OFS,-5,Z_OFS,X_SPD,0,0,-35)
TNT1 A 0 A_Warp(DST,0,0,Z_WRP,angle,FLG)
TNT1 A 1 A_SpawnItemEx("AxeSlash",X_OFS,0,Z_OFS,X_SPD,0,0,0)
TNT1 A 0 A_Warp(DST,0,0,Z_WRP,angle,FLG)
TNT1 A 1 A_SpawnItemEx("AxeSlash",X_OFS,5,Z_OFS,X_SPD,0,0,35)
TNT1 A 0 A_Warp(DST,0,0,Z_WRP,angle,FLG)
TNT1 A 1 A_SpawnItemEx("AxeSlash",X_OFS,10,Z_OFS,X_SPD,0,0,70)
stop
}
}

actor AxeSlasher2 : AxeSlasher
{
States
{
Spawn:
TNT1 A 0 A_Warp(DST,0,0,Z_WRP,angle,FLG)
TNT1 A 1 A_SpawnItemEx("AxeSlash2",X_OFS,-10,Z_OFS,X_SPD,0,0,-70)
TNT1 A 0 A_Warp(DST,0,0,Z_WRP,angle,FLG)
TNT1 A 1 A_SpawnItemEx("AxeSlash2",X_OFS,-5,Z_OFS,X_SPD,0,0,-35)
TNT1 A 0 A_Warp(DST,0,0,Z_WRP,angle,FLG)
TNT1 A 1 A_SpawnItemEx("AxeSlash2",X_OFS,0,Z_OFS,X_SPD,0,0,0)
TNT1 A 0 A_Warp(DST,0,0,Z_WRP,angle,FLG)
TNT1 A 1 A_SpawnItemEx("AxeSlash2",X_OFS,5,Z_OFS,X_SPD,0,0,35)
TNT1 A 0 A_Warp(DST,0,0,Z_WRP,angle,FLG)
TNT1 A 1 A_SpawnItemEx("AxeSlash2",X_OFS,10,Z_OFS,X_SPD,0,0,70)
stop
}
}

Actor AxeSlash : BulletPuff
{
vspeed 7.5
+PUFFGETSOWNER
Alpha 1.0
Translation "192:192=215:215", "198:198=220:220"
PROJECTILE
damagetype "King"
Obituary "$OB_KING3"
+THRUACTORS
+DONTBLAST
+DONTSPLASH
+THRUGHOST
+ALWAYSPUFF
+PUFFONACTORS
mass 4
damage (0)
Radius 4
Height 4
speed 30
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_Stop
KGNP JK 2 A_Explode(mass,48,0,0,48)
KGNP J 2
stop
}
}

Actor AxeSlash2 : AxeSlash
{
Translation "192:192=34:34", "198:198=239:239"
damagetype "KingUlt"
Obituary "$OB_KING8"
mass 8
}

Actor AxeChop
{
Obituary "$OB_KING3"
PROJECTILE
Radius 40
translation "0:255=4:4"
Height 32
scale 2.5
damage (40)
damagetype "KingChop"
+THRUGHOST
speed 44
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TBLA EFGF 1
stop
}
}

Actor AxeChopUlt : AxeChop
{
Obituary "$OB_KING8"
damagetype "KingUltChop"
speed 45
damage (80)
States
{
Spawn:
TBLA EFGF 1
stop
}
}

Actor ReboundLaser
{
Translation "197:197=238:238", "208:208=236:236"
Obituary "$OB_KING4"
PROJECTILE
+HEXENBOUNCE
+CANBOUNCEWATER
+USEBOUNCESTATE
WALLBOUNCEFACTOR 1.0
BOUNCEFACTOR 1.0
Radius 6
Height 6
damagetype "King"
scale 2.5
damage (24)
+FORCEXYBILLBOARD
speed 35
reactiontime 175
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
GEMI A 0 bright A_SpawnItemEx("ReboundLaserTrail",-momx*2/3,-momy*2/3,-momz*2/3,0,0,0,0,SXF_ABSOLUTEPOSITION)
GEMI A 0 bright A_SpawnItemEx("ReboundLaserTrail",-momx/3,-momy/3,-momz/3,0,0,0,0,SXF_ABSOLUTEPOSITION)
GEMI A 0 bright A_SpawnItemEx("ReboundLaserTrail",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM)
GEMI A 1 bright A_SpawnItemEx("ReboundLaserTrail",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION)
GEMI A 0 A_CountDown
goto Spawn+2
Bounce:
TNT1 AA 0 A_PlaySoundEx("weapon/klaserbounc","Weapon")//A_PlaySoundEx("weapon/pshot","Weapon")
TNT1 A 0 A_SpawnItemEx("ReboundLaserBounceFX")
GEMI A 0 bright A_SpawnItemEx("ReboundLaserTrail",-momx*2/3,-momy*2/3,-momz*2/3,0,0,0,0,SXF_ABSOLUTEPOSITION)
GEMI A 0 bright A_SpawnItemEx("ReboundLaserTrail",-momx/3,-momy/3,-momz/3,0,0,0,0,SXF_ABSOLUTEPOSITION)
GEMI A 0 bright A_SpawnItemEx("ReboundLaserTrail",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM)
GEMI A 1 bright A_SpawnItemEx("ReboundLaserTrail",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION)
GEMI A 0 A_CountDown
Goto Spawn+2
Death:
XDeath:
TNT1 A 0 A_PlaySoundEx("weapon/klaserbounc","Weapon")//A_PlaySoundEx("weapon/pshot","Weapon")
TNT1 A 0 A_SpawnItemEx("ReboundLaserBounceFX")
TNT1 A 2
stop
}
}

Actor ReboundLaser2
{
Obituary "$OB_KING9"
PROJECTILE
+HEXENBOUNCE
+CANBOUNCEWATER
+USEBOUNCESTATE
WALLBOUNCEFACTOR 1.0
BOUNCEFACTOR 1.0
Radius 8
Height 8
damagetype "KingUlt"
scale 2.5
damage (48)
+FORCEXYBILLBOARD
speed 35
reactiontime 175
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
KNGA B 0 bright A_SpawnItemEx("ReboundLaser2Trail",-momx*2/3,-momy*2/3,-momz*2/3,0,0,0,0,SXF_ABSOLUTEPOSITION)
KNGA B 0 bright A_SpawnItemEx("ReboundLaser2Trail",-momx/3,-momy/3,-momz/3,0,0,0,0,SXF_ABSOLUTEPOSITION)
KNGA B 0 bright A_SpawnItemEx("ReboundLaser2Trail",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM)
KNGA B 0 bright A_SpawnItemEx("ReboundLaser2Trail",-momx*2/6,-momy*2/6,-momz*2/6,0,0,0,0,SXF_ABSOLUTEPOSITION)
KNGA B 0 bright A_SpawnItemEx("ReboundLaser2Trail",-momx/7,-momy/7,-momz/7,0,0,0,0,SXF_ABSOLUTEPOSITION)
KNGA B 0 bright A_SpawnItemEx("ReboundLaser2Trail",0,0,0,momx/8,momy/8,momz/8,0,SXF_ABSOLUTEMOMENTUM)
KNGA B 1 bright A_SpawnItemEx("ReboundLaser2Trail",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION)
KNGA B 0 A_CountDown
goto Spawn+2
Bounce:
TNT1 AA 0 A_PlaySoundEx("weapon/pshot","Weapon")
TNT1 A 0 A_SpawnItemEx("UltReboundLaserBounceFX")
TNT1 A 0 A_ScaleVelocity(1.005)
KNGA B 0 bright A_SpawnItemEx("ReboundLaser2Trail",-momx*2/3,-momy*2/3,-momz*2/3,0,0,0,0,SXF_ABSOLUTEPOSITION)
KNGA B 0 bright A_SpawnItemEx("ReboundLaser2Trail",-momx/3,-momy/3,-momz/3,0,0,0,0,SXF_ABSOLUTEPOSITION)
KNGA B 0 bright A_SpawnItemEx("ReboundLaser2Trail",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM)
KNGA B 0 bright A_SpawnItemEx("ReboundLaser2Trail",-momx*2/6,-momy*2/6,-momz*2/6,0,0,0,0,SXF_ABSOLUTEPOSITION)
KNGA B 0 bright A_SpawnItemEx("ReboundLaser2Trail",-momx/7,-momy/7,-momz/7,0,0,0,0,SXF_ABSOLUTEPOSITION)
KNGA B 0 bright A_SpawnItemEx("ReboundLaser2Trail",0,0,0,momx/8,momy/8,momz/8,0,SXF_ABSOLUTEMOMENTUM)
KNGA B 1 bright A_SpawnItemEx("ReboundLaser2Trail",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION)
Goto Spawn+2
}
}

Actor ReboundLaserTrail : GeminiTrail
{
Translation "197:197=238:238", "4:4=236:236"
Obituary "$OB_KING4"
States
{
Spawn:
GEMI A 4
stop
}
}
Actor ReboundLaser2Trail : ReboundLaserTrail
{
Obituary "$OB_KING9"
States
{
Spawn:
KNGA B 4
stop
}
}

Actor ReboundLaserBounceFX
{
PROJECTILE
+NOCLIP
+NOINTERACTION
+BRIGHT
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
RBND ABCDEF 2
stop
}
}
Actor UltReboundLaserBounceFX : ReboundLaserBounceFX{Translation "238:238=44:44", "4:4=41:41"}

Actor AxeSpinPickUp : BaseMovement//CustomInventory
{
States
{
itTimeGo:
TNT1 A 0 A_ChangeVelocity(CallACS("VC_XYMob",cos(pitch)*20),0,momz,CVF_RELATIVE|CVF_REPLACE)
TNT1 A 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"PickUp2")
TNT1 A 0 A_SpawnItemEx("AxeSpinHitBox",0,0,0,momx,momy,momz)
stop
PickUp2:
TNT1 A 0 A_SpawnItemEx("AxeSpinHitBox2",0,0,0,momx,momy,momz)
stop
}
}

Actor AxeSpinHitBox
{
Damagetype "KingAxeSpin"
Obituary "$OB_KING5"
PROJECTILE
+NOEXPLODEFLOOR
+NOINTERACTION
+THRUSPECIES
+THRUGHOST
Radius 1
Height 1
scale 2.5
speed 0
damage (0)
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(3,80,0,0,80)
stop
}
}

Actor AxeSpinHitBox2 : AxeSpinHitBox
{
damagetype "KingAxeSpinUlt"
Obituary "$OB_KING10"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(6,80,0,0,80)
stop
}
}

Actor AxeSpinProtect : PowerProtection
{
	Powerup.Duration 4
	DamageFactor "KingAxeSpin", 0.0
	DamageFactor "KingAxeSpinUlt", 0.0
}

//Giga beam actors
Actor GigaBeamSpawn : BasicProjectile
{
PROJECTILE
+DONTBLAST
+DONTSPLASH
+THRUACTORS
Damagetype "KingUlt"
Obituary "$OB_KING11"
Renderstyle Add
Alpha 0.05
Height 8
Radius 8
Alpha 1.0
Scale 10.0
const int OFS = 16;
damage(0)
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIfCloser(1800,"Appear")
stop

Appear:
TNT1 A 0 A_SpawnItemEx("GigaBeamSpawn",16,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
Frame:
KLSR A 2 A_Explode(100,250,0,0,250)//A_SpawnItemEx("GigaBeamDamager",16,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
//TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("EnhancedKingTimer",1,"Frame")
KLSR AAAAAAAAAAAAAAAAAAAA 1 A_SetScale(scalex-0.5,scaley-0.5)
stop

Death:
TNT1 A 0
stop
}
}

Actor GigaBeamDamager : BasicExplosion
{
damagetype "KingUlt"
Obituary "$OB_KING11"
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(100,250,0,0,250)
stop
}
}

Actor GigaBeamParticle : BasicGraphicEffect
{
renderstyle add
alpha 0.7
Scale 2.5
States
{
Spawn:
TNT1 AA 0 //A_GiveInventory("ProjectileCode")
TNT1 A 1 A_Jump(256,"ParticleOne","ParticleTwo")
Goto Spawn+2
ParticleOne:
KLSR B 4
KLSR BBBBBBBBBB 1 A_Fadeout(0.10)
Goto End
ParticleTwo:
KLSR C 4
KLSR CCCCCCCCCC 1 A_Fadeout(0.10)
stop
}
}

Actor GigaBeamEnergyFXSpawner : BasicGraphicEffect
{
Speed 150
scale 1.5
States
{
Spawn:
TNT1 A 1
Death:
TNT1 A 0 A_CustomMissile("GigaBeamEnergyFX",0,0,0,0)
stop
}
}

Actor GigaBeamEnergyFX : BasicGraphicEffect
{
speed 45
states
{
SpawnFrame:
KLSR DDDDEEEEFFFF 1 A_JumpIfCloser(32,"Death")
Death:
TNT1 A 0
stop
}
}

Actor KingLaserSounderPickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("GigaBeamCharge",70,"Sound3")
TNT1 A 0 A_JumpIfInventory("GigaBeamCharge",35,"Sound2")
Sound1:
TNT1 A 0 A_PlaySoundEx("weapon/heat1","Voice")
stop
Sound2:
TNT1 A 0 A_PlaySoundEx("weapon/heat2","Voice")
stop
Sound3:
TNT1 A 0 A_PlaySoundEx("weapon/heat3","Voice")
stop
}
}

//Misc actors
actor KingMachineSpawner
{
Damagetype "King"
Obituary "$OB_KING1"
Species "KingMachine"
PROJECTILE
Height 1
Radius 1
scale 2.5
+THRUACTORS
+NOGRAVITY
+NOINTERACTION
+DONTREFLECT
var int User_MachineOffset;
const int OFS_SUB = 32;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0
TNT1 AA 0 A_PlaySoundEx("misc/teleport2","Body")
TNT1 A 1 A_SetUserVar("User_MachineOffset",640)
TNT1 A 0 A_JumpIf(User_MachineOffset <= 0,"End")
TNT1 A 1 A_Warp(AAPTR_TARGET,0,0,User_MachineOffset,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_SetUserVar("User_MachineOffset",User_MachineOffset-OFS_SUB)
Spawn2:
TNT1 A 0 A_JumpIf(User_MachineOffset <= 0,"End")
KNGX I 1 A_Warp(AAPTR_TARGET,0,0,User_MachineOffset,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_SetUserVar("User_MachineOffset",User_MachineOffset-OFS_SUB)
loop
End:
KNGX I 2 A_GiveToTarget("BaseCustomFlag1",1)
stop
}
}

actor KingMachineExit : KingMachineSpawner
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0
TNT1 AA 0 A_PlaySoundEx("misc/teleport2","Body")
TNT1 A 1 A_SetUserVar("User_MachineOffset",0)
TNT1 A 0 A_JumpIf(User_MachineOffset >= 640,"End")
TNT1 A 1 A_Warp(AAPTR_TARGET,0,0,User_MachineOffset,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_SetUserVar("User_MachineOffset",User_MachineOffset+OFS_SUB)
Spawn2:
TNT1 A 0 A_JumpIf(User_MachineOffset >= 640,"End")
KNGX I 1 A_Warp(AAPTR_TARGET,0,0,User_MachineOffset,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_SetUserVar("User_MachineOffset",User_MachineOffset+OFS_SUB)
loop
End:
TNT1 AAA 1
stop
}
}

Actor EjectedShield
{
PROJECTILE
+SOLID
+THRUACTORS
-NOGRAVITY
+DONTSPLASH
+HEXENBOUNCE
+CANBOUNCEWATER
BOUNCECOUNT 5
WALLBOUNCEFACTOR 1
BOUNCEFACTOR 0.80
Damage (0)
height 0
radius 0
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 ThrustThingZ(0, random(15,30), 0, 1)
SpawnLoop:
KNGX L 1
TNT1 A 1
Goto SpawnLoop
Death:
TNT1 A 0
stop
}
}

Actor EjectedShieldPieceA
{
PROJECTILE
+SOLID
+THRUACTORS
-NOGRAVITY
+DONTSPLASH
+HEXENBOUNCE
+CANBOUNCEWATER
BOUNCECOUNT 5
WALLBOUNCEFACTOR 1
BOUNCEFACTOR 0.80
Damage (0)
height 0
radius 0
scale 2.5
States
{
Spawn:
KNGX G 1
TNT1 A 1
loop
}
}

Actor EjectedShieldPieceB : EjectedShieldPieceA
{
States
{
Spawn:
KNGX H 1
TNT1 A 1
loop
}
}

Actor EjectedCape
{
PROJECTILE
+SOLID
+THRUACTORS
-NOGRAVITY
+DONTSPLASH
+HEXENBOUNCE
+CANBOUNCEWATER
BOUNCECOUNT 1
WALLBOUNCEFACTOR 1
BOUNCEFACTOR 0.80
Gravity 0.3
Damage (0)
height 0
radius 0
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 ThrustThingZ(0, random(15,30), 0, 1)
KNGX ABC 4
SpawnLoop:
KNGX DEFE 4
KNGX DEFE 4 ThrustThingZ(0, 15, 0, 1)
Goto SpawnLoop
Death:
TNT1 A 0
stop
}
}

Actor KingShieldUltSpeed : PowerSpeed
{
+POWERSPEED.NOTRAIL
powerup.duration -999
Speed 2.0
}

Actor KingAxeSpeed : KingShieldUltSpeed { Speed 1.10 }
Actor KingAxeUltSpeed : KingShieldUltSpeed { Speed 2.20 }
Actor KingGigaBeamSpeed : KingShieldUltSpeed { Speed 0.50 }

Actor UltimateAttackItem5King : UltimateAttackItem5
{
	Tag "$ITEM_ULTIMATE"
	states
	{
		Spawn:
		TNT1 A 0
		stop
		Failure:
		ULTA I 0
		ULTA I 0 A_PlaySoundEx("classes/itemfail","SoundSlot7")
		fail
		Haha:
		ULTA I 0 A_PlaySoundEx("item/skulllaugh","SoundSlot7")
		fail
		Use:
		ULTA I 0 A_JumpIfInventory("SkullDebuffDamage",1,"Haha")
		ULTA I 0 A_JumpIfInventory("FrozenByFlashman",1,"Failure")
		ULTA I 0 A_JumpIfInventory("KingUltimateActiveFlag",1,"GigaBeamCheck")
		ULTA I 0 A_JumpIfInventory("LongUltimateAmmo",500,"UltActivate")
		Goto Failure
		UltActivate:
		ULTA I 0 A_GiveInventory("UltAttackFlag",1)
		fail
		GigaBeamCheck:
		ULTA I 0 A_JumpIfInventory("EnhancedKingTimer",250,"GigaBeamActivate")
		TNT1 A 0 A_TakeInventory("UltAttackFlag",1)
		fail
		GigaBeamActivate:
		TNT1 A 0 A_GiveInventory("UltAttackFlag",1)
		fail
	}
}

Actor KingUltWatcher
{
PROJECTILE
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIfInTargetInventory("HaltDrain",1,"No")
TNT1 A 0 A_TakeFromTarget("EnhancedKingTimer",1)
No:
TNT1 A 2
TNT1 A 0 A_JumpIfInTargetInventory("EnhancedKingTimer",1,"Spawn")
TNT1 A 0 A_TakeFromTarget("HaltDrain",1)
stop
}
}

Actor KingWeakCoolDownWatcher
{
PROJECTILE
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_TakeFromTarget("GigaBeamCharge",1)
TNT1 A 0 A_JumpIfInTargetInventory("GigaBeamCharge",1,"Spawn")
stop
}
}

Actor AxeSpinCooldown : Ammo
{
	inventory.amount 1
	inventory.maxamount 175
	+INVENTORY.IGNORESKILL
}

Actor AxeSpinWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 1 A_TakeFromTarget("AxeSpinCooldown",1)
TNT1 A 0 A_JumpIfInTargetInventory("AxeSpinCooldown",1,"Spawn")
Death:
TNT1 A 1
stop
}
}

actor XBlastNoAim : Powerup 
{
powerup.duration 6
}

Actor KingAxeCharge : Inventory
{
inventory.amount 1
inventory.maxamount 35
}

Actor GigaBeamCharge : Inventory
{
inventory.amount 1
inventory.maxamount 105
}

Actor KingUltimateActiveFlag : VCOnce {}
Actor KingChargeUpFlag : VCOnce {}
Actor HaltDrain : VCOnce {}

Actor EnhancedKingTimer : Inventory
{
inventory.amount 1
inventory.maxamount 500
}

Actor KingHealthWatcherPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_spawnItemEx("KingHealthWatcher")
stop
}
}