actor DarkShieldBoss : BaseMM8BDMWep_CBM
{
Tag "$TAGC_5J"
dropitem "DarkShieldWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 28
Obituary "$OB_DARK2SHIELD"
Inventory.Pickupmessage "still no"
weapon.ammotype "Darkman2ShieldAmmo"
+WEAPON.NOAUTOAIM
States
{
Spawn:
C_05 J 1
loop
Ready:
DKC2 A 0 ACS_ExecuteAlways(998,0,DYE_DARKMAN2)
DKC2 A 0 A_GunFlash
DKC2 A 1 A_WeaponReady
DKC2 A 0 A_GiveInventory("Darkman2ShieldAmmo_P",1)
Goto Ready+2
Ready2:
DKC2 A 1 A_WeaponReady
DKC2 A 0 A_GiveInventory("Darkman2ShieldAmmo_P",1)
loop
Deselect:
TNT1 A 0 A_TakeInventory("ShieldCheck",9)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
DKC2 A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
DKC2 A 1 A_Raise
Loop

Fire:
DKN2 I 0 A_JumpIfInventory("ShieldCheck",1,"ShieldThrow2")
DKN2 I 0 A_JumpIfInventory("PowerRage_ST",1,"Charge1r")
DKN2 A 0 ACS_NamedExecute("BULL_SetState",0,1)
DKN2 ABCD 2
Charge1:
DKN2 E 0 A_PlaySoundEx("weapon/darkcharge1","Weapon")
Charge1.a:
DKN2 E 0 A_JumpIfInventory("NetCharge",25,"Charge2")
DKN2 E 1
DKN2 E 0 A_GiveInventory("NetCharge",1)
DKN2 E 0 A_Refire("Charge1.b")
Goto Charge1.end
Charge1.b:
DKN2 G 0 A_JumpIfInventory("NetCharge",25,"Charge2")
DKN2 G 1
DKN2 G 0 A_GiveInventory("NetCharge",1)
DKN2 G 0 A_Refire("Charge1.c")
Goto Charge1.end
Charge1.c:
DKN2 F 0 A_JumpIfInventory("NetCharge",25,"Charge2")
DKN2 F 1
DKN2 F 0 A_GiveInventory("NetCharge",1)
DKN2 F 0 A_Refire("Charge1.d")
Goto Charge1.end
Charge1.d:
DKN2 G 0 A_JumpIfInventory("NetCharge",25,"Charge2")
DKN2 G 1
DKN2 G 0 A_GiveInventory("NetCharge",1)
DKN2 G 0 A_Refire("Charge1.a")
Goto Charge1.end
Charge1.end:
DKN2 A 0 ACS_NamedExecute("BULL_SetState",0,2)
DKN2 E 1 Offset(15,48)
DKN2 G 1 Offset(30,80)
DKN2 F 1 Offset(45,112)
DKN2 G 1 Offset(60,144)
TNT1 A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
Goto Level1

Charge2:
DKN2 H 0 A_PlaySoundEx("weapon/darkcharge2","Weapon")
Charge2.a:
DKN2 H 0 A_JumpIfInventory("NetCharge",50,"Charge3")
DKN2 H 1
DKN2 H 0 A_GiveInventory("NetCharge",1)
DKN2 H 0 A_Refire("Charge2.b")
Goto Charge2.end
Charge2.b:
DKN2 J 0 A_JumpIfInventory("NetCharge",50,"Charge3")
DKN2 J 1
DKN2 J 0 A_GiveInventory("NetCharge",1)
DKN2 J 0 A_Refire("Charge2.c")
Goto Charge2.end
Charge2.c:
DKN2 I 0 A_JumpIfInventory("NetCharge",50,"Charge3")
DKN2 I 1
DKN2 I 0 A_GiveInventory("NetCharge",1)
DKN2 I 0 A_Refire("Charge2.d")
Goto Charge2.end
Charge2.d:
DKN2 J 0 A_JumpIfInventory("NetCharge",50,"Charge3")
DKN2 J 1
DKN2 J 0 A_GiveInventory("NetCharge",1)
DKN2 J 0 A_Refire("Charge2.a")
Goto Charge2.end
Charge2.end:
DKN2 A 0 ACS_NamedExecute("BULL_SetState",0,2)
DKN2 H 1 Offset(15,48)
DKN2 J 1 Offset(30,80)
DKN2 I 1 Offset(45,112)
DKN2 J 1 Offset(60,144)
TNT1 A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
Goto Level2

Charge3:
DKN2 K 0 A_TakeInventory("Charge3SoundCounter",999)
DKN2 K 0 A_PlaySoundEx("weapon/darkcharge3","Weapon")
Charge3.a:
DKN2 K 0 A_JumpIfInventory("Charge3SoundCounter",42,"Charge3")
DKN2 K 0 A_GiveInventory("Charge3SoundCounter",1)
DKN2 K 1
DKN2 K 0 A_Refire("Charge3.b")
Goto Charge3.end
Charge3.b:
DKN2 M 0 A_JumpIfInventory("Charge3SoundCounter",42,"Charge3")
DKN2 M 0 A_GiveInventory("Charge3SoundCounter",1)
DKN2 M 1
DKN2 M 0 A_Refire("Charge3.c")
Goto Charge3.end
Charge3.c:
DKN2 L 0 A_JumpIfInventory("Charge3SoundCounter",42,"Charge3")
DKN2 L 0 A_GiveInventory("Charge3SoundCounter",1)
DKN2 L 1
DKN2 L 0 A_Refire("Charge3.d")
Goto Charge3.end
Charge3.d:
DKN2 M 0 A_JumpIfInventory("Charge3SoundCounter",42,"Charge3")
DKN2 M 0 A_GiveInventory("Charge3SoundCounter",1)
DKN2 M 1
DKN2 M 0 A_Refire("Charge3.a")
Goto Charge3.end
Charge3.end:
DKN2 A 0 ACS_NamedExecute("BULL_SetState",0,2)
DKN2 K 1 Offset(15,48)
DKN2 M 1 Offset(30,80)
DKN2 L 1 Offset(45,112)
DKN2 M 1 Offset(70,144)
TNT1 A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
Goto Level3

Charge1r:
DKN2 E 0 A_PlaySoundEx("weapon/darkcharge1","Weapon")
Charge1.ar:
DKN2 E 0 A_JumpIfInventory("NetCharge",25,"Charge2r")
DKN2 E 1
DKN2 E 0 A_GiveInventory("NetCharge",2)
DKN2 E 0 A_Refire("Charge1.br")
Goto Charge1.end
Charge1.br:
DKN2 G 0 A_JumpIfInventory("NetCharge",25,"Charge2r")
DKN2 G 1
DKN2 G 0 A_GiveInventory("NetCharge",2)
DKN2 G 0 A_Refire("Charge1.cr")
Goto Charge1.end
Charge1.cr:
DKN2 F 0 A_JumpIfInventory("NetCharge",25,"Charge2r")
DKN2 F 1
DKN2 F 0 A_GiveInventory("NetCharge",2)
DKN2 F 0 A_Refire("Charge1.dr")
Goto Charge1.end
Charge1.dr:
DKN2 G 0 A_JumpIfInventory("NetCharge",25,"Charge2r")
DKN2 G 1
DKN2 G 0 A_GiveInventory("NetCharge",2)
DKN2 G 0 A_Refire("Charge1.ar")
Goto Charge1.end
Charge1.end:
DKN2 A 0 ACS_NamedExecute("BULL_SetState",0,2)
DKN2 E 1 Offset(15,48)
DKN2 G 1 Offset(30,80)
DKN2 F 1 Offset(45,112)
DKN2 G 1 Offset(60,144)
TNT1 A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
Goto Level1

Charge2r:
DKN2 H 0 A_PlaySoundEx("weapon/darkcharge2","Weapon")
Charge2.ar:
DKN2 H 0 A_JumpIfInventory("NetCharge",50,"Charge3r")
DKN2 H 1
DKN2 H 0 A_GiveInventory("NetCharge",2)
DKN2 H 0 A_Refire("Charge2.br")
Goto Charge2.end
Charge2.br:
DKN2 J 0 A_JumpIfInventory("NetCharge",50,"Charge3r")
DKN2 J 1
DKN2 J 0 A_GiveInventory("NetCharge",2)
DKN2 J 0 A_Refire("Charge2.cr")
Goto Charge2.end
Charge2.cr:
DKN2 I 0 A_JumpIfInventory("NetCharge",50,"Charge3r")
DKN2 I 1
DKN2 I 0 A_GiveInventory("NetCharge",2)
DKN2 I 0 A_Refire("Charge2.dr")
Goto Charge2.end
Charge2.dr:
DKN2 J 0 A_JumpIfInventory("NetCharge",50,"Charge3r")
DKN2 J 1
DKN2 J 0 A_GiveInventory("NetCharge",2)
DKN2 J 0 A_Refire("Charge2.ar")
Goto Charge2.end
Charge2.end:
DKN2 A 0 ACS_NamedExecute("BULL_SetState",0,2)
DKN2 H 1 Offset(15,48)
DKN2 J 1 Offset(30,80)
DKN2 I 1 Offset(45,112)
DKN2 J 1 Offset(60,144)
TNT1 A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
Goto Level2

Charge3r:
DKN2 K 0 A_TakeInventory("Charge3SoundCounter",999)
DKN2 K 0 A_PlaySoundEx("weapon/darkcharge3","Weapon")
Charge3.ar:
DKN2 K 0 A_JumpIfInventory("Charge3SoundCounter",42,"Charge3r")
DKN2 K 0 A_GiveInventory("Charge3SoundCounter",1)
DKN2 K 1
DKN2 K 0 A_Refire("Charge3.br")
Goto Charge3.end
Charge3.br:
DKN2 M 0 A_JumpIfInventory("Charge3SoundCounter",42,"Charge3r")
DKN2 M 0 A_GiveInventory("Charge3SoundCounter",1)
DKN2 M 1
DKN2 M 0 A_Refire("Charge3.cr")
Goto Charge3.end
Charge3.cr:
DKN2 L 0 A_JumpIfInventory("Charge3SoundCounter",42,"Charge3r")
DKN2 L 0 A_GiveInventory("Charge3SoundCounter",1)
DKN2 L 1
DKN2 L 0 A_Refire("Charge3.dr")
Goto Charge3.end
Charge3.dr:
DKN2 M 0 A_JumpIfInventory("Charge3SoundCounter",42,"Charge3r")
DKN2 M 0 A_GiveInventory("Charge3SoundCounter",1)
DKN2 M 1
DKN2 M 0 A_Refire("Charge3.ar")
Goto Charge3.end
Charge3.end:
DKN2 A 0 ACS_NamedExecute("BULL_SetState",0,2)
DKN2 K 1 Offset(15,48)
DKN2 M 1 Offset(30,80)
DKN2 L 1 Offset(45,112)
DKN2 M 1 Offset(70,144)
TNT1 A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
Goto Level3

Level1:
DKN2 A 0 A_TakeInventory("NetCharge",999)
DKN2 A 0 ACS_NamedExecute("BULL_SetState",0,2)
//DKN2 NO 1 
//DKN2 PQ 2
DKN2 NP 1
DKC2 K 0 A_PlaySoundEx("weapon/darkblast2","Weapon")
DKC2 K 0 A_GiveInventory("Darkman2Main_CI",1)
DKN2 R 6
DKN2 RR 2 Offset(3,48)
DKN2 SS 2 Offset(6,64)
DKN2 T 2 Offset(9,80)
DKN2 U 2 Offset(12,96)
DKC2 A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
Goto Ready+1
Level2:
DKN2 A 0 A_TakeInventory("NetCharge",999)
DKN2 A 0 ACS_NamedExecute("BULL_SetState",0,2)
//DKN2 NO 1 
//DKN2 PQ 2
DKN2 NP 1
DKC2 K 0 A_PlaySoundEx("weapon/darkblast2","Weapon")
DKC2 K 0 A_GiveInventory("Darkman2Main2_CI",1)
DKN2 RVYWXV 1
DKN2 RR 2 Offset(3,48)
DKN2 SS 2 Offset(6,64)
DKN2 T 2 Offset(9,80)
DKN2 U 2 Offset(12,96)
DKC2 A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
Goto Ready+1
Level3:
DKN2 A 0 A_TakeInventory("NetCharge",999)
DKN2 A 0 ACS_NamedExecute("BULL_SetState",0,2)
//DKN2 NO 1 
//DKN2 PQ 2
DKN2 NP 1
DKN2 H 0 A_PlaySoundEx("weapon/minchrgshot","Weapon")
DKC2 K 0 A_GiveInventory("Darkman2Main3_CI",1)
DKN2 RXYWXVWYXVYW 1
DKN2 RR 2 Offset(3,48)
DKN2 SS 2 Offset(6,64)
DKN2 T 2 Offset(9,80)
DKN2 U 2 Offset(12,96)
DKC2 A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
Goto Ready+1

AltFire:
TNT1 A 0 A_JumpIfInventory("ShieldCheck",1,"ShieldThrow")
TNT1 A 0 A_GiveInventory("ShieldCheck",1)
TNT1 A 0 A_SpawnItemEx("DM2ShieldWatcher",0,0,0,0,0,0,0,1)
DKC2 BCDEF 2
DKC2 GH 2
goto Ready2

ShieldThrow:
TNT1 A 0 A_TakeInventory("ShieldCheck",999)
DKC2 I 0 A_JumpIfInventory("PowerSpread_ST",1,"ShieldThrow_S")
DKC2 I 0 A_SpawnItemEx("DM2ShieldWatcher2",8*cos(pitch),0,32,30*cos(pitch),0,30*sin(-pitch),0,1)
DKC2 I 1 OffSet(-3,29)
DKC2 I 1 OffSet(-7,23)
DKC2 I 1 OffSet(-14,17)
DKC2 K 2 OffSet(-17,15)
DKC2 K 2 OffSet(-15,17)
DKC2 K 2 OffSet(-12,20)
DKC2 K 1 OffSet(-9,23)
DKC2 K 1 OffSet(-6,26)
DKC2 K 1 OffSet(-3,29)
DKC2 KI 3 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
DKC2 I 8
Goto Ready+1
ShieldThrow_S:
DKC2 I 0 A_SpawnItemEx("DarkShieldFireClass",0,0,0,28,0,0,15,1)
DKC2 I 0 A_SpawnItemEx("DarkShieldFireClass",0,0,0,28,0,0,195,1)
DKC2 I 0 A_SpawnItemEx("DarkShieldFireClass",0,0,0,28,0,0,-15,1)
DKC2 I 0 A_SpawnItemEx("DarkShieldFireClass",0,0,0,28,0,0,165,1)
goto ShieldThrow+2

ShieldThrow2:
DKC2 I 0 A_GiveInventory("DM2AltHoldF",1)
DKC2 II 2
ShieldThrowW:
DKC2 K 0 A_JumpIfInventory("Darkman2ShieldAmmo",4,1)
goto ShieldThrowW+6
DKC2 I 1
DKC2 I 0 A_GiveInventory("DM2AltHoldF",1)
DKC2 I 0 A_GiveInventory("DM2AltHoldNerf")
DKC2 I 0 A_Refire("ShieldThrowW")
DKC2 I 0 A_TakeInventory("ShieldCheck",999)
DKC2 I 0 A_TakeInventory("DM2AltHoldF",999)
DKC2 I 0 A_SpawnItemEx("DarkShieldFireClass",0,0,0,28,0,0,0,1)
DKC2 I 0 A_SpawnItemEx("DarkShieldFireClass",0,0,0,28,0,0,180,1)
//DKC2 K 19 
//DKC2 I 6 //25
DKC2 I 1 OffSet(-3,29)
DKC2 I 1 OffSet(-7,23)
DKC2 I 1 OffSet(-14,17)
DKC2 K 2 OffSet(-17,15)
DKC2 K 2 OffSet(-15,17)
DKC2 K 2 OffSet(-12,20)
DKC2 K 1 OffSet(-9,23)
DKC2 K 1 OffSet(-6,26)
DKC2 K 1 OffSet(-3,29)
DKC2 KI 3 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
DKC2 I 7
Goto Ready+1

NoAmmo:
DKC2 A 0
Goto Ready+1

Flash:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("ShieldCheck",1,2)
TNT1 A 0 A_Jump(256,2)
TNT1 A 0 A_PlaySoundEX("weapon/shieldhum","SoundSlot7")
TNT1 AAAAAAAAAA 1 A_GiveInventory("Darkman2ShieldFlash_P",1)
loop
}
}

