Raw model (for completeness)
{
"meta": {
"id": "054737fa-d63f-44a8-a786-e5c9d3bfc466",
"sha1": "c621430a2cefaafda8ddc30e8c0f42e1d9f37b7b",
"sha256": "e89faf9471d4aab113aff397bec6ae67f141d87144d9251c22afa479f309d297",
"filenames": [
"aow-complex-v0.232.pk3"
],
"additional": {
"engines": [
"ZDOOM"
],
"iwad": [],
"filename": null,
"added": "2018-06-17 15:36:33",
"locked": false,
"canDownload": true,
"adult": false,
"hidden": false,
"name": null,
"description": null,
"maps": null,
"graphicOverrides": null,
"screenshots": null,
"palettes": null,
"categories": null
},
"flags": {
"locked": false,
"canDownload": true,
"adult": false,
"hidden": false
},
"added": "2018-06-17 15:36:33",
"file": {
"type": "PK3",
"size": 249228,
"url": "https://wadarchive2.nyc3.digitaloceanspaces.com/c621430a2cefaafda8ddc30e8c0f42e1d9f37b7b/c621430a2cefaafda8ddc30e8c0f42e1d9f37b7b.pk3.gz",
"corrupt": false
},
"content": {
"counts": {
"endoom": 0,
"graphics": 0,
"lumps": 80,
"maps": 0,
"palettes": 0
},
"engines_guess": [
"ZDOOM"
]
},
"text_files": [
{
"source": "pk3",
"name": "decorate.txt",
"contents": "// vim:et\n\n#include \"Actors/Players/LCA-Player.txt\"\n#include \"Weapons.dec\"\n#include \"SFX.dec\"\n#include \"Pickups.dec\"\n#include \"ExWeapons.dec\"\n#include \"Actors/Weapons/AssaultShotgun.txt\"\n\nactor Dummy\n{\n+NOBLOCKMAP\n+NOTELEPORT\n+NOGRAVITY\n+INVISIBLE\n+NOINTERACTION\n+CLIENTSIDEONLY\nRenderStyle None\nstates\n {\n Spawn:\n TNT1 A 5\n stop\n }\n}\n\nactor DummyWpn : Weapon\n{\nWeapon.SelectionOrder 9900\n+WEAPON.DONTBOB\n+WEAPON.AMMO_OPTIONAL\n+WEAPON.CHEATNOTWEAPON\n+WEAPON.NOALERT\n+INVENTORY.UNDROPPABLE\nstates\n {\n Select:\n TNT1 AAA 0 A_Raise\n TNT1 A 1 A_Raise\n loop\n Deselect:\n TNT1 AAA 0 A_Lower\n TNT1 A 1 A_Lower\n loop\n Ready:\n TNT1 A 10 A_WeaponReady\n wait\n Fire:\n TNT1 A 10\n goto Ready\n }\n}\n\nactor BlockedPlayer : PlayerPawn\n{\nPlayer.MorphWeapon \"DummyWpn\"\n-SOLID\n-SHOOTABLE\n-PICKUP\n+NOBLOCKMAP\n+INVISIBLE\n+NODAMAGE\n+NOPAIN\n+NOTARGET\n+NOICEDEATH\nstates\n {\n Spawn:\n TNT1 A -1\n stop\n See:\n TNT1 A 15\n goto Spawn\n Missile:\n TNT1 A 12\n goto Spawn\n Melee:\n TNT1 A 6\n goto Spawn\n Death:\n TNT1 A 50\n stop\n }\n}\n\nactor PBackpack : FakeInventory\n{\nTranslation \"64:79=112:127\",\"136:151=120:127\",\"0:2=126:127\"\nRadius 15\nHeight 26\nInventory.PickupMessage \"$GOTBACKPACK\"\nstates\n {\n Spawn:\n BPAK A -1\n stop\n }\n}\n\nactor PowerIronFeet2 : PowerIronFeet\n{\nPowerup.Duration -120\n}\n\nactor PowerLightAmp5 : PowerLightAmp\n{\nPowerup.Duration -300\n}\n\nactor PowerDamage2 : PowerDamage\n{\nDamageFactor 2\nPowerup.Duration 32000\n}\n\nactor PowerDamage4 : PowerDamage\n{\nDamageFactor 4\nPowerup.Duration 32000\n}\n\nactor GiveDamage2 : PowerupGiver\n{\nInventory.MaxAmount 0\nPowerup.Type \"PowerDamage2\"\n+INVENTORY.AUTOACTIVATE\n+INVENTORY.ALWAYSPICKUP\n}\n\nactor GiveDamage4 : PowerupGiver\n{\nInventory.MaxAmount 0\nPowerup.Type \"PowerDamage4\"\n+INVENTORY.AUTOACTIVATE\n+INVENTORY.ALWAYSPICKUP\n}\n\nactor ISupplyBoxCnt : Inventory\n{\nInventory.MaxAmount 2\n+INVENTORY.UNDROPPABLE\n+INVENTORY.KEEPDEPLETED\n}\n\nactor ISupplyBoxP : Inventory\n{\nInventory.MaxAmount 1\n+INVENTORY.UNDROPPABLE\n}\n\nactor ISupplyBoxS : Inventory\n{\nInventory.MaxAmount 1\n+INVENTORY.UNDROPPABLE\n}\n\nactor IDisarm : Inventory\n{\nInventory.MaxAmount 1\n+INVENTORY.UNDROPPABLE\n}\n\nactor PSupplyBoxP\n{\nRadius 20\nHeight 20\nSpeed 5\nMass 10000\n+SHOOTABLE\n+INVULNERABLE\n+DROPOFF\nstates\n {\n Spawn:\n SUPB AAA 5\n SUPB A 1 A_CheckFloor(1)\n wait\n SUPB A -1 A_GiveInventory(\"ISupplyBoxP\",1)\n stop\n Die:\n SUPB A 0 A_ChangeFlag(\"SHOOTABLE\",0)\n SUPB A 5 A_FadeOut(0.2)\n wait\n Death:\n SUPB A 1\n stop\n }\n}\n\nactor PSupplyBoxS\n{\nTranslation \"96:111=128:143\"\nRadius 20\nHeight 20\nSpeed 5\nMass 10000\n+SHOOTABLE\n+INVULNERABLE\n+DROPOFF\nstates\n {\n Spawn:\n SUPB AAA 5\n SUPB A 1 A_CheckFloor(1)\n wait\n SUPB A -1 A_GiveInventory(\"ISupplyBoxS\",1)\n stop\n Die:\n SUPB A 0 A_ChangeFlag(\"SHOOTABLE\",0)\n SUPB A 5 A_FadeOut(0.2)\n wait\n Death:\n SUPB A 1\n stop\n }\n}\n\nactor YBlurSphere : RandomSpawner replaces BlurSphere\n{\nDropItem \"ModdedMegasphere\"\n}\n\nactor YBerserk : RandomSpawner replaces Berserk\n{\nDropItem \"ModdedSoulSphere\"\n}\n\nactor MAllmap : Allmap\n{\nstates\n {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_ChangeFlag(\"DROPPED\",0)\n goto super::Spawn\n }\n}\n\nactor MUltraSphere : UltraSphere\n{\nstates\n {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_ChangeFlag(\"DROPPED\",0)\n goto super::Spawn\n }\n}\n\nactor YAllmap replaces Allmap\n{\n+NOBLOCKMAP\n+NOSECTOR\nstates\n {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(820,1)==1,2)\n TNT1 A 1 A_SpawnItem(\"MAllmap\")\n stop\n TNT1 A 1 A_SpawnItem(\"MUltraSphere\")\n stop\n }\n}\n\nactor ShieldSphere : BasicArmorPickup\n{\nInventory.Icon \"PINVA0\"\nArmor.SavePercent 80\nArmor.SaveAmount 666\nArmor.MaxFullAbsorb 200\n}\n\nactor ProtectionSphere : CustomInventory replaces InvulnerabilitySphere\n{\nInventory.PickupMessage \"Protection Sphere!\"\n+FLOATBOB\nstates\n {\n Spawn:\n PINV A 0 A_CustomMissile(\"RedSparkleSpawner\",0,0,random(0,-360),2,random(0,360))\n PINV AAAAAABBBBBB 1 bright A_SpawnItem(\"GreenSphereFlare\",0,38)\n PINV C 0 A_CustomMissile(\"GreenSparkleSpawner\",0,0,random(0,-360),2,random(0,360))\n PINV CCCCCCDDDDDD 1 bright A_SpawnItem(\"GreenSphereFlare\",0,38)\n loop\n Pickup:\n TNT1 A 0 ACS_ExecuteAlways(821,0,2)\n TNT1 A 0 A_GiveInventory(\"ShieldSphere\",1)\n stop\n }\n}\n\nactor ClipDropAmmo : CustomInventory\n{\nRadius 20\nHeight 26\nScale 0.5\nSpeed 5\nInventory.PickupMessage \"Bullets\"\n+NOBLOCKMAP\n+DROPOFF\nstates\n {\n Spawn:\n BULP AAA 5\n BULP A 1 A_CheckFloor(1)\n wait\n BULP A -1 A_ChangeFlag(\"NOBLOCKMAP\",0)\n stop\n Pickup:\n TNT1 A 0 A_GiveInventory(\"BulletMag\",10)\n stop\n }\n}\n\nactor ClipBoxDropAmmo : CustomInventory\n{\nRadius 20\nHeight 26\nScale 0.5\nSpeed 5\nInventory.PickupMessage \"Bullet Box\"\n+NOBLOCKMAP\n+DROPOFF\nstates\n {\n Spawn:\n CLBX AAA 5\n CLBX A 1 A_CheckFloor(1)\n wait\n CLBX A -1 A_ChangeFlag(\"NOBLOCKMAP\",0)\n stop\n Pickup:\n TNT1 A 0 A_GiveInventory(\"BulletMag\",50)\n stop\n }\n}\n\nactor ShellDropAmmo : CustomInventory\n{\nRadius 20\nHeight 26\nScale 0.3\nSpeed 5\nInventory.PickupMessage \"Shells\"\n+NOBLOCKMAP\n+DROPOFF\nstates\n {\n Spawn:\n SHEL AAA 5\n SHEL A 1 A_CheckFloor(1)\n wait\n SHEL A -1 A_ChangeFlag(\"NOBLOCKMAP\",0)\n stop\n Pickup:\n TNT1 A 0 A_GiveInventory(\"NewShell\",4)\n stop\n }\n}\n\nactor ShellBoxDropAmmo : CustomInventory\n{\nRadius 20\nHeight 26\nScale 0.75\nSpeed 5\nInventory.PickupMessage \"Shell Box\"\n+NOBLOCKMAP\n+DROPOFF\nstates\n {\n Spawn:\n SBOX AAA 5\n SBOX A 1 A_CheckFloor(1)\n wait\n SBOX A -1 A_ChangeFlag(\"NOBLOCKMAP\",0)\n stop\n Pickup:\n TNT1 A 0 A_GiveInventory(\"NewShell\",20)\n stop\n }\n}\n\nactor RocketDropAmmo : CustomInventory\n{\nRadius 20\nHeight 26\nScale 0.8\nSpeed 5\nInventory.PickupMessage \"Rocket\"\n+NOBLOCKMAP\n+DROPOFF\nstates\n {\n Spawn:\n ROC2 AAA 5\n ROC2 A 1 A_CheckFloor(1)\n wait\n ROC2 A -1 A_ChangeFlag(\"NOBLOCKMAP\",0)\n stop\n Pickup:\n TNT1 A 0 A_GiveInventory(\"Missile\",1)\n stop\n }\n}\n\nactor RocketBoxDropAmmo : CustomInventory\n{\nRadius 20\nHeight 26\nScale 0.7\nSpeed 5\nInventory.PickupMessage \"Rocket Crate\"\n+NOBLOCKMAP\n+DROPOFF\nstates\n {\n Spawn:\n BRO2 AAA 5\n BRO2 A 1 A_CheckFloor(1)\n wait\n BRO2 A -1 A_ChangeFlag(\"NOBLOCKMAP\",0)\n stop\n Pickup:\n TNT1 A 0 A_GiveInventory(\"Missile\",5)\n stop\n }\n}\n\nactor CellDropAmmo : CustomInventory\n{\nRadius 20\nHeight 26\nScale 0.8\nSpeed 5\nInventory.PickupMessage \"Energy Battery\"\n+NOBLOCKMAP\n+DROPOFF\nstates\n {\n Spawn:\n CEL2 AAA 5\n CEL2 A 1 A_CheckFloor(1)\n wait\n CEL2 A 0 A_ChangeFlag(\"NOBLOCKMAP\",0)\n Idle:\n CEL2 ABCDDDCB 3\n loop\n Pickup:\n TNT1 A 0 A_GiveInventory(\"NewCell\",20)\n stop\n }\n}\n\nactor CellPackDropAmmo : CustomInventory\n{\nRadius 20\nHeight 26\nScale 0.6\nSpeed 5\nInventory.PickupMessage \"Energy Battery Pack\"\n+NOBLOCKMAP\n+DROPOFF\nstates\n {\n Spawn:\n CE2P AAA 5\n CE2P A 1 A_CheckFloor(1)\n wait\n CE2P A 0 A_ChangeFlag(\"NOBLOCKMAP\",0)\n Idle:\n CE2P ABCDEFGGGFEDCB 3\n loop\n Pickup:\n TNT1 A 0 A_GiveInventory(\"NewCell\",100)\n stop\n }\n}\n\nactor DemonDropAmmo : CustomInventory\n{\nRadius 20\nHeight 26\nScale 0.65\nSpeed 5\nInventory.PickupMessage \"Demon Tech Plasma Charge\"\n+NOBLOCKMAP\n+DROPOFF\nstates\n {\n Spawn:\n DAMG AAA 5\n DAMG A 1 A_CheckFloor(1)\n wait\n DAMG A -1 A_ChangeFlag(\"NOBLOCKMAP\",0)\n stop\n Pickup:\n TNT1 A 0 A_GiveInventory(\"DemonAmmo\",50)\n stop\n }\n}\n\nactor DemonPackDropAmmo : CustomInventory\n{\nRadius 20\nHeight 26\nScale 0.65\nSpeed 5\nInventory.PickupMessage \"Demon Tech Plasma Pack\"\n+NOBLOCKMAP\n+DROPOFF\nstates\n {\n Spawn:\n DAMO AAA 5\n DAMO A 1 A_CheckFloor(1)\n wait\n DAMO A -1 A_ChangeFlag(\"NOBLOCKMAP\",0)\n stop\n Pickup:\n TNT1 A 0 A_GiveInventory(\"DemonAmmo\",200)\n stop\n }\n}\n\nactor ClipDrop : Weapon\n{\nobituary \"%o died.\"\nWeapon.SelectionOrder 5101\nWeapon.AmmoUse 0\nWeapon.AmmoType \"BulletMag\"\nWeapon.PreferredSkin \"Fist-Marine\"\n+WEAPON.DONTBOB\n+WEAPON.AMMO_OPTIONAL\n+WEAPON.CHEATNOTWEAPON\n+WEAPON.NOALERT\n+INVENTORY.UNDROPPABLE\nstates\n {\n Select:\n TNT1 A 0 A_Print(\"Drop: Clip / ClipBox\")\n TNT1 AAA 0 A_Raise\n TNT1 A 1 A_Raise\n goto Select+1\n Deselect:\n TNT1 AAA 0 A_Lower\n TNT1 A 1 A_Lower\n loop\n Ready:\n TNT1 A 10 A_WeaponReady\n TNT1 A 0 A_JumpIfTargetInLOS(1)\n loop\n TNT1 A 0 ACS_ExecuteAlways(815,0,0)\n loop\n Fire:\n TNT1 A 20 A_JumpIfInventory(\"BulletMag\",10,1)\n goto Ready\n TNT1 A 0 A_JumpIfTargetInLOS(3)\n TNT1 A 0 A_TakeInventory(\"BulletMag\",10)\n TNT1 A 10 A_CustomMissile(\"ClipDropAmmo\",16,0,0,2,0)\n goto Ready\n TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(815,1,10),1)\n goto Fire+2\n TNT1 A 10\n goto Ready\n AltFire:\n TNT1 A 20 A_JumpIfInventory(\"BulletMag\",50,1)\n goto Ready\n TNT1 A 0 A_JumpIfTargetInLOS(3)\n TNT1 A 0 A_TakeInventory(\"BulletMag\",50)\n TNT1 A 10 A_CustomMissile(\"ClipBoxDropAmmo\",16,0,0,2,0)\n goto Ready\n TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(815,1,50),1)\n goto AltFire+2\n TNT1 A 10\n goto Ready\n }\n}\n\nactor ShellDrop : Weapon\n{\nobituary \"%o died.\"\nWeapon.SelectionOrder 5102\nWeapon.AmmoUse 0\nWeapon.AmmoType \"NewShell\"\nWeapon.PreferredSkin \"Fist-Marine\"\n+WEAPON.DONTBOB\n+WEAPON.AMMO_OPTIONAL\n+WEAPON.CHEATNOTWEAPON\n+WEAPON.NOALERT\n+INVENTORY.UNDROPPABLE\nstates\n {\n Select:\n TNT1 A 0 A_Print(\"Drop: Shell / ShellBox\")\n TNT1 AAA 0 A_Raise\n TNT1 A 1 A_Raise\n goto Select+1\n Deselect:\n TNT1 AAA 0 A_Lower\n TNT1 A 1 A_Lower\n loop\n Ready:\n TNT1 A 10 A_WeaponReady\n TNT1 A 0 A_JumpIfTargetInLOS(1)\n loop\n TNT1 A 0 ACS_ExecuteAlways(815,0,0)\n loop\n Fire:\n TNT1 A 20 A_JumpIfInventory(\"NewShell\",4,1)\n goto Ready\n TNT1 A 0 A_JumpIfTargetInLOS(3)\n TNT1 A 0 A_TakeInventory(\"NewShell\",4)\n TNT1 A 10 A_CustomMissile(\"ShellDropAmmo\",16,0,0,2,0)\n goto Ready\n TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(815,2,4),1)\n goto Fire+2\n TNT1 A 10\n goto Ready\n AltFire:\n TNT1 A 20 A_JumpIfInventory(\"NewShell\",20,1)\n goto Ready\n TNT1 A 0 A_JumpIfTargetInLOS(3)\n TNT1 A 0 A_TakeInventory(\"NewShell\",20)\n TNT1 A 10 A_CustomMissile(\"ShellBoxDropAmmo\",16,0,0,2,0)\n goto Ready\n TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(815,2,20),1)\n goto AltFire+2\n TNT1 A 10\n goto Ready\n }\n}\n\nactor RocketDrop : Weapon\n{\nobituary \"%o died.\"\nWeapon.SelectionOrder 5103\nWeapon.AmmoUse 0\nWeapon.AmmoType \"Missile\"\nWeapon.PreferredSkin \"Fist-Marine\"\n+WEAPON.DONTBOB\n+WEAPON.AMMO_OPTIONAL\n+WEAPON.CHEATNOTWEAPON\n+WEAPON.NOALERT\n+INVENTORY.UNDROPPABLE\nstates\n {\n Select:\n TNT1 A 0 A_Print(\"Drop: Rocket / RocketBox\")\n TNT1 AAA 0 A_Raise\n TNT1 A 1 A_Raise\n goto Select+1\n Deselect:\n TNT1 AAA 0 A_Lower\n TNT1 A 1 A_Lower\n loop\n Ready:\n TNT1 A 10 A_WeaponReady\n TNT1 A 0 A_JumpIfTargetInLOS(1)\n loop\n TNT1 A 0 ACS_ExecuteAlways(815,0,0)\n loop\n Fire:\n TNT1 A 20 A_JumpIfInventory(\"Missile\",1,1)\n goto Ready\n TNT1 A 0 A_JumpIfTargetInLOS(3)\n TNT1 A 0 A_TakeInventory(\"Missile\",1)\n TNT1 A 10 A_CustomMissile(\"RocketDropAmmo\",16,0,0,2,0)\n goto Ready\n TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(815,3,1),1)\n goto Fire+2\n TNT1 A 10\n goto Ready\n AltFire:\n TNT1 A 20 A_JumpIfInventory(\"Missile\",5,1)\n goto Ready\n TNT1 A 0 A_JumpIfTargetInLOS(3)\n TNT1 A 0 A_TakeInventory(\"Missile\",5)\n TNT1 A 10 A_CustomMissile(\"RocketBoxDropAmmo\",16,0,0,2,0)\n goto Ready\n TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(815,3,5),1)\n goto AltFire+2\n TNT1 A 10\n goto Ready\n }\n}\n\nactor CellDrop : Weapon\n{\nobituary \"%o died.\"\nWeapon.SelectionOrder 5104\nWeapon.AmmoUse 0\nWeapon.AmmoType \"NewCell\"\nWeapon.PreferredSkin \"Fist-Marine\"\n+WEAPON.DONTBOB\n+WEAPON.AMMO_OPTIONAL\n+WEAPON.CHEATNOTWEAPON\n+WEAPON.NOALERT\n+INVENTORY.UNDROPPABLE\nstates\n {\n Select:\n TNT1 A 0 A_Print(\"Drop: Cell / CellPack\")\n TNT1 AAA 0 A_Raise\n TNT1 A 1 A_Raise\n goto Select+1\n Deselect:\n TNT1 AAA 0 A_Lower\n TNT1 A 1 A_Lower\n loop\n Ready:\n TNT1 A 10 A_WeaponReady\n TNT1 A 0 A_JumpIfTargetInLOS(1)\n loop\n TNT1 A 0 ACS_ExecuteAlways(815,0,0)\n loop\n Fire:\n TNT1 A 20 A_JumpIfInventory(\"NewCell\",20,1)\n goto Ready\n TNT1 A 0 A_JumpIfTargetInLOS(3)\n TNT1 A 0 A_TakeInventory(\"NewCell\",20)\n TNT1 A 10 A_CustomMissile(\"CellDropAmmo\",16,0,0,2,0)\n goto Ready\n TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(815,4,20),1)\n goto Fire+2\n TNT1 A 10\n goto Ready\n AltFire:\n TNT1 A 20 A_JumpIfInventory(\"NewCell\",100,1)\n goto Ready\n TNT1 A 0 A_JumpIfTargetInLOS(3)\n TNT1 A 0 A_TakeInventory(\"NewCell\",100)\n TNT1 A 10 A_CustomMissile(\"CellPackDropAmmo\",16,0,0,2,0)\n goto Ready\n TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(815,4,100),1)\n goto AltFire+2\n TNT1 A 10\n goto Ready\n }\n}\n\nactor DemonDrop : Weapon\n{\nobituary \"%o died.\"\nWeapon.SelectionOrder 5105\nWeapon.AmmoUse 0\nWeapon.AmmoType \"DemonAmmo\"\nWeapon.PreferredSkin \"Fist-Marine\"\n+WEAPON.DONTBOB\n+WEAPON.AMMO_OPTIONAL\n+WEAPON.CHEATNOTWEAPON\n+WEAPON.NOALERT\n+INVENTORY.UNDROPPABLE\nstates\n {\n Select:\n TNT1 A 0 A_Print(\"Drop: DemonAmmo / DemonAmmoPack\")\n TNT1 AAA 0 A_Raise\n TNT1 A 1 A_Raise\n goto Select+1\n Deselect:\n TNT1 AAA 0 A_Lower\n TNT1 A 1 A_Lower\n loop\n Ready:\n TNT1 A 10 A_WeaponReady\n TNT1 A 0 A_JumpIfTargetInLOS(1)\n loop\n TNT1 A 0 ACS_ExecuteAlways(815,0,0)\n loop\n Fire:\n TNT1 A 20 A_JumpIfInventory(\"DemonAmmo\",50,1)\n goto Ready\n TNT1 A 0 A_JumpIfTargetInLOS(3)\n TNT1 A 0 A_TakeInventory(\"DemonAmmo\",50)\n TNT1 A 10 A_CustomMissile(\"DemonDropAmmo\",16,0,0,2,0)\n goto Ready\n TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(815,5,50),1)\n goto Fire+2\n TNT1 A 10\n goto Ready\n AltFire:\n TNT1 A 20 A_JumpIfInventory(\"DemonAmmo\",200,1)\n goto Ready\n TNT1 A 0 A_JumpIfTargetInLOS(3)\n TNT1 A 0 A_TakeInventory(\"DemonAmmo\",200)\n TNT1 A 10 A_CustomMissile(\"DemonPackDropAmmo\",16,0,0,2,0)\n goto Ready\n TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(815,5,200),1)\n goto AltFire+2\n TNT1 A 10\n goto Ready\n }\n}\n\nactor SupplyDrop : Weapon\n{\nobituary \"%o died.\"\nWeapon.SelectionOrder 5120\nWeapon.PreferredSkin \"Fist-Marine\"\n+WEAPON.DONTBOB\n+WEAPON.AMMO_OPTIONAL\n+WEAPON.CHEATNOTWEAPON\n+WEAPON.NOALERT\n+INVENTORY.UNDROPPABLE\nstates\n {\n Select:\n TNT1 A 0 A_GiveInventory(\"ISupplyBoxCnt\",2)\n TNT1 A 0 A_Print(\"Drop: SupplyBox: Private / Shared\")\n TNT1 AAA 0 A_Raise\n TNT1 A 1 A_Raise\n goto Select+2\n Deselect:\n TNT1 AAA 0 A_Lower\n TNT1 A 1 A_Lower\n loop\n Ready:\n TNT1 A 10 A_WeaponReady\n TNT1 A 0 A_JumpIfTargetInLOS(1)\n loop\n TNT1 A 0 ACS_ExecuteAlways(815,0,0)\n loop\n Fire:\n TNT1 A 0 A_JumpIfInventory(\"ModdedBackpack\",1,2)\n TNT1 A 20 A_Print(\"Error: Backpack required\")\n goto Ready\n TNT1 A 20 A_JumpIfInventory(\"ISupplyBoxCnt\",1,1)\n goto Ready\n TNT1 A 0 A_TakeInventory(\"ISupplyBoxCnt\",1)\n TNT1 A 20 A_CustomMissile(\"PSupplyBoxP\",16,0,0,2,0)\n goto Ready\n AltFire:\n TNT1 A 0 A_JumpIfInventory(\"ModdedBackpack\",1,2)\n TNT1 A 20 A_Print(\"Error: Backpack required\")\n goto Ready\n TNT1 A 20 A_JumpIfInventory(\"ISupplyBoxCnt\",1,1)\n goto Ready\n TNT1 A 0 A_TakeInventory(\"ISupplyBoxCnt\",1)\n TNT1 A 20 A_CustomMissile(\"PSupplyBoxS\",16,0,0,2,0)\n goto Ready\n }\n}"
},
{
"source": "pk3",
"name": "Actors/crucial/acsitems.txt",
"contents": "// [SP] This file is just for misc actors to help ACS\n\n// [Dusk] Thermal cloaking timer - tells how many seconds left.\nactor ThermalCloakingTime : Inventory {inventory.maxamount 90}\n\n// [Dusk] used to fix iron curtain + resign bug\nactor PowerNull : PowerProtection {damagefactor \"normal\", 1.0}\nactor RedHueRemover : PowerupGiver {\n\t+INVENTORY.AUTOACTIVATE\n\tinventory.pickupmessage \"wat are you doing\"\n\tinventory.maxamount 0\n\tpowerup.color RedMap\n\tpowerup.duration -2\n\tpowerup.type \"Null\"\n}\n\nactor DimGoldHueRemover : RedHueRemover {powerup.color GoldMap, 0.25}\nactor DimRedHueRemover : RedHueRemover {powerup.color \"AA 00 00\", 0.25}\nactor GreenHueRemover : RedHueRemover {powerup.color GreenMap}\n\nactor ArmorUpgrade : CustomInventory {\n\tstates {\n\tPickup:\n\t\tTNT1 A 0 ACS_ExecuteAlways (985, 0, 1, AGF_ADDITIVE)\n\t\tTNT1 A 0 A_GiveInventory (\"HasArmorUpgrade\", 1)\n\t\tstop\n\t}\n}\n\nactor HUD_HealthType : Inventory {\n\tInventory.MaxAmount 4\n}\n\nactor HUD_HealthBlink : Inventory {}\nactor IsConsolePlayer : Inventory {}\n\nactor Experience : Inventory {\n\tInventory.MaxAmount 30000\n}\n\nactor HasRankUpgrades : Inventory {}\nactor instantNadeCast : Inventory {inventory.maxamount 1}"
},
{
"source": "pk3",
"name": "Actors/crucial/btos.txt",
"contents": "// Hitboxes - these actors are placed around buildings. They transfer external\n// damage to the terminal, allowing buildings to be destroyed from the outside.\n\nactor BaseTerminalOutside {\n\thealth 99999\n\tradius 0\n\theight 512\n\tDesignatedTeam 1\n\tDamageFactor \"Normal\", 0.0\n\tDamageFactor \"Fist\", 0.0\n\tDamageFactor \"Bullet\", 0.0\n\tDamageFactor \"Rifle\", 0.0\n\tDamageFactor \"Explosion\", 0.25\n\tDamageFactor \"Fire\", 0.2\n\tDamageFactor \"Chemical\", 0.0\n\tDamageFactor \"ChemicalSpecial\", 0.0\n\tDamageFactor \"Energy\", 0.0\n\tDamageFactor \"Time\", 0.0\n\tDamageFactor \"Disarm\", 0.0\n\tDamageFactor \"Flash\", 0.0\n\tDamageFactor \"Ice\", 0.0\n\tDamageFactor \"Superweapon\", 0.0\n\tDamageFactor \"Mechstomp\", 0.0\n\tDamageFactor \"Monster\", 0.0\n\tDamageFactor \"Deconstruction\", 0.0\n\t-SOLID\n\t+SHOOTABLE\n\t+NOBLOOD\n\t+DONTGIB\n\t+NOICEDEATH\n\t+GHOST\n\t+NOTARGET\n\t+QUICKTORETALIATE\n\tMass 0x7FFFFFFF\n\tpainchance 255\n\n\tstates {\n\tDeath:\n\t\tTNT1 A 10\n\t\tTNT1 A 0 A_PlayWeaponSound(\"weapons/rocklx\")\n\t\tTNT1 A 0 A_SpawnItemEx(\"ExplosionMainLarge\")\n\t\tTNT1 A 10\n\t\tTNT1 A 0 A_PlayWeaponSound(\"weapons/rocklx\")\n\t\tTNT1 A 0 A_SpawnItemEx(\"ExplosionLargeNoDebris\")\n\t\tTNT1 A 10\n\t\tTNT1 A 0 A_PlayWeaponSound(\"weapons/rocklx\")\n\t\tTNT1 A 0 A_SpawnItemEx(\"ExplosionLargeNoDebris\")\n\t\tTNT1 A -1\n\t\tstop\n\tIdle:\n\t\tTNT1 A -1\n\t\tstop\n\tPain:\n\t\tTNT1 A 0\n\t\tTNT1 A 3 ACS_ExecuteAlways (652, 0, args[0], 1)\n\t\tgoto Idle\n\tPain.Fire:\n\t\tTNT1 A 0\n\t\tTNT1 A 3 ACS_ExecuteAlways (652, 0, args[0], random (3, 4))\n\t\tgoto Idle\n\tPain.MassDriver:\n\tPain.Explosion:\n\tPain.AntiArmor:\n\t\tTNT1 A 0\n\t\tTNT1 A 3 ACS_ExecuteAlways (652, 0, args[0], random (20, 40))\n\t\tgoto Idle\n\tPain.Superweapon:\n\t\tTNT1 A 0\n\t\tTNT1 A 3 ACS_ExecuteAlways (652, 0, args[0], 4000)\n\t\tgoto Idle\n\t}\n}\n\nactor BaseTerminalOutsideBlue : BaseTerminalOutside {\n\tDesignatedTeam 0\n}\n\nactor BTOBarracksBlue : BaseTerminalOutsideBlue 21201 {\n\t//$Category Hitboxes\n\ttag \"[Hitbox] Blue Barracks\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 100)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 0, 101, 0, 0)\n\t\tTNT1 A -1\n\t\tstop\n\t}\n}\n\nactor BTOPowerPlantBlue : BaseTerminalOutsideBlue 21203 {\n\t//$Category Hitboxes\n\ttag \"[Hitbox] Blue Research Centre\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 104)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 0, 105, 0, 0)\n\t\tTNT1 A -1\n\t\tstop\n\t}\n}\n\nactor BTORefineryBlue : BaseTerminalOutsideBlue 21205 {\n\t//$Category Hitboxes\n\ttag \"[Hitbox] Blue Refinery\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 102)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 0, 103, 0, 0)\n\t\tTNT1 A -1\n\t\tstop\n\t}\n}\n\nactor BTOFactoryBlue : BaseTerminalOutsideBlue 21207 {\n\t//$Category Hitboxes\n\ttag \"[Hitbox] Blue War Factory\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 106)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 0, 107, 0, 0)\n\t\tTNT1 A -1\n\t\tstop\n\t}\n}\n\nactor BTOObeliskBlue : BaseTerminalOutsideBlue 21211 {\n\t//$Category Hitboxes\n\ttag \"[Hitbox] Blue Obelisk\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 115)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 0, 114, 0, 0)\n\t\tTNT1 B -1\n\t\tstop\n\t}\n}\n\nactor BTOBarracksRed : BaseTerminalOutside 21202 {\n\t//$Category Hitboxes\n\ttag \"[Hitbox] Red Barracks\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 200)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 0, 201, 0, 0)\n\t\tTNT1 A -1\n\t\tstop\n\t}\n}\n\nactor BTOPowerPlantRed : BaseTerminalOutside 21204 {\n\t//$Category Hitboxes\n\ttag \"[Hitbox] Red Research Centre\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 204)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 0, 205, 0,0)\n\t\tTNT1 A -1\n\t\tstop\n\t}\n}\n\nactor BTORefineryRed : BaseTerminalOutside 21206 {\n\t//$Category Hitboxes\n\ttag \"[Hitbox] Red Refinery\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 202)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 0, 203, 0, 0)\n\t\tTNT1 A -1\n\t\tstop\n\t}\n}\n\nactor BTOFactoryRed : BaseTerminalOutside 21208 {\n\t//$Category Hitboxes\n\ttag \"[Hitbox] Red War Factory\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 206)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 0, 207, 0, 0)\n\t\tTNT1 A -1\n\t\tstop\n\t}\n}\n\nactor BTOObeliskRed : BaseTerminalOutside 21212 {\n\t//$Category Hitboxes\n\ttag \"[Hitbox] Red Obelisk\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 215)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 0, 214, 0, 0)\n\t\tTNT1 A -1\n\t\tstop\n\t}\n}\n\nactor ShortBTOObeliskBlue : BTOObeliskBlue 21311 {\n\t//$Category Hitboxes\n\ttag \"[Hitbox] Blue Obelisk (short)\"\n\theight 256\n}\nactor ShortBTOObeliskRed : BTOObeliskRed 21312 {\n\t//$Category Hitboxes\n\ttag \"[Hitbox] Red Obelis (short)\"\n\theight 256\n}"
},
{
"source": "pk3",
"name": "Actors/crucial/terminals.txt",
"contents": "// TERMINALS\nactor BaseTerminal {\n\t+FULLVOLACTIVE\n\t-SOLID\n\t+SHOOTABLE\n\t+NOBLOOD\n\t+DONTGIB\n\t+NOICEDEATH\n\t+QUICKTORETALIATE\n\t+NEVERRESPAWN\n\t+GHOST\n\t//$Category Buildings\n\tRadius 16\n\tHeight 120\n\tMass 0x7FFFFFFF\n\tSpeed 100 // [Dusk] used for base hud health percentages! DON'T TOUCH IT\n\tDamagetype \"Explosion\"\n\tObituary \"%o was killed with a building.\"\n\tDeathSound \"grenade/explode\"\n\tDesignatedTeam 1\n\tPainChance 255\n\tDamageFactor \"Normal\", 0.25\n\tDamageFactor \"Bullet\", 0.8\n\tDamageFactor \"Rifle\", 0.8\n\tDamageFactor \"Explosion\", 0.75\n\tDamageFactor \"Crush\", 1.0\n\tDamageFactor \"Fire\", 0.6\n\tDamageFactor \"Fist\", 0.25 //Berserk kind of goes SMACKITY and it goes down in seconds.\n\tDamageFactor \"FireSpecial\", 0.0\n\tDamageFactor \"Chemical\", 0.75\n\tDamageFactor \"ChemicalSpecial\", 0.0\n\tDamageFactor \"Energy\", 1.0\n\tDamageFactor \"AntiArmor\", 0.25\n\tDamageFactor \"Time\", 1.0\n\tDamageFactor \"Disarm\", 0.0\n\tDamageFactor \"Ice\", 0.0 //Are you going to freeze it?\n\tDamageFactor \"Superweapon\", 10.0\n\tDamageFactor \"MassDriver\", 0.25\n\tDamageFactor \"Mechstomp\", 0.0\n\tDamageFactor \"Monster\", 5.0\n\tDamageFactor \"Mine\", 0.0 //Fuck this shit\n\tDamageFactor \"Deconstruction\", 0.0\n\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_GiveInventory (\"IsMCT\", 1)\n\t\tTNT1 A -1\n\t\tloop\n\tIdle:\n\t\tTNT1 A -1\n\t\tstop\n\tSpawnDone:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_ChangeFlag (\"ISMONSTER\",1)\n\t\tTNT1 A 0 A_ClearTarget\n\t\tTNT1 A -1 A_Stop\n\t\tstop\n\tPain:\n\t\tgoto Spawn\n\tDeath:\n\t\tTNT1 A 5 A_Scream\n\t\tTNT1 A 5 A_Scream\n\t\tTNT1 A 0 bright A_PlayWeaponSound(\"weapons/rocklx\")\n\t\tTNT1 A 0 A_SpawnItemEx (\"TerminalExplosion\")\n\t\tTNT1 A 0 A_SpawnItemEx(\"ExplosionMainLarge\", 0, 0, 0, 0, 0, 0, 0, 128, 0)\n\t\tTNT1 A 5 A_Scream\n\t\tTNT1 A 0 bright A_Scream\n\t\tTNT1 A 0 A_SpawnItemEx (\"TerminalExplosion\")\n\t\tTNT1 A 0 bright A_PlayWeaponSound(\"weapons/rocklx\")\n\t\tTNT1 A 0 A_SpawnItemEx (\"TerminalExplosion\")\n\t\tTNT1 A 0 A_SpawnItemEx(\"ExplosionMainLarge\", 0, 0, 0, 0, 0, 0, 0, 128, 0)\n\t\tTNT1 A 5 A_Scream\n\t\tTNT1 A 5 A_Scream\n\t\tTNT1 A 0 bright A_PlayWeaponSound(\"weapons/rocklx\")\n\t\tTNT1 A 0 A_SpawnItemEx (\"TerminalExplosion\")\n\t\tTNT1 A 0 A_SpawnItemEx(\"ExplosionMainLarge\", 0, 0, 0, 0, 0, 0, 0, 128, 0)\n\t\tTNT1 A 5 A_Scream\n\t\tTNT1 A 5 A_Scream\n\t\tTNT1 A 0 bright A_Scream\n\t\tTNT1 A 5\n\t\tTNT1 A -1 A_Scream\n\t\tstop\n\t}\n}\n\nactor BaseTerminalBlue : BaseTerminal {\n\tDesignatedTeam 0\n}\n\nactor TerminalExplosion {\n\tPROJECTILE\n\tSpeed 0\n\tDamageType \"Monster\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_Explode (60, 128)\n\t\tstop\n\t}\n}\n\nactor BarracksTerminalBlue : BaseTerminalBlue 21100 {\n\tTag \"Blue Barracks Terminal\"\n\tHealth 18000\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 101)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 80, 101, 0, 0)\n\t\tgoto SpawnDone\n\tPain:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_BARRACKS, TEAM_BLUE)\n\t\tTNT1 A 0 ACS_Execute(97,0,1,1)\n\t\tgoto Spawn\n\t}\n}\n\nactor RefineryTerminalBlue : BaseTerminalBlue 21102 {\n\tTag \"Blue Refinery Terminal\"\n\tHealth 27000\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 103)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 80, 102, 0, 0)\n\t\tgoto SpawnDone\n\tPain:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_REFINERY, TEAM_BLUE)\n\t\tTNT1 A 0 ACS_Execute(97,0,2,1)\n\t\tgoto Idle\n\t}\n}\n\nactor PowerPlantTerminalBlue : BaseTerminalBlue 21103 {\n\tTag \"Blue Research Centre Terminal\"\n\tHealth 18000\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 105)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 80, 103, 0, 0)\n\t\tgoto SpawnDone\n\tPain:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_RESCENTRE, TEAM_BLUE)\n\t\tTNT1 A 0 ACS_Execute(97,0,3,1)\n\t\tgoto Idle\n\t}\n}\n\nactor WarFactoryTerminalBlue : BaseTerminalBlue 21104 {\n\tTag \"Blue War Factory Terminal\"\n\tHealth 27000\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 107)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 80, 104, 0, 0)\n\t\tgoto SpawnDone\n\tPain:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_FACTORY, TEAM_BLUE)\n\t\tTNT1 A 0 ACS_Execute(97,0,4,1)\n\t\tgoto Idle\n\t}\n}\n\nactor ObeliskTerminalBlue : BaseTerminalBlue 21111 {\n\tTag \"Blue Obelisk Terminal\"\n\tHealth 13500\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 114)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 80, 114, 0, 0)\n\t\tgoto SpawnDone\n\tPain.Chemical:\n\tPain.Fire:\n\t\tgoto Pain+1\n\tPain:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_OBELISK, TEAM_BLUE)\n\t\tTNT1 A 0 ACS_Execute(97,0,6,1)\n\t\tgoto Idle\n\t}\n}\n\nactor BarracksTerminalRed : BaseTerminal 21105 {\n\tTag \"Red Barracks Terminal\"\n\tHealth 18000\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 201)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 80, 201, 0, 0)\n\t\tgoto SpawnDone\n\tPain:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_BARRACKS, TEAM_RED)\n\t\tTNT1 A 0 ACS_Execute(97, 0, 1)\n\t\tgoto Idle\n\t}\n}\n\nactor RefineryTerminalRed : BaseTerminal 21106 {\n\tTag \"Red Refinery Terminal\"\n\tHealth 27000\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 203)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 80, 202, 0, 0)\n\t\tgoto SpawnDone\n\tPain:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_REFINERY, TEAM_RED)\n\t\tTNT1 A 0 ACS_Execute (97, 0, 2)\n\t\tgoto Idle\n\t}\n}\n\nactor PowerPlantTerminalRed : BaseTerminal 21107 {\n\tTag \"Red Research Centre Terminal\"\n\tHealth 18000\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 205)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 80, 203, 0, 0)\n\t\tgoto SpawnDone\n\tPain:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_RESCENTRE, TEAM_RED)\n\t\tTNT1 A 0 ACS_Execute (97, 0, 3)\n\t\tgoto Idle\n\t}\n}\n\nactor WarFactoryTerminalRed : BaseTerminal 21108 {\n\tTag \"Red War Factory Terminal\"\n\tHealth 27000\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 207)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 80, 204, 0, 0)\n\t\tgoto SpawnDone\n\tPain:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_FACTORY, TEAM_RED)\n\t\tTNT1 A 0 ACS_Execute(97, 0, 4)\n\t\tgoto Idle\n\t}\n}\n\nactor ObeliskTerminalRed : BaseTerminal 21112 {\n\tTag \"Red Obelisk Terminal\"\n\tHealth 13500\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 214)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 80, 214, 0, 0)\n\t\tgoto SpawnDone\n\tPain:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_OBELISK, TEAM_RED)\n\t\tTNT1 A 0 ACS_Execute(97,0,6,0)\n\t\tgoto Idle\n\t}\n}\n\n// REPAIR TERMINAL\nactor RepairTerminalRed : BaseTerminal 21110 {\n\tTag \"Red Repair Facility\"\n\tRadius 145\n\tHeight 12\n\tDeathSound \"grenade/explode\"\n\tPainChance 255\n\tHealth 13500\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 209)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 80, 205, 0, 0)\n\t\tgoto SpawnDone\n\tPain:\n\t\tTNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_REPAIR, TEAM_RED)\n\t\tTNT1 A 0\n\t\tgoto Idle\n\t}\n}\n\nactor RepairTerminalBlue : BaseTerminalBlue 21109 {\n\tTag \"Blue Repair Facility\"\n\tRadius 145\n\tHeight 12\n\tDeathSound \"grenade/explode\"\n\tPainChance 255\n\tHealth 13500\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 Thing_ChangeTID (0, 109)\n\t\tTNT1 A 0 Thing_SetSpecial (0, 80, 105, 0, 0)\n\t\tgoto SpawnDone\n\tPain:\n\t\tTNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_REPAIR, TEAM_BLUE)\n\t\tTNT1 A 0\n\t\tgoto Idle\n\t}\n}"
},
{
"source": "pk3",
"name": "Actors/effects/explosions.txt",
"contents": "// Explosion actors\nactor ChemicalExplosion {\n\t+NOBLOCKMAP\n\t+NOGRAVITY\n\t+CLIENTSIDEONLY\n\t+NOINTERACTION\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(909) == 1, \"highFX\")\n\t\tTNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(909) == -1, \"lowFX\")\n\t\tGoto normalFX\n\tnormalFX:\n\t\tTNT1 AAAAAAAAAAA 0 A_SpawnItemEx (\"ChemicalFlameExplosion\", 0,0,0, random (-6, 6), random (-6, 6), random (-6, 6))\n\t\tTNT1 AAAAAAAAAAA 0 A_SpawnItemEx (\"ChemicalFlameExplosion\", 0,0,0, random (-6, 6), random (-6, 6), random (-6, 6))\n\t\tTNT1 AAAAAAAAAAA 0 A_SpawnItemEx (\"ChemicalFlameExplosion\", 0,0,0, random (-6, 6), random (-6, 6), random (-6, 6))\n\t\tTNT1 AAAAAAAAAAA 0 A_SpawnItemEx (\"ChemicalFlameExplosion\", 0,0,0, random (-6, 6), random (-6, 6), random (-6, 6))\n\t\tstop\n\tlowFX:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItemEx(\"ChemicalExplosionSmall\")\n\t\tStop\n\thighFX:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItemEx(\"ChemicalExplosionLarge\")\n\t\tStop\n\t}\n}\n\nactor ChemicalExplosionSmall {\n\t+NOBLOCKMAP\n\t+NOGRAVITY\n\t+CLIENTSIDEONLY\n\t+NOINTERACTION\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 AAAAA 0 A_SpawnItemEx (\"ChemicalFlameExplosion\", 0,0,0, random (-3, 3), random (-3, 3), random (-3, 3))\n\t\tstop\n\t}\n}\n\nactor ChemicalExplosionLarge {\n\t+NOBLOCKMAP\n\t+NOGRAVITY\n\t+CLIENTSIDEONLY\n\t+NOINTERACTION\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 AAAAAAAAAAA 0 A_SpawnItemEx (\"ChemicalFlameExplosion\", 0,0,0, random (-16, 16), random (-16, 16), random (-16, 16))\n\t\tTNT1 AAAAAAAAAAA 0 A_SpawnItemEx (\"ChemicalFlameExplosion\", 0,0,0, random (-16, 16), random (-16, 16), random (-16, 16))\n\t\tTNT1 AAAAAAAAAAA 0 A_SpawnItemEx (\"ChemicalFlameExplosion\", 0,0,0, random (-16, 16), random (-16, 16), random (-16, 16))\n\t\tTNT1 AAAAAAAAAAA 0 A_SpawnItemEx (\"ChemicalFlameExplosion\", 0,0,0, random (-16, 16), random (-16, 16), random (-16, 16))\n\t\tTNT1 AAAAAAAAAAA 0 A_SpawnItemEx (\"ChemicalFlameExplosion\", 0,0,0, random (-16, 16), random (-16, 16), random (-16, 16))\n\t\tTNT1 AAAAAAAAAAA 0 A_SpawnItemEx (\"ChemicalFlameExplosion\", 0,0,0, random (-16, 16), random (-16, 16), random (-16, 16))\n\t\tTNT1 AAAAAAAAAAA 0 A_SpawnItemEx (\"ChemicalFlameExplosion\", 0,0,0, random (-16, 16), random (-16, 16), random (-16, 16))\n\t\tTNT1 AAAAAAAAAAA 0 A_SpawnItemEx (\"ChemicalFlameExplosion\", 0,0,0, random (-16, 16), random (-16, 16), random (-16, 16))\n\t\tstop\n\t}\n}\n\nactor ChemicalFlameExplosion {\n\t+CLIENTSIDEONLY +SOLID\n\t+NOINTERACTION +FORCEXYBILLBOARD\n\tradius 13\n\theight 8\n\trenderstyle Add\n\talpha 0.9\n\tscale 0.6\n\tstates {\n\tSpawn:\n\t\tTIBX ABCDEFGH 1\n\t\tTIBX IJKLMNOPQ 1 A_FadeOut (0.1)\n\t\tstop\n\t}\n}\n\n// new explosion code by dark-slayer\nactor ExplosionSprite\n{\n\t+NOINTERACTION\n\t+CLIENTSIDEONLY\n\t+FORCEXYBILLBOARD\n\tRenderstyle Add\n\tAlpha 0.5\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 1\n\t\tTNT1 A 0 A_JumpIf (ACS_ExecuteWithResult (910, 0) == 0, \"Software\")\n\t\tTNT1 A 0 A_JumpIf (ACS_ExecuteWithResult (601), \"CloseFilter\")\n\tFilterChecked:\n\t\tTNT1 A 0 A_JumpIf(waterlevel > 1, \"Water\")\n\t\tTNT1 A 0 A_Jump(255,\"Spawn1\",\"Spawn2\",\"Spawn3\",\"Spawn4\",\"Spawn5\")\n\t\tGoto Spawn1\n\tSpawn1:\n\t\tE1_A ABCDEFGH 3 bright\n\t\tstop\n\tSpawn2:\n\t\tE2_A ABCDEFGH 3 bright\n\t\tstop\n\tSpawn3:\n\t\tE3_A ABCDEFGH 3 bright\n\t\tstop\n\tSpawn4:\n\t\tE4_A ABCDEFGH 3 bright\n\t\tstop\n\tSpawn5:\n\t\tE5_A ABCDEFGH 3 bright\n\t\tstop\n\tWater:\n\t\tTNT1 A 1\n\t\tTNT1 A 0 A_Jump(255,\"Water1\",\"Water2\",\"Water3\",\"Water4\",\"Water5\")\n\t\tGoto Water1\n\tWater1:\n\t\tE1_A AAABBBCCCDDDEEEFFFGGGHHH 1 bright A_Fadeout(0.1)\n\t\tstop\n\tWater2:\n\t\tE2_A AAABBBCCCDDDEEEFFFGGGHHH 1 bright A_Fadeout(0.1)\n\t\tstop\n\tWater3:\n\t\tE3_A AAABBBCCCDDDEEEFFFGGGHHH 1 bright A_Fadeout(0.1)\n\t\tstop\n\tWater4:\n\t\tE4_A AAABBBCCCDDDEEEFFFGGGHHH 1 bright A_Fadeout(0.1)\n\t\tstop\n\tWater5:\n\t\tE5_A AAABBBCCCDDDEEEFFFGGGHHH 1 bright A_Fadeout(0.1)\n\t\tstop\n\tSoftware:\n\t\tTNT1 A 0 A_SetTranslucent (0.75, 1)\n\t\tgoto Spawn+2\n\tCloseFilter:\n\t\tTNT1 A 0 A_Jump (80, \"FilterChecked\")\n\t\tstop\n\t}\n}\n\nactor ExplosionMain {\n\t//+CLIENTSIDEONLY\n\t+NOINTERACTION\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tgoto Normal\n\tNormal:\n\t\tTNT1 A 0 A_SpawnItemEx (\"DebrisCluster\")\n\tDoExplode:\n\t\tTNT1 AA 1 A_SpawnItemEx(\"Explo1\",1.0*0.5*random(-32,32),1.0*0.5*random(-32,32),1.0*0.5*random(-32,32),0,0,0,0,32)\n\t\tTNT1 AA 1 A_SpawnItemEx(\"Explo2\",0,0,0,1.0*0.05*random(-30,30),1.0*0.05*random(-30,30),1.0*0.05*random(-30,30),random(0,359),32)\n\t\tTNT1 AA 1 A_SpawnItemEx(\"Explo3\",0,0,0,1.0*0.05*random(-15,15),1.0*0.05*random(-15,15),1.0*0.05*random(-15,15),random(0,359),32)\n\t\tTNT1 AA 1 A_SpawnItemEx(\"Explo4\",0,0,0,1.0*0.05*random(-7,7),1.0*0.05*random(-7,7),1.0*0.05*random(-7,7),random(0,359),32)\n\t\tStop\n\tLowFX:\n\t\tTNT1 A 0 A_SpawnItemEx (\"DebrisClusterSmall\")\n\tDoExplodeLowFX:\n\t\tTNT1 A 2 A_SpawnItemEx(\"Explo1\",1.0*0.5*random(-32,32),1.0*0.5*random(-32,32),1.0*0.5*random(-32,32),0,0,0,0,32)\n\t\tTNT1 A 2 A_SpawnItemEx(\"Explo2\",0,0,0,1.0*0.05*random(-30,30),1.0*0.05*random(-30,30),1.0*0.05*random(-30,30),random(0,359),32)\n\t\tTNT1 A 2 A_SpawnItemEx(\"Explo3\",0,0,0,1.0*0.05*random(-15,15),1.0*0.05*random(-15,15),1.0*0.05*random(-15,15),random(0,359),32)\n\t\tTNT1 A 2 A_SpawnItemEx(\"Explo4\",0,0,0,1.0*0.05*random(-7,7),1.0*0.05*random(-7,7),1.0*0.05*random(-7,7),random(0,359),32)\n\t\tTNT1 A 10\n\t\tStop\n\t}\n}\n\n// [Dusk] Debris-less explosion\nactor ExplosionNoDebris : ExplosionMain {\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_JumpIf (ACS_ExecuteWithResult (909) < 0, \"DoExplodeLowFX\")\n\t\tgoto DoExplode\n\t}\n}\n\nActor Explo1 : ExplosionSprite {Scale 4.0}\nActor Explo2 : ExplosionSprite {Scale 3.0}\nActor Explo3 : ExplosionSprite {Scale 2.0}\nActor Explo4 : ExplosionSprite {Scale 1.0}\n\nactor ExplosionMainLarge {\n\t+CLIENTSIDEONLY\n\t+NOINTERACTION\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_JumpIf (ACS_ExecuteWithResult (909) < 0, \"LowFX\")\n\t\tgoto Normal\n\tNormal:\n\t\tTNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx(\"DebrisSpawner\",random(-8,8),random(-8,8),0,random(-10,10),random(-10,10),random(9,22),random(0,359),32,32)\n\tDoExplode:\n\t\tTNT1 AA 1 A_SpawnItemEx(\"ExploLarge1\",2.0*0.5*random(-32,32),2.0*0.5*random(-32,32),2.0*0.5*random(-32,32),0,0,0,0,32)\n\t\tTNT1 AA 1 A_SpawnItemEx(\"ExploLarge2\",0,0,0,2.0*0.05*random(-30,30),2.0*0.05*random(-30,30),2.0*0.05*random(-30,30),random(0,359),32)\n\t\tTNT1 AA 1 A_SpawnItemEx(\"ExploLarge3\",0,0,0,2.0*0.05*random(-15,15),2.0*0.05*random(-15,15),2.0*0.05*random(-15,15),random(0,359),32)\n\t\tTNT1 AA 1 A_SpawnItemEx(\"ExploLarge4\",0,0,0,2.0*0.05*random(-7,7),2.0*0.05*random(-7,7),2.0*0.05*random(-7,7),random(0,359),32)\n\t\tStop\n\tLowFX:\n\t\tTNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx(\"DebrisSpawner\",random(-8,8),random(-8,8),0,random(-10,10),random(-10,10),random(9,22),random(0,359),32,32)\n\tDoExplodeLow:\n\t\tTNT1 A 2 A_SpawnItemEx(\"ExploLarge1\",2.0*0.5*random(-32,32),2.0*0.5*random(-32,32),2.0*0.5*random(-32,32),0,0,0,0,32)\n\t\tTNT1 A 2 A_SpawnItemEx(\"ExploLarge2\",0,0,0,2.0*0.05*random(-30,30),2.0*0.05*random(-30,30),2.0*0.05*random(-30,30),random(0,359),32)\n\t\tTNT1 A 2 A_SpawnItemEx(\"ExploLarge3\",0,0,0,2.0*0.05*random(-15,15),2.0*0.05*random(-15,15),2.0*0.05*random(-15,15),random(0,359),32)\n\t\tTNT1 A 2 A_SpawnItemEx(\"ExploLarge4\",0,0,0,2.0*0.05*random(-7,7),2.0*0.05*random(-7,7),2.0*0.05*random(-7,7),random(0,359),32)\n\t\tstop\n\t}\n}\n\nactor ExplosionLargeNoDebris : ExplosionMainLarge {\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_JumpIf (ACS_ExecuteWithResult (909) < 0, \"DoExplodeLow\")\n\t\tgoto DoExplode\n\t}\n}\n\nActor ExploLarge1 : ExplosionSprite {Scale 8.0}\nActor ExploLarge2 : ExplosionSprite {Scale 6.0}\nActor ExploLarge3 : ExplosionSprite {Scale 4.0}\nActor ExploLarge4 : ExplosionSprite {Scale 2.0}\n\nactor ExplosionSmall {\n\t+CLIENTSIDEONLY\n\t+NOINTERACTION\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_JumpIf (ACS_ExecuteWithResult (909) < 0, \"LowFX\")\n\t\tgoto Normal\n\tNormal:\n\t\tTNT1 AA 1 A_SpawnItemEx(\"ExploSmall1\",0.5*0.5*random(-32,32),0.5*0.5*random(-32,32),0.5*0.5*random(-32,32),0,0,0,0,32)\n\t\tTNT1 AA 1 A_SpawnItemEx(\"ExploSmall2\",0,0,0,0.5*0.05*random(-30,30),0.5*0.05*random(-30,30),0.5*0.05*random(-30,30),random(0,359),32)\n\t\tTNT1 AA 1 A_SpawnItemEx(\"ExploSmall3\",0,0,0,0.5*0.05*random(-15,15),0.5*0.05*random(-15,15),0.5*0.05*random(-15,15),random(0,359),32)\n\t\tTNT1 AA 1 A_SpawnItemEx(\"ExploSmall4\",0,0,0,0.5*0.05*random(-7,7),0.5*0.05*random(-7,7),0.5*0.05*random(-7,7),random(0,359),32)\n\t\tStop\n\tLowFX:\n\t\tTNT1 A 2 A_SpawnItemEx(\"ExploSmall1\",0.5*0.5*random(-32,32),0.5*0.5*random(-32,32),0.5*0.5*random(-32,32),0,0,0,0,32)\n\t\tTNT1 A 2 A_SpawnItemEx(\"ExploSmall2\",0,0,0,0.5*0.05*random(-30,30),0.5*0.05*random(-30,30),0.5*0.05*random(-30,30),random(0,359),32)\n\t\tTNT1 A 2 A_SpawnItemEx(\"ExploSmall3\",0,0,0,0.5*0.05*random(-15,15),0.5*0.05*random(-15,15),0.5*0.05*random(-15,15),random(0,359),32)\n\t\tTNT1 A 2 A_SpawnItemEx(\"ExploSmall4\",0,0,0,0.5*0.05*random(-7,7),0.5*0.05*random(-7,7),0.5*0.05*random(-7,7),random(0,359),32)\n\t\tStop\n\t}\n}\nActor ExploSmall1 : ExplosionSprite {Scale 2.0}\nActor ExploSmall2 : ExplosionSprite {Scale 1.5}\nActor ExploSmall3 : ExplosionSprite {Scale 1.0}\nActor ExploSmall4 : ExplosionSprite {Scale 0.5}\n\nactor ExplosionSmaller {\n\t+CLIENTSIDEONLY\n\t+NOINTERACTION\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_JumpIf (ACS_ExecuteWithResult (909) < 0, \"LowFX\")\n\t\tgoto Normal\n\tNormal:\n\t\tTNT1 AA 1 A_SpawnItemEx(\"ExploSmaller1\",0.25*0.5*random(-32,32),0.25*0.5*random(-32,32),0.25*0.5*random(-32,32),0,0,0,0,32)\n\t\tTNT1 AA 1 A_SpawnItemEx(\"ExploSmaller2\",0,0,0,0.25*0.05*random(-30,30),0.25*0.05*random(-30,30),0.25*0.05*random(-30,30),random(0,359),32)\n\t\tTNT1 AA 1 A_SpawnItemEx(\"ExploSmaller3\",0,0,0,0.25*0.05*random(-15,15),0.25*0.05*random(-15,15),0.25*0.05*random(-15,15),random(0,359),32)\n\t\tTNT1 AA 1 A_SpawnItemEx(\"ExploSmaller4\",0,0,0,0.25*0.05*random(-7,7),0.25*0.05*random(-7,7),0.25*0.05*random(-7,7),random(0,359),32)\n\t\tTNT1 A 10\n\t\tStop\n\tLowFX:\n\t\tTNT1 A 2 A_SpawnItemEx(\"ExploSmaller1\",0.25*0.5*random(-32,32),0.25*0.5*random(-32,32),0.25*0.5*random(-32,32),0,0,0,0,32)\n\t\tTNT1 A 2 A_SpawnItemEx(\"ExploSmaller2\",0,0,0,0.25*0.05*random(-30,30),0.25*0.05*random(-30,30),0.25*0.05*random(-30,30),random(0,359),32)\n\t\tTNT1 A 2 A_SpawnItemEx(\"ExploSmaller3\",0,0,0,0.25*0.05*random(-15,15),0.25*0.05*random(-15,15),0.25*0.05*random(-15,15),random(0,359),32)\n\t\tTNT1 A 2 A_SpawnItemEx(\"ExploSmaller4\",0,0,0,0.25*0.05*random(-7,7),0.25*0.05*random(-7,7),0.25*0.05*random(-7,7),random(0,359),32)\n\t\tTNT1 A 10\n\t\tstop\n\t}\n}\nActor ExploSmaller1 : ExplosionSprite {Scale 1.0}\nActor ExploSmaller2 : ExplosionSprite {Scale 0.75}\nActor ExploSmaller3 : ExplosionSprite {Scale 0.5}\nActor ExploSmaller4 : ExplosionSprite {Scale 0.25}"
},
{
"source": "pk3",
"name": "Actors/items/backpack.txt",
"contents": "// Ammo packs\nactor AmmoPack : CustomInventory replaces Backpack {\n\t+ALWAYSPICKUP\n\tInventory.Pickupmessage \"Picked up an ammo pack.\"\n\tInventory.RespawnTics 2100\n\tInventory.PickupSound \"misc/i_pkup\"\n\tInventory.MaxAmount 9999\n\tstates {\n\tSpawn:\n\t\tBKPK A -1\n\t\tstop\n\tPickup:\n\t\tTNT1 A 0 A_GiveInventory (\"BulletMag\", 25)\n\t\tTNT1 A 0 A_GiveInventory (\"NewShell\", 10)\n\t\tTNT1 A 0 A_GiveInventory (\"Missile\", 3)\n\t\tTNT1 A 0 A_GiveInventory (\"NewCell\", 15)\n\t\tTNT1 A 0 A_GiveInventory (\"DemonAmmo\", 15)\n\t\tTNT1 A 0 A_GiveInventory (\"HandGrenadeAmmo\", 1)\n\t\tTNT1 A 0 ACS_ExecuteAlways (614, 0, 5) // give credits\n\t\tstop\n\t}\n}\n\n// [JD] This is used for full refills only.\n/*Actor AmmoPackNoCredits : AmmoPack\n{\n\tstates\n\t{\n\tPickup:\n\t\tTNT1 A 0 A_GiveInventory (\"BulletMag\", 25)\n\t\tTNT1 A 0 A_GiveInventory (\"NewShell\", 10)\n\t\tTNT1 A 0 A_GiveInventory (\"Missile\", 3)\n\t\tTNT1 A 0 A_GiveInventory (\"NewCell\", 15)\n\t\tTNT1 A 0 A_GiveInventory (\"DemonAmmo\", 15)\n\t\tTNT1 A 0 A_GiveInventory (\"HandGrenadeAmmo\", 1)\n\t\tstop\n\t}\n}*/\n\nactor MedicPack : CustomInventory 21082 {\n\t+ALWAYSPICKUP\n\tInventory.RespawnTics 2100\n\tInventory.PickupSound \"misc/i_pkup\"\n\tInventory.MaxAmount 9999\n\tInventory.PickupMessage \"Picked up a medical pack.\"\n\tstates {\n\tSpawn:\n\t\tBKPK A -1\n\t\tstop\n\tPickup:\n\t\tTNT1 A 0 HealThing (130)\n\t\tTNT1 A 0 A_GiveInventory (\"Refunds\", 50)\n\t\tstop\n\t}\n}\n\nactor EngineerPack : MedicPack 21067 {\n\tInventory.PickupMessage \"Picked up a support pack.\"\n\tstates {\n\tPickup:\n\t\tTNT1 A 0 HealThing (25)\n\t\tTNT1 A 0 A_GiveInventory (\"TimedC4\", 1)\n\t\tstop\n\t}\n}"
},
{
"source": "pk3",
"name": "Actors/items/beacons.txt",
"contents": "//Beacons\nactor IonCannonBeacon : InventoryItem {\n\tinventory.icon \"ionicon\"\n\ttag \"Ion Cannon Beacon\"\n\tstates {\n\tUse:\n\t\tTNT1 A 0 A_JumpIfInventory (\"IsInSpawnRoom\", 1, \"Failure\")\n\t\tTNT1 A 0 A_JumpIfInventory (\"InMenu\", 1, \"Failure\")\n\t\tTNT1 A 0 A_JumpIfInventory (\"PowerBerserk\", 1, \"Failure\")\n\t\tTNT1 A 0 A_JumpIfInventory (\"IsMech\", 1, \"Use.Mech\")\n\t\tTNT1 A 0 A_JumpIfInventory (\"StealthMode\", 1, \"Destealth\")\n\t\tTNT1 A 0 A_Stop\n\t\tTNT1 A 0 ACS_ExecuteWithResult (SC_BeaconInventory, 1)\n\t\tfail // ACS removes the item\n\t}\n}\n\nactor NuclearStrikeBeacon : InventoryItem {\n\tinventory.icon \"nukeicon\"\n\ttag \"Nuclear Strike Beacon\"\n\tstates {\n\tUse:\n\t\tTNT1 A 0 A_JumpIfInventory (\"IsInSpawnRoom\", 1, \"Failure\")\n\t\tTNT1 A 0 A_JumpIfInventory (\"PowerBerserk\", 1, \"Failure\")\n\t\tTNT1 A 0 A_JumpIfInventory (\"IsMech\", 1, \"Use.Mech\")\n\t\tTNT1 A 0 A_JumpIfInventory (\"StealthMode\", 1, \"Destealth\")\n\t\tTNT1 A 0 A_JumpIfInventory (\"BeaconUseToken\", 1, 1)\n\t\tTNT1 A 0 A_Stop\n\t\tTNT1 A 0 ACS_ExecuteWithResult (SC_BeaconInventory, 1)\n\t\tfail\n\t}\n}\n\n// [Dusk] Safety lock\nactor BeaconUseToken : Inventory {}\nactor PlantingBeacon : Inventory {}\n\nactor BeaconCountdown : Inventory {\n\tInventory.MaxAmount 60\n}\n\nactor BeaconDisarmed : Inventory {}\n\n// [Dusk] NOTE: the beacon has to be a projectile so that CMF_TRACKOWNER can\n// track all the way to the player who planted it to credit him for the damage.\n// If the target is lost, the beacon can teamkill buildings, which isn't exactly\n// desirable, especially with super nukes around!\nactor IonCannonBeaconArmed {\n\tPROJECTILE\n\t-SOLID\n\t-NOBLOCKMAP\n\t+NOGRAVITY\n\t+SHOOTABLE\n\t+THRUGHOST\n\t+NOBLOOD\n\t+NOTARGETSWITCH\n\t+NOCLIP\n\tHealth 1750\n\tRadius 6\n\tHeight 8\n\tScale 0.25\n\tMass 0x7FFFFFFF\n\tDamageFactor \"Normal\", 0.0\n\tDamageFactor \"Fist\", 0.0\n\tDamageFactor \"Bullet\", 0.0\n\tDamageFactor \"Rifle\", 0.0\n\tDamageFactor \"Explosion\", 0.0\n\tDamageFactor \"Fire\", 0.0\n\tDamageFactor \"Chemical\", 0.0\n\tDamageFactor \"Energy\", 0.0\n\tDamageFactor \"AntiArmor\", 0.0\n\tDamageFactor \"Time\", 0.0\n\tDamageFactor \"Disarm\", 1.0\n\tDamageFactor \"Superweapon\", 0.0\n\tDamageFactor \"MassDriver\", 0.0\n\tDamageFactor \"Mechstomp\", 0.0\n\tDamageFactor \"Monster\", 0.0\n\tDamageFactor \"Flash\", 0.0\n\tObituary \"$OB_IONCANNON\"\n\tDamageType \"Superweapon\"\n\tstates {\n\tSpawn:\n\t\tBEAC D 0\n\t\tBEAC D 0 Thing_SetSpecial (0, 226, 350, 0, TEAM_Blue)\n\t\tTNT1 A 0 A_JumpIf (ACS_ExecuteWithResult (624) == 0, 2)\n\t\t\tTNT1 A 0 DamageThing (health / 2) // Halve the health if super nukes are enabled.\n\t\tBEAC D 35 ACS_ExecuteAlways (621, 0, TEAM_Blue)\n\t\twait\n\tDetonate:\n\t\tBEAC D 0 A_UnsetShootable\n\t\tBEAC D 389 A_SpawnItemEx (\"IonBeaconFX\")\n\t\tTNT1 A 0 A_SpawnItemEx (\"BlueStrike\", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_JumpIf (ACS_ExecuteWithResult (624) == 1, \"SuperDetonate\")\n\t\tTNT1 A 5 A_Explode (40000, 512, 1)\n\t\tstop\n\tSuperDetonate:\n\t\tTNT1 A 0 A_CustomMissile (\"IonShockwave\", 0, 0, 0, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"IonShockwave\", 0, 0, 22, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"IonShockwave\", 0, 0, 45, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"IonShockwave\", 0, 0, 67, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"IonShockwave\", 0, 0, 90, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"IonShockwave\", 0, 0, 112, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"IonShockwave\", 0, 0, 135, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"IonShockwave\", 0, 0, 157, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"IonShockwave\", 0, 0, 180, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"IonShockwave\", 0, 0, 202, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"IonShockwave\", 0, 0, 225, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"IonShockwave\", 0, 0, 247, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"IonShockwave\", 0, 0, 270, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"IonShockwave\", 0, 0, 292, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"IonShockwave\", 0, 0, 315, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"IonShockwave\", 0, 0, 327, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 5\n\t\tstop\n\tDeath:\n\t\t\"----\" A 0 A_PlaySound (\"eva/iondisarmed\", CHAN_BODY, 1.0, 0, ATTN_NONE)\n\t\tgoto Disarm\n\tDisarm:\n\t\t\"----\" A 0 A_GiveInventory (\"BeaconDisarmed\", 1)\n\t\t\"----\" A 0 A_PlaySound (\"c4/disarm\", 6)\n\t\t\"----\" AAAAAAAAA 1 A_Fadeout(0.1)\n\t\t// [Dusk] The beacon has to linger around for a bit so that the script\n\t\t// can pick up on it and cut any announcers off\n\t\t\"----\" A 90 A_SetTranslucent (0, 0)\n\t\twait\n\t}\n}\n\nactor NuclearStrikeBeaconArmed : IonCannonBeaconArmed {\n\tObituary \"$OB_NUKE\"\n\tScale 0.15\n\tStates {\n\tSpawn:\n\t\tBEAC C 0\n\t\tBEAC C 0 Thing_SetSpecial (0, 226, 350, 0, TEAM_Red)\n\t\tTNT1 A 0 A_JumpIf (ACS_ExecuteWithResult (624) == 0, 2)\n\t\t\tTNT1 A 0 DamageThing (health / 2)\n\t\tBEAC C 35 ACS_ExecuteAlways (621, 0, TEAM_Red)\n\t\twait\n\tDetonate:\n\t\tBEAC D 0 A_UnsetShootable\n\t\tBEAC C 350 A_PlaySound (\"nuke/approach\", CHAN_VOICE, 1.0, 0, ATTN_NONE)\n\t\tTNT1 A 0 A_SpawnItemEx (\"HyperNuke\", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_JumpIf (ACS_ExecuteWithResult (624) == 1, \"SuperDetonate\")\n\t\tTNT1 A 5 A_Explode (40000, 512, 1)\n\t\tstop\n\tSuperDetonate:\n\t\tTNT1 A 0 A_CustomMissile (\"NuclearShockwave\", 0, 0, 0, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"NuclearShockwave\", 0, 0, 22, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"NuclearShockwave\", 0, 0, 45, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"NuclearShockwave\", 0, 0, 67, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"NuclearShockwave\", 0, 0, 90, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"NuclearShockwave\", 0, 0, 112, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"NuclearShockwave\", 0, 0, 135, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"NuclearShockwave\", 0, 0, 157, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"NuclearShockwave\", 0, 0, 180, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"NuclearShockwave\", 0, 0, 202, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"NuclearShockwave\", 0, 0, 225, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"NuclearShockwave\", 0, 0, 247, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"NuclearShockwave\", 0, 0, 270, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"NuclearShockwave\", 0, 0, 292, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"NuclearShockwave\", 0, 0, 315, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 0 A_CustomMissile (\"NuclearShockwave\", 0, 0, 327, (CMF_TRACKOWNER | CMF_AIMDIRECTION))\n\t\tTNT1 A 5\n\t\tstop\n\tDeath:\n\t\t\"----\" A 0 A_PlaySound (\"eva/nukedisarmed\", CHAN_BODY, 1.0, 0, ATTN_NONE)\n\t\tgoto Disarm\n\t}\n}\n\n// This item gives the player the correct beacon based on his team.\nactor BeaconItem : CustomInventory {\n\tInventory.MaxAmount 0\n\tInventory.Amount 0\n\tStates {\n\tPickup:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_JumpIfInventory (\"IsBlue\", 1, \"GiveBlue\")\n\t\tTNT1 A 0 A_GiveInventory (\"NuclearStrikeBeacon\", 1)\n\t\tstop\n\tGiveBlue:\n\t\tTNT1 A 0 A_GiveInventory (\"IonCannonBeacon\", 1)\n\t\tstop\n\t}\n}\n\n// Falls to the floor and spawns the armed beacon when landed.\nactor IonCannonBeaconThrown {\n\tPROJECTILE\n\t-NOGRAVITY\n\t+THRUGHOST\n\tRadius 6\n\tHeight 8\n\tSpeed 0\n\tDamage 0\n\tGravity 2.5\n\tScale 0.25\n\tHealth 300\n\tStates {\n\tSpawn:\n\t\tBEAC D 1 A_JumpIf(waterlevel > 1, \"Water\")\n\t\twait\n\tDeath:\n\t\tTNT1 A 0 A_SpawnItemEx(\"IonCannonBeaconArmed\", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 4\n\t\tstop\n\tWater:\n\t\tBEAC D 35 A_PlaySound (\"c4/disarm\", 6)\n\t\tBEAC D 0 ACS_ExecuteAlways (957, 0, 1)\n\t\tBEAC D 1 A_Fadeout(0.1)\n\t\twait\n\t}\n}\n\nactor NuclearStrikeBeaconThrown : IonCannonBeaconThrown {\n\tstates {\n\tSpawn:\n\t\tBEAC C 1 A_JumpIf(waterlevel > 1, \"Water\")\n\t\twait\n\tDeath:\n\t\tTNT1 A 0 A_SpawnItemEx(\"NuclearStrikeBeaconArmed\", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 4 bright\n\t\tstop\n\tWater:\n\t\tBEAC C 35 A_PlaySound (\"c4/disarm\", 6)\n\t\tBEAC C 0 ACS_ExecuteAlways (957, 0)\n\t\tBEAC C 1 A_Fadeout(0.1)\n\t\twait\n\t}\n}\n\n// [Dusk] Debug stuff\nactor IonMissile : Rocket {\n\tObituary \"$OB_IonCannon\"\n\tDamageType Superweapon\n\tstates {\n\tDeath:\n\t\tTNT1 A 0 A_SpawnItemEx (\"BlueStrike\")\n\t\tTNT1 A 5 A_Explode (40000, 512, 1)\n\t\tstop\n\t}\n}\n\nactor NuclearMissile : Rocket {\n\tObituary \"$OB_NUKE\"\n\tDamageType Superweapon\n\tstates {\n\tDeath:\n\t\tTNT1 A 0 A_SpawnItemEx (\"HyperNuke\")\n\t\tTNT1 A 5 A_Explode (40000, 512, 1)\n\t\tstop\n\t}\n}\n\n// =============================================================================\n// [Dusk] Super nukes\nactor NuclearShockwave {\n\tPROJECTILE\n\t+NOCLIP\n\t+FLOORHUGGER\n\t+SERVERSIDEONLY\n\tRadius 1\n\tHeight 1\n\tSpeed 60\n\tDamageType \"Superweapon\"\n\tObituary \"$OB_NUKE\"\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 AAA 1 A_Explode (40000, 512)\n\t\tTNT1 AAA 1 A_Explode (30000, 512)\n\t\tTNT1 AAA 1 A_Explode (20000, 512)\n\t\tTNT1 AAA 1 A_Explode (10000, 512)\n\t\tTNT1 AAA 1 A_Explode (5000, 512)\n\t\tTNT1 AAA 1 A_Explode (2500, 512)\n\t\tTNT1 AAA 1 A_Explode (1000, 512)\n\t\tTNT1 AAA 1 A_Explode (500, 512)\n\t\tTNT1 AAAAAAAAAA 1 A_Explode (250, 512) // Light shockwave to devastate the base without destroying it\n\t\tTNT1 AAAAAAAAAA 1 A_Explode (125, 512)\n\t\tTNT1 AAAAAAAAAA 1 A_Explode (75, 512)\n\t\tTNT1 AAAAAAAAAA 1 A_Explode (25, 512)\n\t\tstop\n\t}\n}\n\nactor IonShockwave : NuclearShockwave {\n\tObituary \"$OB_IONCANNON\"\n}\n\n// =============================================================================\nactor BeaconFX {\n\t+CLIENTSIDEONLY\n\t+NOBLOCKMAP\n\t+NOINTERACTION\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 1, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 2, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 3, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 4, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 5, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 6, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 7, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 8, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 9, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 10, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 11, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 12, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 13, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 14, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 15, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 16, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 18, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 20, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 22, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 24, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 28, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 32, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 36, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 40, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 48, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2\", 0, 0, 0, 0, 0, 56, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX3\", 32, 0, 2, 0, 0, 2, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 1 A_SpawnItemEx (\"BeaconFX3\", 32, 0, 3, 0, 0, 3, 23, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX3\", 32, 0, 4, 0, 0, 4, 45, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 1 A_SpawnItemEx (\"BeaconFX3\", 32, 0, 5, 0, 0, 5, 68, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX3\", 32, 0, 6, 0, 0, 6, 90, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 1 A_SpawnItemEx (\"BeaconFX3\", 32, 0, 7, 0, 0, 7, 113, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX3\", 32, 0, 8, 0, 0, 8, 135, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 1 A_SpawnItemEx (\"BeaconFX3\", 32, 0, 9, 0, 0, 9, 158, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX3\", 32, 0, 10, 0, 0, 10, 180, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 1 A_SpawnItemEx (\"BeaconFX3\", 32, 0, 11, 0, 0, 11, 203, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX3\", 32, 0, 12, 0, 0, 12, 225, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 1 A_SpawnItemEx (\"BeaconFX3\", 32, 0, 13, 0, 0, 13, 247, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX3\", 32, 0, 14, 0, 0, 14, 270, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 1 A_SpawnItemEx (\"BeaconFX3\", 32, 0, 15, 0, 0, 15, 293, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX3\", 32, 0, 16, 0, 0, 16, 315, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 1 A_SpawnItemEx (\"BeaconFX3\", 32, 0, 17, 0, 0, 17, 338, SXF_NOCHECKPOSITION)\n\t\tstop\n\t}\n}\n\nactor BeaconFXRed : BeaconFX {\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 1, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 2, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 3, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 4, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 5, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 6, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 7, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 8, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 9, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 10, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 11, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 12, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 13, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 14, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 15, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 16, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 18, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 20, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 22, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 24, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 28, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 32, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 36, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 40, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 48, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX2Red\", 0, 0, 0, 0, 0, 56, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX3Red\", 32, 0, 2, 0, 0, 2, 0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 1 A_SpawnItemEx (\"BeaconFX3Red\", 32, 0, 3, 0, 0, 3, 23, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX3Red\", 32, 0, 4, 0, 0, 4, 45, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 1 A_SpawnItemEx (\"BeaconFX3Red\", 32, 0, 5, 0, 0, 5, 68, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX3Red\", 32, 0, 6, 0, 0, 6, 90, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 1 A_SpawnItemEx (\"BeaconFX3Red\", 32, 0, 7, 0, 0, 7, 113, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX3Red\", 32, 0, 8, 0, 0, 8, 135, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 1 A_SpawnItemEx (\"BeaconFX3Red\", 32, 0, 9, 0, 0, 9, 158, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX3Red\", 32, 0, 10, 0, 0, 10, 180, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 1 A_SpawnItemEx (\"BeaconFX3Red\", 32, 0, 11, 0, 0, 11, 203, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX3Red\", 32, 0, 12, 0, 0, 12, 225, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 1 A_SpawnItemEx (\"BeaconFX3Red\", 32, 0, 13, 0, 0, 13, 247, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX3Red\", 32, 0, 14, 0, 0, 14, 270, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 1 A_SpawnItemEx (\"BeaconFX3Red\", 32, 0, 15, 0, 0, 15, 293, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 0 A_SpawnItemEx (\"BeaconFX3Red\", 32, 0, 16, 0, 0, 16, 315, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 1 A_SpawnItemEx (\"BeaconFX3Red\", 32, 0, 17, 0, 0, 17, 338, SXF_NOCHECKPOSITION)\n\t\tstop\n\t}\n}\n\nactor BeaconFX2 {\n\t+CLIENTSIDEONLY\n\t+NOBLOCKMAP\n\t+NOINTERACTION\n\tRenderstyle Add\n\tAlpha 0.7\n\tScale 0.35\n\tStates {\n\tSpawn:\n\t\tPLSB A 1 Bright A_FadeOut (0.02)\n\t\twait\n\t}\n}\n\nactor BeaconFX3 : BeaconFX2 {\n\tScale 0.2\n}\n\nactor BeaconFX2Red : BeaconFX2 {\n\tStates {\n\tSpawn:\n\t\tPLSR A 1 Bright A_FadeOut (0.02)\n\t\twait\n\t}\n}\n\nactor BeaconFX3Red : BeaconFX2Red {\n\tScale 0.25\n}"
},
{
"source": "pk3",
"name": "Actors/items/credits.txt",
"contents": "actor Credit : Inventory {\n\tInventory.MaxAmount 30000\n}\n\nactor Credits1 : CustomInventory 21412 {\n\t//$Category Pickups\n\t+ALWAYSPICKUP\n\tInventory.PickupMessage \"Picked up a lucky coin. +\\cq$\\cd1\"\n\tInventory.PickupSound \"powerup/credsound\"\n\ttag \"Credit coin ($1)\"\n\tstates {\n\tSpawn:\n\t\tCOIN A -1\n\t\tstop\n\tPickup:\n\t\tTNT1 A 0 ACS_ExecuteAlways (614, 0, 1)\n\t\tstop\n\t}\n}\n\nactor Credits20 : Credits1 21413 {\n\tInventory.PickupMessage \"Picked up a pile of credits! +\\cq$\\cd20\"\n\tInventory.RespawnTics 1575\n\tTag \"Credit pile ($20)\"\n\tstates {\n\tSpawn:\n\t\tCRED A -1\n\t\tstop\n\tPickup:\n\t\tTNT1 A 0 ACS_ExecuteAlways (614, 0, 20)\n\t\tstop\n\t}\n}\n\nactor Credits40 : Credits20 21414 {\n\tInventory.PickupMessage \"Picked up bag of credits! +\\cq$\\cd40\"\n\tInventory.RespawnTics 2100\n\tTag \"Bag of credits ($40)\"\n\tStates {\n\tSpawn:\n\t\tSACK A -1\n\t\tstop\n\tPickup:\n\t\tTNT1 A 0 ACS_ExecuteAlways (614, 0, 40)\n\t\tstop\n\t}\n}\n\nactor Credits75 : Credits20 21415 {\n\tInventory.PickupMessage \"Picked up a chest of credits! +\\cq$\\cd75\"\n\tInventory.RespawnTics 3150\n\tTag \"Chest of credits ($75)\"\n\tStates {\n\tSpawn:\n\t\tCHST A -1\n\t\tstop\n\tPickup:\n\t\tTNT1 A 0 ACS_ExecuteAlways (614, 0, 75)\n\t\tstop\n\t}\n}"
},
{
"source": "pk3",
"name": "Actors/items/proxymine.txt",
"contents": "// Proxy mine\nactor ProxyMine : InventoryItem {\n\tinventory.icon \"mineicon\"\n\ttag \"Proxy C4 -mine\"\n\tinventory.maxamount 6\n\tstates {\n\tUse:\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsInSpawnRoom\", 1, \"Failure\")\n\t\tTNT1 A 0 A_JumpIfInventory (\"IsMech\", 1, \"Use.Mech\")\n\t\tTNT1 A 0 A_JumpIf (ACS_ExecuteWithResult(346, 2) == 0, \"Limit\")\n\t\tTNT1 A 0 A_JumpIfInventory (\"PowerBerserk\", 1, \"Failure\")\n\t\tTNT1 A 0 A_PlaySound (\"c4/proxy\", CHAN_ITEM)\n\t\tTNT1 A 0 A_JumpIfInventory (\"IsBlue\", 1, \"UseBlue\")\n\t\tTNT1 A 0 A_SpawnItemEx (\"ProxyMineRed\", 32,0,1, 0,0,0, 0, SXF_TRANSFERPOINTERS)\n\t\tTNT1 A 0 ACS_ExecuteAlways (349, 0, 2)\n\t\tstop\n\tUseBlue:\n\t\tTNT1 A 0 A_SpawnItemEx (\"ProxyMineBlue\", 32,0,1, 0,0,0, 0, SXF_TRANSFERPOINTERS)\n\t\tTNT1 A 0 ACS_ExecuteAlways (349, 0, 2)\n\t\tstop\n\tLimit:\n\t\tTNT1 A 0 ACS_ExecuteAlways (349, 0, 2)\n\t\tfail\n\t}\n}\n\nactor ProxyMineCount : Inventory {\n\tinventory.maxamount 6\n}\n\n// [SG] Mines no longer take damage from bullets\n\nActor ProxyMineRed {\n\tMONSTER\n\t-SOLID\n\t-FRIENDLY\n\t-COUNTKILL\n\t+FLOORCLIP\n\t+NOICEDEATH\n\t+NOTARGET\n\t+NEVERRESPAWN\n\t+NOBLOOD\n\t+NOCLIP\n\t+LOOKALLAROUND\n\t+AMBUSH\n\t+QUICKTORETALIATE\n\t+CANPASS\n\tObituary \"$OB_MINEBARREL\"\n\tRadius 8\n\tHeight 14\n\tHealth 160\n\tDamage 0\n\tSpeed 0\n\tScale .2\n\tMass 0x7FFFFFFF\n\tDamageFactor \"Normal\",\t\t\t0.0\n\tDamageFactor \"Fist\",\t\t\t0.0\n\tDamageFactor \"Bullet\",\t\t\t0.0\n\tDamageFactor \"Rifle\",\t\t\t0.0\n\tDamageFactor \"Explosion\",\t\t0.0\n\tDamageFactor \"Fire\",\t\t\t0.0\n\tDamageFactor \"Chemical\",\t\t0.0\n\tDamageFactor \"Energy\",\t\t\t0.0\n\tDamageFactor \"Time\",\t\t\t0.0\n\tDamageFactor \"Mine\",\t\t\t0.0\n\tDamageFactor \"Superweapon\",\t\t0.0\n\tDamageFactor \"MassDriver\",\t\t0.0\n\tDamageFactor \"AntiArmor\",\t\t0.0\n\tDamageFactor \"FireSpecial\",\t\t0.0\n\tDamageFactor \"ChemicalSpecial\",\t0.0\n\tDamageFactor \"Disarm\",\t\t\t1.0\n\tDamageFactor \"Deconstruction\",\t0.0 //[JD] Prevents RemoverGun from disarming these\n\tDamageFactor \"Mechstomp\",\t\t0.0\n\tDamageFactor \"Monster\",\t\t\t0.0\n\tDamageFactor \"Flash\", \t\t\t0.0\n\tTranslation \"112:127=228:246\"\n\n\tStates {\n\tSpawn:\n\t\tPC4T AA 0 //A_CheckSight(\"Death.Deconstruction\") [Cata] Unintended behavior from Zandro 3.0. Deprecating this.\n\t\tPC4T A 0 ACS_ExecuteAlways (980, 0)\n\t\tPC4T A 0 A_ChangeFlag(\"Friendly\", 0)\n\tIdle:\n\t\tPC4T A 6 A_LookEx (LOF_NOSOUNDCHECK, 0, 64)\n\t\tLoop\n\tSee:\n\t\tPC4T A 0 A_JumpIfCloser(86, \"Melee\") //Checks if they are close enough. If so goes to Melee.\n\t\tPC4T A 2 A_ClearTarget\n\t\tgoto Idle\n\tClear:\n\t\tPC4T A 2 A_ClearTarget\n\t\tgoto Idle\n\tMelee:\n\t\tPC4T A 0\n\t\tPC4T AA 1 A_JumpIfInTargetInventory (\"IsBlue\", 1, \"Death\") //If you are blue, you get blown up\n\t\tgoto Clear\n\tDeath:\n\t\tTNT1 A 0 ACS_ExecuteAlways (980, 0)\n\t\tTNT1 A 0 A_NoBlocking\n\t\tTNT1 A 0 A_PlaySound (\"weapons/rocklx\")\n\t\tTNT1 A 0 A_CustomMissile (\"ProxyMineExplosion\")\n\t\tTNT1 A 1\n\t\tstop\n\tDeath.Fist:\n\tDeath.Bullet:\n\tDeath.Rifle:\n\t\t// [Dusk] If the mine was shot, it does the damage itself, thus\n\t\t// acting like a barrel. This way someone can be fragged by\n\t\t// detonating his own mines.\n\t\tTNT1 A 0 ACS_ExecuteAlways (980, 0)\n\t\tTNT1 A 0 A_NoBlocking\n\t\tTNT1 A 0 A_PlaySound (\"weapons/rocklx\")\n\t\tTNT1 A 0 A_SpawnItemEx (\"ExplosionMain\")\n\t\tTNT1 A 1 A_Explode (384, 192, 1)\n\t\tstop\n\tDeath.Energy:\n\tDeath.Deconstruction:\n\tDeath.Disarm:\n\t\tPC4T A 18 A_PlaySound(\"c4/disarm\")\n\t\tPC4T A 1 A_Fadeout(0.1)\n\t\twait\n\t}\n}\n\nactor ProxyMineExplosion {\n\tPROJECTILE\n\t-RANDOMIZE\n\t+NOCLIP\n\tSpeed 1\n\tDamage 0\n\tObituary \"$OB_MINE\"\n\tDamageType \"MassDriver\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItemEx (\"ExplosionMain\")\n\t\tTNT1 A 1 A_Explode (384, 192, 1)\n\t\tstop\n\t}\n}\n\nactor ProxyMineBlue : ProxyMineRed {\n\tTranslation \"112:127=194:207\"\n\tStates {\n\tMelee:\n\t\tPC4T A 0\n\t\tPC4T AA 1 A_JumpIfInTargetInventory (\"IsRed\", 1, \"Death\")\n\t\tgoto Clear\n\t}\n}\n\n//==============================================================================\n//These are for AOW13 (Space Camp) They're seperate from the original mines\nActor ProxyMineRedSpawn : Custominventory 30003 {\n\tStates {\n\tSpawn:\n\t\tTNT1 A 6\n TNT1 A 0 A_SpawnItemex (\"ProxyMineRedd\")\n\t\tstop\n\t}\n}\nActor ProxyMineBlueSpawn : Custominventory 30004 {\n\tStates {\n\tSpawn:\n\t\tTNT1 A 6\n TNT1 A 0 A_SpawnItemex (\"ProxyMineBluee\")\n\t\tstop\n\t}\n}\nActor ProxyMineRedd {\n\tMONSTER\n\t-SOLID\n\t-FRIENDLY\n\t-COUNTKILL\n\t+FLOORCLIP\n\t+NOICEDEATH\n\t+NOTARGET\n\t+NEVERRESPAWN\n\t+NOBLOOD\n\t+NOCLIP\n\t+LOOKALLAROUND\n\t+AMBUSH\n\t+QUICKTORETALIATE\n\t+CANPASS\n\n\tObituary \"%k tripped over a proxy mine.\"\n\tRadius 8\n\tHeight 14\n\tHealth 160\n\tDamage 0\n\tSpeed 0\n\tScale .2\n\tMass 0x7FFFFFFF\n\n\tDamageFactor \"Normal\",\t\t\t0.0\n\tDamageFactor \"Fist\",\t\t\t0.0\n\tDamageFactor \"Bullet\",\t\t\t0.0\n\tDamageFactor \"Rifle\",\t\t\t0.0\n\tDamageFactor \"Explosion\",\t\t0.0\n\tDamageFactor \"Flash\",\t\t\t0.0\n\tDamageFactor \"Fire\",\t\t\t0.0\n\tDamageFactor \"Suicide\", 0.0\n\tDamageFactor \"Chemical\",\t\t0.0\n\tDamageFactor \"Normal\", 0.0\n\tDamageFactor \"Energy\",\t\t\t1.0\n\tDamageFactor \"Time\",\t\t\t0.0\n\tDamageFactor \"Mine\",\t\t\t0.0\n\tDamageFactor \"Superweapon\",\t\t0.0\n\tDamageFactor \"MassDriver\",\t\t0.0\n\tDamageFactor \"AntiArmor\",\t\t0.0\n\tDamageFactor \"FireSpecial\",\t\t0.0\n\tDamageFactor \"ChemicalSpecial\",\t0.0\n\tDamageFactor \"Disarm\",\t\t\t1.0\n\tDamageFactor \"Deconstruction\",\t0.0\n\tDamageFactor \"Mechstomp\",\t\t0.0\n\tDamageFactor \"Monster\",\t\t\t0.0\n\ttranslation \"112:127=175:190\"\n\n\tStates {\n\tSpawn:\n\t\tPC4T A 0\n\tIdle:\n\t\tPC4T A 6 A_LookEx (LOF_NOSOUNDCHECK, 0, 64)\n\t\tLoop\n\tSee:\n\t\tPC4T A 0 A_JumpIfCloser(86, \"Melee\") //Checks if they are close enough. If so goes to Melee.\n\t\tPC4T A 2 A_ClearTarget\n\t\tgoto Idle\n\tClear:\n\t\tPC4T A 2 A_ClearTarget\n\t\tgoto Idle\n\tMelee:\n\t\tPC4T A 0\n\t\tPC4T AA 1 A_JumpIfInTargetInventory (\"IsBlue\", 1, \"Death\") //If you are blue, you get blown up\n\t\tgoto Clear\n\tDeath:\n\t\tTNT1 A 0 A_NoBlocking\n\t\tTNT1 A 0 A_PlaySound (\"weapons/rocklx\")\n\t\tTNT1 A 0 A_CustomMissile (\"ProxyMineExplosion\")\n\t\tTNT1 A 1\n\t\tstop\n\tDeath.Fist:\n\tDeath.Bullet:\n\tDeath.Rifle:\n\t\t// [Dusk] If the mine was shot, it does the damage itself, thus\n\t\t// acting like a barrel. This way someone can be fragged by\n\t\t// detonating his own mines.\n\t\tTNT1 A 0 A_NoBlocking\n\t\tTNT1 A 0 A_PlaySound (\"weapons/rocklx\")\n TNT1 A 0 A_SpawnItemEx (\"ExplosionMain\")\n\t\tTNT1 A 1 A_Explode (384, 192, 1)\n\t\tstop\n\tDeath.Energy:\n\tDeath.Deconstruction:\n\tDeath.Disarm:\n\t\tPC4T A 18 A_PlaySound(\"c4/disarm\")\n\t\tPC4T A 1 A_Fadeout(0.1)\n\t\twait\n\t}\n}\nActor ProxyMineBluee {\n\tMONSTER\n\t-SOLID\n\t-FRIENDLY\n\t-COUNTKILL\n\t+FLOORCLIP\n\t+NOICEDEATH\n\t+NOTARGET\n\t+NEVERRESPAWN\n\t+NOBLOOD\n\t+NOCLIP\n\t+LOOKALLAROUND\n\t+AMBUSH\n\t+QUICKTORETALIATE\n\t+CANPASS\n\n\tObituary \"%k tripped over a proxy mine.\"\n\tRadius 8\n\tHeight 14\n\tHealth 160\n\tDamage 0\n\tSpeed 0\n\tScale .2\n\tMass 0x7FFFFFFF\n\n\tDamageFactor \"Normal\",\t\t\t0.0\n\tDamageFactor \"Fist\",\t\t\t0.0\n\tDamageFactor \"Bullet\",\t\t\t0.0\n\tDamageFactor \"Rifle\",\t\t\t0.0\n\tDamageFactor \"Explosion\",\t\t0.0\n\tDamageFactor \"Flash\",\t\t\t0.0\n\tDamageFactor \"Fire\",\t\t\t0.0\n\tDamageFactor \"Suicide\", 0.0\n\tDamageFactor \"Chemical\",\t\t0.0\n\tDamageFactor \"Normal\", 0.0\n\tDamageFactor \"Energy\",\t\t\t1.0\n\tDamageFactor \"Time\",\t\t\t0.0\n\tDamageFactor \"Mine\",\t\t\t0.0\n\tDamageFactor \"Superweapon\",\t\t0.0\n\tDamageFactor \"MassDriver\",\t\t0.0\n\tDamageFactor \"AntiArmor\",\t\t0.0\n\tDamageFactor \"FireSpecial\",\t\t0.0\n\tDamageFactor \"ChemicalSpecial\",\t0.0\n\tDamageFactor \"Disarm\",\t\t\t1.0\n\tDamageFactor \"Deconstruction\",\t0.0\n\tDamageFactor \"Mechstomp\",\t\t0.0\n\tDamageFactor \"Monster\",\t\t\t0.0\n\ttranslation \"112:127=200:207\"\n\n\tStates {\n\tSpawn:\n\t\tPC4T A 0\n\tIdle:\n\t\tPC4T A 6 A_LookEx (LOF_NOSOUNDCHECK, 0, 64)\n\t\tLoop\n\tSee:\n\t\tPC4T A 0 A_JumpIfCloser(86, \"Melee\") //Checks if they are close enough. If so goes to Melee.\n\t\tPC4T A 2 A_ClearTarget\n\t\tgoto Idle\n\tClear:\n\t\tPC4T A 2 A_ClearTarget\n\t\tgoto Idle\n\tMelee:\n\t\tPC4T A 0\n\t\tPC4T AA 1 A_JumpIfInTargetInventory (\"IsRed\", 1, \"Death\") //If you are red, you get blown up\n\t\tgoto Clear\n\tDeath:\n\t\tTNT1 A 0 A_NoBlocking\n\t\tTNT1 A 0 A_PlaySound (\"weapons/rocklx\")\n\t\tTNT1 A 0 A_CustomMissile (\"ProxyMineExplosion\")\n\t\tTNT1 A 1\n\t\tstop\n\tDeath.Fist:\n\tDeath.Bullet:\n\tDeath.Rifle:\n\t\t// [Dusk] If the mine was shot, it does the damage itself, thus\n\t\t// acting like a barrel. This way someone can be fragged by\n\t\t// detonating his own mines.\n\t\tTNT1 A 0 A_NoBlocking\n\t\tTNT1 A 0 A_PlaySound (\"weapons/rocklx\")\n TNT1 A 0 A_SpawnItemEx (\"ExplosionMain\")\n\t\tTNT1 A 1 A_Explode (384, 192, 1)\n\t\tstop\n\tDeath.Energy:\n\tDeath.Deconstruction:\n\tDeath.Disarm:\n\t\tPC4T A 18 A_PlaySound(\"c4/disarm\")\n\t\tPC4T A 1 A_Fadeout(0.1)\n\t\twait\n\t}\n}\n//=============================================================================="
},
{
"source": "pk3",
"name": "Actors/items/tiberium.txt",
"contents": "// Tiberium Crystal\nactor TiberiumCrystalGiver : CustomInventory 21407 {\n\t+BLOODLESSIMPACT\n\t+NODAMAGETHRUST\n\t//$Category Pickups\n\tTag \"Tiberium Crystal\"\n\tInventory.RespawnTics 175 // 5*35\n\tInventory.PickupMessage \"Picked up a Tiberium Crystal!\"\n\tDamageType \"ChemicalSpecial\"\n\n\tStates {\n\tSpawn:\n\t\tTNT1 AA 0 Thing_ChangeTID (0, 402)\n\t\tgoto Idle\n\tIdle:\n\t\tTIBE A 0 A_SpawnItemEx (\"TiberiumChemSmoke\")\n\t\tTIBE A 35 bright A_Explode (24, 112)\n\t\tloop\n\tPickup:\n\t\tTNT1 A 0 A_JumpIfInventory(\"TiberiumCrystal\",1,2)\n\t\tTNT1 A 0 ACS_ExecuteWithResult (357)\n\t\tstop\n\t\tTNT1 A 0\n\t\tfail\n\tHideDoomish:\n\t\tTNT1 A 1050 Thing_ChangeTID (0, 0)\n\t\tTNT1 A 0 A_RestoreSpecialPosition\n\t\tTNT1 A 1 A_RestoreSpecialDoomThing\n\t\tStop\n\t}\n}\n\nactor TiberiumCrystalDropped : TiberiumCrystalGiver {\n\tStates {\n\tSpawn:\n\t\tTIBE AA 0 Thing_ChangeTID (0, 402)\n\t\tTIBE A 0 ThrustThing (random(0, 256), random (1, 5), 0, 0)\n\t\tTIBE A 0 ThrustThingZ (0, 20, 0, 0)\n\tIdle:\n\t\tTIBE A 0 A_SpawnItemEx (\"TiberiumChemSmoke\")\n\t\tTIBE A 0 A_GiveInventory (\"TiberiumCrystalTick\", 1)\n\t\tTIBE A 35 bright A_Explode (8, 112)\n\t\tTIBE A 0 A_JumpIfInventory (\"TiberiumCrystalTick\", 30, \"GoAway\")\n\t\tloop\n\tGoAway:\n\t\tTIBE A 0 bright A_SetTranslucent (0.8, 1)\n\t\tTIBE A 1 bright A_FadeOut\n\t\twait\n\t}\n}\n\nactor TiberiumCrystalTick : Inventory {inventory.maxamount 30}\n\nactor TiberiumCrystal : Inventory {\n\tInventory.PickupMessage \"You aquired yourself some Tiberium.\"\n\tInventory.MaxAmount 1\n\tInventory.Icon \"tibeicon\"\n\tTag \"Tiberium Crystal - bring this to the Refinery!\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tstop\n\t}\n}\n\nactor TiberiumCrystalThrown {\n\tPROJECTILE\n\t-NOGRAVITY\n\t+GHOST\n\t+THRUGHOST\n\t+BLOODLESSIMPACT\n\t+NODAMAGETHRUST\n\tObituary \"%o was \\cDturned green\\c- by %k's Tiberium crystal!\"\n\tRadius 16\n\tHeight 32\n\tSpeed 10\n\tGravity 0.75\n\tDamageType \"Chemical\"\n\tStates {\n\tSpawn:\n\t\tTIBE A 0\n\t\tTIBE A 0 bright A_Explode (8, 128)\n\t\tTIBE A 0 bright A_SpawnItemEx(\"ChemicalDeathShot\", random(-16,16), random(-16,16), random(16,64), 0, 0, 0.5*random(2,5), 0, 128, 32)\n\t\tTIBE AA 2 bright A_JumpIf(waterlevel > 1, \"Water\")\n\t\tloop\n\tDeath:\n\t\tTIBE A 0 bright\n\t\tTIBE A 0 bright A_SpawnItemEx (\"TiberiumCrystalSitting\", 0,0,0,0,0,0,0, SXF_NOCHECKPOSITION|SXF_SETMASTER)\n\t\tTNT1 A 4\n\t\tstop\n\tWater:\n\t\tTIBE A 15 bright A_SetTranslucent (1.0, 0)\n\tWaterLoop:\n\t\tTIBE A 0 bright A_SpawnItemEx(\"ChemicalDeathShot\", random(-16,16), random(-16,16), random(16,64), 0, 0, 0.5*random(2,5), 0, 128, 32)\n\t\tTIBE AAA 1 bright A_FadeOut (0.05)\n\t\tloop\n\t}\n}\n\nactor TiberiumCrystalSitting {\n\t+BLOODLESSIMPACT\n\t+NODAMAGETHRUST\n\tObituary \"%o was \\cDturned green\\c- by %k's Tiberium crystal!\"\n\tRadius 16\n\tHeight 32\n\tDamageType \"Chemical\"\n\tReactionTime 15\n\tStates {\n\tSpawn:\n\t\tTIBE AA 0 A_SpawnItemEx (\"TiberiumCrystalFX\")\n\t\tTIBE AAAAAAAAAAAAAAA 18 bright A_Explode (8, 128)\n\t\tTIBE AAAAAAAAAAAAAAA 17 bright A_Explode (8, 128)\n\tDeath:\n\t\tTIBE A 0 bright A_SetTranslucent (1, 1)\n\t\tTIBE A 1 bright A_FadeOut (0.05)\n\t\twait\n\t}\n}\n\nactor TiberiumCrystalFX {\n\t+CLIENTSIDEONLY\n\tReactionTime 16\n\tStates {\n\tSpawn:\n\t\tTIBE A 0\n\t\tTIBE AAAAAAA 5 BRIGHT A_SpawnItemEx(\"ChemicalDeathShot\", random(-16,16), random(-16,16), random(8,24), 0, 0, 0.5*random(2,5), 0, 128, 32)\n\t\tTIBE A 0 A_Countdown\n\t\tloop\n\tDeath:\n\t\tTIBE AAAAAAAAAAAAAAAAAAAA 1 BRIGHT A_SpawnItemEx (\"ChemicalDeathShot\", random(-16,16), random(-16,16), random(8,24), 0, 0, 0.5*random(2,5), 0, 128, 32)\n\t\tstop\n\t}\n}\n\nactor TiberiumChemSmoke {\n\t+NOINTERACTION\n\t+CLIENTSIDEONLY\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 AAAAAAAA 4 bright A_SpawnItemEx (\"ChemicalDeathShot\", random(-16,16), random(-16,16), random(0,16), 0, 0, 0.5*random(2,5), 0, 128, 128)\n\t\tstop\n\t}\n}\n\nactor TiberiumChemSmokePlayer {\n\t+NOSECTOR\n\t+NOCLIP\n\t+NOINTERACTION\n\t+CLIENTSIDEONLY\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItemEx (\"ChemicalDeathShot\", random(-16,-1), random(-16,16), random(32, 56), 0, 0, 0.5*random(2,5), 0, 128)\n\t\tstop\n\t}\n}\n\n// AOW21-specific Tiberium - these spawn map markers on their own\nactor FactoryTiberium : TiberiumCrystalGiver {\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItemEx (\"TiberiumMapMarker\")\n\t\tgoto Super::Spawn+2\n\t}\n}\n\n// Map marker for Tiberium.\nactor TiberiumMapMarker : MapMarker 17000 {\n\t//$Category Markers\n\tTag \"Tiberium Crystal Map-Marker\"\n\t+CLIENTSIDEONLY\n\tscale 0.175\n\tstates {\n\tSpawn:\n\t\tAMRK B -1\n\t\tstop\n\t}\n}\n\nactor TiberiumCrystalSound 21408 {\n\t//$Category Effects\n\tTag \"Tiberium Crystal Sound\"\n\t+CLIENTSIDEONLY\n\t+NOINTERACTION\n\tstates {\n\tSpawn:\n\t\tTNT1 AA 0 A_PlaySound (\"tiberium/loop1\", 0, 1.0, 1)\n\t\tTNT1 A -1\n\t\tstop\n\t}\n}"
},
{
"source": "pk3",
"name": "Actors/items/timedc4.txt",
"contents": "// TIMED C4\nactor TimedC4 : InventoryItem {\n\tTag \"Timed C4\"\n\tInventory.MaxAmount 4\n\tInventory.Icon \"TMC4ICON\"\n\tstates {\n\tUse:\n\t\tTNT1 A 0 A_JumpIfInventory (\"IsMech\", 1, \"Use.Mech\")\n\t\tTNT1 A 0 A_JumpIf (!ACS_ExecuteWithResult(630), \"Failure\")\n\t\tTNT1 A 0 A_JumpIfInventory (\"IsInSpawnRoom\", 1, \"Failure\")\n\t\tTNT1 A 0 A_JumpIfInventory (\"PowerBerserk\", 1, \"Failure\")\n\t\tTNT1 A 0 A_JumpIfInventory (\"StealthMode\", 1, \"Destealth\")\n\t\tTNT1 A 0 A_PlaySound (\"c4/use\", CHAN_AUTO)\n\t\tTNT1 A 0 A_JumpIfInventory (\"EnhancedTimedC4\", 1, \"UseEnhanced\")\n\t\tTNT1 A 0 A_JumpIfInventory (\"IsBlue\", 1, \"UseBlue\")\n\t\tTNT1 A 0 A_FireCustomMissile (\"TimedC4Thrown\", 0, 0)\n\t\tstop\n\tUseEnhanced:\n\t\tTNT1 A 0 A_JumpIfInventory (\"IsBlue\", 1, \"UseEnhancedBlue\")\n\t\tTNT1 A 0 A_FireCustomMissile (\"TimedC4ThrownE\", 0, 0)\n\t\tstop\n\tUseBlue:\n\t\tTNT1 A 0 A_FireCustomMissile (\"TimedC4ThrownBlue\", 0, 0)\n\t\tstop\n\tUseEnhancedBlue:\n\t\tTNT1 A 0 A_FireCustomMissile (\"TimedC4ThrownEBlue\", 0, 0)\n\t\tstop\n\t}\n}\n\nactor TimedC4Thrown {\n\tPROJECTILE\n\t-NOGRAVITY\n\t+THRUGHOST\n\tRadius 6\n\tHeight 8\n\tSpeed 30\n\tDamage 0\n\tGravity 0.5\n\tScale 0.114\n\tTranslation \"112:127=224:246\"\n\tStates {\n\tSpawn:\n\t\tTC4T R 2 A_JumpIf (waterlevel > 1, \"Water\")\n\t\twait\n\tDeath:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItemEx(\"TimedC4Armed\", 0,0,0, 0,0,0, 0, SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION)\n\t\tTNT1 A 4\n\t\tstop\n\tWater:\n\t\tTC4T R 35 A_PlaySound(\"c4/disarm\")\n\t\tTC4T R 1 A_Fadeout(0.1)\n\t\tWait\n\t}\n}\n\nactor TimedC4ThrownBlue : TimedC4Thrown {\n\tTranslation \"112:127=192:207\"\n\tstates {\n\tSpawn:\n\t\tTC4T B 2 A_JumpIf (waterlevel > 1, \"Water\")\n\t\twait\n\tDeath:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItemEx(\"TimedC4ArmedBlue\", 0,0,0, 0,0,0, 0, SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION)\n\t\tTNT1 A 4\n\t\tstop\n\tWater:\n\t\tTC4T B 35 A_PlaySound(\"c4/disarm\")\n\t\tTC4T B 1 A_Fadeout(0.1)\n\t\tWait\n\t}\n}\n\nactor TimedC4Armed\n{\n\t+NOEXTREMEDEATH\n\t+NOGRAVITY\n\t+SHOOTABLE\n\t+THRUGHOST\n\t+NOBLOOD\n\t+NOTARGETSWITCH\n\tRadius 6\n\tHeight 8\n\tScale 0.114\n\tHealth 500\n\tMass 0x7FFFFFFF\n\tDamageType \"Explosion\"\n\tDamageFactor \"Normal\", 0.0\n\tDamageFactor \"Fist\", 0.0\n\tDamageFactor \"Fire\", 0.0\n\tDamageFactor \"Bullet\", 0.0\n\tDamageFactor \"Rifle\", 0.0\n\tDamageFactor \"Explosion\", 0.0\n\tDamageFactor \"Terrorist\", 0.0\n\tDamageFactor \"Suicide\", 0.0\n\tDamageFactor \"Chemical\", 0.0\n\tDamageFactor \"Normal\", 0.0\n\tDamageFactor \"Energy\", 0.0\n\tDamageFactor \"Repair\", 0.0\n\tDamageFactor \"ChemicalSpecial\", 0.0\n\tDamageFactor \"AntiArmor\", 0.0\n\tDamageFactor \"Time\", 0.0\n\tDamageFactor \"Disarm\", 1.2\n\tDamageFactor \"MassDriver\", 0.0\n\tDamageFactor \"Mine\", 0.0\n\tDamageFactor \"Mechstomp\", 0.0\n\tDamageFactor \"Monster\", 0.0\n\tDamageFactor \"Deconstruction\", 0.0\n\tDamageFactor \"Flash\", 0.0\n\tobituary \"%o was too close %k Timed C4.\"\n\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_JumpIf (waterlevel > 1, \"Death.Disarm\")\n\t\tTNT1 A 0 A_JumpIf (!ACS_ExecuteWithResult(631, 1), \"Death.Disarm\")\n\t\tTC4T R 35 Thing_SetSpecial (0, 226, 328, 0, 1)\n\t\tgoto Idle\n\tIdle:\n\t\t\"----\" RRRRRRRRRRRRRRR 35 A_PlaySound (\"c4/beep2\")\n\t\t\"----\" R 0 A_JumpIf (waterlevel > 1, \"Death.Disarm\")\n\t\t\"----\" RRRRRRRRRRRRR 35 A_PlaySound (\"c4/beep2\")\n\t\t\"----\" R 0 A_PlaySound (\"c4/detonate\", CHAN_WEAPON)\n\t\t\"----\" R 50 A_PlaySound (\"c4/detonate\")\n\t\t//\"----\" R 0 A_Die\n\tDeath:\n\t\tTNT1 A 0 A_NoBlocking\n\t\tTNT1 A 0 A_SpawnItemEx (\"ExplosionMainLarge\")\n\t\tTNT1 A 0 A_PlaySound (\"weapons/rocklx\")\n\t\tTNT1 A 0 A_PlaySound (\"weapons/rocklx\", CHAN_WEAPON)\n\t\tTNT1 AAAA 0 A_SpawnItemEx (\"FlameWallDecay\", random(-48,48), random(-48,48), 4, 0, 0, 0, 0, SXF_TRANSFERPOINTERS) // [TT] No more team damage from C4 flames\n\n\t\tTNT1 A 0 bright A_Explode (400, 256)\n\t\tTNT1 A 0 bright A_Explode (700, 64)\n\t\tTNT1 A 0 bright A_Explode (700, 128)\n\t\tTNT1 A 0 bright A_Explode (700, 256)\n\n\t\tTNT1 AAAAAAAAAAAAAAAAAAAA 0 bright A_Explode (5, 16)\n\t\t/*TNT1 A 0 A_PlaySound(\"fire/fire\", 4, 1, TRUE) // [TT] Sound fixer\n\t\tTNT1 A 0 A_PlaySound(\"fire/fire\", 5, 1, TRUE) // [TT] Sound fixer\n\t\tTNT1 A 0 A_PlaySound(\"fire/fire\", 6, 1, TRUE) // [TT] Sound fixer\n\t\tTNT1 A 0 A_PlaySound(\"fire/fire\", 7, 1, TRUE) // [TT] Sound fixer\n\t\tTNT1 A 0 a_changeflag(\"NODAMAGETHRUST\", TRUE)\n\t\t//TNT1 AAAAAAAAAAAAAAAAAAAAAA 16 A_Explode (20, 200, 1) // [TT] Damage comes from the c4 itself now, not the flame class\n\t\tTNT1 A 0 a_stopsound(4)\n\t\tTNT1 A 0 a_stopsound(5)\n\t\tTNT1 A 0 a_stopsound(6)\n\t\tTNT1 A 0 a_stopsound(7)*/\n\t\tstop\n\tDeath.Disarm:\n\t\tTC4T R 35 A_PlaySound (\"c4/disarm\")\n\t\tTC4T R 1 A_Fadeout (0.1)\n\t\twait\n\t}\n}\n\nactor TimedC4ArmedBlue : TimedC4Armed\n{\n\tstates\n\t{\n\t\tSpawn:\n\t\t\tTC4T BB 0 A_JumpIf (waterlevel > 1, \"Death.Disarm\")\n\t\t\tTNT1 A 0 A_JumpIf (!ACS_ExecuteWithResult(631, 0), \"Death.Disarm\")\n\t\t\tTC4T B 35 Thing_SetSpecial (0, 226, 328, 0, 0)\n\t\t\tgoto Idle\n\t\tDeath.Disarm:\n\t\t\tTC4T B 35 A_PlaySound (\"c4/disarm\")\n\t\t\tTC4T B 1 A_Fadeout (0.1)\n\t\t\twait\n\t}\n}\n\nactor TimedC4Count : Inventory {inventory.maxamount 4}\nactor EnhancedTimedC4 : Inventory {}\n\nactor TimedC4ThrownE : TimedC4Thrown {\n\tTranslation \"1:32=16:32\", \"112:127=224:246\"\n\tstates {\n\tDeath:\n\t\tTC4T A 0\n\t\tTC4T A 0 A_SpawnItemEx (\"TimedC4ArmedE\", 0,0,0, 0,0,0, 0,\n\t\t\tSXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION)\n\t\tTNT1 A 4 bright\n\t\tstop\n\t}\n}\n\nactor TimedC4ArmedE : TimedC4Armed\n{\n\tHealth 700\n\n\tStates\n\t{\n\t\tDeath:\n\t\t\tTNT1 A 0 A_NoBlocking\n\t\t\tTNT1 A 0 A_SpawnItemEx (\"ExplosionMainLarge\")\n\t\t\tTNT1 A 0 A_PlaySound (\"weapons/rocklx\")\n\t\t\tTNT1 A 0 A_PlaySound (\"weapons/rocklx\", CHAN_WEAPON)\n\t\t\tTNT1 AAAA 0 A_SpawnItemEx (\"FlameWallDecay\", random(-48,48), random(-48,48), 4, 0, 0, 0, 0, SXF_TRANSFERPOINTERS) // [TT] No more team damage from C4 flames\n\n\t\t\tTNT1 A 0 bright A_Explode (500, 256)\n\t\t\tTNT1 A 0 bright A_Explode (800, 64)\n\t\t\tTNT1 A 0 bright A_Explode (800, 128)\n\t\t\tTNT1 A 0 bright A_Explode (800, 256)\n\n\t\t\tTNT1 AAAAAAAAAAAAAAAAAAAA 0 bright A_Explode (5, 16)\n\t\t\tStop\n\t}\n}\n\nactor TimedC4ThrownEBlue : TimedC4ThrownBlue {\n\tTranslation \"1:39=16:39\", \"112:127=192:207\"\n\tStates {\n\tDeath:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItemEx (\"TimedC4ArmedEBlue\", 0,0,0, 0,0,0, 0,\n\t\t\tSXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION)\n\t\tTNT1 A 4\n\t\tstop\n\t}\n}\n\nactor TimedC4ArmedEBlue : TimedC4ArmedBlue\n{\n\tHealth 700\n\n\tStates\n\t{\n\t\tDeath:\n\t\t\tTNT1 A 0 A_NoBlocking\n\t\t\tTNT1 A 0 A_SpawnItemEx (\"ExplosionMainLarge\")\n\t\t\tTNT1 A 0 A_PlaySound (\"weapons/rocklx\")\n\t\t\tTNT1 A 0 A_PlaySound (\"weapons/rocklx\", CHAN_WEAPON)\n\t\t\tTNT1 AAAA 0 A_SpawnItemEx (\"FlameWallDecay\", random(-48,48), random(-48,48), 4, 0, 0, 0, 0, SXF_TRANSFERPOINTERS) // [TT] No more team damage from C4 flames\n\n\t\t\tTNT1 A 0 bright A_Explode (500, 256)\n\t\t\tTNT1 A 0 bright A_Explode (800, 64)\n\t\t\tTNT1 A 0 bright A_Explode (800, 128)\n\t\t\tTNT1 A 0 bright A_Explode (800, 256)\n\n\t\t\tTNT1 AAAAAAAAAAAAAAAAAAAA 0 bright A_Explode (5, 16)\n\t\t\tStop\n\t}\n}"
},
{
"source": "pk3",
"name": "Actors/mechs/mechbase.txt",
"contents": "// Actors common to all mechs\nactor MechPlayer_Base : PlayerPawn {\n\tdamagefactor \"Normal\", 0.5\n\tdamagefactor \"Fist\", 0.35\n\tdamagefactor \"Bullet\", 0.8\n\tdamagefactor \"Rifle\", 0.8\n\tdamagefactor \"Explosion\", 0.75\n\tdamagefactor \"Mine\", 1.25\n\tdamagefactor \"Fire\", 1.25\n\tdamagefactor \"Chemical\", 1.75\n\tdamagefactor \"ChemicalSpecial\", 0.0\n\tdamagefactor \"Energy\", 1.0\n\tdamagefactor \"AntiArmor\", 2.0\n\tdamagefactor \"Time\", 1.0\n\tdamagefactor \"Disarm\", 0.0\n\tdamagefactor \"Deconstruction\", 0.0\n\tdamagefactor \"MassDriver\", 0.9\n\tdamagefactor \"Mechstomp\", 0.0\n\tdamagefactor \"Monster\", 1.0\n\tdamagefactor \"Falling\", 12.0\n\tmaxstepheight 40\n\tplayer.jumpz 0\n\tplayer.damagescreencolor \"00 00 00\"\n\tplayer.soundclass \"mech\"\n\tpainchance 0\n\tplayer.colorrange 112, 127\n\tmass 0x7FFFFFFF\n\t-TELESTOMP\n\t-NOBLOCKMONST\n\t+NOSKIN\n\tbloodtype \"HHMetalHit\"\n\tbloodcolor \"White\"\n}\n\nactor MechDeathJunk {\n\tPROJECTILE\n\t-RANDOMIZE\n\t-NOGRAVITY\n\tRadius 11\n\tHeight 8\n\tSpeed 1\n\tDamage (15)\n\tGravity 0.3\n\tScale 0.03\n\tDamagetype \"MassDriver\"\n\tObituary \"$OB_MECHJUNK\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 6\n\t\tTNT1 A 2 A_SpawnItemEx(\"PulseBallSmokePuff\", 0, 0, 0, 0, 0, 1)\n\t\twait\n\tDeath:\n\t\tTNT1 A 0 A_PlaySound (\"mech/explode/junk\")\n\t\tTNT1 A 0 A_Explode (90, 128, 1)\n\t\tTNT1 A 0 A_SpawnItemEx (\"ExplosionMain\")\n\t\tstop\n\t}\n}\n\nactor MechStepDamageWeak {\n\tRenderStyle None\n\t+RANDOMIZE\n\t+NOCLIP\n\t+NODAMAGETHRUST\n\tPROJECTILE\n\tSpeed 1\n\tDamage 0\n\tScale 0.7\n\tdamagetype \"MechStomp\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tROB1 D 0 Radius_Quake(2,8,0,2,0)\n\t\tPUFF A 0 A_SpawnItemEx(\"StepSound\", 0, 0, 0, 0, 0, 0, 0, 128, 0)\n\t\tTNT1 A 10 bright A_Explode(72,128,0)\n\t\tstop\n\t}\n}\n\nactor MechStepDamageStrong : MechStepDamageWeak {\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tROB1 D 0 Radius_Quake(3,10,0,4,0)\n\t\tPUFF A 0 A_SpawnItemEx(\"StepSound\", 0, 0, 0, 0, 0, 0, 0, 128, 0)\n\t\tTNT1 A 10 bright A_Explode(256,128,0)\n\t\tstop\n\t}\n}\n\nactor MechStepJuggernaut : MechStepDamageWeak {\n\t+EXTREMEDEATH\n\tdamagetype \"MechStomp\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_PlaySound (\"mech/step\", 5)\n\t\tTNT1 A 0 Radius_Quake (3, 10, 0, 4, 0)\n\t\tTNT1 A 10 bright A_Explode (384, 192, 0)\n\t\tstop\n\t}\n}\n\nactor MechStepDamageOrca : MechStepDamageWeak {\n\t-TELESTOMP\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 10 bright A_Explode(60,64,0)\n\t\tstop\n\t}\n}\nactor StepSound {\n\t+CLIENTSIDEONLY\n\t-TELESTOMP\n\tradius 1\n\theight 1\n\t+noclip\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 1 A_PlaySound(\"mech/step\")\n\t\tstop\n\t}\n}\n\nactor MechReloading : Inventory {inventory.maxamount 20}\n\nactor MechAmmoStuffSmall : CustomInventory {\n\t+ALWAYSPICKUP\n\tstates {\n\tPickup:\n\t\tTNT1 A 0 A_GiveInventory(\"MechRocketAmmo\", 2)\n\t\tTNT1 A 0 A_GiveInventory(\"ShortRangeMissileAmmo\", 2)\n\t\tTNT1 A 0 A_GiveInventory(\"Wolverine-MinigunAmmo\", 4)\n\t\tTNT1 A 0 A_GiveInventory(\"Titan-RocketAmmo\", 2)\n\t\tTNT1 A 0 A_GiveInventory(\"Titan-80mmAmmo\", 1)\n\t\tTNT1 A 0 A_GiveInventory(\"Titan-FlamerAmmo\", 4)\n\t\tTNT1 A 0 A_GiveInventory(\"Raven-RocketAmmo\", 2)\n\t\tTNT1 A 0 A_GiveInventory(\"RavenAC2Ammo\", 5)\n\t\tTNT1 A 0 A_GiveInventory(\"Orca-RocketAmmo\", 1)\n\t\tTNT1 A 0 A_GiveInventory(\"Orca-MinigunAmmo\", 4)\n\t\tTNT1 A 0 A_GiveInventory(\"FlamerAmmo\", 5)\n\t\tTNT1 A 0 A_GiveInventory(\"ShortRangeMissileAmmo\", 2)\n\t\tTNT1 A 0 A_GiveInventory(\"ArtilleryShellAmmo\", 2)\n\t\tTNT1 A 0 A_GiveInventory(\"MachineGunAmmo\", 4)\n\t\tTNT1 A 0 A_GiveInventory(\"GeneporiumCharge\", 3)\n\t\tTNT1 A 0 A_GiveInventory(\"NukeAmmo\", 1)\n\t\tTNT1 A 0 A_GiveInventory(\"Tortoise-BlasterAmmo\", 4)\n\t\tTNT1 A 0 A_GiveInventory(\"Tortoise-GrenadeAmmo\", 2)\n\t\tTNT1 A 0 A_GiveInventory(\"MechChemicalAmmo\", 5)\n\t\tstop\n\t}\n}\n\nactor MechEjectButton : CustomInventory {\n\t+INVBAR\n\tinventory.maxamount 1\n\tinventory.icon \"ICO_EJCT\"\n\ttag \"Eject mech\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tstop\n\tUse:\n\t\tTNT1 A 0 ACS_ExecuteAlways (697, 0)\n\t\tstop\n\t}\n}\n\nactor LongRangeMissile {\n\tPROJECTILE\n\t-RANDOMIZE\n\t+ROCKETTRAIL\n\tradius 11\n\theight 8\n\tspeed 45\n\tdamage (30)\n\tdeathsound \"weapons/rocklx\"\n\tdamagetype \"Explosion\"\n\tdecal \"Scorch\"\n\tscale 0.8\n\tStates {\n\tSpawn:\n\t\tMISR AA 0 A_PlaySound (\"ambient/rocket\", CHAN_BODY, 1.0, 1)\n\t\tMISR A -1 bright\n\t\tstop\n\tDeath:\n\t\tTNT1 A 0 A_StopSound (CHAN_BODY)\n\t\tTNT1 A 0 A_Explode (30, 128, 0)\n\t\tTNT1 A 0 A_SpawnItemEx (\"FlameDecay\", random (-16,16), random (-16,16), 4, 0, 0, 0, 0, 0, 160)\n\t\tTNT1 A 5 A_SpawnItemEx (\"ExplosionMain\")\n\t\tstop\n\t}\n}\n\nActor LongRangeMissileBlue : LongRangeMissile\n{\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tMISB AA 0 A_PlaySound (\"ambient/rocket\", CHAN_BODY, 1.0, 1)\n\t\t\tMISB A -1 bright\n\t\t\tstop\n\t}\n}\n\n// Ammo types\nactor ShortRangeMissileAmmo : Ammo {\n\tinventory.amount 0\n\tinventory.maxamount 150\n\tammo.backpackamount 10\n\tammo.backpackmaxamount 150\n}\n\nactor MechExplosionSmall {\n\tObituary \"$OB_MECHEXPLOSION\"\n\tDamageType \"Monster\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_PlaySound (\"mech/explode/medium1\", 1)\n\t\tTNT1 A 0 A_PlaySound (\"mech/explode/medium2\", 2)\n\t\tTNT1 A 0 A_PlaySound (\"mech/explode/medium1\", 3, 0.5)\n\t\tTNT1 A 0 A_PlaySound (\"mech/explode/medium2\", 4, 0.5)\n\t\tTNT1 A 0 A_Explode (50, 512)\n\t\tTNT1 A 0 A_Explode (350, 128)\n\t\tTNT1 A 0 A_Explode (350, 256)\n\t\tTNT1 AAAAA 0 A_SpawnItemEx(\"MechDeathJunk\", 0, 0, random(64,120), random(-5,5), random(-5,5), random(9,14), 0, 0, 64)\n\t\tTNT1 A 8 A_SpawnItemEx (\"ExplosionMainLarge\", 0, 0, 0, 0, 0, 0, 0, SXF_SETMASTER) // [TT] No teamdamage\n\t\tTNT1 A 8 A_SpawnItemEx (\"ExplosionMainLarge\", 12, 16, 64, 0, 0, 0, 0, SXF_SETMASTER)\n\t\tTNT1 A 8 A_SpawnItemEx (\"ExplosionMainLarge\", 14, 32, 96, 0, 0, 0, 0, SXF_SETMASTER)\n\t\tTNT1 A 8 A_SpawnItemEx (\"ExplosionMainLarge\", 26, 48, 128, 0, 0, 0, 0, SXF_SETMASTER)\n\t\tTNT1 A 5\n\t\tStop\n\t}\n}\n\nactor MechExplosionLarge {\n\tObituary \"$OB_MECHEXPLOSION\"\n\tdamagetype \"Monster\"\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_PlaySound (\"mech/explode/large1\", 1)\n\t\tTNT1 A 0 A_PlaySound (\"mech/explode/large2\", 2)\n\t\tTNT1 A 0 A_PlaySound (\"mech/explode/large1\", 3, 0.5)\n\t\tTNT1 A 0 A_PlaySound (\"mech/explode/large2\", 4, 0.5)\n\t\tTNT1 A 0 A_Explode (100, 512)\n\t\tTNT1 A 0 A_Explode (700, 128)\n\t\tTNT1 A 0 A_Explode (700, 256)\n\t\tTNT1 AAAAAAAAAA 0 A_SpawnItemEx (\"MechDeathJunk\", 0, 0, random(64,120),\n\t\t\trandom(-5,5), random(-5,5), random(9,14), 0, 0, 64)\n\t\tTNT1 A 8 A_SpawnItemEx (\"ExplosionMainLarge\")\n\t\tTNT1 A 8 A_SpawnItemEx (\"ExplosionMainLarge\", 12, 16, 64)\n\t\tTNT1 A 8 A_SpawnItemEx (\"ExplosionMainLarge\", 14, 32, 96)\n\t\tTNT1 A 8 A_SpawnItemEx (\"ExplosionMainLarge\", 26, 48, 128)\n\t\tTNT1 A 8 A_SpawnItemEx (\"ExplosionMainLarge\", 38, 72, 160)\n\t\tTNT1 A 8 A_SpawnItemEx (\"ExplosionMainLarge\", 50, 96, 192)\n\t\tStop\n\t}\n}\n\nActor warFactoryHangerClear : CustomInventory\n{\n\t+INVENTORY.AUTOACTIVATE\n\n\tInventory.MaxAmount 1\n\n\tStates\n\t{\n\t\tUse:\n\t\tPickup:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 ACS_NamedExecuteAlways(\"\", 0, 0, 0, 0)\n\t\t\tStop\n\t}\n}\n\n// [JD] Placing this in a map will only allow players to purchase light mechs.\nActor CONFIG_LightMechsOnly 30001\n{\n\t+NOBLOCKMAP\n\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tTNT1 A -1\n\t\t\tStop\n\t}\n}"
},
{
"source": "pk3",
"name": "Actors/objects/caches.txt",
"contents": "// Caches\nactor CacheBase : SwitchableDecoration {\n\t-SOLID +SHOOTABLE\n\t+NOBLOOD +ACTIVATEMCROSS\n\t+DONTGIB +NOICEDEATH\n\t+CANPASS +NOGRAVITY\n\tradius 8\n\theight 64\n\thealth 300\n\trenderstyle Translucent\n\talpha 0.0\n\tscale 0.65\n\tmass 0x7FFFFFFF\n\tDamageFactor \"Normal\", 0.15\n\tDamageFactor \"Explosion\", 0.75\n\tdamagefactor \"Disarm\", 0.0\n\tDamageFactor \"PDTBFG\", 0.0\n\ttag \"Cache\"\n\tstates {\n\tSpawn:\n\t\tCACH AA 0 A_CheckSight(\"NoWayDude\")\n\t\tCACH AAAAAAAAAA 3 A_FadeIn(0.1)\n\t\tCACH A 0 A_SetTranslucent(1.0,0)\n\t\tCACH A 69 A_Gravity\n\tActive:\n\t\tCACH A 0 A_SpawnItemEx(\"MedicalCacheFlare\",0,0,64,0,0,0,128,0)\n\t\tCACH A 35 A_PlaySound(\"misc/health_pkup\")\n\t\tgoto Working\n\tWorking:\n\t\tCACH A 35 A_SpawnItemEx(\"MedicalCacheFlare\",0,0,64,0,0,0,128,0)\n\t\tloop\n\tInactive:\n\t\tCACH A -1\n\t\tstop\n\tDeath:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_NoBlocking\n\t\tTNT1 A 0 A_SpawnItemEx(\"ExplosionMain\", 0, 0, 32, 0, 0, 0, 0, 128, 0)\n\t\tTNT1 A 0 A_PlaySound(\"weapons/rocklx\")\n\t\tTNT1 A 0 bright A_Explode(64,128)\n\t\tTNT1 A 4 bright\n\t\tstop\n\tNoWayDude:\n\tDeath.Deconstruction:\n\t\t// bai bai cache\n\t\t\"----\" A 2 A_PlaySound (\"utility/deconstruct\")\n\t\t\"----\" AAAAAAAAAA 2 A_Fadeout(0.1)\n\t\tstop\n\t}\n}\n\nactor MedicalCache : CacheBase 21416 {\n\t//$Category Objects\n\ttag \"Medical Cache\"\n\tHealth 300\n\tstates {\n\tSpawn:\n\t\tCACH AA 0 A_CheckSight(\"NoWayDude\")\n\t\tCACH AAAAAAAAAA 3 A_FadeIn(0.1)\n\t\tCACH A 0 A_SetTranslucent(1.0,0)\n\t\tCACH A 69 A_Gravity\n\t\tCACH A 0 A_RadiusThrust (3000, 9, 1)\n\tActive:\n\t\tCACH A 0 A_SpawnItemEx(\"MedicalCacheFlare\",0,0,64,0,0,0,128,0)\n\t\tCACH A 35 A_PlaySound(\"misc/health_pkup\")\n\t\tgoto Working\n\tWorking:\n\t\tCACH A 35 A_SpawnItemEx(\"MedicalCacheFlare\",0,0,64,0,0,0,128,0)\n\t\tCACH A 0 A_SpawnItemEx(\"MedicalCacheHealth\",64,0,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"MedicalCacheHealth\",-64,0,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"MedicalCacheHealth\",0,64,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"MedicalCacheHealth\",0,-64,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"MedicalCacheHealth\",45,-45,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"MedicalCacheHealth\",-45,-45,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"MedicalCacheHealth\",-45,45,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"MedicalCacheHealth\",45,45,0,0,0,0,0,32,0)\n\t\tCACH AAAA 35 A_SpawnItemEx(\"MedicalCacheFlare\",0,0,64,0,0,0,128,0)\n\t\tloop\n\t}\n}\n\nactor MedicalCacheHealth : Stimpack {\n\tStates {\n\tSpawn:\n\t\tSTIM AAAAAAA 35\n\t\tSTIM A 1\n\t\tStop\n\t}\n}\n\nactor AmmoCache : CacheBase 21417 {\n\t//$Category Objects\n\ttag \"Ammo Cache\"\n\tHealth 400\n\tStates {\n\tSpawn:\n\t\tCACH AA 0 A_CheckSight(\"NoWayDude\")\n\t\tCACH AAAAAAAAAA 3 A_FadeIn(0.1)\n\t\tCACH A 0 A_SetTranslucent(1.0,0)\n\t\tCACH A 69 A_Gravity\n\tActive:\n\t\tCACH A 0 A_SpawnItemEx(\"AmmoCacheFlare\",0,0,64,0,0,0,128,0)\n\t\tCACH A 35 A_PlaySound(\"misc/i_pkup\")\n\t\tgoto Working\n\tWorking:\n\t\tCACH A 35 A_SpawnItemEx(\"AmmoCacheFlare\",0,0,64,0,0,0,128,0)\n\t\tCACH A 0 A_SpawnItemEx(\"AmmoCachePack\",64,0,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"AmmoCachePack\",-64,0,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"AmmoCachePack\",0,64,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"AmmoCachePack\",0,-64,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"AmmoCachePack\",45,-45,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"AmmoCachePack\",-45,-45,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"AmmoCachePack\",-45,45,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"AmmoCachePack\",45,45,0,0,0,0,0,32,0)\n\t\tCACH AAAAAA 35 A_SpawnItemEx(\"AmmoCacheFlare\",0,0,64,0,0,0,128,0)\n\t\tloop\n\t}\n}\n\nactor AmmoCachePack : AmmoPack {\n\tinventory.pickupmessage \"Picked up an ammo pack.\"\n\tstates {\n\tSpawn:\n\t\tBKPK AAAAAAA 35\n\t\tBKPK A 1\n\t\tstop\n\tPickup:\n\t\tTNT1 A 0 A_GiveInventory (\"BulletMag\", 25)\n\t\tTNT1 A 0 A_GiveInventory (\"NewShell\", 10)\n\t\tTNT1 A 0 A_GiveInventory (\"Missile\", 3)\n\t\tTNT1 A 0 A_GiveInventory (\"NewCell\", 15)\n\t\tTNT1 A 0 A_GiveInventory (\"DemonAmmo\", 15)\n\t\tTNT1 A 0 A_GiveInventory (\"HandGrenadeAmmo\", 1)\n\t\tstop\n\t}\n}\n\nactor SuperCache : CacheBase {\n\thealth 800\n\tstates {\n\tSpawn:\n\t\tCACH AA 0 A_CheckSight(\"NoWayDude\")\n\t\tCACH AAAAAAAAAA 3 A_FadeIn(0.1)\n\t\tCACH A 0 A_SetTranslucent(1.0,0)\n\t\tCACH A 69 A_Gravity\n\tActive:\n\t\tCACH A 0 A_SpawnItemEx(\"SuperCacheFlare\",0,0,64,0,0,0,128,0)\n\t\tCACH A 0 A_PlayWeaponSound(\"misc/health_pkup\")\n\t\tCACH A 35 A_PlaySound(\"misc/i_pkup\")\n\t\tgoto Working\n\tWorking:\n\t\tCACH A 35 A_SpawnItemEx(\"SuperCacheFlare\",0,0,64,0,0,0,128,0)\n\t\tCACH A 0 A_SpawnItemEx(\"AmmoCachePack\",64,0,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"AmmoCachePack\",-64,0,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"AmmoCachePack\",0,64,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"AmmoCachePack\",0,-64,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"MedicalCacheHealth\",45,-45,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"MedicalCacheHealth\",-45,-45,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"MedicalCacheHealth\",-45,45,0,0,0,0,0,32,0)\n\t\tCACH A 0 A_SpawnItemEx(\"MedicalCacheHealth\",45,45,0,0,0,0,0,32,0)\n\t\tCACH AAAAAA 35 A_SpawnItemEx(\"SuperCacheFlare\",0,0,64,0,0,0,128,0)\n\t\tloop\n\t}\n}\n\nactor SuperCacheMapSpawned : SuperCache 21418 {\n\t//$Category Objects\n\ttag \"Super Cache\"\n\t+SOLID\n\t-NOCLIP\n\t-NOGRAVITY\n\talpha 1.0\n\tstates {\n\tSpawn:\n\t\tCACH A 0\n\t\tgoto Working\n\t}\n}\n\nactor MedicalCacheFlare {\n\t+RANDOMIZE +NOCLIP\n\t+NOGRAVITY +BRIGHT\n\t+NOINTERACTION +CLIENTSIDEONLY\n\t+FORCEXYBILLBOARD\n\trenderstyle Add\n\talpha 0.5\n\tscale 0.20\n\tstates {\n\tSpawn:\n\t\tCACH B 1\n\tIdle:\n\t\t\"----\" AAAAAAAAAA 1 A_FadeIn (0.05)\n\t\t\"----\" AAAAAAAAAA 1 A_FadeOut (0.05)\n\t\t\"----\" A 15\n\t\tstop\n\t}\n}\n\nactor AmmoCacheFlare : MedicalCacheFlare {\n\tstates {\n\tSpawn:\n\t\tPPCX A 1\n\t\tgoto Idle\n\t}\n}\n\nactor SuperCacheFlare : MedicalCacheFlare {\n\tstates {\n\tSpawn:\n\t\tCACH C 1\n\t\tgoto Idle\n\t}\n}\n\nactor MiniRefCacheFlare : MedicalCacheFlare {\n\tstates {\n\tSpawn:\n\t\tCACH D 1\n\t\tgoto Idle\n\t}\n}"
},
{
"source": "pk3",
"name": "Actors/objects/minirefinery.txt",
"contents": "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Mini-Refinery\n *\n * The utility-built mini-refinery is a credit flow booster. Must be built into\n * a tiberium field, in which it will start to refine the crystals there and\n * turning them into cash for you and your friends. A good thing to have around\n * when the main Refinery is destroyed. Credit flow is boosted by 75% when\n * the mini-refinery is active.\n */\n\nactor Utility_MiniRefCacheRed {\n\t+SHOOTABLE\n\t+NOBLOOD\n\t+ACTIVATEMCROSS\n\t+DONTGIB\n\t+NOICEDEATH\n\t+NOGRAVITY\n\t+ISMONSTER\n\t+QUICKTORETALIATE\n\tObituary \"%o ventured too close to the \\cARed Mini-Refinery\\c-.\"\n\tDesignatedTeam 1\t\t// [SG] this was missing!\n\tRadius 32\n\tHeight 48\n\tHealth 5850\n\tRenderStyle Translucent\n\tAlpha 0.0\n\tScale 0.1875\n\tMass 0x7FFFFFFF\n\tPainChance 255\n\tDamageType ChemicalSpecial\n\tDamageFactor \"Normal\", 0.15\n\tDamageFactor \"Fist\", 0.2\n\tDamageFactor \"Bullet\", 0.5\n\tDamageFactor \"Rifle\", 0.5\n\tDamageFactor \"Explosion\", 0.75\n\tDamageFactor \"Fire\", 0.6\n\tDamageFactor \"Chemical\", 0.0\n\tDamageFactor \"Energy\", 1.0\n\tDamageFactor \"AntiArmor\", 0.25\n\tDamageFactor \"Time\", 1.0\n\tDamageFactor \"Disarm\", 0.0\n\tDamageFactor \"Superweapon\", 1.0\n\tDamageFactor \"MassDriver\", 0.75\n\tDamageFactor \"ChemicalSpecial\", 0.0\n\tDamageFactor \"Deconstruction\",\t1.0\n\tDamageFactor \"Mechstomp\", 0.0\n\tDamageFactor \"Monster\", 0.0\n\tDamageFactor \"PDTBFG\", 0.0\n\tStates {\n\tSpawn:\n\t\tMREF AA 0 Thing_ChangeTID(0,900)\n\t\tMREF AAAAAAAAAA 3 A_FadeIn(0.1)\n\t\tMREF A 0 A_SetTranslucent(1.0,0)\n\t\tMREF A -1 A_Gravity // wait until the script approves the cache.\n\t\tstop\n\tApproved:\n\t\tMREF A 5 A_RadiusThrust (4000, 40, 1)\n\t\tMREF A 0 A_ChangeFlag(\"NOCLIP\", 0)\n\t\tMREF A 0 A_SetSolid\n\t\tMREF A 0 A_SpawnItemEx(\"MiniRefCacheFlare\",0,0,48,0,0,0,128,0)\n\t\tMREF A 35 A_PlaySound(\"misc/i_pkup\")\n\t\tMREF A 0 A_ChangeFlag(\"FRIENDLY\",0)\n\t\tgoto Working\n\tWorking:\n\t\tMREF A 35 A_SpawnItemEx(\"MiniRefCacheFlare\",0,0,48,0,0,0,128,0)\n\t\tloop\n\tPain:\n\t\tMREF A 0 ACS_ExecuteAlways (930, 0, BUILDING_MINIREF, TEAM_RED)\n\t\tMREF A 1 A_Stop\n\t\tgoto Working\n\tDeath:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_NoBlocking\n\t\tTNT1 A 0 A_Explode (256, 512)\n\t\tTNT1 A 0 A_PlaySound (\"weapons/rocklx\", CHAN_ITEM)\n\t\tTNT1 A 0 A_SpawnItemEx (\"ExplosionMainLarge\", 0, 0, 32, 0, 0, 0, 0, 128)\n\t\tTNT1 AAAA 0 A_SpawnItemEx (\"AnthraxDecay\", random(-48,48), random(-48,48), 4)\n\t\tTNT1 A 4 bright\n\t\tstop\n\tDisapproved:\n\tDeath.Deconstruction:\n\t\t\"----\" A 2 A_PlaySound (\"utility/deconstruct\")\n\t\t\"----\" AAAAAAAAAA 2 A_Fadeout(0.1)\n\t\tstop\n\t}\n}\n\nACTOR Utility_MiniRefCacheBlue : Utility_MiniRefCacheRed {\n\tobituary \"%o ventured too close to the \\cNBlue Mini-Refinery\\c-.\"\n\tDesignatedTeam 0\n\tstates {\n\tSpawn:\n\t\tMREF AA 0 Thing_ChangeTID (0, 901)\n\t\tMREF AAAAAAAAAA 3 A_FadeIn (0.1)\n\t\tMREF A 0 A_SetTranslucent (1.0, 0)\n\t\tMREF A -1 A_Gravity // wait until the script approves the cache.\n\t\tstop\n\tPain:\n\t\tMREF A 0 ACS_ExecuteAlways (930, 0, BUILDING_MINIREF, TEAM_BLUE)\n\t\tMREF A 1 A_Stop\n\t\tgoto Working\n\t}\n}"
},
{
"source": "pk3",
"name": "Actors/objects/regens.txt",
"contents": "// Regens\nactor Utility_GlobalMedicCacheRed {\n\ttag \"Red Health Regenerator\"\n\t+SOLID +SHOOTABLE\n\t+NOBLOOD +DONTGIB\n\t+NOICEDEATH +NOGRAVITY\n\t+ISMONSTER +QUICKTORETALIATE\n\tDesignatedTeam 1\n\tDamageFactor \"Normal\", 0.15\n\tdamagefactor \"Fist\", 0.2\n\tdamagefactor \"Bullet\", 0.5\n\tdamagefactor \"Rifle\", 0.5\n\tdamagefactor \"Explosion\", 0.75\n\tdamagefactor \"Fire\", 0.6\n\tdamagefactor \"Chemical\", 0.75\n\tdamagefactor \"Energy\", 1.0\n\tdamagefactor \"AntiArmor\", 0.25\n\tdamagefactor \"Time\", 1.0\n\tdamagefactor \"Disarm\", 0.0\n\tdamagefactor \"Superweapon\", 0.0\n\tdamagefactor \"MassDriver\", 0.75\n\tdamagefactor \"Mechstomp\", 0.0\n\tdamagefactor \"Monster\", 0.0\n\tDamageFactor \"PDTBFG\", 0.0\n\tradius 8\n\theight 64\n\tspeed 100 // used for base hud!\n\thealth 9000\n\trenderstyle Translucent\n\talpha 0.0\n\tscale 0.65\n\tmass 0x7FFFFFFF\n\tpainchance 255\n\n\tstates {\n\tSpawn:\n\t\tCACH AA 0 Thing_ChangeTID(0, 902)\n\t\tCACH AAAAAAAAAA 3 A_FadeIn(0.1)\n\t\tCACH A 0 A_SetTranslucent(1.0,0)\n\t\tCACH A -1 A_Gravity // wait until the script approves the cache.\n\t\tstop\n\tApproved:\n\t\tCACH A 0 A_ChangeFlag(\"NOCLIP\", 0)\n\t\tCACH A 0 A_SetSolid\n\t\tCACH A 0 A_SpawnItemEx(\"MedicalCacheFlare\",0,0,48,0,0,0,128,0)\n\t\tCACH A 35 A_PlaySound(\"misc/i_pkup\")\n\t\tCACH A 0 A_ChangeFlag(\"FRIENDLY\",0)\n\t\tgoto Working\n\tWorking:\n\t\tCACH A 35 A_SpawnItemEx(\"MedicalCacheFlare\",0,0,64,0,0,0,128,0)\n\t\tloop\n\tPain:\n\t\tCACH A 0 ACS_ExecuteAlways (930, 0, BUILDING_HEALTHREGEN, TEAM_RED)\n\t\tCACH A 1 A_Stop\n\t\tgoto Working\n\tDeath:\n\t\tTC4T A 0\n\t\tTC4T A 0 A_NoBlocking\n\t\tTNT1 A 0 A_SpawnItemEx(\"ExplosionMain\", 0, 0, 32, 0, 0, 0, 0, 128, 0)\n\t\tTC4T A 0 A_PlaySound(\"weapons/rocklx\")\n\t\tTC4T A 0 bright A_Explode(64,128)\n\t\tTNT1 A 4 bright\n\t\tstop\n\tDisapproved:\n\tDeath.Deconstruction:\n\t\t\"----\" A 2 A_PlaySound (\"utility/deconstruct\")\n\t\t\"----\" AAAAAAAAAA 2 A_Fadeout(0.1)\n\t\tstop\n\t}\n}\n\nactor Utility_GlobalMedicCacheBlue : Utility_GlobalMedicCacheRed {\n\ttag \"Blue Health Regenerator\"\n\tDesignatedTeam 0\n\tStates {\n\tSpawn:\n\t\tCACH AA 0 Thing_ChangeTID(0, 903)\n\t\tCACH AAAAAAAAAA 3 A_FadeIn(0.1)\n\t\tCACH A 0 A_SetTranslucent(1.0,0)\n\t\tCACH A -1 A_Gravity\n\t\tstop\n\tPain:\n\t\tCACH A 0 ACS_ExecuteAlways (930, 0, BUILDING_HEALTHREGEN, TEAM_BLUE)\n\t\tCACH A 1 A_Stop\n\t\tgoto Working\n\t}\n}\n\nACTOR Utility_GlobalAmmoCacheRed : Utility_GlobalMedicCacheRed {\n\ttag \"Red Ammo Regenerator\"\n\tStates {\n\tSpawn:\n\t\tCACH AA 0 Thing_ChangeTID(0, 904)\n\t\tCACH AAAAAAAAAA 3 A_FadeIn(0.1)\n\t\tCACH A 0 A_SetTranslucent(1.0,0)\n\t\tCACH A -1 A_Gravity // wait until the script approves the cache.\n\t\tstop\n\tApproved:\n\t\tCACH A 0 A_ChangeFlag(\"NOCLIP\", 0)\n\t\tCACH A 0 A_SetSolid\n\t\tCACH A 0 A_SpawnItemEx(\"AmmoCacheFlare\",0,0,48,0,0,0,128,0)\n\t\tCACH A 35 A_PlaySound(\"misc/i_pkup\")\n\t\tCACH A 0 A_ChangeFlag(\"FRIENDLY\",0)\n\t\tgoto Working\n\tWorking:\n\t\tCACH A 35 A_SpawnItemEx(\"AmmoCacheFlare\",0,0,64,0,0,0,128,0)\n\t\tloop\n\tPain:\n\t\tCACH A 0 ACS_ExecuteAlways (930, 0, BUILDING_AMMOREGEN, TEAM_RED)\n\t\tCACH A 1 A_Stop\n\t\tgoto Working\n\t}\n}\n\nACTOR Utility_GlobalAmmoCacheBlue : Utility_GlobalAmmoCacheRed {\n\ttag \"Blue Ammo Regenerator\"\n\tDesignatedTeam 0\n\tStates {\n\tSpawn:\n\t\tCACH AA 0 Thing_ChangeTID(0, 905)\n\t\tCACH AAAAAAAAAA 3 A_FadeIn(0.1)\n\t\tCACH A 0 A_SetTranslucent(1.0,0)\n\t\tCACH A -1 A_Gravity\n\t\tstop\n\tApproved:\n\t\tCACH A 0 A_ChangeFlag(\"NOCLIP\", 0)\n\t\tCACH A 0 A_SetSolid\n\t\tCACH A 0 A_SpawnItemEx(\"AmmoCacheFlare\",0,0,48,0,0,0,128,0)\n\t\tCACH A 35 A_PlaySound(\"misc/i_pkup\")\n\t\tCACH A 0 A_ChangeFlag(\"FRIENDLY\",0)\n\t\tgoto Working\n\tPain:\n\t\tCACH A 0 ACS_ExecuteAlways (930, 0, BUILDING_AMMOREGEN, TEAM_BLUE)\n\t\tCACH A 1 A_Stop\n\t\tgoto Working\n\t}\n}\n\nactor AmmoRegenerationPack : AmmoPack {\n\tstates {\n\tSpawn:\n\t\tTNT1 A 1\n\t\tStop\n\tPickup:\n\t\tTNT1 A 0 A_GiveInventory (\"BulletMag\", 10)\n\t\tTNT1 A 0 A_GiveInventory (\"NewShell\", 5)\n\t\tTNT1 A 0 A_GiveInventory (\"Missile\", 2)\n\t\tTNT1 A 0 A_GiveInventory (\"NewCell\", 10)\n\t\tTNT1 A 0 A_GiveInventory (\"DemonAmmo\", 10)\n\t\tstop\n\t}\n}\n\nactor Utility_PowerGeneratorRed : Utility_GlobalMedicCacheRed {\n\ttag \"Red Power Generator\"\n\tStates {\n\tSpawn:\n\t\tCACH AA 0 Thing_ChangeTID(0, 906)\n\t\tCACH AAAAAAAAAA 3 A_FadeIn(0.1)\n\t\tCACH A 0 A_SetTranslucent(1.0,0)\n\t\tCACH A -1 A_Gravity // wait until the script approves the cache.\n\t\tstop\n\tApproved:\n\t\tCACH A 0 A_ChangeFlag(\"NOCLIP\", 0)\n\t\tCACH A 0 A_SetSolid\n\t\tCACH A 0 A_SpawnItemEx(\"SuperCacheFlare\",0,0,48,0,0,0,128,0)\n\t\tCACH A 35 A_PlaySound(\"turret/sight\")\n\t\tCACH A 0 A_ChangeFlag(\"FRIENDLY\",0)\n\t\tgoto Working\n\tWorking:\n\t\tCACH A 35 A_SpawnItemEx(\"AmmoCacheFlare\",0,0,64,0,0,0,128,0)\n\t\tloop\n\tDeath:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_NoBlocking\n\t\tTNT1 A 0 A_SpawnItemEx (\"ExplosionMain\", 0, 0, 32, 0, 0, 0, 0, 128, 0)\n\t\tTNT1 A 0 ACS_Execute (345, 0, 20)\n\t\tTNT1 A 0 A_PlaySound(\"weapons/rocklx\")\n\t\tTNT1 A 0 bright A_Explode(64,128)\n\t\tTNT1 A 4 bright\n\t\tstop\n\t}\n}\n\nactor Utility_PowerGeneratorBlue : Utility_GlobalMedicCacheBlue {\n\ttag \"Blue Power Generator\"\n\tStates {\n\tSpawn:\n\t\tCACH AA 0 Thing_ChangeTID(0, 907)\n\t\tCACH AAAAAAAAAA 3 A_FadeIn(0.1)\n\t\tCACH A 0 A_SetTranslucent(1.0,0)\n\t\tCACH A -1 A_Gravity // wait until the script approves the cache.\n\t\tstop\n\tApproved:\n\t\tCACH A 0 A_ChangeFlag(\"NOCLIP\", 0)\n\t\tCACH A 0 A_SetSolid\n\t\tCACH A 0 A_SpawnItemEx(\"SuperCacheFlare\",0,0,48,0,0,0,128,0)\n\t\tCACH A 35 A_PlaySound(\"turret/sight\")\n\t\tCACH A 0 A_ChangeFlag(\"FRIENDLY\",0)\n\t\tgoto Working\n\tWorking:\n\t\tCACH A 35 A_SpawnItemEx(\"AmmoCacheFlare\",0,0,64,0,0,0,128,0)\n\t\tloop\n\tDeath:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_NoBlocking\n\t\tTNT1 A 0 A_SpawnItemEx (\"ExplosionMain\", 0, 0, 32, 0, 0, 0, 0, 128, 0)\n\t\tTNT1 A 0 ACS_Execute (345, 0, 20)\n\t\tTNT1 A 0 A_PlaySound(\"weapons/rocklx\")\n\t\tTNT1 A 0 bright A_Explode(64,128)\n\t\tTNT1 A 4 bright\n\t\tstop\n\t}\n}"
},
{
"source": "pk3",
"name": "Actors/objects/repairturret.txt",
"contents": "// Repair Turret\nactor Utility_RepairGunTurretRed : Utility_TurretBase {\n\tobituary \"%o somehow died from repair gun turret.\"\n\thealth 500\n\tgravity 10000\n\tpainchance 50\n\t//seesound \"turret/sight\"\n\tattacksound \"repairgun/fire\"\n\tactivesound \"turret/sight\"\n\t+NOINFIGHTING\n\t+LOOKALLAROUND\n\tstates {\n\tSpawn:\n\t\tCIGN AA 0 A_CheckSight(\"Death.Deconstruction\")\n\t\tCIGN A 2 Thing_SetSpecial (0, 84, 345, 0, TEAM_RED)\n\t\tgoto Idle\n\tIdle:\n\t\tCIGN A 5 A_LookEx (LOF_NOSOUNDCHECK, 0, 256)\n\t\twait\n\tSee:\n\t\tCIGN A 0 A_JumpIf (ACS_ExecuteWithResult (623, 0, TEAM_RED) == false, \"Clear\")\n\t\tCIGN A 1 A_Chase\n\t\twait\n\tClear:\n\t\tCIGN A 10 A_ClearTarget\n\t\tgoto Idle\n\tMissile:\n\t\tCIGN A 0 A_JumpIfInventory (\"SDReplace\", 1, \"NoMoreMrNiceGuy\")\n\t\tCIGN A 35 A_JumpIf (ACS_ExecuteWithResult (623, 0, TEAM_RED) == 1, \"MissileGo\")\n\t\tCIGN A 0 A_SpidRefire\n\t\tloop\n\tMissileGo:\n\t\t// NOTE: actual repairing was done at script 823. This is\n\t\t// only animation + disarming\n\t\tTNT1 A 0\n\t\t//CIGN A 0 A_Jump (128, 1)\n\t\t//CIGN A 0 A_ActiveSound\n\t\tCIGN E 0 A_FaceTarget\n\t\tCIGN E 2 BRIGHT A_CustomBulletAttack (0, 0, 1, 2, \"RepairTurretPuff\")\n\t\tCIGN A 2 A_SpidRefire\n\t\tgoto Missile\n\tPain:\n\t\tCIGN A 3\n\t\tgoto Idle\n\tDeath:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_NoBlocking\n\t\tTNT1 A 0 A_SpawnItemEx (\"ExplosionMain\", 0, 0, 32)\n\t\tTNT1 A 0 A_PlaySound(\"weapons/rocklx\")\n\t\tTNT1 A 4 bright\n\t\tstop\n\tNoMoreMrNiceGuy:\n\t\tTNT1 A 0 A_SpawnItemEx (\"Utility_KlaxonRed\", 0,0,0,0,0,0,0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 5 A_SpawnItemEx (\"TeleportFog\", 0,0,0,0,0,0,0, SXF_NOCHECKPOSITION)\n\t\tstop\n\t}\n}\n\nactor SDReplace : Inventory {}\n\nactor Utility_RepairGunTurretBlue : Utility_RepairGunTurretRed {\n\tstates {\n\tSpawn:\n\t\tCIGN AA 0 A_CheckSight(\"Death.Deconstruction\")\n\t\tCIGN A 2 Thing_SetSpecial (0, 84, 345, 0, TEAM_BLUE)\n\t\tgoto Idle\n\tSee:\n\t\tCIGN A 0 A_JumpIf (ACS_ExecuteWithResult (623, 0, TEAM_BLUE) == false, \"Clear\")\n\t\tCIGN A 1 A_Chase\n\t\twait\n\tMissile:\n\t\tCIGN A 0 A_JumpIfInventory (\"SDReplace\", 1, \"NoMoreMrNiceGuy\")\n\t\tCIGN A 35 A_JumpIf (ACS_ExecuteWithResult (623, 0, TEAM_BLUE) == 1, \"MissileGo\")\n\t\tCIGN A 0 A_SpidRefire\n\t\tloop\n\tMissileGo:\n\t\t// NOTE: actual repairing was done at script 823. This is\n\t\t// only animation + disarming\n\t\tTNT1 A 0\n\t\t//CIGN A 0 A_Jump (128, 1)\n\t\t//CIGN A 0 A_ActiveSound\n\t\tCIGN E 0 A_FaceTarget\n\t\tCIGN E 2 BRIGHT A_CustomBulletAttack (0, 0, 1, 2, \"RepairTurretPuff\")\n\t\tCIGN A 2 A_SpidRefire\n\t\tgoto Missile\n\tNoMoreMrNiceGuy:\n\t\tTNT1 A 0 A_SpawnItemEx (\"Utility_KlaxonBlue\", 0,0,0,0,0,0,0, SXF_NOCHECKPOSITION)\n\t\tTNT1 A 5 A_SpawnItemEx (\"TeleportFog\", 0,0,0,0,0,0,0, SXF_NOCHECKPOSITION)\n\t\tstop\n\t}\n}\n\n/*\nactor RepairTurretSymbol {\n\t+NOINTERACTION\n\t+ISMONSTER\n\trenderstyle add\n\talpha 0.6\n\tscale 0.02\n\tstates {\n\tSpawn:\n\t\tRNCH A -1\n\t\tstop\n\t}\n}\n\nactor RepairTurretError : RepairTurretSymbol {\n\tscale 0.2\n\tstates {\n\tSpawn:\n\t\tWUTH A -1\n\t\tstop\n\t}\n}\n*/\n\n// [Dusk] like RepairDisarmPuff but without the trailing\n// [TT] Removed blank translation.\nactor RepairTurretPuff : DisarmPuff {\n\tstates {\n\tSpawn:\n\t\tCHMX A 0\n\t\tPLCX AA 1 A_Explode (9, 64)\n\t\tPLCX BC 2 bright\n\tMelee:\n\t\tPLCX DEF 2 bright\n\t\tstop\n\t}\n}"
},
{
"source": "pk3",
"name": "Actors/objects/teleporternode.txt",
"contents": "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Teleporter nodes\n *\n * The Utility-built \"Portal\" teleporter node, when built two of, creates\n * a teleporter link. Mechs cannot use this, as can't harvesters. (on the\n * interest of no quick cashing) They take a beating to take down, but have the\n * weakness that enemies can use them as well. The team distinguishing exists\n * only to serve as identification and limits.\n */\n\nactor TeleporterNodeBlue {\n\t+SOLID\n\t+SHOOTABLE\n\t+BUMPSPECIAL\n\t+NOBLOOD\n\t+ISMONSTER\n\n\tradius 16\n\theight 128\n\thealth 3000\n\tpainchance 255\n\tmass 0x7FFFFFF\n\tDamageFactor \"Normal\", 0.15\n\tdamagefactor \"Disarm\", 0.0\n\tdamagefactor \"Fist\", 0.5\n\tdamagefactor \"Mechstomp\", 0.0\n\tdamagefactor \"Explosion\", 0.75\n\tdamagefactor \"MechExplosion\", 2.5\n\tdamagefactor \"Fire\", 0.6\n\tdamagefactor \"Chemical\", 0.6\n\tDamageFactor \"PDTBFG\", 0.0\n\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ACS_ExecuteAlways (SC_TELENODE_TIDREQUEST, 0, TEAM_BLUE)\n\t\tTNT1 A 8 A_CheckSight (\"CantSeeShit\")\n\t\tTNT1 A -1\n\t\tstop\n\tCantSeeShit:\n\t\tTNT1 A 0 A_GiveInventory (\"TeleporterNodeNotInSight\", 1)\n\t\tTNT1 A -1\n\t\tstop\n\tInactive:\n\t\tTNT1 A 0 A_JumpIf (waterlevel >= 2, \"Drown\")\n\t\tTNT1 A 0 A_UnsetSolid\n\t\tTNT1 A 0 A_TakeInventory (\"IsActive\", 1)\n\t\tTNT1 A 35 A_CheckTerrain\n\t\twait\n\tActive:\n\t\tTNT1 A 0 A_GiveInventory (\"IsActive\", 1)\n\t\tTNT1 A 0 A_SetSolid\n\tIdle:\n\t\tTNT1 A 0 A_JumpIf (waterlevel >= 2, \"Drown\")\n\t\tTNT1 A 0 A_JumpIfHealthLower (1500, \"Damaged\")\n\t\tTNT1 A 35 A_CheckTerrain\n\t\tloop\n\tDamaged:\n\t\tTNT1 A 0 A_JumpIf (waterlevel >= 2, \"Drown\")\n\t\tTNT1 AA 17 A_SpawnItemEx (\"TeleporterNodeSpark\", 0, 0, random(16,64), 0, 0, 0, 0, 0, (health / 7) + 30)\n\t\tloop\n\tPain:\n\t\tTNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_PORTAL, TEAM_BLUE)\n\t\tTNT1 A 0 A_JumpIfInventory (\"IsActive\", 1, \"Idle\")\n\t\tgoto Inactive+2\n\tDeath:\n\t\tTNT1 A 1\n\t\tTNT1 A 0 A_PlaySound (\"weapons/rocklx\")\n\t\tTNT1 A 0 A_SpawnItemEx (\"ExplosionMain\")\n\t\tTNT1 A 0 ACS_ExecuteAlways (345, 0, 21, tid)\n\t\tTNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_PORTAL, TEAM_BLUE)\n\t\tTNT1 A 10\n\t\tstop\n\tDisapproved:\n\t\tTNT1 A 20 A_PlaySound (\"misc/nope\")\n\t\tstop\n\tDeath.Deconstruction:\n\t\tTNT1 A 0 A_NoBlocking\n\t\tTNT1 A 0 ACS_ExecuteAlways (345, 0, 21, tid)\n\t\tTNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_PORTAL, TEAM_BLUE)\n\t\tTNT1 A 10 A_PlaySound (\"utility/deconstruct\")\n\t\tstop\n\tDrown:\n\t\tTNT1 A 35 A_PlaySound (\"c4/disarm\")\n\t\tTNT1 A 0 A_Die\n\t\tgoto Death\n\t}\n}\n\n// Red version\nactor TeleporterNodeRed : TeleporterNodeBlue {\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ACS_ExecuteAlways (SC_TELENODE_TIDREQUEST, 0, TEAM_RED)\n\t\tTNT1 A 8 A_CheckSight (\"CantSeeShit\")\n\t\tTNT1 A -1\n\t\tstop\n\tPain:\n\t\tTNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_PORTAL, TEAM_RED)\n\t\tTNT1 A 0 A_JumpIfInventory (\"IsActive\", 1, \"Active\")\n\t\tgoto Inactive+2\n\tDeath:\n\t\tTNT1 A 1\n\t\tTNT1 A 0 A_PlaySound (\"weapons/rocklx\")\n\t\tTNT1 A 0 A_SpawnItemEx (\"ExplosionMain\")\n\t\tTNT1 A 0 ACS_ExecuteAlways (345, 0, 21, tid)\n\t\tTNT1 A 0 ACS_ExecuteAlways (930, 0, BUILDING_PORTAL, TEAM_RED)\n\t\tTNT1 A 10\n\t\tstop\n\t}\n}\n\n// This actor is used to check whether the portal\n// fits in the space it's wanted to be spawned at.\nactor TeleporterNodeCheck {\n\t+SOLID\n\tradius 80\n\theight 128\n\tstates {\n\tSpawn:\n\t\tTNT1 A 5\n\t\tstop\n\t}\n}\n\n// stands.. the thing needs some structure, doesn't it?\nactor TeleporterNodeStand {\n\t-SOLID // [Cyberkill] Why is this solid? Players always get stuck in it after teleporting!\n\tradius 12\n\theight 44\n\tgravity 10000\n\tstates {\n\tSpawn:\n\t\tDGIZ A 0\n\t\tDGIZ A 8 A_CheckSight (\"CantSeeShit\")\n\t\tDGIZ A 0 A_JumpIf (waterlevel >= 1, \"CantSeeShit\")\n\t\tDGIZ A -1\n\t\tstop\n\tCantSeeShit:\n\t\tDGIZ A 0\n\t\tstop\n\tDisapproved:\n\t\t\"----\" A 0 A_NoBlocking\n\t\t\"----\" A 2 A_SetTranslucent (1.0, 1)\n\t\t\"----\" A 2 A_FadeOut\n\t\twait\n\t}\n}\n\n// Decorative spheres that spawn on top of the stands\nactor TeleporterNodeSphereBlue {\n\t+NOINTERACTION +NOGRAVITY\n\t+FORCEXYBILLBOARD\n\trenderstyle add\n\talpha 0.0\n\tscale 0.5\n\tstates {\n\tSpawn:\n\t\tTNT1 A -1\n\t\tstop\n\tInit.Active:\n\t\tGIZB CDABCD 3 bright A_FadeIn (0.1)\n\t\tgoto Active\n\tInit.Inactive:\n\t\tGIZB CCDD 3 A_FadeIn (0.1)\n\t\tgoto Inactive\n\tActive:\n\t\tGIZB A 0 A_SetTranslucent (0.6)\n\t\tGIZB ABCD 3 bright\n\t\tgoto Active+1\n\tInactive:\n\t\tGIZB A 0 A_SetTranslucent (0.4)\n\t\tGIZB ABCD 6\n\t\tgoto Inactive+1\n\t}\n}\n\nactor TeleporterNodeSphereRed : TeleporterNodeSphereBlue {\n\tstates {\n\tInit.Active:\n\t\tGIZR CDABCD 3 bright A_FadeIn (0.1)\n\t\tgoto Active\n\tInit.Inactive:\n\t\tGIZR CCDD 3 A_FadeIn (0.1)\n\t\tgoto Inactive\n\tActive:\n\t\tGIZR A 0 A_SetTranslucent (0.6)\n\t\tGIZR ABCD 3 bright\n\t\tgoto Active+1\n\tInactive:\n\t\tGIZR A 0 A_SetTranslucent (0.4)\n\t\tGIZR ABCD 6\n\t\tgoto Inactive+1\n\t}\n}\n\n// Effect cluster, designates active portal\nactor TeleporterNodeFX {\n\tgravity 10000\n\ttranslation \"144:159=226:242\"\n\tstates {\n\tSpawn:\n\tActive:\n\t\tTNT1 A 5\n\t\tTNT1 A 35 A_SpawnItemEx (\"TeleporterNodeTelefogCluster\", 0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)\n\t\twait\n\tInit.Inactive:\n\tInactive:\n\t\tTNT1 A -1\n\t\tstop\n\t}\n}\n\nactor TeleporterNodeFXBlue : TeleporterNodeFX {\n\ttranslation \"144:159=193:207\"\n}\n\nactor TeleporterNodeTelefogCluster {\n\t+NOINTERACTION\n\t+CLIENTSIDEONLY\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx (\"TeleporterNodeTelefog\",\n\t\t\t32,0,random(-8,8), 0,0,random(2,6), random(0,360), SXF_TRANSFERTRANSLATION)\n\t\tstop\n\t}\n}\n\nactor TeleporterNodeTelefog {\n\t+NOINTERACTION\n\t+CLIENTSIDEONLY\n\trenderstyle add\n\talpha 0.75\n\tstates {\n\tSpawn:\n\t\tTFOG ABCDEFGHIJ 3 bright A_FadeOut (0.05)\n\t\tstop\n\t}\n}\n\n// Effect sparks, designates damaged portals.\nactor TeleporterNodeSpark {+NOCLIP\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_PlaySound (\"world/spark\")\n\t\tTNT1 AAAAAAAAAAA 0 A_CustomMissile (\"TeleporterNodeSparkFX\", 0, 0, random(-180,180), 2, random (8, 32))\n\t\tstop\n\t}\n}\n\nactor TeleporterNodeSparkFX {\n\tPROJECTILE\n\t+CLIENTSIDEONLY\n\t+FORCEXYBILLBOARD\n\t+NOCLIP\n\t-NOGRAVITY\n\tradius 8\n\theight 8\n\tspeed 4\n\trenderstyle add\n\talpha 0.75\n\tscale 0.05\n\tstates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ThrustThingZ (0, random(15,40), 0, 0)\n\t\tTNT1 A 0 A_Jump (256, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Spawn4\", \"Spawn5\", \"Spawn6\")\n\t\tgoto Spawn1\n\tSpawn1:\n\t\tSPKY A 15\n\t\tgoto Death\n\tSpawn2:\n\t\tSPKY B 12 bright\n\t\tgoto Death\n\tSpawn3:\n\t\tSPKY C 16 bright\n\t\tgoto Death\n\tSpawn4:\n\t\tSPKY D 14 bright\n\t\tgoto Death\n\tSpawn5:\n\t\tSPKY E 13 bright\n\t\tgoto Death\n\tSpawn6:\n\t\tSPKY F 11 bright\n\t\tgoto Death\n\tDeath:\n\t\t\"----\" AAAAAAAA 1 A_FadeOut (0.05)\n\t\tstop\n\t}\n}\n\nActor teleporterNode_SanityCheck\n{\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_CheckSight(\"niceTryBitch\")\n\t\t\tTNT1 A -1\n\t\t\tStop\n\n\t\tniceTryBitch:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_GiveInventory(\"TeleporterNodeNotInSight\", 1)\n\t\t\tTNT1 A -1\n\t\t\tStop\n\t}\n}\n\n// Dummy item to mark the portal as invalid with\nactor TeleporterNodeNotInSight : Inventory {}\nactor IsActive : Inventory {}"
},
{
"source": "pk3",
"name": "Actors/Players/LCA-Player.txt",
"contents": "actor ComplexDoomPlayer : DoomPlayer\n{\nSpeed 0.7\nHealth 100\nGibHealth 50\nRadius 16\nHeight 56\nMass 100\nPainChance 255\nSpecies \"Player\"\n+NOSKIN\n+NOICEDEATH\nDamageFactor \"Normal\", 0.5\nDamageFactor \"Explosion\", 0.5\nDamageFactor \"Rifle\", 1.0\nDamageFactor \"Chemical\", 1.5\nDamageFactor \"Fire\", 1.5\nDamageFactor \"ChemicalSpecial\", 0\nDamageFactor \"Disarm\", 0\nDamageFactor \"Deconstruction\", 0\nDamageFactor \"Superweapon\", 1.0\nPlayer.SoundClass \"Marine\"\nPlayer.ColorRange 112, 127\nPlayer.DisplayName \"Doom Guy\"\nPlayer.CrouchSprite \"PLYC\"\nPlayer.MaxHealth 100\nPlayer.GruntSpeed 25\nPlayer.StartItem \"Handgun\"\nPlayer.StartItem \"DummyWpn\"\nPlayer.StartItem \"RepairGun\"\nPlayer.StartItem \"HandGrenadeAmmo\" 2\nPlayer.StartItem \"TimedC4\" 1\nPlayer.StartItem \"TimedC4Count\" 1\nPlayer.StartItem \"BulletMag\" 30\nPlayer.StartItem \"PistolMagazine\" 15\nPlayer.StartItem \"ARMagazine\" 40\nPlayer.StartItem \"ShotgunMagazine\" 8\nPlayer.StartItem \"ShotgunDrum2\" 12\nPlayer.StartItem \"DualShell\" 2\nPlayer.StartItem \"QuadShell\" 4\nPlayer.StartItem \"RocketDrum\" 7\nPlayer.StartItem \"GrenadeDrum\" 7\nPlayer.StartItem \"PlasmaCell\" 50\nPlayer.StartItem \"DemonMagazine\" 50\nPlayer.StartItem \"CellCharge\" 50\nstates\n {\n Spawn:\n PLAY A -1\n loop\n See:\n PLAY A 5 A_PlaySound(\"misc/footstep\",7)\n PLAY B 5\n PLAY C 5 A_PlaySound(\"misc/footstep\",7)\n PLAY D 5\n goto Spawn\n Missile:\n PLAY E 12\n goto Spawn\n Melee:\n PLAY F 6 bright\n goto Missile\n Pain:\n PLAY G 4\n PLAY G 4 A_Pain\n goto Spawn\n Death:\n TNT1 A 0 A_TakeInventory(\"HandGrenadeAction\",1)\n TNT1 A 0 A_TakeInventory(\"MineAction\",1)\n TNT1 A 0 A_TakeInventory(\"RailgunAction\",1)\n PLAY H 8\n PLAY I 8 A_PlayerScream\n PLAY J 8 A_NoBlocking\n PLAY K 8\n PLAY L 8 A_SpawnItem(\"BodyCrash\",0,0,0,0)\n PLAY M 8\n PLAY N -1\n stop\n XDeath:\n TNT1 A 0 A_TakeInventory(\"HandGrenadeAction\",1)\n TNT1 A 0 A_TakeInventory(\"MineAction\",1)\n TNT1 A 0 A_TakeInventory(\"RailgunAction\",1)\n TNT1 A 0 A_SpawnItemEx(\"GibbedGenerator\",0,0,0,0,0,0,0,128,0)\n PLAY P 3 A_XScream\n PLAY Q 3 A_NoBlocking\n PLAY RSTUV 3\n PLAY W -1\n stop\n }\n}"
},
{
"source": "pk3",
"name": "Actors/Weapons/AssaultShotgun.txt",
"contents": "actor IShotgunCock2 : Inventory\n{\nInventory.MaxAmount 1\n+INVENTORY.UNDROPPABLE\n+INVENTORY.KEEPDEPLETED\n}\n\nACTOR ShotgunDrum2 : Ammo\n{\nInventory.Amount 0\nInventory.MaxAmount 12\nAmmo.BackpackAmount 0\nAmmo.BackpackMaxAmount 12\nInventory.Icon \"ASTHA0\"\n+IGNORESKILL\n}\n\nACTOR \"Assault Shotgun \" : \"Assault Shotgun\" Replaces \"Assault Shotgun\"\n{\n Scale 0.85\n Weapon.SelectionOrder 4500\n Weapon.KickBack 80\n Weapon.AmmoUse 1\n Weapon.AmmoGive 0\n Weapon.AmmoGive2 8\n Weapon.AmmoType \"ShotgunDrum2\"\n Weapon.AmmoType2 \"NewShell\"\n Inventory.PickupSound \"AShotgun/Cock\"\n Inventory.PickupMessage \"Assault Shotgun\"\n Obituary \"%o was blown away by %k's Assault Shotgun.\"\n Decal BulletChip\n +WEAPON.AMMO_OPTIONAL\n +WEAPON.NOALERT\n states\n {\n Ready:\n ASGW A 1\n ASGR ABCD 1\n ASGR E 1 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)\n goto FullCock2\n Ready1:\n TNT1 A 0 A_JumpIfInventory(\"HandGrenadeAction\",1,\"GrenadeCheck\")\n TNT1 A 0 A_JumpIfInventory(\"MineAction\",1,\"MineCheck\")\n SMAG A 1 A_WeaponReady\n loop\n Back:\n ASGW A 1\n ASGR ABCD 1\n ASGR E 1\n goto Ready1\n Deselect:\n TNT1 A 0 A_PlayWeaponSound(\"weapons/weapondown\")\n SMAG A 1 A_Lower\n wait\n Select:\n TNT1 A 0 A_Raise\n wait\n Fire:\n TNT1 A 0 A_JumpIfInventory(\"IShotgunCock2\",1,1)\n goto FullCock2\n TNT1 A 0 A_JumpIfNoAmmo(\"Empty\")\n TNT1 A 0 A_PlaySound(\"AShotgun/Fire\")\n TNT1 A 0 A_AlertMonsters\n TNT1 A 0 Radius_Quake(3,3,0,1,0)\n TNT1 A 0 A_GunFlash\n TNT1 A 0 A_Light1\n TNT1 A 0 A_SpawnItemEx(\"ShellCasing\",30,5,25,Random(2,4),Random(3,6),Random(3,6),0)\n TNT1 AAAA 0 A_FireCustomMissile(\"SGTracer\",Random(5,-5),0,0,Random(5,-5))\n SMAF A 2 Bright A_FireBullets(5.0,3.0,7,Random(5,7),\"ModdedBulletPuff\")\n SMAF B 2 Bright A_Light2\n TNT1 A 0 A_Light0\n SMAG BCDE 1\n SMAG FA 2\n goto Ready1\n Empty:\n TNT1 A 0 A_TakeInventory(\"IShotgunCock2\",1)\n SMAG A 10 A_PlayWeaponSound(\"weapons/click\")\n AltFire:\n TNT1 A 0 A_JumpIfInventory(\"ShotgunDrum2\",0,2)\n TNT1 A 0 A_JumpIfInventory(\"NewShell\",1,3)\n TNT1 A 0 A_JumpIfInventory(\"IShotgunCock2\",1,\"Ready1\")\n TNT1 A 0 A_JumpIfInventory(\"ShotgunDrum2\",1,\"FullCock2\")\n goto Ready1\n SMAR ABCD 1\n SMAR EF 2\n SMAR G 6\n TNT1 A 0 A_JumpIfInventory(\"IShotgunCock2\",1,1)\n goto Reload\n TNT1 A 0 A_JumpIfInventory(\"ShotgunDrum2\",1,\"Reload2\")\n TNT1 A 0 A_TakeInventory(\"IShotgunCock2\",1)\n Reload:\n SMAR HI 1\n SMAR J 1 A_PlaySound(\"Weapons/ASGShellLoad\")\n SMAR K 1\n TNT1 A 0 A_TakeInventory(\"NewShell\",1)\n TNT1 A 0 A_GiveInventory(\"ShotgunDrum2\",1)\n SMAR L 1\n TNT1 A 0 A_JumpIfInventory(\"ShotgunDrum2\",0,\"FullCock\")\n SMAR MN 1\n SMAR O 2\n TNT1 A 0 A_JumpIfInventory(\"HandGrenadeAction\",1,\"GrenadeCheckReloading\")\n TNT1 A 0 A_JumpIfInventory(\"MineAction\",1,\"MineCheckReloading\")\n SMAR G 1 A_WeaponReady(WRF_NOBOB|WRF_NOSECONDARY)\n TNT1 A 0 A_JumpIfInventory(\"NewShell\",1,\"Reload\")\n FullCock:\n SMAR P 3\n SMAR Q 2\n SMAR CBA 1\n FullCock2:\n SMAK A 1 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)\n SMAK B 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)\n SMAK C 3 A_PlayWeaponSound(\"AShotgun/Cock\")\n SMAK D 5\n SMAK E 2 A_GiveInventory(\"IShotgunCock2\",1)\n goto Ready1\n Reload2:\n SMAR HI 1\n SMAR J 1 A_PlaySound(\"Weapons/ASGShellLoad\")\n SMAR K 1\n TNT1 A 0 A_TakeInventory(\"NewShell\",1)\n TNT1 A 0 A_GiveInventory(\"ShotgunDrum2\",1)\n SMAR L 1\n TNT1 A 0 A_JumpIfInventory(\"ShotgunDrum2\",0,\"Full\")\n SMAR MN 1\n SMAR O 2\n TNT1 A 0 A_JumpIfInventory(\"HandGrenadeAction\",1,\"GrenadeCheckReloading\")\n TNT1 A 0 A_JumpIfInventory(\"MineAction\",1,\"MineCheckReloading\")\n SMAR G 1 A_WeaponReady(WRF_NOBOB|WRF_NOSECONDARY)\n TNT1 A 0 A_JumpIfInventory(\"NewShell\",1,\"Reload2\")\n Full:\n SMAR P 3\n SMAR Q 2\n SMAR CBA 1\n goto Ready1\n GrenadeCheck:\n TNT1 A 0 A_JumpIfInventory(\"HandGrenadeAmmo\",1,\"GrenadeToss\")\n TNT1 A 0 A_TakeInventory(\"HandGrenadeAction\",1)\n goto Ready1\n GrenadeCheckReloading:\n TNT1 A 0 A_JumpIfInventory(\"HandGrenadeAmmo\",1,\"GrenadeToss\")\n TNT1 A 0 A_TakeInventory(\"HandGrenadeAction\",1)\n goto Reload\n GrenadeToss:\n TNT1 A 0 A_PlayWeaponSound(\"weapons/weapondown\")\n ASGR EDCBA 1\n ASGW A 1\n TNT1 A 4\n HGRN ABC 1\n HGRN D 2\n HGRN EFG 1\n HGRN HI 2\n TNT1 A 15 A_PlayWeaponSound(\"weapons/hgrenadepin\")\n TNT1 A 0 A_PlayWeaponSound(\"weapons/hgrenadethrow\")\n TNT1 A 0 A_TakeInventory(\"HandGrenadeAmmo\",1)\n HGNE A 1 A_FireCustomMissile(\"ThrownGrenade\",0,0,0,0)\n HGRN J 1\n HGRN KLM 2\n HGRN NO 1\n TNT1 A 6\n TNT1 A 0 A_JumpIfInventory(\"HandGrenadeAmmo\",1,2)\n TNT1 A 0 A_TakeInventory(\"Hand Grenade\",1)\n TNT1 A 0 A_TakeInventory(\"HandGrenadeAction\",1)\n TNT1 A 0\n goto Back\n MineCheck:\n TNT1 A 0 A_JumpIfInventory(\"MineAmmo\",1,\"MineToss\")\n TNT1 A 0 A_TakeInventory(\"MineAction\",1)\n goto Ready1\n MineCheckReloading:\n TNT1 A 0 A_JumpIfInventory(\"MineAmmo\",1,\"MineToss\")\n TNT1 A 0 A_TakeInventory(\"MineAction\",1)\n goto Reload\n MineToss:\n TNT1 A 0 A_PlayWeaponSound(\"weapons/weapondown\")\n ASGR EDCBA 1\n ASGW A 1\n TNT1 A 8\n TNT1 A 0 A_PlayWeaponSound(\"weapons/hgrenadethrow\")\n MINE ABCDEF 1\n TNT1 A 0 A_TakeInventory(\"MineAmmo\",1)\n MINE G 1 A_FireCustomMissile(\"ThrownMine\",0,0,0,0)\n MINE HI 1\n MINE JK 2\n TNT1 A 0 A_JumpIfInventory(\"MineAmmo\",1,2)\n TNT1 A 0 A_TakeInventory(\"Land Mine\",1)\n TNT1 A 0 A_TakeInventory(\"MineAction\",1)\n TNT1 A 0\n TNT1 A 5\n goto Back\n Spawn:\n SMAP A -1\n stop\n }\n}\n\nACTOR AssaultShotgunMagazine : Ammo\n{\nInventory.Amount 0\nInventory.MaxAmount 12\nAmmo.BackpackAmount 0\nAmmo.BackpackMaxAmount 12\nInventory.Icon \"SHOTA0\"\n+IGNORESKILL\n}"
},
{
"source": "pk3",
"name": "Actors/Weapons/repairguns.txt",
"contents": "// Repair gun\n\n// [SG] added FBF_NORANDOM to all repairs and adjusted damage accordingly.\n// Repairgun disarms C4's slightly slower, Bomb-squad stays the same\n\nactor RepairGun : AOWWeapon {\n\tAttackSound \"repairgun/fire\"\n\tWeapon.KickBack 0\n\tWeapon.AmmoUse 0\n\tWeapon.AmmoGive 0\n\tWeapon.PreferredSkin \"MarineBackpack\"\n\tWeapon.UpSound \"weapons/up/repair\"\n\tStates {\n\tReady:\n\t\tREP1 A 0 A_JumpIfInventory (\"RepairGunUpgrade\", 1, \"ReadyEnhanced\")\n\t\tREP1 A 35 A_WeaponReady\n\t\tloop\n\tDeselect:\n\t\tREP1 A 0 A_JumpIfInventory (\"RepairGunUpgrade\", 1, \"DeselectEnhanced\")\n\t\tREP1 A 1 offset (5, 33)\n\t\tREP1 A 1 offset (16, 37)\n\t\tREP1 A 1 offset (22, 43)\n\t\tREP1 A 1 offset (28, 55)\n\t\tREP1 A 1 offset (34, 62)\n\t\tREP1 A 1 offset (39, 73)\n\t\tREP1 A 1 offset (43, 76)\n\t\tREP1 A 1 offset (52, 90)\n\t\tREP1 A 0 offset (1, 33)\n\t\tREP1 A 0 A_Lower\n\t\tWait\n\tSelect:\n\t\tREP1 A 0 A_JumpIfInventory (\"RepairGunUpgrade\", 1, \"SelectEnhanced\")\n\t\tREP1 A 1 offset (52, 90)\n\t\tREP1 A 1 offset (43, 76)\n\t\tREP1 A 1 offset (39, 73)\n\t\tREP1 A 1 offset (34, 62)\n\t\tREP1 A 1 offset (28, 55)\n\t\tREP1 A 1 offset (22, 43)\n\t\tREP1 A 1 offset (16, 37)\n\t\tREP1 A 1 offset (5, 33)\n\t\tgoto ready\n\tFire:\n\t\tREP1 A 0 A_JumpIfInventory (\"InMenu\", 1, \"Ready\")\n\t\tREP1 C 0 A_JumpIfInventory (\"RepairGunUpgrade\", 1, \"FireEnhanced\")\n\t\tREP1 C 2\n\t\tREP1 B 0 bright A_FireBullets (0.2, 0.2, 1, 2, \"RepairDisarmPuff\", FBF_NORANDOM, 800)\n\t\tREP1 B 0 bright ACS_ExecuteAlways (650, 0, 10, 0)\n\t\tREP1 B 2 bright ACS_ExecuteAlways (620, 0) // display target health\n\t\tREP1 C 2 A_Refire\n\t\tGoto Ready\n\tAltFire:\n\t\tREP1 A 0 A_JumpIfInventory(\"RepairGunUpgrade\",1, \"Altfire.Enhanced\")\n\t\tREP1 A 1 A_JumpIfTargetInLOS (\"Fire\")\n\t\tgoto ready\n\tAltfire.Enhanced:\n\t\tREP2 A 1 A_JumpIfTargetInLOS (\"Fire\")\n\t\tREP2 A 0\n\t\tgoto Ready\n\tReadyEnhanced:\n\t\tREP2 A 1 A_WeaponReady\n\t\twait\n\tDeselectEnhanced:\n\t\tREP2 A 1 offset (5, 33)\n\t\tREP2 A 1 offset (16, 37)\n\t\tREP2 A 1 offset (22, 43)\n\t\tREP2 A 1 offset (28, 55)\n\t\tREP2 A 1 offset (34, 62)\n\t\tREP2 A 1 offset (39, 73)\n\t\tREP2 A 1 offset (43, 76)\n\t\tREP2 A 1 offset (52, 90)\n\t\tREP2 A 0 offset (1, 33)\n\t\tREP2 A 0 A_Lower\n\t\tWait\n\tSelectEnhanced:\n\t\tREP2 A 1 offset (52, 90)\n\t\tREP2 A 1 offset (43, 76)\n\t\tREP2 A 1 offset (39, 73)\n\t\tREP2 A 1 offset (34, 62)\n\t\tREP2 A 1 offset (28, 55)\n\t\tREP2 A 1 offset (22, 43)\n\t\tREP2 A 1 offset (16, 37)\n\t\tREP2 A 1 offset (5, 33)\n\t\tgoto ready\n\tFireEnhanced:\n\t\tREP2 C 1\n\t\tREP2 B 0 bright A_FireBullets (0.2, 0.2, 1, 1, \"EnhancedRepairDisarmPuff\", FBF_NORANDOM, 800)\n\t\tREP2 B 0 bright ACS_ExecuteAlways (650, 0, 10, 0)\n\t\tREP2 B 1 bright ACS_ExecuteAlways (620, 0)\n\t\tREP2 A 2 A_Refire\n\t\tGoto Ready\n\t}\n}\n\nactor RepairGunUpgrade : Inventory {}\n\nactor HealGun : RepairGun {\n\tDropItem \"MedicPack\"\n\tWeapon.PreferredSkin \"MarineMedic\"\n\tStates {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tstop\n\tReady:\n\t\tREP4 A 1 A_WeaponReady\n\t\tloop\n\tDeselect:\n\t\tREP4 A 1 offset (-5, 33)\n\t\tREP4 A 1 offset (-16, 37)\n\t\tREP4 A 1 offset (-22, 43)\n\t\tREP4 A 1 offset (-28, 55)\n\t\tREP4 A 1 offset (-34, 62)\n\t\tREP4 A 1 offset (-39, 73)\n\t\tREP4 A 1 offset (-43, 76)\n\t\tREP4 A 1 offset (-52, 90)\n\t\tREP4 A 0 offset (-1, 33)\n\t\tREP4 A 0 A_Lower\n\t\tWait\n\tSelect:\n\t\tREP4 A 1 offset (-52, 90)\n\t\tREP4 A 1 offset (-43, 76)\n\t\tREP4 A 1 offset (-39, 73)\n\t\tREP4 A 1 offset (-34, 62)\n\t\tREP4 A 1 offset (-28, 55)\n\t\tREP4 A 1 offset (-22, 43)\n\t\tREP4 A 1 offset (-16, 37)\n\t\tREP4 A 1 offset (-5, 33)\n\t\tgoto ready\n\tFire:\n\t\tTNT1 A 0 A_JumpIfInventory (\"InMenu\", 1, \"Ready\")\n\t\tREP4 A 0 A_JumpIfTargetInLOS (\"AltFire\")\n\t\tgoto Ready\n\tAltFire:\n\t\tTNT1 A 0 A_JumpIfInventory (\"InMenu\", 1, \"Ready\")\n\t\tREP4 C 2\n\t\tREP4 B 0 bright A_FireBullets (0, 0, 1, 0, \"MedicPuff\", 0, 800) // visual ONLY\n\t\tREP4 B 0 bright ACS_ExecuteAlways (650, 0, 6, 1) // actually does the healing\n\t\tREP4 B 2 bright ACS_ExecuteAlways (620, 0) // display target health\n\t\tREP4 C 2 A_Refire\n\t\tgoto Ready\n\t}\n}\n\nactor BombSquadGun : RepairGun {\n\t+THRUGHOST\n\tAttackSound \"repairgun/fire\"\n\tStates {\n\tReady:\n\t\tREP3 A 1 A_WeaponReady\n\t\tLoop\n\tDeselect:\n\t\tREP3 A 1 offset (5, 33)\n\t\tREP3 A 1 offset (16, 37)\n\t\tREP3 A 1 offset (22, 43)\n\t\tREP3 A 1 offset (28, 55)\n\t\tREP3 A 1 offset (34, 62)\n\t\tREP3 A 1 offset (39, 73)\n\t\tREP3 A 1 offset (43, 76)\n\t\tREP3 A 1 offset (52, 90)\n\t\tREP3 A 0 offset (1, 33)\n\t\tREP3 A 0 A_Lower\n\t\tWait\n\tSelect:\n\t\tREP3 A 1 offset (52, 90)\n\t\tREP3 A 1 offset (43, 76)\n\t\tREP3 A 1 offset (39, 73)\n\t\tREP3 A 1 offset (34, 62)\n\t\tREP3 A 1 offset (28, 55)\n\t\tREP3 A 1 offset (22, 43)\n\t\tREP3 A 1 offset (16, 37)\n\t\tREP3 A 1 offset (5, 33)\n\t\tgoto ready\n\tFire:\n\t\tTNT1 A 0 A_JumpIfInventory (\"IsInSpawnRoom\", 1, \"Ready\")\n\t\tTNT1 A 0 A_JumpIfInventory (\"InMenu\", 1, \"Ready\")\n\t\tREP3 C 2\n\t\tREP3 B 2 bright A_FireBullets (0.0, 0.0, 1, 20, \"DisarmPuff\", FBF_NORANDOM, 500)\n\t\tREP3 C 2 A_Refire\n\t\tGoto Ready\n\tAltFire:\n\t\tstop\n\t}\n}\n\nactor RemoverGunHeat : Ammo\n{\n\tInventory.Maxamount 100\n\tInventory.Amount 1\n\t+IGNORESKILL\n}\n\nactor RemoverGun : RepairGun {\n\tAttackSound \"repairgun/fire\"\n\t//Weapon.Ammotype \"RemoverGunHeat\"\n\t//+AMMO_OPTIONAL\n\tStates {\n\tReady:\n\t\tREP5 A 0 A_TakeInventory(\"RemoverGunHeat\",2)\n\t\tREP5 AA 1 A_WeaponReady\n\t\tLoop\n\tDeselect:\n\t\tREP5 A 1 offset (-5, 33)\n\t\tREP5 A 1 offset (-16, 37)\n\t\tREP5 A 1 offset (-22, 43)\n\t\tREP5 A 1 offset (-28, 55)\n\t\tREP5 A 1 offset (-34, 62)\n\t\tREP5 A 1 offset (-39, 73)\n\t\tREP5 A 1 offset (-43, 76)\n\t\tREP5 A 1 offset (-52, 90)\n\t\tREP5 A 0 offset (-1, 33)\n\t\tREP5 A 0 A_Lower\n\t\tWait\n\tSelect:\n\t\tREP5 A 1 offset (-52, 90)\n\t\tREP5 A 1 offset (-43, 76)\n\t\tREP5 A 1 offset (-39, 73)\n\t\tREP5 A 1 offset (-34, 62)\n\t\tREP5 A 1 offset (-28, 55)\n\t\tREP5 A 1 offset (-22, 43)\n\t\tREP5 A 1 offset (-16, 37)\n\t\tREP5 A 1 offset (-5, 33)\n\t\tgoto ready\n\tFire:\n\t\tTNT1 A 0 A_JumpIfInventory (\"IsInSpawnRoom\", 1, \"Ready\")\n\t\tTNT1 A 0 A_JumpIfInventory (\"InMenu\", 1, \"Ready\")\n\t\t//TNT1 A 0 A_JumpIfInventory (\"RemoverGunHeat\", 100, \"Cool\")\n\t\tREP5 C 2\n\t\t//REP5 B 0 A_GiveInventory(\"RemoverGunHeat\",1)\n\t\tREP5 B 2 bright A_FireBullets (0.0, 0.0, 1, 20, \"DeconstructionPuff\", FBF_NORANDOM, 256)\n\t\tREP5 C 2 A_Refire\n\t\tGoto Ready\n\tCool:\n\t\tREP5 A 35 A_PlaySound(\"Plasma/FailFire\")\n\t\tTNT1 A 0 A_PlaySound(\"Plasma/Vapour\")\n\tCoolingLoop:\n\t\tREP5 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 A_TakeInventory(\"RemoverGunHeat\",2)\n\t\tGoto Ready\n\tAltFire:\n\t\tTNT1 A 0 A_JumpIfTargetInLOS (\"Fire\")\n\t\tGoto Ready\n\t}\n}\n\nactor DisarmPuff {\n\t+NOINTERACTION\n\t+PUFFONACTORS\n\t+BLOODLESSIMPACT\n\t+FORCEXYBILLBOARD\n\t+ALWAYSPUFF\n\t+THRUGHOST\n\t+PUFFGETSOWNER\n\t+NODAMAGETHRUST\n\tRenderstyle Add\n\tAlpha 0.5\n\tScale 0.25\n\tDamageType \"Disarm\"\n\tStates {\n\tSpawn:\n\t\tDPFF A 0\n\t\tDPFF A 0 A_Explode (9, 64)\n\t\tDPFF ABC 2 bright\n\tMelee:\n\t\tDPFF DE 2 bright\n\t\tDPFF F 1 A_FadeOut\n\t\twait\n\t}\n}\n\nactor RepairDisarmPuff : DisarmPuff {\n\tAlpha 0.66\n\tStates {\n\tSpawn:\n\t\tRPFF A 0\n\t\tRPFF A 0 A_Explode (9, 64)\n\t\tRPFF ABC 2 bright\n\tMelee:\n\t\tRPFF DE 2 bright\n\t\tRPFF F 1 A_FadeOut\n\t\twait\n\t}\n}\n\nactor EnhancedRepairDisarmPuff : DisarmPuff {\n\tStates {\n\tSpawn:\n\t\tUPFF A 0\n\t\tUPFF A 0 A_Explode (9, 64)\n\t\tUPFF ABC 2 bright\n\tMelee:\n\t\tUPFF DE 2 bright\n\t\tUPFF F 1 A_FadeOut\n\t\twait\n\t}\n}\n\nactor MedicPuff : DisarmPuff {\n\tstates {\n\tSpawn:\n\t\tHPFF ABC 2 bright\n\tMelee:\n\t\tHPFF DE 2 bright\n\t\tHPFF F 1 A_FadeOut\n\t\twait\n\t}\n}\n\nactor DeconstructionPuff : DisarmPuff {\n\tDamageType \"Deconstruction\"\n\tStates {\n\tSpawn:\n\t\tDCPF A 0\n\t\tDCPF A 0 A_Explode (64, 8) //[JD] Smaller radius = precise deconstructions\n\t\tDCPF ABC 2 bright\n\tMelee:\n\t\tDCPF DE 2 bright\n\t\tDCPF F 1 A_FadeOut\n\t\twait\n\t}\n}\n\nactor DisarmTrail {\n\t+NOINTERACTION\n\t+CLIENTSIDEONLY\n\tScale 0.05\n\tAlpha 0.5\n\tRenderStyle add\n\tstates {\n\tSpawn:\n\t\tDPFF ABCDEF 2 bright\n\t\tstop\n\t}\n}\n\nactor HealTrail : DisarmTrail {\n\tStates {\n\tSpawn:\n\t\tHPFF ABCDEF 2 bright\n\t\tstop\n\t}\n}\nactor UpgradedRepairTrail : DisarmTrail {\n\tStates {\n\tSpawn:\n\t\tUPFF ABCDEF 2 bright\n\t\tstop\n\t}\n}\nactor RepairTrail : DisarmTrail {\n\tStates {\n\tSpawn:\n\t\tPLCX ABCDEF 2 bright\n\t\tstop\n\t}\n}"
}
]
},
"maps": []
}