//Centaur Flash victims now have a 60% damage protection
actor Centaurman : VCBaseClass
{
	Player.ScoreIcon "CENTMUGS"
	player.startitem "BaseFlagPack", 1
	player.startitem "NormalArmor"
	player.soundclass "centaurmanc"
	Player.ViewHeight 77
	projectilepassheight 99
	player.forwardmove 0.9, 0.9
	player.sidemove 0.88, 0.88
	player.displayname "Centaurman"
	player.startitem "CentaurFlashBoss"
	player.startitem "BaseAltfireAmmo", 56
	player.startitem "Base112Ammo", 112
	player.startitem "UltimateAttackItem3", 1
	player.startitem "UltSoundWatcherSpawn3"
	player.startitem "IsFromMM6"
	States
	{
		Animation5:
		Spawn:
		CENT A 0
		CENT B 1 A_JumpIf(z-floorz>0, "Jumping")
		CENT A 1 A_JumpIf(z-floorz>0, "Jumping")
		Goto Spawn+2
		
		Spawn.Glaive:
		NC3N A 1 A_JumpIf(momx>0.1||momy>0.1||momx<-0.1||momy<-0.1,"See.Glaive")
		goto Spawn.Glaive
		
		See:
		CENT M 0 A_JumpIfInventory("BaseCustomFlag2",1,"See.Glaive")
		CENT B 0 A_JumpIfInventory("BaseCustomFlag1",1,2)
		CENT B 0 A_PlaySoundEx("weapon/centaurwalk","Body")
		CENT BBBBCCCCDDDDEEEE 1 A_JumpIf(z-floorz>0, "Jumping")
		goto Spawn

		See.Glaive:
		NC3N B 0 A_PlaySoundEx("weapon/centaurwalk","Body")
		NC3N BACA 4
		goto Spawn.Glaive
		
		Jumping:
		CENT I 1 A_JumpIf(momz<1,"Falling")
		wait

		Falling:
		CENT J 1 A_JumpIf(z-floorz<=0, "Spawn")
		wait

		Missile:
		CENT M 0 A_JumpIfInventory("BaseCustomFlag2",1,"Missile.Glaive")
		//CENT M 0 A_JumpIfInventory("CentaurOverchargeFlag",1,"Missile2")
		CENT MMMMMMMMMMMMMM 1 A_JumpIf(z-floorz>0, "JumpingMissile")
		goto Spawn+1

		JumpingMissile:
		//CENT N 0 A_JumpIfInventory("CentaurOverchargeFlag",1,"Missile2")
		CENT NNNNNNNN 1 A_JumpIf(momz<1,"FallingMissile")
		goto Jumping

		FallingMissile:
		//CENT O 0 A_JumpIfInventory("CentaurOverchargeFlag",1,"Missile2")
		CENT OOOOOOOO 1 A_JumpIf(z-floorz<=0, "Missile")
		goto Falling
		
		Animation6:
		Missile2:
		CENT GGGGGGGGGG 1 A_JumpIf(z-floorz>0, "JumpingMissile2")
		goto Spawn+1
		
		Animation1:
		CENT B 3
		CENT F 13
		goto Spawn+1
		
		Animation2:
		CENT BCDCB 3
		CENT F 21
		NC3N A 1
		goto Spawn.Glaive
		
		JumpingMissile2:
		CENT KKKKKK 1 A_JumpIf(momz<1,"FallingMissile2")
		goto Jumping

		FallingMissile2:
		CENT LLLLLL 1 A_JumpIf(z-floorz<=0, "Missile2")
		goto Falling
		
		Missile.Glaive:
		NC3N HIJJJ 2
		goto Spawn.Glaive
		
		Animation3:
		NC3N DDDEFFFF 2
		goto Spawn.Glaive
		
		Animation4:
		NC3N K 18
		goto Spawn.Glaive
		
		ClassTimeStop:
		PLAY A 0 SetPlayerProperty(0,1,4)
		PLAY A 0 ACS_Execute(528,0)
		CENT AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Stop
		PLAY A 0 SetPlayerProperty(0,0,4)
		Goto pain+1
		ClassPain:
		CENT H 0 A_JumpIfInventory("BaseCustomFlag2",1,"ClassPain.Glaive")
		CENT HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
		Goto Spawn+1
		ClassPain.Glaive:
		NC3N GGGGGGGGGG 2 A_SpawnItem("PainFX",0,3)
		Goto Spawn+1
		ClassDeath:
		CENT H 20 ACS_ExecuteAlways(999,0,0)
		CENT H 0 A_PlayerScream
		NOFX A 0 A_SpawnItemEx("FakeDeathFX",0,0,32)
		NOFX A 1 A_CheckPlayerDone
		wait
		ClassIceDeath:
		CENT A 35
		NOFX A 0 A_SpawnItemEx("FrozenDeathFX",0,0,16)
		NOFX A 1 A_CheckPlayerDone
		wait
		WeaponGetM:
		CUTM H 0 A_JumpIfInTargetInventory("CentaurFlashWepM",1,2)
		CUTM H 0 A_GiveToTarget("WeaponGetter")
		CUTM H 0 A_GiveToTarget("CentaurFlashWepM")
		goto ClassDeath
	}
}

