actor RollSwingBoss : BaseMM8BDMWep_CBM
{
Tag "$TAGC_0E"
dropitem "RollSweepWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 0
Obituary "$OB_ROLLSWING"
Inventory.Pickupmessage "Power up! Roll Swing!"
weapon.ammotype "RollHealAmmo"
weapon.ammotype2 "RollHyperDashAmmo"
inventory.icon "Rol2Icon"
States
{
Spawn:
C_00 E 1
loop
//RSWB Z 1
Ready:
RSWB A 0 ACS_ExecuteAlways(998,0,DYE_ROLLC)
goto Ready2
Ready2:
RSWB A 2 A_WeaponReady
wait
Deselect:
RSWB A 0 A_TakeInventory("SecondSwing",999)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
RSWB A 1 offset(1,180)A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
RSWB A 1 offset(1,180)A_Raise
Loop

Fire:
RSWB A 0 A_PlaySoundEx("weapon/RollSwing","Weapon")
RSWB A 0 A_JumpIfInventory("RollSlideX",1,"FireX")
RSWB A 0 A_JumpIfInventory("SecondSwing",1,"Fire2")

RSWB A 0 A_GiveInventory("VivifyDelay5")
RSWB A 0 A_Refire(1)

RSWB B 1 OffSet(-40,35)
RSWB C 1 OffSet(-68,40)
RSWB D 1 OffSet(-90,44)
RSWB G 0 A_GiveInventory("PowerRollRepulsion",1)
RSWB C 0 A_GiveInventory("Roll_StaminaDelayW",1)
RSWB E 1 OffSet(-112,38)A_GiveInventory("RollMain_CI",1)
RSWB E 1 OffSet(-144,46)
RSWB E 1 OffSet(-176,54)
RSWB E 1 OffSet(-208,63)
RSWB E 1 OffSet(-243,76)SetPlayerProperty(0,0,0)
RSWB E 1 OffSet(-282,91)
TNT1 A 16
TNT1 A 0 A_GiveInventory("SecondSwing",15)
Goto ReadySwing

Fire2:
RSWB A 0 A_GiveInventory("VivifyDelay5")
RSWB A 0 A_Refire(1)

RSWB F 2 OffSet(-110,47)
RSWB C 0 A_GiveInventory("PowerRollRepulsionX",1)
RSWB C 0 A_GiveInventory("Roll_StaminaDelayW",1)
RSWB G 2 OffSet(-93,42)A_GiveInventory("RollMain1_CI",1)
RSWB G 2 OffSet(-46,33)
RSWB H 2 OffSet(-30,25)//SetPlayerProperty(0,0,0)
RSWB H 2 OffSet(19,19)
RSWB H 2 OffSet(72,21)
RSWB H 2 OffSet(129,33)

TNT1 A 6
TNT1 A 2 A_TakeInventory("SecondSwing")

RSWB A 2 OffSet(78,67)A_WeaponReady(1)
RSWB A 2 OffSet(54,54)A_WeaponReady(1)
RSWB A 2 OffSet(32,45)A_WeaponReady(1)
RSWB A 2 OffSet(16,39)A_WeaponReady(1)
RSWB A 2 OffSet(6,35)A_WeaponReady(1)
RSWB A 0
Goto Ready2


ReadySwing:
TNT1 A 0 A_TakeInventory("SecondSwing",1)
TNT1 A 1 A_WeaponReady
TNT1 A 0 //A_GiveInventory("",1)
TNT1 A 0 A_JumpIfInventory("SecondSwing",1,"ReadySwing")
TNT1 A 0 A_TakeInventory("SecondSwing",99)
goto ReadyX3
ReadyX3:
RSWB A 0 A_JumpIfInventory("PowerRage_ST",1,"ReadyX3Rage")
TNT1 A 1 OffSet(30,192)A_WeaponReady(1)
RSWB A 1 OffSet(25,167)A_WeaponReady(1)
RSWB A 1 OffSet(20,142)A_WeaponReady(1)
RSWB A 1 OffSet(16,122)A_WeaponReady(1)
RSWB A 1 OffSet(12,87)A_WeaponReady(1)
RSWB A 1 OffSet(9,72)A_WeaponReady(1)
RSWB A 1 OffSet(6,62)A_WeaponReady(1)
RSWB A 1 OffSet(4,52)A_WeaponReady(1)
RSWB A 1 OffSet(2,47)A_WeaponReady(1)
RSWB A 1 OffSet(1,42)A_WeaponReady(1)
Goto Ready2
ReadyX3Rage:
TNT1 A 1 OffSet(30,192)A_WeaponReady(1)
RSWB A 1 OffSet(20,142)A_WeaponReady(1)
RSWB A 1 OffSet(12,87)A_WeaponReady(1)
RSWB A 1 OffSet(6,62)A_WeaponReady(1)
RSWB A 1 OffSet(2,47)A_WeaponReady(1)
Goto Ready2

/*Fire2End:
RSWB A 1 OffSet(90,72)A_WeaponReady(1)
RSWB A 1 OffSet(77,66)A_WeaponReady(1)
RSWB A 1 OffSet(64,60)A_WeaponReady(1)
RSWB A 1 OffSet(53,55)A_WeaponReady(1)
RSWB A 1 OffSet(42,50)A_WeaponReady(1)
RSWB A 1 OffSet(33,46)A_WeaponReady(1)
RSWB A 1 OffSet(24,42)A_WeaponReady(1)
RSWB A 1 OffSet(17,39)A_WeaponReady(1)
RSWB A 1 OffSet(10,36)A_WeaponReady(1)
RSWB A 1 OffSet(5,34)A_WeaponReady(1)
Goto Ready2
Fire2End2Rage:
RSWB A 1 OffSet(90,72)A_WeaponReady(1)
RSWB A 1 OffSet(64,60)A_WeaponReady(1)
RSWB A 1 OffSet(42,50)A_WeaponReady(1)
RSWB A 1 OffSet(24,42)A_WeaponReady(1)
RSWB A 1 OffSet(10,36)A_WeaponReady(1)
Goto Ready2*/

FireX:
RSWB A 0 A_GiveInventory("VivifyDelay5")
RSWB B 1 OffSet(-40,35)
RSWB C 1 OffSet(-68,40)
RSWB D 1 OffSet(-90,44)
RSWB C 0 A_GiveInventory("Roll_StaminaDelayW",1)
RSWB C 0 A_GiveInventory("PowerRollRepulsionX",1)
RSWB E 1 OffSet(-112,38)A_GiveInventory("RollMainX_CI",1)
RSWB E 1 OffSet(-144,46)
RSWB E 1 OffSet(-176,54)
RSWB E 1 OffSet(-208,63)
RSWB E 0 A_TakeInventory("RollSlideX",99)
RSWB E 1 OffSet(-243,76) SetPlayerProperty(0,0,0)
goto Fire+13

NoAmmo:
goto Ready2
Altfire:
RSWB I 0 OffSet(-14,64)A_GiveInventory("RollSlideThrust_P")
RSWB I 0 A_Refire(1)
RSWB I 1 OffSet(-14,64)
RSWB I 1 OffSet(-32,41)
RSWB I 0 A_TakeInventory("SlideVivifyFlag",99)
RSWB I 10 OffSet(-56,15)A_WeaponReady(11)
RSWB I 3 OffSet(-43,35)A_WeaponReady(11)
RSWB I 3 OffSet(-26,60)A_WeaponReady(11)
RSWB I 2 OffSet(-4,91)A_WeaponReady(11)
RSWB I 0
Goto Ready2
}
}

