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": []
}