actor CentaurFlashBoss : VCBaseWeapon
{
	Weapon.AmmoType "Base112Ammo"
	Weapon.AmmoType2 "BaseAltfireAmmo"
	Weapon.ammouse 16
	Obituary "$OB_CENTAURMAN1"
	States
	{
		Ready.Pre:
		CENH A 0 ACS_NamedExecuteWithResult("VC_SetState",5)
		TNT1 A 0 A_TakeInventory("HalfHalfDamageProtection",1)
		
		Ready:
		TNT1 A 0
		CENH A 0 A_JumpIfInventory("BaseCustomFlag2",1,"Ready.Glaive")
		CENH A 0 A_JumpIfInventory("BaseAltfireAmmo",112,"Ready.CanThird")
		CENH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2.16)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,112)) CENH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		CENH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,16)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,112)) CENH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		CENH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,16)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,112)) CENH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		CENH A 0 A_GiveInventory("Base112Ammo",4)
		CENH A 0 A_GiveInventory("BaseAltfireAmmo",2)
		goto Ready
		
		Ready.CanThird:
		CENH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,16)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,112)) CENH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") CENH A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
		CENH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,16)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,112)) CENH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") CENH A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
		CENH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,16)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,112)) CENH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") CENH A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
		CENH A 0 A_GiveInventory("Base112Ammo",4)
		goto Ready
		
		Ready.Invis:
		CENH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,16)|WRF_NOSECONDARY)
		CENH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,16)|WRF_NOSECONDARY)
		CENH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,16)|WRF_NOSECONDARY)
		CENH A 0 A_GiveInventory("Base112Ammo",4)
		CENH A 0 A_JumpIfInventory("BaseAltfireAmmo",1,"Ready.Invis")
		CENH A 0 A_GiveInventory("CentInvisCancel")
		goto Ready
		
		Ready.Glaive:
		NC3H G 1 A_WeaponReady CENH A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"Headbutt")
		NC3H G 0 A_JumpIfInventory("BaseCustomFlag2",1,"Ready.Glaive")
		goto Ready.Pre
		
		Deselect:
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
		CENH A 1 A_Lower
		Loop
		
		Select:
		TNT1 A 0 ACS_ExecuteAlways(991,0,821)
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
		CENH A 1 A_Raise
		Loop
		
		User1:
		CENH A 0 A_PlaySoundEx("weapon/centaurvanish","Auto")
		CENH A 0 A_GiveInventory("BaseCustomFlag1")
		CENH A 1 A_GiveInventory("ShadowInvisible")
		CENH A 1 A_GiveInventory("ShadowVisible")
		CENH A 0 A_GiveInventory("CutterFlag",1)
		CENH A 0 A_JumpIfInventory("CutterFlag",9,1)
		goto User1+1
		CENH A 0 A_GunFlash
		CENH A 0 A_GiveInventory("ShadowInvisible")
		CENH A 0 A_TakeInventory("CutterFlag",9)
		CENH A 0 A_ChangeFlag("INVULNERABLE",1)
		CENH A 0 A_GiveInventory("InvProtection",1)
		TNT1 A 0 A_TakeInventory("UnSolid",1)
		TNT1 A 0 A_ChangeFlag("SOLID",0)
		DRIA B 0 A_ChangeFlag("THRUSPECIES",1)
		goto Ready.Invis
		
		Fire:
		CENH A 0 A_JumpIfInventory("BaseCustomFlag2",1,"Fire.Glaive")
		CENH IJKL 2 A_GiveInventory("CentaurInvisAmmoCheck")
		
		Hold:
		TNT1 A 0 A_GiveInventory("CentaurInvisAmmoCheck")
		TOAD A 0 A_GiveInventory("ToadChargeDamageGive")
		CENH L 1 A_GiveInventory("CentaurCharge",1)
		CENH L 1 A_GiveInventory("CentaurCharge",1)
		CENH L 0 A_JumpIfInventory("CentaurCharge",0,"Hold2Start")
		CENH L 0 A_Refire
		
		Fire1:
		CENH M 0 A_GiveInventory("CentaurM1Handler")
		TOAD A 0 A_GiveInventory("ToadChargeDamageTake")
		CENH M 1 Offset(4,38) 
		CENH M 1 Offset(8,44) A_GiveInventory("CentaurInvisAmmoCheck")
		CENH M 1 Offset(12,50)
		CENH M 1 Offset(16,56) A_GiveInventory("CentaurInvisAmmoCheck")
		CENH M 1 Offset(12,50)
		CENH M 1 Offset(8,44) A_GiveInventory("CentaurInvisAmmoCheck")
		CENH M 1 Offset(4,38)
		CENH M 0 A_WeaponReady(WRF_NOFIRE)
		CENH MMAA 2 A_GiveInventory("CentaurInvisAmmoCheck")
		goto Ready
		
		Hold2Start:
		CENH L 0 A_GiveInventory("CentaurChargeHandler")
		CENH L 0 A_GiveInventory("DrillFlag")
		
		Hold2:
		CENH L 0 A_GiveInventory("CentaurInvisSparkleCheck")
		CENH L 0 A_GiveInventory("CentaurInvisAmmoCheck")
		CENH L 1 Offset(1,0) A_TakeInventory("CentaurCharge",1)
		CENH L 1 Offset(-1,0) A_TakeInventory("CentaurCharge",1)
		CENH L 0 A_JumpIfInventory("CentaurCharge",1,1)
		goto Hold3
		TNT1 A 0 A_Refire("Hold2")
		goto Fire1
		
		Hold3:
		TNT1 A 0 A_GiveInventory("CentaurInvisAmmoCheck")
		TNT1 A 0 A_GiveInventory("RightClickFlag",1)
		CENH L 0 A_JumpIf(CallACS("VC_CheckBtn",4)==7,"Fire2")
		CENH L 1 Offset(2,0) A_GiveInventory("CentaurOverchargeFlag")
		CENH L 0 A_JumpIf(CallACS("VC_CheckBtn",4)==7,"Fire2")
		CENH L 1 Offset(-2,0) A_GiveInventory("CentaurOverchargeFlag")
		CENH A 0 A_Refire("Hold3")
		goto Fire1
		
		Fire2:
		CENH B 0 A_GiveInventory("CentaurM1Handler2")
		TOAD A 0 A_GiveInventory("ToadChargeDamageTake")
		CENH A 0 A_WeaponReady(WRF_NOFIRE)
		CENH B 1 Offset(4,38)
		CENH B 1 Offset(8,44) A_GiveInventory("CentaurInvisAmmoCheck")
		CENH P 1 Offset(12,50)
		CENH P 1 Offset(16,56) A_GiveInventory("CentaurInvisAmmoCheck")
		CENH P 1 Offset(12,50)
		CENH B 1 Offset(8,44) A_GiveInventory("CentaurInvisAmmoCheck")
		CENH B 1 Offset(4,38) A_ClearRefire
		CENH A 0 A_WeaponReady(WRF_NOFIRE)
		CENH AA 2 A_GiveInventory("CentaurInvisAmmoCheck")
		goto Ready
		
		Fire.Glaive:
		NC3H PO 1
		NC3H A 0 A_PlaySoundEx("weapon/centaurstab","Weapon")
		NC3H A 0 A_FireCustomMissile("CentaurStab",0,0,0,12)
		NC3H NOPPPPPPPPP 1
		NC3H G 0 A_JumpIfInventory("BaseCustomFlag2",1,"Ready.Glaive")
		goto Ready.Pre
		
		Altfire:
		RATU A 0 A_JumpIfInventory("NoAltfire",1,"Ready")
		CENH A 0 A_JumpIfInventory("BaseCustomFlag2",1,"Altfire.Glaive")
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
		CENH CDE 1
		TNT1 A 0 A_GiveInventory("CentaurM2Handler",1)
		CENH FGHFGHFGHEDC 1
		goto Ready
		
		Altfire.Glaive:
		TNT1 A 0 A_PlaySoundEx("weapon/chargekick","Weapon")
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",3)
		NC3H H 0 A_Recoil(-50)
		NC3H H 1 Offset(30,0) A_Recoil(-3) TNT1 A 0 A_SpawnItemEx("CentaurChopHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		NC3H H 1 Offset(60,0) A_Recoil(-3) TNT1 A 0 A_SpawnItemEx("CentaurChopHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		NC3H H 1 Offset(90,0) A_Recoil(-3) TNT1 A 0 A_SpawnItemEx("CentaurChopHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		NC3H H 1 Offset(120,0) A_Recoil(-3) TNT1 A 0 A_SpawnItemEx("CentaurChopHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		NC3H H 1 Offset(150,0) A_Recoil(-3) TNT1 A 0 A_SpawnItemEx("CentaurChopHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		NC3H I 0 A_WeaponReady(WRF_NOFIRE)
		NC3H I 1 A_Recoil(-3) TNT1 A 0 A_SpawnItemEx("CentaurChopHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		TNT1 A 0 A_PlaySoundEx("weapon/centaurchop","Body")
		NC3H JKL 1 A_SpawnItemEx("CentaurChopHitbox")
		NC3H M 1 Offset(-2,0) A_SpawnItemEx("CentaurChopHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		NC3H M 1 Offset(2,0) A_SpawnItemEx("CentaurChopHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		NC3H M 1 Offset(-2,0) A_SpawnItemEx("CentaurChopHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		NC3H M 1 Offset(2,0) A_SpawnItemEx("CentaurChopHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		NC3H M 1 Offset(-2,0) A_SpawnItemEx("CentaurChopHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		NC3H M 1 Offset(2,0) A_SpawnItemEx("CentaurChopHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		NC3H M 10 A_WeaponReady(WRF_NOFIRE)
		NC3H G 0 A_JumpIfInventory("BaseCustomFlag2",1,"Ready.Glaive")
		goto Ready.Pre
		
		Headbutt:
		NC3H G 1 Offset(0,96) A_PlaySoundEx("weapon/photonmissilearm","Weapon")
		NC3H G 1 Offset(0,160)
		NC3H G 1 Offset(0,224)
		TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",4)
		CENH N 1 Offset(0,-33) A_Recoil(-40)
		CENH N 1 Offset(0,-1) A_Recoil(-20)
		CENH N 0 A_PlaySoundEx("weapon/tengudash","Body")
		CENH NNNNNNNN 1 Offset(0,31) A_SpawnItemEx("CentaurDashHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		CENH N 1 Offset(0,31)
		CENH N 1 Offset(0,-1)
		CENH N 1 Offset(0,-33)
		TNT1 A 1
		NC3H G 1 Offset(0,224)
		NC3H G 1 Offset(0,160)
		NC3H G 1 Offset(0,96)
		NC3H G 12 A_WeaponReady(WRF_NOFIRE)
		NC3H G 0 A_JumpIfInventory("BaseCustomFlag2",1,"Ready.Glaive")
		goto Ready.Pre
		
		Flash:
		TNT1 AAA 1 A_JumpIfInventory("CentInvisCancel",1,"Flash.Uncloak")
		TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",3)
		TNT1 A 0 A_JumpIfInventory("BaseAltfireAmmo",1,"Flash")
		goto Flash.Uncloak
		
		Flash.Uncloak:
		CENH A 0 A_PlaySoundEx("weapon/centauruncloak","Auto")
		CENH A 1 A_GiveInventory("ShadowVisible")
		CENH A 1 A_GiveInventory("ShadowInvisible")
		CENH A 0 A_GiveInventory("CutterFlag",1)
		CENH A 0 A_JumpIfInventory("CutterFlag",9,1)
		goto Flash.Uncloak+1
		CENH A 0 A_GiveInventory("ShadowVisible")
		CENH A 0 A_JumpIfInventory("UltAttackFlag",1,"Flash.UncloakLast")
		CENH A 0 A_ChangeFlag("INVULNERABLE",0)
		CENH A 0 A_TakeInventory("InvProtection",1)
		
		Flash.UncloakLast:
		DRIA A 0 A_SpawnItemEx("ReSolidifier")
		TNT1 A 0 A_ChangeFlag("PICKUP",1)
		DRIA B 0 A_ChangeFlag("THRUSPECIES",0)
		TNT1 A 0 A_TakeInventory("BaseCustomFlag1")
		TNT1 A 0 A_TakeInventory("CutterFlag",999)
		TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",84)
		stop
		
		UltimateAttack:
		CENH A 2
		TNT1 A 0 A_GiveInventory("NoSpeed",1)
		TNT1 A 0 A_SetGravity(0.0)
		TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,51)
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
		TNT1 A 0 A_GiveInventory("WindUltCooldown",1)
		TNT1 A 0 A_ChangeFlag("INVULNERABLE",1)
		TNT1 A 0 A_GiveInventory("InvProtection",1)
		CUTA A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
		TNT1 A 0 A_SpawnItemEx("MM6UltFXSpawner",0,0,28)
		CENH AAAAAAAAAAAAAAAAAA 1 A_Stop
		WINB A 0 A_PlaySoundEx("mm6/ult","Auto")
		WINB A 0 A_SpawnItemEx("CentaurUltColorWatcher")
		TNT1 A 0 A_GiveInventory("WindUltCooldown",1)
		CENH OOOOAAAAAAOOOOAAAA 1 A_Stop
		TNT1 A 0 A_TakeInventory("NoSpeed",999)
		TNT1 A 0 A_GiveInventory("GravityRestore")
		TNT1 A 0 A_GiveInventory("WindUltCooldown",1)
		TNT1 A 0 A_TakeInventory("MediumUltimateAmmo",1)
		TNT1 A 0 A_ChangeFlag("INVULNERABLE",0)
		TNT1 A 0 A_TakeInventory("InvProtection",1)
		TNT1 A 0 A_PlaySoundEx("weapon/centaurform","Weapon")
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("CentaurArrowDust",random(24,36),0,40,random(3,8),0,random(-2,2),random(0,359))
		TNT1 A 0 A_GiveInventory("BaseCustomFlag2")
		TNT1 A 0 A_GiveInventory("HalfHalfDamageProtection",1)
		NC3H AABBCCDDEEFFGG 1 A_Stop
		TNT1 A 0 A_TakeInventory("MediumUltimateAmmo",70)
		NC3H A 0 A_TakeInventory("UltAttackFlag",1)
		NC3H A 0 A_GunFlash("Flash.Ult")
		goto Ready.Glaive
		
		Flash.Ult:
		TNT1 A 3 A_TakeInventory("MediumUltimateAmmo",1)
		TNT1 A 0 A_GiveInventory("WindUltCooldown",1)
		TNT1 A 0 A_JumpIfInventory("MediumUltimateAmmo",50,"Flash.Ult")
		
		Flash.Ult2:
		TNT1 A 2 A_TakeInventory("MediumUltimateAmmo",1)
		TNT1 A 0 A_GiveInventory("WindUltCooldown",1)
		TNT1 A 0 A_JumpIfInventory("MediumUltimateAmmo",1,"Flash.Ult2")
		
		NoFlash:
		TNT1 A 0 A_TakeInventory("BaseCustomFlag2")
		stop
	}
}

actor CentInvisCancel : Powerup
{
Powerup.Duration 8
}

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

actor CentaurOverchargeFlag : inventory
{
	inventory.amount 1
	inventory.maxamount 1
}

actor CentaurM1Handler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("RightClickFlag",1)
TNT1 A 0 A_GiveInventory("CentInvisCancel")
TNT1 A 0 A_JumpIfInventory("DrillFlag",1,"Pickup4")
TNT1 A 0 A_JumpIfInventory("CentaurCharge",60,"Pickup4")
TNT1 A 0 A_JumpIfInventory("CentaurCharge",40,"Pickup3")
TNT1 A 0 A_JumpIfInventory("CentaurCharge",20,"Pickup2")
goto Pickup1

Pickup1:
TNT1 A 0 A_PlaySoundEx("weapon/centaurarrow","Weapon")
TNT1 A 0 A_FireCustomMissile("CentaurManArrow1",0,1,0,32)
goto Finish

Pickup2:
TNT1 A 0 A_PlaySoundEx("weapon/centaurarrow","Weapon")
TNT1 A 0 A_FireCustomMissile("CentaurManArrow2",0,1,0,32)
goto Finish

Pickup3:
TNT1 A 0 A_PlaySoundEx("weapon/centaurarrow","Weapon")
TNT1 A 0 A_FireCustomMissile("CentaurManArrow3",0,1,0,32)
goto Finish

Pickup4:
TNT1 A 0 A_PlaySoundEx("weapon/centaurarrow","Weapon")
TNT1 A 0 A_TakeInventory("DrillFlag",999,1)
TNT1 A 0 A_JumpIfInventory("CentaurCharge",55,"Pickup5")
TNT1 A 0 A_FireCustomMissile("CentaurManArrow4",0,1,0,32)
goto Finish

Pickup5:
TNT1 A 0 A_PlaySoundEx("weapon/centaurarrow2","Auto")
TNT1 A 0 A_FireCustomMissile("CentaurManArrow5",0,1,0,32)
goto Finish

Finish:
TNT1 A 0 A_TakeInventory("CentaurOverchargeFlag",999,1)
TNT1 A 0 A_TakeInventory("CentaurCharge",99,1)
stop
}
}

actor CentaurManArrow1
{
PROJECTILE
Obituary "$OB_CENTAURMAN2"
Damage (15)
Height 8
Radius 8
damagetype "CentaurArrow1"
Scale 2.5
speed 50
gravity 0.6
-NOGRAVITY
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
CEAR AB 3
Goto Spawn+2
Death:
TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("CentaurArrowDust",random(0,8),0,random(-4,4),random(0,3),0,random(-2,2),random(0,359))
stop
}
}

actor CentaurManArrow2 : CentaurManArrow1
{
damagetype "CentaurArrow2"
speed 75
damage(18)
}

actor CentaurManArrow3 : CentaurManArrow1
{
damagetype "CentaurArrow3"
speed 100
damage(21)
}

actor CentaurManArrow4 : CentaurManArrow1
{
damagetype "CentaurArrow4"
speed 150
damage(30)
+NOGRAVITY
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
CEAR A 0 A_SpawnItemEx("CentaurArrowSound")
CEAR AAABBB 1 A_SpawnItemEx("CentaurArrowFX",random(0,8),0,random(-4,4),random(0,9),0,random(-2,2),random(0,359),1)
Goto Spawn+2
}
}

actor CentaurManArrow5 : CentaurManArrow4
{
damagetype "CentaurArrow5"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
CEAR A 0 A_SpawnItemEx("CentaurArrowSound")
CEAR AAABBB 1 A_SpawnItemEx("CentaurArrowFX2",random(0,8),0,random(-4,4),random(0,9),0,random(-2,2),random(0,359),1)
Goto Spawn+2
}
}