actor RollBucketBoss : BaseMM8BDMWep_CBM
{
Tag "$TAGC_0E2"
dropitem "RollSweepWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 0
Obituary "$OB_ROLLBUCKET"
Inventory.Pickupmessage "Power up! Roll Bucket!"
weapon.ammotype "RollHealAmmo"
weapon.ammotype2 "RollHyperDashAmmo"
inventory.icon "Rol1Icon"
States
{
Spawn:
C_00 E 1
loop
//RSWB Z 1
Ready:
RSWB A 0 ACS_ExecuteAlways(998,0,DYE_ROLLC)
Goto Ready2
Ready2:
RSWB O 2 A_WeaponReady
wait
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
RSWB O 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
RSWB O 1 A_Raise
Loop
Fire:
RSWB O 0 A_JumpIfInventory("RollSlideX",1,"Fire2")
//RSWB O 0 SetPlayerProperty(0,0,0)
RSWB O 0 A_PlaySoundEx("weapon/WaveSummonGo","Weapon")
RSWB O 0 A_GiveInventory("RollMain2_CI",1)
RSWB O 2 OffSet(-5,22)
RSWB PQO 2 OffSet(-10,12)
RSWB O 2 OffSet(-5,22)SetPlayerProperty(0,0,0)
RSWB O 0 A_WeaponReady(14)
RSWB OOOO 2 SetPlayerProperty(0,0,0)
goto Ready2
Fire2:
RSWB O 0 A_TakeInventory("RollSlideX",99)
RSWB O 0 A_PlaySoundEx("weapon/WaveSummonGo","Weapon")
RSWB O 0 A_GiveInventory("RollMain2_CI",1)
RSWB O 2 OffSet(-5,22)
RSWB PQO 2 OffSet(-10,12)
RSWB O 2 OffSet(-5,22)SetPlayerProperty(0,0,0)
RSWB O 0 A_WeaponReady(14)
RSWB OOOO 2 SetPlayerProperty(0,0,0)
goto Ready2
NoAmmo:
RSWB O 0
goto Ready2

Altfire:
RSWB I 0 OffSet(-14,64)A_GiveInventory("RollSlideThrust_P")
RSWB I 0 A_Refire(1)
RSWB I 1 OffSet(-14,64)
RSWB I 1 OffSet(-32,41)
RSWB I 0 A_TakeInventory("SlideVivifyFlag",99)
RSWB I 10 OffSet(-56,15)A_WeaponReady(11)
RSWB I 3 OffSet(-43,35)A_WeaponReady(11)
RSWB I 3 OffSet(-26,60)A_WeaponReady(11)
RSWB I 2 OffSet(-4,91)A_WeaponReady(11)
RSWB I 0
Goto Ready2

}
}

actor RollHealAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 56
+INVENTORY.IGNORESKILL
}