actor Darkman2ShieldAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 500
+INVENTORY.IGNORESKILL
}

actor Darkman2ShieldAmmo_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("ShieldCheck",1,"Pickup2")
TNT1 A 0 A_GiveInventory("Darkman2ShieldAmmo",4)
stop
Pickup2:
TNT1 A 0 A_GiveInventory("Darkman2ShieldAmmo",1)
stop
}
}

actor Darkman2ShieldFlash_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ACS_NamedExecuteAlways("cbm_SetActorPropertyMath",0,17)//2
TNT1 A 0 A_JumpIfInventory("ShieldCheck",1,"PickupSnd")
stop
PickupSnd:
TNT1 A 0 A_JumpIfInventory("VivifyDelay10",1,"No")
TNT1 A 0 A_GiveInventory("VivifyDelay10",1)
//TNT1 A 0 A_PlaySoundEX("weapon/shieldhum","Body")
stop
No:
TNT1 A 0
stop
}
}

actor DM2MainHoldF : Once {}
actor DM2AltHoldF : Once {}

actor DM2AltHoldNerf : PowerDamage
{
powerup.duration 4
DamageFactor "DarkShield", 0.0
}

actor NetCharge : Inventory
{
inventory.amount 1
inventory.maxamount 50
}

actor Charge3SoundCounter : Inventory
{
inventory.amount 1
inventory.maxamount 42
}


