actor SakugarneBoss : BaseMM8BDMWep_CBM
{
Tag "$TAGC_KD"
dropitem "SakugarneWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 28
Weapon.SlotNumber 2
Obituary "$OB_SAKUGARNE"
Inventory.Pickupmessage "Power up! Sakugarne!"
weapon.ammotype "BackToTheAmmo"
inventory.icon "SAKUSI"
States
{
Spawn:
C_0K D 1
loop
Ready:
QSAK A 0 ACS_ExecuteAlways(998,0,DYE_QUINT)
QSAK A 0 A_JumpIf(z-floorz==0,"ReadyF")
SAKH Z 5
QSAK A 0 A_Jump(256,"ReadyA")
ReadyF:
SAKH Z 5
ReadyA:
QSAK A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,0,1)//Disable Jump
QSAK A 0 A_GiveInventory("QuintNoPogo",1)
QSAK A 0 A_GiveInventory("NoJumpCancel",1)
QSAK A 0 A_GiveInventory("SakuAmmoDelay",1)
QSAK A 0 A_GunFlash
QSAK A 0 A_JumpIf(z-floorz==0,"Ready1F")
Goto Ready1A
Ready1F:
QSAK A 1 A_WeaponReady(12)
Goto Fire
Ready1A:
SAKH Z 1 A_WeaponReady(12)
Goto Fireeeee

Deselect: 
TNT1 A 0 A_TakeInventory("QuintIsAir",1)
TNT1 A 0 A_TakeInventory("SakugarneActive",1)
TNT1 A 0 A_TakeInventory("NoJumpCancel",1)
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,10,1)
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,1,1)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
QSAK A 1 A_Lower
goto Deselect+5
Select: 
TNT1 A 0 A_TakeInventory("QuintIsAir",1)
TNT1 A 0 A_TakeInventory("SakugarneActive",1)
TNT1 A 0 A_TakeInventory("NoJumpCancel",1)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
QSAK A 1 A_Raise
goto Select+3

Fire:
QSAK A 0 A_JumpIfInventory("SakugarneActive",1,"AirStomp")
QSAK A 1 A_WeaponReady(12)
Fireeeee:
QSAK A 0 A_GiveInventory("QuintAmmoHelp_P",1)
QSAK A 0 A_JumpIf(z-floorz==0,"JumpStart")
QSAK A 0 A_JumpIf(momz==0,"FireV")
QSAK A 0 A_JumpIfInventory("SakugarneActive",1,"AirStomp")
SAKH Z 1 A_WeaponReady(12)
loop
FireV:
SAKH Z 1 A_WeaponReady(12)
QSAK A 0 A_JumpIf(z-floorz==0,"JumpStart")
QSAK A 0 A_JumpIf(momz==0,"JumpStart")
goto Fire

JumpStart:
QSAK A 0 A_JumpIfInventory("SakugarneActive",1,"Air")
QSAK A 0 A_PlaySoundEx("weapon/sakugarne","Weapon")
QSAK A 0 A_GiveInventory("QuintYesPogo",1)
QSAK A 0 A_TakeInventory("QuintNoPogo",9)
QSAK A 0 A_GunFlash
QSAK A 1 Offset(0, 32)
QSAK A 1 Offset(0, 48)
QSAK A 1 Offset(0, 72)
QSAK A 1 Offset(0, 80)
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,165,100)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_JAX_CHECK_JUMP)==1,5)
QSAK A 0 A_ChangeVelocity(0,0,16,CVF_RELATIVE) 
Goto JumpstartContinueeeeee
TNT1 AAAAAAAAAAAAAAAA 0 
QSAK A 0 A_ChangeVelocity(0,0,21,CVF_RELATIVE)
JumpstartContinueeeeee:
QSAK A 0 A_GiveInventory("SakugarneActive",1)
//QSAK A 2 A_GiveInventory("QuintIsAir",1)
QSAK A 1 Offset(0, 72) A_GiveInventory("QuintIsAir",1)
QSAK A 1 Offset(0, 60) A_GiveInventory("QuintIsAir",1)
//QSAK A 2 A_GiveInventory("QuintLeapWeaken",1)
QSAK A 1 Offset(0, 38)//A_GiveInventory("QuintLeapWeaken",1)
QSAK A 1 Offset(0, 32)//A_GiveInventory("QuintLeapWeaken",1)
Goto Air

Air:
QSAK A 0 A_JumpIfInventory("BackToTheAmmo",7,"Air2")
QSAK A 0 A_JumpIf(z-floorz==0,"Jump")
QSAK A 0 A_JumpIfInventory("VivifyDelay6",1,"AirBounce")
QSAK A 0 A_SpawnItemEx("QuintLeapCrush",4,0,-10,momx,momy,-100,0,8)
QSAK A 1 A_WeaponReady(12)
QSAK A 0 A_GiveInventory("QuintAmmoHelp_P",1)
//QSAK C 0 A_JumpIfInventory("IsBot",1,"BotAir")
loop
AirBounce:
//QSAK A 3
//QSAK B 3 A_TakeInventory("VivifyDelay6",1)
QSAK A 1 Offset(0, 48)
QSAK A 1 Offset(0, 72)
QSAK A 1 Offset(0, 80)
QSAK A 1 Offset(0, 60) A_TakeInventory("VivifyDelay6",1)
QSAK A 1 Offset(0, 38)
QSAK A 1 Offset(0, 32)
goto Air

Air2:
QSAK A 0 A_JumpIfInventory("BackToTheAmmo",28,"Air3")
QSAK A 0 A_JumpIf(z-floorz==0,"Jump")
QSAK A 0 A_JumpIfInventory("VivifyDelay6",1,"AirBounce")
QSAK A 0 A_SpawnItemEx("QuintLeapCrush",4,0,-10,momx,momy,-100,0,8)
QSAK A 1 A_WeaponReady(8)
QSAK A 0 A_GiveInventory("QuintAmmoHelp_P",1)
//QSAK C 0 A_JumpIfInventory("IsBot",1,"BotAir")
loop