actor RollHyperDashAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 777
+INVENTORY.IGNORESKILL
}

actor RollSlide : OnceC {}
actor RollSlideX : OnceC {}

actor PowerRollRepulsion : Powerup
{
Powerup.Duration 3
}
actor PowerRollRepulsionX : Powerup
{
Powerup.Duration 3
}

actor SecondSwing : Inventory
{
inventory.amount 1
inventory.maxamount 15
}

actor Roll_StaminaDelay : Powerup
{
Powerup.Duration -2
}
actor Roll_StaminaDelayW : Powerup
{
Powerup.Duration -1
}
actor Roll_StaminaUse_H : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 5
Spawn2:
TNT1 A 0 A_JumpIfInTargetInventory("Roll_StaminaDelay",1,3)
TNT1 A 0 A_JumpIfInTargetInventory("Roll_StaminaDelayW",1,2)
TNT1 A 0 A_GiveToTarget("RollHyperDashAmmo",1)
TNT1 A 1
TNT1 A 0 A_JumpIfInTargetInventory("Roll_StaminaDelay",1,"Spawn2")
TNT1 A 0 A_JumpIfInTargetInventory("RollHyperDashAmmo",777,"Death")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
loop
}
}

actor RollSlideThrust_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("RollSlideFX",-10,0,16,0,0,0,0,1)

TNT1 A 0 A_TakeInventory("SecondSwing")
TNT1 A 0 A_GiveInventory("SlideVivifyFlag",1)
//TNT1 A 0 A_GiveInventory("PowerRollDashing",1)
RSWB I 0 A_GiveInventory("RollSlide",1)
RSWB I 0 A_GiveInventory("RollSlideX",1)
TNT1 A 0 A_PlaySoundEx("weapon/superboost","Body")
//TNT1 A 0 SetPlayerProperty(0,1,0) 
TNT1 A 0 A_JumpIfInventory("RollHyperDashAmmo",777,"Pickup_H")
TNT1 A 0 A_JumpIfInventory("RollHyperDashAmmo",111,"Pickup2")
goto Pickup1

Pickup_H:
TNT1 A 0 A_SpawnItemEx("Roll_StaminaUse_H",0,0,24)
goto Pickup2

Pickup1:
TNT1 A 0 A_GiveInventory("Roll_StaminaDelayW",1)
TNT1 A 0 A_JumpIf(z-floorz==0,"PickupG1")
TNT1 A 0 A_ChangeVelocity(13,0,momz,3)
TNT1 A 0 ThrustThingZ(0,6,0,1)
stop
PickupG1:
TNT1 A 0 A_ChangeVelocity(17,0,momz,3)
TNT1 A 0 ThrustThingZ(0,14,0,0)
stop
Pickup2:
TNT1 A 0 A_GiveInventory("Roll_StaminaDelay",1)
TNT1 A 0 A_JumpIf(z-floorz==0,"PickupG2")
//TNT1 A 0 A_Recoil(-20)//-23
//TNT1 A 0 ThrustThingZ(0,12,0,1)
TNT1 A 0 A_ChangeVelocity(26,0,momz,3)
TNT1 A 0 ThrustThingZ(0,12,0,1)
goto End
PickupG2:
//TNT1 A 0 A_Recoil(-25)//-28
//TNT1 A 0 ThrustThingZ(0,28,0,0) 
TNT1 A 0 A_ChangeVelocity(34,0,momz,3)
TNT1 A 0 ThrustThingZ(0,28,0,0)
goto End
End:
TNT1 A 0 A_TakeInventory("RollHyperDashAmmo",111,1)
stop
}
}

actor RollSlideFX : BasicClientSide
{
Scale 2.5
States
{
Spawn:
RSWD MNOPQ 3
stop
}
}

actor BossRollSwing
{
Translation "199:199=197:197", "202:202=196:196"
PROJECTILE
damagetype "Roll_Swing"
Obituary "$OB_ROLLSWING"
var int user_d;
+DONTBLAST
+THRUACTORS
ReactionTime 1
Damage (0)
Radius 20
Height 16
speed 30
Scale 2.5
States
{
Spawn://HIJKL
PLUH PP 0
PLUH PP 1 A_SpawnItemEx("RollSwing20_D")
PLUH QQ 1 A_SpawnItemEx("RollSwing18_D")
PLUH RR 1 A_SpawnItemEx("RollSwing16_D")
PLUH SS 1 A_SpawnItemEx("RollSwing14_D")
PLUH TT 1 A_SpawnItemEx("RollSwing12_D")
stop
}
}

actor BossRollSwingB : BossRollSwing{translation "202:202=205:205", "199:199=74:74"}
actor BossRollSwingR : BossRollSwing{translation "202:202=171:171", "199:199=41:41"}
actor BossRollSwingO : BossRollSwing{translation "202:202=104:104", "199:199=128:128"}
actor BossRollSwingP : BossRollSwing{translation "202:202=229:229", "199:199=232:232"}