actor CentaurArrowSound : BasicClientSide
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/centaurarrowfly","Body")
stop
}
}

actor CentaurArrowDust : JewelShotFX
{
translation "204:204=[255,189,0]:[255,189,0]"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
JEWS UVW 5
stop
}
}

actor CentaurArrowFX : BasicClientSide
{
renderstyle add
scale 1.5
reactiontime 30
translation "192:192=4:4", "215:215=[255,189,0]:[255,189,0]"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
MMFX C 1 A_SetScale(scalex - 0.05, scaley - 0.05)
MMFX C 0 A_Countdown
goto Spawn+2
Death:
TNT1 A 0
stop
}
}

actor CentaurArrowFX2 : CentaurArrowFX
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
MMFX C 0 A_SpawnItemEx("CentaurArrowDust",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),0,0,128)
MMFX C 1 A_SetScale(scalex - 0.05, scaley - 0.05)
MMFX C 0 A_Countdown
goto Spawn+2
Death:
TNT1 A 0
stop
}
}

actor CentaurBuster
{
Obituary "$OB_CENTAURMAN1"
PROJECTILE
Damage (34)
speed 70
+RIPPER
damagetype "CentaurBuster"
Height 8
Radius 8
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
6ULT X 1 A_SpawnItemEx("CentaurBusterEcho",0,0,0,0,0,0,0,1)
Goto Spawn+2
Death:
TNT1 A 0 A_SpawnItemEx("CentaurSplit",24,0,0,20,0,0,0)
TNT1 A 0 A_SpawnItemEx("CentaurSplit",24,0,0,20,0,0,22.5)
TNT1 A 0 A_SpawnItemEx("CentaurSplit",24,0,0,20,0,0,45)
TNT1 A 0 A_SpawnItemEx("CentaurSplit",24,0,0,20,0,0,67.5)
TNT1 A 0 A_SpawnItemEx("CentaurSplit",24,0,0,20,0,0,90)
TNT1 A 0 A_SpawnItemEx("CentaurSplit",24,0,0,20,0,0,112.5)
TNT1 A 0 A_SpawnItemEx("CentaurSplit",24,0,0,20,0,0,135)
TNT1 A 0 A_SpawnItemEx("CentaurSplit",24,0,0,20,0,0,157.5)
TNT1 A 0 A_SpawnItemEx("CentaurSplit",24,0,0,20,0,0,180)
TNT1 A 0 A_SpawnItemEx("CentaurSplit",24,0,0,20,0,0,202.5)
TNT1 A 0 A_SpawnItemEx("CentaurSplit",24,0,0,20,0,0,225)
TNT1 A 0 A_SpawnItemEx("CentaurSplit",24,0,0,20,0,0,247.5)
TNT1 A 0 A_SpawnItemEx("CentaurSplit",24,0,0,20,0,0,270)
TNT1 A 0 A_SpawnItemEx("CentaurSplit",24,0,0,20,0,0,292.5)
TNT1 A 0 A_SpawnItemEx("CentaurSplit",24,0,0,20,0,0,315)
TNT1 A 0 A_SpawnItemEx("CentaurSplit",24,0,0,20,0,0,337.5)
stop
}
}

