actor BearerClass : ClassBase
{
Player.ScoreIcon "C_00X0X"
player.displayname "BearerClass"
player.soundclass "BearerClassC"

player.maxhealth 2000
health 2000
player.jumpz 10
player.forwardmove 0.56, 0.56
player.sidemove 0.54, 0.54

player.startitem "WildBearBoss"
player.startitem "MaximumBearAmmo",3
player.startitem "BearerFlag"
player.startitem "CanUseItems"
player.startitem "SemiStunArmor"

+NOSKIN
player.morphweapon "WildBearBoss"
PainSound "misc/M1_PAIN"

States
{
Spawn:
YD_B A 0
YD_B B 1
YD_B A 1
Goto Spawn+2
See:
YD_B BCDE 4
Goto Spawn
Missile:
YD_B FG 5
goto Spawn

ClassPain:
YD_B H 0
YD_B H 0 //ACS_NamedExecuteWithResult("core_decdmg_begin")
YD_B H 0 A_GiveInventory("EndBossFlashStoppered",1)
YD_B H 0 A_GiveInventory("CBMPainSound_P")//A_Pain
YD_B H 0 A_GiveInventory("TimeStoppedUnfreeze",1)
//YD_B H 0 A_PlaySoundEX("misc/MV_OUCH","Voice")
YD_B H 0 A_GiveInventory("IsInPain",1)
YD_B HHHHHHHHHH 2 A_SpawnItemEx("PainFX_CBM",-5,0,3,0,0,0)
YD_B H 1
YD_B H 0 A_Jump(256,"Spawn")
YD_B H 1 A_Jump(256,"Spawn")
Goto Spawn

ClassDeath:
YD_B H 0 A_JumpIfInventory("InstagibFlag",1,"GibDeath")
YD_B H 0 A_JumpIfInventory("FlingDeathFlag",1,"FlingDeath")
YD_B H 0 A_JumpIfInventory("RiseDeathFlag",1,"RiseDeath")
YD_B H 0 A_JumpIfInventory("IceDeathFlag",1,"IceDeath")
YD_B H 0
goto DeathContinueDelay

RiseDeath:
YD_B H 1 ThrustThingZ(0,21,0,1)
YD_B H 0 A_JumpIf(ceilingz-z<64,"GibDeathStop")
YD_B H 0 A_GiveInventory("BlowDeathTimer",1)
YD_B H 0 A_JumpIfInventory("BlowDeathTimer",25,"GibDeathStop")
Goto RiseDeath
IceDeath:
YD_B H 0 ACS_ExecuteAlways(998,0,DYE_ICEDEATHCBM,10)
YD_B H 1 A_PlaySoundEx("CBM/freeze","Voice")
YD_B HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 1 A_SpawnItemEx("FrozenDeathBitFX",frandom(16,48),0,fRandom(16,48),0,0,0,random(0,359))
YD_B H 0 A_PlaySoundEx("CBM/icebreak","Body")
YD_B H 0 A_SpawnItemEx("FrozenDeathFXC",0,0,0)
goto DeathWait

//Have to set the sprite because morphes break the rules
//
TimeStopped_Echo:
YD_B "#####################################################################################################" 1 A_GiveInventory("TimeBenderPain_P")
Goto Pain+2
TimeStopped_Fun:
YD_B "]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]" 1 A_GiveInventory("TimeBenderPain_P")
Goto Pain+2
TimeStopped_Pain:
YD_B "HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH" 1 A_GiveInventory("TimeBenderPain_P")
Goto Pain+2

Pain.LightRyu_Stop:
YD_B H 0 A_SpawnItemEx("PainLightRyu_StopHit")
YD_B H 0 A_GiveInventory("LightRyu_StopProtect",1)
YD_B H 0 A_GiveInventory("TimeStoppedTF",1)
YD_B HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 1 A_Stop
Goto Pain+2

}
}