Air3:
QSAK A 0 A_JumpIf(z-floorz==0,"Jump")
QSAK A 0 A_JumpIfInventory("VivifyDelay6",1,"AirBounce")
QSAK A 0 A_SpawnItemEx("QuintLeapCrush",4,0,-10,momx,momy,-100,0,8)
QSAK A 1 A_WeaponReady
QSAK A 0 A_GiveInventory("QuintAmmoHelp_P",1)
//QSAK C 0 A_JumpIfInventory("IsBot",1,"BotAir")
loop

BotAir:
QSAK C 0 A_Jump(2,1)
Goto Air
QSAK C 0 A_SelectWeapon("QuintBusterBoss")
Goto Air

AirStomp:
QSAK A 0 A_JumpIf(z-floorz==0,"JumpWaveCheck")
QSAK A 0 A_JumpIfInventory("VivifyDelay6",1,"AirBounce")
QSAK A 0 A_SpawnItemEx("QuintLeapCrush",4,0,-10,momx,momy,-100,0,8)
QSAK A 1 A_GiveInventory("SakuThrust_Pickup")
//QSAK C 0 A_JumpIfInventory("IsBot",1,"BotAirStomp")
loop

BotAirStomp:
QSAK C 0 A_JumpIfCloser(96,"Altfire")
QSAK C 0 A_Jump(4,"SpinJump")
QSAK C 0 A_Jump(1,2)
QSAK C 0 A_Refire("AirReady")
Goto Air
QSAK C 0 A_SelectWeapon("QuintBusterBoss")
QSAK C 0 A_Refire("AirReady")
Goto Air

Jump:
QSAK A 0 A_JumpIfInventory("VivifyDelay6",1,"AirBounce")
QSAK A 0 A_GiveInventory("QuintMain2_CI",1)
QSAK A 0 A_FireCustomMissile("QuintSakuBlastLand2",0,0,0,0)
QSAK A 0 A_GiveInventory("QuintDive_Pickup",1)
QSAK A 0 A_PlaySoundEx("weapon/sakugarne","Weapon")
QSAK A 0 A_TakeInventory("QuintIsAir",1)
QSAK A 0 A_GunFlash
QSAK A 0 A_JumpIf(ACS_ExecuteWithResult(C_JAX_CHECK_JUMP)==1,"Jump2")

//QSAK A 0 A_SetArg(3,momy)
//QSAK A 0 A_SetArg(2,momx)

//QSAK AABB 2
QSAK A 1 Offset(0, 32)
QSAK A 1 Offset(0, 48)
QSAK A 1 Offset(0, 72)
QSAK A 1 Offset(0, 80)
QSAK A 1 Offset(0, 80)
QSAK A 1 Offset(0, 80)
QSAK A 1 Offset(0, 80)
QSAK A 1 Offset(0, 72)
QSAK A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,165,100)//SetPlayerProperty(0,0,0)
//QSAK A 0 A_ChangeVelocity(args[2],args[3],16,CVF_REPLACE)//17 0 16 //CVF_RELATIVE
QSAK A 0 ThrustThingZ(0,64,0,0)
//QSAK A 4 A_GiveInventory("QuintIsAir",1)
QSAK A 1 Offset(0, 60) A_GiveInventory("QuintIsAir",1)
QSAK A 1 Offset(0, 38)
QSAK A 1 Offset(0, 32)
QSAK A 1 Offset(0, 30)
QSAK A 0 A_WeaponReady(14)
QSAK A 1 A_JumpIfInventory("IsBot",1,"BotJump")
QSAK A 1 //A_GiveInventory("QuintLeapWeaken",1)
QSAK A 0 A_WeaponReady(12)
Goto Air

BotJump:
QSAK A 2 A_Jump(20,3)
QSAK A 0
QSAK A 0 A_WeaponReady(12)
Goto Air
QSAK A 2 A_SelectWeapon("QuintBusterBoss")
QSAK A 0
QSAK A 0 A_WeaponReady(12)
Goto Air

Jump2:
//QSAK AB 3
QSAK A 1 Offset(0, 32)
QSAK A 1 Offset(0, 38)
QSAK A 1 Offset(0, 48)
QSAK A 1 Offset(0, 60)
QSAK A 1 Offset(0, 72)
QSAK A 1 Offset(0, 80)
QSAK A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,165,100)//SetPlayerProperty(0,0,0)
QSAK A 0 ThrustThingZ(0,84,0,0)//A_ChangeVelocity(0,0,21,CVF_RELATIVE)//16,0,21
//QSAK A 4
QSAK A 1 Offset(0, 80) A_GiveInventory("QuintIsAir",1)
QSAK A 1 Offset(0, 72)
QSAK A 1 Offset(0, 60)
QSAK A 1 Offset(0, 38)
QSAK A 1 Offset(0, 32)
QSAK A 1 Offset(0, 30) //A_GiveInventory("QuintLeapWeaken",1)
QSAK A 0 A_WeaponReady(12)
Goto Air

JumpWaveCheck:
QSAK A 0 A_JumpIfInventory("VivifyDelay6",1,"AirBounce")
QSAK A 0 A_JumpIfInventory("BackToTheAmmo",7,"JumpWave")
goto Jump+1
JumpWave:
QSAK A 0 A_PlaySoundEx("misc/mm3explosion","Body")
QSAK A 0 A_GiveInventory("QuintMainX_CI",1)
QSAK A 0 A_GiveInventory("SelfStoppedTF",1)
QSAK A 0 A_TakeInventory("QuintIsAir",1)
QSAK A 0 A_GunFlash
//QSAK AB 4 A_Stop
QSAK A 1 Offset(0, 32) A_Stop
QSAK A 1 Offset(0, 48) A_Stop
QSAK A 1 Offset(0, 72) A_Stop 
QSAK A 1 Offset(0, 80) A_Stop
QSAK A 1 Offset(0, 80) A_Stop
QSAK A 1 Offset(0, 80) A_Stop
QSAK A 1 Offset(0, 60) A_Stop
QSAK A 1 Offset(0, 48) A_Stop
QSAK A 0 A_GiveInventory("SelfStoppedUnfreeze",1)
goto Jump+3

