actor ScroogeMcDuck : BasisForHales
{
player.soundclass "BOSS009"
player.forwardmove 0.90, 0.90
player.sidemove 0.88, 0.88
player.morphweapon "ScroogeBossWeapon"
States
{
Spawn:
SXS2 A 0
SXS2 B 1 
SXS2 A 1 A_JumpIfInventory("WeaponCharge",1,"Jumping")
SXS2 A 0 ACS_ExecuteAlways(191,0,APROP_Speed,100,100)
Goto Spawn+2
See:
SXS2 BBBBBCCCCCDDDDDCCCCC 1 A_JumpIfInventory("WeaponCharge",1,"Jumping")
SXS2 B 0 ACS_ExecuteAlways(191,0,APROP_Speed,100,100)
Goto Spawn
Missile:
SXS2 EEEEE 1 A_JumpIfInventory("WeaponCharge",1,"Jumping")
SXS2 FFFF 1 A_JumpIfInventory("WeaponCharge",1,"Jumping")
SXS2 F 0 ACS_ExecuteAlways(191,0,APROP_Speed,100,100)
goto Spawn

Pain.TimeStopper:
Pain.RNCZaWarudo:
TNT1 A 0 SetPlayerProperty(0,1,4) TNT1 A 0 A_GiveInventory("DioFlashTimeHUD", 1) TNT1 A 0 A_SpawnItem("ZaWarudoHaleFix")
SXS2 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Stop
SXS2 A 1 SetPlayerProperty(0,0,4)
Goto Spawn

Jumping:
SXS2 H 0 
SXS2 H 2 A_JumpIf(z-floorz==0,"JumpingEnd")
loop
JumpingEnd:
SXS2 H 0 ACS_ExecuteAlways(191,0,APROP_Speed,100,100)
SXS2 H 0 A_SpawnItemEX("CanePound",0,0,0)
SXS2 H 0 A_TakeInventory("WeaponCharge",4)
SXS2 H 0 A_TakeInventory("JumpChargeStop",1)
Goto Spawn
BossPain:
SXS2 G 0 A_PlaySound("Scrooge/Pain")
SXH2 G 0 A_SpawnItem("PainFX",-3,20)
SXH2 G 0 A_JumpIfInventory("WeaponCharge",1,"Jumping")
SXS2 GGGGGGGGG 2 A_SpawnItem("PainFX",-3,20)
SXS2 G 0 SetPlayerProperty(0,0,1)
Goto Spawn
Death:
SXS2 G 1 SetPlayerProperty(0, 0, 4)
SXS2 G 0 A_GiveToTarget("KilledMe",1)
SXS2 G 0 A_NoBlocking
SXS2 G 0 ACS_ExecuteAlways(400,0,437)
SXS2 G 0 A_PlaySound("Scrooge/Death")
SXS2 G 0 A_SpawnItemEX("ScroogeCorpse",0,0,30,0,5,10)
PLAY Z 1 A_CheckPlayerDone
wait
}
}





// Jump //

actor ScroogeJumpItem : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
inventory.icon "SXISIN"
+INVENTORY.UNDROPPABLE
+COUNTITEM
+INVBAR
states
{
Spawn:
TNT1 A 0
loop
Use:
TNT1 A 0 A_JumpIfInventory("InBoat",1,2)
TNT1 A 0 A_JumpIfInventory("BossJumpCharge",125,"Jump")
TNT1 A 0
fail
Jump:
TNT1 A 0 A_TakeInventory("BossJumpCharge",125)
TNT1 A 1 ThrustThingZ(0,100,0,0)
TNT1 A 0 A_PlaySoundEx("Scrooge/Jump","Item")
TNT1 A 0 A_GiveInventory("WeaponCharge",1)
TNT1 A 1 A_TakeInventory("JumpCancler",1)
TNT1 A 0
}
}

actor CaneCrash
{
PROJECTILE
damage (25)
damagetype "CanePogo"
Obituary "$OB_SCROOGECANE"
Radius 30
Height 24
renderstyle none
States
{
Spawn:
TNT1 A 2
stop
XDeath:
TNT1 A 0 A_GiveToTarget("ScroogeBounce",1)
Stop
}
}

actor ScroogeBounce : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
states
{
Spawn:
TNT1 A 0
loop
Pickup:
TNT1 A 0
Jump:
TNT1 A 1 ThrustThingZ(0,50,0,0)
TNT1 A 0 A_PlaySoundEx("Scrooge/Jump","Item")
TNT1 A 1 A_TakeInventory("JumpCancler",1)
TNT1 A 0
STOP
}
}

actor CanePound
{
PROJECTILE
+NOCLIP
+RIPPER
Radius 1
Height 1
damagetype "Scrooge"
Obituary "$OB_SCROOGECANE"
scale 2.5
States
{
Spawn:
BOMB A 0
BOMB A 0 A_PlaySoundEx("weapon/hyperbomb","Weapon")
BOMB A 0 A_Explode(50,128,0,64)
BOMB BCDEFGHIJKLMNOPQR 1
stop
}
}





// Death //

actor ScroogeCorpse
{
PROJECTILE
+NOCLIP
-NOGRAVITY
-SOLID
+CLIENTSIDEONLY
scale 2.5
Height 2
Radius 2
States
{
Spawn:
SXS2 G 1
SXS2 G 0 A_JumpIf(z-floorz==0,"Death")
loop
Death:
SXS2 G 0
stop
}
}
