actor JunkShieldWep : MegaBuster 10087
{
Weapon.AmmoUse 7
Weapon.AmmoGive 28
Weapon.SlotNumber 7
Obituary "%o was crushed by %k's Junk Shield."
Inventory.Pickupmessage "Power up! Junk Shield!"
weapon.ammotype "JunkShieldAmmo"
inventory.pickupsound "weapon/weaponup"
+WEAPON.AMMO_OPTIONAL
inventory.icon "JSHISI"
Scale 2.0
States
{
Spawn:
WEA3 N 1
loop
Ready:
JARM A 0 ACS_ExecuteAlways(998,0,57)
JARM A 0 //ACS_ExecuteAlways(994,0)
JARM A 0 //A_JumpIf(ACS_ExecuteWithResult(975,0)==3,"Death")
JARM A 1 A_WeaponReady
Goto Ready+3
Deselect:
JARM A 0 A_TakeInventory("ShieldCheck",1)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
JARM A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
JARM A 1 A_Raise
Loop
Fire:
JARM A 0 A_JumpIfInventory("ShieldCheck", 1,"ShieldThrow")
JARM A 0 A_JumpIfNoAmmo("Hold")
JARM A 0 A_GiveInventory("ShieldCheck",1)
JARM A 0 A_TakeInventory("JunkShieldAmmo",7)
JARM BCDEF 2
TNT1 A 8 A_GunFlash
JARM GH 2
Goto Ready+2
ShieldThrow:
JARM A 0 A_GiveInventory("JunkDone",1)
JARM IJ 3 A_TakeInventory("ShieldCheck",1)
JARM A 0 A_TakeInventory("JunkDone",1)
JARM A 0 A_PlayWeaponSound("weapon/junkshield")
JARM A 0 A_FireCustomMissile("JunkProjectile",0,0,0,0)
JARM A 0 A_FireCustomMissile("JunkProjectile",120,0,0,0)
JARM K 4 A_FireCustomMissile("JunkProjectile",-120,0,0,0)
JARM A 0 A_FireCustomMissile("JunkProjectile2",0,0,0,0)
JARM A 0 A_FireCustomMissile("JunkProjectile2",120,0,0,0)
JARM K 4 A_FireCustomMissile("JunkProjectile2",-120,0,0,0)
JARM K 20
JARM I 3
Goto Ready+2
Flash:
TNT1 A 0 A_SpawnItemEx("JunkShieldShot",0,0,32,momx,momy,momz,0 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_SpawnItemEx("JunkShieldShot",0,0,32,momx,momy,momz,120 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("JunkShieldShot",0,0,32,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("JunkShieldShot",0,0,32,momx,momy,momz,10 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_SpawnItemEx("JunkShieldShot",0,0,32,momx,momy,momz,130 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("JunkShieldShot",0,0,32,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("JunkShieldShot",0,0,32,momx,momy,momz,20 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_SpawnItemEx("JunkShieldShot",0,0,32,momx,momy,momz,140 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("JunkShieldShot",0,0,32,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("JunkShieldShot",0,0,32,momx,momy,momz,30 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_SpawnItemEx("JunkShieldShot",0,0,32,momx,momy,momz,150 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("JunkShieldShot",0,0,32,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("JunkShieldShot",0,0,32,momx,momy,momz,40 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_SpawnItemEx("JunkShieldShot",0,0,32,momx,momy,momz,160 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("JunkShieldShot",0,0,32,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("JunkShieldShot",0,0,32,momx,momy,momz,50 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_SpawnItemEx("JunkShieldShot",0,0,32,momx,momy,momz,170 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("JunkShieldShot",0,0,32,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("JunkShieldShot",0,0,32,momx,momy,momz,60 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_SpawnItemEx("JunkShieldShot",0,0,32,momx,momy,momz,180 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("JunkShieldShot",0,0,32,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("JunkShieldShot",0,0,32,momx,momy,momz,70 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_SpawnItemEx("JunkShieldShot",0,0,32,momx,momy,momz,190 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("JunkShieldShot",0,0,32,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("JunkShieldShot",0,0,32,momx,momy,momz,80 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_SpawnItemEx("JunkShieldShot",0,0,32,momx,momy,momz,200 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("JunkShieldShot",0,0,32,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("JunkShieldShot",0,0,32,momx,momy,momz,90 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_SpawnItemEx("JunkShieldShot",0,0,32,momx,momy,momz,210 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("JunkShieldShot",0,0,32,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("JunkShieldShot",0,0,32,momx,momy,momz,100 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_SpawnItemEx("JunkShieldShot",0,0,32,momx,momy,momz,220 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("JunkShieldShot",0,0,32,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("JunkShieldShot",0,0,32,momx,momy,momz,110 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 0 A_SpawnItemEx("JunkShieldShot",0,0,32,momx,momy,momz,230 ,SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_SpawnItemEx("JunkShieldShot",0,0,32,momx,momy,momz,350 ,SXF_ABSOLUTEMOMENTUM, 0)
loop
NoFlash:
TNT1 A 0
stop
Hold:
JARM A 1 ACS_Execute(979,0)
JARM A 0 A_Refire
Goto Ready+2
NoAmmo:
JARM A 1 ACS_Execute(979,0)
Goto Ready+2
Death:
JARM A 1
stop
}
}

actor JunkProjectile
{
PROJECTILE
Damage (20)
Height 10
Radius 21
scale 2.5
Speed 18
States
{
Spawn:
JSHI V 4
loop
}
}

actor JunkProjectile2
{
PROJECTILE
Damage 0
Height 10
Radius 21
scale 2.5
Speed 18
States
{
Spawn:
JSHI W 4
loop
}
}

actor JunkDone : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

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


actor JunkShieldShot
{
PROJECTILE
Damage (0)
+RIPPER
+DONTBLAST
Height 10
Radius 21
scale 2.5
Speed 18
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Recoil(-100) // Distance
TNT1 A 0 A_SpawnItemEx("JunkShieldSegment")
stop
}
}

actor JunkShieldSegment
{
damagetype "Junk"
+MISSILE
+NOGRAVITY
-SOLID
+NOBLOOD
+DONTBLAST
Damage (2)
health 999
painchance 0
+RIPPER
+SHOOTABLE
Height 20
Radius 20
scale 2.5
Speed 0
States
{
Spawn:
JSHI V 2
stop
}
}