actor BossRollSwing2 : BossRollSwing
{
States
{
Spawn:
PLUH KK 0
PLUH KK 1 A_SpawnItemEx("RollSwing20_D")
PLUH LL 1 A_SpawnItemEx("RollSwing18_D")
PLUH MM 1 A_SpawnItemEx("RollSwing16_D")
PLUH NN 1 A_SpawnItemEx("RollSwing14_D")
PLUH OO 1 A_SpawnItemEx("RollSwing12_D")
stop
}
}
actor BossRollSwing2B : BossRollSwing2{translation "202:202=205:205", "199:199=74:74"}
actor BossRollSwing2R : BossRollSwing2{translation "202:202=171:171", "199:199=41:41"}
actor BossRollSwing2O : BossRollSwing2{translation "202:202=104:104", "199:199=128:128"}
actor BossRollSwing2P : BossRollSwing2{translation "202:202=229:229", "199:199=232:232"}

actor BossRollSwingX : BossRollSwing   {Speed 38}
actor BossRollSwingXB : BossRollSwingB {Speed 38}
actor BossRollSwingXR : BossRollSwingR {Speed 38}
actor BossRollSwingXO : BossRollSwingO {Speed 38}
actor BossRollSwingXP : BossRollSwingP {Speed 38}

actor RollSwing20_D
{
PROJECTILE
damagetype "Roll_Swing"
Obituary "$OB_ROLLSWING"
+RIPPER
+DONTBLAST
+DONTSPLASH
Renderstyle None
damage (16)//140
radius 45
height 45//28
States
{
Spawn:
TNT1 AA 0
TNT1 A 1//0
stop
}
}

actor RollSwing18_D : RollSwing20_D {damage (14)}
actor RollSwing16_D : RollSwing20_D {damage (12)}
actor RollSwing14_D : RollSwing20_D {damage (10)}
actor RollSwing12_D : RollSwing20_D {damage (8)}

actor Roll_SwingProtect : PowerProtection
{
Powerup.Duration 15
DamageFactor "Roll_Swing", 0.0
}

actor RollCleanserShot
{
Translation "199:199=197:197", "202:202=196:196"
PROJECTILE
damagetype "Roll_Cleanse"
Obituary "$OB_ROLLBUCKET"
-NOGRAVITY

+BOUNCEONCEILINGS
+BOUNCEONWALLS
BounceCount 4
BounceFactor 0.25
WallBounceFactor 0.01


+THRUSPECIES
Species "RollStuff"
MeleeRange 8
Damage (15)
Height 10
Radius 9
speed 32
Scale 2.0
States
{
Spawn:
Y_1H R 0
Y_1H R 0 ThrustThingZ(0,MeleeRange,0,1)
Y_1H R 1
wait
Crash:
XDeath:
TNT1 A 1
stop
DeathF:
TNT1 A 1 A_SpawnItemEx("RollCleanserBlob",0,0,0,0,0,0,0,1)
stop
Death:
TNT1 A 0
TNT1 A 0 A_JumpIf(z-floorz<=9,"DeathF")
TNT1 A 1 A_SpawnItemEx("RollCleanserBlob",0,0,0,0,0,-1,0,1)
stop

//Y_1H R 0 A_JumpIf(z-floorz<=0,"Death2")
//Y_1H R 1 A_GiveInventory("CutterFlag",1)
//Y_1H R 0 A_JumpIfInventory("CutterFlag",175,"Xdeath")
//loop
//Death2:
//Y_1H R 1 A_SpawnItemEx("RollCleanserBlob",0,0,0,0,0,0,0,1)
//stop
}
}

actor RollCleanserShotB : RollCleanserShot{translation "202:202=205:205", "199:199=74:74"}
actor RollCleanserShotR : RollCleanserShot{translation "202:202=171:171", "199:199=41:41"}
actor RollCleanserShotO : RollCleanserShot{translation "202:202=104:104", "199:199=128:128"}
actor RollCleanserShotP : RollCleanserShot{translation "202:202=229:229", "199:199=232:232"}


Actor RollCleanserBlob
{
//Translation "240:255=197:197", "47:47=196:196"
Obituary "$OB_ROLLBUCKET"
damagetype "Roll_CleanseShock"
+MISSILE
+NODAMAGETHRUST
+NOBLOOD
+DONTSPLASH
+NOEXPLODEFLOOR
+NOTARGETSWITCH
+HEXENBOUNCE
+BOUNCEONFLOORS
BounceCount 2
BounceFactor 0.0
WallBounceFactor 0.0

+MOVEWITHSECTOR

+THRUSPECIES
Species "RollStuff"
reactiontime 250
painchance 256
mass 99999

Damage (10)
Height 10
Radius 9
scale 2.5
states
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
Y_1H M 0
Y_1H R 1
Goto Spawn2
Spawn2:
Y_1H R 1 A_Stop
Goto SlideWait
SlideWait:
Y_1H S 1
Y_1H L 0 A_GiveInventory("CutterFlag",1)
//Y_1H L 0 A_JumpIf(z-floorz>0,"NewShot")
Y_1H L 0 A_JumpIfInventory("CutterFlag",175,"Death")
Y_1H L 0 A_JumpIfInTargetInventory("PowerRollRepulsion",1,"NewShotFling")
Y_1H L 0 A_JumpIfInTargetInventory("PowerRollRepulsionX",1,"NewShotFling2")
loop
NewShot:
Y_1H K 0 A_CheckFlag("BLASTED","NewShotX")
Goto Death
NewShotX:
Y_1H K 0 A_SpawnItemEx("RollCleanserShot2",0,0,0,momx,momy,momz,0,9)
Goto Death

NewShotFling:
Y_1H K 0 A_JumpIfCloser(192,"NewShotFlingX")
goto SlideWait
NewShotFlingX:
Y_1H K 0 A_FaceTarget
Y_1H S 1 A_ChangeVelocity(-25,0,7.25,3)
Y_1H K 0 //A_SpawnItemEx("RollCleanserShot2",0,0,0,-25,0,7,0,1)
Goto NewShotX
NewShotFling2:
Y_1H K 0 A_JumpIfCloser(192,"NewShotFling2X")
goto SlideWait
NewShotFling2X:
Y_1H K 0 A_FaceTarget
Y_1H S 1 A_ChangeVelocity(-40,0,7.25,3)
Y_1H K 0 //A_SpawnItemEx("RollCleanserShot2",0,0,0,-40,0,7,0,1)
Goto NewShotX
Death:
Y_1H A 0
stop
}
}