Altfire:
QSAK A 0 A_JumpIfInventory("BackToTheAmmo",28,"SpinJump")
goto Air

SpinJump:
QSAK A 0 A_GiveInventory("StunArmor",1)
QSAK A 0 A_GiveInventory("QuintLeapArmor",1)
QSAK A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,10,100)
QSAK A 0 A_ChangeVelocity(48,0,0,3)
QSAK A 0 A_JumpIfInventory("FlightDisableFlag",1,2)
QSAK A 0 ThrustThingZ(0,80,0,0)
QSAK A 2
QSAK A 4 A_TakeInventory("WeaponCharge",999)
QSAK A 3 A_TakeInventory("BackToTheAmmo",28)
QSAK A 1 A_SetArg(3,angle)
QSAK A 0 A_PlaySoundEx("misc/quintspin","Body")
QSAK A 0 A_Stop
QSAK A 0 A_JumpIfInventory("FlightDisableFlag",1,"SpinningFall")
QSAK A 0 //A_ChangeVelocity(0,0,23,3)
goto SpinningUp
SpinningUp:
QSAK A 0 A_SetAngle(angle+30)
QSAK A 0 A_SpawnItemEx("QuintSakuAltSpin",0,0,-16,0,0,0,0,1)
QSAK A 0 ThrustThingZ(0,4,0,0)
QSAK A 1 A_GiveInventory("WeaponCharge",1)
QSAK A 0 A_JumpIfInventory("WeaponCharge",20,"SpinningPush")
goto SpinningUp
SpinningPush:
QSAK A 0 ThrustThing(args[3]*256/360,1,1,0)
QSAK A 0 A_GiveInventory("QuintSpinningDelay",1)
goto SpinningFall
SpinningFall:
QSAK A 0 A_SetAngle(angle+30)
QSAK A 0 A_SpawnItemEx("QuintSakuAltSpin",0,0,-16,0,0,0,0,1)
QSAK A 0 A_ChangeVelocity(0,0,-1,CVF_RELATIVE)
QSAK A 1 A_JumpIf(z-floorz==0,"SpinLand")
QSAK A 0 A_JumpIfInventory("WeaponCharge",26,"SpinLand")
QSAK A 0 A_JumpIfInventory("QuintSpinningDelay",1,"SpinningFall")
goto SpinningHelp
SpinningHelp:
QSAK A 0 ThrustThing(args[3]*256/360,20,1,0)
QSAK A 0 A_SetArg(3,random(0,255))
QSAK A 0 A_GiveInventory("WeaponCharge",1)
QSAK A 0 A_GiveInventory("QuintSpinningDelay",1)
goto SpinningFall

SpinLand:
QSAK A 0 A_SetAngle(args[3])
QSAK A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,0,1)
QSAK A 0 A_GiveInventory("QuintDive",1)
QSAK A 0 A_TakeInventory("QuintIsAir",9)
QSAK A 0 A_TakeInventory("StunArmor",9)
QSAK A 0 A_GunFlash
QSAK A 0 A_GiveInventory("QuintAltX_CI",1)
//QSAK BABABABABABABABA 2 A_Stop //32
QSAK A 1 Offset(0, 48) A_Stop
QSAK A 1 Offset(0, 60) A_Stop
QSAK A 1 Offset(0, 72) A_Stop
QSAK A 1 Offset(0, 60) A_Stop
QSAK A 1 Offset(0, 40) A_Stop
QSAK A 1 Offset(0, 60) A_Stop
QSAK A 1 Offset(0, 40) A_Stop
QSAK A 1 Offset(0, 60) A_Stop
QSAK A 1 Offset(0, 40) A_Stop
QSAK A 1 Offset(0, 60) A_Stop
QSAK A 1 Offset(0, 40) A_Stop
QSAK A 1 Offset(0, 60) A_Stop
QSAK A 1 Offset(0, 40) A_Stop
QSAK A 1 Offset(0, 60) A_Stop
QSAK A 1 Offset(0, 40) A_Stop
QSAK A 1 Offset(0, 60) A_Stop
QSAK A 1 Offset(0, 40) A_Stop
QSAK A 1 Offset(0, 60) A_Stop
QSAK A 1 Offset(0, 40) A_Stop
QSAK A 1 Offset(0, 60) A_Stop
QSAK A 1 Offset(0, 40) A_Stop
QSAK A 1 Offset(0, 60) A_Stop
QSAK A 1 Offset(0, 40) A_Stop
QSAK A 1 Offset(0, 60) A_Stop
QSAK A 1 Offset(0, 40) A_Stop
QSAK A 1 Offset(0, 60) A_Stop
QSAK A 1 Offset(0, 40) A_Stop
QSAK A 1 Offset(0, 60) A_Stop
QSAK A 1 Offset(0, 40) A_Stop
QSAK A 1 Offset(0, 38) A_Stop
QSAK A 1 Offset(0, 30) A_Stop
QSAK A 1 Offset(0, 32) A_Stop
QSAK A 0 A_TakeInventory("QuintDive",9)
QSAK A 0 A_TakeInventory("BasicArmor",9999)
Goto Jump+3


Flash:
TNT1 A 1
stop
}
}
 
