actor FalconBossWeapon : MegaBuster
{
tag "Captain Falcon"
Weapon.AmmoUse 0
Weapon.AmmoGive 0
Weapon.SlotNumber 1
Obituary "$OB_CAPTAINFALCON" //Just in case.
+INVENTORY.UNDROPPABLE
weapon.ammotype "BossJumpCharge"
weapon.ammotype2 "BossRageCharge"
+WEAPON.AMMO_OPTIONAL
Scale 2.0
States
{
Spawn:
TNT1 A 0
stop
Ready:
CPFH A 1 ACS_NamedExecuteAlways("GiveExecution",0)
CPFH A 0 ACS_ExecuteAlways(991,0,510)
CPFH A 0 A_TakeInventory("FalconEndAnim",1)
CPFH A 1 A_WeaponReady(WRF_NOSWITCH)
Goto Ready+1
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
CPFH A 1 A_Lower
loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
CPFH A 1 A_Raise
Loop
Fire:
CPFH A 0 A_JumpIfInventory("FalconCharge",25,"FalconKick")
CPFH A 0 A_CheckFloor("Firer")
goto Knee
Firer:
CPFH A 1 A_Jump(256,"Fire1","Fire2","Fire3","Fire4")
goto Fire1
Fire1:
CPFH A 0 A_PlaySoundEx("cf/punch","Voice")
CPFH A 0 A_PlaySoundEx("g/pawnch","Weapon")
CPFH A 0 A_FireCustomMissile("CFalconJab",0,0,8,0)
CPFH DE 3
CPFH A 0 A_Refire("Firer")
goto FireEnd
Fire2:
CPFH A 0 A_PlaySoundEx("cf/punch","Voice")
CPFH A 0 A_PlaySoundEx("g/pawnch","Weapon")
CPFH A 0 A_FireCustomMissile("CFalconJab",0,0,11,-8)
CPFH DF 3
CPFH A 0 A_Refire("Firer")
goto FireEnd
Fire3:
CPFH A 0 A_PlaySoundEx("cf/punch","Voice")
CPFH A 0 A_PlaySoundEx("g/pawnch","Weapon")
CPFH A 0 A_FireCustomMissile("CFalconJab",0,0,5,-8)
CPFH DG 3
CPFH A 0 A_Refire("Firer")
goto FireEnd
Fire4:
CPFH A 0 A_PlaySoundEx("cf/punch","Voice")
CPFH A 0 A_PlaySoundEx("g/pawnch","Weapon")
CPFH A 0 A_FireCustomMissile("CFalconJab",0,0,2,-16)
CPFH DH 3
CPFH A 0 A_Refire("Firer")
goto FireEnd
FireEnd:
CPFH A 0 //A_Stop
CPFH A 0 ThrustThingZ(0,25,0,0)
CPFH A 0 A_PlaySoundEx("cf/knee","Voice")
CPFH A 0 A_PlaySoundEx("weapon/cfire","Weapon")
CPFH A 0 A_FireCustomMissile("CFalconJab2",0,0,-8,-20)
CPFH IJKLLLLLLKKJJ 1
CPFH A 5
Goto Ready+1

Knee:
CPFH A 0 A_GiveInventory("FalconKneeAnim",1)
CPFH A 1 Offset(0,32)
CPFH A 1 Offset(0,58)
CPFH A 1 Offset(0,82)
CPFH B 2 Offset(0,58)
CPFH B 2 Offset(0,32)
CPFH B 0 A_PlaySoundEx("cf/knee","Voice")
CPFH B 0 A_PlaySoundEx("weapon/chargekick","Weapon")
CPFH B 0 A_FireCustomMissile("CFLightningKnee",0,0,-2,0)
CPFH B 0 A_FireCustomMissile("CFJusticeKnee",0,0,-2,0)
CPFH B 18 A_Recoil(-10)
//GoTo KneeLoop
//KneeLoop:
//CPFH B 0 A_JumpIfInventory("CutterFlag",18,"KneeEnd2")
//CPFH B 1 //A_CheckFloor("KneeEnd") //L Cancelling removed.
//CPFH B 0 A_GiveInventory("CutterFlag",1)
//Loop
KneeEnd:
CPFH A 0 A_TakeInventory("FalconKneeAnim",1)
CPFH A 0 A_TakeInventory("CutterFlag",999)
CPFH A 6 Offset(0,82)
CPFH A 4 Offset(0,70)
CPFH A 4 Offset(0,58)
CPFH A 4 Offset(0,46)
CPFH A 2 Offset(0,32)
CPFH A 10
GoTo Ready+1
KneeEnd2:
CPFH A 0 A_TakeInventory("FalconKneeAnim",1)
CPFH N 15 A_TakeInventory("CutterFlag",999)
GoTo Ready+1

Altfire:
CPFH A 0 A_JumpIfInventory("BossRageCharge",500,"Kill")
CPFH E 0 A_PlaySoundEx("cf/falcon","SoundSlot1")
CPFH E 0 A_PlaySoundEx("cf/flcnchrg","SoundSlot2")
CPFH E 0 A_GiveInventory("FalconChargeAnim",1)
CPFH M 12
Charge:
CPFH E 0 A_JumpIfInventory("FalconCharge",10,"Charge2")
CPFH E 0 A_SpawnItemEx("CFPChargeFX1",-2,21,29)
CPFH E 1 A_GiveInventory("FalconCharge",1)
CPFH E 0 A_Refire("Charge")
CPFH E 0 A_TakeInventory("FalconChargeAnim",1)
CPFH E 0 A_TakeInventory("FalconCharge",999)
CPFH A 3 A_GiveInventory("FalconEndAnim",1)
CPFH A 0 A_TakeInventory("FalconEndAnim",1)
GoTo Ready+1
Charge2:
CPFH D 0 A_JumpIfInventory("FalconCharge",25,"Charge3")
CPFH D 0 A_SpawnItemEx("CFPChargeFX2",-2,21,29)
CPFH D 1 A_GiveInventory("FalconCharge",1)
CPFH D 0 A_Refire("Charge2")
CPFH D 0 A_TakeInventory("FalconChargeAnim",1)
CPFH D 0 A_TakeInventory("FalconCharge",999)
CPFH A 3 A_GiveInventory("FalconEndAnim",1)
CPFH A 0 A_TakeInventory("FalconEndAnim",1)
GoTo Ready+1
Charge3:
CPFH D 0 A_SpawnItemEx("CFPChargeFX2",-2,21,29)
CPFH D 0 A_GiveInventory("BossJumpCharge",1)
CPFH D 0 ACS_ExecuteAlways(191,0,APROP_Speed,45,100)//A_GiveInventory("CFSlowDown",1)
CPFH D 1 A_WeaponReady(WRF_NOSWITCH|WRF_NOSECONDARY)
CPFH O 0 A_SpawnItemEx("CFPChargeFX2",-2,21,29)
CPFH O 1 A_WeaponReady(WRF_NOSWITCH|WRF_NOSECONDARY)
CPFH D 0 A_GiveInventory("CutterFlag",1)
CPFH D 0 A_JumpIfInventory("CutterFlag",15,"Charge3bStart")
CPFH D 0 A_Refire("Charge3")
GoTo FalconPunch
Charge3bStart:
CPFH D 0 A_TakeInventory("CutterFlag",20)
CPFH D 0 
Charge3b:
CPFH D 0 A_SpawnItemEx("CFPChargeFX2",-2,21,29)
CPFH D 0 A_GiveInventory("BossJumpCharge",1)
CPFH D 0 //A_GiveInventory("CFSlowDown",1)
CPFH D 1 A_WeaponReady(WRF_NOSWITCH|WRF_NOSECONDARY)
CPFH O 0 A_SpawnItemEx("CFPChargeFX2",-2,21,29)
CPFH O 1 A_WeaponReady(WRF_NOSWITCH|WRF_NOSECONDARY)
CPFH D 0 A_Refire("Charge3b")
GoTo FalconPunch

FalconPunch:
CPFH E 0 A_TakeInventory("CutterFlag",5)
CPFH E 0 ACS_ExecuteAlways(191,0,APROP_Speed,1,1)
CPFH E 0 A_GiveInventory("FalconPunchAnim",1)
CPFH E 0 A_TakeInventory("FalconChargeAnim",1)
CPFH E 0 A_TakeInventory("FalconCharge",999)
CPFH E 0 A_PlaySoundEx("cf/pawnch","SoundSlot1")
CPFH E 0 A_PlaySoundEx("cf/flcnsnd","SoundSlot2")
CPFH E 0 A_PlaySoundEx("cf/flcnpnch","SoundSlot3")
CPFH E 0 A_FireCustomMissile("CFFalconPunch",0,0,8,-6)
CPFH E 0 A_FireCustomMissile("FPunchDamager",0,1,8,-6)
CPFH E 0 A_FireCustomMissile("FPunchDamager",0,1,0,-6)
CPFH E 0 A_FireCustomMissile("FPunchDamager",0,1,-8,-6)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",4,0,12,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",7,0,0,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",4,0,-12,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",2,0,24,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",2,0,38,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",16,0,33,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",24,0,33,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",-6,15,18,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",-12,30,24,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",-18,45,30,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",-24,60,36,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",-30,75,42,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",-6,-15,18,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",-12,-30,24,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",-18,-45,30,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",-24,-60,36,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",-30,-75,42,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",-13,0,-10,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",-26,0,-6,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",-6,16,-19,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",-16,24,-28,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",-6,-16,-19,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("FPunchDamager",-16,-24,-28,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
CPFH E 23 A_Recoil(-3)
CPFH D 18 A_TakeInventory("FalconPunchAnim",1)
CPFH D 0 A_TakeInventory("FalconEndAnim",1)
CPFH C 0 ACS_ExecuteAlways(191,0,APROP_Speed,1,1)
GoTo Ready+1

FalconKick:
CPFH C 0 A_TakeInventory("CutterFlag",5)
CPFH C 0 ACS_ExecuteAlways(191,0,APROP_Speed,1,1)
CPFH C 0 A_GiveInventory("FalconKickAnim",1)
CPFH C 0 A_TakeInventory("FalconChargeAnim",1)
CPFH C 0 A_TakeInventory("FalconCharge",999)
CPFH C 0 SetPlayerProperty(0,1,4)
CPFH C 0 SetPlayerProperty(0,1,3)
CPFH C 0 A_ScaleVelocity(0.75)
CPFH C 0 A_PlaySoundEx("cf/flcnkick","Voice")
CPFH C 0 A_PlaySoundEx("cf/kick","Weapon")
CPFH C 0 A_Recoil(-45)
CPFH C 0 A_TakeInventory("UnSolid",1)
CPFH C 0 A_ChangeFlag("SOLID",0)
CPFH C 0 A_GiveInventory("Nudge",1)
FalconKickLoop:
CPFH C 0 A_JumpIfInventory("CutterFlag",8,"FalconKickEnd")
CPFH C 0 A_SpawnItemEx("CFKickFX",-15,20,20)
CPFH C 0 A_SpawnItemEx("CFKickFX",-15,10,15)
CPFH C 0 A_SpawnItemEx("CFKickFX",-15,0,10)
CPFH C 0 A_SpawnItemEx("CFKickFX",-15,-10,15)
CPFH C 0 A_SpawnItemEx("CFKickFX",-15,-20,20)
CPFH C 1 A_FireCustomMissile("CFFalconKick",0,0,0,0)
CPFH C 0 A_GiveInventory("CutterFlag",1)
loop
FalconKickEnd:
CPFH C 0 A_TakeInventory("FalconKickAnim",1)
CPFH C 0 SetPlayerProperty(0,0,4)
CPFH C 0 SetPlayerProperty(0,0,3)
CPFH C 0 A_ScaleVelocity(1.0)
CPFH C 0 A_SpawnItemEx("ReSolidifier")
CPFH C 0 A_TakeInventory("CutterFlag",999)
CPFH CBB 8
CPFH C 0 A_TakeInventory("FalconEndAnim",1)
CPFH C 0 ACS_ExecuteAlways(191,0,APROP_Speed,1,1)
GoTo Ready+1

Kill:
/*
SXH4 A 0 A_PlaySoundEx("Falcon/Rage1","Item")
SXH4 A 0 A_GiveInventory("CutterFlag", 1)
SXH4 A 0 A_TakeInventory("BossRageCharge",500)
SXH4 A 0 SetPlayerProperty(0,1,0)
SXH4 D 26
SXH4 A 0 A_TakeInventory("CutterFlag", 999)
SXH4 A 0 A_GiveInventory("DrillFlag", 1)
SXH4 D 0 A_PlaySoundEx("Falcon/Rage2","Item")
SXH4 D 0 A_PlaySoundEx("Falcon/Punch","Weapon")
SXH4 D 1 A_FireCustomMissile("FalconPunch",0,1,0,0)
SXH4 E 16
SXH4 D 17
SXH4 A 0 A_TakeInventory("DrillFlag", 999)
SXH4 A 5
SXH4 A 0 SetPlayerProperty(0,0,0)
goto Ready+1*/
CPFH A 0 A_JumpIfInventory("BossRageCharge",500,"Rage")
CPFH A 1
Goto Ready+1
Rage:
CPFH A 1 Offset(0,32)
CPFH A 1 Offset(0,46)
CPFH A 1 Offset(0,58)
CPFH A 1 Offset(0,70)
CPFH A 1 Offset(0,82)
TNT1 A 0 A_PlaySoundEx("cf/bluefalconFS","Voice")
TNT1 A 0 A_PlaySoundEx("cf/blueflcn","Weapon")
TNT1 A 0 A_ChangeFlag("SHOOTABLE",0)
//TNT1 A 0 A_TakeInventory("UnSolid",1)
//TNT1 A 0 A_ChangeFlag("SOLID",0)
TNT1 A 0 A_GiveInventory("Nudge",1)
TNT1 A 0 A_TakeInventory("BossRageCharge",9999)
TNT1 A 0 A_GiveInventory("BlueFalconFlag",1)
TNT1 A 0 A_GiveInventory("BlueFalconAmmo",27)
RageLoop:
TNT1 A 0 A_SpawnItemEx("BlueFalconFX",-15,-24,16,0,0,0,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("BlueFalconFX",-15,24,16,0,0,0,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("BlueFalconFX",-15,-21,35,0,0,0,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("BlueFalconFX",-15,21,35,0,0,0,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_TakeInventory("BlueFalconAmmo",1)
TNT1 A 2 A_FireCustomMissile("BlueFalconAttack",0,0,0,0,SXF_NOCHECKPOSITION)
TNT1 A 2 A_FireCustomMissile("BlueFalconAttack",0,0,0,0,SXF_NOCHECKPOSITION)
TNT1 A 0 A_Recoil(-6)
TNT1 A 0 A_JumpIfInventory("BlueFalconAmmo",1,"RageLoop")
RageEnd:
TNT1 A 0 A_PlaySoundEx("cf/bfleave","Voice")
TNT1 A 0 A_PlaySoundEx("cf/bluefalconend","SoundSlot8")
TNT1 A 0 A_TakeInventory("BlueFalconAmmo",999)
TNT1 A 0 A_TakeInventory("BlueFalconFlag",1)
TNT1 A 0 A_ChangeFlag("SHOOTABLE",1)
//TNT1 A 0 A_SpawnItemEx("ReSolidifier")
TNT1 A 0 A_Stop
TNT1 A 0 A_SpawnItemEx("BlueFalconShot")
CPFH A 1 Offset(0,82)
CPFH A 1 Offset(0,70)
CPFH A 1 Offset(0,58)
CPFH A 1 Offset(0,46)
CPFH A 1 Offset(0,32)
Goto Ready+1
NoAmmo:
SXH4 A 1 ACS_Execute(979,0)
SXH4 A 0 A_Refire
goto Ready+1
}
}

actor CFSlowDown : PowerupGiver
{
Speed 0.67
powerup.duration 225
powerup.type "CFSlowMover"
+INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP
states
{
Pickup:
TNT1 A 0 
TNT1 A 225
stop
}
}

actor PowerCFSlowMover : PowerSpeed
{
Speed 0.45
}

actor CFalconJab
{
PROJECTILE
+THRUGHOST
damagetype "FalconJab"
Obituary "$OB_FALCONJAB"
Speed 50
Damage (8)
Radius 15
Height 15
scale 1.75
States
{
Spawn:
TNT1 A 0
TNT1 A 2
Death:
HARD CDE 2 A_Stop
stop
}
}

actor CFalconJab2 : CFalconJab
{
Obituary "$OB_FINISHINGBLOW"
Damage (35)
Speed 25
Radius 30
Height 30
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 2
Death:
TNT1 A 0 A_Stop
HARD C 0 ThrustThingZ(0,15,0,1)
HARD C 1 A_SpawnItemEx("CFalconJabFX",0,0,0,0,0,0,0)
HARD C 0 ThrustThingZ(0,15,0,1)
HARD C 1 A_SpawnItemEx("CFalconJabFX",0,0,0,0,0,0,0)
HARD D 0 ThrustThingZ(0,15,0,1)
HARD D 1 A_SpawnItemEx("CFalconJabFX",0,0,0,0,0,0,0)
HARD D 0 ThrustThingZ(0,15,0,1)
HARD D 1 A_SpawnItemEx("CFalconJabFX",0,0,0,0,0,0,0)
HARD E 0 ThrustThingZ(0,15,0,1)
HARD E 1 A_SpawnItemEx("CFalconJabFX",0,0,0,0,0,0,0)
HARD E 0 ThrustThingZ(0,15,0,1)
HARD E 1 A_SpawnItemEx("CFalconJabFX",0,0,0,0,0,0,0)
stop
}
}

actor CFalconJabFX : HardKnuckleFX
{
Radius 1
Height 1
scale 2
States
{
Spawn:
TNT1 A 0
HARD CDE 2 A_Fadeout
wait
}
}

Actor CFLightningKnee : ChargeKick
{
translation "192:192=196:196"
+THRUGHOST
+NOTARGETSWITCH
Radius 10
Height 10
Speed 55
Scale 7
Damage (80)
DamageType "Knee"
Obituary "$OB_FALCONKNEE1"
States
{
Spawn:
TNT1 A 0
TNT1 A 1
Death:
LNKN A 0 A_Stop
LNKN AB 2 A_Fadeout(0.2)
loop
XDeath:
TNT1 A 0 A_PlaySoundEx("weapon/lightningbolt","Weapon")
TNT1 A 0 A_SpawnItemEx("CFLightningFX")
goto Death
}
}

Actor CFJusticeKnee : CFLightningKnee
{
+THRUGHOST
Speed 60
Radius 25
Height 25
Damage (65)
DamageType "NormalKnee"
Obituary "$OB_FALCONKNEE2"
States
{
Spawn:
TNT1 A 0
TNT1 A 2
Stop
Death:
XDeath:
TNT1 A 0 A_GiveToTarget("CutterFlag",18)
Stop
}
}

Actor CFLightningFX : LightningStartFX1
{
+CLIENTSIDEONLY
States
{
Spawn:
TNT1 A 0
LBFX DEFGHIJ 2
Stop
}
}

Actor CFFalconPunch : ChargeKick
{
+THRUGHOST
+NOINTERACTION
+THRUACTORS
+NOCLIP
+DONTREFLECT
+DONTBLAST
Speed 45
reactiontime 3
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("CFFalconFX",4,0,12,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX",7,0,0,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX",4,0,-12,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX2",2,0,24,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX2",2,0,38,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX4",16,0,33,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX5",24,0,33,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX",-6,15,18,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX",-12,30,24,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX",-18,45,30,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX",-24,60,36,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX",-30,75,42,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX",-6,-15,18,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX",-12,-30,24,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX",-18,-45,30,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX",-24,-60,36,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX",-30,-75,42,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX3",-13,0,-10,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX3",-26,0,-6,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX3",-6,16,-19,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX3",-16,24,-28,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX3",-6,-16,-19,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_SpawnItemEx("CFFalconFX3",-16,-24,-28,MomX,MomY,MomZ,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 1 A_Countdown
loop
Death:
TNT1 A 0
Stop
}
}

Actor FPunchDamager : CFFalconPunch
{
-THRUGHOST
-NOINTERACTION
-THRUACTORS
+RIPPER
Speed 45
Radius 60
Height 60
Damage (50)
DamageType "FalconPunch"
Obituary "$OB_FALCONPUNCH"
reactiontime 2
States
{
Spawn:
TNT1 A 0
TNT1 A 1
TNT1 A 0 A_ChangeFlag("NOCLIP",0)
TNT1 A 1 A_Countdown
goto Spawn+2
}
}

Actor CFFalconFX : LightningStartFX1
{
translation "229:229=229:229", "210:210=210:210"
Scale 2.5
+NOCLIP
States
{
Spawn:
FIRE AABBCC 1 A_FadeOut(0.15)
Wait
}
}

Actor CFFalconFX2 : CFFalconFX {Scale 2.0}
Actor CFFalconFX3 : CFFalconFX {Scale 1.5}
Actor CFFalconFX4 : CFFalconFX {Scale 1.0}
Actor CFFalconFX5 : CFFalconFX {Scale 0.5}

Actor CFFalconKick
{
PROJECTILE
translation "229:255=218:218", "0:227=42:42"
speed 60
Damage (30)
Radius 32
Height 32
DamageType "FalconKick"
Obituary "$OB_FALCONKICK"
States
{
Spawn:
TNT1 A 0
TNT1 A 1
Death:
FIRE AABBCC 2 A_Fadeout(0.5)
loop
}
}

Actor CFKickFX : LightningStartFX1
{
translation "229:255=218:218", "0:227=42:42"
renderstyle Translucent
alpha 0.8
+RIPPER
Radius 8
Height 8
Damage (12)
scale 1.5
States
{
Spawn:
Death:
FSWD DEF 2 A_FadeOut(0.35)
Wait
}
}

Actor CFPChargeFX1 : LightningStartFX1
{
+CLIENTSIDEONLY
Alpha 0.7
RenderStyle Translucent
Translation "0:255=218:218"
States
{
Spawn:
MMFX D 2
Stop
}
}

Actor CFPChargeFX2 : CFPChargeFX1
{
States
{
Spawn:
MMFX C 2
Stop
}
}

Actor CFPChargeFX3 : CFPChargeFX1
{
States
{
Spawn:
MMFX B 2
Stop
}
}

Actor FalconPunchAnim : Inventory {Inventory.MaxAmount 1}
Actor FalconKickAnim : Inventory {Inventory.MaxAmount 1}
Actor FalconKneeAnim : Inventory {Inventory.MaxAmount 1}
Actor FalconChargeAnim : Inventory {Inventory.MaxAmount 1}
Actor FalconEndAnim : Inventory {Inventory.MaxAmount 1}

Actor KneeProtection : PowerProtection
{
PowerUp.Duration 12
DamageFactor "Knee", 0.0
DamageFactor "NormalKnee", 0.0
}

Actor KickProtection : PowerProtection
{
PowerUp.Duration 18
DamageFactor "FalconKick", 0.0
}

Actor PunchProtection : PowerProtection
{
PowerUp.Duration 18
DamageFactor "FalconPunch", 0.0
}

actor FalconCharge : Inventory
{
inventory.amount 1
inventory.maxamount 25
}



// Rage //

actor BlueFalconWarper : BaseShieldWarper
{
translation "192:192=197:197", "198:198=199:199"
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("core_shieldwarper", 0, 1)
TNT1 A 0 A_Jump(256, "Shield")
Goto Shield
Shield:
TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Death")
BLFC FFFFF 1 A_Warp(AAPTR_TARGET, 0, 0, -2, 0, WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
stop
Death:
TNT1 A 0
stop
}
}

actor BlueFalconFX
{
+NOINTERACTION
+NOGRAVITY
+CLIENTSIDEONLY
+FORCEXYBILLBOARD
-SOLID
scale 2.5
height 1
radius 1
States
{
Spawn:
TNT1 A 0
BFFX ABC 2
stop
}
}

Actor BlueFalconAttack : ChargeKick
{
+THRUGHOST
+NOINTERACTION
Speed 30
Radius 5
Height 5
Damage (0)
DamageType "BlueFalcon"
Obituary "%o was ran over by \c[FALCON]Captain Falcon \c-(%k)'s \chBlue Falcon\c-."
States
{
Spawn:
TNT1 A 0
TNT1 AA 1 A_Explode(6,64,0,0,64)
stop
}
}

actor BlueFalconShot : GeminiTrail
{
translation "192:192=197:197", "198:198=199:199"
States
{
Spawn:
TNT1 A 0
BLFC FFFFF 1 A_Recoil(-4)
Death:
BLFC F 0 A_ChangeFlag("NOGRAVITY",0)
BLFC F 1 A_Fadeout
wait
}
}

Actor BlueFalconFlag : Inventory {Inventory.MaxAmount 1}
Actor BlueFalconAmmo : Inventory {Inventory.MaxAmount 27}