actor RollCleanserShot2 : RollCleanserShot
{
//Translation "240:255=197:197", "47:47=196:196"
Damage (15) // [JD] 30 -> 15
damagetype "Roll_CleanseShock"
}


actor UnholyCopyHealthShot
{
PROJECTILE
+NOGRAVITY
+THRUGHOST
+DONTBLAST
+DONTREFLECT
radius 2
height 2
Speed 50
scale 2.0
RenderStyle "Translucent"
Alpha 0.25
ReactionTime 3
States
{
Spawn:
RSWB N 0
RSWB NNNN 1 A_SpawnItemEx("RollHealFXO",0,random(-20,20),random(-2,28),0,0,0,0,0)
RSWB N 0 A_CountDown
loop
Death:
RSWB NNNNNNNNNNNNNNNNNNNNN 1 A_FadeIn(0.05)
RSWB N 0 A_SpawnItemEx("RollHeal_P",0,0,0)
stop
}
}


actor RollHealItem : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
tag "$TAGC_0A2"
inventory.icon "RollIcon"
inventory.pickupmessage "Congartulations!"
scale 2.0
+INVBAR
states
{
Spawn:
RSWB X 1
loop
Use:
TNT1 A 0 A_JumpIfInventory("RollHealAmmo",14,"Success")
fail
Success:
TNT1 A 0 A_PlaySoundEx("weapon/RollHeal","SoundSlot7")
TNT1 A 0 A_JumpIfInventory("RollHealAmmo",28,"Success2")
//TNT1 A 0 A_FireCustomMissile("RollHealX",0,0,0,0)
//TNT1 A 0 //A_SpawnItemEx("RollHeal_P",40,0,256,0,0,0,0,32,0)
TNT1 A 0 A_TakeInventory("RollHealAmmo",14)
TNT1 A 0 A_GiveInventory("RollOther2_CI",1)
fail
Success2:
TNT1 A 0 A_TakeInventory("RollHealAmmo",28)
TNT1 A 0 A_GiveInventory("RollOther_CI",1)
fail
}
}


actor RollHealX : UnholyCopyHealthShot
{
States
{
Death:
RSWB MMMMMMMMMMMMMMMMMMMMM 1 A_FadeIn(0.05)
RSWB M 0 A_SpawnItemEx("RollHeal_P",0,0,0)
stop
}
}

actor RollHealShot
{
Translation"195:195=110:110","250:250=104:104","249:249=130:130"
PROJECTILE
-SOLID
+NOGRAVITY
//+THRUACTORS
//+THRUGHOST
+DONTBLAST
+DONTREFLECT
RenderStyle "Translucent"
Alpha 0.25
ReactionTime 1
radius 2
height 2
Speed 50
scale 2.0
States
{
Spawn:
RSWB S 0
RSWB SSSSSSSSSSSS 1 A_SpawnItemEx("RollHealFX",0,random(-20,20),random(-2,28),0,0,0,0,1)
RSWB S 1 A_CountDown
wait
Death:
RSWB S 0 A_SpawnItemEx("RollHeal_P",0,0,0,0,0,0,0,1)
stop
}
}

actor RollHealShotB : RollHealShot
{
Translation"195:195=74:74","250:250=196:196","249:249=199:199"
States
{
Death:
RSWB RRRRRRRRRRRRRRRR 1 A_FadeIn(0.05)
RSWB R 0 A_SpawnItemEx("RollHealB_P",0,0,0,0,0,0,0,1)
stop
}
}
actor RollHealShotR : RollHealShot
{
Translation"195:195=41:41","250:250=170:170","249:249=43:43"
States
{
Death:
RSWB RRRRRRRRRRRRRRRR 1 A_FadeIn(0.05)
RSWB R 0 A_SpawnItemEx("RollHealR_P",0,0,0,0,0,0,0,1)
stop
}
}
actor RollHealShotO : RollHealShot
{
Translation"195:195=128:128","250:250=138:138","249:249=131:131"
States
{
Death:
RSWB RRRRRRRRRRRRRRRR 1 A_FadeIn(0.05)
RSWB R 0 A_SpawnItemEx("RollHealO_P",0,0,0,0,0,0,0,1)
stop
}
}
actor RollHealShotP : RollHealShot
{
Translation"195:195=232:232","250:250=214:214","249:249=223:223"
States
{
Death:
RSWB RRRRRRRRRRRRRRRR 1 A_FadeIn(0.05)
RSWB R 0 A_SpawnItemEx("RollHealP_P",0,0,0,0,0,0,0,1)
stop
}
}