actor QuintBusterBoss : BaseMM8BDMWep_CBM
{
Tag "$TAGC_KD2"
dropitem "SakugarneWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 3
Weapon.SlotNumber 1
Obituary "$OB_QUINTBUSTER"
Inventory.Pickupmessage "You Lose! Good day sir!"
weapon.ammotype "BackToTheAmmo"
+WEAPON.NOAUTOAIM
inventory.icon "QBustIcn"
States
{
Spawn:
TNT1 A 2
BUST T 1
loop
Ready:
QBUS B 0 ACS_ExecuteAlways(998,0,DYE_QUINT)
QBUS B 0 //A_GiveInventory("QuintDiveCancel_P",1)
QBUS B 8
QBUS B 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,10,1)
QBUS B 0 A_TakeInventory("QuintYesPogo",1)
QBUS B 0 A_GiveInventory("QuintNoPogo",1)//A_GunFlash
Goto Ready1
Ready1:
QBUS B 0 A_JumpIfInventory("SlideLimitFlag",100,"Ready2")
QBUS B 8 A_WeaponReady(8)
QBUS B 0 A_GiveInventory("BackToTheAmmo",1)
loop
Ready1:
QBUS B 8 A_WeaponReady
QBUS B 0 A_GiveInventory("BackToTheAmmo",1)
loop
Deselect: 
QBUS B 0 A_TakeInventory("QuintDive",99)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
QBUS B 1 A_Lower
goto Deselect+1
Select: 
QBUS B 0 A_TakeInventory("QuintDive",99)
QBUS B 0 A_TakeInventory("SakugarneActive",1)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
QBUS B 1 A_Raise
goto Select+2
Fire:
QBUS B 0 A_JumpIfInventory("IsBot",1,"BotFire")
QBUS B 0 A_PlaySoundEx("weapon/GameBoyFire","Weapon")
QBUS B 0 A_GiveInventory("QuintMain_CI",1)
//QBUS CD 3
//QBUS B 4 
QBUS C 1 Offset(5, 41)//41
QBUS C 1 Offset(9, 45)//45
QBUS C 1 Offset(10, 46)//46
QBUS C 1 Offset(9, 45)//46
QBUS C 1 Offset(5, 41)//45
QBUS C 1 Offset(2, 37)//41
QBUS B 4 A_WeaponReady(14)
QBUS B 0 A_GiveInventory("BackToTheAmmo",1)
goto Ready1
FireV://Lazy fix
AirStomp://Lazy fix
JumpStart://Lazy fix
goto Fire
Altfire:
QBUS B 0 A_JumpIfInventory("SlideLimitFlag",100,"Altfire2")
goto Ready1
Altfire2:
QBUS G 0 A_GiveInventory("CopySlideDelay",1)
QBUS G 0 A_GiveInventory("CopySlideAmmoPickup",1)
QBUS G 0 A_GiveInventory("VivifyDelay10",1)
QBUS G 0 A_Refire(1)
QBUS G 0 A_PlaySoundEx("weapon/GameBoyMMXDash","Weapon")
QBUS G 0 A_ChangeVelocity(30,0,momz,3)
QBUS G 0 A_SetArg(3,momy)
QBUS G 0 A_SetArg(2,momx)
QBUS G 0 A_ChangeFlag("SOLID",0)
goto AltfireH
AltfireH:
/*QBUS GGGGGGGGGG 1 A_GiveInventory("QuintSlide_Pickup",1)
QBUS G 1 OffSet(-10,52)A_ChangeVelocity(momx*0.75,momy*0.75,momz,2)
QBUS G 1 OffSet(-20,72)
QBUS B 2 OffSet(12,112)
QBUS B 6 OffSet(9,92)
QBUS B 6 OffSet(6,72)
//QBUS B 6 OffSet(3,52)*/ //32
QBUS B 1 Offset(31, 36) A_GiveInventory("QuintSlide_Pickup",1)
QBUS B 1 Offset(202, 81) A_GiveInventory("QuintSlide_Pickup",1)
TNT1 A 1 A_GiveInventory("QuintSlide_Pickup",1)
TNT1 A 1 Offset(1,31) A_GiveInventory("QuintSlide_Pickup",1)
QBUS G 1 Offset(78, 30) A_GiveInventory("QuintSlide_Pickup",1)
QBUS G 1 Offset(136, 30) A_GiveInventory("QuintSlide_Pickup",1)
QBUS G 1 Offset(181, 29) A_GiveInventory("QuintSlide_Pickup",1)
QBUS G 1 Offset(183, 31) A_GiveInventory("QuintSlide_Pickup",1)
QBUS G 1 Offset(183, 29) A_GiveInventory("QuintSlide_Pickup",1)
QBUS G 1 Offset(179, 31) A_GiveInventory("QuintSlide_Pickup",1)
QBUS G 1 Offset(179, 29) //A_ChangeVelocity(momx*0.75,momy*0.75,momz,2)
QBUS G 0 A_SpawnItemEx("ResolidifyPlayer_H")
QBUS G 1 Offset(183, 29)
QBUS G 1 Offset(179, 31)
QBUS G 1 Offset(183, 31)
QBUS G 1 Offset(136, 30)
QBUS G 1 Offset(129, 29)
QBUS G 1 Offset(78, 30)
QBUS G 1 Offset(1,31)
TNT1 A 11 Offset(202,81)
QBUS B 1 Offset(202, 81)
QBUS B 1 Offset(104, 51)
QBUS B 1 Offset(31, 36)A_WeaponReady(14)
goto Ready1

BotFire:
QBUS B 0 A_JumpIfCloser(64,2)
QBUS B 0 A_Jump(8,1)
goto Fire+1
QBUS B 0 A_SelectWeapon("SakugarneBoss")
goto Fire+1
Flash:
TNT1 A 1
stop
}
}

actor BackToTheAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
+INVENTORY.IGNORESKILL
}

actor MMXQuintAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 300
+INVENTORY.IGNORESKILL
}

actor QuintYesPogo :OnceC{}
actor QuintNoPogo :OnceC{}


actor QuintDive :OnceC{}