actor DM2ShieldWatcher : BasicHelper
{
	var int user_rotspeed;
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 A_GiveToTarget("ShieldCheck",1)
		goto SpawnX
		SpawnX:
		TNT1 A 1
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"End")
		TNT1 A 0 A_JumpIfInTargetInventory("DM2AltHoldF",1,"SpawnAlt")
		TNT1 A 0 A_JumpIfInTargetInventory("RageRune_st",1,2)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_SetUserVar("user_rotspeed",user_rotspeed-40)
		TNT1 A 0 A_SetUserVar("user_rotspeed",user_rotspeed-20)
		TNT1 A 0 A_Warp(AAPTR_Target,0,0,0,0,WARPF_UseCallerAngle|WARPF_NoCheckPosition)
		TNT1 A 0 A_SpawnItemEx("DarkShieldSegmentRNG",55,0,0,0,0,0,user_rotspeed,1)
		TNT1 A 0 A_SpawnItemEx("DarkShieldSegmentRNG",55,0,0,0,0,0,user_rotspeed+180,1)
		TNT1 A 0 A_JumpIfInTargetInventory("ShieldCheck",1,"SpawnX")
		goto End
		
		SpawnAlt:
		TNT1 A 1
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"End")
		TNT1 A 0 A_Warp(AAPTR_Target,0,0,0,0,WARPF_NoCheckPosition)
		TNT1 A 0 A_SpawnItemEx("DarkShieldSegmentRNG",55,0,0,0,0,0,0,1)
		TNT1 A 0 A_SpawnItemEx("DarkShieldSegmentRNG",55,0,0,0,0,0,180,1)
		TNT1 A 0 A_TakeFromTarget("Darkman2ShieldAmmo",4)
		TNT1 A 0 A_JumpIfInTargetInventory("Darkman2ShieldAmmo",4,1)
		goto End
		TNT1 A 0 A_JumpIfInTargetInventory("DM2AltHoldF",1,"SpawnAlt")
		goto End
		
		End:
		TNT1 A 0 A_TakeFromTarget("ShieldCheck",999)
		TNT1 A 0 A_TakeFromTarget("DM2AltHoldF",999)
		stop
	}
}