actor CentaurBusterProtect : PowerProtection
{
	Powerup.Duration 12
	DamageFactor "CentaurBuster", 0.0
	DamageFactor "CentaurBuster2", 0.25
}

actor CentaurSplit : CentaurBuster
{
damagetype "CentaurBuster2"
damage(10)
-RIPPER
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
6ULT X 1
Goto Spawn+2
Death:
TNT1 A 0
stop
}
}

actor CentaurBusterEcho : BasicClientSide
{
renderstyle add
alpha 1.0
States
{
Spawn:
TNT1 A 2
loopit:
6ULT X 1 A_FadeOut(0.1)
loop
}
}

actor CentaurWallRush_CI : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("NewWallSlam",1,"PickupNo")
TNT1 A 0 A_GiveInventory("NoNewWallSlam",1)
TNT1 A 0 A_GiveInventory("NewWallSlam",1)
TNT1 A 0 A_GiveInventory("WallSlamRealTimer",1)
TNT1 A 0 A_SpawnItemEX("CentaurWallRushChecker")
stop
PickupNo:
TNT1 A 0
stop
}
}

actor CentaurWallRushChecker
{
Height 0
Radius 0
Damage (0)
+NOINTERACTION
+NOCLIP
DamageType "CentaurWallRush"
Obituary "$OB_CENTAURMAN2"
PROJECTILE
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT, AAPTR_DEFAULT, AAPTR_TARGET)
TNT1 A 0 A_TransferPointer(AAPTR_TARGET, AAPTR_DEFAULT, AAPTR_TARGET, AAPTR_TARGET)
SpawnStart0:
TNT1 A 0 A_GiveInventory("WallSlamTimer",1)
SpawnStart:
TNT1 A 0 A_GiveInventory("CentaurWallSlamTrailPickup",1,AAPTR_TRACER)
TNT1 A 1 A_GiveInventory("WallSlamTimer",1,AAPTR_TRACER)
TNT1 A 0 A_Warp(AAPTR_TRACER,0,0,CallACS("TracerHeightGet")/2,0,0)
TNT1 A 0 A_JumpIfInventory("CentaurWallRush_P",1,"DeathCheck",AAPTR_TRACER)
TNT1 A 0 A_JumpIfInventory("WallSlamRealTimer",1,"SpawnStart",AAPTR_TRACER)
goto Death
DeathCheck:
TNT1 A 0 //A_JumpIfInventory("NewWallSlam",1,"Death",AAPTR_TRACER)
TNT1 A 0 A_GiveInventory("WallSlamTimer",1)
TNT1 AAAAAAAA 0 A_SpawnItemEx("CentaurSlamRocks",random(-8,8),random(-8,8),random(-8,8),random(-8,8),random(-8,8),random(-8,8))
TNT1 A 0 A_Quake(1,4,0,64)
TNT1 A 0 A_PlaySoundEx("weapon/centaurwallpin","Weapon")
TNT1 A 0 A_Warp(AAPTR_TRACER,0,0,CallACS("TracerHeightGet")/2,0,0)
TNT1 A 0 A_Explode(3,12,0,0,12)
TNT1 A 4
Death:
TNT1 A 2
stop
}
}