actor QuintIsAir :OnceC{}


actor SakuThrustDelay : Powerup
{
Powerup.Duration 2
}

actor SakuAmmoDelay : Powerup
{
+INVENTORY.ADDITIVETIME
Powerup.Duration 16
}

actor QuintSpinningDelay : Powerup
{
Powerup.Duration 88
}


actor SakuThrust_Pickup : CustomInventory
{
States
{
Pickup:
//TNT1 A 0 A_LOGINT(MOMX*MOMX+MOMY*MOMY)
//TNT1 A 0 A_LOGINT(MOMX)
//TNT1 A 0 A_LOGINT(MOMY)
TNT1 A 0 A_ChangeVelocity(1,0,-1,CVF_RELATIVE)
TNT1 A 0 A_ChangeVelocity((momx)*1.045,(momy)*1.045,(momz),CVF_REPLACE)
TNT1 A 0 A_JumpIfInventory("SakuThrustDelay",1,"No")
goto PickupFX
PickupFX:
TNT1 A 0 A_GiveInventory("SakuThrustDelay",1)
TNT1 A 0 A_SpawnItemEx("SakuTrailFX",0,0,0,0,0,0,0,1)
stop
No:
TNT1 A 0
stop
}
}

actor QuintDiveCancel_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("SakuThrustDelay",1,"Freeze")
TNT1 A 0
stop
Freeze:
TNT1 A 0 A_ScaleVelocity(.5)//A_TakeInventory("BackToTheAmmo",7)
stop
}
}

actor SakuArgMath_Pickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(Args[2]<0,"S_2")
TNT1 A 0 A_JumpIf(Args[3]<0,"S_3")
TNT1 A 0 A_ChangeVelocity(Args[2]+Args[3],0,16,3)
stop
S_2:
TNT1 A 0 A_JumpIf(Args[3]<0,"S_23")
TNT1 A 0 A_ChangeVelocity(Args[2]*-1+Args[3],0,16,3)
stop
S_3:
TNT1 A 0 A_ChangeVelocity(Args[2]+Args[3]*-1,0,16,3)
stop
S_23:
TNT1 A 0 A_ChangeVelocity(Args[2]*-1+Args[3]*-1,0,16,3)
stop
}
}

actor QuintDive_Pickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("QuintDive",1,"Pickup0X")
stop
Pickup0X:
TNT1 A 0 //A_Stop
TNT1 A 0 A_TakeInventory("QuintDive",9)
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,0,1)//SetPlayerProperty(0,1,0)
stop
}
}

actor QuintSlide_Pickup : CustomInventory
{
States
{
Pickup:
QSAK C 0 A_JumpIfInventory("FlightDisableFlag",1,"Dash2")
goto Dash1
Dash1:
TNT1 A 0 A_ChangeVelocity(args[2],args[3],0,CVF_REPLACE)
goto DashEnd
Dash2:
TNT1 A 0 A_ChangeVelocity(args[2],args[3],momz,CVF_REPLACE)
goto DashEnd
DashEnd:
TNT1 A 0 A_SpawnItemEx("SakuDashTrailFX",0,0,0,0,0,0,0,1)
stop
}
}

actor QuintAmmoHelp_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("SakuAmmoDelay",1,"No")
goto PickupA
PickupA:
TNT1 A 0 A_GiveInventory("BackToTheAmmo",1)
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"PickupA_R")
TNT1 A 0 A_GiveInventory("SakuAmmoDelay",1)
goto PickupA_R
PickupA_R:
TNT1 A 0 A_GiveInventory("SakuAmmoDelay",1)
stop
No:
TNT1 A 0
stop
}
}

actor QuintMMX_StaminaUse_H : BasicHelper
{
+SERVERSIDEONLY
States
{
Spawn:
TNT1 A 0
TNT1 A 5
Spawn2:
TNT1 A 0
TNT1 A 0 A_JumpIfInTargetInventory("SlideLimitRestoreDelay",1,2)
TNT1 A 0 A_GiveToTarget("MMXQuintAmmo",1)
TNT1 A 1 A_JumpIfInTargetInventory("QuintNoPogo",1,1)
TNT1 A 1
TNT1 A 0 A_JumpIfInTargetInventory("SlideLimitRestoreDelay",1,"Spawn2")
TNT1 A 0 A_JumpIfInTargetInventory("MMXQuintAmmo",300,"Death")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
loop
}
}

actor QuintMMX_StaminaUse_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("SlideLimitRestoreDelay",1)
TNT1 A 0 A_JumpIfInventory("MMXQuintAmmo",300,"Pickup_H")
TNT1 A 0 A_JumpIfInventory("MMXQuintAmmo",100,"Pickup2")
stop
Pickup_H:
TNT1 A 0 A_TakeInventory("MMXQuintAmmo",100,1)
TNT1 A 0 A_JumpIfInventory("MMXQuintAmmo",300,2)
TNT1 A 0 A_SpawnItemEx("QuintMMX_StaminaUse_H",0,0,24)
TNT1 A 0
stop
Pickup2:
TNT1 A 0 A_TakeInventory("MMXQuintAmmo",100,1)
stop
}
}