actor DM2ShieldWatcher2 : DM2ShieldWatcher
{
	damagetype "DM2_Shield"
	+THRUACTORS
	+THRUGHOST
	+RIPPER
	-NOINTERACTION
	+DONTBLAST
	-NOEXPLODEFLOOR
	-NOCLIP
	Radius 4
	Height 4
	States
	{
		Spawn:
		TNT1 A 1
		TNT1 A 0 A_SetUserVar("user_rotspeed",user_rotspeed-30)
		TNT1 A 0 A_Explode(4, 32, 0, 0, 32)
		TNT1 A 0 A_SpawnItemEx("DarkShieldSegmentRNG2",48,0,-32,0,0,0,user_rotspeed,1)
		TNT1 A 0 A_SpawnItemEx("DarkShieldSegmentRNG2",48,0,-32,0,0,0,user_rotspeed+180,1)
		loop
	}
}

actor DarkShieldSegment
{
Translation "202:202=216:216"
damagetype "DM2_Shield"
Obituary "$OB_DARK2SHIELD"
+MISSILE
+NOGRAVITY
-SOLID
+NOBLOOD
+DONTBLAST
+NOTIMEFREEZE
Damage (2)
health 999
painchance 0
+RIPPER
+SHOOTABLE
+GHOST
Height 58
Radius 16
scale 2.5
Speed 0

+SKYEXPLODE
+DONTSPLASH
//+NOCLIP
+NOINTERACTION
+INVULNERABLE
+THRUGHOST
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_ChangeFlag("NOINTERACTION",0)
DSHO F 1
stop
}
}
actor DarkShieldSegment2 : DarkShieldSegment
{
States
{
Spawn:
DSHO G 0
DSHO G 0 A_ChangeFlag("NOINTERACTION",0)
DSHO G 1
stop
}
}
actor DarkShieldSegment3 : DarkShieldSegment
{
States
{
Spawn:
DSHO H 0
DSHO H 0 A_ChangeFlag("NOINTERACTION",0)
DSHO H 1
stop
}
}

actor DarkShieldSegmentFX1 : BasicClientSide
{
States
{
Spawn:
DSHO F 0
DSHO F 1
stop
}
}
actor DarkShieldSegmentFX2 : BasicClientSide
{
States
{
Spawn:
DSHO G 0
DSHO G 1
stop
}
}
actor DarkShieldSegmentFX3 : BasicClientSide
{
States
{
Spawn:
DSHO H 0
DSHO H 1
stop
}
}

actor DarkShieldSegmentRNG : DarkShieldSegment
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"SpawnF","SpawnG","SpawnH")
SpawnF:
TNT1 A 0 A_SpawnItemEx("DarkShieldSegmentFX1",0,0,0,momx,momy,momz,0,9)
goto SpawnEnd
SpawnG:
TNT1 A 0 A_SpawnItemEx("DarkShieldSegmentFX2",0,0,0,momx,momy,momz,0,9)
goto SpawnEnd
SpawnH:
TNT1 A 0 A_SpawnItemEx("DarkShieldSegmentFX3",0,0,0,momx,momy,momz,0,9)
goto SpawnEnd
SpawnEnd:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",0)
TNT1 A 1
stop
}
}

actor DarkShieldSegmentRNG2 : DarkShieldSegment
{
Damage (0)
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"SpawnF","SpawnG","SpawnH")
SpawnF:
TNT1 A 0 A_SpawnItemEx("DarkShieldSegmentFX1",0,0,0,momx,momy,momz,0,9)
goto SpawnEnd
SpawnG:
TNT1 A 0 A_SpawnItemEx("DarkShieldSegmentFX2",0,0,0,momx,momy,momz,0,9)
goto SpawnEnd
SpawnH:
TNT1 A 0 A_SpawnItemEx("DarkShieldSegmentFX3",0,0,0,momx,momy,momz,0,9)
goto SpawnEnd
SpawnEnd:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",0)
TNT1 A 1
stop
}
}

actor DarkShieldReleaseSpawner
{
Translation "202:202=216:216"
PROJECTILE
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("DarkShieldRelease",46,0,-28,0,0,0,90,1)
TNT1 A 0 A_SpawnItemEx("DarkShieldRelease",46,0,-28,0,0,0,270,1)
stop
}
}

actor DarkShieldReleaseSpawnerB : DarkShieldReleaseSpawner{translation "202:202=205:205"}
actor DarkShieldReleaseSpawnerR : DarkShieldReleaseSpawner{translation "202:202=171:171"}
actor DarkShieldReleaseSpawnerO : DarkShieldReleaseSpawner{translation "202:202=104:104"}
actor DarkShieldReleaseSpawnerP : DarkShieldReleaseSpawner{translation "202:202=229:229"}