Actor CentaurWallRushRealChecker
{
PROJECTILE
+NOTARGETSWITCH
+NOEXPLODEFLOOR
Scale 2.5
+DONTBLAST
+DONTREFLECT
+MTHRUSPECIES //+THRUSPECIES
//Species "Megaman"
Damage (0)
Radius 32
Height 32
Speed 20
states
{
Spawn:
TNT1 A 1
stop
Crash:
XDeath:
TNT1 A 1 //A_GiveToTarget("CentaurDashFlagX")
stop
Death:
TNT1 A 0 A_GiveInventory("CentaurWallRush_P",1,AAPTR_TARGET)
stop
}
}

actor CentaurWallRush_P : Powerup{Powerup.Duration 35}

actor CentaurWallSlamTrailPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 //A_JumpIf(z-floorz==0,"Pickup_NoHurtActor")
TNT1 A 0 A_SpawnItemEx("CentaurWallRushRealChecker",0,0,0,45,0,0,angle+360)
TNT1 A 0 A_SpawnItemEx("CentaurWallRushRealChecker",0,0,0,45,0,0,angle+90)
TNT1 A 0 A_SpawnItemEx("CentaurWallRushRealChecker",0,0,0,45,0,0,angle+180)
TNT1 A 0 A_SpawnItemEx("CentaurWallRushRealChecker",0,0,0,45,0,0,angle+270)
TNT1 A 0 A_GiveInventory("CentaurSpeedThing",1)
stop
Pickup_NoHurtActor:
TNT1 AAAA 0 A_TakeInventory("WallSlamRealTimer",999)
TNT1 AAAA 0 A_TakeInventory("WallSlamTimer",999)
TNT1 AAAA 0 A_TakeInventory("CentaurWallRush_P",999)
stop
}
}


