chfishing-core-1f-hotfix.pk3

PK3 8.0 MiB 0 map(s)

Counts

endoom0
graphics0
lumps862
maps0
palettes0

Totals (across maps)

Things0
Linedefs0
Sectors0
Monsters0
Items0
Raw model (for completeness)
{
  "meta": {
    "id": "0c9a136c-0877-4dd6-a487-9b3414a785f5",
    "sha1": "a4ef33a09ab8c88cf080fd9e2c44a527c4718718",
    "sha256": "c543cd72c61acad0e360ca1b3e89efc4355b50eb0d1d6a7c9de22c0598e6834f",
    "filenames": [
      "chfishing-core-1f-hotfix.pk3"
    ],
    "additional": {
      "engines": [],
      "iwad": [],
      "filename": null,
      "added": "2021-01-10 03:09:45",
      "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": "2021-01-10 03:09:45",
    "file": {
      "type": "PK3",
      "size": 8404902,
      "url": "https://wadarchive2.nyc3.digitaloceanspaces.com/a4ef33a09ab8c88cf080fd9e2c44a527c4718718/a4ef33a09ab8c88cf080fd9e2c44a527c4718718.pk3.gz",
      "corrupt": false
    },
    "content": {
      "counts": {
        "endoom": 0,
        "graphics": 0,
        "lumps": 862,
        "maps": 0,
        "palettes": 0
      }
    },
    "text_files": [
      {
        "source": "pk3",
        "name": "actors/FishingTools.txt",
        "contents": "//Fishing rod\n\nactor FishingRod : CustomInventory\n{\ninventory.amount 1\ninventory.maxamount 21 //Upgrades\ninventory.icon \"FISHIC00\"\n+INVBAR\ninventory.pickupmessage \"Picked up a Fishing rod!\"\nInventory.PickupSound \"item/1up\"\nscale 2.0\nstates\n{\nSpawn:\nFROD G 1\n//FROD G 0 //A_SpawnItemEx(\"FishingRodGiver\")\nstop\nUse:\nTNT1 A 0 A_JumpIfInventory(\"IsFishing\", 4, \"Cancel\")\nTNT1 A 0 A_JumpIfInventory(\"IsFishing\", 3, \"Fish\")\nTNT1 A 0 A_JumpIfInventory(\"IsFishing\", 2, \"Cancel\")\nTNT1 A 0 A_JumpIfInventory(\"IsFishing\", 1, \"End\")\nTNT1 A 0 A_GiveInventory(\"IsFishing\")\nTNT1 A 0 A_SpawnItemEx(\"FishingBobber\",-2,0,32,cos(-pitch)*13,0,sin(-pitch)*13,frandom(-2,3),SXF_TRANSFERTRANSLATION)\nGoto End\nFish:\nTNT1 A 0 A_GiveInventory(\"IsFishing\")\nfail\nCancel:\nTNT1 A 0 A_TakeInventory(\"IsFishing\", 999)\nEnd:\nTNT1 A 0\nfail\n}\n}\n\nactor IsFishing : Inventory { inventory.maxamount 999}\n\nactor FishingBobber\n{\n\n+THRUSPECIES\nspecies \"Fishing\"\n\nscale 2.5\nPROJECTILE\ngravity 0.62\n+DONTBLAST\n+DONTREFLECT\n//+THRUACTORS\n+THRUGHOST\n-NOGRAVITY\n+DONTSPLASH\n+SKYEXPLODE\n+SEEINVISIBLE\n+HITTRACER\nspeed 13\nheight 3\nradius 3\nstates\n{\nSpawn:\nFROD B 0\nFROD B 0 Thing_ChangeTID(0, ACS_NamedExecuteWithResult(\"core_gettarget\") + 10000)\nFROD B 0 ACS_NamedExecuteAlways(\"hfish_drawline\", 0, ACS_NamedExecuteWithResult(\"core_gettarget\"), 15)\nFlying:\nFROD B 2 A_JumpIf(ACS_NamedExecuteWithREsult(\"hfish_checkwater\")==2, \"Sea\")\nloop\nSea:\nFROD B 0 A_ChangeFlag(\"NOGRAVITY\", 1)\nFROD B 0 A_Die\nDeath:\nFROD B 1\nFROD B 0 A_Stop\nFROD B 0 A_ChangeFlag(\"NOGRAVITY\", 1)\nFROD B 1 A_JumpIf(ACS_NamedExecuteWithREsult(\"hfish_checkwater\", 1)==2, \"Success\")\nFROD B 0 A_JumpIf(floorz-z!=0, \"Fade\")\nFROD B 1 A_JumpIf(ACS_NamedExecuteWithREsult(\"hfish_checkwater\", 1)>0, \"Success\")\nFade:\nFROD B 8\nGoto End\nSuccess:\nFROD B 0 A_SpawnITemex(\"MMSplash\")\nFROD B 0 ACS_NamedExecuteAlways(\"hfish_fishing\")\nFishing:\nFROD B 5 A_FaceTarget\nFROD B 35 A_JumpIfInTargetInventory(\"IsFishing\", 1, \"Fishing\")\nGoto End\nCaught:\nFROD D 0 A_PlaySoundEx(\"fishing/catchsplash\", \"SoundSlot5\")\nCatching:\nFROD D 1\nFROD B 1 A_SpawnItemEx(\"FishBobberFX\", random(-8,8), random(-8,8), 0, frandom(-5.0,5.0), frandom(-5.0,5.0), frandom(6.0,10.0), 0)\nFROD B 8 A_JumpIfInTargetInventory(\"IsFishing\", 1, \"Catching\")\nGoto End\nEnd:\nFROD B 0 A_TakeFromTarget(\"IsFishing\", 999)\nFROD BBBB 1 A_FadeOut(0.25)\nstop\n}\n}\n\nactor FishBobberFX\n{\n+MISSILE\n+THRUACTORS\n+CLIENTSIDEONLY\n+THRUSPECIES\nspecies \"Fishing\"\ntranslation \"0:254=4:4\"\n+DONTSPLASH\nscale 2.0\ngravity 1.5\nheight 1\nradius 2\nstates\n{\nSpawn:\nPIXL A 8\nFade:\nPIXL A 1 A_FadeOut(0.1)\nloop\n}\n}\n\nactor FishingRodFX\n{\n+CLIENTSIDEONLY\n+NOINTERACTION\n+THRUSPECIES\nspecies \"Fishing\"\nscale 2.5\nheight 1\nradius 1\nstates\n{\nSpawn:\nFROD A 2\nstop\n}\n}\n\nactor FishingRodLineFX\n{\n+CLIENTSIDEONLY\n+NOINTERACTION\n+THRUSPECIES\nspecies \"Fishing\"\nscale 2.5\nheight 1\nradius 1\nstates\n{\nSpawn:\nFROD C 2\nstop\n}\n}\n\nactor FishCooldown : Powerup\n{\npowerup.duration 35\n}\n\nactor FishedCount : Inventory\n{\ninventory.maxamount 999999\n}\n\nactor FishingRodGiver : CustomInventory\n{\ninventory.amount 1\ninventory.maxamount 99\ninventory.pickupmessage \"Picked up a Fishing rod!\"\nscale 2.0\n-INVBAR\ninventory.icon \"FISHIC00\"\nInventory.PickupSound \"item/1up\"\nstates\n{\nSpawn:\nFROD G 300\nTNT1 A 0 A_SpawnITemEx(\"FishItemFog\")\nstop\nPickup:\nFROD G 0 A_JumpIfInventory(\"FishingRod\",1,\"Nope\")\nFROD G 0 A_GiveInventory(\"FishingRod\",1)\nFROD G 0 A_Print(\"Note: Enter \\\"PVP\\\" in the console to toggle combat and fish in peace.\",3)\nstop\nNope:\nFROD G 0\nfail\n}\n}\n\nactor FishingUpgradeGiver : CustomInventory\n{\ninventory.amount 1\ninventory.maxamount 99\ninventory.pickupmessage \"\\cfFishing Skill upgrade!\"\ninventory.usesound \"fish/upgrade\"\nscale 2.5\ninventory.icon \"FISHIC68\"\nInventory.PickupSound \"item/1up\"\ntag \"Fishing Upgrade (catch less common fish)!\"\nstates\n{\nSpawn:\nRMCD A 5\nstop\n//Use:\n//RMCD A 0 A_JumpIfInventory(\"FishingRod\",1,1)\n//goto Failure\n//RMCD A 0 A_JumpIfInventory(\"UpgradeCooldown\",1,\"Failure\")\n//RMCD A 0 A_JumpIfInventory(\"FishingRod\",0,\"NoUse\")\n// CMM:\n// Not sure if UpgadeCooldown is needed anymore since this will trigger immediately now\nPickup:\nRMCD A 0 A_JumpIfInventory(\"FishingRod\",1,1)\ngoto Failure\nRMCD A 0 A_GiveInventory(\"FishingRod\",1)//Upgrades are indicated by item count\nRMCD A 0 A_GiveInventory(\"FishingUpgrade\",1)\nRMCD A 0 A_GiveInventory(\"UpgradeCooldown\",1)\nRMCD A 0 ACS_NamedExecuteAlways(\"hfish_upgradefishskill\",0,0)\nstop\n// CMM: Unused\nNoUse:\nRMCD A 0 A_GiveInventory(\"UpgradeCooldown\",1)\nRMCD A 0 A_Print(\"Your fishing upgrade level has reached maximum!\",3)\nfail\nFailure:\nRMCD A 0\nfail\n}\n}\n\nactor UpgradeCooldown : Powerup\n{\npowerup.duration 350\n}\n\nactor FishingUpgrade : Inventory\n{\ninventory.amount 1\ninventory.maxamount 20\n}\n\nactor FishingLogBook : CustomInventory\n{\ninventory.pickupmessage \"Picked up a Log Book!\"\nscale 1.7\nstates\n{\nSpawn:\nFIS3 S -1\nstop\nPickup:\nFIS3 G 0 A_JumpIfInventory(\"Fish_FishingLogBook\", 1, \"Failure\")\nFIS3 G 0 A_SpawnITemEx(\"Fish_FishingLogBook\", 1)\nfail\nFailure:\nFIS3 G 0\nstop\n}\n}\n\nactor FishingCollectionFX\n{\n-SOLID\n+CLIENTSIDEONLY\n+MISSILE\n+NOINTERACTION\nheight 2\nradius 2\nscale 1.0\nreactiontime 100\nstates\n{\nSpawn:\nTNT1 A 0 A_CountDown\nFCOL A 1 A_Warp(AAPTR_TARGET, -32, 0, 28, 180, WARPF_NOCHECKPOSITION|WARPF_COPYINTERPOLATION)\nFCOL A 1 A_JumpIfInventory(\"FishReadingBook\", 1, \"Spawn\", AAPTR_TARGET)\nstop\n}\n}\nactor Fish_FishingLogBook : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 1\ninventory.icon \"FISHIU46\"\ninventory.pickupmessage \"Picked up a Fishing Log Book!\"\ninventory.usesound \"\"\nscale 1.7\nstates\n{\nSpawn:\nFIS3 S 15\nTNT1 A 0 A_SpawnITemEx(\"FishItemFog\")\nstop\nFeedPet:\nTNT1 A 0\nfail\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_FishingLogBook\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_opencollection\", 0)//A_fireCustomMissile(\"PlayerAnalyzerProjectile\")\nfail\nFailure:\nFIS3 G 0\nstop\n}\n}\n\nactor PlayerAnalyzer : CustomInventory\n{\ninventory.pickupmessage \"Picked up a Player Analyzer!\"\ntranslation \"192:192=104:104\", \"198:198=128:128\"\nscale 1.7\nstates\n{\nSpawn:\nFIS3 G -1\nstop\nPickup:\nFIS3 G 0 A_JumpIfInventory(\"Fish_PlayerAnalyzer\", 1, \"Failure\")\nFIS3 G 0 A_SpawnITemEx(\"Fish_PlayerAnalyzer\", 1)\nfail\nFeedPet:\nTNT1 A 0\nfail\nFailure:\nFIS3 G 0\nstop\n}\n}\n\nactor Fish_PlayerAnalyzer : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 1\ninventory.icon \"FISHIU36\"\ninventory.pickupmessage \"Picked up a Player Analyzer!\"\ninventory.usesound \"misc/fishanalyze\"\ntranslation \"192:192=104:104\", \"198:198=128:128\"\nscale 1.7\nstates\n{\nSpawn:\nFIS3 G 15\nTNT1 A 0 A_SpawnITemEx(\"FishItemFog\")\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_PlayerAnalyzer\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nFeedPet:\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 A 0 A_FireCustomMissile(\"PlayerAnalyzerProjectile\", 0, 0)\nTNT1 A 0 A_GiveInventory(\"FishCooldown\", 1)\nfail\n}\n}\n\nactor PlayerAnalyzerProjectile\n{\nPROJECTILE\n+HITTRACER\n+DONTSPLASH\n+DONTREFLECT\n+DONTBLAST\nrenderstyle none\ndamage 0\nspeed 50\nstates\n{\nSpawn:\nPLAY A 5\nDeath:\nTNT1 A 0 A_ChangeFlag(\"NOINTERACTION\", 1)\nTNT1 A 5 ACS_NamedExecuteAlways(\"hfish_analyzeplayer\", 0)\nstop\n}\n}\n\nactor Fish_PetAnalyzer : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 1\ninventory.icon \"FISHIU49\"\ninventory.pickupmessage \"Picked up a Pet Analyzer!\"\ninventory.usesound \"misc/fishanalyze\"\ntranslation \"192:192=176:176\", \"198:198=184:184\"\nscale 1.7\nstates\n{\nSpawn:\nFIS3 G 15\nTNT1 A 0 A_SpawnITemEx(\"FishItemFog\")\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_PetAnalyzer\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nFeedPet:\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 A 0 A_FireCustomMissile(\"PetAnalyzerProjectile\", 0, 0)\nTNT1 A 0 A_GiveInventory(\"FishCooldown\", 1)\nfail\n}\n}\n\nactor PetAnalyzerProjectile : PlayerAnalyzerProjectile\n{\nstates\n{\nSpawn:\nPLAY A 5\nDeath:\nTNT1 A 0 A_ChangeFlag(\"NOINTERACTION\", 1)\nTNT1 A 5 ACS_NamedExecuteAlways(\"hfish_analyzepet\", 0)\nstop\n}\n}\n\nactor OnceFish : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\nactor FishingDebugger : OnceFish {}\nactor DropfishTrigger : OnceFish {}\nactor FeedpetTrigger : OnceFish {}\nactor FishReadingBook : OnceFish {}\n\nactor PVPNoToggle : OnceFish {}\n\nactor PVPProtection : PowerProtection\n{\ndamagefactor \"Normal\", 0.0\ndamagefactor \"Misc\", 1.0\ndamagefactor \"Enemy\", 1.0\ndamagefactor \"Suicide\", 1.0\ndamagefactor \"Exit\", 1.0\ndamagefactor \"InstantDeath\", 1.0\ndamagefactor \"Falling\", 1.0\ndamagefactor \"Crush\", 1.0\ndamagefactor \"Telefrag\", 1.0\ndamagefactor \"Slime\", 1.0\ndamagefactor \"Drowning\", 1.0\ndamagefactor \"FlingDamage\", 1.0 // clown train\ndamagefactor \"Spiney\", 1.0 // spike pits\ndamagefactor \"GrandDad\", 1.0\n\npowerup.duration 0x7FFFFFFF\n}\n\nactor PVEProtection : PowerProtection\n{\ndamagefactor \"Normal\", 0.0\ndamagefactor \"Enemy\", 1.0\ndamagefactor \"Misc\", 1.0\ndamagefactor \"Telefrag\", 1.0\ndamagefactor \"SparkShock\", 1.0\n\npowerup.duration -2\n}\n\nactor PVPNoDamage : PowerDamage\n{\ndamagefactor \"Normal\", 0.0\npowerup.duration 0x7FFFFFFF\n}\n\nactor EventProtection : PowerInvulnerable\n{\npowerup.duration -999\n}\n\nactor BossDamagePunishment : PowerDamage\n{\ndamagefactor \"normal\", 0.1\npowerup.duration -11\n}\n\nactor BossVictoryInvul : PowerDamage\n{\ndamagefactor \"normal\", 0.0\npowerup.duration -120\n}\n\nactor ExitUnitAuto : ExitUnit\n{\n+INVENTORY.AUTOACTIVATE\n}\n\nactor IsUnsticking : OnceFish {}\n\nactor FishWallChecker\n{\n-SOLID\nheight 56\nradius 56\nstates\n{\nSpawn:\nTNT1 A 5\nstop\n}\n}\n\nactor FishItemFog\n{\n+NOINTERACTION\n-SOLID\n+NOGRAVITY\nscale 1.5\nstates\n{\nSpawn:\nTFOG BC 3\nstop\n}\n}\n\nactor FishDebugMarker : MapMarker\n{\ntranslation \"0:255=198:198\"\nheight 1\nradius 1\n+NOINTERACTION\nstates\n{\nSpawn:\nMMFX E -1\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/Angelfish.txt",
        "contents": "//Back accessory\n\nactor Fish_Angel : BaseFish\n{\ninventory.amount 1\ninventory.usesound \"fish/setdeco\"\nstates\n{\nSpawn:\nFISI L 2400\nstop\nDropFish:\nFISI L 0 A_SpawnItemEx(\"Fish_Angel\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nExp:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 200) // exp to give\nstop\nUseF:\nTNT1 A 0\nstop\nFailure:\nTNT1 A 0\nstop\n}\n}\n\nactor Fish_DawnAngel : Fish_Angel\n{\nTranslation \"192:192=4:4\", \"198:198=214:214\"\ninventory.icon \"FISHIC46\"\ninventory.pickupmessage \"Picked up a Dawn Angel!\"\nstates\n{\nDropFish:\nFISI L 0 A_SpawnItemEx(\"Fish_DawnAngel\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishWingCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishWingCooldown\",1)\nGoto Wing\nWing:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setwings\", 0, 1, 23228)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 0, 3)\ngoto Exp\n}\n}\n\nactor Fish_GlacialAngel : Fish_DawnAngel\n{\nTranslation \"192:192=201:201\", \"198:198=204:204\"\ninventory.icon \"FISHIC47\"\ninventory.pickupmessage \"Picked up a Glacial Angel!\"\nrenderstyle translucent\nalpha 0.8\nstates\n{\nDropFish:\nFISI L 0 A_SpawnItemEx(\"Fish_GlacialAngel\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishWingCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishWingCooldown\",1)\nGoto Wing\nWing:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setwings\", 0, 2, 27738)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 1, 3)\ngoto Exp\n}\n}\n\nactor Fish_DragonAngel : Fish_DawnAngel\n{\nTranslation \"192:192=104:104\", \"198:198=110:110\"\ninventory.icon \"FISHIC53\"\ninventory.pickupmessage \"Picked up a Dragon Angel!\"\nstates\n{\nDropFish:\nFISI L 0 A_SpawnItemEx(\"Fish_DragonAngel\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishWingCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishWingCooldown\",1)\nGoto Wing\nWing:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setwings\", 0, 8, 22005)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 2, 3)\ngoto Exp\n}\n}\n\nactor FishWingCooldown : FishCooldown\n{\npowerup.duration 3\n}\n\nactor AngelDawnWings\n{\n+MISSILE\n+CLIENTSIDEONLY\n+NOINTERACTION\n+NOCLIP\n-SOLID\nheight 1\nradius 1\n+NOGRAVITY\nscale 2.5\nvar int user_offsetx;\nvar int user_offsety;\nvar int user_offsetz;\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1)\nGoto Show\nShow:\nFWIN A 1 A_Warp(AAPTR_TARGET, (user_offsetx - 18), user_offsety, (user_offsetz - 14), 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor AngelGlacialWings : AngelDawnWings{translation \"192:192=201:201\", \"198:198=204:204\", \"0:0=240:240\"\nrenderstyle translucent\nalpha 0.8}\n\nactor AngelDragonWings : AngelDawnWings\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1)\nGoto Show\nShow:\nFWIN B 1 A_Warp(AAPTR_TARGET, (user_offsetx - 18), user_offsety, (user_offsetz - 14), 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\n//guitar\nactor Fish_RockAngel : Fish_DawnAngel\n{\nTranslation \"192:192=197:197\", \"198:198=198:198\"\ninventory.icon \"FISHIC81\"\ninventory.pickupmessage \"Picked up a Rock Angel!\"\nstates\n{\nDropFish:\nFISI L 0 A_SpawnItemEx(\"Fish_RockAngel\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishWingCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishWingCooldown\",1)\nGoto Wing\nWing:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setwings\", 0, 11, 27464)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 3, 3)\ngoto Exp\n}\n}\n\nactor AngelGuitar : AngelDawnWings\n{\nTranslation \"192:192=197:197\", \"198:198=198:198\"\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1)\nGoto Show\nShow:\nFWIN D 1 A_Warp(AAPTR_TARGET, (user_offsetx - 9), user_offsety, (user_offsetz - 0), 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\n//Light Flag\nactor Fish_BlueWarAngel : Fish_DawnAngel\n{\nTranslation \"192:192=198:198\", \"198:198=4:4\"\ninventory.icon \"FISHIC92\"\ninventory.pickupmessage \"Picked up a Blue War Angel!\"\nstates\n{\nDropFish:\nFISI L 0 A_SpawnItemEx(\"Fish_BlueWarAngel\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishWingCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishWingCooldown\",1)\nGoto Wing\nWing:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setwings\", 0, 13, 27464)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 4, 3)\ngoto Exp\n}\n}\n\n//Wily Flag\nactor Fish_RedWarAngel : Fish_DawnAngel\n{\nTranslation \"192:192=41:41\", \"198:198=4:4\"\ninventory.icon \"FISHIC90\"\ninventory.pickupmessage \"Picked up a Red War Angel!\"\nstates\n{\nDropFish:\nFISI L 0 A_SpawnItemEx(\"Fish_RedWarAngel\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishWingCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishWingCooldown\",1)\nGoto Wing\nWing:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setwings\", 0, 14, 24231)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 5, 3)\ngoto Exp\n}\n}\n\nactor BlueWarBanners : AngelDawnWings\n{\nTranslation \"192:192=192:192\", \"198:198=198:198\"\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1)\nGoto Show\nShow:\nFWIN E 1 A_Warp(AAPTR_TARGET, (user_offsetx - 9), user_offsety, (user_offsetz - 14), 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor RedWarBanners : AngelDawnWings\n{\nTranslation \"192:192=37:37\", \"198:198=41:41\"\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1)\nGoto Show\nShow:\nFWIN F 1 A_Warp(AAPTR_TARGET, (user_offsetx - 9), user_offsety, (user_offsetz - 14), 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\n//sword\nactor Fish_SteelAngel : Fish_DawnAngel\n{\nTranslation \"192:192=4:4\", \"198:198=92:92\"\ninventory.icon \"FISHIC55\"\ninventory.pickupmessage \"Picked up a Steel Angel!\"\nstates\n{\nDropFish:\nFISI L 0 A_SpawnItemEx(\"Fish_SteelAngel\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishWingCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishWingCooldown\",1)\nGoto Wing\nWing:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setwings\", 0, 3, 23274)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 6, 3)\ngoto Exp\n}\n}\n\nactor AngelSword : AngelDawnWings\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1)\nGoto Show\nShow:\nFWIN G 1 A_Warp(AAPTR_TARGET, (user_offsetx - 9), user_offsety, (user_offsetz - 14), 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\n//balloons\nactor Fish_RubberAngel : Fish_DawnAngel\n{\nTranslation \"192:192=176:176\", \"198:198=189:189\"\ninventory.icon \"FISHIC52\"\ninventory.pickupmessage \"Picked up a Rubber Angel!\"\nstates\n{\nDropFish:\nFISI L 0 A_SpawnItemEx(\"Fish_RubberAngel\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishWingCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishWingCooldown\",1)\nGoto Wing\nWing:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setwings\", 0, 4, 23152)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 7, 3)\ngoto Exp\n}\n}\n\nactor AngelBalloon : AngelDawnWings\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1)\nGoto Show\nShow:\nFWIN H 1 A_Warp(AAPTR_TARGET, (user_offsetx + 12), (user_offsety - 20), (user_offsetz - 14), 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\n//butterfly\nactor Fish_FlutterAngel : Fish_DawnAngel\n{\nTranslation \"192:192=246:246\", \"198:198=245:245\"\ninventory.icon \"FISHIC51\"\ninventory.pickupmessage \"Picked up a Flutter Angel!\"\nstates\n{\nDropFish:\nFISI L 0 A_SpawnItemEx(\"Fish_FlutterAngel\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishWingCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishWingCooldown\",1)\nGoto Wing\nWing:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setwings\", 0, 5, 25640)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 8, 3)\ngoto Exp\n}\n}\n\nactor AngelFlutterWings : AngelDawnWings\n{\nscale 1.5\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1)\nGoto Show\nShow:\nFWIN I 1 A_Warp(AAPTR_TARGET, (user_offsetx - 18), user_offsety, (user_offsetz - 14), 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\n//wolf tail\nactor Fish_FuzzyAngel : Fish_DawnAngel\n{\nTranslation \"192:192=227:227\", \"198:198=4:4\"\ninventory.icon \"FISHIC93\"\ninventory.pickupmessage \"Picked up a Fuzzy Angel!\"\nstates\n{\nDropFish:\nFISI L 0 A_SpawnItemEx(\"Fish_FuzzyAngel\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishWingCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishWingCooldown\",1)\nGoto Wing\nWing:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setwings\", 0, 6, 24805)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 9, 3)\ngoto Exp\n}\n}\n\nactor AngelFuzzyWings : AngelDawnWings\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1)\nGoto Show\nShow:\nFWIN J 1 A_Warp(AAPTR_TARGET, (user_offsetx - 18), user_offsety, (user_offsetz - 14), 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\n//bladed wings\nactor Fish_SharpAngel : Fish_DawnAngel\n{\nTranslation \"192:192=4:4\", \"198:198=196:196\"\ninventory.icon \"FISHIC54\"\ninventory.pickupmessage \"Picked up a Sharp Angel!\"\nstates\n{\nDropFish:\nFISI L 0 A_SpawnItemEx(\"Fish_SharpAngel\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishWingCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishWingCooldown\",1)\nGoto Wing\nWing:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setwings\", 0, 7, 27554)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 10, 3)\ngoto Exp\n}\n}\n\nactor AngelSharpWings : AngelDawnWings\n{\nscale 1.5\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1)\nGoto Show\nShow:\nFWIN K 1 A_Warp(AAPTR_TARGET, (user_offsetx - 18), user_offsety, (user_offsetz - 14), 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\n//colour changing\nactor Fish_NeonAngel : Fish_DawnAngel\n{\nTranslation \"192:192=251:251\", \"198:198=242:242\"\ninventory.icon \"FISHIC50\"\ninventory.pickupmessage \"Picked up a Neon Angel!\"\nstates\n{\nDropFish:\nFISI L 0 A_SpawnItemEx(\"Fish_NeonAngel\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishWingCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishWingCooldown\",1)\nGoto Wing\nWing:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setwings\", 0, 9, 25820)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 11, 3)\ngoto Exp\n}\n}\n\nactor AngelNeonWings : AngelDawnWings\n{\nscale 1.5\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1)\nGoto Show\nShow:\nFWIN MMMMNNNNOOOO 1 A_Warp(AAPTR_TARGET, (user_offsetx - 18), user_offsety, (user_offsetz - 14), 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\n//cat tail\nactor Fish_SoftAngel : Fish_DawnAngel\n{\nTranslation \"192:192=220:220\", \"198:198=217:217\"\ninventory.icon \"FISHID88\"\ninventory.pickupmessage \"Picked up a Soft Angel!\"\nstates\n{\nDropFish:\nFISI L 0 A_SpawnItemEx(\"Fish_SoftAngel\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishWingCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishWingCooldown\",1)\nGoto Wing\nWing:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setwings\", 0, 12, 24365)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 12, 3)\ngoto Exp\n}\n}\n\nactor AngelSoftTail : AngelDawnWings\n{\nscale 2.5\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1)\nGoto Show\nShow:\nFWIN P 1 A_Warp(AAPTR_TARGET, (user_offsetx - 18), user_offsety, (user_offsetz - 14), 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\n//wind\nactor Fish_ToyAngel : Fish_DawnAngel\n{\nTranslation \"192:192=85:85\", \"198:198=80:80\"\ninventory.icon \"FISHID92\"\ninventory.pickupmessage \"Picked up a Toy Angel!\"\nstates\n{\nDropFish:\nFISI L 0 A_SpawnItemEx(\"Fish_ToyAngel\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishWingCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishWingCooldown\",1)\nGoto Wing\nWing:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setwings\", 0, 15, 23274)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 13, 3)\ngoto Exp\n}\n}\n\nactor AngelToyWings : AngelDawnWings\n{\nscale 2.5\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1)\nGoto Show\nShow:\nFWIN Q 1 A_Warp(AAPTR_TARGET, (user_offsetx - 18), user_offsety, (user_offsetz - 14), 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/Shrimp.txt",
        "contents": "//Aura\n\nactor Fish_Shrimp : BaseFish\n{\ninventory.amount 1\ninventory.usesound \"fish/setdeco\"\nstates\n{\nSpawn:\nFISI J 2400\nstop\nDropFish:\nFISI J 0 A_SpawnItemEx(\"Fish_Shrimp\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0\nstop\nFailure:\nTNT1 A 0\nfail\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nExp:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor FishAuraCooldown : FishWingCooldown {}\n\nactor Fish_SpicyShrimp : Fish_Shrimp //fire\n{\nTranslation \"192:192=182:182\", \"198:198=176:176\"\ninventory.icon \"FISHIC56\"\ninventory.pickupmessage \"Picked up a spicy Shrimp!\"\nstates\n{\nDropFish:\nFISI J 0 A_SpawnItemEx(\"Fish_SpicyShrimp\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAuraCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAuraCooldown\",1)\nGoto Aura\nAura:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setaura\", 0, 1, 24141)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 0, 4)\ngoto Exp\n}\n}\n\nactor ShrimpSpicyAura\n{\nrenderstyle none\n+MISSILE\n+CLIENTSIDEONLY\n+NOINTERACTION\n+NOCLIP\n-SOLID\nheight 1\nradius 1\n+NOGRAVITY\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1, 1)\nGoto Show\nShow:\nTNT1 AAA 0 A_SpawnItemEx(\"ShrimpSpicyFX\", 38 + random(0, 16), 0, random(4, 48), 0, 0, random(1,4), random(0,360), 1)\nBASS A 5 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor ShrimpSpicyFX\n{\nrenderstyle translucent\nalpha 1.0\nscale 2.0\n+NOINTERACTION\n+CLIENTSIDEONLY\nheight 1\nradius 1\n+NOGRAVITY\n+BRIGHT\nstates\n{\nSpawn:\nF2FX AAABBBCCCDDD 1 bright A_FadeOut(0.05)\nstop\n}\n}\n\nactor Fish_RoyalShrimp : Fish_Shrimp //sparkles\n{\nTranslation \"192:192=214:214\", \"198:198=229:229\"\ninventory.icon \"FISHIC57\"\ninventory.pickupmessage \"Picked up a Royal Shrimp!\"\nstates\n{\nDropFish:\nFISI J 0 A_SpawnItemEx(\"Fish_RoyalShrimp\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAuraCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAuraCooldown\",1)\nGoto Aura\nAura:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setaura\", 0, 2, 23643)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 1, 4)\ngoto Exp\n}\n}\n\nactor ShrimpRoyalAura : ShrimpSpicyAura\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1, 1)\nGoto Show\nShow:\nTNT1 AAAA 0 A_SpawnItemEx(\"RoyalShrimpSparkleFX\", 38 + random(0, 16), 0, random(4, 65), 0, 0, 0, random(0,360), 1, 128)\nTNT1 A 5 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor RoyalShrimpSparkleFX : SparkleFX\n{\n+FORCEXYBILLBOARD\n+CLIENTSIDEONLY\nrenderstyle translucent\nalpha 0.9\n\tstates\n\t{\n\tSpawn:\n\tFLAS A 0\n\tFSFX ABCDE 4 bright\n\tstop\n\t}\n}\n\nactor Fish_BloodShrimp : Fish_Shrimp //bats\n{\nTranslation \"192:192=8:8\", \"198:198=42:42\"\ninventory.icon \"FISHIC59\"\ninventory.pickupmessage \"Picked up a Blood Shrimp!\"\nstates\n{\nDropFish:\nFISI J 0 A_SpawnItemEx(\"Fish_BloodShrimp\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAuraCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAuraCooldown\",1)\nGoto Aura\nAura:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setaura\", 0, 4, 20213)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 2, 4)\ngoto Exp\n}\n}\n\nactor ShrimpBloodAura : ShrimpSpicyAura\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1, 1)\nGoto Show\nShow:\nTNT1 A 0 A_SpawnItemEx(\"BloodShrimpBatFX\", 8 + random(0, 32), 0, random(2, 16), frandom(0.2,1.1), 0, 1, random(0,360), 1)\nTNT1 A 4 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor BloodShrimpBatFX\n{\n+NOINTERACTION\n-SOLID\n+CLIENTSIDEONLY\n\nstates\n{\nSpawn:\nFSFX FFFFGGGGFFFFGGGG 1 A_ScaleVelocity(1.1)\nFSFX FFFFGGGGFFFFGGGG 1 A_FadeOut(0.15)\nstop\n}\n}\n\nactor Fish_SoapyShrimp : Fish_Shrimp //bubbles\n{\nTranslation \"192:192=102:102\", \"198:198=96:96\"\ninventory.icon \"FISHIC60\"\ninventory.pickupmessage \"Picked up a Soapy Shrimp!\"\nstates\n{\nDropFish:\nFISI J 0 A_SpawnItemEx(\"Fish_SoapyShrimp\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAuraCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAuraCooldown\",1)\nGoto Aura\nAura:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setaura\", 0, 5, 23174)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 3, 4)\ngoto Exp\n}\n}\n\nactor ShrimpSoapyAura : ShrimpSpicyAura\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1, 1)\nGoto Show\nShow:\nTNT1 AA 0 A_SpawnItemEx(\"SoapyShrimpFX\", 48 + random(0, 2), 0, random(2, 32), frandom(-1.1,1.1), 0, frandom(-1.0,1.0), random(0,360), 1)\nTNT1 A 5 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor SoapyShrimpFX\n{\n+NOINTERACTION\n-SOLID\n+CLIENTSIDEONLY\nrenderstyle translucent\nalpha 0.8\nscale 0.25\nstates\n{\nSpawn:\nFSFX UUUUU 1 A_SetScale(scalex + 0.1, scaley + 0.1)\nFSFX UUUUU 1 A_SetScale(scalex - 0.1, scaley - 0.1)\nFSFX UUUUU 1 A_SetScale(scalex + 0.1, scaley + 0.1)\nFSFX UUUUU 1 A_SetScale(scalex - 0.1, scaley - 0.1)\nFSFX UUUUU 1 A_SetScale(scalex + 0.1, scaley + 0.1)\nFSFX UUUUU 1 A_SetScale(scalex - 0.1, scaley - 0.1)\nFSFX UUUUU 1 A_SetScale(scalex + 0.1, scaley + 0.1)\nFSFX UUUUU 1 A_SetScale(scalex - 0.1, scaley - 0.1)\nFSFX UUUUU 1 A_SetScale(scalex + 0.1, scaley + 0.1)\nFSFX V 3 A_stop\nstop\n}\n}\n\nactor Fish_OrbitingShrimp : Fish_Shrimp //orb halo\n{\nTranslation \"192:192=192:192\", \"198:198=194:194\"\ninventory.icon \"FISHIC61\"\ninventory.pickupmessage \"Picked up an Orbiting Shrimp!\"\nstates\n{\nDropFish:\nFISI J 0 A_SpawnItemEx(\"Fish_OrbitingShrimp\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAuraCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAuraCooldown\",1)\nGoto Aura\nAura:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setaura\", 0, 6, 27464)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 4, 4)\ngoto Exp\n}\n}\n\nactor ShrimpOrbitingAura : ShrimpSpicyAura\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1, 1)\nGoto Show\nShow:\nTNT1 A 0 A_SpawnItemEx(\"OrbShrimpFX\", 40, 0, 56, 0, 0, 0, 0, 1)\nTNT1 A 0 A_SpawnItemEx(\"OrbShrimpFX\", 40, 0, 56, 0, 0, 0, 120, 1)\nTNT1 A 0 A_SpawnItemEx(\"OrbShrimpFX\", 40, 0, 56, 0, 0, 0, -120, 1)\nTNT1 A 0 A_SetAngle(angle + 3)\nTNT1 A 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION|WARPF_USECALLERANGLE)\nloop\n}\n}\n\nactor OrbShrimpFX\n{\n+NOINTERACTION\n+CLIENTSIDEONLY\n+NOGRAVITY\nscale 0.6\nrenderstyle add\nreactiontime 7\nstates\n{\nSpawn:\nFSFX H 0 bright A_FadeOut(0.12)\nFSFX H 0 bright A_Countdown\nFSFX H 1 bright A_SetScale(scalex - 0.08, scaley - 0.08)\nloop\n}\n}\n\nactor Fish_OilyShrimp : Fish_Shrimp //oil I guess\n{\nTranslation \"192:192=7:7\", \"198:198=5:5\"\ninventory.icon \"FISHIC62\"\ninventory.pickupmessage \"Picked up an Oily Shrimp!\"\nstates\n{\nDropFish:\nFISI J 0 A_SpawnItemEx(\"Fish_OilyShrimp\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAuraCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAuraCooldown\",1)\nGoto Aura\nAura:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setaura\", 0, 7, 23003)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 5, 4)\ngoto Exp\n}\n}\n\nactor ShrimpOilyAura : ShrimpSpicyAura\n{\n\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1, 1)\nGoto Show\nShow:\nTNT1 A 0 A_SpawnItemEx(\"ShrimpOilyFX\", 16, 0, frandom(5.0,8.0), frandom(1.0, 3.0), 0, 0, random(0,360), 1)\nTNT1 A 4 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION|WARPF_USECALLERANGLE)\nTNT1 A 0 A_SpawnItemEx(\"ShrimpOilyFX2\", 16, 0, frandom(5.0,8.0), frandom(1.0, 3.0), 0, 0, random(0,360), 1)\nTNT1 A 4 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION|WARPF_USECALLERANGLE)\nloop\n}\n}\n\nactor ShrimpOilyFX : ReprogramFX\n{\n+CLIENTSIDEONLY\nrenderstyle translucent\nstates\n{\nSpawn:\nFSFX W 0 A_SetScale(scalex + 0.12, scaley + 0.12)\nFSFX W 0 A_FadeOut(0.04)\nFSFX W 1 A_ScaleVelocity(0.7)\nloop\n}\n}\n\nactor ShrimpOilyFX2 : ShrimpOilyFX\n{\nstates\n{\nSpawn:\nFSFX X 0 A_SetScale(scalex + 0.12, scaley + 0.12)\nFSFX X 0 A_FadeOut(0.04)\nFSFX X 1 A_ScaleVelocity(0.7)\nloop\n}\n}\n\nactor Fish_StormyShrimp : Fish_Shrimp //sad cloud\n{\nTranslation \"192:192=71:71\", \"198:198=91:91\"\ninventory.icon \"FISHIC79\"\ninventory.pickupmessage \"Picked up a Stormy Shrimp!\"\nstates\n{\nDropFish:\nFISI J 0 A_SpawnItemEx(\"Fish_StormyShrimp\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAuraCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAuraCooldown\",1)\nGoto Aura\nAura:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setaura\", 0, 8, 27464)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 6, 4)\ngoto Exp\n}\n}\n\nactor ShrimpStormCloud : ShrimpSpicyAura\n{\nrenderstyle normal\nscale 2.5\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1, 1)\nGoto Show\nShow:\nF2FX D 0 A_SpawnItemEx(\"ShrimpRainDrop\", random(-40,40), 0, 0, 0, 0, -5, random(0,360), 1)\nF2FX EEEE 1 A_Warp(AAPTR_TARGET, 0, 0, 120, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nF2FX D 0 A_SpawnItemEx(\"ShrimpRainDrop\", random(-40,40), 0, 0, 0, 0, -5, random(0,360), 1)\nF2FX FFFF 1 A_Warp(AAPTR_TARGET, 0, 0, 120, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nF2FX D 0 A_SpawnItemEx(\"ShrimpRainDrop\", random(-40,40), 0, 0, 0, 0, -5, random(0,360), 1)\nF2FX GGGG 1 A_Warp(AAPTR_TARGET, 0, 0, 120, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nF2FX D 0 A_SpawnItemEx(\"ShrimpRainDrop\", random(-40,40), 0, 0, 0, 0, -5, random(0,360), 1)\nF2FX HHHH 1 A_Warp(AAPTR_TARGET, 0, 0, 120, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor ShrimpRainDrop\n{\n+CLIENTSIDEONLY\n+MISSILE\n+DONTSPLASH\nheight 3\nradius 2\nstates\n{\nSpawn:\nF2FX I 100\nstop\n}\n}\n\nactor Fish_SnowShrimp : Fish_Shrimp //snow cloud\n{\nTranslation \"192:192=4:4\", \"198:198=91:91\"\ninventory.icon \"FISHIC80\"\ninventory.pickupmessage \"Picked up a Snow Shrimp!\"\nstates\n{\nDropFish:\nFISI J 0 A_SpawnItemEx(\"Fish_SnowShrimp\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAuraCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAuraCooldown\",1)\nGoto Aura\nAura:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setaura\", 0, 9, 23193)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 7, 4)\ngoto Exp\n}\n}\n\nactor ShrimpSnowCloud : ShrimpSpicyAura\n{\nrenderstyle normal\nscale 2.5\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1, 1)\nGoto Show\nShow:\nICEL D 0 A_SpawnItemEx(\"ShrimpSnowDrop\", random(-40,40), 0, 0, frandom(-0.5,0.5), 0, -1, random(0,360), 1)\nF2FX EEEEEE 1 A_Warp(AAPTR_TARGET, 0, 0, 120, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nICEL D 0 //A_SpawnItemEx(\"ShrimpSnowDrop\", random(-40,40), 0, 0, random(-1,1), 0, -1, random(0,360))\nF2FX FFFFFF 1 A_Warp(AAPTR_TARGET, 0, 0, 120, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nICEL D 0 A_SpawnItemEx(\"ShrimpSnowDrop\", random(-40,40), 0, 0, frandom(-0.5,0.5), 0, -1, random(0,360), 1)\nF2FX GGGGGG 1 A_Warp(AAPTR_TARGET, 0, 0, 120, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nICEL D 0// A_SpawnItemEx(\"ShrimpSnowDrop\", random(-40,40), 0, 0, random(-1,1), 0, -1, random(0,360))\nF2FX HHHHHH 1 A_Warp(AAPTR_TARGET, 0, 0, 120, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor ShrimpSnowDrop\n{\n+CLIENTSIDEONLY\n+MISSILE\n+DONTSPLASH\nheight 3\nradius 2\n+NOGRAVITY\ntranslation \"192:192=80:80\", \"198:198=90:90\"\nstates\n{\nSpawn:\nICEL H 180\nstop\nDeath:\nICEL H 35\nFade:\nICEL H 1 A_FadeOut(0.1)\nloop\n}\n}\n\nactor Fish_LoveShrimp : Fish_Shrimp //hearts\n{\nTranslation \"192:192=41:41\", \"198:198=36:36\"\ninventory.icon \"FISHIC84\"\ninventory.pickupmessage \"Picked up a Love Shrimp!\"\nstates\n{\nDropFish:\nFISI J 0 A_SpawnItemEx(\"Fish_LoveShrimp\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAuraCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAuraCooldown\",1)\nGoto Aura\nAura:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setaura\", 0, 10, 23151)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 8, 4)\ngoto Exp\n}\n}\n\nactor ShrimpLoveAura : ShrimpSpicyAura\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1, 1)\nGoto Show\nShow:\nTNT1 A 0 A_SpawnItemEx(\"LoveShrimpHeartFX\", random(0, 32), 0, random(2, 16) + 64, frandom(0.2,1.1), 0, 1, random(0,360), 1)\nTNT1 A 5 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor LoveShrimpHeartFX\n{\n+NOINTERACTION\n-SOLID\n+CLIENTSIDEONLY\nscale 2.5\nstates\n{\nSpawn:\nFSFX M 0 A_SetScale(scalex - 0.1, scaley -0.1)\nFSFX M 1 A_FadeOut(0.05)\nloop\n}\n}\n\nactor Fish_InfernalShrimp : Fish_Shrimp //fire trail\n{\nTranslation \"192:192=183:183\", \"5:8=176:176\", \"198:198=0:0\"\ninventory.icon \"FISHIC87\"\ninventory.pickupmessage \"Picked up an Infernal Shrimp!\"\nstates\n{\nDropFish:\nFISI J 0 A_SpawnItemEx(\"Fish_InfernalShrimp\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAuraCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAuraCooldown\",1)\nGoto Aura\nAura:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setaura\", 0, 12, 20371)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 9, 4)\ngoto Exp\n}\n}\n\nactor ShrimpInfernalAura : ShrimpSpicyAura\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1, 1)\nGoto Show\nShow:\nTNT1 A 0 A_JumpIFCloser(16, \"WarpDelay\")\nTNT1 A 0 A_JumpIf(floorz-z==0, \"Floor\")\nWarp:\nTNT1 A 5 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nGoto Show\nWarpDelay:\nTNT1 A 35 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nGoto Show\nFloor:\nTNT1 A 0 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nTNT1 A 5 A_SpawnItemEx(\"ShrimpFireStep\", 0, 9, 0, 0, 0, 0, 0, 1)\nTNT1 A 0 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nTNT1 A 5 A_SpawnItemEx(\"ShrimpFireStep\", 0, -9, 0, 0, 0, 0, 0, 1)\nGoto Show\n}\n}\n\nactor ShrimpFireStep\n{\n+CLIENTSIDEONLY\n+NOINTERACTION\nheight 2\nradius 2\nrenderstyle translucent\nalpha 0.8\nxscale 1.9\nyscale 0.001\ntranslation \"199:199=0:0\", \"202:202=189:189\", \"4:4=177:177\"\nreactiontime 6\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 A_JumpIf(floorz-z!=0,\"Death\")\nF2FX LLLMMM 1 bright A_SetScale(scalex, scaley + 0.22)\nF2FX NOLMNOLM 3 bright\nFade:\nF2FX NOLM 3 bright A_SetScale(scalex, scaley - 0.05)\nF2FX U 0 A_CountDown\nloop\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor Fish_NatureShrimp : Fish_Shrimp //plant trail\n{\nTranslation \"192:192=111:111\", \"198:198=104:104\", \"5:8=124:124\"\ninventory.icon \"FISHIC88\"\ninventory.pickupmessage \"Picked up a Nature Shrimp!\"\nstates\n{\nDropFish:\nFISI J 0 A_SpawnItemEx(\"Fish_NatureShrimp\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAuraCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAuraCooldown\",1)\nGoto Aura\nAura:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setaura\", 0, 11, 20155)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 10, 4)\ngoto Exp\n}\n}\n\nactor ShrimpNatureAura : ShrimpSpicyAura\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1, 1)\nGoto Show\nShow:\nTNT1 A 0 A_JumpIFCloser(16, \"WarpDelay\")\nTNT1 A 0 A_JumpIf(floorz-z==0, \"Floor\")\nWarp:\nTNT1 A 5 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nGoto Show\nWarpDelay:\nTNT1 A 35 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nGoto Show\nFloor:\nTNT1 A 0 A_SpawnItemEx(\"ShrimpNature\", frandom(-48.0, 48.0), 0, 0, 0, 0, 0, random(0,360), 1)\nGoto Show+2\n}\n}\n\nactor ShrimpNature\n{\n+CLIENTSIDEONLY\n+NOINTERACTION\nheight 2\nradius 2\nscale 0.1\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_JumpIf(floorz-z!=0,\"Death\")\nTNT1 A 1 A_Jump(256, \"Flower\", \"Flower2\", \"Grass\", \"Grass2\", \"Weeds\", \"Grass\", \"Grass2\")\nFlower:\nF2FX J 1 A_SetScale(0.01, 0.01)\nGoto Grow\nFlower2:\nF2FX K 1\nGoto Grow\nGrass:\nPGRA A 1\nGoto Grow\nGrass2:\nPGRA B 1\nGoto Grow\nWeeds:\nPLA2 Q 1\nGoto Grow\nGrow:\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\"####\" # 1 A_SetScale(scalex + 0.05, scaley + 0.05)\n\nGrown:\n\"####\" # 150\nFade:\n\"####\" # 1 A_FadeOut(0.1)\nloop\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor Fish_GlowShrimp : Fish_Shrimp //glowy\n{\nTranslation \"192:192=212:212\", \"198:198=208:208\", \"5:8=248:248\"\ninventory.icon \"FISHIC89\"\ninventory.pickupmessage \"Picked up a Glow Shrimp!\"\nstates\n{\nDropFish:\nFISI J 0 A_SpawnItemEx(\"Fish_GlowShrimp\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAuraCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAuraCooldown\",1)\nGoto Aura\nAura:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setaura\", 0, 13, 27248)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 11, 4)\ngoto Exp\n}\n}\n\nactor ShrimpFireflyAura : ShrimpSpicyAura\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1, 1)\nGoto Show\nShow:\nTNT1 A 0 A_SpawnItemEx(\"ShrimpFirefly\", random(12, 64), 0, random(2, 48), 0, 0, 0, random(0,360), 1)\nTNT1 A 13 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor ShrimpFirefly\n{\n+CLIENTSIDEONLY\n+NOINTERACTION\n+FORCEXYBILLBOARD\nPROJECTILE\nscale 0.2\nrenderstyle add\nalpha 0.0\nreactiontime 12\nstates\n{\nSpawn:\nFSFX R 0 bright A_Countdown\nFSFX R 5 bright A_FadeIn(0.1)\nFSFX R 1 bright A_ChangeVelocity(frandom(-0.5,0.5), frandom(-0.5,0.5), frandom(-0.35,0.35), CVF_RELATIVE)\nloop\nDeath:\nFSFX R 5 bright A_FadeOut(0.1)\nFSFX R 1 bright A_ChangeVelocity(frandom(-0.5,0.5), frandom(-0.5,0.5), frandom(-0.35,0.35), CVF_RELATIVE)\nloop\n}\n}\n\nactor Fish_GlisteningShrimp : Fish_Shrimp //glitter\n{\nTranslation \"192:192=239:239\", \"198:198=4:4\"\ninventory.icon \"FISHID91\"\ninventory.pickupmessage \"Picked up a Glistening Shrimp!\"\nstates\n{\nDropFish:\nFISI J 0 A_SpawnItemEx(\"Fish_GlisteningShrimp\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAuraCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAuraCooldown\",1)\nGoto Aura\nAura:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setaura\", 0, 3, 25795)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 12, 4)\ngoto Exp\n}\n}\n\nactor ShrimpGlitterAura : ShrimpSpicyAura\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 14, 1)\nGoto Show\nShow:\nTNT1 A 0 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nTNT1 AA 0 A_SpawnItemEx(\"GlitterShrimpEffect\", 38 + random(0, 16), 0, random(4, 65), 0, 0, 0, random(0,360), 1, 128)\nTNT1 A 3\nloop\n}\n}\n\nactor GlitterShrimpEffect\n{\n+FORCEXYBILLBOARD\n+CLIENTSIDEONLY\n+NOINTERACTION\nPROJECTILE\nrenderstyle add\nscale 2.5\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_Jump(128, \"Glitter2\")\nGlitter1:\nPIXL A 2 A_FadeOut(0.08)\nloop\nGlitter2:\nF2FX R 2 A_FadeOut(0.08)\nloop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/CheepCheep.txt",
        "contents": "actor Fish_CheepCheep : BaseFish\n{\ninventory.amount 1\ninventory.usesound \"misc/brgillusion\"\nstates\n{\nSpawn:\nFISI M 2400\nstop\nDropFish:\nFISI M 0 A_SpawnItemEx(\"Fish_CheepCheep\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 200) // exp to give\nstop\nFailure:\nTNT1 A 0\nstop\n}\n}\n\n//Met\nactor Fish_WorkerCheepCheep : Fish_CheepCheep\n{\ntranslation \"192:192=110:110\", \"198:198=229:229\"\ninventory.icon \"FISHIC41\"\ninventory.pickupmessage \"Picked up a Worker Cheep Cheep!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI M 0 A_SpawnItemEx(\"Fish_WorkerCheepCheep\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_monstercount\")>0, \"Failure\")\nTNT1 A 0 A_SpawnItemEx(\"CheepMetool\", 128 - 32, 0, 0, 0, 0, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"CheepMetool\", 128 + 32, 32, 0, 0, 0, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"CheepMetool\", 128 + 32, -32, 0, 0, 0, 0, 0)\nstop\n}\n}\n\nactor CheepMetool\n{\n//$Category MM8BDM-Enemies\nscale 2.5\nHealth 20\nHeight 50\npainchance 0\nRadius 32\nObituary \"%o was shot by a metool.\"\n+SOLID\nmaxstepheight 50\n+DROPOFF\n+COUNTKILL\nmass 999999\n//MONSTER\n+SHOOTABLE\n+ISMONSTER\n+NOBLOOD\n+RANDOMIZE\n+LOOKALLAROUND\n+INVULNERABLE\n+DONTBLAST\n+DROPOFF\n+NOBLOCKMONST\n+DONTBLAST\nspeed 8\ndamagefactor \"Enemy\", 0.0\npainsound \"misc/devilpain\"\npainchance 0\nStates\n{\nSpawn:\nMETT D 6\nLook:\nMETT D 6 A_LookEx(0,0,0,0,180,\"See\")\nloop\nSee:\nMETT DDDDDDD 5 A_JumpIfCloser(56,\"Missile\")\nMETT D 1 A_Jump(180, \"See\")\nMissile:\nMETT E 4 A_ChangeFlag(\"INVULNERABLE\",0)\nMETT F 1 A_FaceTarget\nMETT F 0 A_CustomMissile(\"CheepMetEnemyShot\",8,0,-18,0)\nMETT F 0 A_CustomMissile(\"CheepMetEnemyShot\",8,0,18,0)\nMETT F 5 A_CustomMissile(\"CheepMetEnemyShot\",8,0,0,0)\nMETT B 4\nMETT B 1 A_JumpIf(Args[0]==1, \"Hide\")\nMETT AAABBBCCCBBB 1 A_Chase(\"\",\"\")\nMETT AAABBBCCCBBB 1 A_Chase(\"\",\"\")\nHide:\nMETT BE 5\nMETT D 5 A_ChangeFlag(\"INVULNERABLE\",1)\nMETT D 2 A_ClearTarget\nGoto Look\nDeath:\nMETT A 0 A_Stop\nMETT A 0 A_Pain\nMETT A 0 A_Fall\nMETT A 0 A_ChangeFlag(\"NOGRAVITY\",1)\nMMFX BCDE 3\nTNT1 A -1\nstop\n}\n}\n\nactor CheepMetEnemyShot\n{\nPROJECTILE\nDamage (30)\ndamagetype \"Enemy\"\nSpeed 18\nscale 2.5\nHeight 8\nRadius 8\nSeeSound \"misc/devilfire\"\nStates\n{\nSpawn:\nBASB A 1\nloop\n}\n}\n\nactor Fish_FriskyCheepCheep : Fish_CheepCheep\n{\ntranslation \"192:192=51:51\", \"198:198=226:226\"\ninventory.icon \"FISHIC42\"\ninventory.pickupmessage \"Picked up a Frisky Cheep Cheep!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI M 0 A_SpawnItemEx(\"Fish_FriskyCheepCheep\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_monstercount\")>0, \"Failure\")\nTNT1 A 0 A_SpawnItemEx(\"CheepHarry\", 164, 0, 0, 0, 0, 0, 0)\nstop\n}\n}\n\n//Needle Harry\nactor CheepHarry\n{\n//$Category MM8BDM-Enemies\n+SOLID\n+SHOOTABLE\n+COUNTKILL\n+DROPOFF\n+ISMONSTER\n+DONTBLAST\n+NOBLOCKMONST\nHeight 52\nRadius 52\nObituary \"%o was popped by Needle Harry.\"\nHealth 250\nscale 2.5\n//translation \"192:192=227:227\", \"198:198=110:110\"\nmaxstepheight 50\npainchance 256\n+LOOKALLAROUND\nmass 99999999\npainsound \"misc/devilpain\"\nspeed 8\nmeleerange 55\ndamagefactor \"Enemy\", 0.0\nvar int user_roll;\nStates\n{\nSpawn:\nTNT1 A 0\nLook:\nNHAR A 0 A_ChangeFlag(\"INVULNERABLE\",0)\nNHAR A 1 A_LookEx(0,0,0,0,360,\"See\")\nGoto Look+1\nSee:\nNHAR A 0 A_ChangeFlag(\"INVULNERABLE\",0)\nNHAR AAAAAA 5 A_FaceTarget\nGoto Missile\nMissile:\nNHAR D 0 A_SetUserVar(\"user_roll\", 0)\nNHAR A 0 A_ChangeFlag(\"INVULNERABLE\",0)\nNHAR A 0 A_FaceTarget\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,0)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,15)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,30)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,45)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,60)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,75)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,90)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,105)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,120)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,135)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,150)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,165)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,180)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,195)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,210)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,225)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,240)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,255)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,270)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,285)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,300)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,315)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,330)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,345)\nNHAR A 0 A_PlaySoundEx(\"weapon/junkshield\",\"Voice\")\nNHAR BC 10 //A_Chase(\"Melee\",\"\",CHF_DONTMOVE)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,0)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,15)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,30)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,45)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,60)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,75)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,90)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,105)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,120)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,135)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,150)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,165)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,180)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,195)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,210)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,225)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,240)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,255)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,270)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,285)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,300)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,315)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,330)\nNHAR A 0 A_SpawnItemEx(\"CheepHarryNeedle\",10,0,40,30,0,0,345)\nNHAR A 0 A_PlaySoundEx(\"weapon/junkshield\",\"Voice\")\nNHAR BC 10 //A_Chase(\"Melee\",\"\",CHF_DONTMOVE)\nGoto Roll\nRoll:\nNHAR A 0 A_ChangeFlag(\"INVULNERABLE\",1)\nNHAR DDDEEEDDDEEEDDDEEE 1 A_Chase(\"Melee\",\"\")\nNHAR D 0 A_SetUserVar(\"user_roll\", 0)\nRolling:\nNHAR DDDEEE 1 A_Chase(\"Melee\",\"See\")\nNHAR D 0 A_SetUserVar(\"user_roll\", user_roll+1)\nNHAR D 0 A_JumpIF(user_roll>50, \"Missile\")\nloop\nMelee:\nNHAR D 0 A_CustomMeleeAttack(8)\nNHAR D 0 A_FaceTarget\nNHAR DDDEEE 1\nGoto Rolling\nDeath:\nCRAZ A 0 A_Pain\nCRAZ A 0 A_Fall\nCRAZ A 0 A_SpawnItem(\"EnemyDeathFX\",0,32)\nTNT1 A -1\nstop\n}\n}\n\nactor EnemyDeathFX\n{\nScale 2.5\n+NOGRAVITY\n-SOLID\nStates\n{\nSpawn:\nMMFX BCDE 3\nstop\n}\n}\n\nactor CheepHarryNeedle\n{\nPROJECTILE\ndamage (20)\nscale 2.5\ndamagetype \"Enemy\"\nHeight 8\nRadius 8\nSpeed 25\nStates\n{\nSpawn:\nNHAR F 2\nloop\n}\n}\n\n//Spring Head\nactor Fish_ElasticCheepCheep : Fish_CheepCheep\n{\ntranslation \"192:192=4:4\", \"198:198=41:41\"\ninventory.icon \"FISHIC43\"\ninventory.pickupmessage \"Picked up an Elastic Cheep Cheep!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI M 0 A_SpawnItemEx(\"Fish_ElasticCheepCheep\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_monstercount\")>0, \"Failure\")\nTNT1 A 0 A_SpawnItemEx(\"CheepSpringer\", 164, 0, 0, 0, 0, 0, 0)\nstop\n}\n}\n\nactor CheepSpringer\n{\n//$Category MM8BDM-Enemies\nHeight 52\nRadius 52\nObituary \"%o was shot by a giant springer.\"\nHitObituary \"%o was bounced by a giant springer.\"\nHealth 300\nscale 2.5\n//translation \"192:192=227:227\", \"198:198=110:110\"\nmaxstepheight 50\npainchance 256\n+SHOOTABLE\n+COUNTKILL\n+DONTBLAST\n+SOLID\n+LOOKALLAROUND\n+ISMONSTER\n+NOBLOCKMONST\ndamagefactor \"Enemy\", 0.0\nmass 99999999\npainsound \"misc/devilpain\"\nspeed 2\nmeleerange 90\nStates\n{\nSpawn:\nTNT1 A 0\nLook:\nGSPR A 5 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"See\")\nGoto Look\nSee:\nGSPR AAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBB 1 A_Chase(\"Melee\",\"\")\nGSPR A 0 A_LookEx(LOF_NOSOUNDCHECK,0,3000,0,360,\"Missile\")\nGoto See\nMissile:\nGSPR A 0 A_FaceTarget\nGSPR A 0 A_PlaySoundEx(\"weapon/magnetmissile\",\"Voice\")\nGSPR A 0 A_CustomMissile(\"SpringerHomingMissile\",64,0,0)//A_SpawnItemEx(\"SpringerHomingMissile\",0,0,64,0,0,12,0)\nGoto See\nMelee:\nGSPR D 0 A_CustomMeleeAttack(90)\nGSPR D 0 A_FaceTarget\nGSPR CDEDCDEDCDEDCDEDCDED 4\nGoto See\nDeath:\nCRAZ A 0 A_Pain\nCRAZ A 0 A_Fall\nCRAZ A 0 A_SpawnItem(\"EnemyDeathFX\",0,32)\nTNT1 A -1\nstop\n}\n}\n\nactor SpringerHomingMissile// : MageStaffFX2\n{\n+MISSILE\n+NOGRAVITY\n-NOBLOCKMAP\n-SOLID\n+SHOOTABLE\n+SEEKERMISSILE\n+DONTBLAST\ndamagetype \"Enemy\"\nHealth 10\nHeight 16\nRadius 16\nscale 2.5\nspeed 13\nDamage (15)\ndamagefactor \"Enemy\", 0.0\nStates\n{\nSpawn:\nGSPR F 0\nGSPR F 10  A_ChangeVelocity(0.0,0.0,12.0,CVF_RELATIVE|CVF_REPLACE)// A_GiveInventory(\"CutterFlag\",1)\nGoto See\nSee:\nGSPR G 15 A_ChangeVelocity(12.0,0.0,0.0,CVF_RELATIVE|CVF_REPLACE)\nSee2:\nGSPR G 1  A_SeekerMissile(2, 10)//A_MStaffTrack\nloop\nDeath:\nCRAZ A 0 A_SpawnItem(\"EnemyDeathFX\",0,32)\nstop\n}\n}\n\n//Joe\nactor Fish_SniperCheepCheep : Fish_CheepCheep\n{\ntranslation \"192:192=102:102\", \"198:198=128:128\"\ninventory.icon \"FISHIC44\"\ninventory.pickupmessage \"Picked up a Sniper Cheep Cheep!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI M 0 A_SpawnItemEx(\"Fish_SniperCheepCheep\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_monstercount\")>0, \"Failure\")\nTNT1 A 0 A_SpawnItemEx(\"CheepSniperJoe\", 64, 0, 0, 0, 0, 0, 0)\nstop\n}\n}\n\nactor CheepSniperJoe\n{\n//$Category MM8BDM-Enemies\nHeight 52\nRadius 32\nObituary \"%o was sniped by a Sniper Joe.\"\nHealth 200\nscale 2.5\ntranslation \"192:192=4:4\", \"198:198=110:110\"\nmaxstepheight 50\npainchance 256\n+SOLID\n+SHOOTABLE\n+COUNTKILL\n+DONTBLAST\n+LOOKALLAROUND\n+NOBLOCKMONST\n+DROPOFF\n+ISMONSTER\n//dropitem \"BigWeaponEnergySP\", 32\n//dropitem \"BigHealth\", 32\nmass 99999999\npainsound \"misc/devilpain\"\nspeed 8\n\ndamagefactor \"Enemy\", 0.0\n\nStates\n{\nSpawn:\nTNT1 A 0\nTFOG A 0// Thing_ChangeTID(0, 1008)\nTNT1 A 0// ACS_ExecuteAlways(23,0)\nLook:\nSNIP A 5 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"See\")\nloop\nSee:\nSNIP B 1\nSNIP B 1 A_JumpIf(Args[0]==1, \"See2\")\nSNIP B 1 //A_JumpIfTargetInLOS(\"ShieldUp\") // THIS FUNCTION IS BUGGED ONLINE ARGH!\nSNIP BBBB 1 A_Chase\nSNIP A 0// A_JumpIfTargetInLOS(\"ShieldUp\")\nSNIP CCCC 1 A_Chase\nSNIP A 0 //A_JumpIfTargetInLOS(\"ShieldUp\")\nSNIP DDDD 1 A_Chase\nSNIP A 0 //A_JumpIfTargetInLOS(\"ShieldUp\")\nSNIP EEEE 1 A_Chase\nGoto See+3\nSee2:\nSNIP A 1 //A_JumpIfTargetInLOS(\"ShieldUp\")\nGoto Missile\n//Pain:\n//TNT1 A 1 A_Pain\nShieldUp:\nMissile:\nTNT1 A 0 A_SpawnItemEx(\"SniperJoeShieldX\",23,-7,8,momx, momy, momz, 0, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM, 0)\nTNT1 A 0 A_SpawnItemEx(\"SniperJoeShieldFX\",23,-17,8,momx, momy, momz, 0, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM, 0)\nSNIP A 2 A_FaceTarget\nTNT1 A 0 A_GiveInventory(\"CutterFlag\",1)\nTNT1 A 0 A_JumpIfInventory(\"CutterFlag\",20,\"ReadyFire\")\nloop\nReadyFire:\nTNT1 A 0 A_TakeInventory(\"CutterFlag\",999)\nTNT1 A 0 A_SpawnItemEx(\"SniperJoeShieldX\",23,-7,8,momx, momy, momz, 0, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM, 0)\nTNT1 A 0 A_SpawnItemEx(\"SniperJoeShieldFX\",23,-17,8,momx, momy, momz, 0, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM, 0)\nSNIP A 2 A_FaceTarget\nSNIP A 0 A_Jump(20,\"ShieldFire\")\nSNIP A 0 //A_JumpIfTargetInLOS(\"ReadyFire\")\nGoto ReadyFire//See\nShieldFire:\nSNIP F 15 A_FaceTarget\nSNIP F 0 A_FaceTarget\nKYOR F 0 A_PlaySoundEx(\"misc/devilfire\",\"Voice\")\nSNIP F 0 A_CustomMissile(\"GammaSniperJoeShot\",12,6,0)\nSNIP F 17\nSNIP F 0 A_FaceTarget\nKYOR F 0 A_PlaySoundEx(\"misc/devilfire\",\"Voice\")\nSNIP F 0 A_CustomMissile(\"GammaSniperJoeShot\",12,6,0)\nSNIP F 17\nSNIP F 0 A_FaceTarget\nKYOR F 0 A_PlaySoundEx(\"misc/devilfire\",\"Voice\")\nSNIP F 0 A_CustomMissile(\"GammaSniperJoeShot\",12,6,0)\nSNIP F 17\nSNIP F 1 A_JumpIf(Args[0]==0, \"See\")\nSNIP A 0 A_ClearTarget\nGoto Look\nDeath:\nDeathFX:\nCRAZ A 0 A_Pain\nCRAZ A 0 A_Fall\nTNT1 A 5 A_SpawnItem(\"EnemyDeathFX\",0,32)\nTNT1 A -1\nstop\n}\n}\n\nactor CheepSniperJoeShot : GammaSniperJoeShot\n{\nDamage (30)\ndamagetype \"Enemy\"\nspeed 60\n}\n\n//Fake\nactor Fish_LawfulCheepCheep : Fish_CheepCheep\n{\nTranslation \"192:192=229:229\", \"198:198=73:73\"\ninventory.icon \"FISHIC45\"\ninventory.pickupmessage \"Picked up a Lawful Cheep Cheep!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI M 0 A_SpawnItemEx(\"Fish_LawfulCheepCheep\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_monstercount\")>0, \"Failure\")\nTNT1 A 0 A_SpawnItemEx(\"CheepFakeman\", 80, 0, 0, 0, 0, 0, 0)\nstop\n}\n}\n\nactor CheepFakeman\n{\nTranslation \"192:192=71:71\", \"198:198=73:73\"\nscale 2.5\n//$Category MM8BDM-Bosses\nHeight 52\nRadius 34\nScale 2.5\nObituary \"%o was arrested by \\chFakeMan\\c-.\"\nHealth 250\nmass 99999999\ndamagefactor \"Enemy\", 0.0\npainchance 256\nSpeed 7\nDamage 0\nspecies \"Fakeman\"\n+COUNTKILL\n+SHOOTABLE\n+DONTBLAST\n+THRUSPECIES\n+ISMONSTER\n//-ISMONSTER\n//+NORADIUSDMG\n//+FLOAT\n-SOLID\n+DROPOFF\n+NOBLOOD\n+LOOKALLAROUND\n+SLIDESONWALLS\n+NOBLOCKMONST\n//+NODAMAGE\n//MaxStepHeight 0\ngravity 1.0\nstates\n{\n\tSpawn:\n\tFAKM A 0\n\tFAKM O 1 A_JumpIf(floorz==z, \"Land\")\n\tloop\n\tLand:\n\tFAKM IIJJKKKL 4\n\tGoto Spawn2\n\tAim:\n\tFAKM F 1 A_PlaySoundEx(\"misc/fakereloadshort\", \"SoundSlot5\", 0, 0)\n\tFAKM F -1\n\tstop\n\tSpawn2:\n\tFAKM A 1 A_LookEx(0, 0, 0, 0, 180, \"See\")\n\tSpawn3:\n\tFAKM A 8 A_ClearTarget\n\tGoto Spawn2\n\tSee:\n\tFAKM B 0 //A_JumpIfInTargetInventory(\"RevolverBusterBoss\", 1, \"Spawn3\")\n\tFAKM B 0 A_GiveInventory(\"CutterFlag\",1)\n\tFAKM BBBBCCCCDDDDEEEEBBBBCCCCDDDDEEEE 1 A_Chase(\"Missile\")\n\tFAKM B 0 A_ChangeFlag(\"NOPAIN\", 0)\n\tFAKM B 0 A_JumpIfInventory(\"CutterFlag\", 4, \"Missile\")\n\tloop\n\tPain:\n\tMissile:\n\tFAKM B 0 A_ChangeFlag(\"NOPAIN\", 1)\n\tFAKM B 0 A_TakeInventory(\"CutterFlag\", 9999)\n\tFAKM B 0 A_FaceTarget\n\tFAKM B 0 A_ChangeVelocity(-20, 0, 18, CVF_REPLACE|CVF_RELATIVE)\n\tFAKM O 4\n\tFAKM A 0 A_PlaySoundEx(\"misc/fakeshot\", \"SoundSlot5\", 0, 0)\n\tFAKM A 0 A_FaceTarget\n\tFAKM O 4 A_CustomMissile(\"CheepFakemanBossShot\", 60, 10, 0, 0, 0)\n\tFAKM A 0 A_PlaySoundEx(\"misc/fakeshot\", \"SoundSlot5\", 0, 0)\n\tFAKM A 0 A_FaceTarget\n\tFAKM O 15 A_CustomMissile(\"CheepFakemanBossShot\", 60, 10, 0, 0, 0)\n\tFAKM A 0 A_PlaySoundEx(\"misc/fakeshot\", \"SoundSlot5\", 0, 0)\n\tFAKM A 0 A_FaceTarget\n\tFAKM O 6 A_CustomMissile(\"CheepFakemanBossShot\", 60, 10, 0, 0, 0)\n\tLeaping1:\n\tFAKM O 1 A_JumpIf(floorz==z, \"Leap1Land\")\n\tloop\n\tLeap1Land:\n\tFAKM G 0 A_FaceTarget\n\tFAKM G 10 A_Stop\n\tFAKM B 0 A_FaceTarget\n\tFAKM O 6 A_ChangeVelocity(30, 0, 18, CVF_REPLACE|CVF_RELATIVE)\n\tFAKM A 0 A_PlaySoundEx(\"misc/fakeshot\", \"SoundSlot5\", 0, 0)\n\tFAKM A 0 A_FaceTarget\n\tFAKM O 4 A_CustomMissile(\"CheepFakemanBossShot\", 60, 10, 0, 0, 0)\n\tFAKM A 0 A_PlaySoundEx(\"misc/fakeshot\", \"SoundSlot5\", 0, 0)\n\tFAKM A 0 A_FaceTarget\n\tFAKM O 6 A_CustomMissile(\"CheepFakemanBossShot\", 60, 10, 0, 0, 0)\n\tLeaping1:\n\tFAKM O 1 A_JumpIf(floorz==z, \"Leap2Land\")\n\tloop\n\tLeap2Land:\n\tFAKM G 0 A_FaceTarget\n\tFAKM G 12 A_Stop\n\tFAKM O 3 A_ChangeVelocity(5, random(-15,15), 18, CVF_REPLACE|CVF_RELATIVE)\n\tFAKM A 0 A_FaceTarget\n\tFAKM A 0 A_PlaySoundEx(\"misc/fakeshot\", \"SoundSlot5\", 0, 0)\n\tFAKM O 4 A_CustomMissile(\"CheepFakemanBossShot\", 60, 10, 0, 0, 0)\n\tFAKM A 0 A_FaceTarget\n\tFAKM A 0 A_PlaySoundEx(\"misc/fakeshot\", \"SoundSlot5\", 0, 0)\n\tFAKM O 4 A_CustomMissile(\"CheepFakemanBossShot\", 60, 10, 0, 0, 0)\n\tFAKM A 0 A_FaceTarget\n\tFAKM A 0 A_PlaySoundEx(\"misc/fakeshot\", \"SoundSlot5\", 0, 0)\n\tFAKM O 4 A_CustomMissile(\"CheepFakemanBossShot\", 60, 10, 0, 0, 0)\n\tFAKM A 0 A_FaceTarget\n\tFAKM A 0 A_PlaySoundEx(\"misc/fakeshot\", \"SoundSlot5\", 0, 0)\n\tFAKM O 4 A_CustomMissile(\"CheepFakemanBossShot\", 60, 10, 0, 0, 0)\n\tFAKM A 0 A_FaceTarget\n\tFAKM A 0 A_PlaySoundEx(\"misc/fakeshot\", \"SoundSlot5\", 0, 0)\n\tFAKM O 4 A_CustomMissile(\"CheepFakemanBossShot\", 60, 10, 0, 0, 0)\n\tLeaping2:\n\tFAKM O 1 A_JumpIf(floorz==z, \"Leap3Land\")\n\tloop\n\tLeap3Land:\n\tFAKM G 0 A_FaceTarget\n\tFAKM G 0 A_Stop\n\tFAKM G 0 A_PlaySoundEx(\"misc/fakereload\", \"SoundSlot5\", 0, 0)\n\tFAKM IPQPQPQ 4\n\tGoto See\n\tDeath:\n\tFAKM H 0 A_FaceTarget\n\tFAKM H 0 A_SpawnItemEx(\"FakeDeathFX\", 0, 0, 50)\n\tFAKM A 0 A_PlaySoundEx(\"misc/devildeath\", \"SoundSlot5\", 0, 0)\n\tstop\n}\n}\n\nactor CheepFakemanBossShot : FakemanBossShot\n{\ndamagetype \"Enemy\"\n}\n\n//Penguin\nactor Fish_ArcticCheepCheep : Fish_CheepCheep\n{\nTranslation \"192:192=202:202\", \"198:198=192:192\"\ninventory.icon \"FISHIC67\"\ninventory.pickupmessage \"Picked up an Arctic Cheep Cheep!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI M 0 A_SpawnItemEx(\"Fish_ArcticCheepCheep\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_monstercount\")>0, \"Failure\")\nTNT1 A 0 A_SpawnItemEx(\"CheepBomberPepe\", 80, 0, 0, 0, 0, 0, 0)\nstop\n}\n}\n\nactor CheepBomberPepe\n{\n//$Category MM8BDM-Enemies\nscale 2.5\nHealth 200\nHeight 55\npainchance 0\nRadius 32\nObituary \"%o was bombed by a Bomber Pepe.\"\n-SOLID\nmaxstepheight 50\n+DROPOFF\nmass 999999\n+ISMONSTER\n+LOOKALLAROUND\n+DONTBLAST\n+SHOOTABLE\ndamagefactor \"Enemy\", 0.0\nspeed 0\npainsound \"misc/devilpain\"\npainchance 256\nStates\n{\nSpawn:\nTNT1 A 0\nLook:\nPENG C 20\nPENG C 6 A_LookEx(LOF_NOSOUNDCHECK,0,2000,0,360,\"See\")\nGoto Look+1\nSee:\nPENG C 20 A_Stop\nPENG C 0 A_CustomMissile(\"CheepPepeEgg\", 8, 0, random(-2,2))\nPENG DDDDDDDCCCCCCCCCCC 1 A_FaceTarget\nLeap:\nPENG C 0 ThrustThingZ(0,40,0,0)\nPENG E 4 A_Recoil(-6)//A_ChangeVelocity(6.0, 0.0, 10.0, CVF_RELATIVE|CVF_REPLACE)\nGoto Leaping\nLeaping:\nPENG E 1 A_JumpIf(z-floorz==0, \"Land\")\nloop\nLand:\nPENG C 5 A_Stop\nGoto Look+1\nDeath:\nPENG C 0 A_Stop\nPENG C 0 A_Pain\nPENG C 0 A_Fall\nPENG C 0 A_ChangeFlag(\"NOGRAVITY\",1)\nMMFX BCDE 3\nTNT1 A -1\nstop\n}\n}\n\nactor CheepPepeEgg\n{\nPROJECTILE\n-NOGRAVITY\n+DOOMBOUNCE\nHeight 32\nRadius 32\nspeed 20\ndamagetype \"Enemy\"\nscale 2.5\nstates\n{\nSpawn:\nPENG F 0\nPENG F 50 ThrustThingZ(0, 35, 0, 1)\nPENG F 0 A_Die\nDeath:\nPENG F 0 A_Stop\nBOMB A 0 A_PlaySoundEx(\"weapon/hyperbomb\", \"Weapon\")\nBOMB A 0 A_ChangeFlag(\"NOGRAVITY\",1)\nBOMB A 0 A_Explode(70, 180, 0)\nBOMB BCDEFGHIJKLMNOPQR 1\nstop\n}\n}\n\n//Telly\nactor Fish_SpinningCheepCheep : Fish_CheepCheep\n{\nTranslation \"192:192=197:197\", \"198:198=0:0\"\ninventory.icon \"FISHIC74\"\ninventory.pickupmessage \"Picked up a Spinning Cheep Cheep!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI M 0 A_SpawnItemEx(\"Fish_SpinningCheepCheep\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_monstercount\")>0, \"Failure\")\nTNT1 A 0 A_SpawnItemEx(\"CheepCheepTellySpawner\", 80, 0, 0, 0, 0, 0, 0)\nstop\n}\n}\n\nactor CheepCheepTellySpawner\n{\n-SOLID\n+NOGRAVITY\n+NOINTERACTION\nreactiontime 8\nstates\n{\nSpawn:\nTNT1 A 35\nLook:\nTNT1 A 35 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"See\")\nloop\nSee:\nTNT1 A 0 A_CountDown\nTNT1 A 0 A_PlaySoundEx(\"weapon/enemyweapon\", \"Voice\", 0, 0)\nTNT1 A 140 A_SpawnITemEx(\"CheepCheepTelly\",0,0,32)\nGoto Spawn\n}\n}\n\nactor CheepCheepTelly\n{\nHeight 16\nRadius 16\nHealth 50\nscale 2.5\ndamagetype \"Enemy\"\nspecies \"Enemy\"\nObituary \"%o was bashed by a Telly.\"\nMONSTER\n+FLOAT\n-SOLID\n+NOGRAVITY\n+ISMONSTER\n+LOOKALLAROUND\n+NOBLOCKMONST\nmass 99999999\nspeed 12\nfloatspeed 6\nStates\n{\nSpawn:\nTNT1 A 0 A_Jump(256, \"Look\")\nMMFX BCD 4\nLook:\nTNT1 A 0 //A_PlaySoundEx(\"enemy/telly\", \"Body\")\nTELY AABBCCDDDDDDEEFF 2 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"See\")\nloop\nSee:\nTNT1 A 0 //A_PlaySoundEx(\"enemy/telly\", \"Body\")\nTELY AABBCCDD 2 A_Chase\nTNT1 A 0// A_PlaySoundEx(\"enemy/telly\", \"Body\")\nTELY DDDDEEFF 2 A_Chase\nloop\nMelee:\nTELY A 0 A_FaceTarget\nTELY A 0 A_SpawnItemEx(\"CheepTellyAttack\")//A_CustomMeleeAttack(40)\nTELY AABBCCDDDDDDEEFF 1 //A_Chase(\"\",\"\")\nGoto See\nDeath:\nBLAD A 0 A_Pain\nDeathQuiet:\nBLAD A 0 A_Fall\nBLAD A 0 A_ChangeFlag(\"NOGRAVITY\",1)\nMMFX BCDE 3\nstop\nDespawn:\nTELY A 0\nstop\n}\n}\n\nactor CheepTellyAttack\n{\nPROJECTILE\ndamagetype \"Enemy\"\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 A_Explode(30, 32, 0, 0, 30)\nstop\n}\n}\n\n//Boobeam\nactor Fish_LockdownCheepCheep : Fish_CheepCheep\n{\ntranslation \"192:192=237:237\", \"198:198=197:197\"\ninventory.icon \"FISHIC75\"\ninventory.pickupmessage \"Picked up a Lockdown Cheep Cheep!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI M 0 A_SpawnItemEx(\"Fish_LockdownCheepCheep\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_monstercount\")>0, \"Failure\")\nTNT1 A 0 A_SpawnItemEx(\"CheepCheepBoobeamTrap\", -72, 0, 0, 0, 0, 0, 180)\nstop\n}\n}\n\nactor CheepCheepBoobeamTrap\n{\n+SOLID\n+NOGRAVITY\n+SHOOTABLE\n+NOBLOOD\n+COUNTKILL\nmass 9999999\n+DONTDRAIN\n+ISMONSTER\n+DONTBLAST\n+FORCEYBILLBOARD\nheight 32\nradius 16\nhealth 1000\nscale 2.5\ndamagefactor \"CrashBomb\", 4.0\ndamagefactor \"CrashBombB\", 4.0\ndamagetype \"Enemy\"\nspecies \"Enemy\"\nobituary \"%o was searched and destroyed by a Boobeam Trap.\"\nStates\n{\nSpawn:\nBBEA ABCDABCDABCDABCDABCD 4\nSeek:\nBBEA ABCD 4 A_LookEx(LOF_NOSOUNDCHECK, 0, 0, 0, 360, \"See\")\nloop\nSee:\nBBEA EEEEFEFEFEF 3\nBBEA E 0 A_CustomMissile(\"CheepCheepBoobeamTrapShot\", 16, 0, 0)\nBBEA EEEEEEEEE 3\nGoto Spawn\nDeath:\nTNT1 A 1 A_SpawnItemEx(\"SharkTorpedoDeath\",0,0,8)\nstop\n}\n}\n\nactor CheepCheepBoobeamTrapShot : FastProjectile\n{\nheight 8\nradius 8\nspeed 90\nPROJECTILE\ndamage (60)\ndamagetype \"Enemy\"\nobituary \"%o was searched and destroyed by a Boobeam Trap.\"\nscale 2.5\nstates\n{\nSpawn:\nBASB A -1\nstop\n}\n}\n\n//Muscler\nactor Fish_MuscleCheepCheep : Fish_CheepCheep\n{\ntranslation \"192:192=38:38\", \"198:198=41:41\"\ninventory.icon \"FISHIC94\"\ninventory.pickupmessage \"Picked up a Muscle Cheep Cheep!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI M 0 A_SpawnItemEx(\"Fish_MuscleCheepCheep\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_monstercount\")>0, \"Failure\")\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMuscler\", 64, 0, 0, 0, 0, 0, 0)\nstop\n}\n}\n\nactor CheepPowerMuscler\n{\n//$Category MM8BDM-Enemies\nscale 2.5\nHealth 2400\nHeight 160\nRadius 64\npainchance 0\nObituary \"%o was crushed by a Power Muscler.\"\nmaxstepheight 50\n+DROPOFF\nmass 999999\n+SHOOTABLE\n+COUNTKILL\n+LOOKALLAROUND\n+DONTBLAST\n+NOBLOCKMONST\n//+ISMONSTER\n-SOLID\n-CANPASS\nspeed 8\npainsound \"misc/devilpain\"\npainchance 0\ndamagetype \"Enemy\"\nspecies \"Enemy\"\nStates\n{\nSpawn:\nTNT1 A 0\nPWRM A 35 A_ChangeFlag(\"ISMONSTER\", 1)\nLook:\nPWRM A 6 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"See\")\nloop\nSee:\nPWRM EEEEEEEE 1 A_Chase\nPWRM E 0 A_Explode(10, 64, XF_NOTMISSILE, 0, 60)\nPWRM DDDDDDDD 1 A_Chase\nPWRM E 0 A_Explode(10, 64, XF_NOTMISSILE, 0, 60)\nPWRM A 0 A_PlaySoundEx(\"misc/powerland\",\"Voice\")\nPWRM EEEEEEEE 1 A_Chase\nPWRM E 0 A_Explode(10, 64, XF_NOTMISSILE, 0, 60)\nPWRM FFFFFFFF 1 A_Chase\nPWRM E 0 A_Explode(10, 64, XF_NOTMISSILE, 0, 60)\nPWRM A 0 A_PlaySoundEx(\"misc/powerland\",\"Voice\")\nloop\nMissile:\nPWRM AA 5 A_FaceTarget\nPWRM A 1 A_FaceTarget\nPWRM E 0 A_Explode(60, 64, XF_NOTMISSILE, 0, 60)\nPWRM B 1 A_ChangeVelocity(55.0,0.0,15.0,CVF_REPLACE|CVF_RELATIVE)\nGoto Leaping\nLeaping:\nPWRM B 1 A_JumpIfCloser(120,\"ForcedLand\")\nPWRM B 1 A_JumpIf(Floorz-z==0,\"Land\")\nloop\nForcedLand:\nPWRM B 0 A_ChangeFlag(\"NOGRAVITY\",1)\nPWRM B 2 A_Stop\nPWRM B 0 A_ChangeVelocity(0.0,0.0,-10.0,CVF_REPLACE|CVF_RELATIVE)\nLeaping2:\nPWRM E 0 A_SpawnItemEx(\"PowerMusclerFX\",-26,27,115)\nPWRM E 0 A_SpawnItemEx(\"PowerMusclerFX\",-26,-27,115)\nPWRM B 0 A_ChangeFlag(\"NOGRAVITY\",0)\nPWRM B 1 A_JumpIf(Floorz-z==0,\"Land\")\nloop\nLand:\nPWRM B 0 A_ChangeFlag(\"NOGRAVITY\",0)\nPWRM E 0 A_SpawnItemEx(\"CheepPowerMusclerShockWave\")\nPWRM E 0 A_Explode(60, 64, XF_NOTMISSILE, 0, 60)\nPWRM A 0 A_PlaySoundEx(\"misc/hugequake2\",\"Voice\")\nPWRM C 3 A_Stop\nPWRM A 10\nGoto See\nDeath:\nPWRM A 0 A_Stop\nPWRM A 0 A_Pain\nPWRM A 0 A_Fall\nPWRM A 0 A_ChangeFlag(\"NOGRAVITY\",1)\nTNT1 AAAAAA 2 A_SpawnItemEx(\"DrillExplode\",random(-128,128),random(-128,128),random(0,128))\nTNT1 A -1\nstop\n}\n}\n\nactor CheepPowerMusclerShockWave : PowerMusclerShockWave\n{\nspecies \"Enemy\"\ndamagetype \"Enemy\"\n+DONTBLAST\n+DONTREFLECT\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_Explode(80,64,0)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,0)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,15)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,30)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,45)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,60)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,75)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,90)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,105)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,120)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,135)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,150)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,165)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,180)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,195)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,210)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,225)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,240)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,255)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,270)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,285)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,300)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,315)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,330)\nTNT1 A 0 A_SpawnItemEx(\"CheepPowerMusclerShockwavePart\",0,0,0,18,0,0,345)\nstop\n}\n}\n\nactor CheepPowerMusclerShockwavePart : PowerMusclerShockwavePart\n{\n+DONTBLAST\n+DONTREFLECT\ndamagetype \"Enemy\"\nspecies \"Enemy\"\ndamage (5)\n}\n\n//Helicopter\nactor Fish_ApacheCheepCheep : Fish_CheepCheep\n{\ntranslation \"192:192=225:225\", \"198:198=246:246\"\ninventory.icon \"FISHIC95\"\ninventory.pickupmessage \"Picked up an Apache Cheep Cheep!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI M 0 A_SpawnItemEx(\"Fish_ApacheCheepCheep\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_monstercount\")>0, \"Failure\")\nTNT1 A 0 A_SpawnItemEx(\"CheepApacheJoe\", 64, 0, 0, 0, 0, 0, 0)\nstop\n}\n}\n\nactor CheepApacheJoe\n{\nHeight 48\nRadius 64\nHealth 250\nscale 2.5\ndamagetype \"Enemy\"\nspecies \"Enemy\"\nObituary \"%o was gunned down by an Apache Joe.\"\ntranslation \"192:192=225:225\", \"198:198=58:58\"\n+COUNTKILL\n+SHOOTABLE\n+FLOAT\n+NOGRAVITY\n+LOOKALLAROUND\n+ISMONSTER\n+NOBLOCKMONST\nmass 99999999\npainchance 0\npainsound \"misc/devilpain\"\nspeed 12\nStates\n{\nSpawn:\nTNT1 A 0\nS5IP B 35\nLook:\nS5IP BC 4 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"See\")\nloop\nSee:\nBLAD A 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nS5IP B 0 A_JumpIf(z-floorz<16, \"RaiseUp\")\nSeek:\nS5IP BBBBCCCC 1 A_Chase\nGoto See\nRaiseUp:\nS5IP B 0 A_ChangeVelocity(0, 0, 5, 0)\nGoto Seek\nMissile:\nS5IP B 1 A_ChangeFlag(\"FLOAT\",0)\nS5IP B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nS5IP B 0 A_FaceTarget\nS5IP B 0 A_Recoil(-12)\nS5IP BC 4 A_FaceTarget\nS5IP B 0 A_CustomMissile(\"CheepApacheJoeShot\",18,0,0,0)\nS5IP B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nS5IP BC 4 A_FaceTarget\nS5IP B 0 A_CustomMissile(\"CheepApacheJoeShot\",18,0,0,0)\nS5IP B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nS5IP BC 4 A_FaceTarget\nS5IP B 0 A_CustomMissile(\"CheepApacheJoeShot\",18,0,0,0)\nS5IP B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nS5IP BC 4 A_FaceTarget\nS5IP B 0 A_CustomMissile(\"CheepApacheJoeShot\",18,0,0,0)\nS5IP B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nS5IP BC 4 A_FaceTarget\nS5IP B 0 A_CustomMissile(\"CheepApacheJoeShot\",18,0,0,0)\nS5IP B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nS5IP BC 4 A_FaceTarget\nS5IP B 0 A_CustomMissile(\"CheepApacheJoeShot\",18,0,0,0)\nS5IP B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nS5IP BC 4 A_FaceTarget\nS5IP B 0 A_CustomMissile(\"CheepApacheJoeShot\",18,0,0,0)\nS5IP B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nS5IP BC 4 A_FaceTarget\nS5IP B 0 A_CustomMissile(\"CheepApacheJoeShot\",18,0,0,0)\nS5IP B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nS5IP BC 4 A_FaceTarget\nS5IP B 0 A_CustomMissile(\"CheepApacheJoeShot\",18,0,0,0)\nS5IP B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nS5IP BC 4 A_FaceTarget\nS5IP B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nS5IP BC 4 A_FaceTarget\nS5IP B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nS5IP BC 4 A_FaceTarget\nS5IP B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nS5IP BC 4 A_FaceTarget\nS5IP B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nS5IP BC 4 A_ChangeFlag(\"FLOAT\",1)\nS5IP B 1 A_Stop\nGoto See\nDeath:\nCRAZ A 0 A_SpawnItem(\"DrillExplode\",0,32)\nBLAD A 0 A_Pain\nBLAD A 0 A_Fall\nBLAD A 0 A_ChangeFlag(\"NOGRAVITY\",1)\nMMFX BCDE 3\nstop\n}\n}\n\nactor CheepApacheJoeShot : FastProjectile\n{\nPROJECTILE\ndamagetype \"Enemy\"\nseesound \"weapon/pshot\"\nSpeed 100\nDamage (10)\nradius 8\nheight 8\nscale 2.5\nStates\n{\nSpawn:\nBASB A -1\nloop\n}\n}\n\n//Pirate\nactor Fish_ScallywagCheepCheep : Fish_CheepCheep\n{\ntranslation \"198:198=108:108\", \"192:192=100:100\"\ninventory.icon \"FISHID81\"\ninventory.pickupmessage \"Picked up a Scallywag Cheep Cheep!\"\ninventory.amount 1\nrenderstyle translucent\nalpha 0.6\nstates\n{\nDropFish:\nFISI M 0 A_SpawnItemEx(\"Fish_ScallywagCheepCheep\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_monstercount\")>0, \"Failure\")\nTNT1 A 0 A_SpawnItemEx(\"CursedCrewMate\", 128, 0, 0, 0, 0, 0, 0)\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/DBZ.txt",
        "contents": "actor RandomSpawnFinder\n{\nheight 0\nradius 16\nSpeed 40\n+NOBLOCKMONST\n-SOLID\n+NOBLOCKMAP\n+DROPOFF\n+NOTONAUTOMAP\n+SERVERSIDEONLY\nmaxstepheight 64\nrenderstyle none\nstates\n{\nSpawn:\nTNT1 A 1 A_Wander\nloop\n}\n}\n\nactor Fish_OneStarDragonball : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 1\ninventory.icon \"FISHIU23\"\n+FORCEXYBILLBOARD\nscale 1.5\ninventory.pickupmessage \"Picked up the one star dragon ball!\"\nstates\n{\nSpawn:\nDBAL A 1\nDBAL A -1 Thing_ChangeTID(0, 701)\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_OneStarDragonBall\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecute(\"hfish_dragonballuse\", 0)\nfail\n}\n}\n\nactor Fish_DragonBall : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 1\ninventory.icon \"FISHIU23\"\nscale 1.5\n-INVBAR\ninventory.pickupmessage \"Picked up the one star dragon ball!\"\nstates\n{\nSpawn:\nDBAL A 1\nDBAL A -1\nstop\nPickup:\nTNT1 A 0 A_GiveInventory(\"Fish_OneStarDragonball\",1)\nTNT1 A 0 ACS_NamedExecute(\"hfish_dballevent\", 0)\nstop\n}\n}\n\nactor Fish_TwoStarDragonball : Fish_OneStarDragonball\n{\ninventory.icon \"FISHIU24\"\ninventory.pickupmessage \"Picked up the two star dragon ball!\"\nstates\n{\nSpawn:\nDBAL B 1\nDBAL B -1 Thing_ChangeTID(0, 702)\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_TwoStarDragonBall\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\n}\n}\n\nactor Fish_ThreeStarDragonball : Fish_OneStarDragonball\n{\ninventory.icon \"FISHIU25\"\ninventory.pickupmessage \"Picked up the three star dragon ball!\"\nstates\n{\nSpawn:\nDBAL C 1\nDBAL C -1 Thing_ChangeTID(0, 703)\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_ThreeStarDragonBall\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\n}\n}\n\nactor Fish_FourStarDragonball : Fish_OneStarDragonball\n{\ninventory.icon \"FISHIU26\"\ninventory.pickupmessage \"Picked up the four star dragon ball!\"\nstates\n{\nSpawn:\nDBAL D 1\nDBAL D -1 Thing_ChangeTID(0, 704)\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_FourStarDragonBall\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\n}\n}\n\nactor Fish_FiveStarDragonball : Fish_OneStarDragonball\n{\ninventory.icon \"FISHIU27\"\ninventory.pickupmessage \"Picked up the five star dragon ball!\"\nstates\n{\nSpawn:\nDBAL E 1\nDBAL E -1 Thing_ChangeTID(0, 705)\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_FiveStarDragonBall\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\n}\n}\n\nactor Fish_SixStarDragonball : Fish_OneStarDragonball\n{\ninventory.icon \"FISHIU28\"\ninventory.pickupmessage \"Picked up the six star dragon ball!\"\nstates\n{\nSpawn:\nDBAL F 1\nDBAL F -1 Thing_ChangeTID(0, 706)\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_SixStarDragonBall\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\n}\n}\n\nactor Fish_SevenStarDragonball : Fish_OneStarDragonball\n{\ninventory.icon \"FISHIU29\"\ninventory.pickupmessage \"Picked up the seven star dragon ball!\"\nstates\n{\nSpawn:\nDBAL G 1\nDBAL G -1 Thing_ChangeTID(0, 707)\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_SevenStarDragonBall\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\n}\n}\n\nactor AllDragonBalls : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_GiveInventory(\"Fish_OneStarDragonball\", 1)\nTNT1 A 0 A_GiveInventory(\"Fish_TwoStarDragonball\", 1)\nTNT1 A 0 A_GiveInventory(\"Fish_ThreeStarDragonball\", 1)\nTNT1 A 0 A_GiveInventory(\"Fish_FourStarDragonball\", 1)\nTNT1 A 0 A_GiveInventory(\"Fish_FiveStarDragonball\", 1)\nTNT1 A 0 A_GiveInventory(\"Fish_SixStarDragonball\", 1)\nTNT1 A 0 A_GiveInventory(\"Fish_SevenStarDragonball\", 1)\nstop\n}\n}\n\nactor ActiveDragonballs\n{\n-SOLID\nheight 4\nradius 4\n+DONTSPLASH\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SpawnItemEx(\"OneStarDragonBallA\", 0 + random(-3,3), 0 + random(-3,3), 0)\nTNT1 A 0 A_SpawnItemEx(\"TwoStarDragonBallA\", 48 + random(-3,3), 0 + random(-3,3), 0)\nTNT1 A 0 A_SpawnItemEx(\"ThreeStarDragonBallA\", -48 + random(-3,3), 0 + random(-3,3), 0)\nTNT1 A 0 A_SpawnItemEx(\"FourStarDragonBallA\", 24 + random(-3,3), 24 + random(-3,3), 0)\nTNT1 A 0 A_SpawnItemEx(\"FiveStarDragonBallA\", -24 + random(-3,3), 24 + random(-3,3), 0)\nTNT1 A 0 A_SpawnItemEx(\"SixStarDragonBallA\", 24 + random(-3,3), -24 + random(-3,3), 0)\nTNT1 A 0 A_SpawnItemEx(\"SevenStarDragonBallA\", -24 + random(-3,3), -24 + random(-3,3), 0)\nTNT1 A 1\nActive:\nTNT1 A 40\nTNT1 A 35 A_PlaySoundEx(\"misc/fishping\", \"Voice\")\nloop\nSummon:\nTNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx(\"ShenronSummoningFX\", 0, 0, 0, frandom(-1.5,1.5), frandom(-1.5,1.5), 50, 0)\nTNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx(\"ShenronSummoningFX\", 0, 0, 0, frandom(-1.5,1.5), frandom(-1.5,1.5), 50, 0)\nTNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx(\"ShenronSummoningFX\", 0, 0, 0, frandom(-1.5,1.5), frandom(-1.5,1.5), 50, 0)\nEndSeek:\nTNT1 A -1\nstop\nSeek:\nTNT1 A 5 A_LookEx(LOF_NOSOUNDCHECK, 0, 64, 0, 360, \"See\")\nloop\nSee:\nTNT1 A 5 ACS_NamedExecuteAlways(\"hfish_makewish\", 0)\nTNT1 A 1 A_ClearTarget\nGoto Seek\n}\n}\n\nactor HoldingOneStarDragonBall\n{\n-SOLID\n+CLIENTSIDEONLY\n+MISSILE\n+NOINTERACTION\nheight 2\nradius 2\nscale 0.8\nreactiontime 30\nstates\n{\nSpawn:\nTNT1 A 0 A_CountDown\nDBAL A 1 A_Warp(AAPTR_TARGET, -24 + (8*0), 0, 70, 90, WARPF_NOCHECKPOSITION|WARPF_COPYINTERPOLATION)\nloop\n}\n}\n\nactor HoldingTwoStarDragonBall : HoldingOneStarDragonBall\n{\nstates\n{\nSpawn:\nTNT1 A 0 A_CountDown\nDBAL B 1 A_Warp(AAPTR_TARGET, -24 + (8*1), 0, 70, 90, WARPF_NOCHECKPOSITION|WARPF_COPYINTERPOLATION)\nloop\n}\n}\n\nactor HoldingThreeStarDragonBall : HoldingOneStarDragonBall\n{\nstates\n{\nSpawn:\nTNT1 A 0 A_CountDown\nDBAL C 1 A_Warp(AAPTR_TARGET, -24 + (8*2), 0, 70, 90, WARPF_NOCHECKPOSITION|WARPF_COPYINTERPOLATION)\nloop\n}\n}\n\nactor HoldingFourStarDragonBall : HoldingOneStarDragonBall\n{\nstates\n{\nSpawn:\nTNT1 A 0 A_CountDown\nDBAL D 1 A_Warp(AAPTR_TARGET, -24 + (8*3), 0, 70, 90, WARPF_NOCHECKPOSITION|WARPF_COPYINTERPOLATION)\nloop\n}\n}\n\nactor HoldingFiveStarDragonBall : HoldingOneStarDragonBall\n{\nstates\n{\nSpawn:\nTNT1 A 0 A_CountDown\nDBAL E 1 A_Warp(AAPTR_TARGET, -24 + (8*4), 0, 70, 90, WARPF_NOCHECKPOSITION|WARPF_COPYINTERPOLATION)\nloop\n}\n}\n\nactor HoldingSixStarDragonBall : HoldingOneStarDragonBall\n{\nstates\n{\nSpawn:\nTNT1 A 0 A_CountDown\nDBAL F 1 A_Warp(AAPTR_TARGET, -24 + (8*5), 0, 70, 90, WARPF_NOCHECKPOSITION|WARPF_COPYINTERPOLATION)\nloop\n}\n}\n\nactor HoldingSevenStarDragonBall : HoldingOneStarDragonBall\n{\nstates\n{\nSpawn:\nTNT1 A 0 A_CountDown\nDBAL G 1 A_Warp(AAPTR_TARGET, -24 + (8*6), 0, 70, 90, WARPF_NOCHECKPOSITION|WARPF_COPYINTERPOLATION)\nloop\n}\n}\n\nactor OneStarDragonBallA\n{\nscale 1.5\n-SOLID\n+DONTSPLASH\nrenderstyle translucent\n+FORCEXYBILLBOARD\nalpha 1.0\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 Thing_ChangeTID(0, 700)\nActive:\nDBAL A 40\nDBAL H 35\nloop\nSummon:\nDBAL H -1\nstop\nLeave:\nDBAL H 1 A_FadeOut(0.1)\nloop\n}\n}\n\nactor TwoStarDragonBallA : OneStarDragonBallA\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 Thing_ChangeTID(0, 700)\nActive:\nDBAL B 40\nDBAL H 35\nloop\n}\n}\n\nactor ThreeStarDragonBallA : OneStarDragonBallA\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 Thing_ChangeTID(0, 700)\nActive:\nDBAL C 40\nDBAL H 35\nloop\n}\n}\n\nactor FourStarDragonBallA : OneStarDragonBallA\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 Thing_ChangeTID(0, 700)\nActive:\nDBAL D 40\nDBAL H 35\nloop\n}\n}\n\nactor FiveStarDragonBallA : OneStarDragonBallA\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 Thing_ChangeTID(0, 700)\nActive:\nDBAL E 40\nDBAL H 35\nloop\n}\n}\n\nactor SixStarDragonBallA : OneStarDragonBallA\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 Thing_ChangeTID(0, 700)\nActive:\nDBAL F 40\nDBAL H 35\nloop\n}\n}\n\nactor SevenStarDragonBallA : OneStarDragonBallA\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 Thing_ChangeTID(0, 700)\nActive:\nDBAL G 40\nDBAL H 35\nloop\n}\n}\n\nactor ShenronSummoningFX\n{\nscale 0.5\nrenderstyle translucent\nalpha 0.7\n+MISSILE\n+NOINTERACTION\n+FORCEYBILLBOARD\ntranslation \"192:192=228:228\", \"198:198=229:229\"\nstates\n{\nSpawn:\nLMSG AAAAA 1 A_SetScale(scalex + 0.3, scaley + 0.3)\nLMSG A 50\nstop\n}\n}\n\nactor SkyShenronFX\n{\n+FORCEYBILLBOARD\n+BRIGHT\nscale 0.7\nalpha 0.0\nrenderstyle translucent\ntranslation \"0:255=228:228\"\nstates\n{\nSpawn:\nSHNR AAAAAAAAAAAAAAAAAAAAAA 1 A_FadeIn(0.05)\nSHNR A 1\nSHNR AAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_FadeOut(0.05)\nstop\n}\n}\n\nactor SkyShenron\n{\n+FORCEYBILLBOARD\n+BRIGHT\nscale 0.7\nStates\n{\nSpawn:\nIdleFly:\nSHNR AB 6\nloop\nTalk:\nSHNR CDEFCDABCDEFCDABCDEFCDABCDEFCDAB 6\nGoto Spawn\nWish:\nSHNR EF 6\nloop\nLeave:\nTNT1 A 40\nTNT1 A 5 A_SpawnItemEx(\"ExitingDragonBalls\",0,0,0,0,0,1)\nstop\n}\n}\n\nactor ExitingDragonBalls\n{\nheight 4\nradius 4\nPROJECTILE\nspeed 5\n+BRIGHT\nscale 0.05\n+FORCEXYBILLBOARD\nstates\n{\nSpawn:\nDBAL H 100\nSplit:\nTNT1 A 0\nTNT1 A 0 A_SpawnItemEx(\"ExitingDragonBalls\",0,0,0,9,0,0,51 * 1)\nTNT1 A 0 A_SpawnItemEx(\"ExitingDragonBalls\",0,0,0,9,0,0,51 * 2)\nTNT1 A 0 A_SpawnItemEx(\"ExitingDragonBalls\",0,0,0,9,0,0,51 * 3)\nTNT1 A 0 A_SpawnItemEx(\"ExitingDragonBalls\",0,0,0,9,0,0,51 * 4)\nTNT1 A 0 A_SpawnItemEx(\"ExitingDragonBalls\",0,0,0,9,0,0,51 * 5)\nTNT1 A 0 A_SpawnItemEx(\"ExitingDragonBalls\",0,0,0,9,0,0,51 * 6)\nTNT1 A 0 A_SpawnItemEx(\"ExitingDragonBalls\",0,0,0,9,0,0,51 * 7)\nstop\n}\n}\n\nactor ShenronWish : Inventory {}\n\nactor ShenronWishImmortality : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_PlaySoundEx(\"misc/fishglow\", \"voice\", 0, 0)\nTNT1 A 0 A_ChangeFlag(\"NOTELESTOMP\", 1)\nTNT1 A 0 A_ChangeFlag(\"NODAMAGE\", 1)\nTNT1 A 0 SetPlayerProperty(0,2,5)\nstop\n}\n}\n\nactor ShenronWishWarrior : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_PlaySoundEx(\"misc/fishglow\", \"voice\", 0, 0)\nTNT1 A 0 A_SetScale(3.5, 3.5)\nTNT1 A 0 A_GiveInventory(\"ShenronSpread\", 1)\nTNT1 A 0 A_GiveInventory(\"ShenronStrength\", 1)\n//TNT1 A 0 A_GiveInventory(\"ShenronSpeed\", 1)\nstop\n}\n}\n\nactor ShenronWishRiches : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_PlaySoundEx(\"weapon/TrioCharge0\", \"voice\", 0, 0)\nTNT1 A 0 A_GiveInventory(\"Fish_TreasureChest\", 10)\nstop\n}\n}\n\nactor ShenronSpread : PowerSpread\n{\npowerup.duration 0x7FFFFFFF\n}\n\nactor ShenronStrength : PowerDamage\n{\ndamagefactor \"Normal\", 2.0\n}\n\nactor ShenronSpeed : PowerSpeed\n{\nspeed 1.25\n+POWERSPEED.NOTRAIL\n}\n\nactor IsWishing : Inventory {}\n\nactor WishedInvul : PowerInvulnerable\n{\npowerup.duration -8\n}"
      },
      {
        "source": "pk3",
        "name": "actors/Cherub.txt",
        "contents": "//Back accessory dye\n\nactor Fish_Cherub : BaseFish\n{\ninventory.amount 1\ninventory.usesound \"weapon/OilShot\"\nstates\n{\nSpawn:\nFIS2 Y 2400\nstop\nDropFish:\nFIS2 Y 0 A_SpawnItemEx(\"Fish_Cherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\nFailure:\nTNT1 A 0\nfail\n}\n}\n\nactor Fish_PinionCherub : Fish_Cherub\n{\nstates\n{\nSpawn:\nFIS2 Z 2400\nstop\nDropFish:\nFIS2 Z 0 A_SpawnItemEx(\"Fish_PinionCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\n//back primary\nactor Fish_BlueDownyCherub : Fish_Cherub\n{\ntranslation \"192:192=199:199\", \"198:198=198:198\"\ninventory.icon \"FISHID40\"\ninventory.pickupmessage \"Picked up a Blue Downy Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Y 0 A_SpawnItemEx(\"Fish_BlueDownyCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 2)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 10, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_RedDownyCherub : Fish_Cherub\n{\ntranslation \"192:192=176:176\", \"198:198=173:173\"\ninventory.icon \"FISHID39\"\ninventory.pickupmessage \"Picked up a Red Downy Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Y 0 A_SpawnItemEx(\"Fish_RedDownyCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 11, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_YellowDownyCherub : Fish_Cherub\n{\ntranslation \"192:192=228:228\", \"198:198=218:218\"\ninventory.icon \"FISHID47\"\ninventory.pickupmessage \"Picked up a Yellow Downy Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Y 0 A_SpawnItemEx(\"Fish_YellowDownyCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 9)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 12, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_PinkDownyCherub : Fish_Cherub\n{\ntranslation \"192:192=236:236\", \"198:198=35:35\"\ninventory.icon \"FISHID46\"\ninventory.pickupmessage \"Picked up a Pink Downy Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Y 0 A_SpawnItemEx(\"Fish_PinkDownyCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 8)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 13, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_GreenDownyCherub : Fish_Cherub\n{\ntranslation \"192:192=106:106\", \"198:198=137:137\"\ninventory.icon \"FISHID41\"\ninventory.pickupmessage \"Picked up a Green Downy Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Y 0 A_SpawnItemEx(\"Fish_GreenDownyCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 3)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 14, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_BlackDownyCherub : Fish_Cherub\n{\ntranslation \"192:192=0:0\", \"198:198=3:3\"\ninventory.icon \"FISHID42\"\ninventory.pickupmessage \"Picked up a Black Downy Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Y 0 A_SpawnItemEx(\"Fish_BlackDownyCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 4)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 15, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_WhiteDownyCherub : Fish_Cherub\n{\ntranslation \"192:192=82:82\", \"198:198=91:91\"\ninventory.icon \"FISHID43\"\ninventory.pickupmessage \"Picked up a White Downy Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Y 0 A_SpawnItemEx(\"Fish_WhiteDownyCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 5)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 16, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_OrangeDownyCherub : Fish_Cherub\n{\ntranslation \"192:192=227:227\", \"198:198=218:218\"\ninventory.icon \"FISHID44\"\ninventory.pickupmessage \"Picked up a Orange Downy Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Y 0 A_SpawnItemEx(\"Fish_OrangeDownyCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 6)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 17, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_PurpleDownyCherub : Fish_Cherub\n{\ntranslation \"192:192=239:239\", \"198:198=236:236\"\ninventory.icon \"FISHID45\"\ninventory.pickupmessage \"Picked up a Purple Downy Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Y 0 A_SpawnItemEx(\"Fish_PurpleDownyCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 7)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 18, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_CyanDownyCherub : Fish_Cherub\n{\n//translation \"192:192=227:227\", \"198:198=229:229\"\ninventory.icon \"FISHID48\"\ninventory.pickupmessage \"Picked up a Cyan Downy Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Y 0 A_SpawnItemEx(\"Fish_CyanDownyCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 10)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 19, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\n//back secondary\nactor Fish_BluePinionCherub : Fish_PinionCherub\n{\ntranslation \"192:192=199:199\", \"198:198=198:198\"\ninventory.icon \"FISHID50\"\ninventory.pickupmessage \"Picked up a Blue Pinion Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Z 0 A_SpawnItemEx(\"Fish_BluePinionCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 2, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 0, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_RedPinionCherub : Fish_PinionCherub\n{\ntranslation \"192:192=176:176\", \"198:198=173:173\"\ninventory.icon \"FISHID49\"\ninventory.pickupmessage \"Picked up a Red Pinion Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Z 0 A_SpawnItemEx(\"Fish_RedPinionCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 1, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 1, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_YellowPinionCherub : Fish_PinionCherub\n{\ntranslation \"192:192=228:228\", \"198:198=218:218\"\ninventory.icon \"FISHID57\"\ninventory.pickupmessage \"Picked up a Yellow Pinion Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Z 0 A_SpawnItemEx(\"Fish_YellowPinionCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 9, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 2, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_PinkPinionCherub : Fish_PinionCherub\n{\ntranslation \"192:192=236:236\", \"198:198=35:35\"\ninventory.icon \"FISHID56\"\ninventory.pickupmessage \"Picked up a Pink Pinion Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Z 0 A_SpawnItemEx(\"Fish_PinkPinionCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 8, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 3, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_GreenPinionCherub : Fish_PinionCherub\n{\ntranslation \"192:192=106:106\", \"198:198=137:137\"\ninventory.icon \"FISHID51\"\ninventory.pickupmessage \"Picked up a Green Pinion Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Z 0 A_SpawnItemEx(\"Fish_GreenPinionCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 3, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 4, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_BlackPinionCherub : Fish_PinionCherub\n{\ntranslation \"192:192=0:0\", \"198:198=3:3\"\ninventory.icon \"FISHID52\"\ninventory.pickupmessage \"Picked up a Black Pinion Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Z 0 A_SpawnItemEx(\"Fish_BlackPinionCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 4, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 5, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_WhitePinionCherub : Fish_PinionCherub\n{\ntranslation \"192:192=82:82\", \"198:198=91:91\"\ninventory.icon \"FISHID53\"\ninventory.pickupmessage \"Picked up a White Pinion Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Z 0 A_SpawnItemEx(\"Fish_WhitePinionCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 5, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 6, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_OrangePinionCherub : Fish_PinionCherub\n{\ntranslation \"192:192=227:227\", \"198:198=218:218\"\ninventory.icon \"FISHID54\"\ninventory.pickupmessage \"Picked up a Orange Pinion Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Z 0 A_SpawnItemEx(\"Fish_OrangePinionCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 6, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 7, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_PurplePinionCherub : Fish_PinionCherub\n{\ntranslation \"192:192=239:239\", \"198:198=236:236\"\ninventory.icon \"FISHID55\"\ninventory.pickupmessage \"Picked up a Purple Pinion Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Z 0 A_SpawnItemEx(\"Fish_PurplePinionCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 7, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 8, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_CyanPinionCherub : Fish_PinionCherub\n{\n//translation \"192:192=227:227\", \"198:198=229:229\"\ninventory.icon \"FISHID58\"\ninventory.pickupmessage \"Picked up a Cyan Pinion Cherub!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS2 Z 0 A_SpawnItemEx(\"Fish_CyanPinionCherub\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_wingcolor\", 0, 10, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 9, 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/Prawn.txt",
        "contents": "//Aura dye\n\nactor Fish_Prawn : BaseFish\n{\ninventory.amount 1\ninventory.usesound \"weapon/OilShot\"\nstates\n{\nSpawn:\nFIS3 A 2400\nstop\nDropFish:\nFIS3 A 0 A_SpawnItemEx(\"Fish_Prawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\nFailure:\nTNT1 A 0\nfail\n}\n}\n\nactor Fish_TigerPrawn : Fish_Prawn\n{\nstates\n{\nSpawn:\nFIS3 B 2400\nstop\nDropFish:\nFIS3 B 0 A_SpawnItemEx(\"Fish_TigerPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0\nstop\n}\n}\n\nactor Fish_BlueKingPrawn : Fish_Prawn\n{\ntranslation \"192:192=199:199\", \"198:198=198:198\"\ninventory.icon \"FISHID60\"\ninventory.pickupmessage \"Picked up a Blue King Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 A 0 A_SpawnItemEx(\"Fish_BlueKingPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 2)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 10, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_RedKingPrawn : Fish_Prawn\n{\ntranslation \"192:192=176:176\", \"198:198=173:173\"\ninventory.icon \"FISHID59\"\ninventory.pickupmessage \"Picked up a Red King Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 A 0 A_SpawnItemEx(\"Fish_RedKingPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 11, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_YellowKingPrawn : Fish_Prawn\n{\ntranslation \"192:192=228:228\", \"198:198=218:218\"\ninventory.icon \"FISHID67\"\ninventory.pickupmessage \"Picked up a Yellow King Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 A 0 A_SpawnItemEx(\"Fish_YellowKingPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 9)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 12, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\nactor Fish_PinkKingPrawn : Fish_Prawn\n{\ntranslation \"192:192=236:236\", \"198:198=35:35\"\ninventory.icon \"FISHID66\"\ninventory.pickupmessage \"Picked up a Pink King Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 A 0 A_SpawnItemEx(\"Fish_PinkKingPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 8)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 13, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_GreenKingPrawn : Fish_Prawn\n{\ntranslation \"192:192=106:106\", \"198:198=137:137\"\ninventory.icon \"FISHID61\"\ninventory.pickupmessage \"Picked up a Green King Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 A 0 A_SpawnItemEx(\"Fish_GreenKingPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 3)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 14, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_BlackKingPrawn : Fish_Prawn\n{\ntranslation \"192:192=0:0\", \"198:198=3:3\"\ninventory.icon \"FISHID62\"\ninventory.pickupmessage \"Picked up a Black King Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 A 0 A_SpawnItemEx(\"Fish_BlackKingPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 4)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 15, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_WhiteKingPrawn : Fish_Prawn\n{\ntranslation \"192:192=82:82\", \"198:198=91:91\"\ninventory.icon \"FISHID63\"\ninventory.pickupmessage \"Picked up a White King Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 A 0 A_SpawnItemEx(\"Fish_WhiteKingPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 5)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 16, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_OrangeKingPrawn : Fish_Prawn\n{\ntranslation \"192:192=227:227\", \"198:198=218:218\"\ninventory.icon \"FISHID64\"\ninventory.pickupmessage \"Picked up a Orange King Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 A 0 A_SpawnItemEx(\"Fish_OrangeKingPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 6)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 17, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_PurpleKingPrawn : Fish_Prawn\n{\ntranslation \"192:192=239:239\", \"198:198=236:236\"\ninventory.icon \"FISHID65\"\ninventory.pickupmessage \"Picked up a Purple King Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 A 0 A_SpawnItemEx(\"Fish_PurpleKingPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 7)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 18, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_CyanKingPrawn : Fish_Prawn\n{\n//translation \"192:192=227:227\", \"198:198=229:229\"\ninventory.icon \"FISHID68\"\ninventory.pickupmessage \"Picked up a Cyan King Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 A 0 A_SpawnItemEx(\"Fish_CyanKingPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 10)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 19, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_BlueTigerPrawn : Fish_TigerPrawn\n{\ntranslation \"192:192=199:199\", \"198:198=198:198\"\ninventory.icon \"FISHID70\"\ninventory.pickupmessage \"Picked up a Blue Tiger Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 B 0 A_SpawnItemEx(\"Fish_BlueTigerPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 2, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 0, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_RedTigerPrawn : Fish_TigerPrawn\n{\ntranslation \"192:192=176:176\", \"198:198=173:173\"\ninventory.icon \"FISHID69\"\ninventory.pickupmessage \"Picked up a Red Tiger Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 B 0 A_SpawnItemEx(\"Fish_RedTigerPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 1, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 1, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_YellowTigerPrawn : Fish_TigerPrawn\n{\ntranslation \"192:192=228:228\", \"198:198=218:218\"\ninventory.icon \"FISHID77\"\ninventory.pickupmessage \"Picked up a Yellow Tiger Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 B 0 A_SpawnItemEx(\"Fish_YellowTigerPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 9, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 2, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_PinkTigerPrawn : Fish_TigerPrawn\n{\ntranslation \"192:192=236:236\", \"198:198=35:35\"\ninventory.icon \"FISHID76\"\ninventory.pickupmessage \"Picked up a Pink Tiger Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 B 0 A_SpawnItemEx(\"Fish_PinkTigerPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 8, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 3, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_GreenTigerPrawn : Fish_TigerPrawn\n{\ntranslation \"192:192=106:106\", \"198:198=137:137\"\ninventory.icon \"FISHID71\"\ninventory.pickupmessage \"Picked up a Green Tiger Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 B 0 A_SpawnItemEx(\"Fish_GreenTigerPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 3, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 4, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_BlackTigerPrawn : Fish_TigerPrawn\n{\ntranslation \"192:192=0:0\", \"198:198=3:3\"\ninventory.icon \"FISHID72\"\ninventory.pickupmessage \"Picked up a Black Tiger Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 B 0 A_SpawnItemEx(\"Fish_BlackTigerPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 4, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 5, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_WhiteTigerPrawn : Fish_TigerPrawn\n{\ntranslation \"192:192=82:82\", \"198:198=91:91\"\ninventory.icon \"FISHID73\"\ninventory.pickupmessage \"Picked up a White Tiger Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 B 0 A_SpawnItemEx(\"Fish_WhiteTigerPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 5, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 6, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_OrangeTigerPrawn : Fish_TigerPrawn\n{\ntranslation \"192:192=227:227\", \"198:198=218:218\"\ninventory.icon \"FISHID74\"\ninventory.pickupmessage \"Picked up a Orange Tiger Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 B 0 A_SpawnItemEx(\"Fish_OrangeTigerPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 6, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 7, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_PurpleTigerPrawn : Fish_TigerPrawn\n{\ntranslation \"192:192=239:239\", \"198:198=236:236\"\ninventory.icon \"FISHID75\"\ninventory.pickupmessage \"Picked up a Purple Tiger Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 B 0 A_SpawnItemEx(\"Fish_PurpleTigerPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 7, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 8, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_CyanTigerPrawn : Fish_TigerPrawn\n{\n//translation \"192:192=227:227\", \"198:198=229:229\"\ninventory.icon \"FISHID78\"\ninventory.pickupmessage \"Picked up a Cyan Tiger Prawn!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFIS3 B 0 A_SpawnItemEx(\"Fish_CyanTigerPrawn\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_auracolor\", 0, 10, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 9, 2)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/Slugs.txt",
        "contents": "actor Fish_Slug : BaseFish\n{\ninventory.amount 1\ninventory.usesound \"fish/setslug\"\nstates\n{\nSpawn:\nFISI G 2400\nstop\nDropFish:\nFISI G 0 A_SpawnItemEx(\"Fish_Slug\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_SmellySlug : Fish_Slug\n{\ntranslation \"192:192=232:232\", \"198:198=234:234\"\ninventory.icon \"FISHIC35\"\ninventory.pickupmessage \"Picked up a Smelly Slug!\"\ninventory.usesound \"\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI G 0 A_SpawnItemEx(\"Fish_SmellySlug\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_PlaySoundEx(\"misc/fishfart\", \"Voice\")\nTNT1 A 0 A_SpawnITemEx(\"SlugFart\")\nstop\n}\n}\n\nactor SlugFart\n{\nPROJECTILE\ndamage 0\npoisondamage 50\nobituary \"%o could not withstand the smell of %k.\"\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 A_Explode(10, 512, 0, 1, 10)\nstop\n}\n}\n\nactor Fish_StickySlug : Fish_Slug\n{\ntranslation \"192:192=4:4\", \"198:198=104:104\"\ninventory.icon \"FISHIC36\"\ninventory.pickupmessage \"Picked up a Sticky Slug!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI G 0 A_SpawnItemEx(\"Fish_StickySlug\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_findplayer\", 128)>0, \"Stick\")\nfail\nStick:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_sticktoplayer\", 0, ACS_NamedExecuteWithResult(\"hfish_findplayer\", 128))\nstop\n}\n}\n\nactor IsStickingPlayer : OnceFish {}\n\nactor Fish_LonelySlug : Fish_Slug\n{\ntranslation \"192:192=152:152\", \"198:198=157:157\"\ninventory.icon \"FISHIC37\"\ninventory.pickupmessage \"Picked up a Lonely Slug!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI G 0 A_SpawnItemEx(\"Fish_LonelySlug\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_SpawnItemEx(\"LonleySlugTP\", 0, 0, 0, 20)\nstop\n}\n}\n\nactor Fish_LonelySlugAuto : Fish_LonelySlug\n{\n+AUTOACTIVATE\nstates{\nUse:\nTNT1 A 0\ngoto UseF\n}\n}\n\nactor LonleySlugTP\n{\nPROJECTILE\n-NOBLOCKMAP\n+RIPPER\nrenderstyle none\nradius 16\nheight 56\nstates\n{\nSpawn:\nPLAY A 0\nPLAY A 0 A_ChangeFlag(\"MISSILE\", 0)\nPLAY A 5\nDeath:\nPLAY A 0 A_stop\nPLAY A 80 ACS_NamedExecuteAlways(\"hfish_teleporttoplayer\", 0)\nstop\n}\n}\n\nactor Fish_DizzySlug : Fish_Slug\n{\ntranslation \"192:192=250:250\", \"198:198=238:238\"\ninventory.icon \"FISHIC38\"\ninventory.pickupmessage \"Picked up a Dizzy Slug!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI G 0 A_SpawnItemEx(\"Fish_DizzySlug\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_findplayer\", 256)>0, \"Spin\")\nfail\nSpin:\nTNT1 A 0 A_SpawnItemEx(\"DizzySlugSpin\")\nstop\n}\n}\n\nactor DizzySlugSpin\n{\n+NOINTERACTION\n+MISSILE\nreactiontime 1050\nrenderstyle none\nstates\n{\nSpawn:\nPLAY A 0\nPLAY A 1 A_TransferPointer(AAPTR_TARGET, AAPTR_DEFAULT, AAPTR_TRACER, AAPTR_TARGET)\nSpin:\nPLAY A 1 A_CountDown\nPLAY A 0 A_GiveToTarget(\"DizzySlugAngler\",1)\nloop\n}\n}\n\nactor DizzySlugAngler : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_SetAngle(angle-20.0)\nTNT1 A 0 A_SpawnITemEx(\"SlugSpinFX\",5)\nstop\n}\n}\nactor SlugSpinFX\n{\n-SOLID\nscale 2.5\nradius 1\nheight 1\n+NOGRAVITY\n+CLIENTSIDEONLY\nStates\n{\nSpawn:\nTNT1 A 0\nTOPS A 2\nstop\n}\n}\n\nactor Fish_HammerSlug : Fish_Slug\n{\ntranslation \"192:192=204:204\", \"198:198=207:207\"\ninventory.icon \"FISHID38\"\ninventory.pickupmessage \"Picked up a Hammer Slug!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI G 0 A_SpawnItemEx(\"Fish_HammerSlug\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_findplayer\", 256)>0, \"Hammer\")\nfail\nHammer:\nTNT1 A 0 A_SpawnItemEx(\"HammerSlugFlatten\")\nstop\n}\n}\n\nactor HammerSlugFlatten\n{\n+NOINTERACTION\n+MISSILE\nreactiontime 2100\nrenderstyle none\nstates\n{\nSpawn:\nPLAY A 0\nPLAY A 1 A_TransferPointer(AAPTR_TARGET, AAPTR_DEFAULT, AAPTR_TRACER, AAPTR_TARGET)\nPLAY A 0 A_GiveToTarget(\"HammerSlugFlattener\",1)\nHammer:\nPLAY A 1 A_CountDown\nloop\nDeath:\nPLAY A 0 A_GiveToTarget(\"HammerSlugUnFlattener\",1)\nstop\n}\n}\n\nactor HammerSlugFlattener : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_PlaySoundEx(\"misc/fishflat\", \"Voice\")\nTNT1 A 0 A_SetScale(3.0, 1.0)\nTNT1 A 0 A_GiveInventory(\"HammerSlugSlow\", 1)\nstop\n}\n}\n\nactor HammerSlugUnFlattener : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_SetScale(2.5, 2.5)\nTNT1 A 0 A_TakeInventory(\"HammerSlugSlow\", 1)\nstop\n}\n}\n\nactor HammerSlugSlow : PowerSpeed\n{\n+NOTRAIL\nspeed 0.3\n}\n\nactor Fish_BackwardsSlug : Fish_Slug\n{\ntranslation \"192:192=39:39\", \"198:198=4:4\"\ninventory.icon \"FISHID87\"\ninventory.pickupmessage \"Picked up a Backwards Slug!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI G 0 A_SpawnItemEx(\"Fish_BackwardsSlug\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_findplayer\", 256)>0, \"Back\")\nfail\nBack:\nTNT1 A 0 A_SpawnItemEx(\"BackwardsSlugMover\")\nstop\n}\n}\n\nactor BackwardsSlugMover\n{\n+NOINTERACTION\n+MISSILE\nreactiontime 1050\nrenderstyle none\nstates\n{\nSpawn:\nPLAY A 0\nPLAY A 1 A_TransferPointer(AAPTR_TARGET, AAPTR_DEFAULT, AAPTR_TRACER, AAPTR_TARGET)\nSpin:\nPLAY A 0 A_GiveToTarget(\"BackwardsSlugPowerup\",1)\nstop\n}\n}\n\nactor BackwardsSlugPowerup : PowerSpeed\n{\n+NOTRAIL\nspeed -1.0\n}\n\nactor Fish_VibratingSlug : Fish_Slug\n{\ntranslation \"192:192=200:200\", \"198:198=93:93\"\ninventory.icon \"FISHIC39\"\ninventory.pickupmessage \"Picked up a Vibrating Slug!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI G 0 A_SpawnItemEx(\"Fish_VibratingSlug\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_Quake(4, 1000, 0, 600, 0)\nstop\n}\n}\n\nactor FishSlugChat : Inventory { inventory.maxamount 100 }\n\nactor Fish_ChattySlug : Fish_Slug\n{\ntranslation \"192:192=172:172\", \"198:198=227:227\"\ninventory.icon \"FISHID89\"\ninventory.pickupmessage \"Picked up a Chatty Slug!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI G 0 A_SpawnItemEx(\"Fish_ChattySlug\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_findplayer\", 128)>0, \"Stick\")\nfail\nStick:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_tauntspamstart\", 0, ACS_NamedExecuteWithResult(\"hfish_findplayer\", 128))\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/FishBase.txt",
        "contents": "actor BaseFish : CustomInventory\n{\ninventory.maxamount 99\ninventory.amount 1\n+INVBAR\nheight 2\nradius 8\ninventory.icon \"FISHIC01\"\ninventory.pickupmessage \"Regular Fish!\"\nInventory.PickupSound \"item/1up\"\nscale 1.9\n\n+THRUSPECIES\nspecies \"Fishing\"\nstates\n{\nSpawn:\nFISI A 2400\nstop\nUse:\nTNT1 A 0 A_JumpIfInventory(\"DropfishTrigger\",1,\"DropFishCheck\")\nTNT1 A 0 A_JumpIfInventory(\"FeedpetTrigger\",1,\"FeedPet\")\nTNT1 A 0 A_JumpIfInventory(\"FishInGame\",1,\"UseF\")//TNT1 A 0 A_Jump(256,\"UseF\")\nfail\nDropFishCheck:\nTNT1 A 0 A_JumpIfInventory(\"DropfishDelay\",1,\"NoDrop\")\nTNT1 A 0 A_GiveInventory(\"DropfishDelay\",1)\nTNT1 A 0 A_Jump(256,\"DropFish\")\ngoto DropFish\nDropFish:\nFISI A 0 A_SpawnItemEx(\"BaseFish\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)//A_DropItem(\"BaseFish\",1,256)\nstop\nFeedPet:\n//TNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\n//FISI A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 45) // exp to give\n//FISI A ACS_NamedExecuteAlways(\"hfish_petcolor\", 0, i+1, which) // for dyes\nFISI A 0\nfail\nUseF:\nFISI A 0\nfail\nFailure:\nTNT1 A 0\nfail\nNoDrop:\nTNT1 A 0\nfail\n}\n}\nactor DropfishDelay : Powerup\n{\npowerup.duration 5\n}\n\nactor FishJunk : CustomInventory\n{\nheight 2\nradius 2\nscale 1.9\n//+INVENTORY.QUIET\n+INVENTORY.ALWAYSPICKUP\ninventory.pickupmessage \"It's just junk...\"\nInventory.PickupSound \"\"\ninventory.amount 1\ninventory.maxamount 1\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 5 A_Jump(256, \"Junk1\", \"Junk2\", \"Junk3\", \"Junk4\")\nJunk1:\nFISI T 2400\nstop\nJunk2:\nFISI U 2400\nstop\nJunk3:\nFISI V 2400\nstop\nJunk4:\nFIS2 D 2400\nstop\nPickup:\nTNT1 A 0\nstop\n}\n}\n\nactor Fish_Bass : BaseFish\n{\ntranslation \"192:192=196:196\", \"198:198=206:206\", \"224:224=89:89\", \"225:225=94:94\"\ninventory.icon \"FISHIC02\"\ninventory.pickupmessage \"Picked up a Bass!\"\nstates\n{\nDropFish:\nFISI A 0 A_SpawnItemEx(\"Fish_Bass\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)//A_DropItem(\"Fish_Bass\",1,256)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 40) // exp to give\nstop\n}\n}\n\nactor Fish_Minnow : BaseFish\n{\ntranslation \"192:192=210:210\", \"198:198=230:230\", \"224:224=151:151\", \"225:225=1:1\"\ninventory.icon \"FISHIC03\"\ninventory.pickupmessage \"Picked up a Minnow!\"\nstates\n{\nDropFish:\nFISI A 0 A_SpawnItemEx(\"Fish_Minnow\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)//A_DropItem(\"Fish_Minnow\",1,256)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 40) // exp to give\nstop\n}\n}\n\nactor Fish_Salmon : BaseFish\n{\ntranslation \"192:192=4:4\", \"198:198=90:90\", \"224:224=203:203\", \"225:225=206:206\"\ninventory.icon \"FISHIC04\"\ninventory.pickupmessage \"Picked up a Salmon!\"\nstates\n{\nDropFish:\nFISI A 0 A_SpawnItemEx(\"Fish_Salmon\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)//A_DropItem(\"Fish_Salmon\",1,256)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 40) // exp to give\nstop\n}\n}\n\nactor Fish_Tetra : BaseFish\n{\ntranslation \"192:192=202:202\", \"198:198=206:206\", \"224:224=177:177\", \"225:225=185:185\"\ninventory.icon \"FISHIC05\"\ninventory.pickupmessage \"Picked up a Tetra!\"\nstates\n{\nDropFish:\nFISI A 0 A_SpawnItemEx(\"Fish_Tetra\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)//A_DropItem(\"Fish_Tetra\",1,256)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 40) // exp to give\nstop\n}\n}\n\nactor Fish_Trout : BaseFish\n{\ntranslation \"192:192=52:52\", \"198:198=220:220\", \"224:224=146:146\", \"225:225=144:144\"\ninventory.icon \"FISHIC06\"\ninventory.pickupmessage \"Picked up a Trout!\"\nstates\n{\nDropFish:\nFISI A 0 A_SpawnItemEx(\"Fish_Trout\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)//A_DropItem(\"Fish_Trout\",1,256)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 40) // exp to give\nstop\n}\n}\n\nactor Fish_RedSnapper : BaseFish\n{\ntranslation \"192:192=172:172\", \"198:198=175:175\", \"224:224=179:179\", \"225:225=184:184\"\ninventory.icon \"FISHIC07\"\ninventory.pickupmessage \"Picked up a Red Snapper!\"\nstates\n{\nDropFish:\nFISI A 0 A_SpawnItemEx(\"Fish_RedSnapper\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)//A_DropItem(\"Fish_RedSnapper\",1,256)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 40) // exp to give\nstop\n}\n}\n\n//Amberjack? Clownfish? Dunno."
      },
      {
        "source": "pk3",
        "name": "actors/FishNPCs.txt",
        "contents": "actor FishingAuto : NPCBaseCH replaces Auto\n{\nHeight 76\nRadius 64\nTranslation \"198:198=128:128\", \"192:192=4:4\"\nStates\n{\nSpawn:\nAUTO A 0\nAUTO A 1 //A_SetSpecial(226, 6000,0,0)\nAUTO A 1 Thing_ChangeTID(0, 500)\nSpawnLoop:\nAUTO A 0 A_ChangeFlag(\"USESPECIAL\",1)\nAUTO AIAI 6\ngoto SpawnLoop+1\nTalking:\nAUTO A 0 A_ChangeFlag(\"USESPECIAL\",0)\nAUTO AJAJAJAJAJAJAJA 4\nAUTO A 20\nGoto SpawnLoop\nStandby:\nAUTO A 0 A_ChangeFlag(\"USESPECIAL\",0)\nAUTO AIAIAIAIAIAIAI 6\ngoto SpawnLoop\n}\n}\n\nactor TalkingCooldown : Powerup\n{\npowerup.duration -6\n}\n\nactor FishSafeCooldown : TalkingCooldown {}\n\nactor FishDataSent : OnceFish {}\nactor FishDataComplete : OnceFish {}\nactor FishSafeSaving : OnceFish {}\n\nactor FishSafe\n{\nscale 2.5\n+USESPECIAL\nActivation THINGSPEC_TriggerTargets|THINGSPEC_NoDeathSpecial\n+SOLID\nradius 32\nheight 48\nstates\n{\nSpawn:\nCHES C 0\nCHES C 1 //A_SetSpecial(226, 6001,0,0)\nSafe:\nCHES C 6 //A_LookEx(LOF_NOSOUNDCHECK, 0, 150, 0, 360, \"See\")\nloop\nCooldown:\nCHES C 0 A_ChangeFlag(\"USESPECIAL\",0)\nCHES C 80\nCHES C 0 A_ChangeFlag(\"USESPECIAL\",1)\ngoto Safe\n}\n}\n\nactor FishRodBox\n{\nscale 2.5\n+USESPECIAL\n+SOLID\nradius 30\nActivation THINGSPEC_TriggerTargets|THINGSPEC_NoDeathSpecial\nheight 25\nstates\n{\nSpawn:\nCHES D 0\nCHES D 1 //A_SetSpecial(226, 6001,0,1)\nSafe:\nCHES D 6\nloop\nCooldown:\nCHES D 0 A_ChangeFlag(\"USESPECIAL\",0)\nCHES D 80\nCHES D 0 A_ChangeFlag(\"USESPECIAL\",1)\ngoto Safe\n}\n}\n\nactor FishingMeowstic : MeowsticNPCCH replaces MeowsticNPCCH\n{\ntranslation \"192:192=4:4\", \"198:198=249:249\"\nobituary \"%o was psychic-blasted by \\c[e4]Meowstic\\c-.\"\n+USESPECIAL\nActivation THINGSPEC_TriggerActs|THINGSPEC_NoDeathSpecial\nradius 48\nheight 48\nStates\n{\nSpawn:\nMSTN Z 0\nMSTN Z 1 //A_SetSpecial(226, 6002)\nMSTN Z 0 A_ChangeFlag(\"USESPECIAL\",1)\nMSTN Z 3 A_JumpIfInventory(\"CutterFlag\",2,\"Spawn3\")\nSpawn2://awake\nMSTN Z 3 A_JumpIfInventory(\"CutterFlag\",2,\"Spawn3\")\nMSTN Z 5\nloop\nSpawn3://sleep\nMSTN M 3 A_JumpIfInventory(\"CutterFlag\",2,1)\ngoto Spawn2\nMSTN M 5\nloop\n\nHeWake:\nMSTN M 0 //A_ChangeFlag(\"USESPECIAL\",0)\nMSTN MNONMNONMN 3\nMSTN O 3 A_LookEx(LOF_NOSOUNDCHECK, 0, 100, 0, 360, \"See\")\nMSTN O 15\nMSTN NM 3\nGoto Spawn+2\nSee:\nMSTN O 0 ACS_NamedExecuteAlways(\"ch_sleepynpc\",0,1)\nMSTN O 74\nMSTN NM 3\ngoto Spawn+2\n\nTalking: //awake\nMSTN Z 0 //A_ChangeFlag(\"USESPECIAL\",0)\nMSTN Z 80\nGoto Spawn+2\nTalkABC: //Note: Naming scheme for technical stuff ; eyes stay open\nMSTN O 0 //A_ChangeFlag(\"USESPECIAL\",0)\nMSTN O 74\nMSTN NM 3\nGoto Spawn+2\nTalkA: //Eyes half open\nMSTN N 0 //A_ChangeFlag(\"USESPECIAL\",0)\nMSTN N 77\nMSTN M 3\nGoto Spawn+2\nTalkAB: //Eyes close\nMSTN N 0 //A_ChangeFlag(\"USESPECIAL\",0)\nMSTN N 3\nMSTN M 77\nGoto Spawn+2\nTalk: //Close to open\nMSTN M 0 //A_ChangeFlag(\"USESPECIAL\",0)\nMSTN MN 3\nMSTN O 74\nGoto Spawn+2\n\nStandby:\nMSTN Z 0 A_ChangeFlag(\"USESPECIAL\",0)\nMSTN Z 3 A_JumpIfInventory(\"CutterFlag\",2,\"Standby2\")\nMSTN Z 80\nGoto Spawn+2\nStandby2:\nMSTN M 80\nGoto Spawn+2\n\nMelee:\nMSTN Z 0 A_ChangeFlag(\"USESPECIAL\",0)\nMSTN Z 15\nMSTN X 0 A_PlaySoundEx(\"weapon/gravityhold\",\"Weapon\") //A_TakeInventory(\"Once\",0)\nMSTN X 0 A_SpawnItemEx(\"MeowsticThrow\",0,0,28)\nMSTN X 5\nMSTN Y 4\nMSTN Z 70\nGoto Spawn+2\n\n}\n}\n\nactor MeowsticThrow\n{\n-SOLID\n+NOGRAVITY\nPROJECTILE\n+DONTBLAST\n+NOINTERACTION\n+FORCEPAIN\ndamage 0\nradius 1\nheight 1\ndamagetype \"FlingDamage\"\ndeathtype \"GravityHold\"\nObituary \"%o was psychic-blasted by \\c[e4]Meowstic\\c-.\"\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 A_Explode(70,256,0)\nstop\n}\n}\n\nactor EnableNoClip : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_ChangeFlag(\"NOINTERACTION\", 1)\nstop\n}\n}\n\nactor TradingArrow\n{\n-SOLID\nheight 8\nradius 8\nscale 1.5\nstates\n{\nSpawn:\nTARW A -1\nstop\n}\n}\n\nactor Cost10x : TradingArrow\n{\n+NOGRAVITY\nstates\n{\nSpawn:\nTARW B -1\nstop\n}\n}\n\nactor SoldOutSign : TradingArrow\n{\nheight 2\nradius 8\n+NOCLIP\nstates\n{\nSpawn:\nTARW C -1\nstop\n}\n}\n\nactor Cost5x : TradingArrow\n{\n+NOGRAVITY\nstates\n{\nSpawn:\nTARW D -1\nstop\n}\n}\n\n//NPC event flags\nactor FishStarted : OnceFish {}\nactor NewRod : OnceFish {} //fishing rod\nactor RenewRod : OnceFish {}\nactor SaidAngelfish : OnceFish {} //angelfish\nactor SaidOscar : OnceFish {} //oscar"
      },
      {
        "source": "pk3",
        "name": "actors/Jellyfish.txt",
        "contents": "//Player dye\n\nactor Fish_Jelly : BaseFish\n{\ninventory.amount 1\ninventory.usesound \"weapon/OilShot\"\nstates\n{\nSpawn:\nFISI K 2400\nstop\nDropFish:\nFISI K 0 A_SpawnItemEx(\"Fish_Jelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_BellJelly : Fish_Jelly\n{\nstates\n{\nSpawn:\nFISI H 2400\nstop\nDropFish:\nFISI H 0 A_SpawnItemEx(\"Fish_BellJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0\nstop\n}\n}\n\n//Primary palette\nactor Fish_BlueBoxJelly : Fish_Jelly\n{\ntranslation \"192:192=199:199\", \"198:198=198:198\"\ninventory.icon \"FISHIC96\"\ninventory.pickupmessage \"Picked up a Blue Box Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI K 0 A_SpawnItemEx(\"Fish_BlueBoxJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 2)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 0, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_RedBoxJelly : Fish_Jelly\n{\ntranslation \"192:192=176:176\", \"198:198=173:173\"\ninventory.icon \"FISHIC16\"\ninventory.pickupmessage \"Picked up a Red Box Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI K 0 A_SpawnItemEx(\"Fish_RedBoxJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 1, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_YellowBoxJelly : Fish_Jelly\n{\ntranslation \"192:192=228:228\", \"198:198=218:218\"\ninventory.icon \"FISHID01\"\ninventory.pickupmessage \"Picked up a Yellow Box Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI K 0 A_SpawnItemEx(\"Fish_YellowBoxJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 9)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 2, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_PinkBoxJelly : Fish_Jelly\n{\ntranslation \"192:192=236:236\", \"198:198=35:35\"\ninventory.icon \"FISHIC98\"\ninventory.pickupmessage \"Picked up a Pink Box Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI K 0 A_SpawnItemEx(\"Fish_PinkBoxJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 8)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 3, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_GreenBoxJelly : Fish_Jelly\n{\ntranslation \"192:192=106:106\", \"198:198=41:41\"\ninventory.icon \"FISHIC19\"\ninventory.pickupmessage \"Picked up a Green Box Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI K 0 A_SpawnItemEx(\"Fish_GreenBoxJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 3)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 4, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_BlackBoxJelly : Fish_Jelly\n{\ntranslation \"192:192=0:0\", \"198:198=3:3\"\ninventory.icon \"FISHIC20\"\ninventory.pickupmessage \"Picked up a Black Box Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI K 0 A_SpawnItemEx(\"Fish_BlackBoxJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 4)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 5, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_WhiteBoxJelly : Fish_Jelly\n{\ntranslation \"192:192=82:82\", \"198:198=91:91\"\ninventory.icon \"FISHIC97\"\ninventory.pickupmessage \"Picked up a White Box Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI K 0 A_SpawnItemEx(\"Fish_WhiteBoxJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 5)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 6, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_OrangeBoxJelly : Fish_Jelly\n{\ntranslation \"192:192=227:227\", \"198:198=218:218\"\ninventory.icon \"FISHIC99\"\ninventory.pickupmessage \"Picked up a Orange Box Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI K 0 A_SpawnItemEx(\"Fish_OrangeBoxJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 6)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 7, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_PurpleBoxJelly : Fish_Jelly\n{\ntranslation \"192:192=239:239\", \"198:198=236:236\"\ninventory.icon \"FISHIC18\"\ninventory.pickupmessage \"Picked up a Purple Box Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI K 0 A_SpawnItemEx(\"Fish_PurpleBoxJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 7)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 8, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_CyanBoxJelly : Fish_Jelly\n{\n//translation \"192:192=227:227\", \"198:198=229:229\"\ninventory.icon \"FISHIC15\"\ninventory.pickupmessage \"Picked up a Cyan Box Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI K 0 A_SpawnItemEx(\"Fish_CyanBoxJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 10)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 9, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\n//Secondary palette\nactor Fish_BlueBellJelly : Fish_BellJelly\n{\ntranslation \"192:192=199:199\", \"198:198=198:198\"\ninventory.icon \"FISHID02\"\ninventory.pickupmessage \"Picked up a Blue Bell Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI H 0 A_SpawnItemEx(\"Fish_BlueBellJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 2, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 10, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_RedBellJelly : Fish_BellJelly\n{\ntranslation \"192:192=176:176\", \"198:198=173:173\"\ninventory.icon \"FISHID03\"\ninventory.pickupmessage \"Picked up a Red Bell Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI H 0 A_SpawnItemEx(\"Fish_RedBellJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 1, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 11, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_YellowBellJelly : Fish_BellJelly\n{\ntranslation \"192:192=228:228\", \"198:198=218:218\"\ninventory.icon \"FISHID10\"\ninventory.pickupmessage \"Picked up a Yellow Bell Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI H 0 A_SpawnItemEx(\"Fish_YellowBellJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 9, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 12, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_PinkBellJelly : Fish_BellJelly\n{\ntranslation \"192:192=236:236\", \"198:198=35:35\"\ninventory.icon \"FISHID08\"\ninventory.pickupmessage \"Picked up a Pink Bell Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI H 0 A_SpawnItemEx(\"Fish_PinkBellJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 8, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 13, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_GreenBellJelly : Fish_BellJelly\n{\ntranslation \"192:192=106:106\", \"198:198=41:41\"\ninventory.icon \"FISHID11\"\ninventory.pickupmessage \"Picked up a Green Bell Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI H 0 A_SpawnItemEx(\"Fish_GreenBellJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 3, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 14, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_BlackBellJelly : Fish_BellJelly\n{\ntranslation \"192:192=0:0\", \"198:198=3:3\"\ninventory.icon \"FISHID04\"\ninventory.pickupmessage \"Picked up a Black Bell Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI H 0 A_SpawnItemEx(\"Fish_BlackBellJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 4, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 15, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_WhiteBellJelly : Fish_BellJelly\n{\ntranslation \"192:192=82:82\", \"198:198=91:91\"\ninventory.icon \"FISHID05\"\ninventory.pickupmessage \"Picked up a White Bell Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI H 0 A_SpawnItemEx(\"Fish_WhiteBellJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 5, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 16, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_OrangeBellJelly : Fish_BellJelly\n{\ntranslation \"192:192=227:227\", \"198:198=218:218\"\ninventory.icon \"FISHID09\"\ninventory.pickupmessage \"Picked up a Orange Bell Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI H 0 A_SpawnItemEx(\"Fish_OrangeBellJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 6, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 17, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_PurpleBellJelly : Fish_BellJelly\n{\ntranslation \"192:192=239:239\", \"198:198=236:236\"\ninventory.icon \"FISHID07\"\ninventory.pickupmessage \"Picked up a Purple Bell Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI H 0 A_SpawnItemEx(\"Fish_PurpleBellJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 7, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 18, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_CyanBellJelly : Fish_BellJelly\n{\n//translation \"192:192=227:227\", \"198:198=229:229\"\ninventory.icon \"FISHID06\"\ninventory.pickupmessage \"Picked up a Cyan Bell Jellyfish!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI H 0 A_SpawnItemEx(\"Fish_CyanBellJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_color\", 0, 10, 1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, 19, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_RainbowJelly : Fish_Jelly\n{\ninventory.icon \"FISHIU22\"\ninventory.pickupmessage \"Picked up a Rainbow Jellyfish!\"\ninventory.amount 1\nstates\n{\nSpawn:\nFIS2 U 2400\nstop\nDropFish:\nFISI U 0 A_SpawnItemEx(\"Fish_RainbowJelly\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_randomcolor\", 0)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, random(1,10), 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_favecheck\", 0, random(1,10), 1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 200) // exp to give\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/Frogs.txt",
        "contents": "actor Fish_LonglegFrog : BaseFish\n{\ninventory.maxamount 1\nTranslation \"192:192=248:248\", \"198:198=104:104\"\ninventory.icon \"FISHIC76\"\ninventory.pickupmessage \"Picked up a Long Leg Frog!\"\ninventory.usesound \"misc/frog\"\nstates\n{\nSpawn:\nFIS2 K 2400\nstop\nDropFish:\nFIS2 K 0 A_SpawnItemEx(\"Fish_LongLegFrog\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_GiveInventory(\"LongLeggedPower\")\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 150) // exp to give\nstop\n}\n}\n\nactor LongLeggedPower : PowerHighJump\n{\n}\n\nactor Fish_CloudhopFrog : Fish_LonglegFrog\n{\ntranslation \"192:192=200:200\", \"198:198=58:58\"\ninventory.icon \"FISHIC77\"\ninventory.pickupmessage \"Picked up a Cloud hop Frog!\"\nstates\n{\nDropFish:\nFIS2 K 0 A_SpawnItemEx(\"Fish_CloudHopFrog\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_jumpcheck\",0,1)\nstop\n}\n}\n\nactor FrogDoubleJump : OnceFish {}\nactor FrogCanDoubleJump : OnceFish {}\nactor FrogSecondJump : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_PlaySoundEx(\"misc/frogjump\", \"Body\")\nTNT1 A 0 A_JumpIfInventory(\"CeilingDuckFlag\",1,\"Upwards\")\nTNT1 A 0 A_ChangeVelocity(momx,momy,10.0,CVF_REPLACE)\nTNT1 A 0 A_GiveInventory(\"JumpCancler\",1)\nstop\nUpwards:\nTNT1 A 0 A_ChangeVelocity(momx,momy,-10.0,CVF_REPLACE)\nTNT1 A 0 A_GiveInventory(\"JumpCancler\",1)\nstop\n}\n}\n\nactor Fish_StickyFrog : Fish_LonglegFrog\n{\ntranslation \"192:192=214:214\", \"198:198=219:219\"\ninventory.icon \"FISHIC78\"\ninventory.pickupmessage \"Picked up a Sticky Frog!\"\nstates\n{\nDropFish:\nFIS2 K 0 A_SpawnItemEx(\"Fish_StickyFrog\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_jumpcheck\",0,2)\nstop\n}\n}\n\nactor FrogWallJump : OnceFish {}\n\nactor FrogWallCheck\n{\n+MISSILE\n+NOINTERACTION\n+DONTBLAST\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0\nTNT1 A 1\nloop\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor FrogPressF : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0\nTNT1 A 0 A_SpawnItemEx(\"FrogWallHugF\",8,0,3)\nstop\n}\n}\nactor FrogPressB : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0\nTNT1 A 0 A_SpawnItemEx(\"FrogWallHugB\",-8,0,3)\nstop\n}\n}\nactor FrogPressL : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0\nTNT1 A 0 A_SpawnItemEx(\"FrogWallHugL\",0,-8,3)\nstop\n}\n}\nactor FrogPressR : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0\nTNT1 A 0 A_SpawnItemEx(\"FrogWallHugR\",0,8,3)\nstop\n}\n}\n\nactor FrogWallHugs : Inventory\n{\ninventory.amount 1\ninventory.maxamount 4\n}\nactor FrogWallHugger\n{\n+MISSILE\n+DONTBLAST\n+THRUACTORS\n+NOTARGETSWITCH\n+NOGRAVITY\ndamage (0)\nradius 14\nheight 50\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 A_TakeFromTarget(\"FrogWallHugs\",0)\nstop\nCrash:\nXDeath:\nTNT1 A 0 A_TakeFromTarget(\"FrogWallHugs\",0)\nstop\nDeath:\nTNT1 A 0 A_TakeFromTarget(\"FrogWallHugs\",0)\nTNT1 A 0 A_GiveToTarget(\"FrogWallSlide\",1)\nTNT1 A 0 A_Jump(256,\"SideCheck\")\nstop\nSideCheck:\nTNT1 A 0\nstop\n}\n}\nactor FrogWallHugF : FrogWallHugger\n{\nstates\n{\nSideCheck:\nTNT1 A 0 A_GiveToTarget(\"FrogWallHugs\",1)\nstop\n}\n}\nactor FrogWallHugB : FrogWallHugger\n{\nstates\n{\nSideCheck:\nTNT1 A 0 A_GiveToTarget(\"FrogWallHugs\",2)\nstop\n}\n}\nactor FrogWallHugL : FrogWallHugger\n{\nstates\n{\nSideCheck:\nTNT1 A 0 A_GiveToTarget(\"FrogWallHugs\",3)\nstop\n}\n}\nactor FrogWallHugR : FrogWallHugger\n{\nstates\n{\nSideCheck:\nTNT1 A 0 A_GiveToTarget(\"FrogWallHugs\",4)\nstop\n}\n}\n\nactor FrogWallSlide : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0\nTNT1 A 0 A_JumpIfInventory(\"CeilingDuckFlag\",1,\"Upwards\")\nTNT1 A 0 A_JumpIf(momz>=0,\"Failure\")\nTNT1 A 0 A_JumpIf(z-floorz<=0,\"Failure\")\nTNT1 A 0 A_ChangeVelocity(0,0,-(momz/3),CVF_RELATIVE)\nstop\nUpwards:\nTNT1 A 0 A_JumpIf(momz<=0,\"Failure\")\nTNT1 A 0 A_JumpIfInventory(\"OnCeilingDuck\",1,\"Failure\")\nTNT1 A 0 A_ChangeVelocity(0,0,-(momz/3),CVF_RELATIVE)\nstop\nFailure:\nTNT1 A 0\nstop\n}\n}\nactor FrogWallJumper : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_PlaySoundEx(\"misc/frogjump\", \"Body\")\nTNT1 A 0 A_JumpIfInventory(\"CeilingDuckFlag\",1,\"Upwards\")\nTNT1 A 0 A_ChangeVelocity(momx,momy,10.0,CVF_REPLACE)\ngoto Cont\nUpwards:\nTNT1 A 0 A_ChangeVelocity(momx,momy,-10.0,CVF_REPLACE)\ngoto Cont\nCont:\nTNT1 A 0 //A_GiveInventory(\"JumpCancler\",1)\nTNT1 A 0 A_JumpIfInventory(\"FrogWallHugs\",4,\"Right\")\nTNT1 A 0 A_JumpIfInventory(\"FrogWallHugs\",3,\"Left\")\nTNT1 A 0 A_JumpIfInventory(\"FrogWallHugs\",2,\"Back\")\nForward:\nTNT1 A 0 A_SetAngle(angle+180)\ngoto Lunge\nBack:\nTNT1 A 0\ngoto Lunge\nLeft:\nTNT1 A 0 A_SetAngle(angle-90)\ngoto Lunge\nRight:\nTNT1 A 0 A_SetAngle(angle+90)\ngoto Lunge\nLunge:\nTNT1 A 0 A_TakeInventory(\"FrogWallHugs\",0)\nTNT1 A 0 A_Recoil(-10)\nTNT1 A 0 A_GiveInventory(\"FrogCanDoubleJump\",1)\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/LuckyFish.txt",
        "contents": "//Increased luck\n\nactor Fish_CloverFin : BaseFish\n{\ninventory.maxamount 99\ninventory.icon \"FISHIU14\"\ninventory.pickupmessage \"Picked up a Cloverfin!\"\ninventory.usesound \"misc/luck1\"\nstates\n{\nSpawn:\nFIS2 I 2400\nstop\nDropFish:\nFIS2 I 0 A_SpawnItemEx(\"Fish_CloverFin\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_PlaySoundEx(\"misc/luckfish1\", \"SoundSlot7\")\nTNT1 A 0 A_GiveInventory(\"FishLuckBuff\")\nTNT1 A 0 A_GiveInventory(\"FishLuckFXSpawner\",1)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 300) // exp to give\nstop\n}\n}\n\nactor Fish_IncredibleCloverFin : BaseFish\n{\ninventory.maxamount 1\ninventory.icon \"FISHIU15\"\ninventory.pickupmessage \"Picked up an Incredible Cloverfin!\"\nstates\n{\nSpawn:\nFIS2 J 2400\nstop\nDropFish:\nFIS2 J 0 A_SpawnItemEx(\"Fish_IncredibleCloverFin\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_fishluckall\", 0)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 400) // exp to give\nstop\n}\n}\nactor FishLuckFXSpawner : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_SpawnItemEx(\"FishLuckFX\", 48, 0, 64, 0, 0, -1, 0 * 36)\nTNT1 A 0 A_SpawnItemEx(\"FishLuckFX\", 48, 0, 64, 0, 0, -1, 1 * 36)\nTNT1 A 0 A_SpawnItemEx(\"FishLuckFX\", 48, 0, 64, 0, 0, -1, 2 * 36)\nTNT1 A 0 A_SpawnItemEx(\"FishLuckFX\", 48, 0, 64, 0, 0, -1, 3 * 36)\nTNT1 A 0 A_SpawnItemEx(\"FishLuckFX\", 48, 0, 64, 0, 0, -1, 4 * 36)\nTNT1 A 0 A_SpawnItemEx(\"FishLuckFX\", 48, 0, 64, 0, 0, -1, 5 * 36)\nTNT1 A 0 A_SpawnItemEx(\"FishLuckFX\", 48, 0, 64, 0, 0, -1, 6 * 36)\nTNT1 A 0 A_SpawnItemEx(\"FishLuckFX\", 48, 0, 64, 0, 0, -1, 7 * 36)\nTNT1 A 0 A_SpawnItemEx(\"FishLuckFX\", 48, 0, 64, 0, 0, -1, 8 * 36)\nTNT1 A 0 A_SpawnItemEx(\"FishLuckFX\", 48, 0, 64, 0, 0, -1, 9 * 36)\nTNT1 A 0 A_SpawnItemEx(\"FishLuckFX\", 48, 0, 64, 0, 0, -1, 10 * 36)\nstop\n}\n}\n\nactor FishLuckFX\n{\n+FORCEXYBILLBOARD\n+NOGRAVITY\n+MISSILE\n+THRUACTORS\ntranslation \"192:192=236:236\", \"198:198=239:239\", \"4:4=4:4\"\n+CLIENTSIDEONLY\nrenderstyle add\nalpha 0.9\n\tstates\n\t{\n\tSpawn:\n\tFSFX ABCDE 4 bright\n\tloop\n\t}\n}\n\nactor FishLuckBuff : Powerup\n{\npowerup.duration -65\n}"
      },
      {
        "source": "pk3",
        "name": "actors/Oscars.txt",
        "contents": "//Disguises\n\nactor Fish_Oscar : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 1\n//inventory.usesound \"fish/setmask\"\nstates\n{\nSpawn:\nFISI N 2400\nstop\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_Oscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0\nstop\nFailure:\nTNT1 A 0\nfail\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 200) // exp to give\nstop\n}\n}\n\nactor OscarSmoke\n{\n+MISSILE\n-SOLID\n+DONTBLAST\n+NOGRAVITY\n+RIPPER\n+SKYEXPLODE\n+NOINTERACTION\n+DONTSPLASH\n+THRUGHOST\n+THRUACTORS\n+DONTREFLECT\nDamage 0\nradius 2\nheight 2\nRenderStyle Translucent\nAlpha 0.75\nReactionTime 8\nScale 2.5\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_PlaySound(\"misc/fishsmoke\",1,1.0)\nSHAH W 2\nTNT1 A random(1,2)\nSHAH W 2\nTNT1 A random(1,2)\nSHAH W 2\nTNT1 A random(1,2)\nSHAH V 2\nTNT1 A random(1,2)\nSHAH U 2\nstop\n}\n}\n\nactor FishAvatarCooldown : FishWingCooldown {}\n\nactor AvatarInvisibility : PowerInvisibility\n{\npowerup.mode Translucent\npowerup.Strength 100\npowerup.duration 70\n}\n\nactor HasFishAvatar : Inventory {\ninventory.maxamount 1\n}\n\n//Door Pixie\nactor Fish_GuardOscar : Fish_Oscar\n{\nTranslation \"192:192=76:76\", \"198:198=116:116\"\ninventory.icon \"FISHID18\"\ninventory.pickupmessage \"Picked up a Guard Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_GuardOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 1)\nstop\n}\n}\n\n//Geek\nactor Fish_FoundingOscar : Fish_Oscar\n{\nTranslation \"192:192=229:229\", \"198:198=194:194\"\ninventory.icon \"FISHID20\"\ninventory.pickupmessage \"Picked up a Founding Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_FoundingOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 3)\nstop\n}\n}\n\n//Lamp\nactor Fish_BrightOscar : Fish_Oscar\n{\nTranslation \"192:192=229:229\", \"198:198=227:227\"\ninventory.icon \"FISHID21\"\ninventory.pickupmessage \"Picked up a Bright Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_BrightOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 4)\nstop\n}\n}\n\n//Vik\nactor Fish_StasheOscar : Fish_Oscar\n{\nTranslation \"192:192=92:92\", \"198:198=228:228\"\ninventory.icon \"FISHID22\"\ninventory.pickupmessage \"Picked up a Stashe Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_StasheOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 5)\nstop\n}\n}\n\n//Sea Pickel\nactor Fish_MaritimeOscar : Fish_Oscar\n{\nTranslation \"198:198=76:76\", \"192:192=101:101\"\ninventory.icon \"FISHID23\"\ninventory.pickupmessage \"Picked up a Maritime Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_MaritimeOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 6)\nstop\n}\n}\n\n//LD\nactor Fish_LordOscar : Fish_Oscar\n{\nTranslation \"192:192=186:186\", \"198:198=241:241\"\ninventory.icon \"FISHID24\"\ninventory.pickupmessage \"Picked up a Lord Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_LordOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 7)\nstop\n}\n}\n\n//Crackers\nactor Fish_AviaryOscar : Fish_Oscar\n{\nTranslation \"192:192=229:229\", \"198:198=112:112\"\ninventory.icon \"FISHID25\"\ninventory.pickupmessage \"Picked up a Aviary Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_AviaryOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 8)\nstop\n}\n}\n\n//Rice\nactor Fish_PartyOscar : Fish_Oscar\n{\nTranslation \"192:192=201:201\", \"198:198=95:95\"\ninventory.icon \"FISHID26\"\ninventory.pickupmessage \"Picked up a Party Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_PartyOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 9)\nstop\n}\n}\n\n//Blu\nactor Fish_BlueOscar : Fish_Oscar\n{\nTranslation \"192:192=198:198\", \"198:198=245:245\"\ninventory.icon \"FISHID27\"\ninventory.pickupmessage \"Picked up a Blue Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_BlueOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 10)\nstop\n}\n}\n\n//Shin\nactor Fish_ShinOscar : Fish_Oscar\n{\nTranslation \"192:192=6:6\", \"198:198=253:253\"\ninventory.icon \"FISHID28\"\ninventory.pickupmessage \"Picked up a Shin Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_ShinOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 11)\nstop\n}\n}\n\n//Chen\nactor Fish_TwoTailOscar : Fish_Oscar\n{\nTranslation \"192:192=4:4\", \"198:198=182:182\"\ninventory.icon \"FISHID29\"\ninventory.pickupmessage \"Picked up a Two Tail Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_TwoTailOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 12)\nstop\n}\n}\n\n//Dimpsy\nactor Fish_ShadedOscar : Fish_Oscar\n{\nTranslation \"192:192=205:205\", \"198:198=238:238\"\ninventory.icon \"FISHID30\"\ninventory.pickupmessage \"Picked up a Shaded Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_ShadedOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 13)\nstop\n}\n}\n\n//Ecl1p5e\nactor Fish_PrismaticOscar : Fish_Oscar\n{\nTranslation \"192:192=5:5\", \"198:198=7:7\"\ninventory.icon \"FISHID31\"\ninventory.pickupmessage \"Picked up a Prismatic Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_PrismaticOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 14)\nstop\n}\n}\n\nactor Fish_IceBurgOscar : Fish_Oscar\n{\nTranslation \"192:192=197:197\", \"198:198=196:196\"\ninventory.icon \"FISHID32\"\ninventory.pickupmessage \"Picked up a Iceburg Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_IceBurgOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 15)\nstop\n}\n}\n\nactor Fish_DisguisedOscar : Fish_Oscar\n{\nTranslation \"192:192=145:145\", \"198:198=14:14\"\ninventory.icon \"FISHID33\"\ninventory.pickupmessage \"Picked up a Disguised Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_DisguisedOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 16)\nstop\n}\n}\n\n//Tree\nactor Fish_PalmOscar : Fish_Oscar\n{\nTranslation \"192:192=105:105\", \"198:198=165:165\"\ninventory.icon \"FISHID34\"\ninventory.pickupmessage \"Picked up a Palm Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_PalmOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 17)\nstop\n}\n}\n\n//Hil\nactor Fish_SittingOscar : Fish_Oscar\n{\nTranslation \"192:192=228:228\", \"198:198=75:75\"\ninventory.icon \"FISHID93\"\ninventory.pickupmessage \"Picked up a Sitting Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_SittingOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 18)\nstop\n}\n}\n\n//latte chick\nactor Fish_CoffeeOscar : Fish_Oscar\n{\nTranslation \"192:192=217:217\", \"198:198=212:212\"\ninventory.icon \"FISHID94\"\ninventory.pickupmessage \"Picked up a Coffee Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_CoffeeOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 19)\nstop\n}\n}\n\n//Sagis\nactor Fish_MaskedOscar : Fish_Oscar\n{\nTranslation \"192:192=182:182\", \"198:198=5:5\"\ninventory.icon \"FISHID95\"\ninventory.pickupmessage \"Picked up a Masked Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_MaskedOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 20)\nstop\n}\n}\n\n//Soft Met\nactor Fish_SoftOscar : Fish_Oscar\n{\nTranslation \"192:192=203:203\", \"198:198=236:236\"\ninventory.icon \"FISHID96\"\ninventory.pickupmessage \"Picked up a Soft Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_SoftOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 21)\nstop\n}\n}\n\n//Meowstic\nactor Fish_SleepyOscar : Fish_Oscar\n{\nTranslation \"192:192=4:4\", \"198:198=76:76\"\ninventory.icon \"FISHID97\"\ninventory.pickupmessage \"Picked up a Sleepy Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_SleepyOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 22)\nstop\n}\n}\n\n//SJB\nactor Fish_PlainOscar : Fish_Oscar\n{\nTranslation \"192:192=212:212\", \"198:198=198:198\"\ninventory.icon \"FISHID98\"\ninventory.pickupmessage \"Picked up a Plain Oscar!\"\nstates\n{\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_PlainOscar\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 23)\nstop\n}\n}\n\nactor GuardAvatar\n{\n+MISSILE\n+CLIENTSIDEONLY\n+NOINTERACTION\n-SOLID\nheight 1\nradius 1\n+NOGRAVITY\nscale 2.5\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nCHNP CCCCC 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor FoundingAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nGEEK MMMMM 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor BrightAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nLMPN MMMMM 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor StasheAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nVKTR MMMMM 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor MaritimeAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nCHNP FFFFF 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor LordAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nLDMN AAAAA 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor AviaryAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nCRKN AAAAA 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor PartyAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nBBIM AAAAA 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor BlueAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nBLCN MMMMM 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor ShinAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nSHCN MMMMM 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor TwoTailAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nCHNN KKKKK 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor ShadedAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nDMPS KKKKK 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor PrismaticAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nECLP AAAAA 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor IceburgAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nCLDW AAAAA 1 A_Warp(AAPTR_TARGET, -18, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor DisguisedAvatar : GuardAvatar\n{\nscale 1.9\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nFISI AAAAA 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor PalmAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nDODO BBBBB 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor SittingAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nHILN JJJJJ 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor CoffeeAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nCHNP AAAAA 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor MaskedAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nSGIS PPPPP 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor SoftAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nMETC AAAAA 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor SleepyAvatar : GuardAvatar\n{\nScale 2.0\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nMSTN ZZZZZ 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor PlainAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nSJBN MMMMM 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\n//Auto\nactor Fish_HeroicHelmet : Fish_Oscar\n{\nTranslation \"192:192=104:104\", \"198:198=107:107\"\ninventory.icon \"FISHID19\"\ninventory.pickupmessage \"Picked up a Heroic Helmet!\"\nstates\n{\nSpawn:\nFIS3 R 2400\nstop\nDropFish:\nFISI N 0 A_SpawnItemEx(\"Fish_HeroicHelmet\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nFeedPet:\nTNT1 A 0\nfail\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"FishAvatarCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"FishAvatarCooldown\",1)\nGoto Avatar\nAvatar:\nTNT1 A 0 A_SpawnItemEx(\"OscarSmoke\",0,0,28,0,0,0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setavatar\", 0, 2)\nstop\n}\n}\n\nactor HeroicAvatar : GuardAvatar\n{\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 0 Thing_SetTranslation(0, ACS_NamedExecuteWithResult(\"hfish_copytargetplayercolor\", 0))\nTNT1 A 1 ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 0, 2)\nGoto Show\nShow:\nTNT1 A 0 A_GiveInventory(\"AvatarInvisibility\",1,AAPTR_TARGET)\nAUT2 AAAAA 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/OtherFish.txt",
        "contents": "actor Fish_BabyOctopus : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 1\ninventory.icon \"FISHIU08\"\ninventory.usesound \"misc/octobaby\"\ninventory.pickupmessage \"Picked up a scared baby octopus!\"\nstates\n{\nSpawn:\nFIS2 A 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_BabyOctopus\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_octopussummon\", 0)\nstop\n}\n}\n\nactor Fish_BaronVonBlubba : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 1\ninventory.icon \"FISHIU09\"\ninventory.pickupmessage \"Picked up baron von Blubba himself!\"\nstates\n{\nSpawn:\nFIS2 B 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_BaronVonBlubba\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_SpawnItemEx(\"BaronVonBlubba\")\nstop\n}\n}\n\nactor BaronVonBlubba\n{\n-SHOOTABLE\n-COUNTKILL\nheight 5\nradius 5\n+NOCLIP\n+NOGRAVITY\n+FLOAT\nobituary \"%o could not get away from \\cjBaron Von Blubba\\c-!\"\nfloatspeed 50\nspeed 38\nscale 4.5\nmeleerange 120\nvar int user_chase;\nvar int user_streak;\nvar int user_kills;\nvar int user_timer;\n+LOOKALLAROUND\nstates\n{\nSpawn:\nTNT1 A 0 A_Jump(256, \"LookStart\")\nTNT1 A 80 A_PlaySoundEx(\"misc/baronvonblubba\", 5, 0, 1)\nVBLB A 45\nLookStart:\nVBLB A 0 A_SetUserVar(\"user_streak\", 0)\nLooking:\nVBLB A 0 A_SetUserVar(\"user_timer\", user_timer+1)\nVBLB B 0 A_JumpIf(user_timer>120, \"Death\")\nVBLB AB 8 A_LookEx(0, 0, 0, 0, 360, \"See\")\nloop\nSee:\nVBLB B 0 A_JumpIf(user_kills>10, \"Death\")\nVBLB B 0 A_JumpIf(user_timer>100, \"Death\")\nVBLB ABABABABAB 8\nVBLB A 0 A_SetUserVar(\"user_streak\", user_streak+1)\nVBLB A 0 A_SetUserVar(\"user_chase\", user_streak)\nVBLB A 0 A_SetUserVar(\"user_timer\", user_timer+10)\nChasedown:\nVBLB AAAAAAAABBBBBBBB 1 A_Chase(\"Melee\")\nVBLB A 0 A_SetUserVar(\"user_chase\", user_chase-1)\nVBLB B 0 A_JumpIf(user_chase>0, \"ChaseDown\")\nGoto See\nMelee:\nVBLB A 0 A_SetUserVar(\"user_streak\", 0)\nVBLB A 0 A_SetUserVar(\"user_timer\", user_timer-20)\nVBLB A 0 A_SetUserVar(\"user_kills\", user_kills+1)\nVBLB A 0 A_RearrangePointers(AAPTR_TARGET, AAPTR_TARGET)\nVBLB A 0 A_KillMaster(\"Enemy\")\nVBLB A 0 A_RearrangePointers(AAPTR_TARGET, AAPTR_NULL)\nGoto LookStart\nDeath:\nVBLB AAAAAAAAAAAAAAA 1 A_FadeOut(0.1)\nstop\n}\n}\n\nactor Fish_MovieStarFish : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 1\ninventory.icon \"FISHIU10\"\ninventory.pickupmessage \"Picked up a movie starfish!\"\ninventory.usesound \"item/refill\"\nstates\n{\nSpawn:\nFIS2 E 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_MovieStarFish\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_SpawnItemEx(\"MovieStarFish\", 0, 0, 48, 10)\nstop\n}\n}\n\nactor MovieStarFish\n{\nPROJECTILE\n+DONTBLAST\n+THRUACTORS\n+RIPPER\n+SKYEXPLODE\n+DONTREFLECT\n+HEXENBOUNCE\ndamage 0\nheight 5\nradius 5\nstates\n{\nSpawn:\nFIS2 E 18\nFIS2 E 3 A_ChangeVelocity(0,0,0,CVF_REPLACE)\nFIS2 E 1 A_FaceTarget\nFIS2 E 1 ACS_NamedExecute(\"hfish_moviestar\", 0)\nWatching:\nFIS2 E 1 A_JumpIfInventory(\"BossHealth1\", 1, \"Boo\")\nFIS2 E 1 A_JumpIfInventory(\"CutterFlag\", 1, \"Cheer\")\nloop\nCheer:\nFIS2 E 0 A_FaceTarget\nFIS2 E 0 A_TakeInventory(\"CutterFlag\",1)\nFIS2 EEE 10 A_SpawnITemEx(\"Fish_MovieStarRose\", 0, 0, -8, random(5,20), random(-10,10), random(5,8), 0)\nGoto Watching\nBoo:\nFIS2 E 0 A_FaceTarget\nFIS2 E 0 A_TakeInventory(\"BossHealth1\",1)\nFIS2 EEE 10 A_SpawnItemEx(\"FishJunk\", 0, 0, -8, random(5,20), random(-10,10), random(5,8), 0)\nGoto Watching\n}\n}\n\nactor MovieStarProtection : PowerInvulnerable\n{\npowerup.duration -31\n}\n\nactor Fish_MovieStarRose : BaseFish\n{\ninventory.maxamount 99\ninventory.icon \"FISHIU11\"\ninventory.pickupmessage \"Picked up a rose!\"\nstates\n{\nSpawn:\nFIS2 F 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_MovieStarRose\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\n}\n}\n\nactor Fish_BlobFish : BaseFish\n{\ninventory.icon \"FISHIU16\"\ninventory.maxamount 1\ninventory.pickupmessage \"Picked up a Blobfish!\"\nstates\n{\nSpawn:\nFIS2 N 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_BlobFish\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0\nstop\n}\n}\n\nactor Fish_MurderKnife : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 1\ninventory.icon \"FISHIU21\"\ninventory.pickupmessage \"Picked up a murderous knife! (use it in secret...)\"\ninventory.usesound \"item/refill\"\nstates\n{\nSpawn:\nFIS2 R 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_MurderKnife\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(z-floorz!=0, \"failure\")\nTNT1 A 0 A_SpawnItemEx(\"MurderVictim\")\nTNT1 A 0 ACS_NamedExecute(\"hfish_murderstart\",0)\nstop\nfailure:\nTNT1 A 0\nstop\n}\n}\n\nactor MurderVictim\n{\nscale 2.5\n-SOLID\nradius 8\nheight 8\nstates\n{\nSpawn:\nTNT1 A 1\nTNT1 A 280 A_SpawnItemEx(\"MurderCamera\", 0, 0, 0, 20, 0, 8)\nFSFX O 5400\nstop\n}\n}\n\nactor MurderCamera\n{\nPROJECTILE\n+DONTBLAST\n+THRUACTORS\n+RIPPER\n+SKYEXPLODE\n+DONTREFLECT\n+HEXENBOUNCE\nrenderstyle none\ndamage 0\nheight 5\nradius 5\nstates\n{\nSpawn:\nFIS2 E 5\nFIS2 E 3 A_ChangeVelocity(0,0,0,CVF_REPLACE)\nFIS2 E 1 A_FaceTarget\nFIS2 E 280 Thing_ChangeTID(0, 903)\nFIS2 E -1 ChangeCamera(903, 1, 0)\nstop\n}\n}\n\nactor MurdererExit : ExitUnit\n{\n+AUTOACTIVATE\n-INVBAR\n}\n\nactor FishIsMurderer : Once {}\n\nactor MurderFootprints : MapMarker\n{\nheight 2\nradius 2\n-SOLID\n+NOINTERACTION\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 5 ACS_NAmedExecuteAlways(\"hfish_footstephider\", 0)\nFSFX P 350\nstop\n}\n}\n\nactor MurdererProtection : PowerInvulnerable\n{\npowerup.duration -15\n}\n\nactor Fish_CursedTreasureMap : BaseFish\n{\ninventory.icon \"FISHIU31\"\ninventory.maxamount 1\ninventory.pickupmessage \"Picked up a Cursed Treasure map!\"\ninventory.usesound \"item/refill\"\nstates\n{\nSpawn:\nFIS2 W 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_CursedTreasureMap\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_checkpiratequest\"), \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_cursedmap\", 0)\nstop\nFailure:\nTNT1 A 0\nstop\n}\n}\n\nactor CursedTreasureMapAuto : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_cursedmap\", 0, 1)\nstop\n}\n}\n\nactor SpawnedCursedTreasureChest\n{\n-SOLID\nheight 16\nradius 16\nscale 2.0\nreactiontime 12\n+LOOKALLAROUND\ntranslation \"42:42=78:78\", \"217:217=194:194\"\nstates\n{\nSpawn:\nCHES A 65\nCHES B 35 A_PlaySoundEx(\"misc/treasurechest1\", \"SoundSlot7\")\nLooking:\nCHES B 5 A_Look\nloop\nSee:\nCHES B 0 A_GiveToTarget(\"CursedTreasureMapAuto\", 1)\nLoot:\nCHES B 0 A_PlaySoundEx(\"boss/piratechest\", \"SoundSlot7\")\nCHES B 0 A_SpawnItemEx(\"CursedTreasureSkullFX\", 0, 0, 48, 0, 0, 1.5)\nCHES B 80\nDeath:\nEnd:\nCHES B 10\nFade:\nCHES B 1 A_FadeOut(0.1)\nloop\n}\n}\n\nactor CursedTreasureSkullFX\n{\nscale 1.0\nrenderstyle translucent\nalpha 0.8\ntranslation \"192:192=101:101\", \"198:198=116:116\"\n+NOGRAVITY\n+NOINTERACTION\n+MISSILE\nstates\n{\n\tSpawn:\n\tPBOS E 2\n\tTNT1 A 1 A_fadeOut(0.05)\n\tloop\n}\n}\n\nactor FishBuriedCursedTreasure\n{\nheight 8\nradius 8\n-SOLID\n+SHOOTABLE\n+NORADIUSDMG\n+DONTBLAST\n+NOTARGET\nhealth 120\npainchance 256\npainsound \"weapon/spreaddrillhit\"\nstates\n{\nSpawn:\nTNT1 A 0\nGoto Spawn2\nSpawnMap:\nTNT1 A 35 A_SpawnItemEx(\"CursedTreasureMapMarker\")\nSpawn2:\nTNT1 A 0 //Thing_ChangeTID(0,555)\nTNT1 A -1 //ChangeCamera(555, 1, 0)\nstop\nPain:\nTNT1 AAAAA 0 A_SpawnItemEx(\"TreasureChestRock\", random(0, 8),0,0,random(-8,8),0,random(3,12), random(0,360))\nTNT1 A 10 A_Pain\nGoto Spawn2\nDeath:\nTNT1 A 1 A_SpawnITemEx(\"SpawnedCursedTreasureChest\", 0, 0, 0, 0, 0, 10)\nstop\n}\n}\n\nactor CursedTreasureMapMarker : MapMarker\n{\n+MISSILE\n+CLIENTSIDEONLY\n+NOINTERACTION\nheight 5\nradius 5\n-SOLID\nscale 1.5\ntranslation \"168:191=199:199\"\nstates\n{\nSpawn:\nFSFX N 9000\nstop\n}\n}\n\nactor Fish_CeilinPekin : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 1\ninventory.icon \"FISHIU13\"\ninventory.pickupmessage \"Picked up a Ceilin' Pekin!\"\nstates\n{\nSpawn:\nFIS2 H 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_CeilinPekin\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"CeilingDuckCooldown\", 1, \"No\")\nTNT1 A 0 A_GiveInventory(\"CeilingDuckCooldown\",1)\nTNT1 A 0 A_JumpIFInventory(\"CeilingDuckFlag\", 1, \"Cancel\")\nTNT1 A 0 A_PlaySoundEx(\"misc/ceilingquack\", \"SoundSlot6\", 0, 0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_jumpcheck\",0,0)\nTNT1 A 0 A_SpawnITemEx(\"CeilingDuckWatcher\")\nfail\nCancel:\nTNT1 A 0 A_PlaySoundEx(\"misc/ceilingquack\", \"SoundSlot6\", 0, 0)\nTNT1 A 0 A_TakeInventory(\"CeilingDuckFlag\",0)\nTNT1 A 0 A_TakeInventory(\"OnCeilingDuck\",0)\nTNT1 A 0 A_GiveInventory(\"DuckUnflip\",1)\nfail\nNo:\nTNT1 A 0\nstop\n}\n}\n\nactor CeilingDuckCooldown : Powerup { powerup.duration -3}\n\nactor CeilingDuckFlag : OnceFish {}\n\nactor CeilingDuckWatcher\n{\n+NOINTERACTION\nradius 1\nheight 1\n+MISSILE\n-SOLID\n+NOGRAVITY\nstates\n{\nSpawn:\nTNT1 A 1 A_GiveToTarget(\"DuckGravity\", 1)\nTNT1 AA 1 A_JumpIfInTargetInventory(\"CeilingDuckFlag\", 1, \"Spawn\")\nTNT1 A 10\nstop\n}\n}\n\nactor DuckGravity : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0\nTNT1 A 0 A_JumpIfInventory(\"OnGroundDuck\",1,4)\nTNT1 A 0 A_SetGravity(-0.8)\n//TNT1 A 0 ThrustThingZ(0,momz*4+4/*4*/,0,0/*1*/)\nTNT1 A 0 A_ChangeVelocity(0,0,0.8)\nTNT1 A 0 A_GiveInventory(\"DuckCeilingCheck\",1)\nTNT1 A 0\nstop\n}\n}\nactor DuckCeilingCheck : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0\n//TNT1 A 0 A_TakeInventory(\"JumpCancler\",1)\nTNT1 A 0 A_JumpIfInventory(\"OnGroundDuck\", 1, \"SpeedDown\")\nTNT1 A 0 A_JumpIf(ceilingz-z<=height, \"Contact\")\ngoto SpeedDown\nContact:\nTNT1 A 0 A_JumpIf(z-floorz<=0, \"SpeedDown\")\nTNT1 A 0 //A_JumpIfInventory(\"OnCeilingFlag\", 1, \"SpeedUp\")\nTNT1 A 0 //A_PlaySoundEx(\"weapon/land\",\"Voice\")\nTNT1 A 0 A_GiveInventory(\"FrogCanDoubleJump\",1)\nTNT1 A 0 A_GiveInventory(\"OnCeilingDuck\",1)\nTNT1 A 0 //A_GiveInventory(\"PowerGravityCeilingSpeed\",1)\nstop\nSpeedDown:\nTNT1 A 0 A_TakeInventory(\"OnCeilingDuck\",0)\nTNT1 A 0 //A_TakeInventory(\"PowerGravityCeilingSpeed\",99)\nstop\n}\n}\n\nactor DuckJumper : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0\nTNT1 A 0 A_JumpIfInventory(\"DuckJumpCooldown\",1,\"NoJump\")\nTNT1 A 0 A_JumpIfInventory(\"OnCeilingDuck\",1,\"Jump\")\nstop\nJump:\nTNT1 A 0\nTNT1 A 0 A_PlaySoundEx(\"misc/frogjump\", \"Body\")\nTNT1 A 0 A_JumpIfInventory(\"LongLeggedPower\", 1, \"JumpBig\")\nJumpSmall:\nTNT1 A 0 A_ChangeVelocity(0,0,-12.0)\ngoto Cooldown\nJumpBig:\nTNT1 A 0 A_ChangeVelocity(0,0,-24.0)\ngoto Cooldown\nCooldown:\nTNT1 A 0 A_GiveInventory(\"DuckJumpCooldown\",1)\nTNT1 A 0 A_GiveInventory(\"JumpCancler\",1)\nTNT1 A 0 A_TakeInventory(\"OnCeilingDuck\",0)\nTNT1 A 0\nstop\nNoJump:\nTNT1 A 0\nstop\n}\n}\n\nactor DuckJumpCooldown : Powerup { powerup.duration 7}\n\nactor DuckUnflip : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"IsUnderWater\",1,\"UnderWater\")\nTNT1 A 0 A_SetGravity(0.8)\nstop\nUnderWater:\nTNT1 A 0 A_SetGravity(0.25)\nstop\n}\n}\n\nactor OnCeilingDuck : OnceFish{}\nactor OnGroundDuck : OnceFish{}\n\nactor Fish_Cattefish : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 1\ninventory.icon \"FISHIU12\"\ninventory.pickupmessage \"Picked up a Cattefish!\"\nstates\n{\nSpawn:\nFIS2 G 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_Cattefish\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_PlaySoundEx(\"misc/catfishmeow\", \"SoundSlot6\", 0, 1)\nstop\n}\n}\n\nactor Fish_BlackPaintBucket : BaseFish\n{\nTranslation \"192:192=0:0\", \"198:198=0:0\"\ninventory.icon \"FISHID12\"\ninventory.pickupmessage \"Picked up a Bucket of Black Paint!\"\nstates\n{\nSpawn:\nFIS2 S 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_BlackPaintBucket\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_FireCustomMissile(\"FishBlackPaint\", 0, 0, 0, 0, 0, 8)\nstop\nTooSoon:\nTNT1 A 0\nfail\n}\n}\n\nactor Fish_PinkPaintBucket : BaseFish\n{\nTranslation \"192:192=250:250\", \"198:198=250:250\"\ninventory.icon \"FISHID13\"\ninventory.pickupmessage \"Picked up a Bucket of Pink Paint!\"\nstates\n{\nSpawn:\nFIS2 S 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_PinkPaintBucket\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_FireCustomMissile(\"FishPinkPaint\", 0, 0, 0, 0, 0, 8)\nstop\nTooSoon:\nTNT1 A 0\nfail\n}\n}\n\nactor FishBlackPaint\n{\nPROJECTILE\n+HITTRACER\n-NOGRAVITY\nTranslation \"192:192=93:93\", \"198:198=0:0\"\nscale 2.5\nSpeed 25\ndamage 1\nobituary \"%o drowned in %k's paint.\"\ndeathsound \"weapon/fishpop\"\nseesound \"weapon/mbuster\"\nstates\n{\nSpawn:\nFSFX T 1\nloop\nDeath:\nTNT1 A 1\nTNT1 A 0 A_GiveInventory(\"FishBlackPaintGiver\",1,AAPTR_TRACER)\nTNT1 A 0 A_RadiusGive(\"FishBlackPaintGiver\", 256, RGF_PLAYERS|RGF_MONSTERS|RGF_OBJECTS, 1)\nTNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx(\"FishBlackPaintFX\",0,0,0,random(2,16),0,random(4,12),random(0,359),0)\nTNT1 A 1\nTNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx(\"FishBlackPaintFX\",0,0,0,random(2,16),0,random(4,12),random(0,359),0)\nTNT1 A 1\nTNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx(\"FishBlackPaintFX\",0,0,0,random(2,16),0,random(4,12),random(0,359),0)\nstop\n}\n}\n\nactor FishPinkPaint : FishBlackPaint\n{\nTranslation \"192:192=236:236\", \"198:198=238:238\"\nstates\n{\nSpawn:\nFSFX T 1\nloop\nDeath:\nTNT1 A 1\nTNT1 A 0 A_GiveInventory(\"FishPinkPaintGiver\",1,AAPTR_TRACER)\nTNT1 A 0 A_RadiusGive(\"FishPinkPaintGiver\", 256, RGF_PLAYERS|RGF_MONSTERS|RGF_OBJECTS, 1)\nTNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx(\"FishPinkPaintFX\",0,0,0,random(2,16),0,random(4,12),random(0,359),0)\nTNT1 A 1\nTNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx(\"FishPinkPaintFX\",0,0,0,random(2,16),0,random(4,12),random(0,359),0)\nTNT1 A 1\nTNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx(\"FishPinkPaintFX\",0,0,0,random(2,16),0,random(4,12),random(0,359),0)\nstop\n}\n}\n\nactor FishBlackPaintFX\n{\n+MISSILE\n-NOGRAVITY\n+DONTBLAST\n+THRUACTORS\n+DONTSPLASH\n+CLIENTSIDEONLY\nTranslation \"0:255=0:0\"\nDamage (0)\nHeight 2\nRadius 2\nSpeed 5\ngravity 1.5\nScale 2.5\nStates\n{\nSpawn:\nTNT1 A 1\nMWSZ JJ 2\nGoto Spawn+1\nDeath:\nMRCR A 0 A_SetScale(scaleX-0.15)\nMWSZ J 1 A_FadeOut(0.1)\nloop\n}\n}\n\nactor FishPinkPaintFX : FishBlackPaintFX\n{\nTranslation \"0:255=250:250\"\n}\n\nactor FishBlackPaintGiver : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 Thing_SetTranslation(0, 19999)\nTNT1 A 0 A_GiveInventory(\"FishBlackPaintTimer\",1)\nstop\n}\n}\n\nactor FishPinkPaintGiver : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 Thing_SetTranslation(0, 19998)\nTNT1 A 0 A_GiveInventory(\"FishPinkPaintTimer\",1)\nstop\n}\n}\n\nactor FishBlackPaintTimer : Powerup\n{\npowerup.duration -15\n}\n\nactor FishPinkPaintTimer : Powerup\n{\npowerup.duration -15\n}\n\nactor Fish_DarkMatter : BaseFish\n{\ninventory.icon \"FISHID14\"\ninventory.pickupmessage \"Picked up Dark Matter!\"\n+FORCEXYBILLBOARD\nstates\n{\nSpawn:\nFIS2 T 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_DarkMatter\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_FireCustomMissile(\"FishDarkMatter\", 0, 0, 0, 0, 0, 0)\nstop\nTooSoon:\nTNT1 A 0\nfail\n}\n}\n\nactor FishDarkMatter\n{\nPROJECTILE\n+HITTRACER\nspeed 22\nheight 16\nradius 16\nscale 2.5\nseesound \"misc/darkmattershot\"\ndeathsound \"misc/darkmatterdeath\"\nTranslation \"192:192=95:95\", \"198:198=0:0\"\nstates\n{\nSpawn:\nBLKH BCDE 1 A_SpawnItemEx(\"FishDarkMatterTrail\",0,0,0,0,0,0,0,1)\nloop\nDeath:\nTNT1 A 1 A_SpawnITemEx(\"FishDarkMatterDeath\")\nTNT1 A 3 A_GiveInventory(\"FishDarkMatterGiver\",1,AAPTR_TRACER)\nTNT1 A 0 A_RadiusGive(\"FishDarkMatterGiverAOE\", 256, RGF_PLAYERS, 1)\nTNT1 A 70\nstop\n}\n}\n\nactor FishDarkMatterDeath\n{\n+CLIENTSIDEONLY\n+NOINTERACTION\nTranslation \"192:192=95:95\", \"198:198=0:0\"\nalpha 0.1\nscale 15\nstates\n{\nSpawn:\nBLKH B 0 A_SetScale( scalex - 0.25, scaley - 0.25)\nBLKH B 1 A_FadeIn(0.25)\nBLKH B 0 A_SetScale( scalex - 0.25, scaley - 0.25)\nBLKH C 1 A_FadeIn(0.25)\nBLKH B 0 A_SetScale( scalex - 0.25, scaley - 0.25)\nBLKH D 1 A_FadeIn(0.25)\nBLKH B 0 A_SetScale( scalex - 0.25, scaley - 0.25)\nBLKH E 1 A_FadeIn(0.25)\nBLKH B 0 A_SetScale( scalex - 0.25, scaley - 0.25)\nBLKH B 1 A_FadeIn(0.25)\nBLKH B 0 A_SetScale( scalex - 0.25, scaley - 0.25)\nBLKH C 1 A_FadeIn(0.25)\nBLKH B 0 A_SetScale( scalex - 0.25, scaley - 0.25)\nBLKH D 1 A_FadeIn(0.25)\nBLKH B 0 A_SetScale( scalex - 0.25, scaley - 0.25)\nBLKH E 1 A_FadeIn(0.25)\nFade:\nBLKH B 0 A_SetScale( scalex - 0.25, scaley - 0.25)\nBLKH B 1 A_FadeOut(0.1)\nBLKH B 0 A_SetScale( scalex - 0.25, scaley - 0.25)\nBLKH C 1 A_FadeOut(0.1)\nBLKH B 0 A_SetScale( scalex - 0.25, scaley - 0.25)\nBLKH D 1 A_FadeOut(0.1)\nBLKH B 0 A_SetScale( scalex - 0.25, scaley - 0.25)\nBLKH E 1 A_FadeOut(0.1)\nloop\n}\n}\n\nactor FishDarkMatterTrail\n{\nPROJECTILE\n+CLIENTSIDEONLY\n+NOINTERACTION\nscale 2.5\nstates\n{\nSpawn:\nBLKH E 0 A_SetScale( scalex - 0.1, scaley - 0.1)\nBLKH E 1 A_FadeOut(0.05)\nloop\n}\n}\n\nactor FishDarkMatterGiver : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_darkmattertrigger\",0)\nstop\n}\n}\n\nactor FishDarkMatterGiverAOE : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 Thing_Damage(0, health-1, 20)\nstop\n}\n}\n\nactor Fish_FishBones : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 99\ninventory.icon \"FISHID79\"\ninventory.pickupmessage \"Picked up some fish bones!\"\nstates\n{\nSpawn:\nFIS2 X 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_FishBones\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0\nfail\n}\n}\n\nactor Fish_Grog : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 99\ninventory.icon \"FISHID80\"\ninventory.usesound \"misc/fishglug\"\ninventory.pickupmessage \"Picked up bottle of grog!\"\nstates\n{\nSpawn:\nFIS3 C 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_Grog\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"IsDrunk\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"IsDrunk\",1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_grog\", 0)\nstop\nFailure:\nTNT1 A 0\nfail\n}\n}\n\nactor IsDrunk : Inventory\n{\ninventory.maxamount 1\n}\n\nactor Fish_Fork : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 1\ninventory.icon \"FISHIU06\"\ninventory.pickupmessage \"Picked up a fork!\"\nstates\n{\nSpawn:\nFISI Y 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_Fork\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_PlaySoundEx(\"weapon/slashclaw\", \"Weapon\")\nTNT1 A 0 A_SpawnItemEx(\"ForkProjectile\",cos(pitch)*32 + 10,0,28-(sin(pitch)*32),0,0,0,0,0,0)\nfail\n}\n}\n\nactor ForkProjectile\n{\nDamage (35)\nheight 8\nradius 8\nspeed 0\nscale 1.0\nPROJECTILE\nobituary \"%o was forked by %k.\"\nstates\n{\nSpawn:\nMMFX BCDE 2\nstop\nDeath:\nTNT1 A 0\nstop\n\n}\n}\n\nactor Fish_Plate : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 99\ninventory.icon \"FISHIU07\"\ninventory.pickupmessage \"Picked up a clean plate!\"\nstates\n{\nSpawn:\nFISI Z 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_Plate\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_FireCustomMissile(\"PlateProjectile\", 0, 0, 0, 0)\nstop\n}\n}\n\nactor PlateProjectile\n{\ndamage (2)\nheight 10\nradius 10\nspeed 35\ngravity 0.05\nscale 2.5\nPROJECTILE\n-NOGRAVITY\nobituary \"%o made %k do the dishes.\"\ndeathsound \"weapon/FishPan\"\nstates\n{\nSpawn:\nFSFX J -1\nstop\nDeath:\nFSFX KL 5 A_ChangeVelocity(0,0,0,CVF_REPLACE)\nstop\n}\n}\n/*\n\nactor Fish_MM8BDMBluePrints : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 1\ninventory.icon \"FISHIU37\"\ninventory.pickupmessage \"Picked up some MM8BDM blueprints!\"\nstates\n{\nSpawn:\nFIS3 H 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_MM8BDMBluePrints\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecute(\"hfish_blueprints\")\nstop\n}\n}*/\n\nactor Fish_TreasureMap : BaseFish\n{\ninventory.icon \"FISHIU19\"\ninventory.maxamount 1\ninventory.pickupmessage \"Picked up a Pirate's Treasure map!\"\ninventory.usesound \"item/refill\"\nstates\n{\nSpawn:\nFIS2 L 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_TreasureMap\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_spawntreasure\", 0)\nstop\n}\n}\n\nactor Fish_TreasureChest : BaseFish\n{\ninventory.icon \"FISHIU17\"\ninventory.pickupmessage \"Picked up a Treasure chest! I wonder what's inside...?\"\ninventory.usesound \"item/refill\"\ntranslation \"198:198=42:42\", \"192:192=217:217\"\nstates\n{\nSpawn:\nFIS2 M 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_TreasureChest\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_SpawnItemEx(\"SpawnedTreasureChest\", 0, 0, 16, 8)\nstop\n}\n}\n\nactor SpawnedTreasureChest\n{\n-SOLID\nheight 16\nradius 16\nscale 2.0\nreactiontime 12\nstates\n{\nSpawn:\nCHES A 45\nCHES B 25 A_PlaySoundEx(\"misc/treasurechest1\", \"SoundSlot7\")\nLoot:\nCHES B 0 A_PlaySoundEx(\"misc/treasurechest2\", \"SoundSlot7\")\nCHES B 10 ACS_NamedExecute(\"hfish_spawnprize\",0,1,0)\nCHES B 10 A_CountDown\nloop\nDeath:\nEnd:\nCHES B 10\nFade:\nCHES B 1 A_FadeOut(0.1)\nloop\n}\n}\n\nactor FishBuriedTreasure\n{\nheight 8\nradius 8\n-SOLID\n+SHOOTABLE\n//+NORADIUSDMG\n+DONTBLAST\n+NOTARGET\nhealth 50\npainchance 256\npainsound \"weapon/spreaddrillhit\"\nstates\n{\nSpawn:\nTNT1 A 0\nGoto Spawn2\nSpawnMap:\nTNT1 A 35 A_SpawnItemEx(\"TreasureMapMarker\")\nSpawn2:\nTNT1 A 0 //Thing_ChangeTID(0,555)\nTNT1 A 9000 //ChangeCamera(555, 1, 0)\nstop\nPain:\nTNT1 AAAAA 0 A_SpawnItemEx(\"TreasureChestRock\", random(0, 8),0,0,random(-8,8),0,random(3,12), random(0,360))\nTNT1 A 10 A_Pain\nGoto Spawn2\nDeath:\nTNT1 A 1 A_SpawnITemEx(\"Fish_TreasureChest\", 0, 0, 0, 0, 0, 10)\nstop\n}\n}\n\nactor TreasureMapMarker : MapMarker\n{\n+MISSILE\n+CLIENTSIDEONLY\n+NOINTERACTION\nheight 5\nradius 5\n-SOLID\nscale 1.5\nstates\n{\nSpawn:\nFSFX N 9000\nstop\n}\n}\n\nactor TreasureChestRock\n{\nscale 2.0\nPROJECTILE\n+THRUACTORS\n-NOGRAVITY\ngravity 1.5\ntranslation \"192:192=214:214\",\"198:198=248:248\"\nstates\n{\nSpawn:\nQBOP B 50\nstop\n}\n}\n\nactor Fish_BassFish : BaseFish\n{\ninventory.icon \"FISHIU18\"\ninventory.maxamount 1\ninventory.pickupmessage \"Picked up a Bass! It says it's the strongest...\"\ninventory.usesound \"item/refill\"\nstates\n{\nSpawn:\nFIS2 O 2400\nstop\nPickup:\nTRBI A 0 A_GiveInventory(\"HasBassFish\",1)\nstop\nDropFish:\nTNT1 A 0// A_SpawnItemEx(\"Fish_BassFish\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nfail\nUseF:\nTRBI A 0 A_JumpIfInventory(\"BassFishCooldown\", 1, \"No\")\nTRBI A 0 A_GiveInventory(\"BassFishCooldown\", 1)\nTRBI A 0 A_PlaySoundEx(\"item/refill\", \"Body\")\nTRBI A 0 A_SpawnItemEx(\"TrebleTeleport\", 40, 0, 256, 0, 0, -24, 0, SXF_NOCHECKPOSITION, 0)\nfail\nNo:\nTNT1 A 0\nstop\n}\n}\n\nactor HasBassFish : Once {}\n\nactor BassFishCooldown : Powerup\n{\npowerup.duration -15\n}\n\nactor Fish_Axolotl : BaseFish\n{\ninventory.icon \"FISHID90\"\ninventory.maxamount 99\ninventory.pickupmessage \"Picked up an Axolotl!\"\ninventory.usesound \"item/refill\"\nstates\n{\nSpawn:\nFIS3 I 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_Axolotl\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_axolotl\",0)\nstop\n}\n}\n\nactor HasAxolotlSwim : Once {}\n\nactor Fish_TradersWatch : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 99\ninventory.icon \"FISHIU38\"\ninventory.pickupmessage \"Picked up a trader's watch!\"\nstates\n{\nSpawn:\nFIS3 J 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_TradersWatch\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"ReadingAClue\",1,\"Failure\")\nTNT1 A 0 A_GiveInventory(\"ReadingAClue\",1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_checkwatch\",0,0)\nfail\nFailure:\nTNT1 A 0\nfail\n}\n}\n\nactor Fish_ThiefGlove : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 1\ninventory.icon \"FISHIU39\"\ninventory.usesound \"\"\ninventory.pickupmessage \"Picked up a thief's glove!\"\nstates\n{\nSpawn:\nFIS3 K 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_ThiefGlove\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_thiefglove\", 0)\nfail\n}\n}\n\nactor Fish_JaxterBlaster : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 1\ninventory.icon \"FISHIU40\"\ninventory.usesound \"\"\ninventory.pickupmessage \"Picked up the Jaxter Blaster!\"\nstates\n{\nSpawn:\nFIS3 L 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_JaxterBlaster\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"JaxterCooldown\", 1, \"Failure\")\nTNT1 AAAA 0 A_SpawnItemEx(\"PlayerJaxterBlaxterSpawn\",-48,random(-256,256),random(28,56),0,0,0,0)\nTNT1 A 0 A_GiveInventory(\"JaxterCooldown\", 1)\nfail\n}\n}\n\nactor JaxterCooldown : FishCooldown { powerup.duration -3}\n\nactor PlayerJaxterBlaxterSpawn : 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_CustomMissile(\"PlayerJaxterBlaxt\",0,0,0,2,0)\nERO3 H 1 A_CustomMissile(\"PlayerJaxterBlaxt\",0,0,0,2,0)\nERO3 H 1 A_CustomMissile(\"PlayerJaxterBlaxt\",0,0,0,2,0)\nERO3 H 1 A_CustomMissile(\"PlayerJaxterBlaxt\",0,0,0,2,0)\nERO3 H 1 A_CustomMissile(\"PlayerJaxterBlaxt\",0,0,0,2,0)\nERO3 H 1 A_CustomMissile(\"PlayerJaxterBlaxt\",0,0,0,2,0)\nERO3 H 1 A_CustomMissile(\"PlayerJaxterBlaxt\",0,0,0,2,0)\nERO3 H 1 A_CustomMissile(\"PlayerJaxterBlaxt\",0,0,0,2,0)\nERO3 H 1 A_CustomMissile(\"PlayerJaxterBlaxt\",0,0,0,2,0)\nERO3 H 1 A_CustomMissile(\"PlayerJaxterBlaxt\",0,0,0,2,0)\nDone:\nERO3 H 1 A_FadeOut(0.1)\nwait\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor PlayerJaxterBlaxt : JaxterBlaxt\n{\nobituary \"%o just stood there and took a jaxter blaxter from %k.\"\ndamagetype \"JaxterPlayer\"\nstates\n{\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor Fish_TroutZooka : Fish_SeaHorse\n{\n//translation \"192:192=7:7\", \"198:198=239:239\"\ninventory.icon \"FISHIU48\"\ninventory.pickupmessage \"Picked up a Trout-zooka!\"\ninventory.maxamount 1\nstates\n{\nSpawn:\nFIS3 U 0\nstop\nDropFish:\nFISI F 0 //A_SpawnItemEx(\"Fish_VoidSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)//A_DropItem(\"Fish_VoidSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 A 0 A_JumpIFInventory(\"Fish_Trout\", 1, \"Attack\")\ngoto Failure\nAttack:\nTNT1 A 0 A_FireCustomMissile(\"TroutZookaProjectile\",0,0,0,0)\nTNT1 A 0 A_GiveInventory(\"FishCooldown\", 1)\nTNT1 A 0 A_Recoil(12)\nTNT1 A 0 A_PlaySoundEx(\"weapon/magnetmissile\", \"Voice\")\nfail\nFeedPet:\nTNT1 A 0\nGoto Failure\n}\n}\n\nactor TroutZookaProjectile : FastProjectile\n{\nDamage 0\nspeed 47\nscale 2.5\n+DONTREFLECT\n+DONTBLAST\nvar int user_dmg;\n+BRIGHT\nobituary \"%o was sank by %k's \\cbTrout-Zooka\\c*.\"\ntranslation \"40:47=165:165\"\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_dmg\", CallACS(\"hfish_troutzooka\"))\nFlying:\nSHAB GH 2 A_SpawnItemEx(\"SharkTorpedoDeath\",-4,0,4,0,0,0,0,SXF_CLIENTSIDE)\nloop\nDeath:\nBOMB B 0 A_JumpIf(user_dmg==0, \"Oops\")\nBOMB B 0 A_Explode(user_dmg, 200, 1, 0, 200)\nBOMB B 1 A_SpawnITemEx(\"TroutZookaExplosion\")\nTNT1 A 0 A_SetUserVar(\"user_dmg\", user_dmg/2)\nLooping:\nTNT1 A 1 A_JumpIf(user_dmg < 5, \"Leave\")\nTNT1 A 0 A_SpawnItemEx(\"TroutZookaTrout\", 0, 0, 0, frandom(5, 30), 0, frandom(-10, 20), random(0, 360))\nTNT1 A 0 A_SetUserVar(\"user_dmg\", user_dmg - 10)\nloop\nLeave:\nTNT1 A 0\nstop\nOops:\nMMFX BCDE 4\nstop\n}\n}\n\nactor TroutZookaExplosion\n{\n+NOINTERACTION\n+BRIGHT\nscale 2.5\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_PlaySoundEx(\"fish/explosion\", \"Voice\")\nBOMB BCDEFGHIJKLMN 1 A_SpawnItemEx(\"TroutZookaFX\", random(0, 128), 0, random(-64, 64), 0, 0, 0, random(0,360))\nstop\n}\n}\n\nactor TroutZookaTrout : Fish_Trout\n{\ngravity 0.40\n-INVBAR\nstates\n{\nPickup:\nTNT1 A 0 A_GiveInventory(\"Fish_Trout\", 1)\nstop\n}\n}\n\nactor TroutZookaFX\n{\n+NOINTERACTION\n+CLIENTSIDEONLY\n+BRIGHT\nscale 1.5\nstates\n{\nSpawn:\nTNT1 A 0\nTTN1 A 1 A_PlaySoundEx(\"misc/mm3explosion\", 0)\nASEX ABCD 2\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/Pets.txt",
        "contents": "actor NewPetTrigger : Powerup\n{\npowerup.duration 10\n}\n\nactor Fish_Pet : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 1\ninventory.usesound \"item/refill\"\nstates\n{\nSpawn:\nFISI A 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_Pet\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\n}\n}\n\nactor PetLevel : Inventory\n{\ninventory.amount 1\ninventory.maxamount 50\n}\n\nactor PetExp : Inventory\n{\ninventory.amount 1\ninventory.maxamount 9999999\n}\n\nactor PetEatFX\n{\nPROJECTILE\n+NOINTERACTION\n+CLIENTSIDEONLY\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 AAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx(\"PetEatPixelFX\", random(0, 32), 0, random(0, 32), random(0, 5), 0, random(1, 4), random(0,360), 0)\nTNT1 A 0 A_PlaySoundEx(\"pets/eat\", \"Voice\")\nstop\n}\n}\n\nactor PetFullFX : PetEatFX\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 AAA 0 A_SpawnItemEx(\"PetEatPixelFX\", random(0, 32), 0, random(0, 32), random(0, 5), 0, random(1, 4), random(0,360), 0)\nTNT1 A 0 A_PlaySoundEx(\"pets/full\", \"Voice\")\nstop\n}\n}\n\nactor PetFaveFX\n{\nTranslation \"192:192=36:36\", \"198:198=41:41\"\nPROJECTILE\n+NOINTERACTION\n+CLIENTSIDEONLY\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 AAA 1 A_SpawnItemEx(\"LoveShrimpHeartFX\", random(0, 32), 0, random(0, 32), random(0, 2), 0, frandom(1, 3), random(0,360), SXF_TRANSFERTRANSLATION)\nTNT1 A 0 A_PlaySoundEx(\"pets/favourite\", \"Voice\")\nstop\n}\n}\n\nactor PetEatPixelFX\n{\nPROJECTILE\n+DOOMBOUNCE\nheight 4\n-NOGRAVITY\nradius 4\n+CLIENTSIDEONLY\ntranslation \"0:255=4:4\"\nstates\n{\nSpawn:\nTNT1 A 0\nPIXL A 0 A_Jump(128, \"Alt\")\nPIXL A 8\nstop\nAlt:\nPIXL A 8 Thing_SetTranslation(0, 23003)\nstop\n}\n}\n\nactor PetBonusFX : ShrimpSpicyAura\n{\nreactiontime 80\nstates\n{\nSpawn:\nTNT1 A 5\nTNT1 A 1// ACS_NamedExecuteAlways(\"hfish_propwarper\", 0, 1, 1)\nGoto Show\nShow:\nTNT1 A 0 A_CountDown\nTNT1 AAAA 0 A_SpawnItemEx(\"RoyalShrimpSparkleFX\", 38 + random(0, 16), 0, random(4, 65), 0, 0, 0, random(0,360), 1, 128)\nTNT1 A 5 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor Fish_ClawPet : Fish_Pet\n{\ninventory.icon \"FISHIU01\"\ninventory.pickupmessage \"Picked up a giant claw!\"\nstates\n{\nSpawn:\nFISI P 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_ClawPet\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_newpet\", 0, 1, 23151)\nstop\n}\n}\n\n//Modify for core\nactor PetBase\n{\nscale 2.5\nmaxstepheight 32\nmeleerange 64\nHealth 1\nheight 16\nradius 18\nmass 256\nspeed 7\n\n+NOFEAR\n+INVULNERABLE\n+DROPOFF\n+NOTARGETSWITCH\n+NOBLOCKMONST\n\nvar int user_owner;\n\nvar int user_power;\nvar int user_speed;\nvar int user_belly;\n\nvar int user_food;\n\nstates\n{\nSpawn:\nTNT1 A 0 A_Jump(256, \"Waiting\")\nTNT1 A 2 A_SpawnItemEx(\"PetAppearFX\")\nTNT1 A 0 A_Jump(256, \"Waiting\")\ngoto Waiting\nRecall:\n\"####\" A 0 A_RearrangePointers(AAPTR_MASTER, AAPTR_MASTER)\n\"####\" A 1 A_Warp(AAPTR_MASTER, 0, 0, 0, 0, WARPF_NOCHECKPOSITION)\n//\"####\" A 1 A_SpawnItemEx(\"ItemFog2\",0,0,0,0,0,0,0,1)\n\"####\" A 1 A_Jump(256, \"See\")\nwait\nFrustrated:\n\"####\" A 0 A_PlaySoundEx(\"pets/frustrated\", voice)\n\"####\" A 70 A_SpawnItemEx(\"PetFrustratedFX\", 0, 0, 40, 0, 0, 4)\n\"####\" A 1 A_Jump(256, \"See\")\nwait\n}\n}\n\nactor PetAppearFX\n{\n\n}\n\nactor PetFrustratedFX\n{\nscale 2.5\n+NOINTERACTION\n-SOLID\n+CLIENTSIDEONLY\nheight 1\nradius 1\nstates\n{\nSpawn:\nPETF A 0 A_CountDown\nPETF ABC 3 A_ScaleVelocity(0.6)\nloop\nDeath:\nPETF AAABBBCCC 1 A_FadeOut(0.1)\nloop\n}\n}\n\nactor PetAttackCooldown : OnceFish {}\nactor PetGrumpCooldown : Powerup {powerup.duration -8}\n\nactor ClawPet : PetBase\n{\nspeed 7\nObituary \"%o was foamed by %k's Claw pet.\"\nstates\n{\nWaiting:\nCLAW A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nCLAW C 35 A_LookEx(LOF_NOSOUNDCHECK, 0, 0, 0, 360, \"See\")\nloop\nSee:\nCLAW A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nCLAW AAAABBBBAAAABBBBAAAABBBB 1 A_Chase\nloop\nMelee:\nCLAW A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nCLAW CCCCCCC 4 A_FaceTarget(30)\nCLAW C 1 A_JumpIFCloser(128, \"Melee\")\nGoto See\nAttack:\nCLAW C 0 A_ChangeFlag(\"MISSILE\", 1)\nCLAW C 2 //A_LogInt(user_power)\nCLAW C 0 A_PlaySoundEx(\"weapon/rainflush\", \"SoundSlot6\")\nCLAW C 0 A_GiveInventory(\"CutterFlag\", user_power/30)\nAttacking:\nCLAW ABAB 4 A_CustomMissile(\"PetClawBubble\", 8, 0, random(-5,5), 2, -pitch)\nCLAW A 0 A_TakeInventory(\"CutterFlag\", 1)\nCLAW A 2 A_JumpIfInventory(\"CutterFlag\", 1, \"Attacking\")\nAttackEnd:\nCLAW C 5 A_ChangeFlag(\"MISSILE\", 0)\nCLAW C 5 ACS_NamedExecuteAlways(\"hfish_petattackcooldown\", 0, 5)\ngoto See\n}\n}\n\nactor PetClawBubble\n{\nPROJECTILE\nRadius 5\nHeight 5\ndamagetype \"ClawBubble\"\nObituary \"%o was foamed by %k's Claw pet.\"\nscale 1.0\ndamage (20)\nspeed 15\nStates\n{\nSpawn:\nBUBB ABCABCABCABC 4\nstop\n}\n}\n\nactor ClawPetBubbleFX\n{\n+NOINTERACTION\n-SOLID\n+CLIENTSIDEONLY\nrenderstyle translucent\nalpha 0.8\nscale 0.5\n+MISSILE\nstates\n{\nSpawn:\nWAVB G 20\nWAVB H 2\nstop\n}\n}\n\nactor Fish_MobyPet : Fish_Pet\n{\ninventory.icon \"FISHIU02\"\ninventory.pickupmessage \"Picked up a lost anchor!\"\nstates\n{\nSpawn:\nFISI S 2400\nstop\nDropFish:\nFIS3 F 0\nfail\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_newpet\", 0, 2, 20193)\nstop\n}\n}\n\nactor MobyPet : PetBase\n{\nmeleerange 64\nspeed 8\n+NOGRAVITY\n//+FLOATBOB\n+FLOAT\nscale 0.5\n+NOTARGETSWITCH\nobituary \"%o was locked down by %k's Moby pet.\"\n\nmass 180\n\nstates\n{\nWaiting:\nMOBY A 0 A_ChangeVelocity(0,0,0,CVF_REPLACE)\nMOBY A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nMOBY ABCDE 6 A_LookEx(LOF_NOSOUNDCHECK, 0, 0, 0, 360, \"See\")\nMOBY A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nMOBY FEDCBA 6 A_LookEx(LOF_NOSOUNDCHECK, 0, 0, 0, 360, \"See\")\nGoto Waiting+1\nSee:\nMOBY A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nMOBY A 0 A_LogInt(CallAcs(\"hfish_getpetpower\"))\nMOBY AAAAAABBBBBBCCCCCCCDDDDDEEEEEE 1 A_Chase\nMOBY A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nMOBY FFFFFFEEEEEEDDDDDDCCCCCCBBBBBB 1 A_Chase\nloop\nMelee:\nMOBY A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nMOBY AAABBBCCCCDDEEEFFFEEEDDDCCCBBB 2 A_FaceTarget(30)\nGoto See\nAttack:\nMOBY A 3\nMOBY C 0 A_ChangeFlag(\"NOINTERACTION\", 1)\nMOBY C 0 A_ChangeFlag(\"MISSILE\", 1)\nMOBY C 0 A_PlaySoundEx(\"weapon/magnetmissile\", \"SoundSlot6\")\nMOBY C 0 A_CustomMissile(\"MobyDiveMissile\", 12, 0, 0, 2, -pitch)\nMOBY AB 3\nMOBY C 0 A_PlaySoundEx(\"weapon/magnetmissile\", \"SoundSlot6\")\nMOBY C 0 A_CustomMissile(\"MobyDiveMissile\", 12, 0, 0, 2 , -pitch)\nMOBY CD 3\nMOBY C 0 A_PlaySoundEx(\"weapon/magnetmissile\", \"SoundSlot6\")\nMOBY C 0 A_CustomMissile(\"MobyDiveMissile\", 12, 0, 0, 2, -pitch)\nMOBY C 0 A_ChangeFlag(\"NOINTERACTION\", 0)\nMOBY C 0 ACS_NamedExecuteAlways(\"hfish_petattackcooldown\", 0, 5, 35)\nMOBY EF 3 A_ChangeFlag(\"MISSILE\", 0)\ngoto See\n\n}\n}\n\nactor MobyDiveMissile : DiveMissile\n{\nobituary \"%o was locked down by %k's Moby pet.\"\ntranslation \"192:199=41:41\"\nDamage (3 + ((CallAcs(\"hfish_getpetpower\")  / 50) * 4))\n}\n\nactor Fish_BubbleDragonPet : Fish_Pet\n{\ninventory.icon \"FISHIU03\"\ninventory.pickupmessage \"Picked up a dragon in a bubble!\"\nstates\n{\nSpawn:\nFISI R 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_BubbleDragonPet\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_Jump(128, \"Bob\")\nBub:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_newpet\", 0, 3, 24253)\nstop\nBob:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_newpet\", 0, 3, 27578)\nstop\n}\n}\n\nactor BubbleDragonPet : PetBase\n{\nmaxstepheight 16\nspeed 9\n\nmass 200\n\nstates\n{\nWaiting:\nBUBD A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nBUBD A 35 A_LookEx(LOF_NOSOUNDCHECK, 0, 0, 0, 360, \"See\")\nloop\nSee:\nBUBD A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nBUBD BBBBCCCCDDDDEEEE 1 A_Chase(\"Melee\",\"\")\nloop\nMelee:\nBUBD A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nBUBD AAAAAAA 4 A_FaceTarget(30)\nBUBD A 1 A_JumpIFCloser(128, \"Melee\")\nGoto See\nAttack:\nCLAW C 0 A_GiveInventory(\"CutterFlag\", user_power/30)\nAttacking:\nBUBD A 0 A_TakeInventory(\"CutterFlag\", 1)\nBUBD F 8 A_SpawnItemEx(\"BubbleDragonBubble\", 0, 0, 12, 40, 0, 0, frandom(-2, 2), SXF_TRANSFERTRANSLATION)\nBUBD A 2 A_JumpIfInventory(\"CutterFlag\", 1, \"Attacking\")\nBUBD A 2 ACS_NamedExecuteAlways(\"hfish_petattackcooldown\", 0, 5, 35)\nGoto Melee\n}\n}\n\nactor BubbleDragonBubble\n{\nPROJECTILE\nDamage (0)\nheight 8\nradius 8\nscale 2.5\n+HITTRACER\n\nstates\n{\nSpawn:\nBUBD KLM 5\nBUBD N -1 A_ChangeVelocity(frandom(-1.0,1.0), frandom(-1.0,1.0), 2, CVF_REPLACE)\nstop\nCrash:\nXDeath:\nBUBD N 0 A_CheckFlag(\"PICKUP\", \"Trap\", AAPTR_TRACER)\nstop\nTrap:\nBUBD N 0 A_GiveInventory(\"BubbleDragonTrap\", 1, AAPTR_TRACER)\nstop\nDeath:\nBUBD OP 3\nstop\n}\n}\n\nactor BubbleDragonTrap : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0\nTNT1 A 0 A_JumpIfInventory(\"OctoBubbleFreeze\",1,\"Failure\")\nTNT1 A 0 A_GiveInventory(\"OctoBubbleFreeze\",1)\nTNT1 A 0 A_SpawnItemEx(\"DragonBubbleWatch\")\nTNT1 A 0 A_SpawnItemEx(\"OctoInBubble\",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION)\nstop\nFailure:\nTNT1 A 0\nstop\n}\n}\n\nactor DragonBubbleWatch\n{\n+NOINTERACTION\nradius 1\nheight 1\n+MISSILE\n-SOLID\n+NOGRAVITY\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"OctoBubbleFloat\", 1)\nTNT1 A 1\nTNT1 A 0 A_JumpIfInTargetInventory(\"OctoBubbleFreeze\", 1, \"Spawn\")\nstop\n}\n}\n\nactor Fish_MetroidPet : Fish_Pet\n{\ninventory.icon \"FISHIU04\"\ninventory.pickupmessage \"Picked up a chozo artifact!\"\nstates\n{\nSpawn:\nFISI Q 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_MetroidPet\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_newpet\", 0, 4, 21982)\nstop\n}\n}\n\nactor MetroidPet : PetBase\n{\nmeleerange 90\nspeed 12\n+NOGRAVITY\n+FLOATBOB\n+FLOAT\nscale 2.5\n+NOTARGETSWITCH\nobituary \"%o was drained dry by %k's Metroid pet.\"\n\nMass 256\n\nstates\n{\nWaiting:\nMETR A 0 A_ChangeVelocity(0,0,0,CVF_REPLACE)\nMETR ABA 12 A_LookEx(LOF_NOSOUNDCHECK, 0, 0, 0, 360, \"See\")\nMETR A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nMETR BAB 12 A_LookEx(LOF_NOSOUNDCHECK, 0, 0, 0, 360, \"See\")\nMETR A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nGoto Waiting+1\nSee:\nMETR A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nMETR AAAAAAAAABBBBBBBBBAAAAAAAAA 1 A_Chase\nMETR A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nMETR BBBBBBBBBAAAAAAAAABBBBBBBBB 1 A_Chase\nloop\nMelee:\nMETR A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nMETR AB 12 A_FaceTarget(30)\nMETR A 1 A_JumpIFCloser(128, \"Melee\")\nGoto See\nIdle:\nMETR A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nMETR ABAB 12 A_FaceTarget(30)\nGoto See\nAttack:\nMETR A 0 ACS_NAmedExecuteAlways(\"hfish_metroidattack\", 0)\nMETR A 0 A_PlaySoundEx(\"pets/metroidcry\", \"SoundSlot6\")\nMETR ABABAB 2\nMETR B 60\nMETR B 5 ACS_NamedExecuteAlways(\"hfish_petattackcooldown\", 0, 0, 10)\nGoto See\nAttack2:\nMETR A 0 A_GiveInventory(\"CutterFlag\", 1)\nMETR A 0 A_JumpIfInventory(\"CutterFlag\", 20, \"AttackEnd\")\nMETR AAAAAAAAABBBBBBBBB 1 A_Chase(\"AttackMelee\", \"\")\nloop\nAttackEnd:\nMETR A 0 A_RearrangePointers(AAPTR_NULL, AAPTR_NULL, AAPTR_NULL)\nMETR A 0 A_ChangeFlag(\"NOINTERACTION\", 0)\nMETR A 0 A_ChangeFlag(\"MISSILE\", 0)\nMETR A 0 ACS_NamedExecuteAlways(\"hfish_petattackcooldown\", 0, 10, 35*3)\nMETR A 5 A_TakeInventory(\"CutterFlag\", 9999)\nMETR A 0 ACS_NamedExecuteAlways(\"hfish_metroidattack\", 0, 2)\nGoto See\nAttackMelee:\nMETR A 1 A_RearrangePointers(AAPTR_TARGET, AAPTR_NULL, AAPTR_TARGET)\nMETR A 1 ACS_NamedExecuteAlways(\"hfish_metroidattack\", 0, 1)\nMETR A 0 A_ChangeFlag(\"NOINTERACTION\", 1)\nMETR A 0 A_ChangeFlag(\"MISSILE\", 1)\nMETR A 0 A_PlaySoundEx(\"pets/metroidcry\", \"SoundSlot6\")\nMETR BBBBBB 1 A_Warp(AAPTR_TRACER, 0, 0, 56, 0, WARPF_NOCHECKPOSITION)\nMETR B 0 A_SpawnITemEx(\"MetroidPetDamager\", 0, 0, 0, 0, 0, -20, 0)\nMETR BBBBBB 1 A_Warp(AAPTR_TRACER, 0, 0, 56, 0, WARPF_NOCHECKPOSITION)\nMETR B 0 A_SpawnITemEx(\"MetroidPetDamager\", 0, 0, 0, 0, 0, -20, 0)\nMETR A 0 A_PlaySoundEx(\"pets/metroidcry\", \"SoundSlot6\")\nMETR BBBBBB 1 A_Warp(AAPTR_TRACER, 0, 0, 56, 0, WARPF_NOCHECKPOSITION)\nMETR B 0 A_SpawnITemEx(\"MetroidPetDamager\", 0, 0, 0, 0, 0, -20, 0)\nMETR BBBBBB 1 A_Warp(AAPTR_TRACER, 0, 0, 56, 0, WARPF_NOCHECKPOSITION)\nMETR B 0 A_SpawnITemEx(\"MetroidPetDamager\", 0, 0, 0, 0, 0, -20, 0)\nMETR A 0 A_PlaySoundEx(\"pets/metroidcry\", \"SoundSlot6\")\nMETR BBBBBB 1 A_Warp(AAPTR_TRACER, 0, 0, 56, 0, WARPF_NOCHECKPOSITION)\nMETR B 0 A_SpawnITemEx(\"MetroidPetDamager\", 0, 0, 0, 0, 0, -20, 0)\nMETR BBBBBB 1 A_Warp(AAPTR_TRACER, 0, 0, 56, 0, WARPF_NOCHECKPOSITION)\nMETR B 0 A_SpawnITemEx(\"MetroidPetDamager\", 0, 0, 0, 0, 0, -20, 0)\nMETR A 0 A_PlaySoundEx(\"pets/metroidcry\", \"SoundSlot6\")\nMETR BBBBBB 1 A_Warp(AAPTR_TRACER, 0, 0, 56, 0, WARPF_NOCHECKPOSITION)\nMETR B 0 A_SpawnITemEx(\"MetroidPetDamager\", 0, 0, 0, 0, 0, -20, 0)\nMETR BBBBBB 1 A_Warp(AAPTR_TRACER, 0, 0, 56, 0, WARPF_NOCHECKPOSITION)\nMETR B 0 A_SpawnITemEx(\"MetroidPetDamager\", 0, 0, 0, 0, 0, -20, 0)\nMETR A 0 A_PlaySoundEx(\"pets/metroidcry\", \"SoundSlot6\")\nMETR BBBBBB 1 A_Warp(AAPTR_TRACER, 0, 0, 56, 0, WARPF_NOCHECKPOSITION)\nMETR B 0 A_SpawnITemEx(\"MetroidPetDamager\", 0, 0, 0, 0, 0, -20, 0)\nMETR BBBBBB 1 A_Warp(AAPTR_TRACER, 0, 0, 56, 0, WARPF_NOCHECKPOSITION)\nMETR B 0 A_SpawnITemEx(\"MetroidPetDamager\", 0, 0, 0, 0, 0, -20, 0)\nMETR A 0 A_PlaySoundEx(\"pets/metroidcry\", \"SoundSlot6\")\nMETR BBBBBB 1 A_Warp(AAPTR_TRACER, 0, 0, 56, 0, WARPF_NOCHECKPOSITION)\nMETR B 0 A_SpawnITemEx(\"MetroidPetDamager\", 0, 0, 0, 0, 0, -20, 0)\nMETR BBBBBB 1 A_Warp(AAPTR_TRACER, 0, 0, 56, 0, WARPF_NOCHECKPOSITION)\nMETR B 0 A_SpawnITemEx(\"MetroidPetDamager\", 0, 0, 0, 0, 0, -20, 0)\nGoto AttackEnd\n}\n}\n\nactor MetroidPetDamager\n{\nHeight 10\nradius 40\nPROJECTILE\ndamagetype \"Pet\"\nobituary \"%o was drained dry by %k's Metroid pet.\"\ndamage (1 + ((CallAcs(\"hfish_getpetpower\")  / 50) * 1))\nrenderstyle none\nstates\n{\nSpawn:\nBASS A 5\nstop\n}\n}\n\nactor Fish_TurtlePet : Fish_Pet\n{\ninventory.icon \"FISHIU05\"\ninventory.pickupmessage \"Picked up an occupied turtle shell!\"\nstates\n{\nSpawn:\nFISI O 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_TurtlePet\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_newpet\", 0, 5, 23177)\nstop\n}\n}\n\nactor TurtlePet : PetBase\n{\nspeed 2\nscale 1.5\n\nmass 150\n\nstates\n{\nWaiting:\nTUR2 A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nTUR2 A 35 A_LookEx(LOF_NOSOUNDCHECK, 0, 0, 0, 360, \"See\")\nloop\nSee:\nTUR2 A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nTUR2 AAABBBCCCBBB 1 A_Chase\nloop\nMelee:\nTUR2 A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nTUR2 AA 12 A_FaceTarget(10)\nTUR2 C 0 A_JumpIFCloser(128, \"Melee\")\nGoto See\nAttack:\nTUR2 D 0 A_JumpIfCloser(400, \"Shield\")\nTUR2 A 0 A_FaceTarget\nTUR2 A 5 A_SpawnItemEx(\"RoyalShrimpSparkleFX\", random(-16, 16), random(-16, 16), 8, 0, 0, 1, 0, 1)\nTUR2 A 5 A_FaceTarget\nTUR2 D 0 A_JumpIfCloser(400, \"Shield\")\nTUR2 A 5 A_SpawnItemEx(\"RoyalShrimpSparkleFX\", random(-16, 16), random(-16, 16), 8, 0, 0, 1, 0, 1)\nTUR2 A 5 A_FaceTarget\nGoto See\nShield:\nTUR2 A 0 A_SpawnItemEx(\"PetBuffFX\",0,0,8,0,0,0,0,1)\nTUR2 A 1 A_FaceTarget\nTUR2 A 0 A_JumpIf(user_power < 201, \"Power4\")\nTUR2 A 0 A_JumpIf(user_power < 151, \"Power3\")\nTUR2 A 0 A_JumpIF(user_power < 101, \"Power2\")\nTUR2 A 1 A_JumpIF(user_power < 51, \"Power1\")\nPower1:\nTUR2 A 1 A_GiveToTarget(\"TurtlePetShieldPower1\", 1)\nGoto ShieldSent\nPower2:\nTUR2 A 1 A_GiveToTarget(\"TurtlePetShieldPower2\", 1)\nGoto ShieldSent\nPower3:\nTUR2 A 1 A_GiveToTarget(\"TurtlePetShieldPower3\", 1)\nGoto ShieldSent\nPower4:\nTUR2 A 1 A_GiveToTarget(\"TurtlePetShieldPower4\", 1)\nGoto ShieldSent\n\nShieldSent:\nTUR2 A 80 A_GiveToTarget(\"TurtlePetShield\", 1)\nTUR2 A 10 ACS_NamedExecuteAlways(\"hfish_petattackcooldown\", 0, 25, 35*6)\nAttackEnd:\nTUR2 A 1 A_TakeInventory(\"CutterFlag\", 999)\nGoto See\n}\n}\n\nactor PetBuffFX\n{\n+CLIENTSIDEONLY\n+NOINTERACTION\n+MISSILE\n-SOLID\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SpawnItemEx(\"RoyalShrimpSparkleFX\", 0, 0, 0, 5, 0, 0, 45 * 0, 1)\nTNT1 A 0 A_SpawnItemEx(\"RoyalShrimpSparkleFX\", 0, 0, 0, 5, 0, 0, 45 * 1, 1)\nTNT1 A 0 A_SpawnItemEx(\"RoyalShrimpSparkleFX\", 0, 0, 0, 5, 0, 0, 45 * 2, 1)\nTNT1 A 0 A_SpawnItemEx(\"RoyalShrimpSparkleFX\", 0, 0, 0, 5, 0, 0, 45 * 3, 1)\nTNT1 A 0 A_SpawnItemEx(\"RoyalShrimpSparkleFX\", 0, 0, 0, 5, 0, 0, 45 * 4, 1)\nTNT1 A 0 A_SpawnItemEx(\"RoyalShrimpSparkleFX\", 0, 0, 0, 5, 0, 0, 45 * 5, 1)\nTNT1 A 0 A_SpawnItemEx(\"RoyalShrimpSparkleFX\", 0, 0, 0, 5, 0, 0, 45 * 6, 1)\nTNT1 A 0 A_SpawnItemEx(\"RoyalShrimpSparkleFX\", 0, 0, 0, 5, 0, 0, 45 * 7, 1)\nstop\n}\n}\n\nactor TurtlePetShield : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_SpawnItemEx(\"TurtlePetShieldFX\")\nTNT1 A 0 A_PlaySoundEx(\"pets/turtleshield\", \"SoundSlot6\")\nstop\n}\n}\n\nactor TurtlePetShieldFX\n{\nheight 2\nradius 2\n+NOINTERACTION\n+CLIENTSIDEONLY\n+MISSILE\n-SOLID\n+NOGRAVITY\nrenderstyle translucent\nalpha 0.85\nscale 2.2\nreactiontime 175\nstates\n{\nSpawn:\nTUR2 I 0 A_CountDown\nTUR2 I 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_NOCHECKPOSITION|WARPF_COPYINTERPOLATION)\nloop\nDeath:\nTUR2 I 0 A_FadeOut(0.1)\nTUR2 I 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_NOCHECKPOSITION|WARPF_COPYINTERPOLATION)\nloop\n}\n}\n\nactor TurtlePetShieldPower : PowerProtection { powerup.duration -5\t}\n\nactor TurtlePetShieldPower4 : TurtlePetShieldPower { Damagefactor \"Normal\", 0.78\t}\nactor TurtlePetShieldPower3 : TurtlePetShieldPower { Damagefactor \"Normal\", 0.83\t}\nactor TurtlePetShieldPower2 : TurtlePetShieldPower { Damagefactor \"Normal\", 0.88\t}\nactor TurtlePetShieldPower1 : TurtlePetShieldPower { Damagefactor \"Normal\", 0.93\t}\n\nactor Fish_PikachuPet : Fish_Pet\n{\ninventory.icon \"FISHIU20\"\ninventory.pickupmessage \"Picked up a Pokeball!\"\ninventory.usesound \"pets/pikachu\"\nstates\n{\nSpawn:\nFIS2 Q 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_PikachuPet\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_newpet\", 0, 6, 27248)\nstop\n}\n}\n\nactor PikachuPet : PetBase\n{\nobituary \"%o was shocked by %k's Pikachu pet.\"\nscale 2.5\n\nmass 50\n\nstates\n{\nWaiting:\nPIKA A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nPIKA A 35 A_LookEx(LOF_NOSOUNDCHECK, 0, 0, 0, 360, \"See\")\nloop\nSee:\nPIKA A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nPIKA AAABBBCCDDAAABBBCCDDAAABBBCCDD 1 A_Chase\nloop\nMelee:\nBUBD A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nPIKA AAAAAAAA 4 A_FaceTarget(30)\nPIKA A 1 A_JumpIFCloser(128, \"Melee\")\nGoto See\nAttack:\nPIKA C 0 A_PlaySoundEx(\"pets/pikachu\", \"SoundSlot6\")\nPIKA AAAA 4 A_SpawnITemEx(\"PikachuFX2\", -1, 0, 4)\nPIKA A 0 A_ChangeFlag(\"NOINTERACTION\", 1)\nPIKA A 0 A_ChangeFlag(\"MISSILE\", 1)\nPIKA A 0 A_SpawnITemEx(\"PikachuThunderBolt\", 0, 0, 0, 50)\nPIKA A 0 A_ChangeFlag(\"NOINTERACTION\", 0)\nPIKA A 10 ACS_NamedExecuteAlways(\"hfish_petattackcooldown\", 0, 10, 35*3)\nPIKA A 5 A_ChangeFlag(\"MISSILE\", 0)\nGoto See\n}\n}\n\nactor PikachuThunderBolt\n{\n+SEEKERMISSILE\n+HEXENBOUNCE\nPROJECTILE\n+HITTRACER\nspeed 50\nrenderstyle none\ndamage (4)\nreactiontime 25\nradius 14\nheight 14\nobituary \"%o was shocked by %k's Pikachu pet.\"\nstates\n{\nSpawn:\nPIKA C 0 A_GiveInventory(\"CutterFlag\", 1)\nPIKA C 0 A_SpawnITemEx(\"PikachuFX2\")\nTNT1 A 0 A_ChangeVelocity(0, frandom(-1,1), frandom(-1,1), CVF_RELATIVE)\nTNT1 A 1 A_SeekerMissile (20, 60, SMF_LOOK, 50, 10)\nTNT1 A 0 A_JumpIfInventory(\"CutterFlag\", 25, \"End\")\nloop\nEnd:\nTNT1 A 0\nstop\nDeath:\nTNT1 A 35 ACS_NamedExecuteAlways(\"hfish_pikachushock\", 0)\nstop\n}\n}\n\nactor PikachuFX : ShockFX\n{\n+CLIENTSIDEONLY\ntranslation \"4:254=214:214\"\nstates\n{\nSpawn:\nSPAS FGFG 1\nstop\n}\n}\n\nactor PikachuFX2 : PikachuFX\n{\n+CLIENTSIDEONLY\nstates\n{\nSpawn:\nSPAS FGFGFGFGFGFGFG 1\nstop\n}\n}\n\nactor PikachuStun : PowerSpeed\n{\nspeed 0\npowerup.duration 18\n}\n\nactor PikachuStunFX\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 AAAAAA 2 A_SpawnItemEx(\"PikachuStunFXSpark\", 0, 0, 0, 5, 0, random(-5, 5), random(0, 360))\nstop\n}\n}\n\nactor PikachuStunFXSpark\n{\nPROJECTILE\n+NOINTERACTION\n+CLIENTSIDEONLY\ntranslation \"4:254=214:214\"\nscale 2.5\nstates\n{\nSpawn:\nRBFX T 10\nRBFX TTTTTTTTTTTTT 1 A_FadeOut(0.1)\nstop\n}\n}\n\nactor Fish_MechaDragonPet : Fish_Pet\n{\ninventory.icon \"FISHIU41\"\ninventory.pickupmessage \"Picked up a Mechanical Dragon Egg!\"\nstates\n{\nSpawn:\nFIS3 O 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_MechaDragonPet\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_newpet\", 0, 7, 22093)\nstop\n}\n}\n\nactor MechaDragonPet : PetBase\n{\nmeleerange 64\nspeed 8\n+NOGRAVITY\n+FLOATBOB\n+FLOAT\nscale 0.4\n+NOTARGETSWITCH\nobituary \"%o was incinerated by %k's Mecha Dragon pet.\"\n\nmass 80\n\nstates\n{\nSpawn:\nMDRA C 0 A_Jump(256, \"Waiting\")\nWaiting:\nMDRA A 0 A_ChangeVelocity(0,0,0,CVF_REPLACE)\nMDRA ABABABAB 6 A_LookEx(LOF_NOSOUNDCHECK, 0, 0, 0, 360, \"See\")\nMDRA A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nGoto Waiting+1\nSee:\nMDRA AAAAAABBBBBB 1 A_Chase\nMDRA A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nloop\nMelee:\nMDRA AAAAAABBBBBB 2 A_FaceTarget(30)\nMDRA A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nGoto See\nAttack:\nMDRA C 3\nMDRA C 0 A_ChangeFlag(\"NOINTERACTION\", 1)\nMDRA C 0 A_ChangeFlag(\"MISSILE\", 1)\nMDRA C 0 A_PlaySoundEx(\"pets/dragoncry\", \"SoundSlot6\")\nMDRA C 0 A_CustomMissile(\"MechaDragonPetFireball\", 8, 0, 15, 2, 0)\nMDRA C 0 A_CustomMissile(\"MechaDragonPetFireball\", 8, 0, -15, 2, 0)\nMDRA C 0 A_CustomMissile(\"MechaDragonPetFireball\", 8, 0, 0, 2, 0)\nMDRA C 0 A_ChangeFlag(\"NOINTERACTION\", 0)\nMDRA C 0 A_ChangeFlag(\"MISSILE\", 0)\nMDRA DCDCDCD 3\ngoto See\n}\n}\n\nactor MechaDragonPetFireball : MagmaBazooka2\n{\nobituary \"%o was incinerated by %k's Mecha Dragon pet.\"\ndamage (40)\n}\n\nactor Fish_SurumakerPet : Fish_Pet\n{\ninventory.icon \"FISHIU42\"\ninventory.pickupmessage \"Picked up a Spare Red Valve!\"\nstates\n{\nSpawn:\nFIS3 M 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_SurumakerPet\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_newpet\", 0, 8, 24164)\nstop\n}\n}\n\nactor SurumakerPet : PetBase\n{\nmeleerange 64\nspeed 4\n+NOGRAVITY\n+FLOATBOB\n+FLOAT\nscale 2.0\n+NOTARGETSWITCH\nobituary \"%o was inked by %k's Surumaker pet.\"\n\nmass 350\nvar int user_timer;\n\nstates\n{\nSpawn:\nSURU C 0 A_Jump(256, \"Waiting\")\nWaiting:\nSURU A 0 A_ChangeVelocity(0,0,0,CVF_REPLACE)\nSURU ABCDEFG 6 A_LookEx(LOF_NOSOUNDCHECK, 0, 0, 0, 360, \"See\")\nSURU A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0, 1)\nGoto Waiting+1\nSee:\nSURU AAAABBBBCCCCDDDDEEEEFFFFGGGG 1 A_Chase\nSURU A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0, 1)\nloop\nMelee:\nSURU AAAABBBBCCCCDDDD 2\nSURU EEEEFFFFGGGG 2\nSURU A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0, 2)\nGoto See\nAttack:\nSURU G 35\nSURU G 0 A_PlaySoundEx(\"pets/inkbuff\", \"Voice\")\nSURU G 0 A_Jump(256, \"Speed\", \"Rage\", \"Regen\", \"Shadow\")\nShadow:\nSURU G 0 A_SpawnItemEx(\"SurumakerPetInk\", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)\nGoto Ink\nSpeed:\nSURU G 0 A_SpawnItemEx(\"SurumakerPetInkSpeed\", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)\nGoto Ink\nRage:\nSURU G 0 A_SpawnItemEx(\"SurumakerPetInkRage\", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)\nGoto Ink\nRegen:\nSURU G 0 A_SpawnItemEx(\"SurumakerPetInkRegen\", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)\nGoto Ink\nInk:\nSURU HIJKHIJKHIJKHIJKHIJKHIJKHIJKHIJK 3\nSURU H 1 A_TakeInventory(\"PetCounter\", 999999)\ngoto See\n}\n}\n\nactor SurumakerSpeed : SquidSpeed {powerup.duration -12}\nactor SurumakerRage : SquidDouble {powerup.duration -12}\nactor SurumakerShadow : SquidShadow {powerup.duration -12}\nactor SurumakerTroubled : SquidSpeedR {powerup.duration -12}\nactor SurumakerRegen : SquidRegen {powerup.duration -12}\n\nactor SurumakerPetInk\n{\n+MISSILE\n-SOLID\n+NOGRAVITY\n+NOINTERACTION\nheight 2\nradius 2\ntranslation \"1:255=0:0\"\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_RadiusGive(\"SurumakerShadow\", 200, RGF_PLAYERS, 1)\nGoto FX\nFX:\nTNT1 A 0 A_Stop\nTNT1 A 0 A_SpawnItemEx(\"SurumakerPetInkProjectile\", 0, 0, 0, 25, 0, 0, 0 * 45, SXF_TRANSFERTRANSLATION)\nTNT1 A 0 A_SpawnItemEx(\"SurumakerPetInkProjectile\", 0, 0, 0, 25, 0, 0, 1 * 45, SXF_TRANSFERTRANSLATION)\nTNT1 A 0 A_SpawnItemEx(\"SurumakerPetInkProjectile\", 0, 0, 0, 25, 0, 0, 2 * 45, SXF_TRANSFERTRANSLATION)\nTNT1 A 0 A_SpawnItemEx(\"SurumakerPetInkProjectile\", 0, 0, 0, 25, 0, 0, 3 * 45, SXF_TRANSFERTRANSLATION)\nTNT1 A 0 A_SpawnItemEx(\"SurumakerPetInkProjectile\", 0, 0, 0, 25, 0, 0, 4 * 45, SXF_TRANSFERTRANSLATION)\nTNT1 A 0 A_SpawnItemEx(\"SurumakerPetInkProjectile\", 0, 0, 0, 25, 0, 0, 5 * 45, SXF_TRANSFERTRANSLATION)\nTNT1 A 0 A_SpawnItemEx(\"SurumakerPetInkProjectile\", 0, 0, 0, 25, 0, 0, 6 * 45, SXF_TRANSFERTRANSLATION)\nTNT1 A 0 A_SpawnItemEx(\"SurumakerPetInkProjectile\", 0, 0, 0, 25, 0, 0, 7 * 45, SXF_TRANSFERTRANSLATION)\nTNT1 A 1 A_SpawnItemEx(\"SurumakerPetInkProjectile\", 0, 0, 0, 25, 0, 0, 8 * 45, SXF_TRANSFERTRANSLATION)\nTNT1 A 5 A_GiveInventory(\"CutterFlag\", 1)\nTNT1 A 0 A_JumpIfInventory(\"CutterFlag\", 19, \"End\")\nTNT1 A 0 A_JUmp(256, \"Spawn\")\nGoto Spawn\nEnd:\nTNT1 A 0\nstop\n}\n}\n\nactor SurumakerPetInkSpeed : SurumakerPetInk\n{\ntranslation \"1:255=228:228\"\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_RadiusGive(\"SurumakerSpeed\", 200, RGF_PLAYERS, 1)\nGoto FX\n}\n}\n\nactor SurumakerPetInkRage : SurumakerPetInk\n{\ntranslation \"1:255=176:176\"\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_RadiusGive(\"SurumakerRage\", 200, RGF_PLAYERS, 1)\nGoto FX\n}\n}\n\nactor SurumakerPetInkRegen : SurumakerPetInk\n{\ntranslation \"1:255=39:39\"\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_RadiusGive(\"SurumakerRegen\", 200, RGF_PLAYERS, 1)\nGoto FX\n}\n}\n\nactor SurumakerPetInkProjectile\n{\n+NOINTERACTION\nPROJECTILE\n+CLIENTSIDEONLY\nxscale 2.0\nyscale 1.0\nalpha 0.6\nheight 4\nradius 4\nstates\n{\nSpawn:\nFSFX W 1\nFade:\nFSFX W 0 A_SetScale(scalex + 0.12, scaley + 0.12)\nFSFX W 0 A_FadeOut(0.04)\nFSFX W 1 A_ScaleVelocity(0.8)\nloop\n}\n}\n\nactor SurumakerInkPower : Powerup {powerup.duration -12}\n\nactor Fish_SlugPet : Fish_Pet\n{\ninventory.icon \"FISHIU43\"\ninventory.pickupmessage \"Picked up a half eaten apple!\"\nstates\n{\nSpawn:\nFIS3 N 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_SlugPet\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_newpet\", 0, 9, 24278)\nstop\n}\n}\n\nactor SlugPet : PetBase\n{\nobituary \"%o was trolled by %k's Slug pet.\"\nscale 2.0\n\nspeed 1\nmass 350\n\nvar int user_timer;\n\nstates\n{\nSpawn:\nSLUG A 0 A_Jump(256, \"Waiting\")\nWaiting:\nSLUG AAA 35 A_LookEx(LOF_NOSOUNDCHECK, 0, 0, 0, 360, \"See\")\nSLUG A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0, 1)\nloop\nSee:\nSLUG AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Chase\nSLUG A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0, 1)\nloop\nMelee:\nSLUG AAA 35// A_FaceTarget(30)\nSLUG A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0, 1)\nSLUG A 1 A_JumpIFCloser(128, \"Melee\")\nGoto See\nAttack:\nFart:\nSLUG A 0 A_PlaySoundEx(\"misc/fishslug\", \"Voice\")\nSLUG A 0 A_GiveToTarget(\"SlugPetRandomSlug\", 1)\nSLUG A 1 A_TakeInventory(\"PetCounter\", 999999)\nGoto See\n}\n}\n\nactor SlugPetRandomSlug : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_findplayer\", 256)>0, \"Select\")\nFart:\nTNT1 A 0 A_SpawnITemEx(\"SlugFart\")\nstop\nSelect:\nTNT1 A 0 A_Jump(256, \"Spin\", \"Fart\", \"Hammer\", \"Sticky\", \"Reverse\")\nstop\nSticky:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_sticktoplayer\", 0, ACS_NamedExecuteWithResult(\"hfish_findplayer\", 256))\nstop\nHammer:\nTNT1 A 0 A_SpawnItemEx(\"HammerSlugFlatten\")\nstop\nSpin:\nTNT1 A 0 A_SpawnItemEx(\"DizzySlugSpin\")\nstop\nReverse:\nTNT1 A 0 A_SpawnItemEx(\"BackwardsSlugMover\")\nstop\n}\n}\n\nactor PetCounter : Inventory\n{\ninventory.amount 1\ninventory.maxamount 999999\n}\n\nactor Fish_KukkuPet : Fish_Pet\n{\ninventory.icon \"FISHIU44\"\ninventory.pickupmessage \"Picked up an atomic feather!\"\nstates\n{\nSpawn:\nFIS3 P 2400\nstop\nDropFish:\nTNT1 A 0 A_SpawnItemEx(\"Fish_KukkuPet\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_newpet\", 0, 10, 24193)\nstop\n}\n}\n\nactor KukkuPet : PetBase\n{\nscale 2.0\nmass 256\n\nstates\n{\nSpawn:\nATOC B 0 A_Jump(256, \"Waiting\")\nWaiting:\nATOC BBBBBB 35 A_LookEx(LOF_NOSOUNDCHECK, 0, 0, 0, 360, \"See\")\nATOC A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nloop\nSee:\nATOC AAABBBCCCBBB 1 A_Chase\nATOC A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nloop\nMelee:\nATOC BBBBBBB 4 A_FaceTarget(30)\nATOC A 0 ACS_NamedExecuteAlways(\"hfish_petupdate\", 0)\nATOC B 1 A_JumpIFCloser(128, \"Melee\")\nGoto See\nAttack:\nATOC B 0 A_JumpIfInTargetInventory(\"RideCooldown\", 1, \"See\")\nATOC B 0 A_SpawnItemEX(\"RideArrowFX\", 0, 0, 64)\nATOC B 3 A_PlaySoundEx(\"pets/chococry\", \"SoundSlot6\")\nATOC BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 4 A_JumpIfCloser(62, \"RideCheck\")\nATOC AAABBBCCCBBB 1 A_Chase\nGoto See\nRideCheck:\nATOC B 10 ACS_NamedExecuteAlways(\"hfish_kukkuride\", 0)\nATOC B 1 A_JumpIfCloser(52, \"RideCheck\")\nGoto See\nRide:\nTNT1 A 0 A_SpawnITemEx(\"KukkuRideHelper\", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERPOINTERS)\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_kukkuriding\", 0)\nRideLoop:\nTNT1 A 35\nTNT1 A 3 A_JumpIfInTargetInventory(\"OnSnowboard\", 1, \"RideLoop\")\nRideEnd:\nATOC B 0 A_PlaySoundEx(\"pets/chocowok\", \"SoundSlot6\")\nATOC A 0 A_Warp(AAPTR_TARGET, 0, 0, -32, 0, WARPF_NOCHECKPOSITION)\nATOC A 0 A_TakeInventory(\"CutterFlag\", 9999)\nGoto See\n}\n}\n\nactor RideArrowFX\n{\n+NOINTERACTION\n-SOLID\n+FLOATBOB\n+NOGRAVITY\nheight 2\nradius 2\nstates\n{\nSpawn:\nTARW EEEEEEEEEEEEEEEEEEEEE 4\nstop\n}\n}\n\nactor KukkuRideHelper\n{\nHeight 0\nRadius 0\n+NOINTERACTION\n-SOLID\n+NOGRAVITY\n+MISSILE\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0\nRide:\nTNT1 A 1 A_GiveToTarget(\"KukkuRideHelperInventory\",1)\nTNT1 A 0 A_JumpIfInTargetInventory(\"IsDead\",1,\"Death\")\nTNT1 A 0 A_JumpIfInTargetInventory(\"NewPetTrigger\",1,\"Death\")\nTNT1 AA 1 A_JumpIfInTargetInventory(\"OnSnowboard\",1,\"Ride\")\nGoto Death\nDeath:\nTNT1 A 0 //A_GiveToTarget(\"SnowBoardThruster\", 1)\nstop\n}\n}\n\nactor KukkuRideFX\n{\n-SOLID\n+MISSILE\n+CLIENTSIDEONLY\n+NOINTERACTION\nheight 2\nradius 2\nscale 2.0\nstates\n{\nSpawn:\nATOC A 0\nATOC A 0 ACS_NamedExecuteAlways(\"hfish_gettargetpettranslation\", 0)\nSpawn2:\nATOC AAABBB 1 A_Warp(AAPTR_TARGET, 0, 0, -32, 0, WARPF_NOCHECKPOSITION)\nATOC B 1 A_JumpIfInTargetInventory(\"OnSnowboard\", 1, \"Spawn2\")\nstop\n}\n}\n\nactor KukkuRideHelperInventory : CustomInventory\n{\ninventory.amount 1\ninventory.maxamount 1\n+INVENTORY.AUTOACTIVATE\nstates\n{\nSpawn:\nTNT1 A 1\nloop\nPickup:\nTNT1 A 0 A_ChangeVelocity(22,0,momz,CVF_RELATIVE|CVF_REPLACE)\nTNT1 A 0 A_JumpIf(z-floorz< 32, \"Up\")\nstop\nUp:\nTNT1 A 0 ThrustThingZ(0, 8, 0, 0)\nstop\n}\n}\n\nactor RideCooldown : Powerup {powerup.duration -12}"
      },
      {
        "source": "pk3",
        "name": "actors/Piranha.txt",
        "contents": "//Player effect removal\n\nactor Fish_Piranha : BaseFish\n{\ninventory.amount 1\ninventory.maxamount 1\ninventory.usesound \"\"\nstates\n{\nSpawn:\nFISI D 2400\nstop\nDropFish:\nFISI D 0 A_SpawnItemEx(\"Fish_Piranha\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0\nstop\nFailure:\nTNT1 A 0\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor FishAuraRemover : Powerup\n{\npowerup.duration 5\n}\n\nactor FishAvatarRemover : FishAuraRemover {}\nactor FishWingsRemover : FishAuraRemover {}\nactor FishPetsRemover : FishAuraRemover {}\n\nactor FishAllRemover : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_GiveInventory(\"FishAuraRemover\", 1)\nTNT1 A 0 A_GiveInventory(\"FishAvatarRemover\", 1)\nTNT1 A 0 A_GiveInventory(\"FishWingsRemover\", 1)\nTNT1 A 0 A_GiveInventory(\"FishPetsRemover\", 1)\nstop\n}\n}\n\nactor Fish_SwarmPiranha : Fish_Piranha\n{\ntranslation \"192:192=138:138\", \"198:198=128:128\"\ninventory.icon \"FISHID15\"\ninventory.pickupmessage \"Picked up a Swarm Piranha!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI D 0 A_SpawnItemEx(\"Fish_SwarmPiranha\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 2)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setaura\", 0, 0)\nTNT1 A 0 A_GiveInventory(\"FishAuraRemover\", 1)\nTNT1 A 0 A_PlaySound(\"misc/wanaan\", \"Voice\")\nstop\n}\n}\n\nactor Fish_ScissorPiranha : Fish_Piranha\n{\ntranslation \"192:192=80:80\", \"198:198=95:95\"\ninventory.icon \"FISHID16\"\ninventory.pickupmessage \"Picked up a Scissor Piranha!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI D 0 A_SpawnItemEx(\"Fish_ScissorPiranha\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 1)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_setwings\", 0, 0)\nTNT1 A 0 A_GiveInventory(\"FishWingsRemover\", 1)\nTNT1 A 0 A_PlaySound(\"misc/wanaan\", \"Voice\")\nstop\n}\n}\n\nactor Fish_RoughPiranha : Fish_Piranha\n{\ntranslation \"192:192=210:210\", \"198:198=230:230\"\ninventory.icon \"FISHID17\"\ninventory.pickupmessage \"Picked up a Rough Piranha!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI D 0 A_SpawnItemEx(\"Fish_RoughPiranha\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"hfish_getfishinfo\", 0)==0, \"Failure\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_clearcolors\", 0)\nTNT1 A 0 A_PlaySound(\"misc/wanaan\", \"Voice\")\nstop\n}\n}\n\nactor Fish_DetectorPiranha : Fish_Piranha\n{\ntranslation \"192:192=248:248\", \"198:198=227:227\"\ninventory.icon \"FISHID35\"\ninventory.pickupmessage \"Picked up a Detector Piranha!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI D 0 A_SpawnItemEx(\"Fish_DetectorPiranha\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIfInventory(\"HasFishAvatar\", 1, \"Success\")\nfail\nSuccess:\nTNT1 A 0 A_GiveInventory(\"FishAvatarRemover\", 1)\nTNT1 A 0 A_TakeInventory(\"HasFishAvatar\",1)\nTNT1 A 0 A_PlaySound(\"misc/wanaan\", \"Voice\")\nstop\n}\n}\n\nactor Fish_CrusherPiranha : Fish_Piranha\n{\ntranslation \"192:192=196:196\", \"198:198=198:198\"\ninventory.icon \"FISHID86\"\ninventory.pickupmessage \"Picked up a Crusher Piranha!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI D 0 A_SpawnItemEx(\"Fish_CrusherPiranha\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIf(scalex != 2.5, \"Success\")\nfail\nSuccess:\nTNT1 A 0 A_SetScale(2.5, 2.5)\nTNT1 A 0 A_PlaySound(\"misc/wanaan\", \"Voice\")\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/pvptotem.txt",
        "contents": "//legacy item\nactor FishermanTotemItem : BaseFish\n{\ninventory.amount 1\nTranslation \"192:192=84:84\", \"198:198=93:93\"\ninventory.icon \"FISHTM\"\ninventory.pickupmessage \"Picked up a Fisherman's totem!\"\ntag \"Fisherman's Totem (Fish 3 times in my sight for protection)\"\nstates\n{\nSpawn:\nFIS2 P 2400\nstop\nUse:\nTNT1 A 0 A_JumpIFInventory(\"UsingTotem\", 1, \"TooSoon\")\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"TooSoon\")\nTNT1 A 0 A_GiveInventory(\"UsingTotem\", 1)\nTNT1 A 0 A_SpawnItemEx(\"FishermanTotem\", 0, 0, 32, 5,0,0,0, SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION)\nfail\nTooSoon:\nTNT1 A 0\nfail\n}\n}\n\nactor UsingTotem : Once {}\n\nactor TotemFishedCount : FishedCount{}\n\nactor FishermanTotem\n{\n+MISSILE\nscale 1.5\n-SOLID\nheight 4\nradius 4\nstates\n{\nSpawn:\nFIS2 P 0\nFIS2 P 0 A_ChangeFlag(\"MISSILE\",0)\nFIS2 P 1 A_TakeFromTarget(\"TotemFishedCount\", 999999)\nSeek:\nFIS2 P 35\nFIS2 P 1 A_JumpIfInTargetInventory(\"TotemFishedCount\", 3, \"Enable\")\nCheckRange:\nFIS2 P 1 A_JumpIfCloser(256, \"Seek\")\nFade:\nFIS2 P 0 A_TakeFromTarget(\"IsInTotemRadius\", 999)\n//FIS2 P 0 A_TakeFromTarget(\"FishermanTotemItem\", 999)\nFIS2 P 0 A_TakeFromTarget(\"TotemFishedCount\", 999)\nFIS2 P 0 A_TakeFromTarget(\"PVPProtection\", 999)\nFIS2 P 0 A_TakeFromTarget(\"PVPNoDamage\", 999)\nFIS2 P 0 A_TakeFromTarget(\"UsingTotem\", 999)\nFIS2 P 0 A_GiveToTarget(\"FishCooldown\", 1)\nFading:\nFIS2 P 1 A_FadeOut(0.1)\nloop\n\nEnable:\nFIS2 P 1 A_PlaySoundEx(\"pvptotem/enable\", \"Voice\")\nSeek2:\nFIS2 P 0 A_GiveToTarget(\"TotemInventory\", 1)\nFIS2 P 32 A_SpawnItemEx(\"TotemSparkleFX\", random(-1,0), random(-1,0), 32,0,0,0,0,SXF_CLIENTSIDE)\nFIS2 P 1 A_JumpIfCloser(256, \"Seek2\")\nFIS2 P 1 A_JumpIfInTargetInventory(\"IsFishing\", 1, \"Seek2\")\nGoto Fade2\nFade2:\nFIS2 P 1 A_PlaySoundEx(\"pvptotem/disable\", \"Voice\")\nGoto Fade\nDeath:\nFIS2 P 1\nGoto Fade\n}\n}\n\nactor TotemSparkleFX : RoyalShrimpSparkleFX\n{\nscale 1.0\n}\n\nactor TotemInventory : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"FishIsMurderer\", 1, \"No\")\nTNT1 A 0 A_GiveInventory(\"IsInTotemRadius\", 1)\nTNT1 A 0 A_JumpIfInventory(\"TotemFishedCount\", 3, \"PVPProtect\")\nstop\nPVPProtect:\nTNT1 A 0 A_GiveInventory(\"PVPProtection\", 1)\nTNT1 A 0 A_GiveInventory(\"PVPNoDamage\", 1)\nstop\nNo:\nTNT1 A 0\nstop\n}\n}\n\nactor IsInTotemRadius : Powerup\n{\npowerup.duration -1\n}"
      },
      {
        "source": "pk3",
        "name": "actors/Squid.txt",
        "contents": "//Runes\n\nactor Fish_Squid : BaseFish\n{\ninventory.amount 5\ninventory.usesound \"fish/setrune\"\nstates\n{\nSpawn:\nFISI B 2400\nstop\nDropFish:\nFISI B 0 A_SpawnItemEx(\"Fish_Squid\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 100) // exp to give\nstop\n}\n}\n\nactor Fish_ExcitableSquid : Fish_Squid\n{\ntranslation \"192:192=160:160\", \"198:198=162:162\"\ninventory.icon \"FISHIC21\"\ninventory.pickupmessage \"Picked up a Excitable Squid!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI B 0 A_SpawnItemEx(\"Fish_ExcitableSquid\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 C 0 A_GiveInventory(\"SquidSpeed\", 1)\nstop\n}\n}\n\nactor SquidSpeed : PowerSpeed\n{\npowerup.duration -180\nspeed 1.5\n}\n\nactor Fish_SnugglySquid : Fish_Squid\n{\ntranslation \"192:192=33:33\", \"198:198=238:238\"\ninventory.icon \"FISHIC22\"\ninventory.pickupmessage \"Picked up a Snuggly Squid!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI B 0 A_SpawnItemEx(\"Fish_SnugglySquid\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 C 0 A_GiveInventory(\"SquidRegen\", 1)\nstop\n}\n}\n\nactor SquidRegen : PowerRegeneration\n{\npowerup.duration -180\npowerup.strength 2\n}\n\nactor Fish_ShySquid : Fish_Squid\n{\ntranslation \"192:192=90:90\", \"198:198=3:3\"\ninventory.icon \"FISHIC23\"\nrenderstyle translucent\nalpha 0.5\ninventory.pickupmessage \"Picked up a Shy Squid!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI B 0 A_SpawnItemEx(\"Fish_ShySquid\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 C 0 A_GiveInventory(\"SquidShadow\", 1)\nstop\n}\n}\n\nactor SquidShadow : PowerInvisibility\n{\npowerup.duration -180\nPowerup.Strength 95\nPowerup.Mode \"Translucent\"\n}\n\nactor Fish_CourageousSquid : Fish_Squid\n{\ntranslation \"192:192=104:104\", \"198:198=111:111\"\ninventory.icon \"FISHIC24\"\ninventory.pickupmessage \"Picked up a Courageous Squid!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI B 0 A_SpawnItemEx(\"Fish_CourageousSquid\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 C 0 A_GiveInventory(\"SquidInvul\", 1)\nstop\n}\n}\n\nactor SquidInvul : PowerInvulnerable\n{\nPowerup.Color GreenMap\npowerup.duration -15\n}\n\nactor Fish_FerociousSquid : Fish_Squid\n{\ntranslation \"192:192=177:177\", \"198:198=187:187\"\ninventory.icon \"FISHIC25\"\ninventory.pickupmessage \"Picked up a Ferocious Squid!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI B 0 A_SpawnItemEx(\"Fish_FerociousSquid\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 C 0 A_GiveInventory(\"SquidDouble\", 1)\nstop\n}\n}\n\nactor SquidDouble : PowerDoubleFiringSpeed\n{\npowerup.duration -180\n}\n\nactor Fish_TroubledSquid : Fish_Squid\n{\ntranslation \"192:192=4:4\", \"198:198=172:172\"\ninventory.icon \"FISHIC26\"\ninventory.pickupmessage \"Picked up a Troubled Squid!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI B 0 A_SpawnItemEx(\"Fish_TroubledSquid\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 C 0 A_GiveInventory(\"SquidSpeedR\", 1)\nstop\n}\n}\n\nactor SquidSpeedR : PowerSpeed\n{\npowerup.duration -180\nspeed -2.2\n}\n\nactor Fish_StalkerSquid : Fish_Squid\n{\ntranslation \"192:192=12:12\", \"198:198=107:107\"\ninventory.icon \"FISHIC83\"\ninventory.pickupmessage \"Picked up a Stalker Squid!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI B 0 A_SpawnItemEx(\"Fish_StalkerSquid\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 C 0 A_GiveInventory(\"AllMap\", 1)\nTNT1 C 0 A_GiveInventory(\"PowerScanner\", 1)\nstop\n}\n}\n\nactor Fish_TerrorSquid : Fish_Squid\n{\ntranslation \"192:193=195:195\", \"198:198=240:240\"\ninventory.icon \"FISHIE04\"\ninventory.pickupmessage \"Picked up a Terror Squid!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI B 0 A_SpawnItemEx(\"Fish_TerrorSquid\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 C 0 A_GiveInventory(\"SquidFright\", 1)\nstop\n}\n}\n\nactor SquidFright : PowerFrightener\n{\npowerup.duration -180\n}\n\nactor Fish_VampireSquid : Fish_Squid\n{\ntranslation \"192:192=63:63\", \"198:198=187:187\"\ninventory.icon \"FISHIE05\"\ninventory.pickupmessage \"Picked up a Vampire Squid!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI B 0 A_SpawnItemEx(\"Fish_VampireSquid\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 C 0 A_GiveInventory(\"SquidVampire\", 1)\nstop\n}\n}\n\nactor SquidVampire : PowerDrain\n{\npowerup.duration -90\nPowerup.Strength 0.05\n}"
      },
      {
        "source": "pk3",
        "name": "actors/Seahorse.txt",
        "contents": "actor FishSeahorseActivate : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_PlaySoundEx(\"fish/setfire\", \"Weapon\")\nTNT1 A 0 A_GiveInventory(\"FishCooldown\", 1)\nstop\n}\n}\n\nactor Fish_SeaHorse : BaseFish\n{\ninventory.amount 1\ninventory.usesound \"\"\nstates\n{\nSpawn:\nFISI F 2400\nstop\nDropFish:\nFISI F 0 A_SpawnItemEx(\"Fish_SeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nFeedPet:\nTNT1 A 0 A_JumpIf(CallACS(\"hfish_getfishinfo\", 6, 0) == 0, \"NoDrop\")\nTNT1 A 0 ACS_NamedExecuteAlways(\"hfish_petexp\", 0, 50) // exp to give\nstop\n}\n}\n\nactor Fish_VoidSeaHorse : Fish_SeaHorse\n{\ntranslation \"192:192=7:7\", \"198:198=239:239\"\ninventory.icon \"FISHIC11\"\ninventory.pickupmessage \"Picked up a Void Seahorse!\"\nstates\n{\nDropFish:\nFISI F 0 A_SpawnItemEx(\"Fish_VoidSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)//A_DropItem(\"Fish_VoidSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 A 0 A_FireCustomMissile(\"VoidFist\",0,0,8,0)\nTNT1 A 0 A_GiveInventory(\"FishSeahorseActivate\", 1)\nstop\n}\n}\n\nactor Fish_DeepSeaHorse : Fish_SeaHorse\n{\n//translation \"192:192=199:199\", \"198:198=198:198\"\ninventory.icon \"FISHIC12\"\ninventory.pickupmessage \"Picked up a Deep sea Seahorse!\"\nstates\n{\nDropFish:\nFISI F 0 A_SpawnItemEx(\"Fish_DeepSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 A 0 A_FireCustomMissile(\"DeepSeaSpoutSpawn\",0,0,8,0)\nTNT1 A 0 A_GiveInventory(\"FishCooldown\", 1)\nstop\n}\n}\n\nactor Fish_BeamSeaHorse : Fish_SeaHorse\n{\ntranslation \"192:192=41:41\", \"198:198=4:4\"\ninventory.icon \"FISHID99\"\ninventory.pickupmessage \"Picked up a Beam Seahorse!\"\nstates\n{\nDropFish:\nFISI F 0 A_SpawnItemEx(\"Fish_BeamSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 A 0 A_FireCustomMissile(\"SeahorseLaser\",0,0,8,0)\nTNT1 A 0 A_GiveInventory(\"FishSeahorseActivate\", 1)\nstop\n}\n}\n\nactor Fish_BasiliskSeaHorse : Fish_SeaHorse\n{\nTranslation \"198:198=65:65\", \"192:192=60:60\"\ninventory.icon \"FISHIE01\"\ninventory.pickupmessage \"Picked up a Basilisk Seahorse!\"\nstates\n{\nDropFish:\nFISI F 0 A_SpawnItemEx(\"Fish_BasiliskSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 A 0 A_FireCustomMissile(\"BasiliskRing\",0,0,8,0)\nTNT1 A 0 A_FireCustomMissile(\"BasiliskRing\",15,0,8,0)\nTNT1 A 0 A_FireCustomMissile(\"BasiliskRing\",-15,0,8,0)\nTNT1 A 0 A_GiveInventory(\"FishSeahorseActivate\", 1)\nstop\n}\n}\n\nactor Fish_WolfSeaHorse : Fish_SeaHorse\n{\ntranslation \"198:198=62:62\", \"192:192=95:95\"\ninventory.icon \"FISHIE02\"\ninventory.pickupmessage \"Picked up a Wolf Seahorse!\"\nstates\n{\nDropFish:\nFISI F 0 A_SpawnItemEx(\"Fish_WolfSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 A 0 A_SpawnItemEx(\"WolfRainSpawner\", 0, 9, 67, 0, 0, 50)\nTNT1 A 0 A_GiveInventory(\"FishSeahorseActivate\", 1)\nstop\n}\n}\n\nactor Fish_ProtoSeaHorse : Fish_SeaHorse\n{\nTranslation \"192:192=108:108\", \"198:198=110:110\"\ninventory.icon \"FISHIE03\"\ninventory.pickupmessage \"Picked up a Proto Seahorse!\"\nstates\n{\nDropFish:\nFISI F 0 A_SpawnItemEx(\"Fish_ProtoSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 A 0 A_FireCustomMissile(\"SeahorseProto\",0,0,8,0)\nTNT1 A 0 A_GiveInventory(\"FishSeahorseActivate\", 1)\nstop\n}\n}\n\nactor Fish_SniperSeaHorse : Fish_SeaHorse\n{\ntranslation \"192:192=229:229\", \"198:198=232:23\"\ninventory.icon \"FISHIC14\"\ninventory.pickupmessage \"Picked up a Sniper Seahorse!\"\ninventory.amount 1\nstates\n{\nDropFish:\nFISI F 0 A_SpawnItemEx(\"Fish_SniperSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 A 0 A_FireBullets(0, 0, 1, 7, \"SniperSeahorsePuff\", 0)\nTNT1 A 0 A_GiveInventory(\"FishSeahorseActivate\", 1)\nstop\n}\n}\n\nactor SniperSeahorsePuff : BulletPuff\n{\nalpha 1.0\nvspeed 0\n+NOINTERACTION\n+NOGRAVITY\nscale 2.5\ndamagetype \"Misc\"\nobituary \"%o was sniped by %k's Sniper Seahorse.\"\n\tstates\n\t{\n\tSpawn:\n\tSee:\n\tMMFX B 0\n\tMMFX B 0 A_PlaySoundEx(\"fish/snipershot\", \"Voice\")\n\tMMFX BCDE 4\n\tstop\n\t}\n}\n\nactor VoidFist : EvilGigaFist\n{\n-RIPPER\nDamage (10)\ndamagetype \"DuoFist\"\nObituary \"%o was corrupted by %k's Evil Fist.\"\nStates\n{\nSpawn:\nGIGF F 2\nGIGF F 1 A_SpawnItemEx(\"EvilGigaFistFX\",64,0,0,momx/7,momy/7,momz/7,0,SXF_ABSOLUTEMOMENTUM)\nGIGF G 2\nloop\n}\n}\n\nactor DeepSeaSpoutSpawn : FastProjectile\n{\nTranslation \"199:199=204:204\", \"202:202=202:202\"\n+SKYEXPLODE\n//+RIPPER\n+THRUGHOST\n//+THRUACTORS\n+DONTBLAST\n+DONTREFLECT\n//+FLOORHUGGER\nradius 8\nheight 12\nspeed 1000\ndamage (0)\nreactiontime 5\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 A_CountDown\nloop\nDeath:\nTNT1 A 0 A_SpawnItemEx(\"DeepSeaSpout\",0,0,0,0,0,0,0,1)\nstop\nXDeath:\nTNT1 A 0 A_SpawnItemEx(\"DeepSeaSpout\",6,0,0,0,0,0,0,1)\nstop\n}\n}\nactor DeepSeaSpout : DeltaWaterSpout\n{\nPROJECTILE\n//+NOINTERACTION\n-NOGRAVITY\n+RIPPER\n+THRUGHOST\n+FLOORHUGGER\n+DONTBLAST\n+DONTREFLECT\n+THRUACTORS\ngravity 999.0\ndamagetype \"MWSLift\"\ndeathtype \"GravityHold\"\nObituary \"%o was propelled sky high by %k's Water Pillar.\"\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SpawnItemEx(\"DeltaWaterNoiseMaker\")\nTNT1 A 0 A_ChangeFlag(\"MISSILE\",0)\nTNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx(\"MegaWaterSplashFX2\",0,0,0,random(-5,5),random(-5,5),random(5,10))\nTNT1 AAAAAAAAAAA 0 A_SpawnItemEx(\"MegaWaterSplashFX2\",0,0,0,random(-10,10),random(-10,10),20)\nMWSZ H 0 A_PlaySoundEx(\"misc/mwsburst\",\"Weapon\")\nMWSS ABCDEFG 1 A_Explode(1,180,0)\nBurst:\nMWSS H 0 A_Explode(7,128,0)\nMWSS H 0 A_GiveInventory(\"CutterFlag\",1)\nMWSS HIJ 2\nMWSS H 0 A_JumpIfInventory(\"CutterFlag\",15,\"Death\")\nloop\n}\n}\n\nactor SeahorseLaser : DevilLaser\n{\ndamagetype \"DevilLaser\"\nobituary \"%o beamed on by %k.\"\nStates\n{\nSpawn:\nYBIT GGG 1 A_SpawnItemEx(\"DevilLaserFX\")\nYBIT G 0 A_ChangeFlag(\"NOINTERACTION\",0)\nloop\n}\n}\n\nactor BasiliskRing : DarkStunner\n{\nObituary \"%k ran rings around %o with Dark Rings.\"\n}\n\nactor WolfRainSpawner : Bass2RainSpawner\n{\n+SKYEXPLODE\nStates\n{\nDeath:\nBSB2 EFGHEF 5 A_FadeOut\nBSB0 K 0 A_SpawnItemEx(\"WolfRain1\", 96, 0, 0, 0, 0, -5, 0)\nBSB0 K 0 //A_SpawnItemEx(\"WolfRain1\", 96, 0, 0, 0, 0, -5, 22.5)\nBSB0 K 0 A_SpawnItemEx(\"WolfRain1\", 96, 0, 0, 0, 0, -5, 45)\nBSB0 K 0 //A_SpawnItemEx(\"WolfRain1\", 96, 0, 0, 0, 0, -5, 67.5)\nBSB0 K 0 A_SpawnItemEx(\"WolfRain1\", 96, 0, 0, 0, 0, -5, 90)\nBSB0 K 0 //A_SpawnItemEx(\"WolfRain1\", 96, 0, 0, 0, 0, -5, 112.5)\nBSB0 K 0 A_SpawnItemEx(\"WolfRain1\", 96, 0, 0, 0, 0, -5, 135)\nBSB0 K 0 //A_SpawnItemEx(\"WolfRain1\", 96, 0, 0, 0, 0, -5, 157.5)\nBSB0 K 0 A_SpawnItemEx(\"WolfRain1\", 96, 0, 0, 0, 0, -5, 180)\nBSB0 K 0 //A_SpawnItemEx(\"WolfRain1\", 96, 0, 0, 0, 0, -5, 202.5)\nBSB0 K 0 A_SpawnItemEx(\"WolfRain1\", 96, 0, 0, 0, 0, -5, 225)\nBSB0 K 0 //A_SpawnItemEx(\"WolfRain1\", 96, 0, 0, 0, 0, -5, 247.5)\nBSB0 K 0 A_SpawnItemEx(\"WolfRain1\", 96, 0, 0, 0, 0, -5, 270)\nBSB0 K 0 //A_SpawnItemEx(\"WolfRain1\", 96, 0, 0, 0, 0, -5, 292.5)\nBSB0 K 0 A_SpawnItemEx(\"WolfRain1\", 96, 0, 0, 0, 0, -5, 315)\nBSB0 K 0 //A_SpawnItemEx(\"WolfRain1\", 96, 0, 0, 0, 0, -5, 337.5)\nstop\n}\n}\nactor WolfRain1 : Bass2Rain\n{\ndamagetype \"BassBoom\"\nObituary \"%o faced the true power of %k.\"\nStates\n{\nSpawn:\nBASB A 0\nBASB A 0 A_SpawnItemEx(\"WolfRain2\", 128, 0, 0, 0, 0, -5)\nBSB2 KLMNKL 4 A_FadeIn\nBSB2 G 0 A_GiveInventory(\"WeaponCharge\", 1)\nBSB2 G 0 A_ScaleVelocity(6.0)\ngoto SpawnLoop\n}\n}\nactor WolfRain2 : WolfRain1\n{\nStates\n{\nSpawn:\nBASB A 0\nBSB2 KLMNKL 4 A_FadeIn\nBSB2 G 0 A_ScaleVelocity(6.0)\ngoto SpawnLoop\nSpawnLoop:\nBSB2 KLMN 4\nloop\nDeath:\nBASB A 0 A_PlaySoundEx(\"misc/mm3explosion\", \"auto\")\nTNT1 A 0 A_ChangeFlag(FLOORHUGGER, true)\nTNT1 A 0 A_Explode(15, 48, 0, 0, 48)\nBSB2 OPQ 2\nBSB2 RST 2 A_FadeOut(0.2)\nstop\n}\n}\n\nactor SeahorseProto : ProtoShotBoss\n{\n//-RIPPER\n//Obituary \"%o was struck down by %k's Proto Strike.\"\n}\n\nactor Fish_WideSeaHorse : Fish_SeaHorse\n{\ntranslation \"192:192=75:75\", \"198:198=229:229\"\ninventory.icon \"FISHID83\"\ninventory.pickupmessage \"Picked up a Wide Seahorse!\"\nstates\n{\nDropFish:\nFISI F 0 A_SpawnItemEx(\"Fish_WideSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nHSHH O 0 A_FireCustomMissile(\"WideSeaHorseShot\",0,0,8,0)\nHSHH OOOOOOOOOOOO 0 A_FireCustomMissile(\"WideSeaHorseShot\",random(-7,7),0,8,0,0,random(-5,5))\nTNT1 A 0 A_GiveInventory(\"FishSeahorseActivate\", 1)\nstop\n}\n}\n\nactor WideSeaHorseShot : BassShot { speed 30}\n\nactor Fish_StoneSeaHorse : Fish_SeaHorse\n{\ntranslation \"192:192=94:94\", \"198:198=85:85\"\ninventory.icon \"FISHIC13\"\ninventory.pickupmessage \"Picked up a Stone Seahorse!\"\nstates\n{\nDropFish:\nFISI F 0 A_SpawnItemEx(\"Fish_StoneSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 AAA 0 A_FireCustomMissile(\"ConcreteShot\",random(-8,8),0,8,0,2, random(-2, 4))\nTNT1 A 0 A_GiveInventory(\"FishSeahorseActivate\", 1)\nstop\n}\n}\n\nactor Fish_GlowingSeaHorse : Fish_SeaHorse\n{\ntranslation \"192:192=160:160\", \"198:198=4:4\"\ninventory.icon \"FISHID84\"\ninventory.pickupmessage \"Picked up a Glowing Seahorse!\"\nstates\n{\nDropFish:\nFISI F 0 A_SpawnItemEx(\"Fish_GlowingSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 A 0 A_FireCustomMissile(\"GlowingSeaHorseBomb\",0,0,8,0)\nTNT1 A 0 A_GiveInventory(\"FishSeahorseActivate\", 1)\nstop\n}\n}\n\nactor GlowingSeaHorseBomb\n{\nPROJECTILE\nscale 1.8\nrenderstyle translucent\nalpha 0.9\n-NOGRAVITY\ndamage (8)\ndamagetype \"FlashStopper\"\nObituary \"%o was blinded by %k's glowing seahorse.\"\ntranslation \"192:207=160:160\", \"236:239=160:160\"\nspeed 20\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 ThrustThingZ(0, 20, 0, 1)\nSpawnLoop:\nCRYE A 3\nloop\nDeath:\nTNT1 A 0 A_PlaySoundEx(\"weapon/centaurflash\", \"Voice\")\nTNT1 A 0 A_Explode(5, 256, 0, 0, 5)\nTNT1 A 0 A_SpawnItemEx(\"GlowingSeaHorseBombFX\", 0, 0, 0 ,0 ,0 ,0 ,0, SXF_TRANSFERTRANSLATION)\nTNT1 A 1 A_SpawnItemEx(\"SharkTorpedoDeath\")\nstop\n}\n}\n\nactor GlowingSeaHorseBombFX : FlashStopperFX\n{\nscale 2.0\n}\n\nactor Fish_FierySeaHorse : Fish_SeaHorse\n{\ntranslation \"192:192=227:227\", \"198:198=229:229\"\ninventory.icon \"FISHIC08\"\ninventory.pickupmessage \"Picked up a Fiery Seahorse!\"\nstates\n{\nDropFish:\nFISI F 0 A_SpawnItemEx(\"Fish_FierySeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 A 0 A_SpawnItemEx(\"fierySeaHorseFireWarper\", 0, 0, 48)\nTNT1 A 0 A_GiveInventory(\"FishSeahorseActivate\", 1)\nstop\n}\n}\n\nactor fierySeaHorseFireWarper\n{\nPROJECTILE\n+NOINTERACTION\nheight 2\nradius 2\nreactiontime 20\nstates\n{\nSpawn:\nTNT1 A 0 A_GiveToTarget(\"fierySeaHorseFireGiver\", 1)//A_SpawnITemEx(\"fierySeaHorseFlame\"\nTNT1 A 2 A_Countdown\nloop\n}\n}\n\nactor fierySeaHorseFireGiver : CustomInventory { states {\nPickup: TNT1 A 0 A_FireCustomMissile(\"fierySeaHorseFire\", random(-6,6), 0, 0, 8) }}\n\nactor fierySeaHorseFire\n{\nPROJECTILE\nspeed 12\nscale 0.5\nradius 10\nheight 10\ndamage (1)\ndamagetype \"Misc\"\n+RIPPER\ntranslation \"192:192=218:218\", \"198:198=227:227\"\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_PlaySoundEx(\"weapon/waveburner\", 0)\nF2FX STUVSTUV 2 A_SetScale(scalex + 0.3, scaley + 0.3)\nSpawnLoop:\nF2FX STUV 2 A_FadeOut(0.25)\nloop\n}\n}\n\nactor Fish_FrozenSeaHorse : Fish_SeaHorse\n{\ntranslation \"192:192=192:192\", \"198:198=202:202\"\ninventory.icon \"FISHIC09\"\ninventory.pickupmessage \"Picked up a Frozen Seahorse!\"\nstates\n{\nDropFish:\nFISI F 0 A_SpawnItemEx(\"Fish_FrozenSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 A 0 A_SpawnItemEx(\"IceWaveDropper\", 0, 0, 0)\nTNT1 A 0 A_SpawnItemEx(\"IceWaveDropper\", 0, 48, 48)\nTNT1 A 0 A_SpawnItemEx(\"IceWaveDropper\", 0, -48, 48)\nTNT1 A 0 A_GiveInventory(\"FishSeahorseActivate\", 1)\nstop\n}\n}\n\nactor Fish_ShockedSeaHorse : Fish_SeaHorse\n{\ntranslation \"192:192=229:229\", \"198:198=4:4\"\ninventory.icon \"FISHIC10\"\ninventory.pickupmessage \"Picked up a Shocked Seahorse!\"\nstates\n{\nDropFish:\nFISI F 0 A_SpawnItemEx(\"Fish_ShockedSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 A 0 A_FireCustomMissile(\"LightningBoltTracer\", 0, 0, 0, 0, 2, 0)\nTNT1 A 0 A_GiveInventory(\"FishSeahorseActivate\", 1)\nstop\n}\n}\n\n/*\n\nactor Fish_GrowingSeaHorse : Fish_SeaHorse\n{\ntranslation \"192:192=112:112\", \"198:198=104:104\"\ninventory.icon \"FISHIC69\"\ninventory.pickupmessage \"Picked up a Growing Seahorse!\"\nstates\n{\nDropFish:\nFISI F 0 A_SpawnItemEx(\"Fish_GrowingSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nfail\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"WoodmanMain1_CI\",1)\nTNT1 A 0 A_GiveInventory(\"FishSeahorseActivate\", 1)\nstop\n}\n}\n\nactor Fish_FighterSeaHorse : Fish_SeaHorse\n{\ntranslation \"192:192=83:83\", \"198:198=177:177\"\ninventory.icon \"FISHIC70\"\ninventory.pickupmessage \"Picked up a Fighter Seahorse!\"\nstates\n{\nDropFish:\nFISI F 0 A_SpawnItemEx(\"Fish_FighterSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nfail\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 A 0 A_GiveInventory(\"RyuMainEX_CI\",1)\nTNT1 A 0 A_GiveInventory(\"FishSeahorseActivate\", 1)\nstop\n}\n}\n\nactor Fish_SeekerSeaHorse : Fish_SeaHorse\n{\ntranslation \"192:192=194:194\", \"198:198=104:104\"\ninventory.icon \"FISHIC71\"\ninventory.pickupmessage \"Picked up a Seeker Seahorse!\"\nstates\n{\nDropFish:\nFISI F 0 A_SpawnItemEx(\"Fish_SeekerSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nfail\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 A 0 A_FireCustomMissile(\"DiveSonar\",0,0,8,0)\nTNT1 A 0 A_GiveInventory(\"FishSeahorseActivate\", 1)\nstop\n}\n}\n\nactor Fish_AcidicSeaHorse : Fish_SeaHorse\n{\ntranslation \"192:192=106:106\", \"198:198=229:229\"\ninventory.icon \"FISHID85\"\ninventory.pickupmessage \"Picked up a Acidic Seahorse!\"\nstates\n{\nDropFish:\nFISI F 0 A_SpawnItemEx(\"Fish_AcidicSeaHorse\", 50, 0, 32, frandom(0,2), frandom(-1,1), 0, 10, SXF_NOCHECKPOSITION)\nstop\nfail\nUseF:\nTNT1 A 0 A_JumpIFInventory(\"FishCooldown\", 1, \"Failure\")\nTNT1 A 0 A_FireCustomMissile(\"VenusAcidBubble\",0,0,8,0)\nTNT1 A 0 A_GiveInventory(\"FishSeahorseActivate\", 1)\nstop\n}\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.