actor RollHealShot2 : RollHealShot
{
States
{
Spawn:
RSWB U 0
RSWB UUUUUUUUUUUU 1 A_SpawnItemEx("RollHealFX",0,random(-16,16),random(-2,22),0,0,0,0,1)
RSWB U 1 A_CountDown
wait
Death:
RSWB T 0 A_SpawnItemEx("RollHeal2_P",0,0,0,0,0,0,0,1)
stop
}
}

actor RollHealShot2B : RollHealShot2
{
Translation"195:195=74:74","250:250=196:196","249:249=199:199"
States
{
Death:
RSWB TTTTTTTTTTTTTTTT 1 A_FadeIn(0.05)
RSWB T 0 A_SpawnItemEx("RollHeal2B_P",0,0,0,0,0,0,0,1)
stop
}
}
actor RollHealShot2R : RollHealShot2
{
Translation"195:195=41:41","250:250=170:170","249:249=43:43"
States
{
Death:
RSWB TTTTTTTTTTTTTTTT 1 A_FadeIn(0.05)
RSWB T 0 A_SpawnItemEx("RollHeal2R_P",0,0,0,0,0,0,0,1)
stop
}
}
actor RollHealShot2O : RollHealShot2
{
Translation"195:195=128:128","250:250=138:138","249:249=131:131"
States
{
Death:
RSWB TTTTTTTTTTTTTTTT 1 A_FadeIn(0.05)
RSWB T 0 A_SpawnItemEx("RollHeal2O_P",0,0,0,0,0,0,0,1)
stop
}
}
actor RollHealShot2P : RollHealShot2
{
Translation"195:195=232:232","250:250=214:214","249:249=223:223"
States
{
Death:
RSWB TTTTTTTTTTTTTTTT 1 A_FadeIn(0.05)
RSWB T 0 A_SpawnItemEx("RollHeal2P_P",0,0,0,0,0,0,0,1)
stop
}
}

actor RollHeal_P : CustomInventory
{
inventory.pickupmessage "Picked up Roll's large health gift."
//inventory.pickupsound "item/energyup"
Gravity 0.5
ReactionTime 42
Scale 2.0
States
{
Spawn:
RSWB R 0
RSWB R 0 A_SpawnItemEx("RollHealFX1",0,0,0,0,0,0,0,1)
RSWB T 0 A_SetArg(0,Args[0]+8)
RSWB RSRS 6
RSWB R 0 A_CountDown
loop
Pickup:
Health:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(CBM_FetchMyHealth,2)==0,"SnatchCheck")
TNT1 A 0 A_PlaySound("item/energyup",3,1.0)
TNT1 A 0 ACS_ExecuteAlways(CBM_HealMyThing,0,1,40)
stop
SnatchCheck:
TNT1 A 0 A_JumpIfInventory("CanSnatch_F",1,"TheSnatch")
goto Health+1
TheSnatch:
TNT1 A 0 A_GiveInventory("SnatchItems_P2",1)
stop
NoF:
TNT1 A 0
fail
}
}

actor RollHeal2_P : RollHeal_P
{
inventory.pickupmessage "Picked up Roll's health gift."
States
{
Spawn:
RSWB T 0
RSWB T 0 A_SpawnItemEx("RollHealFX1",0,0,0,0,0,0,0,1)
RSWB T 0 A_SetArg(0,Args[0]+8)
RSWB TUTU 6
RSWB T 0 A_CountDown
loop
Pickup:
Health:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(CBM_FetchMyHealth,2)==0,"SnatchCheck")
TNT1 A 0 A_PlaySound("item/energyup",3,1.0)
TNT1 A 0 ACS_ExecuteAlways(CBM_HealMyThing,0,1,20)
stop
SnatchCheck:
TNT1 A 0 A_JumpIfInventory("CanSnatch_F",1,"TheSnatch")
goto Health+1
TheSnatch:
TNT1 A 0 A_GiveInventory("SnatchItems_P1",1)
stop
}
}

actor RollHealB_P : RollHeal_P
{
States
{
Spawn:
RSWB R 0
RSWB R 0 A_SpawnItemEx("RollHealFX1B",0,0,0,0,0,0,0,1)
RSWB T 0 A_SetArg(0,Args[0]+8)
RSWB RSRS 6 A_GiveToTarget("RollHealItemTemporal",1)
RSWB R 0 A_CountDown
loop
Pickup:
TNT1 A 0 A_JumpIfInventory("RollHealItemTemporal",1,"NoF")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==0,"Health")
goto HealthSteal
Health:
TNT1 A 0 A_JumpIfInventory("RollHealItem",1,"NoF")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(CBM_FetchMyHealth,2)==0,"NoF")
TNT1 A 0 A_PlaySound("item/energyup",3,1.0)
TNT1 A 0 ACS_ExecuteAlways(CBM_HealMyThing,0,1,40)
stop
HealthSteal:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(CBM_FetchMyHealth,2)==0,"SnatchCheck")
TNT1 A 0 A_PlaySound("item/energyup",3,1.0)
TNT1 A 0 ACS_ExecuteAlways(CBM_HealMyThing,0,1,20)
stop
SnatchCheck:
TNT1 A 0 A_JumpIfInventory("CanSnatch_F",1,"TheSnatch")
goto HealthSteal+1
}
}