actor SakuShockwaveSpawner : BasicExplosion
{
Translation "202:202=214:214","199:199=248:248","204:204=215:215"
damagetype "Quint_Wave"//"Quint_SakuLand"
Obituary "$OB_QUINTEXPLODE"
States
{
Spawn:
TNT1 A 0 
TNT1 A 0 A_Explode(25,32,0,0,32)//im enabling this again using wave's hitbox to fix a bug
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,7,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,15,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,22,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,30,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,37,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,45,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,52,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,60,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,67,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,75,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,82,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,90,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,97,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,105,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,112,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,120,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,127,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,135,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,142,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,150,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,157,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,165,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,172,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,180,1)
TNT1 A 0 
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,187,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,195,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,202,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,210,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,217,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,225,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,232,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,240,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,247,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,255,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,262,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,270,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,277,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,285,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,292,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,300,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,307,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,315,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,322,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,330,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,337,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,345,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,352,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit",0,0,0,20,0,0,360,1)

TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,15,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,30,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,45,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,60,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,75,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,90,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,105,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,120,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,135,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,150,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,165,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,180,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,195,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,210,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,225,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,240,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,255,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,270,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,285,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,300,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,315,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,330,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBit32",0,0,0,20,0,0,345,1)
 
 
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,7,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,15,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,22,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,30,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,37,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,45,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,52,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,60,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,67,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,75,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,82,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,90,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,97,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,105,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,112,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,120,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,127,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,135,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,142,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,150,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,157,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,165,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,172,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,180,1)
TNT1 A 0 
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,187,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,195,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,202,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,210,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,217,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,225,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,232,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,240,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,247,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,255,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,262,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,270,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,277,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,285,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,292,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,300,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,307,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,315,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,322,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,330,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,337,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,345,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,352,1)
TNT1 A 0 A_SpawnItemEx("SakuShockwaveBitClientSide",0,0,0,20,0,0,360,1)

//TNT1 A 0 A_Explode(9,128,0,0,128)
TNT1 AAAAAAAAAA 0 A_SpawnItemEx("SakuRockCrushFX",0,0,5,0,random(2,8),random(5,10),random(0,360),1)
TNT1 A 1
stop
}
}

actor SakuShockwaveSpawnerB : SakuShockwaveSpawner{translation "202:202=205:205","199:199=74:74","204:204=205:205"}
actor SakuShockwaveSpawnerR : SakuShockwaveSpawner{translation "202:202=171:171","199:199=41:41","204:204=171:171"}
actor SakuShockwaveSpawnerO : SakuShockwaveSpawner{translation "202:202=104:104","199:199=128:128","204:204=104:104"}
actor SakuShockwaveSpawnerP : SakuShockwaveSpawner{translation "202:202=229:229","199:199=232:232","204:204=229:229"}


actor SakuShockwaveBit
{
PROJECTILE 
var int user_power;
damagetype "Quint_Wave"
Obituary "$OB_QUINTROCK"
+STEPMISSILE
+NOEXPLODEFLOOR
-NOGRAVITY
maxstepheight 64
gravity 555
Damage (25-user_power)
Radius 16//32 
Height 8
Speed 34
renderstyle none
XScale 1.0//2.0
YScale 1.0
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_GiveInventory("somesortofweirdassfloorhugger",1)
TNT1 A 0 A_SetUserVar("user_power",user_power+1)
QBOP G 1 A_GiveInventory("somesortofweirdassfloorhugger",1)
TNT1 A 0 A_SetUserVar("user_power",user_power+1)
QBOP G 1 A_GiveInventory("somesortofweirdassfloorhugger",1)
TNT1 A 0 A_SetUserVar("user_power",user_power+1)
QBOP G 1 A_GiveInventory("somesortofweirdassfloorhugger",1)
TNT1 A 0 A_SetUserVar("user_power",user_power+1)
QBOP G 1 A_GiveInventory("somesortofweirdassfloorhugger",1)
TNT1 A 0 A_SetUserVar("user_power",user_power+1)
QBOP G 1 A_GiveInventory("somesortofweirdassfloorhugger",1)
TNT1 A 0 A_SetUserVar("user_power",user_power+1)
QBOP G 1 A_GiveInventory("somesortofweirdassfloorhugger",1)
TNT1 A 0 A_SetUserVar("user_power",user_power+1)
QBOP G 1 A_GiveInventory("somesortofweirdassfloorhugger",1)
TNT1 A 0 A_SetUserVar("user_power",user_power+1)
QBOP G 1 A_GiveInventory("somesortofweirdassfloorhugger",1)
TNT1 A 0 A_SetUserVar("user_power",user_power+1)
QBOP G 1 A_GiveInventory("somesortofweirdassfloorhugger",1)
TNT1 A 0 A_SetUserVar("user_power",user_power+1)
QBOP G 1 A_GiveInventory("somesortofweirdassfloorhugger",1)
TNT1 A 0 A_SetUserVar("user_power",user_power+1)
QBOP G 1 A_GiveInventory("somesortofweirdassfloorhugger",1)
TNT1 A 0 A_SetUserVar("user_power",user_power+1)
QBOP G 1 A_GiveInventory("somesortofweirdassfloorhugger",1)
TNT1 A 0 A_SetUserVar("user_power",user_power+1)
QBOP G 1 A_GiveInventory("somesortofweirdassfloorhugger",1)
TNT1 A 0 A_SetUserVar("user_power",user_power+1)
QBOP G 1 A_GiveInventory("somesortofweirdassfloorhugger",1)
TNT1 A 0 A_SetUserVar("user_power",user_power+1)
SpawnLOOP:   
TNT1 A 0 A_GiveInventory("somesortofweirdassfloorhugger",1)
QBOP G 1 A_FadeOut(0.67)
SPAX F 0 A_SetScale(ScaleY-0.5)
//QBOP G 0 A_SetUserVar("user_power",2)
loop
Death:
TNT1 A 1
stop
}
} 

ACTOR SakuShockwaveBit32 : SakuShockwaveBit
{
Radius 32
}

actor somesortofweirdassfloorhugger : CustomInventory
{
States
{
Pickup:
TNT1 A 0 
TNT1 A 0 A_JumpIf(z-floorz>86,"GravitySqueez")
TNT1 A 0 A_ChangeFlag("NOGRAVITY",0)
stop
GravitySqueez:
TNT1 A 0 
TNT1 A 0 A_ChangeVelocity(velx,vely,0,CVF_REPLACE)
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
stop
}
}

actor SakuShockwaveBitClientSide : SakuShockwaveBit 
{
Damage(0)
renderstyle normal
+CLIENTSIDEONLY
}