actor DarkShieldRelease
{
Translation "202:202=216:216"
PROJECTILE
damagetype "DM2_Shield"
Obituary "$OB_DARK2SHIELD"
Radius 16
Height 56
scale 2.5
damage (5)
+RIPPER

mass 9999
+SHOOTABLE
-NOBLOCKMAP
+NOBLOOD
+NOTARGETSWITCH
+INVULNERABLE
+NORADIUSDMG
+GHOST
+THRUGHOST
speed 0
var int user_speed;
var int user_num;
var int user_time;
var int user_time_add;
States
{
Spawn:
DSHO F 0
TNT1 A 0 A_SetUserVar("user_speed",40)
TNT1 A 0 A_SetUserVar("user_num",1400)
TNT1 A 0 A_SetUserVar("user_time",17)
TNT1 A 0 A_SetUserVar("user_time_add",3)
Spawn2:
TNT1 A 0 A_Setangle(angle-user_num/user_time)
DSHO F 1 A_ChangeVelocity(user_speed,0,0,3)
TNT1 A 0 A_SetUserVar("user_time",user_time+user_time_add)
TNT1 A 0 A_Setangle(angle-user_num/user_time)
DSHO F 1 A_ChangeVelocity(user_speed,0,0,3)
TNT1 A 0 A_SetUserVar("user_time",user_time+user_time_add)
TNT1 A 0 A_Setangle(angle-user_num/user_time)
DSHO G 1 A_ChangeVelocity(user_speed,0,0,3)
TNT1 A 0 A_SetUserVar("user_time",user_time+user_time_add)
TNT1 A 0 A_Setangle(angle-user_num/user_time)
DSHO G 1 A_ChangeVelocity(user_speed,0,0,3)
TNT1 A 0 A_SetUserVar("user_time",user_time+user_time_add)
TNT1 A 0 A_Setangle(angle-user_num/user_time)
DSHO H 1 A_ChangeVelocity(user_speed,0,0,3)
TNT1 A 0 A_SetUserVar("user_time",user_time+user_time_add)
TNT1 A 0 A_Setangle(angle-user_num/user_time)
DSHO H 1 A_ChangeVelocity(user_speed,0,0,3)
TNT1 A 0 A_SetUserVar("user_time",user_time+user_time_add)
loop
Death:
DARS A 0
stop
}
}


actor DarkShieldFireClass : DarkShieldRelease
{
Obituary "$OB_DARK2SHIELD"
Damage (0)
Speed 28
States
{
Spawn:
DSHO F 0
DSHO FGH 2 A_Explode(8,64,0,0,12)
loop
}
}

actor DarkBlast2 
{
Translation "208:208=0:0", "192:192=7:7", "198:198=75:75", "210:210=75:75", "202:202=205:205"
PROJECTILE 
+THRUGHOST
Damagetype "DM2_Shield"
Obituary "$OB_DARKBLAST2" 
damage (0)
Radius 18
Height 18
speed 50
scale 2
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
DKS2 BBBCCC 1
loop
Death:
HARD A 0 A_Explode(20,100,0,0,32)
WallCheck:
HARD A 0 A_PlaySoundEx("weapon/darkblast2explode","Weapon")
TNT1 A 0 A_JumpIf(z-floorz<16,"Floor")
TNT1 A 0 A_JumpIf(z-ceilingz==0-18,"Ceiling")
Wall:
TNT1 AAAA 0 A_SpawnItemEx("DarkBlast2Spark3",0,0,0,random(1,10),random(1,10),random(5,10),180,1)
TNT1 A 1
stop
Floor:
TNT1 AAAA 0 A_SpawnItemEx("DarkBlast2Spark2",0,0,0,random(-10,10),random(-10,10),random(5,10),random(0,360),1)
TNT1 A 1
stop
Ceiling:
TNT1 AAAA 0 A_SpawnItemEx("DarkBlast2Spark",0,0,0,random(-10,10),random(-10,10),random(-5,-10),0,1)
TNT1 A 1
stop
XDeath:
HARD A 0 A_PlaySoundEx("weapon/darkblast2explode","Weapon")
HARD BCBCDCDEDE 1
stop
}
}

actor DarkBlast2B : DarkBlast2{translation "208:208=0:0", "192:192=7:7", "198:198=75:75", "210:210=74:74", "202:202=205:205"}
actor DarkBlast2R : DarkBlast2{translation "208:208=0:0", "192:192=7:7", "198:198=43:43", "210:210=41:41", "202:202=171:171"}
actor DarkBlast2O : DarkBlast2{translation "208:208=0:0", "192:192=7:7", "198:198=131:131", "210:210=128:128", "202:202=104:104"}
actor DarkBlast2P : DarkBlast2{translation "208:208=0:0", "192:192=7:7", "198:198=223:223", "210:210=232:232", "202:202=229:229"}

actor DarkBlast2Container : DarkBlast2
{
Translation "210:210=74:74", "208:208=75:75", "4:4=0:0"
damagetype "DarkM2_Level2"
Obituary "$OB_DARKBLAST2" 
Damage (25)
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
SPAS F 0
SPAS FG 3 Bright
loop
Death:
//HARD A 0 A_Explode(20,100,0,0,32)
ASEX ABC 1
ASEX DEF 2
stop
XDeath:
HARD A 0
ASEX ABC 1
ASEX DEF 2
stop
}
}

actor DarkBlast2ContainerB : DarkBlast2Container{translation "210:210=74:74", "208:208=205:205", "4:4=0:0"}
actor DarkBlast2ContainerR : DarkBlast2Container{translation "210:210=41:41", "208:208=171:171", "4:4=0:0"}
actor DarkBlast2ContainerO : DarkBlast2Container{translation "210:210=128:128", "208:208=104:104", "4:4=0:0"}
actor DarkBlast2ContainerP : DarkBlast2Container{translation "210:210=232:232", "208:208=229:229", "4:4=0:0"}


actor DarkBlast2Spark : SparkShock
{
Translation "208:208=0:0", "202:202=75:75"
-NOGRAVITY
gravity 0.4
damage (6)
damagetype "DM2_Shield"
Obituary "$OB_DARKBLAST2SPARK" 
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
DSHO DE 2
loop
Death:
DSHO DE 2 A_Fadeout
stop
}
}

