chh2017-v2.pk3

PK3 44 MiB 0 map(s)

Counts

endoom0
graphics0
lumps363
maps1
palettes0

Totals (across maps)

Things0
Linedefs0
Sectors0
Monsters0
Items0
Raw model (for completeness)
{
  "meta": {
    "id": "0d0016c9-26e5-4646-a91c-ede479177cd2",
    "sha1": "b81e8df790e9c0a7f0065c3b24554e34ae3aa654",
    "sha256": "c8087b3a9b1654fc9e940bc0fa814018ff0d5503b5f44ab21e11b34dfe9e4b84",
    "filenames": [
      "chh2017-v2.pk3"
    ],
    "additional": {
      "engines": [
        "ZDOOM"
      ],
      "iwad": [],
      "filename": null,
      "added": "2018-03-28 00:21:47",
      "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-03-28 00:21:47",
    "file": {
      "type": "PK3",
      "size": 45696463,
      "url": "https://wadarchive2.nyc3.digitaloceanspaces.com/b81e8df790e9c0a7f0065c3b24554e34ae3aa654/b81e8df790e9c0a7f0065c3b24554e34ae3aa654.pk3.gz",
      "corrupt": false
    },
    "content": {
      "maps": [
        "COMHOTEL"
      ],
      "counts": {
        "endoom": 0,
        "graphics": 0,
        "lumps": 363,
        "maps": 1,
        "palettes": 0
      },
      "engines_guess": [
        "ZDOOM"
      ]
    },
    "text_files": [
      {
        "source": "pk3",
        "name": "actors/props/jaxstuff.txt",
        "contents": "actor JaxProp : CutmanProp\n{\n//Translation \"192:192=93:93\", \"198:198=4:4\", \"200:240=199:199\"\n//Translation \"192:192=93:93\", \"198:198=199:199\", \"200:240=4:4\"\nTranslation \"192:192=199:199\", \"198:198=4:4\", \"200:240=93:93\", \"50:100=[255,0,0]:[255,0,0]\"\nStates\n{\nSpawn:\nEROB A 5 A_LookEx(LOF_NOSOUNDCHECK, 0, 100, 0, 360, \"See\")\nloop\nSee:\nEROB A 0 A_CallSpecial(special, args[0], args[1], args[2], args[3], args[4])\nEROB A 15\nGoto Spawn\nTalking:\nEROB A 80\nGoto Spawn\n}\n}\n\nactor JaxProp2 : JaxProp 17091\n{\n//$Category CommunityHotel\ntag \"JaxOf7\"\nmass 9999\n+SHOOTABLE\n+NOBLOOD\n+QUICKTORETALIATE\n//+ISMONSTER\nPainChance 256\nSpecies \"Jax\"\n//Health 1000\nvar int user_health;\nvar int user_dodgeangle;\nvar int user_dodgepoints;\nvar int user_maxdodgepoints;\nvar int user_startx;\nvar int user_starty;\nvar int user_startz;\nvar int user_startangle;\nvar int user_enemies[65]; //offset by 1 for online issue\nvar int user_currentenemy;\n+SLIDESONWALLS\n//MaxStepHeight 24\nMaxStepHeight 48\nRadiusDamageFactor 0.2\nstates\n{\nSpawn:\nEROB A 0\nEROB A 0 A_ClearTarget\nEROB A 0 A_SetUserVar(\"user_health\", health)\nEROB A 0 A_SetUserVar(\"user_startx\", x)\nEROB A 0 A_SetUserVar(\"user_starty\", y)\nEROB A 0 A_SetUserVar(\"user_startz\", z)\nEROB A 0 A_SetUserVar(\"user_startangle\", angle)\nEROB A 0 A_SpawnItemEx(\"TeleportFog2\")\n//goto SpawnT\ngoto \"Super::Spawn\"\n/*SpawnT:\nEROB A 1\nloop*/\nTalking:\nTNT1 A 0 A_ChangeFlag(\"SHOOTABLE\",1)\nGoto \"Super::Talking\"\nPain:\nTNT1 A 0 HealThing(user_health - health)\ngoto Dodge\nDodgeEnd:\n//TNT1 A 0 A_LogInt(user_dodgepoints)\n//TNT1 A 0 ACS_ExecuteAlways(407,0,1)\nTNT1 A 0 A_Stop\nEROB A 0 A_GiveInventory(\"JaxStartCheck\",1)\nTNT1 A 0 A_ChangeFlag(\"SHOOTABLE\",1)\ngoto Spawn2\nSpawn2:\nEROB A 0 A_JumpIfInventory(\"JaxForgives\",1,\"RespawnJax\")\nEROB A 1 A_GiveInventory(\"JaxFunc\",1)\nloop\nDeath:\nTNT1 A 0 A_ChangeFlag(\"NOINTERACTION\", 1)\nTNT1 A 0 A_ChangeFlag(\"NOGRAVITY\", 1)\nTNT1 A 0 A_PlaySound(\"misc/metdie\")\n//TNT1 AA 1 A_SpawnItemEx(\"JaxDeathFX\",random(20,25)*(random(0,1)*2-1,random(20,25)*(random(0,1)*2-1,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION)\n//TNT1 AA 1 A_SpawnItemEx(\"JaxDeathFX\",random(15,20)*(random(0,1)*2-1,random(15,20)*(random(0,1)*2-1,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION)\n//TNT1 AA 1 A_SpawnItemEx(\"JaxDeathFX\",random(10,15)*(random(0,1)*2-1,random(10,15)*(random(0,1)*2-1,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION)\n//TNT1 AA 1 A_SpawnItemEx(\"JaxDeathFX\",random(5,10)*(random(0,1)*2-1,random(5,10)*(random(0,1)*2-1,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION)\nTNT1 AA 1 A_SpawnItemEx(\"JaxDeathFX\",random(-50,50),random(-50,50),0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION)\nTNT1 AA 1 A_SpawnItemEx(\"JaxDeathFX\",random(-40,40),random(-40,40),0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION)\nTNT1 AA 1 A_SpawnItemEx(\"JaxDeathFX\",random(-30,30),random(-30,30),0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION)\nTNT1 AA 1 A_SpawnItemEx(\"JaxDeathFX\",random(-20,20),random(-20,20),0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION)\nTNT1 AA 1 A_SpawnItemEx(\"JaxDeathFX\",random(-10,10),random(-10,10),0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION)\nEROB H 30\nTNT1 A 0 A_PlaySound(\"misc/jaxbich\")\nEROB H 60\nTNT1 A 0 A_PlaySound(\"misc/devildeath\")\nPLY1 H 0 A_SpawnItemEx(\"FakeDeathFX\",0,0,32)\nRespawningJax:\nTNT1 A 1000\n//TNT1 A 100\nRespawnJax:\nTNT1 A 0 A_SpawnItemEx(\"JaxProp2\",user_startx-x,user_starty-y,user_startz-z,0,0,0,user_startangle,SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE|SXF_NOCHECKPOSITION|SXF_TRANSFERSPECIAL,0,tid)\nstop\nDodge:\n//TNT1 A 0 A_LogInt(user_dodgepoints)\n//TNT1 A 0 ACS_ExecuteAlways(407,0,0)\nTNT1 A 0 A_ChangeFlag(\"SHOOTABLE\",0)\nEROB A 1 A_GiveInventory(\"JaxFunc\",1)\nTNT1 A 0 A_SetUserVar(\"user_dodgeangle\",random(40,100)*(random(0,1)*2-1))\nTNT1 A 0 A_JumpIfTargetInLos(\"DodgeDistCheck\",0,JLOSF_DEADNOJUMP)\ngoto DodgeBlue1\nDodgeDistCheck:\nTNT1 A 0 A_JumpIfCloser(600,\"Dodge2\")\ngoto DodgeBlue1\nDodge2:\nTNT1 A 0 A_JumpIfInventory(\"JaxBadTime\",1,\"HPExtendCheck\")\nDodge3:\nTNT1 A 0 A_JumpIfCloser(150,\"DodgeRed1\")\nTNT1 A 0 A_JumpIfCloser(350,\"DodgeYellow1\")\ngoto DodgeGreen1\nTrueDodge:\nTNT1 A 0 A_JumpIfCloser(150,\"DodgeRed\")\nTNT1 A 0 A_JumpIfCloser(350,\"DodgeYellow\")\ngoto DodgeGreen\n\nHPExtendCheck:\nTNT1 A 0 A_SetUserVar(\"user_currentenemy\",ACS_ExecuteWithResult(257,1))\nTNT1 A 0 A_JumpIf(user_currentenemy>=0,\"HPExtendCheck2\")\ngoto Dodge3\nHPExtendCheck2:\nTNT1 A 0 A_JumpIf(user_enemies[user_currentenemy+1]==0,\"HPExtend\")\ngoto TrueDodge\nHPExtend:\nTNT1 A 0 A_SetUserVar(\"user_dodgepoints\",user_dodgepoints+7)\nTNT1 A 0 A_SetUserVar(\"user_maxdodgepoints\",user_maxdodgepoints+7)\nTNT1 A 0 A_SetUserArray(\"user_enemies\",user_currentenemy+1,1)\nTNT1 A 0 A_TakeInventory(\"JaxAwfulExperience\",1)\ngoto TrueDodge\n\nDodgeBlue1:\nEROB A 0 A_GiveInventory(\"JaxDodgeTime\",6)\nDodgeBlue2:\nERBO A 0 ThrustThing(angle*256/360+user_dodgeangle,3,1,0)\nEROB A 0 A_SpawnItemEx(\"JaxDodgeFXBlue\")\nEROB A 1 A_GiveInventory(\"JaxFunc\",1)\nEROB A 0 A_TakeInventory(\"JaxDodgeTime\",1)\nEROB A 0 A_JumpIfInventory(\"JaxDodgeTime\",1,\"DodgeBlue2\")\ngoto DodgeEnd\nDodgeGreen:\nTNT1 A 0 A_SetUserVar(\"user_dodgepoints\",user_dodgepoints-1)\nTNT1 A 0 A_JumpIf(user_dodgepoints<1,\"Death\")\nTNT1 A 0 A_JumpIf((user_dodgepoints>user_maxdodgepoints/4),\"DodgeGreen1\")\nTNT1 A 0 A_GiveInventory(\"JaxAwfulExperience\",1)\nDodgeGreen1:\nEROB A 0 A_GiveInventory(\"JaxDodgeTime\",8)\nDodgeGreen2:\nERBO A 0 ThrustThing(angle*256/360+user_dodgeangle,4,1,0)\nEROB A 0 A_SpawnItemEx(\"JaxDodgeFXGreen\")\nEROB A 1 A_GiveInventory(\"JaxFunc\",1)\nEROB A 0 A_TakeInventory(\"JaxDodgeTime\",1)\nEROB A 0 A_JumpIfInventory(\"JaxDodgeTime\",1,\"DodgeGreen2\")\ngoto DodgeEnd\nDodgeYellow:\nTNT1 A 0 A_SetUserVar(\"user_dodgepoints\",user_dodgepoints-2)\nTNT1 A 0 A_JumpIf(user_dodgepoints<1,\"Death\")\nTNT1 A 0 A_JumpIf((user_dodgepoints>user_maxdodgepoints/4),\"DodgeYellow1\")\nTNT1 A 0 A_GiveInventory(\"JaxAwfulExperience\",1)\nDodgeYellow1:\nEROB A 0 A_GiveInventory(\"JaxDodgeTime\",10)\nDodgeYellow2:\nERBO A 0 ThrustThing(angle*256/360+user_dodgeangle,5,1,0)\nEROB A 0 A_SpawnItemEx(\"JaxDodgeFXYellow\")\nEROB A 1 A_GiveInventory(\"JaxFunc\",1)\nEROB A 0 A_TakeInventory(\"JaxDodgeTime\",1)\nEROB A 0 A_JumpIfInventory(\"JaxDodgeTime\",1,\"DodgeYellow2\")\ngoto DodgeEnd\nDodgeRed:\nTNT1 A 0 A_SetUserVar(\"user_dodgepoints\",user_dodgepoints-3)\nTNT1 A 0 A_JumpIf(user_dodgepoints<1,\"Death\")\nTNT1 A 0 A_JumpIf((user_dodgepoints>user_maxdodgepoints/4),\"DodgeRed1\")\nTNT1 A 0 A_GiveInventory(\"JaxAwfulExperience\",1)\nDodgeRed1:\nEROB A 0 A_GiveInventory(\"JaxDodgeTime\",12)\nDodgeRed2:\nERBO A 0 ThrustThing(angle*256/360+user_dodgeangle,6,1,0)\nEROB A 0 A_SpawnItemEx(\"JaxDodgeFXRed\")\nEROB A 1 A_GiveInventory(\"JaxFunc\",1)\nEROB A 0 A_TakeInventory(\"JaxDodgeTime\",1)\nEROB A 0 A_JumpIfInventory(\"JaxDodgeTime\",1,\"DodgeRed2\")\ngoto DodgeEnd\n}\n}\n\nactor JaxStartCheck : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"JaxBadTime\",1,\"PickupNo\")\nEROB A 0 A_GiveInventory(\"JaxNotForgive\",1)\nEROB A 0 A_JumpIfInventory(\"JaxMercy\",2,\"AttackModeStart\")\nEROB A 0 A_GiveInventory(\"JaxMercy\",1)\nstop\nPickupNo:\nTNT1 A 0\nstop\nAttackModeStart:\nEROB A 0 A_GiveInventory(\"JaxBadTimeStart\",1)\nstop\n}\n}\n\nactor JaxBadTimeStart : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_GiveInventory(\"JaxBadTime\",1)\nTNT1 A 0 A_SetUserVar(\"user_dodgepoints\",7)\nTNT1 A 0 A_SetUserVar(\"user_maxdodgepoints\",7)\nTNT1 A 0 A_GiveInventory(\"JaxBlaxtEnergy\",300)\nTNT1 A 0 A_GiveInventory(\"JaxBoneEnergy\",300)\nstop\n}\n}\n\nactor JaxForgive : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_GiveInventory(\"JaxForgiveness\",1)\nTNT1 A 0 A_JumpIfInventory(\"JaxBadTime\",1,\"Pickup2\")\nTNT1 A 0 A_JumpIfInventory(\"JaxForgiveness\",250,\"Forgive\")\nstop\nPickup2:\nTNT1 A 0 A_JumpIfInventory(\"JaxForgiveness\",500,\"Forgive\")\nstop\nForgive:\nTNT1 A 0 A_GiveInventory(\"JaxForgives\",1)\nstop\n}\n}\n\nactor JaxNotForgive : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_TakeInventory(\"JaxForgiveness\",999)\nTNT1 A 0 A_TakeInventory(\"JaxForgives\",1)\nstop\n}\n}\n\nactor JaxFunc : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_FaceTarget\nTNT1 A 0 A_JumpIfInventory(\"JaxBadTime\",1,\"AttackMode\")\nTNT1 A 0 A_GiveInventory(\"JaxForgive\",1)\nstop\nAttackMode:\nTNT1 A 0 A_GiveInventory(\"JaxAttack\",1)\nstop\n}\n}\n\nactor JaxAttack : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_JumpIfTargetInLos(\"Fight\",0,JLOSF_DEADNOJUMP)\nTNT1 A 0 A_GiveInventory(\"JaxBlaxtEnergy\",1)\nTNT1 A 0 A_GiveInventory(\"JaxBoneEnergy\",1)\nTNT1 A 0 A_GiveInventory(\"JaxForgive\",1)\nstop\nFight:\nTNT1 A 0 A_GiveInventory(\"JaxNotForgive\",1)\nTNT1 A 0 A_JumpIfInventory(\"JaxAwfulExperience\",1,\"Fight2\")\nTNT1 A 0 A_GiveInventory(\"JaxBlaxtEnergy\",2)\nTNT1 A 0 A_GiveInventory(\"JaxBoneEnergy\",2)\ngoto FightEnd\nFight2:\n//TNT1 A 0 A_Log(\"Awful\")\nTNT1 A 0 A_GiveInventory(\"JaxBlaxtEnergy\",3)\nTNT1 A 0 A_GiveInventory(\"JaxBoneEnergy\",3)\ngoto FightEnd\nFightEnd:\nTNT1 A 0 A_GiveInventory(\"JaxBlaxtCheck\",1)\nTNT1 A 0 A_GiveInventory(\"JaxBoneCheck\",1)\nstop\n}\n}\n\nactor JaxMercy : Inventory\n{\ninventory.amount 1\ninventory.maxamount 2\n}\n\nactor JaxForgiveness : Inventory\n{\ninventory.amount 1\ninventory.maxamount 700\n}\n\nactor JaxForgives : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\nactor JaxBadTime : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\nactor JaxAwfulExperience : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\nactor JaxBlaxtEnergy : Inventory\n{\ninventory.amount 1\ninventory.maxamount 250\n}\n\nactor JaxBoneEnergy : Inventory\n{\ninventory.amount 1\ninventory.maxamount 250\n}\n\nactor JaxBlaxtCheck : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"JaxBlaxtEnergy\",175,\"FireEm\")\nTNT1 A 0 A_JumpIfInventory(\"JaxBlaxtEnergy\",75,\"Decision\")\nstop\nDecision:\nTNT1 A 0 A_Jump(16, \"FireEm\")\nstop\nFireEm:\nTNT1 A 0 A_TakeInventory(\"JaxBlaxtEnergy\",75)\nTNT1 A 0 A_GiveInventory(\"JaxterBlaxterPickup\",1)\nstop\n}\n}\n\nactor JaxBoneCheck : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"JaxBoneEnergy\",225,\"FireEm\")\nTNT1 A 0 A_JumpIfInventory(\"JaxBoneEnergy\",25,\"Decision\")\nstop\nDecision:\nTNT1 A 0 A_Jump(8, \"FireEm\")\nstop\nFireEm:\nTNT1 A 0 A_TakeInventory(\"JaxBoneEnergy\",25)\nTNT1 A 0 A_GiveInventory(\"JaxBonePickup\",1)\nstop\n}\n}\n\nactor JaxterBlaxterPickup : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 AAAA 0 A_SpawnItemEx(\"JaxterBlaxterSpawn\",0,0,random(28,56),-10,random(-250,250),random(-24,72),random(-2,2))\nstop\n}\n}\n\nactor JaxBonePickup : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_Jump(128,\"Pickup2\")\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1Shooter\")\nstop\nPickup2:\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3Shooter\")\nstop\n}\n}\n\nactor JaxBoneShooterBase\n{\n+NOINTERACTION\n-SOLID\n+MISSILE\nradius 1\nheight 1\n+NOGRAVITY\n+DONTBLAST\nrenderstyle none\nvar int user_angle;\nreactiontime 20 //online issue\nstates\n{\nSpawn:\nTNT1 A 0\nstop\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nconst int BONE1_COUNT = 16;\nconst int BONE1_SPEED = 16;\n\nconst int BONE1_ANGLEPLUS = 90/BONE1_COUNT;\n\nactor JaxBone1Shooter : JaxBoneShooterBase\n{\nstates\n{\nSpawn:\nTNT1 A 0\n//TNT1 A 0 A_SetUserVar(\"user_angle\",0)\ngoto Spawn1\nSpawn1:\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, 0, 0, 0)\n//TNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, -BONE1_SPEED, 0, 0, 0, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, 0, 0, 0)\n//TNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, -BONE1_SPEED, 0, 0, 0, 0, 0)\nSpawn2:\nTNT1 A 0 A_SetUserVar(\"user_angle\",user_angle+BONE1_ANGLEPLUS)\nTNT1 A 0 A_JumpIf(user_angle>=90,\"Spawn3\")\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, user_angle, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -user_angle, 0, 0)\n//TNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, -BONE1_SPEED, 0, 0, user_angle, 0, 0)\n//TNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, -BONE1_SPEED, 0, 0, -user_angle, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, user_angle, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -user_angle, 0, 0)\n//TNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, -BONE1_SPEED, 0, 0, user_angle, 0, 0)\n//TNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, -BONE1_SPEED, 0, 0, -user_angle, 0, 0)\nTNT1 A 0 A_CountDown\nloop\nSpawn3:\nTNT1 A 0 A_JumpIf(user_angle>90,\"Spawn4\")\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, 90, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -90, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, 90, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -90, 0, 0)\nSpawn4:\nTNT1 A 0\nstop\n}\n}\n\nconst int BONE3_COUNT = 8;\nconst int BONE3_SPEED = 16;\n\nconst int BONE3_ANGLEPLUS = 90/BONE3_COUNT;\n\nactor JaxBone3Shooter : JaxBoneShooterBase\n{\nstates\n{\nSpawn:\nTNT1 A 0\n//TNT1 A 0 A_SetUserVar(\"user_angle\",0)\ngoto Spawn1\nSpawn1:\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, 0, 0, 0)\n//TNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, -BONE3_SPEED, 0, 0, 0, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, 0, 0, 0)\n//TNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, -BONE3_SPEED, 0, 0, 0, 0, 0)\nSpawn2:\nTNT1 A 0 A_SetUserVar(\"user_angle\",user_angle+BONE3_ANGLEPLUS)\nTNT1 A 0 A_JumpIf(user_angle>=90,\"Spawn3\")\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, user_angle, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -user_angle, 0, 0)\n//TNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, -BONE3_SPEED, 0, 0, user_angle, 0, 0)\n//TNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, -BONE3_SPEED, 0, 0, -user_angle, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, user_angle, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -user_angle, 0, 0)\n//TNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, -BONE3_SPEED, 0, 0, user_angle, 0, 0)\n//TNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, -BONE3_SPEED, 0, 0, -user_angle, 0, 0)\nTNT1 A 0 A_CountDown\nloop\nSpawn3:\nTNT1 A 0 A_JumpIf(user_angle>90,\"Spawn4\")\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, 90, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -90, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, 90, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -90, 0, 0)\nSpawn4:\nTNT1 A 0\nstop\n}\n}\n\nactor JaxterBlaxterBase\n{\nPROJECTILE\n+DONTBLAST\n+RIPPER\nscale 2.5\ndamage(0)\n//Radius 15\n//Height 15\nRadius 12\nHeight 12\n}\n\nactor JaxterBlaxterSpawn : JaxterBlaxterBase\n{\nspeed 100\nreactiontime 1\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 A_CountDown\ngoto Spawn+1\nDeath:\nTNT1 A 0 A_SpawnItemEx(\"JaxterBlaxter\")\nstop\n}\n}\n\nactor JaxterBlaxter : JaxterBlaxterBase\n{\n-MISSILE\n+NOBLOCKMONST\n+SLIDESONWALLS\n+DONTSPLASH\nTranslation \"194:194=93:93\",\"240:255=4:4\"\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_PlaySoundEx(\"weapon/copyvision\", \"weapon\")\nTNT1 A 1 A_SpawnItemEx(\"JaxterBlaxterSpawnFX1\",-90)\nTNT1 A 1 A_SpawnItemEx(\"JaxterBlaxterSpawnFX2\",-80)\nTNT1 A 1 A_SpawnItemEx(\"JaxterBlaxterSpawnFX3\",-70)\nTNT1 A 1 A_SpawnItemEx(\"JaxterBlaxterSpawnFX4\",-60)\nTNT1 A 1 A_SpawnItemEx(\"JaxterBlaxterSpawnFX5\",-50)\nTNT1 A 1 A_SpawnItemEx(\"JaxterBlaxterSpawnFX6\",-40)\nTNT1 A 1 A_SpawnItemEx(\"JaxterBlaxterSpawnFX7\",-30)\nTNT1 A 1 A_SpawnItemEx(\"JaxterBlaxterSpawnFX8\",-20)\nTNT1 A 1 A_SpawnItemEx(\"JaxterBlaxterSpawnFX9\",-10)\nERO3 H 20\nTNT1 A 0 A_PlaySoundEx(\"misc/quicktrap\", \"weapon\")\nERO3 H 1 A_GiveInventory(\"FireJaxterBlaxter\",1)\nERO3 H 1 A_GiveInventory(\"FireJaxterBlaxterHarmless\",1)\nERO3 H 1 A_GiveInventory(\"FireJaxterBlaxter\",1)\nERO3 H 1 A_GiveInventory(\"FireJaxterBlaxterHarmless\",1)\nERO3 H 1 A_GiveInventory(\"FireJaxterBlaxter\",1)\nERO3 H 1 A_GiveInventory(\"FireJaxterBlaxterHarmless\",1)\nERO3 H 1 A_GiveInventory(\"FireJaxterBlaxter\",1)\nERO3 H 1 A_GiveInventory(\"FireJaxterBlaxterHarmless\",1)\nERO3 H 1 A_GiveInventory(\"FireJaxterBlaxter\",1)\nERO3 H 1 A_GiveInventory(\"FireJaxterBlaxterHarmless\",1)\nDone:\nERO3 H 1 A_FadeOut(0.1)\nwait\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor JaxterBlaxterSpawnFX : JaxterBlaxterBase\n{\n+NOINTERACTION\n+NOCLIP\n+CLIENTSIDEONLY\nTranslation \"194:194=93:93\",\"240:255=4:4\"\nRenderStyle \"translucent\"\nstates\n{\nSpawn:\nERO3 H 0\nERO3 H 1\nstop\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor JaxterBlaxterSpawnFX1 : JaxterBlaxterSpawnFX { Alpha 0.1 }\nactor JaxterBlaxterSpawnFX2 : JaxterBlaxterSpawnFX { Alpha 0.2 }\nactor JaxterBlaxterSpawnFX3 : JaxterBlaxterSpawnFX { Alpha 0.3 }\nactor JaxterBlaxterSpawnFX4 : JaxterBlaxterSpawnFX { Alpha 0.4 }\nactor JaxterBlaxterSpawnFX5 : JaxterBlaxterSpawnFX { Alpha 0.5 }\nactor JaxterBlaxterSpawnFX6 : JaxterBlaxterSpawnFX { Alpha 0.6 }\nactor JaxterBlaxterSpawnFX7 : JaxterBlaxterSpawnFX { Alpha 0.7 }\nactor JaxterBlaxterSpawnFX8 : JaxterBlaxterSpawnFX { Alpha 0.8 }\nactor JaxterBlaxterSpawnFX9 : JaxterBlaxterSpawnFX { Alpha 0.9 }\n\nactor FireJaxterBlaxter : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_ChangeFlag(\"MISSILE\",1)\nTNT1 A 0 A_CustomMissile(\"JaxterBlaxt\",0,0,0,2,0)\nTNT1 A 0 A_ChangeFlag(\"MISSILE\",0)\nTNT1 A 0 A_Recoil(2)\nstop\n}\n}\n\nactor FireJaxterBlaxterHarmless : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_ChangeFlag(\"MISSILE\",1)\nTNT1 A 0 A_CustomMissile(\"JaxterBlaxtHarmless\",0,0,0,2,0)\nTNT1 A 0 A_ChangeFlag(\"MISSILE\",0)\nTNT1 A 0 A_Recoil(2)\nstop\n}\n}\n\nactor JaxterBlaxt : JaxterBlaxterBase\n{\nPROJECTILE\nDamage(3)\ndamagetype \"QuickBoomerang\"\nSpecies \"Jax\"\n+THRUSPECIES\n+FORCEXYBILLBOARD\nobituary \"%k just stood there and took a jaxter blaxter.\"\nSpeed 32\nTranslation \"0:128=93:93\",\"200:222=4:4\",\"223:255=0:0\"\nStates\n{\nSpawn:\nQBEA A 0\nSpawn2:\nQBEA A 1\nloop\nDeath:\nTNT1 A 0 A_CustomMissile(\"JaxterBlaxtFloor\",0,0,0,2,0)\nTNT1 A 0 A_CustomMissile(\"JaxterBlaxtCeiling\",0,0,0,2,0)\nstop\nXDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor JaxterBlaxt2 : JaxterBlaxt\n{\nStates\n{\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor JaxterBlaxtFloor : JaxterBlaxt2 { +FLOORHUGGER }\nactor JaxterBlaxtCeiling : JaxterBlaxt2 { +CEILINGHUGGER }\n\nactor JaxterBlaxtHarmless : JaxterBlaxt\n{\ndamage (0)\nstates\n{\nDeath:\nTNT1 A 0 A_CustomMissile(\"JaxterBlaxtFloorHarmless\",0,0,0,2,0)\nTNT1 A 0 A_CustomMissile(\"JaxterBlaxtCeilingHarmless\",0,0,0,2,0)\nstop\n}\n}\n\nactor JaxterBlaxtFloorHarmless : JaxterBlaxtFloor { damage (0) }\nactor JaxterBlaxtCeilingHarmless : JaxterBlaxtCeiling { damage (0) }\n\nactor JaxBone\n{\nPROJECTILE\n+FLOORHUGGER\nScale 2.5\nSpeed 16\nDamage(6)\ndamagetype \"QuickBoomerang\"\nSpecies \"Jax\"\n+THRUSPECIES\nRadius 5\nobituary \"%k was boned by a bone blast.\"\nTranslation \"225:225=93:93\",\"200:224=4:4\"\n}\n\nactor JaxBone1 : JaxBone\n{\nHeight 16\nstates\n{\nSpawn:\nFLMB B 0\nSpawn2:\nFLMB BC 1\nloop\n}\n}\n/*\nactor JaxBone2 : JaxBone\n{\nHeight 32\nstates\n{\nSpawn:\nFLMB D 0\nSpawn2:\nFLMB DE 1\nloop\n}\n}\n*/\nactor JaxBone3 : JaxBone\n{\nHeight 48\nstates\n{\nSpawn:\nFLMB F 0\nSpawn2:\nFLMB FG 1\nloop\n}\n}\n\nactor JaxBone1S : JaxBone1\n{\n+THRUACTORS\nRenderStyle \"translucent\"\nAlpha 0.0\nstates\n{\nSpawn:\nFLMB B 0\nFLMB B 1 A_SetTranslucent(0.1)\nFLMB C 1 A_SetTranslucent(0.2)\nFLMB B 1 A_SetTranslucent(0.3)\nFLMB C 1 A_SetTranslucent(0.4)\nFLMB B 1 A_SetTranslucent(0.5)\nFLMB C 1 A_SetTranslucent(0.6)\nFLMB B 1 A_SetTranslucent(0.7)\nFLMB C 1 A_SetTranslucent(0.8)\nFLMB B 1 A_SetTranslucent(0.9)\nFLMB C 1 A_SetTranslucent(1.0)\nFLMB C 0 A_ChangeFlag(THRUACTORS,0)\ngoto Spawn2\n}\n}\n\nactor JaxBone3S : JaxBone3\n{\n+THRUACTORS\nRenderStyle \"translucent\"\nAlpha 0.0\nstates\n{\nSpawn:\nFLMB F 0\nFLMB F 1 A_SetTranslucent(0.1)\nFLMB G 1 A_SetTranslucent(0.2)\nFLMB F 1 A_SetTranslucent(0.3)\nFLMB G 1 A_SetTranslucent(0.4)\nFLMB F 1 A_SetTranslucent(0.5)\nFLMB G 1 A_SetTranslucent(0.6)\nFLMB F 1 A_SetTranslucent(0.7)\nFLMB G 1 A_SetTranslucent(0.8)\nFLMB F 1 A_SetTranslucent(0.9)\nFLMB G 1 A_SetTranslucent(1.0)\nFLMB G 0 A_ChangeFlag(THRUACTORS,0)\ngoto Spawn2\n}\n}\n/*\nactor JaxBone1C : JaxBone1\n{\n-FLOORHUGGER\n+CEILINGHUGGER\nYScale -2.5\n}\n\nactor JaxBone2C : JaxBone2\n{\n-FLOORHUGGER\n+CEILINGHUGGER\nYScale -2.5\n}\n\nactor JaxBone3C : JaxBone3\n{\n-FLOORHUGGER\n+CEILINGHUGGER\nYScale -2.5\n}\n*/\nactor JaxBone1SC : JaxBone1S\n{\n-FLOORHUGGER\n+CEILINGHUGGER\nHeight 32\nYScale -2.5\n//YScale -5.0\n}\n\nactor JaxBone3SC : JaxBone3S\n{\n-FLOORHUGGER\n+CEILINGHUGGER\nHeight 96\nYScale -2.5\n//YScale -5.0\n}\n\nactor JaxDodgeTime : Inventory\n{\ninventory.amount 1\ninventory.maxamount 100\n}\n\nactor JaxDodgeFX\n{\nscale 2.5\n-SOLID\n+NOGRAVITY\n+DONTSPLASH\n+CLIENTSIDEONLY\n//+NOTIMEFREEZE\nRenderStyle \"translucent\"\nAlpha 0.7\nstates\n{\nSpawn:\nEROB A 0\nSpawn2:\nEROB A 1 A_FadeOut(0.1)\nloop\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor JaxDodgeFXBlue : JaxDodgeFX { Translation \"0:255=[0,0,255]:[0,0,255]\" }\nactor JaxDodgeFXGreen : JaxDodgeFX { Translation \"0:255=[0,255,0]:[0,255,0]\" }\nactor JaxDodgeFXYellow : JaxDodgeFX { Translation \"0:255=[255,255,0]:[255,255,0]\" }\nactor JaxDodgeFXRed : JaxDodgeFX { Translation \"0:255=[255,0,0]:[255,0,0]\" }\n\nactor JaxDeathFX\n{\nscale 2.5\n-SOLID\n+NOGRAVITY\n+DONTSPLASH\n+CLIENTSIDEONLY\n//+NOTIMEFREEZE\nstates\n{\nSpawn:\nEROB H 0\nEROB H 1\nstop\nDeath:\nTNT1 A 0\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/props/jaxstuffonline.txt",
        "contents": "//optional file\n//hard coded versions of the bone shooters\n//all they do is remove this message about infinite loops while online\n\nactor JaxBoneShooterBaseOnline\n{\n+NOINTERACTION\n-SOLID\n+MISSILE\nradius 1\nheight 1\n+NOGRAVITY\n+DONTBLAST\nrenderstyle none\nstates\n{\nSpawn:\nTNT1 A 0\nstop\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor JaxBone1ShooterOnline : JaxBoneShooterBaseOnline replaces JaxBone1Shooter\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, 0, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, 0, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*2, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*3, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*4, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*5, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*6, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*7, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*8, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*9, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*10, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*11, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*12, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*13, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*14, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*15, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*16, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*17, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*18, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*2, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*3, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*4, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*5, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*6, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*7, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*8, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*9, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*10, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*11, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*12, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*13, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*14, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*15, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*16, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*17, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1S\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*18, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*2, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*3, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*4, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*5, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*6, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*7, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*8, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*9, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*10, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*11, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*12, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*13, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*14, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*15, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*16, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*17, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, BONE1_ANGLEPLUS*18, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*2, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*3, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*4, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*5, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*6, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*7, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*8, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*9, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*10, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*11, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*12, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*13, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*14, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*15, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*16, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*17, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone1SC\", 0, 0, 0, BONE1_SPEED, 0, 0, -BONE1_ANGLEPLUS*18, 0, 0)\nstop\n}\n}\n\nactor JaxBone3ShooterOnline : JaxBoneShooterBaseOnline replaces JaxBone3Shooter\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, 0, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, 0, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*2, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*3, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*4, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*5, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*6, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*7, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*8, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*9, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*10, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*11, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*12, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*13, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*14, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*15, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*16, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*17, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*18, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*2, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*3, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*4, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*5, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*6, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*7, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*8, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*9, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*10, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*11, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*12, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*13, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*14, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*15, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*16, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*17, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3S\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*18, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*2, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*3, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*4, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*5, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*6, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*7, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*8, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*9, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*10, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*11, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*12, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*13, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*14, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*15, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*16, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*17, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, BONE3_ANGLEPLUS*18, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*2, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*3, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*4, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*5, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*6, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*7, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*8, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*9, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*10, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*11, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*12, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*13, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*14, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*15, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*16, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*17, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"JaxBone3SC\", 0, 0, 0, BONE3_SPEED, 0, 0, -BONE3_ANGLEPLUS*18, 0, 0)\nstop\n}\n}"
      }
    ]
  },
  "maps": []
}

gib.gg runs on open-source software and freely licensed replacement game assets from the Freedoom project. gib.gg is not affiliated with Bethesda Softworks, id Software, or ZeniMax Media. All trademarks belong to their respective owners. Some WADs and associated metadata on this site are sourced from WAD Archive. User-submitted content remains the responsibility of its respective authors. If you believe content on this site violates your rights, please send DMCA requests to dmca@gib.gg.