actor DarkShieldBoss : BaseMM8BDMWep_CBM
{
dropitem "DarkShieldWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 28
Weapon.SlotNumber 1
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,809)
DKC2 A 0 A_GunFlash
DKC2 A 1 A_WeaponReady
Goto Ready+2
Ready2:
DKC2 A 1 A_WeaponReady
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:
DKC2 I 0 A_JumpIfInventory("ShieldCheck",1,"ShieldThrow")
DKC2 I 4
DKC2 J 4
DKC2 K 3
DKC2 K 0 A_PlaySoundEx("weapon/sparkshock","Weapon")
DKC2 K 0 A_GiveInventory("Darkman2Main_CI",1)
DKC2 K 10
DKC2 I 3
BUST B 0 A_Refire
Goto Ready+1
AltFire:
TNT1 A 0 A_JumpIfInventory("ShieldCheck",1,"ShieldThrow2")
TNT1 A 0 A_GiveInventory("ShieldCheck",1)
DKC2 B 1
DKC2 B 1
DKC2 CDEF 2
DKC2 GH 2
goto Ready2
ShieldThrow:
TNT1 A 0 A_TakeInventory("ShieldCheck",999)
//SPAS C 0 A_FireCustomMissile("DarkShieldFireClass",0,0,0,-37)
//BUST B 0 A_FireCustomMissile("DarkShieldFireClass",180,0,0,-37)
SPAS C 0 A_SpawnItemEx("DarkShieldFireClass",0,0,0,28,0,0,0,1)
SPAS C 0 A_SpawnItemEx("DarkShieldFireClass",0,0,0,28,0,0,180,1)
DKC2 IJ 3
DKC2 K 20
DKC2 I 3
Goto Ready+1
ShieldThrow2:
DKC2 I 0 A_TakeInventory("ShieldCheck",999)
DKC2 I 0 A_GiveInventory("Darkman2Alt2_CI",1)
DKC2 IJ 3
DKC2 K 20
DKC2 I 3
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 1 ACS_ExecuteAlways(648,0,17)//ACS_ExecuteAlways(191,0,2)
loop
TNT1 A 0 A_PlaySoundEX("weapon/shieldhum","SoundSlot7")
TNT1 A 0 A_SpawnItemEx("DarkShieldSegment",55,0,0,momx,momy,momz,0,45,0)//SXF_ABSOLUTEMOMENTUM|SXF_ABSOLUTEANGLE|SXF_NOCHECKPOSITION
TNT1 A 1 A_SpawnItemEx("DarkShieldSegment",55,0,0,momx,momy,momz,180,45,0)
TNT1 A 0 ACS_ExecuteAlways(648,0,17)
TNT1 A 0 A_JumpIfInventory(ShieldCheck,1,1)
goto Flash
TNT1 A 0 A_SpawnItemEx("DarkShieldSegment",55,0,0,momx,momy,momz,160,45,0)//2
TNT1 A 1 A_SpawnItemEx("DarkShieldSegment",55,0,0,momx,momy,momz,340,45,0)//20
TNT1 A 0 ACS_ExecuteAlways(648,0,17)
TNT1 A 0 A_JumpIfInventory(ShieldCheck,1,1)
goto Flash
TNT1 A 0 A_SpawnItemEx("DarkShieldSegment2",55,0,0,momx,momy,momz,140,45,0)//4
TNT1 A 1 A_SpawnItemEx("DarkShieldSegment2",55,0,0,momx,momy,momz,320,45,0)//22
TNT1 A 0 ACS_ExecuteAlways(648,0,17)
TNT1 A 0 A_JumpIfInventory(ShieldCheck,1,1)
goto Flash
TNT1 A 0 A_SpawnItemEx("DarkShieldSegment2",55,0,0,momx,momy,momz,120,45,0)//6
TNT1 A 1 A_SpawnItemEx("DarkShieldSegment2",55,0,0,momx,momy,momz,300,45,0)//24
TNT1 A 0 ACS_ExecuteAlways(648,0,17)
TNT1 A 0 A_JumpIfInventory(ShieldCheck,1,1)
goto Flash
TNT1 A 0 A_SpawnItemEx("DarkShieldSegment3",55,0,0,momx,momy,momz,100,45,0)//8
TNT1 A 1 A_SpawnItemEx("DarkShieldSegment3",55,0,0,momx,momy,momz,280,45,0)//26
TNT1 A 0 ACS_ExecuteAlways(648,0,17)
TNT1 A 0 A_JumpIfInventory(ShieldCheck,1,1)
goto Flash
TNT1 A 0 A_SpawnItemEx("DarkShieldSegment3",55,0,0,momx,momy,momz,80,45,0)//10
TNT1 A 1 A_SpawnItemEx("DarkShieldSegment3",55,0,0,momx,momy,momz,260,45,0)//28
TNT1 A 0 ACS_ExecuteAlways(648,0,17)
TNT1 A 0 A_JumpIfInventory(ShieldCheck,1,1)
goto Flash
TNT1 A 0 A_SpawnItemEx("DarkShieldSegment",55,0,0,momx,momy,momz,60,45,0)//12
TNT1 A 1 A_SpawnItemEx("DarkShieldSegment",55,0,0,momx,momy,momz,240,45,0)//30
TNT1 A 0 ACS_ExecuteAlways(648,0,17)
TNT1 A 0 A_JumpIfInventory(ShieldCheck,1,1)
goto Flash
TNT1 A 0 A_SpawnItemEx("DarkShieldSegment",55,0,0,momx,momy,momz,40,45,0)//14
TNT1 A 1 A_SpawnItemEx("DarkShieldSegment",55,0,0,momx,momy,momz,220,45,0)//32
TNT1 A 0 ACS_ExecuteAlways(648,0,17)
TNT1 A 0 A_JumpIfInventory(ShieldCheck,1,1)
goto Flash
TNT1 A 0 A_SpawnItemEx("DarkShieldSegment2",55,0,0,momx,momy,momz,20,45,0)//16
TNT1 A 1 A_SpawnItemEx("DarkShieldSegment2",55,0,0,momx,momy,momz,200,45,0)//34
TNT1 A 0 ACS_ExecuteAlways(648,0,17)
TNT1 A 0 A_JumpIfInventory(ShieldCheck,1,"Flash")
goto Flash
}
}

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


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