actor DarkBlast2SparkB : DarkBlast2Spark{translation "208:208=0:0", "202:202=205:205"}
actor DarkBlast2SparkR : DarkBlast2Spark{translation "208:208=0:0", "202:202=171:171"}
actor DarkBlast2SparkO : DarkBlast2Spark{translation "208:208=0:0", "202:202=104:104"}
actor DarkBlast2SparkP : DarkBlast2Spark{translation "208:208=0:0", "202:202=229:229"}

actor DarkBlast2Spark2 : DarkBlast2Spark{speed 25}
actor DarkBlast2Spark2B : DarkBlast2SparkB{speed 25}
actor DarkBlast2Spark2R : DarkBlast2SparkR{speed 25}
actor DarkBlast2Spark2O : DarkBlast2SparkO{speed 25}
actor DarkBlast2Spark2P : DarkBlast2SparkP{speed 25}

actor DarkBlast2SparkX : SparkShock
{
Translation "208:208=0:0", "202:202=75:75"
+NOGRAVITY
damage (5)
damagetype "DM2_Spark"
speed 50
Obituary "$OB_DARKBLAST1" 
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
DSHO DE 2 A_Fadeout("0.11")
loop
Death:
DSHO DE 2 A_Fadeout
stop
}
}

actor DarkBlast2SparkXB : DarkBlast2SparkX{translation "208:208=0:0", "202:202=205:205"}
actor DarkBlast2SparkXR : DarkBlast2SparkX{translation "208:208=0:0", "202:202=171:171"}
actor DarkBlast2SparkXO : DarkBlast2SparkX{translation "208:208=0:0", "202:202=104:104"}
actor DarkBlast2SparkXP : DarkBlast2SparkX{translation "208:208=0:0", "202:202=229:229"}

actor DarkBlast2Spark3 : DarkBlast2Spark
{ 
BounceType Doom 
BounceCount 1 
WallBounceFactor 1.0 
BounceFactor 0.01 
speed 15 
States
{
Bounce: 
DSHO D 1 A_JumpIf(z-floorz<7,"Death") 
loop 
Death: 
TNT1 A 1 
stop 
}
}
actor DarkBlast2Spark3B : DarkBlast2SparkB{speed 15}
actor DarkBlast2Spark3R : DarkBlast2SparkR{speed 15}
actor DarkBlast2Spark3O : DarkBlast2SparkO{speed 15}
actor DarkBlast2Spark3P : DarkBlast2SparkP{speed 15}

actor DarkBlast3
{
Translation "192:192=241:241", "198:198=7:7", "208:208=205:205" 
PROJECTILE
+DONTSEEKINVISIBLE
+SEEKERMISSILE
+SCREENSEEKER
+EXPLODEONWATER
ReactionTime 1
Damagetype "DM2_Shield"
Obituary "$OB_DARKBLAST3"
Radius 5
Height 5
scale 3.0
damage (7)
speed 10
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
DKS2 D 1
DKC2 K 0 A_PlaySoundEx("weapon/darkblast3","Weapon")
DKS2 D 3
DKS2 DEE 4
DKS2 F 4
DKS2 GH 2
DKS2 B 0 A_ScaleVelocity(1.15)
Goto Primed
Primed:
DKC2 K 0 A_PlaySoundEx("weapon/darkblast3loop","Voice")
DKS2 G 1 A_SeekerMissile (360, 90, SMF_LOOK, 256, 2)
DKS2 G 0 A_JumpIfTargetInLOS("See", 0, 1)
DKS2 H 1 A_SeekerMissile (360, 90, SMF_LOOK, 256, 2)
DKS2 H 0 A_JumpIfTargetInLOS("See", 0, 1)
DKS2 G 1 A_SeekerMissile (360, 90, SMF_LOOK, 256, 2)
DKS2 G 0 A_JumpIfTargetInLOS("See", 0, 1)
DKS2 H 1 A_SeekerMissile (360, 90, SMF_LOOK, 256, 2)
DKS2 H 0 A_JumpIfTargetInLOS("See", 0, 1)
DKS2 G 1 A_SeekerMissile (360, 90, SMF_LOOK, 256, 2)
DKS2 G 0 A_JumpIfTargetInLOS("See", 0, 1)
DKS2 H 1 A_SeekerMissile (360, 90, SMF_LOOK, 256, 2)
DKS2 H 0 A_JumpIfTargetInLOS("See", 0, 1)
DKS2 B 0 A_ScaleVelocity(1.15)
loop
See:
DKS2 BBBBBB 0 A_SeekerMissile (360, 90, SMF_LOOK, 256, 2)
DKS2 H 1 A_Stop
Goto Disperse
Disperse:
TNT1 A 0 A_Explode(13,80,0,0,80)
//TNT1 A 0 ACS_NamedExecuteAlways("SC_STOREPLAYERANGLEPITCH",0,0)
TNT1 A 0 A_SpawnItemEx("DarkBlast3NetPiece",0,0,0,35,0,1,0,1)
TNT1 A 0 A_SpawnItemEx("DarkBlast3NetPiece",0,0,0,35,0,5,0,1)
TNT1 A 0 A_SpawnItemEx("DarkBlast3NetPiece",0,0,0,35,0,-3,0,1)
TNT1 A 0 A_SpawnItemEx("DarkBlast3NetPiece",0,8,0,35,0,1,15,1)
TNT1 A 0 A_SpawnItemEx("DarkBlast3NetPiece",0,-8,0,35,0,1,-15,1)
TNT1 A 0 A_SpawnItemEx("DarkBlast3NetPiece",0,8,8,35,0,4,10,1)
TNT1 A 0 A_SpawnItemEx("DarkBlast3NetPiece",0,-8,8,35,0,4,-10,1)
TNT1 A 0 A_SpawnItemEx("DarkBlast3NetPiece",0,8,-8,35,0,-2,10,1)
TNT1 A 0 A_SpawnItemEx("DarkBlast3NetPiece",0,-8,-8,35,0,-2,-10,1)
DKC2 K 0 A_PlaySoundEx("weapon/darkblast3explode","Voice")
DKS2 PQR 2
DKS2 ST 3
//TNT1 A 1 A_CountDown
goto DeathNormal
DeathNormal:
TNT1 A 1
stop
Death:
TNT1 A 1 A_PlaySoundEx("weapon/plugshock","Voice")
stop
XDeath:
TNT1 A 0 A_Explode(13,80,0,0,80)
DKC2 K 0 A_PlaySoundEx("weapon/darkblast3explode","Voice")
DKS2 PQR 2
DKS2 ST 3
stop
}
}