ACTOR RollHealItemTemporal : powerup
{
 powerup.duration 4
}

actor RollHeal2B_P : RollHeal2_P
{
States
{
Spawn:
RSWB T 0
RSWB T 0 A_SpawnItemEx("RollHealFX1B",0,0,0,0,0,0,0,1)
RSWB T 0 A_SetArg(0,Args[0]+8)
RSWB TUTU 6 A_GiveToTarget("RollHealItemTemporal",1)
RSWB T 0 A_CountDown
loop
Pickup:
TNT1 A 0 A_JumpIfInventory("RollHealItemTemporal",1,"NoF")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==0,"Health")
Health:
TNT1 A 0 A_JumpIfInventory("RollHealItem",1,"NoF")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(CBM_FetchMyHealth,2)==0,"NoF")
TNT1 A 0 A_PlaySound("item/energyup",3,1.0)
TNT1 A 0 ACS_ExecuteAlways(CBM_HealMyThing,0,1,20)
stop
HealthSteal:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(CBM_FetchMyHealth,2)==0,"SnatchCheck")
TNT1 A 0 A_PlaySound("item/energyup",3,1.0)
TNT1 A 0 ACS_ExecuteAlways(CBM_HealMyThing,0,1,10)
stop
SnatchCheck:
TNT1 A 0 A_JumpIfInventory("CanSnatch_F",1,"TheSnatch")
goto Health+1
TheSnatch:
TNT1 A 0 A_GiveInventory("SnatchItems_P1",1)
stop
}
}

actor RollHealR_P : RollHealB_P
{
States
{
Spawn:
RSWB R 0
RSWB R 0 A_SpawnItemEx("RollHealFX1R",0,0,0,0,0,0,0,1)
RSWB T 0 A_SetArg(0,Args[0]+8)
RSWB RSRS 6 A_GiveToTarget("RollHealItemTemporal",1)
RSWB R 0 A_CountDown
loop
Pickup:
TNT1 A 0 A_JumpIfInventory("RollHealItemTemporal",1,"NoF")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==1,"Health")
goto HealthSteal
}
}
actor RollHeal2R_P : RollHeal2B_P
{
States
{
Spawn:
RSWB T 0
RSWB T 0 A_SpawnItemEx("RollHealFX1R",0,0,0,0,0,0,0,1)
RSWB T 0 A_SetArg(0,Args[0]+8)
RSWB TUTU 6 A_GiveToTarget("RollHealItemTemporal",1)
RSWB T 0 A_CountDown
loop
Pickup:
TNT1 A 0 A_JumpIfInventory("RollHealItemTemporal",1,"NoF")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==1,"Health")
goto HealthSteal
}
}

actor RollHealO_P : RollHealB_P
{
States
{
Spawn:
RSWB R 0
RSWB R 0 A_SpawnItemEx("RollHealFX1O",0,0,0,0,0,0,0,1)
RSWB T 0 A_SetArg(0,Args[0]+8)
RSWB RSRS 6 A_GiveToTarget("RollHealItemTemporal",1)
RSWB R 0 A_CountDown
loop
Pickup:
TNT1 A 0 A_JumpIfInventory("RollHealItemTemporal",1,"NoF")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==2,"Health")
goto HealthSteal
}
}
actor RollHeal2O_P : RollHeal2B_P
{
States
{
Spawn:
RSWB T 0
RSWB T 0 A_SpawnItemEx("RollHealFX1O",0,0,0,0,0,0,0,1)
RSWB T 0 A_SetArg(0,Args[0]+8)
RSWB TUTU 6 A_GiveToTarget("RollHealItemTemporal",1)
RSWB T 0 A_CountDown
loop
Pickup:
TNT1 A 0 A_JumpIfInventory("RollHealItemTemporal",1,"NoF")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==2,"Health")
goto HealthSteal
}
}

actor RollHealP_P : RollHealB_P
{
States
{
Spawn:
RSWB R 0
RSWB R 0 A_SpawnItemEx("RollHealFX1P",0,0,0,0,0,0,0,1)
RSWB T 0 A_SetArg(0,Args[0]+8)
RSWB RSRS 6 A_GiveToTarget("RollHealItemTemporal",1)
RSWB R 0 A_CountDown
loop
Pickup:
TNT1 A 0 A_JumpIfInventory("RollHealItemTemporal",1,"NoF")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==3,"Health")
goto HealthSteal
}
}
actor RollHeal2P_P : RollHeal2B_P
{
States
{
Spawn:
RSWB T 0
RSWB T 0 A_SpawnItemEx("RollHealFX1P",0,0,0,0,0,0,0,1)
RSWB T 0 A_SetArg(0,Args[0]+8)
RSWB TUTU 6 A_GiveToTarget("RollHealItemTemporal",1)
RSWB T 0 A_CountDown
loop
Pickup:
TNT1 A 0 A_JumpIfInventory("RollHealItemTemporal",1,"NoF")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==3,"Health")
goto HealthSteal
}
}