Actor CentaurSpeedThing : PowerSpeed{Powerup.Duration 35 -POWERSPEED.NOTRAIL Speed 1.00}

actor CentaurSlamRocks
{
PROJECTILE
translation "208:208=217:217", "46:46=235:235"
Scale 2.5
Height 4
Radius 4
gravity 1.3
-NOGRAVITY
+NOCLIP
+BOUNCEONFLOORS
+DOOMBOUNCE
bouncefactor 0.6
Bouncecount 4
reactiontime 35
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_Recoil(random(-2,-4))
TNT1 A 0 ThrustThingZ(0, random(0,10), 0, 1)
TNT1 A 0 A_Jump(256,"Spawn1","Spawn2")
Spawn1:
PUNK LL 1 A_Countdown
PUNK L 0 A_ChangeFlag("NOCLIP",0)
loop
Spawn2:
PUNK MM 1 A_Countdown
PUNK M 0  A_ChangeFlag("NOCLIP",0)
loop
Death:
TNT1 A 0
stop
XDeath:
TNT1 A 0
stop
}
}

actor CentaurPinWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
Renderstyle none
reactiontime 50
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("MovementFrozen")
TNT1 A 1 A_Warp(AAPTR_TARGET, 0.0,0.0,0.0,0.0,WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_Countdown
loop
Death:
TNT1 A 0 A_GiveToTarget("MovementReturnFailsafe")
stop
}
}

