actor DarkShieldBoss : MegaBuster
{
Weapon.AmmoUse 0
Weapon.AmmoGive 28
Weapon.SlotNumber 1
Obituary "%o was fried by %k's Dark Shield."
Inventory.Pickupmessage "still no"
weapon.ammotype "DarkShieldAmmo"
inventory.pickupsound "weapon/weaponup"
+WEAPON.AMMO_OPTIONAL
States
{
Spawn:
TNT1 A 0
stop
Ready:
BUST B 0 ACS_ExecuteAlways(998,0,30)
TNT1 A 0 ACS_ExecuteAlways(191,0,2)
DKC2 A 1 A_WeaponReady(WRF_NOSWITCH)
Goto Ready+1
Ready2:
DKC2 A 1 A_WeaponReady(WRF_NOSWITCH)
loop
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
BUST B 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
BUST B 1 A_Raise
Loop
Fire:
TNT1 A 0 A_JumpIfInventory("ShieldCheck",1,"ShieldThrow")
DKC2 I 1
DKC2 I 3 ACS_ExecuteAlways(191,0,0)
DKC2 J 4
DKC2 K 3
SPAS C 0 A_PlaySoundEx("weapon/sparkshock","Weapon")
SPAS C 0 A_FireCustomMissile("ElectromagneticNet",0,0,8,0)
SPAS C 0 A_FireCustomMissile("ElectromagneticNet2",30,0,8,0)
SPAS C 0 A_FireCustomMissile("ElectromagneticNet2",-30,0,8,0)
SPAS C 0 A_FireCustomMissile("ElectromagneticNet3",0,1,8,0)
DKC2 K 10
DKC2 I 3
BUST B 0 A_Refire
Goto Ready+1
AltFire:
TNT1 A 0 A_JumpIfInventory("ShieldCheck",1,"ShieldThrow")
TNT1 A 0 A_GiveInventory("ShieldCheck",1)
TNT1 A 0 A_TakeInventory("JunkDone",999)
DKC2 B 1 A_GunFlash
DKC2 B 1 ACS_ExecuteAlways(191,0,0)
DKC2 CDEF 2
DKC2 GH 2
goto Ready2
ShieldThrow:
DKC4 A 0 A_GiveInventory("JunkDone",1)
TNT1 A 0 A_TakeInventory("ShieldCheck",999)
//BUST B 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)
SPAS C 0 A_SpawnItemEx("DarkShieldFireClass",0,0,0,28,0,0,180)
DKC2 IJ 3
DKC2 K 24
DKC2 I 3
TNT1 A 0 A_TakeInventory("JunkDone",999)
Goto Ready+1
NoAmmo:
DKC2 A 0
Goto Ready+1
Flash:
TNT1 A 0 A_SpawnItemEx("DarkShieldShot",0,0,0,momx,momy,momz,0 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("DarkShieldShot",0,0,0,momx,momy,momz,180 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_JumpIfInventory("JunkDone",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("DarkShieldShot",0,0,0,momx,momy,momz,10 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("DarkShieldShot",0,0,0,momx,momy,momz,190 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_JumpIfInventory("JunkDone",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("DarkShieldShot2",0,0,0,momx,momy,momz,20 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("DarkShieldShot2",0,0,0,momx,momy,momz,200 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_JumpIfInventory("JunkDone",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("DarkShieldShot2",0,0,0,momx,momy,momz,30 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("DarkShieldShot2",0,0,0,momx,momy,momz,210 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_JumpIfInventory("JunkDone",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("DarkShieldShot3",0,0,0,momx,momy,momz,40 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("DarkShieldShot3",0,0,0,momx,momy,momz,220 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_JumpIfInventory("JunkDone",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("DarkShieldShot3",0,0,0,momx,momy,momz,50 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("DarkShieldShot3",0,0,0,momx,momy,momz,230 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_JumpIfInventory("JunkDone",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("DarkShieldShot",0,0,0,momx,momy,momz,60 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("DarkShieldShot",0,0,0,momx,momy,momz,240 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_JumpIfInventory("JunkDone",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("DarkShieldShot",0,0,0,momx,momy,momz,70 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("DarkShieldShot",0,0,0,momx,momy,momz,250 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_JumpIfInventory("JunkDone",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("DarkShieldShot2",0,0,0,momx,momy,momz,80 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("DarkShieldShot2",0,0,0,momx,momy,momz,260 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_JumpIfInventory("JunkDone",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("DarkShieldShot2",0,0,0,momx,momy,momz,90 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("DarkShieldShot2",0,0,0,momx,momy,momz,270 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_JumpIfInventory("JunkDone",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("DarkShieldShot3",0,0,0,momx,momy,momz,100 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("DarkShieldShot3",0,0,0,momx,momy,momz,280 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_JumpIfInventory("JunkDone",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("DarkShieldShot3",0,0,0,momx,momy,momz,110 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("DarkShieldShot3",0,0,0,momx,momy,momz,290 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_JumpIfInventory("JunkDone",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("DarkShieldShot",0,0,0,momx,momy,momz,120 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("DarkShieldShot",0,0,0,momx,momy,momz,300 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_JumpIfInventory("JunkDone",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("DarkShieldShot",0,0,0,momx,momy,momz,130 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("DarkShieldShot",0,0,0,momx,momy,momz,310 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_JumpIfInventory("JunkDone",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("DarkShieldShot2",0,0,0,momx,momy,momz,140 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("DarkShieldShot2",0,0,0,momx,momy,momz,320 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_JumpIfInventory("JunkDone",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("DarkShieldShot2",0,0,0,momx,momy,momz,150 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("DarkShieldShot2",0,0,0,momx,momy,momz,330 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_JumpIfInventory("JunkDone",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("DarkShieldShot3",0,0,0,momx,momy,momz,160 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("DarkShieldShot3",0,0,0,momx,momy,momz,340 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_JumpIfInventory("JunkDone",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("DarkShieldShot3",0,0,0,momx,momy,momz,170 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("DarkShieldShot3",0,0,0,momx,momy,momz,350 ,SXF_ABSOLUTEMOMENTUM, 0)
loop
NoFlash:
TNT1 A 0
stop
}
}

actor DarkShieldAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
}

actor DarkShieldShot
{
PROJECTILE
Damage (0)
+RIPPER
+DONTBLAST
Height 56
Radius 5
scale 2.5
Speed 18
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Recoil(-50) // Distance
TNT1 A 0 A_SpawnItemEx("DarkShieldSegment")
stop
}
}
actor DarkShieldShot2 : DarkShieldShot
{
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Recoil(-50) // Distance
TNT1 A 0 A_SpawnItemEx("DarkShieldSegment2")
stop
}
}
actor DarkShieldShot3 : DarkShieldShot
{
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Recoil(-50) // Distance
TNT1 A 0 A_SpawnItemEx("DarkShieldSegment3")
stop
}
}

actor DarkShieldSegment
{
damagetype "Dark"
+MISSILE
+NOGRAVITY
-SOLID
+NOBLOOD
+DONTBLAST
Damage (5)
health 999
painchance 0
+RIPPER
+SHOOTABLE
+GHOST
Height 56
Radius 5
scale 2.5
Speed 0
States
{
Spawn:
DARS A 2
stop
}
}
actor DarkShieldSegment2 : DarkShieldSegment
{
States
{
Spawn:
DARS B 2
stop
}
}
actor DarkShieldSegment3 : DarkShieldSegment
{
States
{
Spawn:
DARS C 2
stop
}
}

actor DarkShieldFireClass
{
PROJECTILE
Height 56
Radius 5
Damage (5)
Speed 28
+RIPPER
damagetype "Dark"
scale 2.5
States
{
Spawn:
DARS A 0
DARS ABC 2 A_Explode(8,64,0)
loop
}
}

actor ElectromagneticNet : SparkShock
{
-NOGRAVITY
gravity 0.4
damage (6)
Obituary "%o was electromagneticuted by %k's Electromagnetic Net."
States
{
Spawn:
DSHO DE 4
loop
}
}

actor ElectromagneticNet2 : ElectromagneticNet
{
speed 25
}

actor ElectromagneticNet3 : ElectromagneticNet
{
speed 15
}