actor RollHealFX1 : BasicClientSide
{
var int user_A;
reactiontime 12
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("RollHealFX2",0,0,10,12,0,0,30*user_A,1)
TNT1 A 0 A_SetUserVar("user_A",user_A+1)
TNT1 A 0 A_Countdown
loop
Death:
TNT1 A 0
stop
}
}

actor RollHealFX1B : RollHealFX1
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("RollHealFX2B",0,0,10,12,0,0,30*user_A,1)
TNT1 A 0 A_SetUserVar("user_A",user_A+1)
TNT1 A 0 A_Countdown
loop
}
}
actor RollHealFX1R : RollHealFX1
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("RollHealFX2R",0,0,10,12,0,0,30*user_A,1)
TNT1 A 0 A_SetUserVar("user_A",user_A+1)
TNT1 A 0 A_Countdown
loop
}
}
actor RollHealFX1O : RollHealFX1
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("RollHealFX2O",0,0,10,12,0,0,30*user_A,1)
TNT1 A 0 A_SetUserVar("user_A",user_A+1)
TNT1 A 0 A_Countdown
loop
}
}
actor RollHealFX1P : RollHealFX1
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("RollHealFX2P",0,0,10,12,0,0,30*user_A,1)
TNT1 A 0 A_SetUserVar("user_A",user_A+1)
TNT1 A 0 A_Countdown
loop
}
}


actor RollHealFX2 : BasicClientSide
{
ReactionTime 3
states
{
Spawn:
TNT1 A 3 A_CountDown
TNT1 A 0 A_SpawnItemEx("RollHealFX",0,0,0,0,0,1,0,1)
loop
}
}

actor RollHealFX2B : RollHealFX2
{
states
{
Spawn:
TNT1 A 3
TNT1 AAA 3 A_SpawnItemEx("RollHealFXB",0,0,0,0,0,1,0,1)
stop
}
}
actor RollHealFX2R : RollHealFX2
{
states
{
Spawn:
TNT1 A 3
TNT1 AAA 3 A_SpawnItemEx("RollHealFXR",0,0,0,0,0,1,0,1)
stop
}
}
actor RollHealFX2O : RollHealFX2
{
states
{
Spawn:
TNT1 A 3
TNT1 AAA 3 A_SpawnItemEx("RollHealFXO",0,0,0,0,0,1,0,1)
stop
}
}
actor RollHealFX2P : RollHealFX2
{
states
{
Spawn:
TNT1 A 3
TNT1 AAA 3 A_SpawnItemEx("RollHealFXP",0,0,0,0,0,1,0,1)
stop
}
}

actor RollHealFX : BasicClientSide
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(64,"Spawn3")
TNT1 A 0 A_Jump(128,"Spawn2")
Spawn1:
V_0C AAABBB 1 A_FadeOut(0.05)
loop
Spawn2:
V_0C CCCDDD 1 A_FadeOut(0.05)
loop
Spawn3:
V_0C EEEFFF 1 A_FadeOut(0.05)
loop
}
}
actor RollHealFXB : RollHealFX
{
VisibleToTeam 0
}
actor RollHealFXR : RollHealFX
{
VisibleToTeam 1
}
actor RollHealFXO : RollHealFX
{
VisibleToTeam 2
}
actor RollHealFXP : RollHealFX
{
VisibleToTeam 3
}



actor RollMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("BossRollSwing",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("BossRollSwingB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("BossRollSwingR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("BossRollSwingO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("BossRollSwingP",0,0,0,0)
goto Done
}
}

actor RollMain1_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("BossRollSwing2",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("BossRollSwing2B",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("BossRollSwing2R",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("BossRollSwing2O",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("BossRollSwing2P",0,0,0,0)
goto Done
}
}

actor RollMainX_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("BossRollSwingX",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("BossRollSwingXB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("BossRollSwingXR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("BossRollSwingXO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("BossRollSwingXP",0,0,0,0)
goto Done
}
}

actor RollMain2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("RollCleanserShot",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("RollCleanserShotB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("RollCleanserShotR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("RollCleanserShotO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("RollCleanserShotP",0,0,0,0)
goto Done
}
}

actor RollOther_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("RollHealShot",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("RollHealShotB",0,0,0,0)
TNT1 A 0 //HealThing(25)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("RollHealShotR",0,0,0,0)
TNT1 A 0 //HealThing(25)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("RollHealShotO",0,0,0,0)
TNT1 A 0 //HealThing(25)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("RollHealShotP",0,0,0,0)
TNT1 A 0 //HealThing(25)
goto Done
}
}
actor RollOther2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("RollHealShot2",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("RollHealShot2B",0,0,0,0)
TNT1 A 0 //HealThing(10)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("RollHealShot2R",0,0,0,0)
TNT1 A 0 //HealThing(10)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("RollHealShot2O",0,0,0,0)
TNT1 A 0 //HealThing(10)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("RollHealShot2P",0,0,0,0)
TNT1 A 0 //HealThing(10)
goto Done
Done:
stop
}
}