actor CentaurManFlash
{
+MISSILE
-SOLID
-DONTBLAST
+NOGRAVITY
+RIPPER
+SKYEXPLODE
+NOINTERACTION
+DONTSPLASH
+THRUGHOST
+THRUACTORS
+DONTREFLECT
Obituary "$OB_CENTAURMAN3"
Damage (0) //Uses A_Explode
Radius 2
Height 2
Scale 2.5
DamageType "CentaurManFlash"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(4,300,0,0,300)
stop
}
}

actor CentaurManFlash2 : CentaurManFlash
{
DamageType "CentaurManFlash2"
}

actor CentaurFreezeWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
Renderstyle none
reactiontime 70
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("MovementFrozen2")
TNT1 A 0 A_GiveToTarget("CentaurFlashProtector")
TNT1 A 1 A_Warp(AAPTR_TARGET, 0.0,0.0,0.0,0.0,WARPF_NOCHECKPOSITION)
TNT1 A 0 A_SpawnItemEx("CentaurFlashFX", random(8, 64), 0, random(0, 64), 0, 0, 0, random(0, 359))
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_Countdown
loop
Death:
TNT1 A 0 A_TakeFromTarget("CentaurFlashProtector")
TNT1 A 0 A_GiveToTarget("MovementReturnFailsafe")
stop
}
}