actor DarkBlast3B : DarkBlast3{ Translation "192:192=75:75", "198:198=7:7", "208:208=205:205" }
actor DarkBlast3R : DarkBlast3{ Translation "192:192=43:43", "198:198=7:7", "208:208=171:171" }
actor DarkBlast3O : DarkBlast3{ Translation "192:192=131:131", "198:198=7:7", "208:208=104:104" }
actor DarkBlast3P : DarkBlast3{ Translation "192:192=223:223", "198:198=7:7", "208:208=229:229" }

actor DarkBlast3NetPiece
{
Translation "192:192=74:74", "198:198=205:205", "208:208=0:0" 
PROJECTILE
-NOGRAVITY
+EXPLODEONWATER
damagetype "DM2_Shield"
Obituary "$OB_DARKBLAST3NET"
ReactionTime 1
damage (7)
speed 1
Radius 6
Height 7
Scale 3.0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
TNT1 A 0
//TNT1 A 0 ACS_NamedExecuteAlways("SC_STRAIGHTENPROJECTILE",0,0)
TNT1 A 0 ThrustThingZ(0,4,0,1)
DKS2 DE 2
goto SpawnLOOP+3
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
DKS2 GHI 3
stop
}
}

actor DarkBlast3NetPieceB : DarkBlast3NetPiece{translation "192:192=74:74", "198:198=205:205", "208:208=0:0"}
actor DarkBlast3NetPieceR : DarkBlast3NetPiece{translation "192:192=41:41", "198:198=171:171", "208:208=0:0"}
actor DarkBlast3NetPieceO : DarkBlast3NetPiece{translation "192:192=128:128", "198:198=104:104", "208:208=0:0"}
actor DarkBlast3NetPieceP : DarkBlast3NetPiece{translation "192:192=232:232", "198:198=229:229", "208:208=0:0"}


actor DarkBlast3Container
{
Translation "208:208=0:0", "4:4=0:0", "199:199=241:241", "192:192=205:205", "198:198=0:0"
PROJECTILE
+DONTSEEKINVISIBLE
+SEEKERMISSILE
+SCREENSEEKER
+EXPLODEONWATER
damagetype "DM2_Shield"
Obituary "$OB_DARKBLAST3NET"
speed 10
Radius 5
Height 5
Damage (0)
scale 3.0
renderstyle add
alpha 0.7
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
TNT1 A 12
Goto PrimedBlink
PrimedBlink:
DKS2 JUKULU 2
DKS2 B 0 A_ScaleVelocity(1.15)
Goto Primed
Primed:
DKS2 M 1 A_SeekerMissile (360, 90, SMF_LOOK, 256, 2)
DKS2 M 0 A_JumpIfTargetInLOS("Death", 0, 1)
DKS2 N 1 A_SeekerMissile (360, 90, SMF_LOOK, 256, 2)
DKS2 N 0 A_JumpIfTargetInLOS("Death", 0, 1)
DKS2 O 1 A_SeekerMissile (360, 90, SMF_LOOK, 256, 2)
DKS2 O 0 A_JumpIfTargetInLOS("Death", 0, 1)
DKS2 J 1 A_SeekerMissile (360, 90, SMF_LOOK, 256, 2)
DKS2 J 0 A_JumpIfTargetInLOS("Death", 0, 1)
DKS2 K 1 A_SeekerMissile (360, 90, SMF_LOOK, 256, 2)
DKS2 K 0 A_JumpIfTargetInLOS("Death", 0, 1)
DKS2 L 1 A_SeekerMissile (360, 90, SMF_LOOK, 256, 2)
DKS2 L 0 A_JumpIfTargetInLOS("Death", 0, 1)
DKS2 B 0 A_ScaleVelocity(1.15)
loop
Death:
TNT1 A 1
stop
}
}

actor DarkBlast3ContainerB : DarkBlast3Container{Translation "208:208=0:0", "4:4=0:0", "199:199=75:75", "192:192=205:205", "198:198=0:0"}
actor DarkBlast3ContainerR : DarkBlast3Container{Translation "208:208=0:0", "4:4=0:0", "199:199=43:43", "192:192=171:171", "198:198=0:0"}
actor DarkBlast3ContainerO : DarkBlast3Container{Translation "208:208=0:0", "4:4=0:0", "199:199=131:131", "192:192=104:104", "198:198=0:0"}
actor DarkBlast3ContainerP : DarkBlast3Container{Translation "208:208=0:0", "4:4=0:0", "199:199=223:223", "192:192=229:229", "198:198=0:0"}

actor Darkman2Main_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkX",10,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkX",20,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkX",-20,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkX",-10,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkX",0,1,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXB",10,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXB",20,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXB",-20,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXB",-10,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXB",0,1,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXR",10,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXR",20,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXR",-20,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXR",-10,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXR",0,1,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXO",10,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXO",20,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXO",-20,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXO",-10,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXO",0,1,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXP",10,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXP",20,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXP",-20,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXP",-10,0,0,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2SparkXP",0,1,0,0)
goto Done
}
}