+SKYEXPLODE
+DONTSPLASH
//+NOCLIP
+NOINTERACTION
+INVULNERABLE
+THRUGHOST
States
{
Spawn:
DSHO F 0
DSHO F 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 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 "Dark"
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
{
Damage (0)
Speed 28
States
{
Spawn:
DSHO F 0
DSHO FGH 2 A_Explode(8,64,0,0,12)
loop
}
}

actor ElectromagneticNet : SparkShock
{
Translation "202:202=216:216"
-NOGRAVITY
gravity 0.4
damage (6)
damagetype "ElectroNet"
Obituary "$OB_DARK2NET"
States
{
Spawn:
DSHO DE 4
loop
}
}

actor ElectromagneticNetB : ElectromagneticNet{translation "202:202=205:205"}
actor ElectromagneticNetR : ElectromagneticNet{translation "202:202=171:171"}
actor ElectromagneticNetO : ElectromagneticNet{translation "202:202=104:104"}
actor ElectromagneticNetP : ElectromagneticNet{translation "202:202=229:229"}

actor ElectromagneticNet2 : ElectromagneticNet{speed 25}
actor ElectromagneticNet2B : ElectromagneticNetB{speed 25}
actor ElectromagneticNet2R : ElectromagneticNetR{speed 25}
actor ElectromagneticNet2O : ElectromagneticNetO{speed 25}
actor ElectromagneticNet2P : ElectromagneticNetP{speed 25}

actor ElectromagneticNet3 : ElectromagneticNet{speed 15}
actor ElectromagneticNet3B : ElectromagneticNetB{speed 15}
actor ElectromagneticNet3R : ElectromagneticNetR{speed 15}
actor ElectromagneticNet3O : ElectromagneticNetO{speed 15}
actor ElectromagneticNet3P : ElectromagneticNetP{speed 15}


actor Darkman2Main_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ElectromagneticNet",0,0,8,0)
TNT1 A 0 A_FireCustomMissile("ElectromagneticNet2",30,0,8,0)
TNT1 A 0 A_FireCustomMissile("ElectromagneticNet2",-30,0,8,0)
TNT1 A 0 A_FireCustomMissile("ElectromagneticNet3",0,1,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ElectromagneticNetB",0,0,8,0)
TNT1 A 0 A_FireCustomMissile("ElectromagneticNet2B",30,0,8,0)
TNT1 A 0 A_FireCustomMissile("ElectromagneticNet2B",-30,0,8,0)
TNT1 A 0 A_FireCustomMissile("ElectromagneticNet3B",0,1,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ElectromagneticNetR",0,0,8,0)
TNT1 A 0 A_FireCustomMissile("ElectromagneticNet2R",30,0,8,0)
TNT1 A 0 A_FireCustomMissile("ElectromagneticNet2R",-30,0,8,0)
TNT1 A 0 A_FireCustomMissile("ElectromagneticNet3R",0,1,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ElectromagneticNetO",0,0,8,0)
TNT1 A 0 A_FireCustomMissile("ElectromagneticNet2O",30,0,8,0)
TNT1 A 0 A_FireCustomMissile("ElectromagneticNet2O",-30,0,8,0)
TNT1 A 0 A_FireCustomMissile("ElectromagneticNet3O",0,1,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ElectromagneticNetP",0,0,8,0)
TNT1 A 0 A_FireCustomMissile("ElectromagneticNet2P",30,0,8,0)
TNT1 A 0 A_FireCustomMissile("ElectromagneticNet2P",-30,0,8,0)
TNT1 A 0 A_FireCustomMissile("ElectromagneticNet3P",0,1,8,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
}
}