actor WildBearBoss : BaseMM8BDMWep_CBM
{
dropitem "ConfettiDeathSpawner"
Tag "$TAGC_1Y"
Weapon.AmmoUse 0
Weapon.AmmoGive 3
Obituary "$OB_BEARCLOSE"
weapon.ammotype "MaximumBearAmmo"
States
{
Spawn:
C_00 X 1
loop
Ready:
YD_H A 0 ACS_ExecuteAlways(998,0,DYE_YELLOWDEVIL)
goto Ready1
Ready1:
YD_H A 1 A_WeaponReady
wait
Deselect:
YD_H AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
YD_H A 1 A_Lower
Loop
Select:
YD_H AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
YD_H A 1 A_Raise
Loop
Fire:
YD_H C 0
YD_H A 1 Offset(8,26)
YD_H C 1 Offset(8,26)
YD_H C 1 Offset(20,16)
YD_H C 1 Offset(30,6)
YD_H C 0 A_PlaySoundEx("wep/YD_Toss","weapon")
YD_H C 0 A_GiveInventory("WildBearMain_CI",1)
YD_H D 2 Offset(20,8)
YD_H E 1 Offset(12,17)
YD_H E 1 Offset(2,27)
YD_H E 8 Offset(-10,37)
YD_H A 1 Offset(-8,36)
YD_H A 1 Offset(-6,35)
YD_H A 1 Offset(-4,34)
YD_H A 1 Offset(-2,33)
Goto Ready1
Altfire:
YD_H A 0 A_GiveInventory("WildBearAlt_CI",1)
YD_H A 0 A_PlaySoundEx("wep/YD_Punch","Weapon")
YD_H B 2 Offset(-28,14)
YD_H BBBB 2 Offset(-56,-4)
YD_H B 2 Offset(-56,-4)
YD_H B 2 Offset(-56,-4)
YD_H B 2 Offset(-32,8)
YD_H A 2 Offset(-12,20)
YD_H A 2 A_WeaponReady(14)
Goto Ready1
}
}

actor MaximumBearAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 3
+INVENTORY.IGNORESKILL
}

actor BearerFlag : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor BearerMorphStart_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 //LightTeamFlag//ACS handles TeamFlags/FlagPickups

TNT1 A 0 SetPlayerProperty(0,0,16)//Buddha
TNT1 A 0 SetPlayerProperty(0,0,4)//TotallyFrozen
TNT1 A 0 SetPlayerProperty(0,0,0)//Frozen
TNT1 A 0 SetPlayerProperty(0,0,3)//Flight

//Important Gives
TNT1 A 0 A_GiveInventory("BearerFlag",1)//ACS watches for this
TNT1 A 0 A_GiveInventory("EnvironmentGravity",1)//Fix underwater gravity
TNT1 A 0 A_GiveInventory("CBM_StarterSpawnInventory_P")//A morph is a fresh respawn due to ClearInventory

//Bonus Gives
TNT1 A 0 A_GiveInventory("CanUseItems",1)
TNT1 A 0 A_GiveInventory("SemiStunArmor",1)

//Flags for core
TNT1 A 0 A_GiveInventory("WaterShieldShoot",1)
TNT1 A 0 A_GiveInventory("BlackHoleTrigger",1)


//Flags to end certain class actors/projectiles
TNT1 A 0 A_GiveInventory("JoeSelectKillFlag",1)

TNT1 A 0 A_GiveInventory("BubbleFloodUndeploy",1)

TNT1 A 0 A_GiveInventory("ClashFlag1",1)//Applies to Tornado as well
TNT1 A 0 A_GiveInventory("ClashFlag2",1)
TNT1 A 0 A_GiveInventory("ClashFlag3",1)
TNT1 A 0 A_GiveInventory("ClashFlag4",1)
TNT1 A 0 A_GiveInventory("ClashFlagT",1)

TNT1 A 0 A_GiveInventory("RingFlag",1)
TNT1 A 0 A_GiveInventory("RingFlag2",1)

TNT1 A 0 A_GiveInventory("DiveLockonCleanse",1)