actor Darkman2Main2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("DarkBlast2",0,0,1,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2Container",0,0,1,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("DarkBlast2B",0,0,1,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2ContainerB",0,0,1,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("DarkBlast2R",0,0,1,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2ContainerR",0,0,1,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("DarkBlast2O",0,0,1,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2ContainerO",0,0,1,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("DarkBlast2P",0,0,1,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast2ContainerP",0,0,1,0)
goto Done
}
}

actor Darkman2Main3_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("DarkBlast3",0,0,1,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast3Container",0,0,1,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("DarkBlast3B",0,0,1,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast3ContainerB",0,0,1,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("DarkBlast3R",0,0,1,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast3ContainerR",0,0,1,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("DarkBlast3O",0,0,1,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast3ContainerO",0,0,1,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("DarkBlast3P",0,0,1,0)
TNT1 A 0 A_FireCustomMissile("DarkBlast3ContainerP",0,0,1,0)
goto Done
}
}


actor Darkman2Alt2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("DarkShieldReleaseSpawner",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("DarkShieldReleaseSpawnerB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("DarkShieldReleaseSpawnerR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("DarkShieldReleaseSpawnerO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("DarkShieldReleaseSpawnerP",0,0,0,0)
goto Done
}
}

//more fun backporting
actor Darkman2ShieldBlocker
{
Translation "202:202=216:216"
damagetype "DM2_Shield"
Obituary "$OB_DARK2SHIELD"

-SOLID
+MISSILE
+DONTSPLASH
+DONTBLAST
+DONTDRAIN
+DONTREFLECT
+DONTRIP
//+RIPPER
//+THRUGHOST
+GHOST
+INVULNERABLE
+SHOOTABLE
//+SKYEXPLODE
//+EXPLODEONWATER
//+EXPLODEONDEATH
+NOBLOOD
+NOCLIP
+NORADIUSDMG
+NOTIMEFREEZE
+NOGRAVITY
+NOTARGETSWITCH
+BRIGHT
//+NOINTERACTION

damagefactor "DM2_Shield",0.0
damagefactor "DM2_TossSpin",0.0
damagefactor "DM2_Toss",0.0
damagefactor "DM4_Shield",0.0
damagefactor "DM4_TossSpin",0.0
damagefactor "DarkShield",0.0
damagefactor "Telefrag",0.0

painchance 0
painchance "DM2_Shield", 0
painchance "DM2_TossSpin", 0
painchance "DM2_Toss", 0
painchance "DM4_Shield", 0
painchance "DM4_TossSpin", 0
painchance "DarkShield", 0
painchance "Telefrag", 0

Species "DUMBDARKSHIELD"

//renderstyle translucent
//alpha 0.85
health 999999

Accuracy 3//Damage
Meleerange 55//WarpX
Stamina -20//WarpAngle

Damage (0)//6
Radius 8
Height 56
Speed 0
scale 2.5
States
{
Spawn:
DSHO F 0
//DSHO F 0 A_ChangeFlag("NOINTERACTION",0)
//DSHO F 1
DSHO F 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
DSHO F 0 A_JumpIfInTargetInventory("StopShield",1,"SpawnStop")
DSHO F 0 A_Explode(Accuracy*(CallACS("cbm_CheckForSpread",2)*2+1),radius*2,0,0,radius)
DSHO F 1 A_Warp(2,Meleerange,0,0,Stamina*(CallACS("cbm_CheckForRage",2)+1),28)

DSHO G 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
DSHO G 0 A_JumpIfInTargetInventory("StopShield",1,"SpawnStop")
DSHO G 0 A_Explode(Accuracy*(CallACS("cbm_CheckForSpread",2)*2+1),radius*2,0,0,radius)
DSHO G 1 A_Warp(2,Meleerange,0,0,Stamina*(CallACS("cbm_CheckForRage",2)+1),28)

DSHO H 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
DSHO H 0 A_JumpIfInTargetInventory("StopShield",1,"SpawnStop")
DSHO H 0 A_Explode(Accuracy*(CallACS("cbm_CheckForSpread",2)*2+1),radius*2,0,0,radius)
DSHO H 1 A_Warp(2,Meleerange,0,0,Stamina*(CallACS("cbm_CheckForRage",2)+1),28)

DSHO G 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
DSHO G 0 A_JumpIfInTargetInventory("StopShield",1,"SpawnStop")
DSHO G 0 A_Explode(Accuracy*(CallACS("cbm_CheckForSpread",2)*2+1),radius*2,0,0,radius)
DSHO G 1 A_Warp(2,Meleerange,0,0,Stamina*(CallACS("cbm_CheckForRage",2)+1),28)
loop
SpawnStop:
TNT1 A 0
TNT1 A 1
stop
Death:
TNT1 A 0
TNT1 A 1
stop
}
}

actor Darkman2ShieldSpinner
{
Translation "202:202=216:216"
var int user_speed;
var int user_num;
var int user_time;
var int user_time_add;
PROJECTILE
damagetype "DM2_TossSpin"
Obituary "$OB_DARK2SHIELD"
+RIPPER
+SHOOTABLE
-NOBLOCKMAP
+NOBLOOD
+NOTARGETSWITCH
+INVULNERABLE
+NORADIUSDMG
+GHOST
+THRUGHOST
+BRIGHT
+THRUSPECIES
Species "DUMBDARKSHIELD"
mass 9999
damage (5)
Radius 16
Height 56
speed 0
scale 2.5
States
{
Spawn:
DSHO F 0
TNT1 A 0 A_SetUserVar("user_speed",45)
TNT1 A 0 A_SetUserVar("user_num",1400)
TNT1 A 0 A_SetUserVar("user_time",17)
TNT1 A 0 A_SetUserVar("user_time_add",3)
Spawn2:
TNT1 A 0 A_Setangle(angle-user_num/user_time)
DSHO F 1 A_ChangeVelocity(user_speed,0,0,3)
TNT1 A 0 A_SetUserVar("user_time",user_time+user_time_add)
TNT1 A 0 A_Setangle(angle-user_num/user_time)
DSHO F 1 A_ChangeVelocity(user_speed,0,0,3)
TNT1 A 0 A_SetUserVar("user_time",user_time+user_time_add)
TNT1 A 0 A_Setangle(angle-user_num/user_time)
DSHO G 1 A_ChangeVelocity(user_speed,0,0,3)
TNT1 A 0 A_SetUserVar("user_time",user_time+user_time_add)
TNT1 A 0 A_Setangle(angle-user_num/user_time)
DSHO G 1 A_ChangeVelocity(user_speed,0,0,3)
TNT1 A 0 A_SetUserVar("user_time",user_time+user_time_add)
TNT1 A 0 A_Setangle(angle-user_num/user_time)
DSHO H 1 A_ChangeVelocity(user_speed,0,0,3)
TNT1 A 0 A_SetUserVar("user_time",user_time+user_time_add)
TNT1 A 0 A_Setangle(angle-user_num/user_time)
DSHO H 1 A_ChangeVelocity(user_speed,0,0,3)
TNT1 A 0 A_SetUserVar("user_time",user_time+user_time_add)
loop
Death:
DARS A 0
stop
}
}