actor KnightCrushBoss : Weapon
{
Weapon.AmmoUse 0
Weapon.AmmoGive 28
Weapon.SlotNumber 4
Obituary "%o was slain by %k's Knight Crush."
weapon.ammotype "KnightmanAmmo"
inventory.pickupsound "weapon/weaponup"
+WEAPON.AMMO_OPTIONAL
+WEAPON.DONTBOB
Scale 2.0
States
{
Spawn:
TNT1 A 0
stop
Ready:
KNIA A 0 ACS_ExecuteAlways(998,0,106)
KNIA A 0 A_JumpIfInventory("KnightmanAmmo",28,"Ready2")
KNIA A 0 A_TakeInventory("KnightFlag",999)
KNIA A 0 A_SpawnItemEx("KnightShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
KNIA A 1 A_WeaponReady(WRF_NOSECONDARY|WRF_NOSWITCH)
KNIA A 0 A_SpawnItemEx("KnightShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
KNIA A 1 A_WeaponReady(WRF_NOSECONDARY|WRF_NOSWITCH)
KNIA A 0 A_SpawnItemEx("KnightShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
KNIA A 1 A_WeaponReady(WRF_NOSECONDARY|WRF_NOSWITCH)
KNIA A 0 A_SpawnItemEx("KnightShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
KNIA A 1 A_WeaponReady(WRF_NOSECONDARY|WRF_NOSWITCH)
KNIA A 0 A_SpawnItemEx("KnightShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
KNIA A 1 A_WeaponReady(WRF_NOSECONDARY|WRF_NOSWITCH)
KNIA A 0 A_SpawnItemEx("KnightShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
KNIA A 1 A_WeaponReady(WRF_NOSECONDARY|WRF_NOSWITCH)
KNIA A 0 A_GiveInventory("KnightmanAmmo", 1)
Goto Ready+1
Ready2:
KNIA A 0 A_TakeInventory("KnightFlag",999)
KNIA A 0 A_SpawnItemEx("KnightShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
KNIA A 1 A_WeaponReady(WRF_NOSWITCH)
loop
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
KNIA A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
KNIA A 1 A_Raise
Loop
Fire:
KNIA B 0 A_PlaySoundEx("weapon/mbuster","Weapon")
KNIA B 3
KNIA C 3 A_FireCustomMissile("KnightCrusher",0,8,0,0)
KNIA D 6
Goto Check
Check:
KNIA D 1 A_GiveInventory("KnightFlag",1)
KNIA D 0 A_JumpIfInventory("KnightFlag",150,"Return")
Goto Check
Return:
KNIA D 3 A_TakeInventory("KnightFlag",999)
KNIA C 2
KNIA B 0 A_Refire
Goto Ready+1
AltFire:
KNIA A 0 A_JumpIfInventory("KnightmanAmmo",28,"ShieldCharge")
goto Ready+1
ShieldCharge:
KNIA A 0 A_SpawnItemEx("KnightShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
KNIA G 1 SetPlayerProperty(0,1,0)
KNIA A 0 A_SpawnItemEx("KnightShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
KNIA G 1
KNIA G 0 A_PlaySoundEx("weapon/chargekick","Weapon")
KNIA G 0 A_TakeInventory("KnightmanAmmo", 70)
KNIA G 0 A_ChangeFlag("INVULNERABLE",1)
KNIA H 1 A_Recoil(-6)
KNIA H 0 A_SpawnItemEx("KnightRush",0,0,0)
KNIA H 0 A_GiveInventory("Repulsion",1)
KNIA H 1 A_Recoil(-6)
KNIA H 0 A_SpawnItemEx("KnightRush",0,0,0)
KNIA H 0 A_GiveInventory("Repulsion",1)
KNIA H 1 A_Recoil(-6)
KNIA H 0 A_SpawnItemEx("KnightRush",0,0,0)
KNIA H 0 A_GiveInventory("Repulsion",1)
KNIA H 1 A_Recoil(-6)
KNIA H 0 A_SpawnItemEx("KnightRush",0,0,0)
KNIA H 0 A_GiveInventory("Repulsion",1)
KNIA G 1 SetPlayerProperty(0,0,0)
KNIA G 0 A_ChangeFlag("INVULNERABLE",0)
KNIA A 0 A_SpawnItemEx("KnightShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
KNIA G 1
KNIA A 0 A_SpawnItemEx("KnightShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
KNIA G 1
KNIA A 0 A_SpawnItemEx("KnightShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
KNIA G 1
KNIA A 0 A_Refire
Goto Ready+1
NoAmmo:
KNIA B 0
//KNIA B 1 ACS_Execute(979,0)
Goto Ready+1
}
}

actor KnightmanAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
}

actor KnightCrusher : KnightCrush
{
+THRUGHOST
States
{
Spawn:
KNIA I 0
KNIA II 1 A_SpawnItemEx("KnightCrusherDamager",0,0,0,2,0,0)
KNIA I 0 A_ChangeFlag("THRUGHOST", 0)
KNIA IIIIIIIIIIIIIIII 1 A_SpawnItemEx("KnightCrusherDamager",0,0,0,2,0,0)
//KNIA I 0 A_CustomMissile("KnightStop",0,0,0,0)
KNIA I 0 A_CustomMissile("KnightReturner",0,0,0,0)
Goto Return
}
}

actor KnightStop
{
PROJECTILE
Radius 8
Height 8
scale 2.5
damage (0)
damagetype "Knight"
+RIPPER
+DONTSPLASH
+HEXENBOUNCE
+NOTARGETSWITCH
//+NOCLIP
meleerange 12
reactiontime 48
damagetype "Knight"
speed 0
States
{
Spawn:
KNIA I 0
KNIA IIIIIIIIIIII 1 A_SpawnItemEx("KnightCrusherDamager",0,0,0,2,0,0)
KNIA I 0 A_CustomMissile("KnightReturner",0,0,0,0)
Goto Return
Death:
KNIA I 0 A_GiveToTarget("KnightFlag",999)
stop
}
}

actor KnightReturner : KnightCrusher
{
radius 0
damagetype "Knight"
height 0
speed 40
+NOINTERACTION
//-THRUGHOST
states
{
Spawn:
KNIA I 0 A_JumpIfInTargetInventory("CutterFlag",999,"Death")
KNIA I 1 A_SpawnItemEx("KnightCrusherNerf",0,0,0,2,0,0)
KNIA I 0 A_JumpIfCloser(42,"Death")
KNIA I 1 A_SpawnItemEx("KnightCrusherNerf",0,0,0,2,0,0)
KNIA I 0 A_JumpIfCloser(42,"Death")
KNIA I 1 A_SpawnItemEx("KnightCrusherNerf",0,0,0,2,0,0)
KNIA I 0 A_JumpIfCloser(42,"Death")
KNIA I 1 A_SpawnItemEx("KnightCrusherNerf",0,0,0,2,0,0)
KNIA I 0 A_JumpIfCloser(42,"Death")
KNIA I 0 A_CustomMissile("KnightReturner",0,0,0,0)
stop
}
}

actor KnightCrusherDamager : KnightCrushDamager
{
damage (14)
}

actor KnightCrusherNerf : KnightCrusherDamager
{
//damage (10)
}

actor KnightShieldX : ProtoShieldX
{
//damagefactor "Yamato", 0.0
//-GHOST
+NOTARGETSWITCH
states
{
//"Fire" is the damagetype seekermissiles inflict on things that are not their tracer
pain.Fire:
TNT1 A 0 A_GiveToTarget("SeekerBlocked",1)
goto Super::Pain
}
}

actor SeekerBlocked : PowerProtection
{
Powerup.Duration 2
damagefactor "Buster", 0.0
damagefactor "Dive", 0.0
damagefactor "Magnet", 0.0
damagefactor "Blizzard", 0.0
}

/*
actor KnightShieldXCharge: KnightShieldX
{
Damage (10)
damagetype "NeutralShock"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_RadiusThrust(90000, 1, 0)
stop
Death:
TNT1 A 0
TNT1 A 1 A_RadiusThrust(90000, 1, 0)
stop
Pain:
TNT1 A 0
TNT1 A 1 A_RadiusThrust(90000, 1, 0)
stop
}
}
*/

actor KnightRush
{
PROJECTILE
+DONTSPLASH
+NOINTERACTION
+NOGRAVITY
-SOLID
Damagetype "KnightRush"
Obituary "%o was slain by %k's Shield Rush."
Damage 0
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(5,120,0)
stop
}
}