actor CentaurFreezeWatcher2 : CentaurFreezeWatcher
{
reactiontime 35
}

actor CentaurUltColorWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 A 4 A_GiveToTarget("TotalWhiteColor")
TNT1 A 6 A_GiveToTarget("CentaurManColor")
TNT1 A 4 A_GiveToTarget("TotalWhiteColor")
TNT1 AAA 1 A_GiveToTarget("CentaurManColor")
stop
}
}

actor CentaurManColor : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
+INVENTORY.AUTOACTIVATE
+COUNTITEM
+INVBAR
states
{
Pickup:
TNT1 A 1 ACS_ExecuteAlways(991,0,821,0)
stop
}
}

actor CentaurStab
{
species "DustManType"
+THRUSPECIES
Obituary "$OB_CENTAURMAN4"
scale 2.5
PROJECTILE
+THRUGHOST
+DONTREFLECT
speed 60
height 16
radius 16
damage (38)
damagetype "CentaurUlt"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode") 
TBLA GFE 1
stop
}
}

actor CentaurChopHitbox
{
species "DustManType"
+THRUSPECIES
Obituary "$OB_CENTAURMAN4"
PROJECTILE
+NOEXPLODEFLOOR
Radius 48
Height 48
scale 2.5
speed 0
damage (8)
Damagetype "CentaurUlt"
States
{
Spawn:
TNT1 A 2
stop
}
}

actor CentaurDashHitbox
{
species "DustManType"
+THRUSPECIES
Obituary "$OB_CENTAURMAN5"
PROJECTILE
+NOEXPLODEFLOOR
Radius 48
Height 48
scale 2.5
speed 0
damage (18)
Damagetype "CentaurDash"
States
{
Spawn:
TNT1 A 2
stop
}
}

actor CentaurInvisAmmoCheck : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag1",1,"Nope")
TNT1 A 0 A_GiveInventory("BaseAltfireAmmo",1)
stop

Nope:
TNT1 A 0
stop
}
}

actor CentaurInvisSparkleCheck : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag1",1,"Nope")
TNT1 AAAA 0 A_SpawnItemEx("CentaurArrowDust",random(-32,32),random(-32,32),random(0,96),0,0,0,0,0,64)
stop

Nope:
TNT1 A 0
stop
}
}

actor CentaurM1Handler2 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("RightClickFlag",1)
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",6)
TNT1 A 0 A_GiveInventory("CentInvisCancel")
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Auto")
TNT1 A 0 A_PlaySoundEx("weapon/pshot","Weapon")
TNT1 A 0 A_FireCustomMissile("CentaurBuster",0,1,0,32)
TNT1 A 0 A_TakeInventory("DrillFlag",999,1)
TNT1 A 0 A_TakeInventory("CentaurOverChargeFlag",999,1)
TNT1 A 0 A_TakeInventory("CentaurCharge",99,1)
goto Finish
}
}

actor CentaurM2Handler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("VCStunDispelAOEHandler")
TNT1 A 0 A_GiveInventory("ScreenFlash")
TNT1 A 0 A_PlaySoundEx("weapon/centaurflash","Weapon")
TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",112)
TNT1 AAAAAAAAAA 0 A_SpawnItemEx("CentaurFlashFX", 0, 0, 28, 256/12, 0, random2(256/12), random(0, 359))
TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",112)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(975, 0)==2,"Pickup2")
TNT1 A 0 A_FireCustomMissile("CentaurManFlash",0,0,8,0)
stop

Pickup2:
TNT1 A 0 A_FireCustomMissile("CentaurManFlash2",0,0,8,0)
stop
}
}

actor CentaurChargeHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_CheckFlag("THRUSPECIES","Pickup2")
TNT1 A 0 A_PlaySoundEx("weapon/centaurcharge","Auto")
stop

Pickup2:
TNT1 A 0 ACS_NamedExecuteAlways("VC_ClientSound",0,2)
stop
}
}

actor CentaurFlashProtector : GrabProtectionBase 
{
	DamageFactor "Normal", 0.40
}