TNT1 A 0 A_GiveInventory("EndFlameFlag",1)

TNT1 A 0 A_GiveInventory("SearchBushFlag1",1)
TNT1 A 0 A_GiveInventory("SearchBushFlag2",1)
TNT1 A 0 A_GiveInventory("SearchBushFlag3",1)
TNT1 A 0 A_GiveInventory("SearchBushFlag4",1)

TNT1 A 0 A_GiveInventory("AquaKillFlag",1)

TNT1 A 0 A_GiveInventory("ODuoMeteorStop",1)

TNT1 A 0 A_GiveInventory("SplashEndSinging",1)

TNT1 A 0 A_GiveInventory("BeeFlag1",1)

TNT1 A 0 A_GiveInventory("PumpItemTrigger")

TNT1 A 0 A_GiveInventory("Merc_BlobOff_F",1)

TNT1 A 0 A_TakeInventory("NoJumpCancel",9)
stop
}
}

actor YD_BearerCube
{
Translation "192:192=216:216", "198:198=220:220"
PROJECTILE
Obituary "$OB_BEARMAIN1"
damagetype "YellowDevilB"
-NOGRAVITY
damage (250)
Radius 25
Height 20
speed 29
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ThrustThingZ(0,14,0,1)
TNT1 A 0 A_Jump(256,1,2,3,4)
YD_H FGHI 3
Goto Spawn+3
Death:
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TNT1 A 0 A_Stop
TNT1 A 0 A_PlaySoundEx("wep/YD_Sploosh","Weapon")
TNT1 AAAA 1 A_SpawnItemEx("YD_BearerCubeBit",random(1,8),0,random(4,20),frandom(2,15),0,frandom(8,13),random(0,359),1)
stop
}
}

actor YD_BearerCubeB : YD_BearerCube{translation "192:192=205:205", "198:198=74:74"}
actor YD_BearerCubeR : YD_BearerCube{translation "192:192=171:171", "198:198=41:41"}
actor YD_BearerCubeO : YD_BearerCube{translation "192:192=104:104", "198:198=128:128"}
actor YD_BearerCubeP : YD_BearerCube{translation "192:192=229:229", "198:198=232:232"}

actor YD_BearerCubeBit
{
PROJECTILE
Obituary "$OB_BEARMAIN2"
damagetype "YellowDevilB"
+THRUACTORS
+DONTSPLASH
-NOGRAVITY
damage (0)
Radius 8//25
Height 8//20
speed 14
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetScale(ScaleX-frandom(0,1))
TNT1 A 0 A_Jump(256,1,2,3)
YD_H JKL 3
goto Spawn+3
Death:
TNT1 A 1
stop
}
}

actor YD_BearerPunch
{
translation "192:192=216:216"
PROJECTILE
damagetype "YellowDevilP"
Obituary "$OB_BEARALT"
+DONTBLAST
reactiontime 1
damage (500)
Radius 20
Height 20
speed 60
scale 2.5
States
{
Spawn:
TMFX J 0
TMFX J 1 A_CountDown
wait
Death:
TMFX J 0 A_Explode(500,40,0)
goto XDeath
XDeath:
TMFX J 0 A_Stop
TMFX JTJK 2
stop
}
}

actor YD_BearerPunchB : YD_BearerPunch{translation "192:192=205:205"}
actor YD_BearerPunchR : YD_BearerPunch{translation "192:192=171:171"}
actor YD_BearerPunchO : YD_BearerPunch{translation "192:192=104:104"}
actor YD_BearerPunchP : YD_BearerPunch{translation "192:192=229:229"}

actor WildBearMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("YD_BearerCube",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("YD_BearerCubeB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("YD_BearerCubeR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("YD_BearerCubeO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("YD_BearerCubeP",0,0,8,0)
goto Done
}
}

actor WildBearAlt_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("YD_BearerPunch",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("YD_BearerPunchB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("YD_BearerPunchR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("YD_BearerPunchO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("YD_BearerPunchP",0,0,8,0)
goto Done
}
}