actor Quint_WaveProtect : PowerProtection
{
Powerup.Duration 15
DamageFactor "Quint_Wave", 0.0//0.5
}

actor QuintLeapArmor : BasicArmorPickup
{
Armor.Savepercent 75
Armor.Saveamount 90
}

actor QuintLeapCrush
{
PROJECTILE
damagetype "Quint_Leap"
Obituary "$OB_QUINTCRUSH"
+DONTBLAST
+DONTREFLECT
+THRUGHOST
damage (30)
Radius 28
Height 2
renderstyle none
States
{
Spawn:
TNT1 A 1
stop
}
}

actor Quint_LeapWeaken : PowerDamage
{
Powerup.Duration 13
DamageFactor "Quint_Leap", 0.5
}

actor Quint_LeapProtect : PowerProtection
{
Powerup.Duration 12
DamageFactor "Quint_Leap", 0.0
}

actor QuintLeap_Pickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("VivifyDelay6",1)
TNT1 A 0 A_PlaySoundEx("weapon/ToadCrush","SoundSlot7")
goto PickupT
PickupT:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_JAX_CHECK_JUMP)==1,"PickupT2")
goto PickupT1
PickupT1:
TNT1 A 0 ThrustThingZ(0,60,0,0)
stop
PickupT2:
TNT1 A 0 ThrustThingZ(0,100,0,0)
stop
}
}


actor QuintSakuBlastLand : BasicExplosion
{
Translation "202:202=214:214","199:199=248:248"
damagetype "Quint_SakuLand"
Obituary "$OB_QUINTEXPLODE"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("QuintSakuBlastLandFX",frandom(0,6),0,-20,frandom(1,3),0,Frandom(2,6),random(0,17)*4,1)
TNT1 A 0 A_SpawnItemEx("QuintSakuBlastLandFX",frandom(0,6),0,-20,frandom(1,3),0,Frandom(2,6),random(18,35)*4,1)
TNT1 A 0 A_SpawnItemEx("QuintSakuBlastLandFX",frandom(0,6),0,-20,frandom(1,3),0,Frandom(2,6),random(36,53)*4,1)
TNT1 A 0 A_SpawnItemEx("QuintSakuBlastLandFX",frandom(0,6),0,-20,frandom(1,3),0,Frandom(2,6),random(54,71)*4,1)
TNT1 A 0 A_SpawnItemEx("QuintSakuBlastLandFX",frandom(0,6),0,-20,frandom(1,3),0,Frandom(2,6),random(72,89)*4,1)
//TNT1 A 0 A_Explode(8,128,0,0,128)
TNT1 A 4
stop
}
}
actor QuintSakuBlastLandB : QuintSakuBlastLand{Translation "202:202=205:205","199:199=74:74"}
actor QuintSakuBlastLandR : QuintSakuBlastLand{Translation "202:202=171:171","199:199=41:41"}
actor QuintSakuBlastLandO : QuintSakuBlastLand{Translation "202:202=104:104","199:199=128:128"}
actor QuintSakuBlastLandP : QuintSakuBlastLand{Translation "202:202=229:229","199:199=232:232"}


actor QuintSakuBlastLand2 : QuintSakuBlastLand
{
damagetype "Quint_SakuLand2"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(12,128,0,0,32)
TNT1 A 4
stop
}
}

actor QuintSakuBlastLandFX
{
+MISSILE
+DONTBLAST
+THRUACTORS
+CLIENTSIDEONLY
+FLOORCLIP
+DONTSPLASH
Damage (0)
Radius 3
Height 3
Speed 5
Scale 1.0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"Debris1","Debris2","Debris3","Debris4","Debris5")
Debris1:
QROC A -1
wait
Debris2:
QROC B -1
wait
Debris3:
QROC C -1
wait
Debris4:
QROC D -1
wait
Debris5:
QROC E -1
wait
}
}

actor QuintSakuAltSpin : BasicExplosion
{
damagetype "Quint_Spin"
Obituary "$OB_SAKUGARNE"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("QuintSakuAltSpinFX",0,0,8,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("QuintSakuAltSpinFX",0,0,8,0,0,0,180,1)
TNT1 A 4 A_Explode(7,64,0,0,64)
stop
}
}


actor QuintSakuAltSpinFX : BasicClientSide
{
renderstyle add
Scale 5.0
States
{
Spawn:
QROC H 0 A_SetAngle(angle-5)
QROC H 0 A_FadeOut(0.08)
QROC H 1 A_ChangeVelocity(10,0,8,3)
QROC I 0 A_SetAngle(angle-5)
QROC I 0 A_FadeOut(0.08)
QROC I 1 A_ChangeVelocity(10,0,8,3)
loop
}
}


actor SakuRockCrusher : BasicExplosion
{
Translation "202:202=214:214","199:199=248:248","204:204=215:215"
var int user_A;
var int user_R;
damagetype "Quint_Rock"
Obituary "$OB_QUINTROCK"
ReactionTime 24//2
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("misc/hugequake2","Weapon")
TNT1 A 0 A_PlaySoundEx("misc/hugequake2","Voice")
TNT1 A 0 A_Explode(8,128,0,0,128)
TNT1 A 0 A_SetUserVar("user_A",random(0,179))
TNT1 A 0 A_SetUserVar("user_R",user_A+180)
Spawn2:
TNT1 A 0 A_SpawnItemEx("SakuRockCrush",0,0,0,25,0,5,0+user_A,1)
TNT1 A 0 A_SpawnItemEx("SakuRockCrush",0,0,0,25,0,5,180+user_A,1)
TNT1 A 1 A_SpawnItemEx("SakuRockCrushFX",0,0,5,0,random(2,8),random(5,10),random(0,360),1,128)
TNT1 A 0 A_CountDown
TNT1 A 0 A_SetUserVar("user_A",user_A+15)
TNT1 A 0 A_JumpIf(user_A>=user_R,"Spawn3")
loop
Spawn3:
TNT1 A 0 A_SetUserVar("user_A",user_A+8)
TNT1 A 0 A_SetUserVar("user_R",user_R+188)
goto Spawn2
Death:
TNT1 AAAA 1 A_SpawnItemEx("SakuRockCrushFX",0,0,5,0,random(2,8),random(5,10),random(0,360),1)
stop
}
}

actor SakuRockCrusherB : SakuRockCrusher{Translation "202:202=205:205","199:199=74:74","204:204=205:205"}
actor SakuRockCrusherR : SakuRockCrusher{Translation "202:202=171:171","199:199=41:41","204:204=171:171"}
actor SakuRockCrusherO : SakuRockCrusher{Translation "202:202=104:104","199:199=128:128","204:204=104:104"}
actor SakuRockCrusherP : SakuRockCrusher{Translation "202:202=229:229","199:199=232:232","204:204=229:229"}


actor Quint_RockProtect : PowerProtection
{
Powerup.Duration 6
DamageFactor "Quint_Rock", 0.25
}

actor SakuRockCrush
{
PROJECTILE
damagetype "Quint_Rock"
Obituary "$OB_QUINTROCK"
-NOGRAVITY
+BOUNCEONFLOORS
+BOUNCEONWALLS
+BOUNCEONCEILINGS
//+ALLOWBOUNCEONACTORS
+CANBOUNCEWATER
WALLBOUNCEFACTOR 0.85
BOUNCEFACTOR 0.85
Bouncecount 3

+THRUSPECIES
//Species "DumbQuintRock"
//+SHOOTABLE
//-NOBLOCKMAP
//+DONTDRAIN
//+NOTARGETSWITCH
//+NOPAIN
Health 280

gravity 0.5
Damage (12)
Radius 18
Height 18
Speed 5
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
TNT1 A 1
TNT1 A 0 A_Jump(256,"Debris3","Debris4")
Debris3:
TNT1 A 0
QROC D -1
Debris4:
TNT1 A 0
QROC F -1
Death:
VMFX I 0 A_ChangeFlag("NOGRAVITY",1)
VMFX III 0 A_SpawnItemEx("SakuRockCrushFX",0,0,5,0,random(-5,5),random(5,8),random(0,360),1)
VMFX IJK 3 A_Stop
XMFX D 3 A_Stop
stop
}
}


actor SakuRockCrushFX
{
+MISSILE
+DONTBLAST
+THRUACTORS
+CLIENTSIDEONLY
+FLOORCLIP
+DONTSPLASH
Damage (0)//(100)
Radius 4//32
Height 4//32
Scale 2.0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"Debris1","Debris2","Debris3","Debris4")
Debris1:
QROC A -1
wait
Debris2:
QROC B -1
wait
Debris3:
QROC C -1
wait
Debris4:
QROC E -1
wait
Death:
TNT1 A 0 A_SpawnItemEx("SakuRockCrushFX2",0,0,20,0,0,0,0,1)
stop
}
}
actor SakuRockCrushFX2 : BasicClientSide
{
Scale 2.0
States
{
Spawn:
VMFX I 0
VMFX IJK 2
XMFX D 2
stop
}
}

actor SakuTrailFX : BasicClientSide
{
renderstyle translucent
alpha 0.9
states
{
Spawn:
QEGA Y 1 A_FadeOut(0.1)
loop
}
}
actor SakuDashTrailFX : BasicClientSide
{
renderstyle translucent
alpha 0.9
states
{
Spawn:
TNT1 A 1
QEGA K 1 A_SetTranslucent(0.9,1)
QEGA K 1 A_SetTranslucent(0.6,0)
QEGA K 1 A_SetTranslucent(0.8,1)
QEGA K 1 A_SetTranslucent(0.5,0)
QEGA K 1 A_SetTranslucent(0.7,1)
QEGA K 1 A_SetTranslucent(0.4,0)
stop
}
}

actor QShot
{
Translation "204:204=215:215","202:202=4:4","199:199=215:215"
PROJECTILE
damagetype "Quint_Shot"
Obituary "$OB_QUINTBUSTER"
+BRIGHT
Damage (12)
radius 10
height 10
Speed 25
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
QBUS L 1
wait
Death:
NEDR UVU 2
stop
}
}
actor QShotB : QShot{translation "204:204=205:205","202:202=4:4","199:199=205:205"}
actor QShotR : QShot{translation "204:204=171:171","202:202=4:4","199:199=171:171"}
actor QShotO : QShot{translation "204:204=104:104","202:202=4:4","199:199=104:104"}
actor QShotP : QShot{translation "204:204=229:229","202:202=4:4","199:199=229:229"}


actor QuintMain2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("QuintSakuBlastLand",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("QuintSakuBlastLandB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("QuintSakuBlastLandR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("QuintSakuBlastLandO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("QuintSakuBlastLandP",0,0,0,0)
goto Done
}
}

actor QuintMainX_CI : TeamColor_CI
{ 
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("SakuShockwaveSpawner",0,0,0,-50)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("SakuShockwaveSpawnerB",0,0,0,-50)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("SakuShockwaveSpawnerR",0,0,0,-50)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("SakuShockwaveSpawnerO",0,0,0,-50)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("SakuShockwaveSpawnerP",0,0,0,-50)
goto Done
Done:
TNT1 A 0 A_TakeInventory("BackToTheAmmo",7,1)
stop
}
}

actor QuintAltX_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("SakuRockCrusher",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("SakuRockCrusherB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("SakuRockCrusherR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("SakuRockCrusherO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("SakuRockCrusherP",0,0,0,0)
goto Done
}
}


actor QuintMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("QShot",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("QShotB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("QShotR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("QShotO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("QShotP",0,0,8,0)
goto Done
}
}
