FILES ----- player.config universe_server.config ai\enableteleporter.aicommand ai\givebeamaxe.aicommand ai\upgradebeamaxe1.aicommand ai\upgradebeamaxe2.aicommand ai\upgradebeamaxe3.aicommand ai\upgradebeamaxe4.aicommand ai\upgradebeamaxe5.aicommand ai\upgradebeamaxeliquid.aicommand ai\upgradeship1.aicommand ai\upgradeship2.aicommand ai\upgradeship3.aicommand [NEW] ai\upgradeship4.aicommand [NEW] ai\upgradeship5.aicommand [NEW] ai\upgradeship6.aicommand [NEW] ai\upgradeship7.aicommand [NEW] ai\upgradeship8.aicommand [NEW] cinematics\obtained.png [NEW] cinematics\licenses\gravgunlarge.png [NEW] cinematics\licenses\license1.cinematic [NEW] cinematics\licenses\license1.png [NEW] cinematics\licenses\license2.cinematic [NEW] cinematics\licenses\license2.png [NEW] cinematics\licenses\license3.cinematic [NEW] cinematics\licenses\license3.png [NEW] cinematics\licenses\license4.cinematic [NEW] cinematics\licenses\license4.png [NEW] cinematics\licenses\license5.cinematic [NEW] cinematics\licenses\license5.png dungeons\apex\apextestchamber\apextestchamber.dungeon dungeons\missions\floranmissions\floranmission1-liquids.png dungeons\missions\floranmissions\floranmission1-objects.png dungeons\missions\floranmissions\floranmission1-wires1.png dungeons\missions\floranmissions\floranmission1.dungeon dungeons\missions\floranmissions\floranmission1.png dungeons\other\outpost\outpost.dungeon dungeons\other\outpost\outpoststatic-objects.png [NEW] humanoid\penguin\backarm.frames [NEW] humanoid\penguin\backarm.png [NEW] humanoid\penguin\dead.png [NEW] humanoid\penguin\emote.png [NEW] humanoid\penguin\femalebody.png [NEW] humanoid\penguin\femalehead.png [NEW] humanoid\penguin\frontarm.frames [NEW] humanoid\penguin\frontarm.png [NEW] humanoid\penguin\malebody.png [NEW] humanoid\penguin\malehead.png [NEW] humanoid\penguin\hair\default.frames [NEW] humanoid\penguin\hair\fem0.png [NEW] humanoid\penguin\hair\male0.png [NEW] interface\lockicon.png interface\ai\ai.config interface\crafting\researchbody.png [NEW] interface\title\penguinfemale.png [NEW] interface\title\penguinmale.png items\armors\backitems\tigertail\tigertail.back items\armors\biome\bone\skullapex\skullapex.head items\armors\biome\bone\skullfloran\skullfloran.head items\armors\biome\bone\skullglitch\skullglitch.head items\armors\biome\bone\skullhuman\skullhuman.head items\armors\biome\bone\skullhylotl\skullhylotl.head items\armors\biome\ocean\deepdiver\deepdiver.head items\armors\biome\tar\sabertoothhelm\sabertoothhelm.head items\armors\decorative\costumes\predatory\back.png items\armors\decorative\costumes\predatory\bsleeve.png items\armors\decorative\costumes\predatory\chestf.png items\armors\decorative\costumes\predatory\chestm.png items\armors\decorative\costumes\predatory\fsleeve.png items\armors\decorative\costumes\predatory\icons.png items\armors\decorative\costumes\predatory\pants.png items\armors\decorative\costumes\predatory\predatory.back items\armors\decorative\costumes\predatory\predatory.chest items\armors\decorative\costumes\predatory\predatory.legs items\armors\decorative\hats\reed\reed.head items\armors\decorative\hats\tiger\tiger.head [NEW] items\armors\decorative\hats\vicious\head.png [NEW] items\armors\decorative\hats\vicious\icons.png [NEW] items\armors\decorative\hats\vicious\mask.png [NEW] items\armors\decorative\hats\vicious\vicious.head items\armors\decorative\hats\vikinghelmet\vikinghelmet.head [NEW] items\generic\other\valentinechocolates.consumable [NEW] items\generic\other\valentinechocolates.png items\generic\tier1\corncob.png items\generic\tier1\fishpie.png items\generic\tier1\meatpie.png items\generic\tier1\pearlpearisotto.png items\generic\tier2\applecrumble.png items\generic\tier2\beakseedjam.png items\generic\tier2\beakseedtart.png items\generic\tier2\cake.png items\generic\tier2\carrotcake.png items\generic\tier2\carrotjuice.png items\generic\tier2\carrotsoup.png items\generic\tier2\chocolatecake.png [NEW] items\generic\tier2\choconut.consumable [NEW] items\generic\tier2\choconut.png items\generic\tier2\cornpeckers.png items\generic\tier2\feathercrownjam.png items\generic\tier2\featherfood.consumable items\generic\tier2\flatwhite.consumable items\generic\tier2\flatwhite.png items\generic\tier2\fluffyruffs.consumable items\generic\tier2\gardensalad.consumable items\generic\tier2\kiwijam.consumable items\generic\tier2\kiwijam.png items\generic\tier2\kiwijuice.png items\generic\tier2\mocha.consumable items\generic\tier2\mocha.png items\generic\tier2\mushroomquiche.consumable items\generic\tier2\mushroomrice.consumable items\generic\tier2\mushroomrice.png items\generic\tier2\pasty.consumable items\generic\tier2\pearlpeajam.consumable items\generic\tier2\pearlpeajam.png items\generic\tier2\pizza.png items\generic\tier2\porridge.png items\generic\tier2\quichelorraine.consumable items\generic\tier2\relish.consumable items\generic\tier2\relish.png items\generic\tier2\ricepudding.png items\generic\tier2\specialrice.png items\generic\tier2\spikycookies.consumable items\generic\tier2\stickyribs.consumable items\generic\tier2\stickyribs.png items\generic\tier2\stuffedtomato.consumable items\generic\tier2\sweetpopcorn.consumable items\generic\tier2\sweetpopcorn.png items\generic\tier2\tomatojuice.png items\generic\tier2\tomatosoup.consumable items\generic\tier2\tomatosoup.png [NEW] items\generic\tier3\2kbpotage.consumable [NEW] items\generic\tier3\2kbpotage.png [NEW] items\generic\tier3\apegrapes.consumable [NEW] items\generic\tier3\apegrapes.png [NEW] items\generic\tier3\apexfritter.consumable [NEW] items\generic\tier3\apexfritter.png items\generic\tier3\automatoshake.consumable [NEW] items\generic\tier3\automatostew.consumable [NEW] items\generic\tier3\automatostew.png [NEW] items\generic\tier3\bananacon.consumable [NEW] items\generic\tier3\bananacon.png [NEW] items\generic\tier3\bananacreamdonut.consumable [NEW] items\generic\tier3\bananaicecream.consumable [NEW] items\generic\tier3\batteredbanana.consumable [NEW] items\generic\tier3\batteredbanana.png [NEW] items\generic\tier3\cactiicecream.consumable [NEW] items\generic\tier3\campfirebanana.consumable [NEW] items\generic\tier3\campfirebanana.png [NEW] items\generic\tier3\candyautomato.png [NEW] items\generic\tier3\coconuticecream.consumable [NEW] items\generic\tier3\coconutrice.consumable [NEW] items\generic\tier3\coconutrice.png [NEW] items\generic\tier3\desertsalsa.consumable [NEW] items\generic\tier3\desertsalsa.png [NEW] items\generic\tier3\fishinabone.consumable [NEW] items\generic\tier3\fishinabone.png [NEW] items\generic\tier3\fruitsalad.consumable [NEW] items\generic\tier3\fruitsalad.png [NEW] items\generic\tier3\luckydip.consumable [NEW] items\generic\tier3\luckydip.png [NEW] items\generic\tier3\pineapplejam.consumable [NEW] items\generic\tier3\pineapplejam.png [NEW] items\generic\tier3\pineapplepizzaslice.consumable [NEW] items\generic\tier3\pineapplepizzaslice.png [NEW] items\generic\tier3\roastdinner.consumable [NEW] items\generic\tier3\roastdinner.png [NEW] items\generic\tier3\spookydonut.consumable [NEW] items\generic\tier3\spookydonut.png [NEW] items\generic\tier3\spookypie.consumable [NEW] items\generic\tier3\spookypie.png [NEW] items\generic\tier3\stuffedautomato.consumable [NEW] items\generic\tier3\stuffedautomato.png [NEW] items\generic\tier3\sweetpunch.consumable [NEW] items\generic\tier3\thornjuice.consumable items\generic\tier3\tropicalpunch.consumable [NEW] items\generic\tier4\alienfruitjam.consumable [NEW] items\generic\tier4\brineapple.consumable [NEW] items\generic\tier4\oceanrisotto.consumable items\generic\tier4\oceanrisotto.png [NEW] items\generic\tier4\oceansurprise.consumable [NEW] items\generic\tier4\oculemonmeringue.consumable [NEW] items\generic\tier4\oculemonmeringue.png [NEW] items\generic\tier4\oculemonstew.consumable [NEW] items\generic\tier4\oculemonstew.png [NEW] items\generic\tier4\pussplumpudding.consumable [NEW] items\generic\tier4\pussplumtart.consumable items\generic\tier4\pussplumtart.png [NEW] items\generic\tier4\reefjuice.consumable items\generic\tier4\reefjuice.png items\generic\tier4\reefshake.png [NEW] items\generic\tier4\saltsalad.consumable [NEW] items\generic\tier4\saltsalad.png [NEW] items\generic\tier4\soggysack.consumable [NEW] items\generic\tier4\soggysack.png [NEW] items\generic\tier4\stuffeddirturchin.consumable [NEW] items\generic\tier4\stuffeddirturchin.png items\generic\tier4\toxicjuice.png items\generic\tier4\toxictart.png items\generic\tier4\toxictopjam.png [NEW] items\generic\tier4\volcanicsalsa.png [NEW] items\generic\tier5\16gbpasty.png [NEW] items\generic\tier5\boltos.png [NEW] items\generic\tier5\eggshootsalad.png [NEW] items\generic\tier5\eyebowls.png [NEW] items\generic\tier5\nutsandbolts.png [NEW] items\generic\tier6\coralcreepcurry.consumable [NEW] items\generic\tier6\coralcreepcurry.png [NEW] items\generic\tier6\neonmelonjam.png [NEW] items\generic\tier6\ultimatejuice.png [NEW] items\generic\tier6\wartweedjam.png items\guns\unsorted\cupidsbow\cupidsbow.gun [NEW] items\instruments\microphonefem.instrument items\swords\other\flowerbouquet.sword [NEW] items\throwables\noveltybanana.png [NEW] items\throwables\noveltybanana.thrownitem monsters\flying\skills\createflyingrangedattack.lua monsters\ground\largebiped\largebiped.animation monsters\ground\largebiped\largebiped.monstertype monsters\ground\largequadruped\largequadruped.animation monsters\ground\largequadruped\largequadruped.monstertype [NEW] monsters\ground\skills\bubbleshieldspecial.lua [NEW] monsters\ground\skills\bubbleshieldspecial.monsterskill monsters\ground\skills\creategroundrangedattack.lua monsters\ground\skills\shieldspecial.lua monsters\ground\skills\shieldspecial.monsterskill monsters\ground\skills\shieldspecial\bubbleshield.frames monsters\skills\ranged\acidicspitattack.monsterskill monsters\skills\ranged\acidsprayattack.monsterskill monsters\skills\ranged\darkplasmaattack.monsterskill monsters\skills\ranged\explosivephlegmattack.monsterskill monsters\skills\ranged\fireballattack.monsterskill monsters\skills\ranged\fireswirlattack.monsterskill [NEW] monsters\skills\ranged\plasmaburstattack.monsterskill monsters\skills\ranged\shockballattack.monsterskill monsters\skills\ranged\sonicwaveattack.monsterskill [NEW] monsters\skills\unique\poopbreathattack.monsterskill [NEW] monsters\skills\unique\throwpoattack.lua [NEW] monsters\skills\unique\throwpoattack.monsterskill [NEW] monsters\swimming\attackstate.lua monsters\swimming\fleestate.lua [NEW] monsters\swimming\flopstate.lua monsters\swimming\swimmingmonster.lua [NEW] monsters\swimming\wanderstate.lua [NEW] monsters\swimming\largefish\default.frames [NEW] monsters\swimming\largefish\largefish.animation [NEW] monsters\swimming\largefish\largefish.monstertype [NEW] monsters\swimming\largefish\fin\coelacanth\largecoelacanthbfin.png [NEW] monsters\swimming\largefish\fin\coelacanth\largecoelacanthffin.png [NEW] monsters\swimming\largefish\fin\coelacanth\largecoelacanthfin.monsterpart [NEW] monsters\swimming\largefish\fin\droplet\largedropletbfin.png [NEW] monsters\swimming\largefish\fin\droplet\largedropletffin.png [NEW] monsters\swimming\largefish\fin\droplet\largedropletfin.monsterpart [NEW] monsters\swimming\largefish\fin\fan\largefanbfin.png [NEW] monsters\swimming\largefish\fin\fan\largefanffin.png [NEW] monsters\swimming\largefish\fin\fan\largefanfin.monsterpart [NEW] monsters\swimming\largefish\fin\goldfish\largegoldfishbfin.png [NEW] monsters\swimming\largefish\fin\goldfish\largegoldfishffin.png [NEW] monsters\swimming\largefish\fin\goldfish\largegoldfishfin.monsterpart [NEW] monsters\swimming\largefish\fin\rough\largeroughbfin.png [NEW] monsters\swimming\largefish\fin\rough\largeroughffin.png [NEW] monsters\swimming\largefish\fin\rough\largeroughfin.monsterpart [NEW] monsters\swimming\largefish\fin\shark\largesharkbfin.png [NEW] monsters\swimming\largefish\fin\shark\largesharkffin.png [NEW] monsters\swimming\largefish\fin\shark\largesharkfin.monsterpart [NEW] monsters\swimming\largefish\fin\sunfish\largesunfishbfin.png [NEW] monsters\swimming\largefish\fin\sunfish\largesunfishffin.png [NEW] monsters\swimming\largefish\fin\sunfish\largesunfishfin.monsterpart [NEW] monsters\swimming\largefish\head\angler\largeanglerhead.monsterpart [NEW] monsters\swimming\largefish\head\angler\largeanglerhead.png [NEW] monsters\swimming\largefish\head\barreleye\largebarreleyehead.monsterpart [NEW] monsters\swimming\largefish\head\barreleye\largebarreleyehead.png [NEW] monsters\swimming\largefish\head\beak\largebeakhead.monsterpart [NEW] monsters\swimming\largefish\head\beak\largebeakhead.png [NEW] monsters\swimming\largefish\head\bladeplate\largebladeplatehead.monsterpart [NEW] monsters\swimming\largefish\head\bladeplate\largebladeplatehead.png [NEW] monsters\swimming\largefish\head\chuckle\largechucklehead.monsterpart [NEW] monsters\swimming\largefish\head\chuckle\largechucklehead.png [NEW] monsters\swimming\largefish\head\coelacanth\largecoelacanthhead.monsterpart [NEW] monsters\swimming\largefish\head\coelacanth\largecoelacanthhead.png [NEW] monsters\swimming\largefish\head\crazy\largecrazyhead.monsterpart [NEW] monsters\swimming\largefish\head\crazy\largecrazyhead.png [NEW] monsters\swimming\largefish\head\cuteeye\largecuteeyehead.monsterpart [NEW] monsters\swimming\largefish\head\cuteeye\largecuteeyehead.png [NEW] monsters\swimming\largefish\head\eyelash\largeeyelashhead.monsterpart [NEW] monsters\swimming\largefish\head\eyelash\largeeyelashhead.png [NEW] monsters\swimming\largefish\head\frilledkissing\largefrilledkissinghead.monsterpart [NEW] monsters\swimming\largefish\head\frilledkissing\largefrilledkissinghead.png [NEW] monsters\swimming\largefish\head\goldfish\largegoldfishhead.monsterpart [NEW] monsters\swimming\largefish\head\goldfish\largegoldfishhead.png [NEW] monsters\swimming\largefish\head\kissing\largekissinghead.monsterpart [NEW] monsters\swimming\largefish\head\kissing\largekissinghead.png [NEW] monsters\swimming\largefish\head\leech\largeleechhead.monsterpart [NEW] monsters\swimming\largefish\head\leech\largeleechhead.png [NEW] monsters\swimming\largefish\head\lipped\largelippedhead.monsterpart [NEW] monsters\swimming\largefish\head\lipped\largelippedhead.png [NEW] monsters\swimming\largefish\head\longnose\largelongnosehead.monsterpart [NEW] monsters\swimming\largefish\head\longnose\largelongnosehead.png [NEW] monsters\swimming\largefish\head\marlin\largemarlinhead.monsterpart [NEW] monsters\swimming\largefish\head\marlin\largemarlinhead.png [NEW] monsters\swimming\largefish\head\porpoise\largeporpoisehead.monsterpart [NEW] monsters\swimming\largefish\head\porpoise\largeporpoisehead.png [NEW] monsters\swimming\largefish\head\rune\largerunehead.monsterpart [NEW] monsters\swimming\largefish\head\rune\largerunehead.png [NEW] monsters\swimming\largefish\head\shark\largesharkhead.monsterpart [NEW] monsters\swimming\largefish\head\shark\largesharkhead.png [NEW] monsters\swimming\largefish\head\sharptooth\largesharptoothhead.monsterpart [NEW] monsters\swimming\largefish\head\sharptooth\largesharptoothhead.png [NEW] monsters\swimming\largefish\head\sunfish\largesunfishhead.monsterpart [NEW] monsters\swimming\largefish\head\sunfish\largesunfishhead.png [NEW] monsters\swimming\largefish\head\tall\largetallhead.monsterpart [NEW] monsters\swimming\largefish\head\tall\largetallhead.png [NEW] monsters\swimming\largefish\head\trunk\largetrunkhead.monsterpart [NEW] monsters\swimming\largefish\head\trunk\largetrunkhead.png [NEW] monsters\swimming\largefish\tail\eel\largeeeltail.monsterpart [NEW] monsters\swimming\largefish\tail\eel\largeeeltail.png [NEW] monsters\swimming\largefish\tail\fan\largefantail.monsterpart [NEW] monsters\swimming\largefish\tail\fan\largefantail.png [NEW] monsters\swimming\largefish\tail\rough\largeroughtail.monsterpart [NEW] monsters\swimming\largefish\tail\rough\largeroughtail.png [NEW] monsters\swimming\largefish\tail\shark\largesharktail.monsterpart [NEW] monsters\swimming\largefish\tail\shark\largesharktail.png [NEW] monsters\swimming\largefish\tail\small\largesmalltail.monsterpart [NEW] monsters\swimming\largefish\tail\small\largesmalltail.png [NEW] monsters\swimming\largefish\tail\smoothbetta\largesmoothbettatail.monsterpart [NEW] monsters\swimming\largefish\tail\smoothbetta\largesmoothbettatail.png [NEW] monsters\swimming\largefish\tail\sunfish\largesunfishtail.monsterpart [NEW] monsters\swimming\largefish\tail\sunfish\largesunfishtail.png [NEW] monsters\swimming\smallfish\default.frames [NEW] monsters\swimming\smallfish\fish.animation [NEW] monsters\swimming\smallfish\fish.monstertype [NEW] monsters\swimming\smallfish\fleestate.lua [NEW] monsters\swimming\smallfish\investigatestate.lua [NEW] monsters\swimming\smallfish\scatterstate.lua [NEW] monsters\swimming\smallfish\smallfish.lua [NEW] monsters\swimming\smallfish\fin\basicfin\basicfin.monsterpart [NEW] monsters\swimming\smallfish\fin\basicfin\basicfin.png [NEW] monsters\swimming\smallfish\fin\crystalfin\crystalfin.monsterpart [NEW] monsters\swimming\smallfish\fin\crystalfin\crystalfin.png [NEW] monsters\swimming\smallfish\fin\fanfin\fanfin.monsterpart [NEW] monsters\swimming\smallfish\fin\fanfin\fanfin.png [NEW] monsters\swimming\smallfish\fin\plainfin\plainfin.monsterpart [NEW] monsters\swimming\smallfish\fin\plainfin\plainfin.png [NEW] monsters\swimming\smallfish\fin\scopefin\scopefin.monsterpart [NEW] monsters\swimming\smallfish\fin\scopefin\scopefin.png [NEW] monsters\swimming\smallfish\head\anglerhead\anglerhead.monsterpart [NEW] monsters\swimming\smallfish\head\anglerhead\anglerhead.png [NEW] monsters\swimming\smallfish\head\barreleyehead\barreleyehead.monsterpart [NEW] monsters\swimming\smallfish\head\barreleyehead\barreleyehead.png [NEW] monsters\swimming\smallfish\head\blobhead\blobhead.monsterpart [NEW] monsters\swimming\smallfish\head\blobhead\blobhead.png [NEW] monsters\swimming\smallfish\head\codhead\codhead.monsterpart [NEW] monsters\swimming\smallfish\head\codhead\codhead.png [NEW] monsters\swimming\smallfish\head\eyehead\eyehead.monsterpart [NEW] monsters\swimming\smallfish\head\eyehead\eyehead.png [NEW] monsters\swimming\smallfish\head\fishhead\fishhead.monsterpart [NEW] monsters\swimming\smallfish\head\fishhead\fishhead.png [NEW] monsters\swimming\smallfish\head\gulperhead\gulperhead.monsterpart [NEW] monsters\swimming\smallfish\head\gulperhead\gulperhead.png [NEW] monsters\swimming\smallfish\head\neon1head\neon1head.monsterpart [NEW] monsters\swimming\smallfish\head\neon1head\neon1head.png [NEW] monsters\swimming\smallfish\head\neon2head\neon2head.monsterpart [NEW] monsters\swimming\smallfish\head\neon2head\neon2head.png [NEW] monsters\swimming\smallfish\head\neon3head\neon3head.monsterpart [NEW] monsters\swimming\smallfish\head\neon3head\neon3head.png [NEW] monsters\swimming\smallfish\head\pcodhead\pcodhead.monsterpart [NEW] monsters\swimming\smallfish\head\pcodhead\pcodhead.png [NEW] monsters\swimming\smallfish\head\robohead\robohead.monsterpart [NEW] monsters\swimming\smallfish\head\robohead\robohead.png [NEW] monsters\swimming\smallfish\head\squid1head\squid1head.monsterpart [NEW] monsters\swimming\smallfish\head\squid1head\squid1head.png [NEW] monsters\swimming\smallfish\head\squid2head\squid2head.monsterpart [NEW] monsters\swimming\smallfish\head\squid2head\squid2head.png [NEW] monsters\swimming\smallfish\head\squid3head\squid3head.monsterpart [NEW] monsters\swimming\smallfish\head\squid3head\squid3head.png [NEW] monsters\swimming\smallfish\head\strawhead\strawhead.monsterpart [NEW] monsters\swimming\smallfish\head\strawhead\strawhead.png [NEW] monsters\swimming\smallfish\head\swordhead\swordhead.monsterpart [NEW] monsters\swimming\smallfish\head\swordhead\swordhead.png [NEW] monsters\swimming\smallfish\tail\dualswimmertail\dualswimmertail.monsterpart [NEW] monsters\swimming\smallfish\tail\dualswimmertail\dualswimmertail.png [NEW] monsters\swimming\smallfish\tail\fantail\fantail.monsterpart [NEW] monsters\swimming\smallfish\tail\fantail\fantail.png [NEW] monsters\swimming\smallfish\tail\fishtail\fishtail.monsterpart [NEW] monsters\swimming\smallfish\tail\fishtail\fishtail.png [NEW] monsters\swimming\smallfish\tail\flippertail\flippertail.monsterpart [NEW] monsters\swimming\smallfish\tail\flippertail\flippertail.png [NEW] monsters\swimming\smallfish\tail\propellertail\propellertail.monsterpart [NEW] monsters\swimming\smallfish\tail\propellertail\propellertail.png [NEW] monsters\swimming\smallfish\tail\squidtail\squidtail.monsterpart [NEW] monsters\swimming\smallfish\tail\squidtail\squidtail.png [NEW] monsters\swimming\smallfish\tail\swimmertail\swimmertail.monsterpart [NEW] monsters\swimming\smallfish\tail\swimmertail\swimmertail.png monsters\unique\apexbrainmutant\apexbrainmutant.animation monsters\unique\apexbrainmutant\apexbrainmutant.monstertype monsters\unique\apexbrainmutant\apexbrainmutant.png monsters\unique\apexbrainmutant\default.frames monsters\unique\apexmutant\apexmutant.animation monsters\unique\apexmutant\apexmutant.monstertype monsters\unique\po\behavior.lua monsters\unique\po\megapo.monstertype monsters\unique\po\micropo.monstertype monsters\unique\po\po.monstertype monsters\unique\pogolem\pogolem.animation monsters\unique\pogolem\pogolem.monstertype monsters\unique\serpentdroid\serpentdroid.animation monsters\unique\serpentdroid\serpentdroid.monstertype monsters\unique\sewerfly\sewerfly.animation monsters\unique\sewerfly\sewerfly.monstertype [NEW] npcs\nakedvillager.npctype npcs\mission\floranpredator.npctype npcs\mission\floransniper.npctype npcs\mission\survivor.npctype npcs\outpost\outpostapexrefugee.npctype npcs\outpost\outpostavianexplorer.npctype npcs\outpost\outpostavianmercenary.npctype npcs\outpost\outpostbountyhunter.npctype npcs\outpost\outpostfloranhunter.npctype npcs\outpost\outposthumanexcon.npctype [NEW] npcs\outpost\outpostpenguinpromoter.npctype objects\farmables\automato\automatoseed.object objects\farmables\automato\automatoseed.png objects\farmables\automato\wildautomatoseed.object objects\farmables\avesmingo\avesmingoseed.object objects\farmables\avesmingo\wildavesmingoseed.object objects\farmables\banana\bananaseed.frames objects\farmables\banana\bananaseed.object objects\farmables\banana\bananaseed.png objects\farmables\banana\wildbananaseed.object objects\farmables\beakseed\beakseedseed.object objects\farmables\beakseed\wildbeakseedseed.object objects\farmables\boltbulb\boltbulbseed.object objects\farmables\boltbulb\wildboltbulbseed.object objects\farmables\boneboo\bonebooseed.object objects\farmables\boneboo\bonebooseed.png objects\farmables\boneboo\wildbonebooseed.object objects\farmables\carrot\carrotseed.object objects\farmables\carrot\wildcarrotseed.object objects\farmables\chili\chiliseed.object objects\farmables\chili\wildchiliseed.object objects\farmables\coffee\coffeeseed.object objects\farmables\coffee\coffeeseed.png objects\farmables\coffee\wildcoffeeseed.object objects\farmables\coralcreep\coralcreepseed.object objects\farmables\coralcreep\wildcoralcreepseed.object objects\farmables\corn\cornseed.object objects\farmables\corn\cornseed.png objects\farmables\corn\wildcornseed.object objects\farmables\crystalplant\crystalplantseed.object objects\farmables\crystalplant\wildcrystalplantseed.object objects\farmables\currentcorn\currentcornseed.object objects\farmables\currentcorn\wildcurrentcornseed.object objects\farmables\diodia\diodiaseed.object objects\farmables\diodia\wilddiodaseed.object objects\farmables\dirturchin\dirturchinseed.object objects\farmables\dirturchin\wilddirturchinseed.object objects\farmables\eggshoot\eggshootseed.object objects\farmables\eggshoot\wildeggshootseed.object objects\farmables\feathercrown\feathercrownseed.object objects\farmables\feathercrown\wildfeathercrownseed.object objects\farmables\flowerblue\flowerblue.object objects\farmables\flowerred\flowerred.object objects\farmables\flowerspring\flowerspring.object objects\farmables\floweryellow\floweryellow.object objects\farmables\grapes\grapesseed.object objects\farmables\grapes\grapesseed.png objects\farmables\grapes\wildgrapesseed.object objects\farmables\kiwi\kiwiseed.object objects\farmables\kiwi\wildkiwiseed.object objects\farmables\mushroom\mushroomseed.object objects\farmables\neonmelon\neonmelonseed.object objects\farmables\neonmelon\wildneonmelonseed.object objects\farmables\oculemon\oculemonseed.object objects\farmables\oculemon\wildoculemonseed.object objects\farmables\pearlpea\pearlpeaseed.object objects\farmables\pearlpea\wildpearlpeaseed.object objects\farmables\pineapple\pineappleseed.object objects\farmables\pineapple\wildpineappleseed.object objects\farmables\potatoes\potatoseed.object objects\farmables\potatoes\wildpotatoseed.object objects\farmables\pussplum\pussplumseed.object objects\farmables\pussplum\wildpussplumseed.object objects\farmables\reefpod\reefpodseed.object objects\farmables\reefpod\wildreefpodseed.object objects\farmables\rice\riceseed.object objects\farmables\rice\wildriceseed.object objects\farmables\sugarcane\sugarcaneseed.object objects\farmables\sugarcane\wildsugarcaneseed.object objects\farmables\tomato\tomatoseed.object objects\farmables\tomato\tomatoseed.png objects\farmables\tomato\wildtomatoseed.object objects\farmables\toxictop\toxictopseed.object objects\farmables\toxictop\wildtoxictopseed.object objects\farmables\wartweed\wartweedseed.object objects\farmables\wartweed\wildwartweedseed.object objects\farmables\wheat\wheatseed.object objects\farmables\wheat\wildwheatseed.object objects\outpost\penguinbay\penguinbay.object objects\outpost\penguinbay\penguinbayleft.frames objects\outpost\penguinbay\penguinbayleft.png objects\outpost\penguinbay\penguinbayright.frames objects\outpost\penguinbay\penguinbayright.png objects\outpost\terramart\terramart.object objects\outpost\terramart\terramartleft.frames objects\outpost\terramart\terramartleft.png objects\outpost\terramart\terramartleftlit.frames objects\outpost\terramart\terramartleftlit.png objects\outpost\terramart\terramartright.frames objects\outpost\terramart\terramartright.png objects\outpost\terramart\terramartrightlit.frames objects\outpost\terramart\terramartrightlit.png [NEW] objects\ship\researchstation\researchstation.frames [NEW] objects\ship\researchstation\researchstation.object [NEW] objects\ship\researchstation\researchstation.png [NEW] objects\ship\researchstation\researchstationicon.png [NEW] objects\ship\researchstation\researchstationlit.frames [NEW] objects\ship\researchstation\researchstationlit.png [NEW] objects\ship\researchstation\researchstationtransparent.png projectiles\physics.config projectiles\explosions\smoke\smoke.config projectiles\explosions\smoke\smoke.projectile projectiles\guns\unsorted\flamethrower\flamethrower.projectile projectiles\npcs\blueflame\blueflame.projectile projectiles\npcs\blueflame\blueflamethrower.projectile projectiles\npcs\flame\flame.projectile projectiles\throwable\firework\firework.projectile projectiles\throwable\firework2\firework2.projectile projectiles\throwable\firework3\firework3.projectile projectiles\throwable\firework4\firework4.projectile projectiles\throwable\fireworkblue\fireworkblue.projectile projectiles\throwable\fireworkblue2\fireworkblue2.projectile projectiles\throwable\fireworkblue3\fireworkblue3.projectile projectiles\throwable\fireworkblue4\fireworkblue4.projectile projectiles\throwable\fireworkgreen\fireworkgreen.projectile projectiles\throwable\fireworkgreen2\fireworkgreen2.projectile projectiles\throwable\fireworkgreen3\fireworkgreen3.projectile projectiles\throwable\fireworkgreen4\fireworkgreen4.projectile projectiles\throwable\molotovflame\molotovflame.projectile [NEW] projectiles\throwable\noveltybanana\noveltybanana.frames [NEW] projectiles\throwable\noveltybanana\noveltybanana.png [NEW] projectiles\throwable\noveltybanana\noveltybanana.projectile quests\outpost\phase2optional\apexmechanic2.questtemplate quests\outpost\phase2optional\avianrefugee2part1.questtemplate quests\outpost\phase2optional\avianrefugee2part2.questtemplate quests\outpost\phase2optional\bountyhunter2.questtemplate quests\outpost\phase2optional\floranscholar2.questtemplate quests\outpost\phase2optional\glitchsilenttype2.questtemplate quests\outpost\phase2optional\humanexcon2.questtemplate quests\outpost\phase2optional\humansurvivor2.questtemplate quests\outpost\phase3optional\avianexplorer3.questtemplate quests\outpost\phase3optional\bountyhunter3.questtemplate quests\outpost\phase3optional\glitchsilenttype3.questtemplate quests\outpost\phase3optional\hylotlperformer3.questtemplate [NEW] quests\outpost\phase4optional\apexrefugee4.questtemplate [NEW] quests\outpost\phase4optional\avianexplorer4.questtemplate [NEW] quests\outpost\phase4optional\avianmercenary4.questtemplate [NEW] quests\outpost\phase4optional\bountyhunter4.questtemplate [NEW] quests\outpost\phase4optional\floranhunter4.questtemplate [NEW] quests\outpost\phase4optional\humanexcon4.questtemplate [NEW] quests\outpost\shipupgrade\license1.questtemplate [NEW] quests\outpost\shipupgrade\license2.questtemplate [NEW] quests\outpost\shipupgrade\license3.questtemplate [NEW] quests\outpost\shipupgrade\license4.questtemplate [NEW] quests\outpost\shipupgrade\license5.questtemplate recipes\heartforge\cupidsbow.recipe recipes\heartforge\heartforge.recipe recipes\holidaycraftingtable\holidaycraftingtable.recipe [NEW] recipes\holidaycraftingtable\holidayspirit.recipe [NEW] recipes\kitchen\tier2\choconut.recipe [NEW] sfx\instruments\microphonefem\a1ba.ogg [NEW] sfx\instruments\microphonefem\a1da.ogg [NEW] sfx\instruments\microphonefem\a1la.ogg [NEW] sfx\instruments\microphonefem\a2ba.ogg [NEW] sfx\instruments\microphonefem\a2da.ogg [NEW] sfx\instruments\microphonefem\a2la.ogg [NEW] sfx\instruments\microphonefem\a3ba.ogg [NEW] sfx\instruments\microphonefem\a3da.ogg [NEW] sfx\instruments\microphonefem\a3la.ogg [NEW] sfx\instruments\microphonefem\a4ba.ogg [NEW] sfx\instruments\microphonefem\a4da.ogg [NEW] sfx\instruments\microphonefem\a4la.ogg [NEW] sfx\instruments\microphonefem\a5ba.ogg [NEW] sfx\instruments\microphonefem\a5da.ogg [NEW] sfx\instruments\microphonefem\a5la.ogg [NEW] sfx\instruments\microphonefem\a6ba.ogg [NEW] sfx\instruments\microphonefem\a6da.ogg [NEW] sfx\instruments\microphonefem\a6la.ogg [NEW] sfx\instruments\microphonefem\a7ba.ogg [NEW] sfx\instruments\microphonefem\a7da.ogg [NEW] sfx\instruments\microphonefem\a7la.ogg [NEW] sfx\instruments\microphonefem\e4ba.ogg [NEW] sfx\instruments\microphonefem\e4da.ogg [NEW] sfx\instruments\microphonefem\e4la.ogg [NEW] sfx\instruments\microphonefem\mute.ogg [NEW] sfx\instruments\microphonefem\tuning.config [NEW] sfx\interface\aichatter1.wav [NEW] sfx\interface\aichatter1_loop.wav [NEW] sfx\interface\aichatter2.wav [NEW] sfx\interface\aichatter2_loop.wav ships\apex\apext5blocks.png ships\apex\apext6blocks.png ships\apex\apext7blocks.png ships\apex\apext8blocks.png ships\apex\blockkey.config ships\avian\aviant5blocks.png ships\avian\aviant6blocks.png ships\avian\aviant7blocks.png ships\avian\aviant8blocks.png ships\avian\blockkey.config ships\floran\blockkey.config ships\floran\florant5blocks.png ships\floran\florant6blocks.png ships\floran\florant7blocks.png ships\floran\florant8blocks.png ships\glitch\blockkey.config ships\glitch\glitcht5blocks.png ships\glitch\glitcht6blocks.png ships\glitch\glitcht7blocks.png ships\glitch\glitcht8blocks.png ships\human\blockkey.config ships\human\humant5blocks.png ships\human\humant6blocks.png ships\human\humant7blocks.png ships\human\humant8blocks.png ships\hylotl\blockkey.config ships\hylotl\hylotlt5blocks.png ships\hylotl\hylotlt6blocks.png ships\hylotl\hylotlt7blocks.png ships\hylotl\hylotlt8blocks.png ships\novakid\blockkey.config ships\novakid\novakidt5blocks.png ships\novakid\novakidt6blocks.png ships\novakid\novakidt7blocks.png ships\novakid\novakidt8blocks.png [NEW] species\penguin.species [NEW] species\penguinnamegen.config stats\monster_primary.lua stats\effects\rage\rage.statuseffect [NEW] stats\effects\shieldeffect\bubbleshield.animation [NEW] stats\effects\shieldeffect\bubbleshield.statuseffect [NEW] stats\effects\shieldeffect\shieldeffect.animation [NEW] stats\effects\shieldeffect\shieldeffect.lua [NEW] stats\effects\shieldeffect\staticshield.statuseffect [NEW] stats\effects\shieldregen\shieldregen.animation [NEW] stats\effects\shieldregen\shieldregen.lua [NEW] stats\effects\shieldregen\shieldregen.statuseffect tiles\mods\diamond.matmod treasure\common.treasurepools treasure\default.treasurechests [NEW] treasure\missions\floranmission1.treasurepools DIFFS ----- player.config 8c8 < "species" : [ "human", "glitch", "hylotl", "apex", "avian", "floran", "novakid" ], --- > "species" : [ "human", "glitch", "hylotl", "apex", "avian", "floran", "novakid", "penguin" ], 110a111 > { "item" : "choconut" }, 215d215 < { "item" : "skyrailTech-chip" }, 311c311 < // { "item" : "heartforge" }, --- > { "item" : "heartforge" }, 321c321,322 < // { "item" : "holidaycraftingtable" }, --- > { "item" : "holidaycraftingtable" }, > { "item" : "holidayspirit" }, 617d617 < "diamondore", universe_server.config 23c23,24 < "novakid" : ["/ships/novakid/novakidT0.structure", "/ships/novakid/novakidT1.structure", "/ships/novakid/novakidT2.structure", "/ships/novakid/novakidT3.structure", "/ships/novakid/novakidT4.structure", "/ships/novakid/novakidT5.structure", "/ships/novakid/novakidT6.structure", "/ships/novakid/novakidT7.structure", "/ships/novakid/novakidT8.structure"] --- > "novakid" : ["/ships/novakid/novakidT0.structure", "/ships/novakid/novakidT1.structure", "/ships/novakid/novakidT2.structure", "/ships/novakid/novakidT3.structure", "/ships/novakid/novakidT4.structure", "/ships/novakid/novakidT5.structure", "/ships/novakid/novakidT6.structure", "/ships/novakid/novakidT7.structure", "/ships/novakid/novakidT8.structure"], > "penguin" : ["/ships/novakid/novakidT0.structure", "/ships/novakid/novakidT1.structure", "/ships/novakid/novakidT2.structure", "/ships/novakid/novakidT3.structure", "/ships/novakid/novakidT4.structure", "/ships/novakid/novakidT5.structure", "/ships/novakid/novakidT6.structure", "/ships/novakid/novakidT7.structure", "/ships/novakid/novakidT8.structure"] ai\enableteleporter.aicommand 40c40 < "text" : "The teleporter is enabled! Go and find the materials we need to fix the ship's thrusters.", --- > "text" : "^green;The teleporter is enabled! ^#aee1ee;Go and find the materials we need to fix the ship's thrusters.", 64c64 < "text" : "The teleporter is enabled! Praise Kluex! Go forth and gather the materials required to fix the ship's teleporter.", --- > "text" : "^green;The teleporter is enabled! ^#aee1ee;Praise Kluex! Go forth and gather the materials required to fix the ship's teleporter.", 88c88 < "text" : "Go! Spread your wings my little birdy, find us the things we need to fix the ship's thrusters.", --- > "text" : "^green;The teleporter ^#aee1ee;is enabled! Go! Spread your wings my little birdy, find us the things we need to fix the ship's thrusters.", 112c112 < "text" : "I have completed the ritual required to enable the short range telporter. Go and gather ingredients so I may begin the spell that will fix the ship's teleporter.", --- > "text" : "I have completed the ritual required to ^green;enable the short range telporter. ^#aee1ee;Go and gather ingredients so I may begin the spell that will fix the ship's teleporter.", 136c136 < "text" : "I did it! Now we have access to the planet we can find those materials we need to fix the ship's thrusters!", --- > "text" : "I did it! ^green;Now we have access to the planet ^#aee1ee;we can find those materials we need to fix the ship's thrusters!", 160c160 < "text" : "I did it! Now we have access to the planet we can find those materials we need to fix the ship's thrusters!", --- > "text" : "I did it! ^green;Now we have access to the planet ^#aee1ee;we can find those materials we need to fix the ship's thrusters!", 184c184 < "text" : "Success! Remember. Wheresoever you go, go with all your heart! Obtain for me the materials required to fix the ship's thrusters.", --- > "text" : "Success! ^green;Teleporter enabled! ^#aee1ee;Remember. Wheresoever you go, go with all your heart! Obtain for me the materials required to fix the ship's thrusters.", ai\givebeamaxe.aicommand 13,15c13 < "cinematicConfig" : { < "resource" : "/cinematics/beamaxe.cinematic" < } --- > "cinematicConfig" : "/cinematics/beamaxe.cinematic" 40c38 < "text" : "I have switched on your matter manipulator. The matter manipulator enables you to pick up, move and collect objects and materials.", --- > "text" : "I have switched on your matter manipulator. ^green;The matter manipulator enables you to pick up, move and collect objects and materials.", 64c62 < "text" : "Your matter manipulator has been enabled. The matter manipulator enables you to pick up, move and collect objects and materials.", --- > "text" : "Your matter manipulator has been enabled. ^green;The matter manipulator enables you to pick up, move and collect objects and materials.", 88c86 < "text" : "Yes!! The matter manipulator is working! The matter manipulator enables you to pick up, move and collect objects and materials.", --- > "text" : "Yes!! The matter manipulator is working! ^green;The matter manipulator enables you to pick up, move and collect objects and materials.", 112c110 < "text" : "Your matter manipulator is enabled your grace! The matter manipulator enables you to pick up, move and collect objects and materials.", --- > "text" : "Your matter manipulator is enabled your grace! ^green;The matter manipulator enables you to pick up, move and collect objects and materials.", 136c134 < "text" : "It worked! The matter manipulator enables you to pick up, move and collect objects and materials.", --- > "text" : "It worked! ^green;The matter manipulator enables you to pick up, move and collect objects and materials.", 160c158 < "text" : "It worked! The matter manipulator enables you to pick up, move and collect objects and materials.", --- > "text" : "It worked! ^green;The matter manipulator enables you to pick up, move and collect objects and materials.", 184c182 < "text" : "It has been a success. The matter manipulator is ready. The matter manipulator enables you to pick up, move and collect objects and materials.", --- > "text" : "It has been a success. The matter manipulator is ready. ^green;The matter manipulator enables you to pick up, move and collect objects and materials.", ai\upgradebeamaxe1.aicommand 32c32 < "text" : "With 15 bars of refined copper, I can upgrade your matter manipulator to mine in a larger area.", --- > "text" : "^green;With ^orange;15 bars of refined copper, ^green;I can upgrade your matter manipulator to mine in a larger area.", 46c46 < "text" : "Failure. We'll need 15 copper bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;15 copper bars ^green;to complete this upgrade.", 56c56 < "text" : "With 15 bars of refined copper, I can upgrade your matter manipulator to mine in a larger area.", --- > "text" : "^green;With ^orange;15 bars of refined copper, ^green;I can upgrade your matter manipulator to mine in a larger area.", 70c70 < "text" : "Failure. We'll need 15 copper bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;15 copper bars ^green;to complete this upgrade.", 80c80 < "text" : "With 15 bars of refined copper, I can upgrade your matter manipulator to mine in a larger area.", --- > "text" : "^green;With ^orange;15 bars of refined copper, ^green;I can upgrade your matter manipulator to mine in a larger area.", 94c94 < "text" : "Failure. We'll need 15 copper bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;15 copper bars ^green;to complete this upgrade.", 104c104 < "text" : "With 15 bars of refined copper, I can upgrade your matter manipulator to mine in a larger area.", --- > "text" : "^green;With ^orange;15 bars of refined copper, ^green;I can upgrade your matter manipulator to mine in a larger area.", 118c118 < "text" : "Failure. We'll need 15 copper bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;15 copper bars ^green;to complete this upgrade.", 128c128 < "text" : "With 15 bars of refined copper, I can upgrade your matter manipulator to mine in a larger area.", --- > "text" : "^green;With ^orange;15 bars of refined copper, ^green;I can upgrade your matter manipulator to mine in a larger area.", 142c142 < "text" : "Failure. We'll need 15 copper bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;15 copper bars ^green;to complete this upgrade.", 152c152 < "text" : "With 15 bars of refined copper, I can upgrade your matter manipulator to mine in a larger area.", --- > "text" : "^green;With ^orange;15 bars of refined copper, ^green;I can upgrade your matter manipulator to mine in a larger area.", 166c166 < "text" : "Failure. We'll need 15 copper bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;15 copper bars ^green;to complete this upgrade.", 176c176 < "text" : "With 15 bars of refined copper, I can upgrade your matter manipulator to mine in a larger area.", --- > "text" : "^green;With ^orange;15 bars of refined copper, ^green;I can upgrade your matter manipulator to mine in a larger area.", 190c190 < "text" : "Failure. We'll need 15 copper bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;15 copper bars ^green;to complete this upgrade.", ai\upgradebeamaxe2.aicommand 30c30 < "text" : "With 15 bars of refined silver and 5 diamonds, I can permanently increase the power of your matter manipulator.", --- > "text" : "^green;With ^orange;15 bars of refined silver and 5 diamonds, ^green;I can permanently increase the power of your matter manipulator.", 44c44 < "text" : "Failure. We'll need 15 silver bars and 5 diamonds to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;15 silver bars and 5 diamonds ^green;to complete this upgrade.", 54c54 < "text" : "With 15 bars of refined silver and 5 diamonds, I can permanently increase the power of your matter manipulator.", --- > "text" : "^green;With ^orange;15 bars of refined silver and 5 diamonds, ^green;I can permanently increase the power of your matter manipulator.", 68c68 < "text" : "Failure. We'll need 15 silver bars and 5 diamonds to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;15 silver bars and 5 diamonds ^green;to complete this upgrade.", 78c78 < "text" : "With 15 bars of refined silver and 5 diamonds, I can permanently increase the power of your matter manipulator.", --- > "text" : "^green;With ^orange;15 bars of refined silver and 5 diamonds, ^green;I can permanently increase the power of your matter manipulator.", 92c92 < "text" : "Failure. We'll need 15 silver bars and 5 diamonds to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;15 silver bars and 5 diamonds ^green;to complete this upgrade.", 102c102 < "text" : "With 15 bars of refined silver and 5 diamonds, I can permanently increase the power of your matter manipulator.", --- > "text" : "^green;With ^orange;15 bars of refined silver and 5 diamonds, ^green;I can permanently increase the power of your matter manipulator.", 116c116 < "text" : "Failure. We'll need 15 silver bars and 5 diamonds to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;15 silver bars and 5 diamonds ^green;to complete this upgrade.", 126c126 < "text" : "With 15 bars of refined silver and 5 diamonds, I can permanently increase the power of your matter manipulator.", --- > "text" : "^green;With ^orange;15 bars of refined silver and 5 diamonds, ^green;I can permanently increase the power of your matter manipulator.", 140c140 < "text" : "Failure. We'll need 15 silver bars and 5 diamonds to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;15 silver bars and 5 diamonds ^green;to complete this upgrade.", 150c150 < "text" : "With 15 bars of refined silver and 5 diamonds, I can permanently increase the power of your matter manipulator.", --- > "text" : "^green;With ^orange;15 bars of refined silver and 5 diamonds, ^green;I can permanently increase the power of your matter manipulator.", 164c164 < "text" : "Failure. We'll need 15 silver bars and 5 diamonds to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;15 silver bars and 5 diamonds ^green;to complete this upgrade.", 174c174 < "text" : "With 15 bars of refined silver and 5 diamonds, I can permanently increase the power of your matter manipulator.", --- > "text" : "^green;With ^orange;15 bars of refined silver and 5 diamonds, ^green;I can permanently increase the power of your matter manipulator.", 188c188 < "text" : "Failure. We'll need 15 silver bars and 5 diamonds to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;15 silver bars and 5 diamonds ^green;to complete this upgrade.", ai\upgradebeamaxe3.aicommand 33c33 < "text" : "With 8 bars of platinum, I can upgrade your matter manipulator to mine in an even larger area, along with a boost in power.", --- > "text" : "^green;With ^orange;8 bars of platinum, ^green;I can upgrade your matter manipulator to mine in an even larger area, along with a boost in power.", 47c47 < "text" : "Failure. We'll need 8 rubium bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;8 rubium bars ^green;to complete this upgrade.", 57c57 < "text" : "With 8 bars of platinum, I can upgrade your matter manipulator to mine in an even larger area, along with a boost in power.", --- > "text" : "^green;With ^orange;8 bars of platinum, ^green;I can upgrade your matter manipulator to mine in an even larger area, along with a boost in power.", 71c71 < "text" : "Failure. We'll need 8 rubium bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;8 rubium bars ^green;to complete this upgrade.", 81c81 < "text" : "With 8 bars of platinum, I can upgrade your matter manipulator to mine in an even larger area, along with a boost in power.", --- > "text" : "^green;With ^orange;8 bars of platinum, ^green;I can upgrade your matter manipulator to mine in an even larger area, along with a boost in power.", 95c95 < "text" : "Failure. We'll need 8 rubium bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;8 rubium bars ^green;to complete this upgrade.", 105c105 < "text" : "With 8 bars of platinum, I can upgrade your matter manipulator to mine in an even larger area, along with a boost in power.", --- > "text" : "^green;With ^orange;8 bars of platinum, ^green;I can upgrade your matter manipulator to mine in an even larger area, along with a boost in power.", 119c119 < "text" : "Failure. We'll need 8 rubium bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;8 rubium bars ^green;to complete this upgrade.", 129c129 < "text" : "With 8 bars of platinum, I can upgrade your matter manipulator to mine in an even larger area, along with a boost in power.", --- > "text" : "^green;With ^orange;8 bars of platinum, ^green;I can upgrade your matter manipulator to mine in an even larger area, along with a boost in power.", 143c143 < "text" : "Failure. We'll need 8 rubium bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;8 rubium bars ^green;to complete this upgrade.", 153c153 < "text" : "With 8 bars of platinum, I can upgrade your matter manipulator to mine in an even larger area, along with a boost in power.", --- > "text" : "^green;With ^orange;8 bars of platinum, ^green;I can upgrade your matter manipulator to mine in an even larger area, along with a boost in power.", 167c167 < "text" : "Failure. We'll need 8 rubium bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;8 rubium bars ^green;to complete this upgrade.", 177c177 < "text" : "With 8 bars of platinum, I can upgrade your matter manipulator to mine in an even larger area, along with a boost in power.", --- > "text" : "^green;With ^orange;8 bars of platinum, ^green;I can upgrade your matter manipulator to mine in an even larger area, along with a boost in power.", 191c191 < "text" : "Failure. We'll need 8 rubium bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;8 rubium bars ^green;to complete this upgrade.", ai\upgradebeamaxe4.aicommand 30c30 < "text" : "With 8 diamonds, I can further increase your matter manipulator's power.", --- > "text" : "^green;With ^orange;8 diamonds, ^green;I can further increase your matter manipulator's power.", 44c44 < "text" : "Failure. We'll need 8 diamonds to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;8 diamonds ^green;to complete this upgrade.", 54c54 < "text" : "With 8 diamonds, I can further increase your matter manipulator's power.", --- > "text" : "^green;With ^orange;8 diamonds, ^green;I can further increase your matter manipulator's power.", 68c68 < "text" : "Failure. We'll need 8 diamonds to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;8 diamonds ^green;to complete this upgrade.", 78c78 < "text" : "With 8 diamonds, I can further increase your matter manipulator's power.", --- > "text" : "^green;With ^orange;8 diamonds, ^green;I can further increase your matter manipulator's power.", 92c92 < "text" : "Failure. We'll need 8 diamonds to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;8 diamonds ^green;to complete this upgrade.", 102c102 < "text" : "With 8 diamonds, I can further increase your matter manipulator's power.", --- > "text" : "^green;With ^orange;8 diamonds, ^green;I can further increase your matter manipulator's power.", 116c116 < "text" : "Failure. We'll need 8 diamonds to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;8 diamonds ^green;to complete this upgrade.", 126c126 < "text" : "With 8 diamonds, I can further increase your matter manipulator's power.", --- > "text" : "^green;With ^orange;8 diamonds, ^green;I can further increase your matter manipulator's power.", 140c140 < "text" : "Failure. We'll need 8 diamonds to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;8 diamonds ^green;to complete this upgrade.", 150c150 < "text" : "With 8 diamonds, I can further increase your matter manipulator's power.", --- > "text" : "^green;With ^orange;8 diamonds, ^green;I can further increase your matter manipulator's power.", 164c164 < "text" : "Failure. We'll need 8 diamonds to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;8 diamonds ^green;to complete this upgrade.", 174c174 < "text" : "With 8 diamonds, I can further increase your matter manipulator's power.", --- > "text" : "^green;With ^orange;8 diamonds, ^green;I can further increase your matter manipulator's power.", 188c188 < "text" : "Failure. We'll need 8 diamonds to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;8 diamonds ^green;to complete this upgrade.", ai\upgradebeamaxe5.aicommand 29c29 < "text" : "With 3 refined aegisalt, 3 refined rubium, and 3 refined violium, I could push your matter manipulator to the limit, enabling it to mine an even larger area and boosting its power significantly.", --- > "text" : "^green;With ^orange;3 refined aegisalt, 3 refined rubium, and 3 refined violium, ^green;I could push your matter manipulator to the limit, enabling it to mine an even larger area and boosting its power significantly.", 43c43 < "text" : "Failure. We'll need 3 refined aegisalt, 3 refined rubium, and 3 refined violium to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;3 refined aegisalt, 3 refined rubium, and 3 refined violium ^green;to complete this upgrade.", 53c53 < "text" : "With 3 refined aegisalt, 3 refined rubium, and 3 refined violium, I could push your matter manipulator to the limit, enabling it to mine an even larger area and boosting its power significantly.", --- > "text" : "^green;With ^orange;3 refined aegisalt, 3 refined rubium, and 3 refined violium, ^green;I could push your matter manipulator to the limit, enabling it to mine an even larger area and boosting its power significantly.", 67c67 < "text" : "Failure. We'll need 3 refined aegisalt, 3 refined rubium, and 3 refined violium to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;3 refined aegisalt, 3 refined rubium, and 3 refined violium ^green;to complete this upgrade.", 77c77 < "text" : "With 3 refined aegisalt, 3 refined rubium, and 3 refined violium, I could push your matter manipulator to the limit, enabling it to mine an even larger area and boosting its power significantly.", --- > "text" : "^green;With ^orange;3 refined aegisalt, 3 refined rubium, and 3 refined violium, ^green;I could push your matter manipulator to the limit, enabling it to mine an even larger area and boosting its power significantly.", 91c91 < "text" : "Failure. We'll need 3 refined aegisalt, 3 refined rubium, and 3 refined violium to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;3 refined aegisalt, 3 refined rubium, and 3 refined violium ^green;to complete this upgrade.", 101c101 < "text" : "With 3 refined aegisalt, 3 refined rubium, and 3 refined violium, I could push your matter manipulator to the limit, enabling it to mine an even larger area and boosting its power significantly.", --- > "text" : "^green;With ^orange;3 refined aegisalt, 3 refined rubium, and 3 refined violium, ^green;I could push your matter manipulator to the limit, enabling it to mine an even larger area and boosting its power significantly.", 115c115 < "text" : "Failure. We'll need 3 refined aegisalt, 3 refined rubium, and 3 refined violium to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;3 refined aegisalt, 3 refined rubium, and 3 refined violium ^green;to complete this upgrade.", 125c125 < "text" : "With 3 refined aegisalt, 3 refined rubium, and 3 refined violium, I could push your matter manipulator to the limit, enabling it to mine an even larger area and boosting its power significantly.", --- > "text" : "^green;With ^orange;3 refined aegisalt, 3 refined rubium, and 3 refined violium, ^green;I could push your matter manipulator to the limit, enabling it to mine an even larger area and boosting its power significantly.", 139c139 < "text" : "Failure. We'll need 3 refined aegisalt, 3 refined rubium, and 3 refined violium to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;3 refined aegisalt, 3 refined rubium, and 3 refined violium ^green;to complete this upgrade.", 149c149 < "text" : "With 3 refined aegisalt, 3 refined rubium, and 3 refined violium, I could push your matter manipulator to the limit, enabling it to mine an even larger area and boosting its power significantly.", --- > "text" : "^green;With ^orange;3 refined aegisalt, 3 refined rubium, and 3 refined violium, ^green;I could push your matter manipulator to the limit, enabling it to mine an even larger area and boosting its power significantly.", 163c163 < "text" : "Failure. We'll need 3 refined aegisalt, 3 refined rubium, and 3 refined violium to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;3 refined aegisalt, 3 refined rubium, and 3 refined violium ^green;to complete this upgrade.", 173c173 < "text" : "With 3 refined aegisalt, 3 refined rubium, and 3 refined violium, I could push your matter manipulator to the limit, enabling it to mine an even larger area and boosting its power significantly.", --- > "text" : "^green;With ^orange;3 refined aegisalt, 3 refined rubium, and 3 refined violium, ^green;I could push your matter manipulator to the limit, enabling it to mine an even larger area and boosting its power significantly.", 187c187 < "text" : "Failure. We'll need 3 refined aegisalt, 3 refined rubium, and 3 refined violium to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;3 refined aegisalt, 3 refined rubium, and 3 refined violium ^green;to complete this upgrade.", ai\upgradebeamaxeliquid.aicommand 26c26 < "text" : "With 10 bars of refined gold, I can upgrade your matter manipulator to allow the collection of liquids.", --- > "text" : "^green;With ^orange;10 bars of refined gold, ^green;I can upgrade your matter manipulator to allow the collection of liquids.", 40c40 < "text" : "Failure. We'll need 10 gold bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;10 gold bars ^green;to complete this upgrade.", 50c50 < "text" : "With 10 bars of refined gold, I can upgrade your matter manipulator to allow the collection of liquids.", --- > "text" : "^green;With ^orange;10 bars of refined gold, ^green;I can upgrade your matter manipulator to allow the collection of liquids.", 64c64 < "text" : "Failure. We'll need 10 gold bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;10 gold bars ^green;to complete this upgrade.", 74c74 < "text" : "With 10 bars of refined gold, I can upgrade your matter manipulator to allow the collection of liquids.", --- > "text" : "^green;With ^orange;10 bars of refined gold, ^green;I can upgrade your matter manipulator to allow the collection of liquids.", 88c88 < "text" : "Failure. We'll need 10 gold bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;10 gold bars ^green;to complete this upgrade.", 98c98 < "text" : "With 10 bars of refined gold, I can upgrade your matter manipulator to allow the collection of liquids.", --- > "text" : "^green;With ^orange;10 bars of refined gold, ^green;I can upgrade your matter manipulator to allow the collection of liquids.", 112c112 < "text" : "Failure. We'll need 10 gold bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;10 gold bars ^green;to complete this upgrade.", 122c122 < "text" : "With 10 bars of refined gold, I can upgrade your matter manipulator to allow the collection of liquids.", --- > "text" : "^green;With ^orange;10 bars of refined gold, ^green;I can upgrade your matter manipulator to allow the collection of liquids.", 136c136 < "text" : "Failure. We'll need 10 gold bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;10 gold bars ^green;to complete this upgrade.", 146c146 < "text" : "With 10 bars of refined gold, I can upgrade your matter manipulator to allow the collection of liquids.", --- > "text" : "^green;With ^orange;10 bars of refined gold, ^green;I can upgrade your matter manipulator to allow the collection of liquids.", 160c160 < "text" : "Failure. We'll need 10 gold bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;10 gold bars ^green;to complete this upgrade.", 170c170 < "text" : "With 10 bars of refined gold, I can upgrade your matter manipulator to allow the collection of liquids.", --- > "text" : "^green;With ^orange;10 bars of refined gold, ^green;I can upgrade your matter manipulator to allow the collection of liquids.", 184c184 < "text" : "Failure. We'll need 10 gold bars to complete this upgrade.", --- > "text" : "Failure. ^green;We'll need ^orange;10 gold bars ^green;to complete this upgrade.", ai\upgradeship1.aicommand 35c35 < "text" : "Boot Initialised, new superuser acquired...... Thank you! I am S.A.I.L. I have enabled the ship's backup power. The thrusters and FTL drive are still offline. We should start by enabling your matter manipulator.", --- > "text" : "Boot Initialised, new superuser acquired...... Thank you! ^orange;^orange;I am S.A.I.L.^#aee1ee;^#aee1ee; I have enabled the ship's backup power. The thrusters and FTL drive are still offline. We should start by enabling your matter manipulator.", 59c59 < "text" : "Boot Initialised, new superuser acquired...... Praise Kluex! I am S.A.I.L. Backup power has been enabled. The thrusters and FTL drive are still offline. We should start by enabling your matter manipulator.", --- > "text" : "Boot Initialised, new superuser acquired...... Praise Kluex! ^orange;I am S.A.I.L.^#aee1ee; Backup power has been enabled. The thrusters and FTL drive are still offline. We should start by enabling your matter manipulator.", 83c83 < "text" : "Boot Initialised, new superuser acquired...... HELLO!!!! Hahaha, I am S.A.I.L. I have enabled the ship's backup power. The thrusters and FTL drive are still offline. We should start by enabling your matter manipulator.", --- > "text" : "Boot Initialised, new superuser acquired...... HELLO!!!! Hahaha, ^orange;I am S.A.I.L.^#aee1ee; I have enabled the ship's backup power. The thrusters and FTL drive are still offline. We should start by enabling your matter manipulator.", 131c131 < "text" : "Boot Initialised, new superuser acquired...... Hello! Thanks for that! I am S.A.I.L. and I'll be helping you out. I have restored the backup power for you! The thrusters and FTL drive are still offline. We should start by enabling your matter manipulator.", --- > "text" : "Boot Initialised, new superuser acquired...... Hello! Thanks for that! ^orange;I am S.A.I.L.^#aee1ee; and I'll be helping you out. I have restored the backup power for you! The thrusters and FTL drive are still offline. We should start by enabling your matter manipulator.", 155c155 < "text" : "Boot Initialised, new superuser acquired...... Hello! Thanks for that! I am S.A.I.L. and I'll be helping you out. I have restored the backup power for you! The thrusters and FTL drive are still offline. We should start by enabling your matter manipulator.", --- > "text" : "Boot Initialised, new superuser acquired...... Hello! Thanks for that! ^orange;I am S.A.I.L.^#aee1ee; and I'll be helping you out. I have restored the backup power for you! The thrusters and FTL drive are still offline. We should start by enabling your matter manipulator.", 179c179 < "text" : "Boot Initialised, new superuser acquired...... Ahhh so! I am S.A.I.L. I have enabled the backup power. The thrusters and FTL drive are still offline. We should start by enabling your matter manipulator.", --- > "text" : "Boot Initialised, new superuser acquired...... Ahhh so! ^orange;I am S.A.I.L.^#aee1ee; I have enabled the backup power. The thrusters and FTL drive are still offline. We should start by enabling your matter manipulator.", ai\upgradeship2.aicommand 9,11c9 < "cinematicConfig" : { < "resource" : "/cinematics/repair/apex/repair.cinematic" < } --- > "cinematicConfig" : "/cinematics/repair/apex/repair.cinematic" 35c33 < "text" : "I can repair the thrusters with the ship's auto repair module but I'll need 20 core fragments from the planet below.", --- > "text" : "I can repair the thrusters with the ship's auto repair module but ^green;I'll need ^orange;20 core fragments ^green;from the planet below.", 59c57 < "text" : "I can repair the thrusters with the ship's auto repair module but I'll need 20 core fragments from the planet below.", --- > "text" : "I can repair the thrusters with the ship's auto repair module but ^green;I'll need ^orange;20 core fragments ^green;from the planet below.", 83c81 < "text" : "I can repair the thrusters with the ship's auto repair module but I'll need 20 core fragments from the planet below.", --- > "text" : "I can repair the thrusters with the ship's auto repair module but ^green;I'll need ^orange;20 core fragments ^green;from the planet below.", 107c105 < "text" : "I can repair the thrusters with the ship's auto repair module but I'll need 20 core fragments from the planet below.", --- > "text" : "I can repair the thrusters with the ship's auto repair module but ^green;I'll need ^orange;20 core fragments ^green;from the planet below.", 131c129 < "text" : "I can repair the thrusters with the ship's auto repair module but I'll need 20 core fragments from the planet below.", --- > "text" : "I can repair the thrusters with the ship's auto repair module but ^green;I'll need ^orange;20 core fragments ^green;from the planet below.", 155c153 < "text" : "I can repair the thrusters with the ship's auto repair module but I'll need 20 core fragments from the planet below.", --- > "text" : "I can repair the thrusters with the ship's auto repair module but ^green;I'll need ^orange;20 core fragments ^green;from the planet below.", 179c177 < "text" : "I can repair the thrusters with the ship's auto repair module but I'll need 20 core fragments from the planet below.", --- > "text" : "I can repair the thrusters with the ship's auto repair module but ^green;I'll need ^orange;20 core fragments ^green;from the planet below.", ai\upgradeship3.aicommand 9,11c9 < "cinematicConfig" : { < "resource" : "/cinematics/repair/apex/repair.cinematic" < } --- > "cinematicConfig" : "/cinematics/repair/apex/repair.cinematic" 35c33 < "text" : "If we can get hold of 20 Erchius crystals I can repair our FTL drive.", --- > "text" : "If we can get hold of ^orange;20 Erchius crystals ^green;I can repair our FTL drive.", 42c40 < "text" : "Our FTL drive is now up and running, we can now jump to entirely star systems!", --- > "text" : "Our FTL drive is now up and running, ^green;we can now jump to entirely star systems!", 49c47 < "text" : "Failure! You've not yet gathered the required materials.", --- > "text" : "Failure! ^green;You've not yet gathered the required materials.", 59c57 < "text" : "If we can get hold of 20 Erchius crystals I can repair our FTL drive.", --- > "text" : "If we can get hold of ^orange;20 Erchius crystals ^green;I can repair our FTL drive.", 66c64 < "text" : "Our FTL drive is now up and running, we can now jump to entirely star systems!", --- > "text" : "Our FTL drive is now up and running, ^green;we can now jump to entirely star systems!", 73c71 < "text" : "Failure! You've not yet gathered the required materials.", --- > "text" : "Failure! ^green;You've not yet gathered the required materials.", 83c81 < "text" : "If we can get hold of 20 Erchius crystals I can repair our FTL drive.", --- > "text" : "If we can get hold of ^orange;20 Erchius crystals ^green;I can repair our FTL drive.", 90c88 < "text" : "Our FTL drive is now up and running, we can now jump to entirely star systems!", --- > "text" : "Our FTL drive is now up and running, ^green;we can now jump to entirely star systems!", 97c95 < "text" : "Failure! You've not yet gathered the required materials.", --- > "text" : "Failure! ^green;You've not yet gathered the required materials.", 107c105 < "text" : "If we can get hold of 20 Erchius crystals I can repair our FTL drive.", --- > "text" : "If we can get hold of ^orange;20 Erchius crystals ^green;I can repair our FTL drive.", 114c112 < "text" : "Our FTL drive is now up and running, we can now jump to entirely star systems!", --- > "text" : "Our FTL drive is now up and running, ^green;we can now jump to entirely star systems!", 121c119 < "text" : "Failure! You've not yet gathered the required materials.", --- > "text" : "Failure! ^green;You've not yet gathered the required materials.", 131c129 < "text" : "If we can get hold of 20 Erchius crystals I can repair our FTL drive.", --- > "text" : "If we can get hold of ^orange;20 Erchius crystals ^green;I can repair our FTL drive.", 138c136 < "text" : "Our FTL drive is now up and running, we can now jump to entirely star systems!", --- > "text" : "Our FTL drive is now up and running, ^green;we can now jump to entirely star systems!", 145c143 < "text" : "Failure! You've not yet gathered the required materials.", --- > "text" : "Failure! ^green;You've not yet gathered the required materials.", 155c153 < "text" : "If we can get hold of 20 Erchius crystals I can repair our FTL drive.", --- > "text" : "If we can get hold of ^orange;20 Erchius crystals ^green;I can repair our FTL drive.", 162c160 < "text" : "Our FTL drive is now up and running, we can now jump to entirely star systems!", --- > "text" : "Our FTL drive is now up and running, ^green;we can now jump to entirely star systems!", 169c167 < "text" : "Failure! You've not yet gathered the required materials.", --- > "text" : "Failure! ^green;You've not yet gathered the required materials.", 179c177 < "text" : "If we can get hold of 20 Erchius crystals I can repair our FTL drive.", --- > "text" : "If we can get hold of ^orange;20 Erchius crystals ^green;I can repair our FTL drive.", 186c184 < "text" : "Our FTL drive is now up and running, we can now jump to entirely star systems!", --- > "text" : "Our FTL drive is now up and running, ^green;we can now jump to entirely star systems!", 193c191 < "text" : "Failure! You've not yet gathered the required materials.", --- > "text" : "Failure! ^green;You've not yet gathered the required materials.", dungeons\apex\apextestchamber\apextestchamber.dungeon 920c920 < "brush" : [ [ "clear" ], [ "object", "techchest", { "direction" : "left", "parameters" : { "treasurePools" : [ "techTreasure" ] } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "techchest", { "direction" : "left", "parameters" : { "treasurePools" : [ "basicChestTreasure" ] } } ] ] 926c926 < "brush" : [ [ "clear" ], [ "object", "techchest", { "direction" : "right", "parameters" : { "treasurePools" : [ "techTreasure" ] } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "techchest", { "direction" : "right", "parameters" : { "treasurePools" : [ "basicChestTreasure" ] } } ] ] dungeons\missions\floranmissions\floranmission1.dungeon 1310c1310 < "brush" : [ [ "clear" ], [ "object", "chestfloran1", { "direction" : "left", "parameters" : { "treasurePools" : [ "basicChestTreasure" ] } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "chestfloran1", { "direction" : "left", "parameters" : { "treasurePools" : [ "floranmissiontreasure" ] } } ] ] 1316c1316 < "brush" : [ [ "clear" ], [ "object", "chestfloran1", { "direction" : "right", "parameters" : { "treasurePools" : [ "basicChestTreasure" ] } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "chestfloran1", { "direction" : "right", "parameters" : { "treasurePools" : [ "floranmissiontreasure" ] } } ] ] 1320,1322c1320,1346 < "value" : [255, 222, 178, 255], < "comment" : "chestfloran2 facing left", < "brush" : [ [ "clear" ], [ "object", "chestfloran2", { "direction" : "left", "parameters" : { "treasurePools" : [ "basicChestTreasure" ] } } ] ] --- > "value" : [255, 222, 176, 255], > "comment" : "chestfloran2 head", > "brush" : [ [ "clear" ], [ "object", "chestfloran2", { "direction" : "left", "parameters" : { "treasurePools" : [ "florantreasurehead" ] } } ] ] > }, > > { > "value" : [255, 222, 179, 255], > "comment" : "chestfloran2 chest", > "brush" : [ [ "clear" ], [ "object", "chestfloran2", { "direction" : "left", "parameters" : { "treasurePools" : [ "florantreasurechest" ] } } ] ] > }, > > { > "value" : [255, 222, 180, 255], > "comment" : "chestfloran2 pants", > "brush" : [ [ "clear" ], [ "object", "chestfloran2", { "direction" : "left", "parameters" : { "treasurePools" : [ "florantreasurepants" ] } } ] ] > }, > > { > "value" : [255, 222, 181, 255], > "comment" : "chestfloran2 back", > "brush" : [ [ "clear" ], [ "object", "chestfloran2", { "direction" : "left", "parameters" : { "treasurePools" : [ "florantreasureback" ] } } ] ] > }, > > { > "value" : [255, 222, 182, 255], > "comment" : "chestfloran2 mask", > "brush" : [ [ "clear" ], [ "object", "chestfloran2", { "direction" : "left", "parameters" : { "treasurePools" : [ "florantreasuremask" ] } } ] ] 1328c1352 < "brush" : [ [ "clear" ], [ "object", "chestfloran2", { "direction" : "right", "parameters" : { "treasurePools" : [ "basicChestTreasure" ] } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "chestfloran2", { "direction" : "right", "parameters" : { "treasurePools" : [ "floranmissiontreasure" ] } } ] ] 2154c2178 < "brush" : [ [ "clear" ], [ "object", "largewoodencrate", { "direction" : "left" } ] ] --- > "brush" : [ [ "clear" ], [ "object", "largewoodencrate", { "direction" : "left", "parameters" : { "treasurePools" : [ "floranmissiontreasure" ] } } ] ] 2160c2184 < "brush" : [ [ "clear" ], [ "object", "largewoodencrate", { "direction" : "right" } ] ] --- > "brush" : [ [ "clear" ], [ "object", "largewoodencrate", { "direction" : "right", "parameters" : { "treasurePools" : [ "floranmissiontreasure" ] } } ] ] 2505c2529 < "damageTeam" : 1, --- > "damageTeam" : 2, dungeons\other\outpost\outpost.dungeon 1968a1969,1995 > }, > > { > "value" : [191, 244, 255, 255], > "comment" : "penguin promoter", > "brush" : [ [ "npc", > { > "kind" : "npc", > "species" : "penguin", > "typeName" : "outpostpenguinpromoter" > } > ] ] > }, > > { > "value" : [191, 234, 255, 255], > "comment" : "dog", > "brush" : [ [ "npc", > { > "kind" : "monster", > "typeName" : "pinfriend", > "parameters" : { > "persistent" : true, > "seed" : "1" > } > } > ] ] interface\ai\ai.config 2a3 > "disabledTechText" : "This tech has not been unlocked yet.", 292a294,298 > }, > "lockIcon" : { > "type" : "image", > "position" : [2, 1], > "file" : "/interface/lockicon.png" 338a345,349 > }, > "lockIcon" : { > "type" : "image", > "position" : [2, 1], > "file" : "/interface/lockicon.png" 384a396,400 > }, > "lockIcon" : { > "type" : "image", > "position" : [2, 1], > "file" : "/interface/lockicon.png" 430a447,451 > }, > "lockIcon" : { > "type" : "image", > "position" : [2, 1], > "file" : "/interface/lockicon.png" items\armors\backitems\tigertail\tigertail.back 6c6 < "description" : "A tail of a tiger, to being a tiger.", --- > "description" : "A tail of a Tiger, to help you look like a Tiger.", items\armors\biome\bone\skullapex\skullapex.head 7c7 < "description" : "-todo-", --- > "description" : "An Apex Skull. Maybe the rest of them was donated to science?", items\armors\biome\bone\skullfloran\skullfloran.head 7c7 < "description" : "-todo-", --- > "description" : "A Floran skull. Ssspooky.", items\armors\biome\bone\skullglitch\skullglitch.head 7c7 < "description" : "-todo-", --- > "description" : "A Glitch skull. Well, not exactly a skull, but they tried.", items\armors\biome\bone\skullhuman\skullhuman.head 7c7 < "description" : "-todo-", --- > "description" : "An actual Human skull. Alas, poor Yorick!", items\armors\biome\bone\skullhylotl\skullhylotl.head 7c7 < "description" : "-todo-", --- > "description" : "A Hylotl skull. Hopefully they died a warrior's death.", items\armors\biome\ocean\deepdiver\deepdiver.head 7c7 < "description" : "-todo-", --- > "description" : "A rusted, old Diving helmet. It's not very easy to see with one of these on!", items\armors\biome\tar\sabertoothhelm\sabertoothhelm.head 7c7 < "description" : "-todo-", --- > "description" : "A menacing helmet made from what appears to be a Sabertooth skull.", items\armors\decorative\costumes\predatory\predatory.back 5,6c5,6 < "rarity" : "Rare", < "description" : "Hopely not a gunpowder barrel, probably check before putting it on.", --- > "rarity" : "Common", > "description" : "Spiny sticks, perhaps to make you look like some ferocious beast?", 13,14c13,14 < /* GREY */ < { "ffca8a" : "b5b5b5", "e0975c" : "808080", "a85636" : "555555", "6f2919" : "303030" }, --- > /* GREEN */ > { "ffca8a" : "b2e89d", "e0975c" : "51bd3b", "a85636" : "247824", "6f2919" : "144216" }, items\armors\decorative\costumes\predatory\predatory.chest 7c7 < "description" : "Pirate waistcoat. Not waterproof. Did these pirates even go to sea?", --- > "description" : "Menacing, leafy chest garments. The hunt is on!", 31,32c31,32 < /* GREY */ < { "ffca8a" : "b5b5b5", "e0975c" : "808080", "a85636" : "555555", "6f2919" : "303030" }, --- > /* GREEN */ > { "ffca8a" : "b2e89d", "e0975c" : "51bd3b", "a85636" : "247824", "6f2919" : "144216" }, items\armors\decorative\costumes\predatory\predatory.legs 7c7 < "description" : "Pirate pants, with holes for legs (peg or otherwise).", --- > "description" : "Pants for those who are ready to hunt.", 22,23c22,23 < /* RED */ < { "ffca8a" : "f4988c", "e0975c" : "d93a3a", "a85636" : "932625", "6f2919" : "601119" }, --- > /* GREEN */ > { "ffca8a" : "b2e89d", "e0975c" : "51bd3b", "a85636" : "247824", "6f2919" : "144216" }, items\armors\decorative\hats\reed\reed.head 7c7 < "description" : "Reed hat.", --- > "description" : "A rather fetching hat made from Reeds.", items\armors\decorative\hats\tiger\tiger.head 7c7 < "description" : "A tiger hat.", --- > "description" : "A Tiger hat. Is it real fur?", items\armors\decorative\hats\vikinghelmet\vikinghelmet.head 7c7 < "description" : "An incredibly historically inaccurate Viking helmet. Thanks Obama!", --- > "description" : "An incredibly historically inaccurate Viking helmet.", items\generic\tier2\featherfood.consumable 5,6c5,6 < "description" : "-todo-", < "shortdescription" : "Avian ceremonial food", --- > "description" : "A traditional Avian ceremonial food eaten at celebrations.", > "shortdescription" : "Feather Food", items\generic\tier2\flatwhite.consumable 5c5 < "description" : "-todo-", --- > "description" : "Coffee with milk.", items\generic\tier2\fluffyruffs.consumable 5c5 < "description" : "-todo-", --- > "description" : "They're ruffy and fluffy!", items\generic\tier2\gardensalad.consumable 5c5 < "description" : "A big bowl of leafy greens and veggies. Nutritious!", --- > "description" : "A big bowl of mixed veggies. Nutritious!", items\generic\tier2\kiwijam.consumable 5c5 < "description" : "-todo-", --- > "description" : "Tangy and refreshing. Try it on toast!", items\generic\tier2\mocha.consumable 5c5 < "description" : "-todo-", --- > "description" : "A mild blend of coffee and hot chocolate.", items\generic\tier2\mushroomquiche.consumable 5c5 < "description" : "-todo-", --- > "description" : "A cheesy quiche packed full of fresh mushrooms.", items\generic\tier2\mushroomrice.consumable 5c5 < "description" : "-todo-", --- > "description" : "Delicious eggy fried rice with mushrooms.", items\generic\tier2\pasty.consumable 5c5 < "description" : "-todo-", --- > "description" : "A traditional Earthling pastry meant for snacking on when underground.", items\generic\tier2\pearlpeajam.consumable 5c5 < "description" : "-todo-", --- > "description" : "Commonly known as Pearl Jam. Has a nice ring to it.", items\generic\tier2\quichelorraine.consumable 5c5 < "description" : "-todo-", --- > "description" : "A classic bacon quiche. Perfect for picnics!", items\generic\tier2\relish.consumable 5c5 < "description" : "-todo-", --- > "description" : "A sharp relish to compliment savoury meaty flavours.", items\generic\tier2\spikycookies.consumable 5c5 < "description" : "-todo-", --- > "description" : "Just like normal cookies only spikier. ", items\generic\tier2\stickyribs.consumable 5c5 < "description" : "-todo-", --- > "description" : "Sweet and sticky ribs, straight from the campfire. Delicious!", items\generic\tier2\stuffedtomato.consumable 5c5 < "description" : "-todo-", --- > "description" : "A baked tomato with a delicous savoury filling.", items\generic\tier2\sweetpopcorn.consumable 5c5 < "description" : "-todo-", --- > "description" : "Freshly popped corn, with a sweet, buttery coating.", items\generic\tier2\tomatosoup.consumable 5c5 < "description" : "-todo-", --- > "description" : "A rich, silky soup made of ripe tomatoes.", items\generic\tier3\automatoshake.consumable 9c9,16 < "wellfed" --- > { > "effect" : "foodheal70", > "duration" : 60 > }, > { > "effect" : "wellfed", > "duration" : 150 > } 10a18,20 > "blockingEffects" : [ > "wellfed" > ], items\generic\tier3\tropicalpunch.consumable 5c5 < "description" : "A tropical cocktail!", --- > "description" : "A tropical cocktail that packs a punch.", items\guns\unsorted\cupidsbow\cupidsbow.gun 13c13 < "level" : 1, --- > "level" : 4, 24c24 < "speed" : 40, --- > "speed" : 60, 26c26 < "power" : 5, --- > "power" : 6, items\swords\other\flowerbouquet.sword 75,106d74 < }, < < "parryBlockCooldown" : 1.2, < "parrySound" : "/sfx/melee/sword_parry.wav", < "parryParticle" : "shieldspark", < < "altStances" : { < "type" : "parry", < "rescaleTiming" : false, < "parryPoly" : [ [12, -14], [12, -2], [28, 6], [28, -38], [12, -26] ], < < "idle" : { < "twoHanded" : false, < "armAngle" : -90, < "swordAngle" : -90, < "handPosition" : [-6.0, -17.0], < "duration" : 0.1 < }, < "windup" : { < "twoHanded" : true, < "armAngle" : 58, < "swordAngle" : 208, < "handPosition" : [15.0, -17.0], < "duration" : 1.0 < }, < "cooldown" : { < "twoHanded" : false, < "armAngle" : -90, < "swordAngle" : -90, < "handPosition" : [-6.0, -17.0], < "duration" : 0.1 < } monsters\flying\skills\createflyingrangedattack.lua 15a16,17 > rangedAttack.windupTime = params.windupTime or 0 > rangedAttack.winddownTime = params.winddownTime or 0 23c25 < fireCooldown = 0, --- > fireCooldown = rangedAttack.windupTime, 34d35 < if stateData.shotsRemaining <= 0 then return true end 41c42,43 < local toTarget = world.distance(world.entityPosition(self.target), mcontroller.position()) --- > local sourcePosition = entity.configParameter("projectileSourcePosition") or {0, 0} > local toTarget = world.distance(world.entityPosition(self.target), entity.toAbsolutePosition(sourcePosition)) 44c46 < if stateData.fireCooldown <= 0 then --- > if stateData.fireCooldown <= 0 and stateData.shotsRemaining > 0 then 48a51 > if stateData.shotsRemaining <= 0 then stateData.timer = rangedAttack.winddownTime end 64c67,68 < world.spawnProjectile(rangedAttack.pType, mcontroller.position(), entity.id(), direction, false, pConfig) --- > local sourcePosition = entity.configParameter("projectileSourcePosition") or {0, 0} > world.spawnProjectile(rangedAttack.pType, entity.toAbsolutePosition(sourcePosition), entity.id(), direction, false, pConfig) monsters\ground\largebiped\largebiped.animation 675,679d674 < }, < < "shield" : { < "type" : "directive", < "directives" : "border=3;00FFFF99;00000000" monsters\ground\largebiped\largebiped.monstertype 171a172,174 > "maxShield" : { > "baseValue" : 0.0 > }, 176a180,182 > }, > "shieldRegen" : { > "baseValue" : 0.0 183a190,194 > "defaultPercentage" : 100 > }, > "shieldHealth" : { > "maxStat" : "maxShield", > "deltaStat" : "shieldRegen", monsters\ground\largequadruped\largequadruped.animation 78,90d77 < }, < < "shield" : { < "priority" : 2, < "default" : "off", < "states" : { < "off" : {}, < "on" : { < "frames" : 4, < "cycle" : 0.75, < "mode" : "loop" < } < } 465,488d451 < }, < < "shield" : { < "properties" : { < "zLevel" : 5, < "centered" : true, < "offset" : [0, -0.5] < }, < < "partStates" : { < "shield" : { < "on" : { < "properties" : { < "image" : "/monsters/ground/skills/shieldSpecial/bubbleshield.png:on." < } < }, < < "off" : { < "properties" : { < "image" : "/monsters/ground/skills/shieldSpecial/bubbleshield.png:off" < } < } < } < } 749,753d711 < }, < < "shield" : { < "type" : "directive", < "directives" : "border=3;00FFFF99;00000000" monsters\ground\largequadruped\largequadruped.monstertype 182a183,185 > "maxShield" : { > "baseValue" : 0.0 > }, 187a191,193 > }, > "shieldRegen" : { > "baseValue" : 0.0 194a201,205 > "defaultPercentage" : 100 > }, > "shieldHealth" : { > "maxStat" : "maxShield", > "deltaStat" : "shieldRegen", monsters\ground\skills\creategroundrangedattack.lua 121c121,129 < world.spawnProjectile(rangedAttack.pType, entity.toAbsolutePosition(entity.configParameter("projectileSourcePosition")), entity.id(), direction, false, pConfig) --- > local sourceOffset = entity.configParameter("projectileSourceOffset") > local sourcePosition = entity.configParameter("projectileSourcePosition") > if sourceOffset then > local angle = math.atan2(direction[2], math.abs(direction[1])) > sourceOffset = vec2.rotate(sourceOffset, angle) > sourcePosition = vec2.add(sourcePosition, sourceOffset) > end > > world.spawnProjectile(rangedAttack.pType, entity.toAbsolutePosition(sourcePosition), entity.id(), direction, false, pConfig) monsters\ground\skills\shieldspecial.lua 4c4,6 < duration = 0 --- > duration = 0, > regenCooldown = 0, > lastShieldHealth = 0 9,18d10 < if shieldSpecial.active then < entity.heal(math.min(shieldSpecial.health, args.damage)) < shieldSpecial.health = math.max(0, shieldSpecial.health - args.damage) < < if shieldSpecial.health == 0 then < shieldSpecial.deactivateShield() < end < elseif self.skillCooldownTimers["shieldSpecial"] <= 0 and args.damage < entity.health() then < shieldSpecial.activateShield() < end 21a14 > 23,27c16,31 < if shieldSpecial.active then < shieldSpecial.duration = shieldSpecial.duration - dt < if shieldSpecial.duration <= 0 then < shieldSpecial.deactivateShield() < end --- > --Keep the shield up if it's up, activate if the cooldown is off > if status.resourcePositive("shieldHealth") or self.skillCooldownTimers["shieldSpecial"] <= 0 then > shieldSpecial.activateShield() > end > > --Regenerate shield when we haven't taken damage for a while > if status.resource("shieldHealth") < shieldSpecial.lastShieldHealth then > status.removeEphemeralEffect("shieldregen") > shieldSpecial.regenCooldown = entity.configParameter("shieldSpecial.regenCooldown") > elseif shieldSpecial.regenCooldown <= 0 and status.resource("shieldHealth") < status.stat("maxShield") then > status.addEphemeralEffect("shieldregen") > end > shieldSpecial.regenCooldown = shieldSpecial.regenCooldown - dt > > if shieldSpecial.duration <= 0 then > shieldSpecial.deactivateShield() 28a33,35 > shieldSpecial.duration = shieldSpecial.duration - dt > > shieldSpecial.lastShieldHealth = status.resource("shieldHealth") 32,36c39,41 < shieldSpecial.active = true < shieldSpecial.health = entity.configParameter("shieldSpecial.shieldBaseHealth") + entity.configParameter("shieldSpecial.shieldHealthLevelingScale") * root.evalFunction("monsterLevelHealthIncrease", entity.level()) < shieldSpecial.duration = entity.configParameter("shieldSpecial.shieldTime") < -- entity.setAnimationState("shield", "on") < entity.setEffectActive("shield", true) --- > if self.skillCooldownTimers["shieldSpecial"] <= 0 then > shieldSpecial.duration = entity.configParameter("shieldSpecial.shieldTime") > end 37a43 > status.addEphemeralEffect("staticshield") 42,46c48,52 < shieldSpecial.active = false < shieldSpecial.health = 0 < shieldSpecial.duration = 0 < -- entity.setAnimationState("shield", "off") < entity.setEffectActive("shield", false) --- > status.removeEphemeralEffect("staticshield") > status.removeEphemeralEffect("shieldregen") > if self.skillCooldownTimers["shieldSpecial"] <= 0 then > self.skillCooldownTimers["shieldSpecial"] = entity.configParameter("shieldSpecial.cooldownTime") > end monsters\ground\skills\shieldspecial.monsterskill 10,14c10,12 < "cooldownTime" : 15.0, < < "shieldTime" : 5, < "shieldBaseHealth" : 10, < "shieldHealthLevelingScale" : 0.3, --- > "shieldTime" : 10, > "cooldownTime" : 5.0, > "regenCooldown" : 2.0, monsters\ground\skills\shieldspecial\bubbleshield.frames 12c12,14 < "on.4" : "on.2" --- > "on.4" : "on.2", > "flicker.1" : "on.1", > "flicker.2" : "off" monsters\skills\ranged\acidicspitattack.monsterskill 13c13,15 < "shots" : 1 --- > "shots" : 1, > "windupTime" : 0.05, > "winddownTime" : 0.2 monsters\skills\ranged\acidsprayattack.monsterskill 14c14,16 < "shots" : 1 --- > "shots" : 1, > "windupTime" : 0.05, > "winddownTime" : 0.2 monsters\skills\ranged\darkplasmaattack.monsterskill 14c14,16 < "shots" : 1 --- > "shots" : 1, > "windupTime" : 0.05, > "winddownTime" : 0.2 monsters\skills\ranged\explosivephlegmattack.monsterskill 14c14,16 < "shots" : 1 --- > "shots" : 1, > "windupTime" : 0.05, > "winddownTime" : 0.2 monsters\skills\ranged\fireballattack.monsterskill 14c14,16 < "shots" : 1 --- > "shots" : 1, > "windupTime" : 0.05, > "winddownTime" : 0.2 monsters\skills\ranged\fireswirlattack.monsterskill 17c17,19 < "fireAnimationTiming" : 0.13 --- > "fireAnimationTiming" : 0.13, > "windupTime" : 0.05, > "winddownTime" : 0.2 monsters\skills\ranged\shockballattack.monsterskill 15c15,17 < "shots" : 1 --- > "shots" : 1, > "windupTime" : 0.05, > "winddownTime" : 0.2 monsters\skills\ranged\sonicwaveattack.monsterskill 13c13,15 < "shots" : 1 --- > "shots" : 1, > "windupTime" : 0.05, > "winddownTime" : 0.2 monsters\swimming\fleestate.lua 3,11c3,9 < function fleeState.enter() < local target = entity.closestValidTarget(entity.configParameter("fleeTriggerDistance")) < if target ~= 0 then < return { < target = target, < fleeDistance = entity.randomizeParameterRange("fleeDistanceRange"), < overrideMovement = nil < } < end --- > function fleeState.enterWith(params) > if not params.flee then return nil end > > local toTarget = vec2.norm(entity.distanceToEntity(self.target)) > > return { timer = entity.randomizeParameterRange("fleeTimeRange"), fleeDirection = {-toTarget[1], -toTarget[2]} } > end 13c11,12 < return nil --- > function fleeState.enteringState(stateData) > -- world.logInfo("Entering flee state") 17,20c16,21 < local toTarget = entity.distanceToEntity(stateData.target) < local targetDist = world.magnitude(toTarget) < if targetDist > stateData.fleeDistance then < return true --- > if collides("upSensors") then > stateData.fleeDirection[2] = stateData.fleeDirection[2] + 0.1 > elseif collides("downSensors") then > stateData.fleeDirection[2] = stateData.fleeDirection[2] - 0.1 > elseif collides("blockedSensors") then > stateData.fleeDirection[1] = -stateData.fleeDirection[1] 23c24 < local movement = self.movement --- > stateData.fleeDirection = vec2.norm(stateData.fleeDirection) 25,41c26 < if stateData.overrideMovement ~= nil then < -- Crossing to the other side of the target if blocked in the current direction < if util.toDirection(toTarget[1]) ~= util.toDirection(stateData.overrideMovement[1]) then < stateData.overrideMovement = nil < else < movement = stateData.overrideMovement < end < else < movement = { -toTarget[1], -toTarget[2] } < end < < if util.blockSensorTest("blockedSensors", movement[1]) then < if targetDist > entity.configParameter("fleeTriggerDistance") then < return true < end < stateData.overrideMovement = { -movement[1], movement[2] } < end --- > move(stateData.fleeDirection, true) 43,47c28,30 < self.movementWeight = entity.configParameter("fleeMovementWeight") < self.movement = { < util.toDirection(movement[1]), < math.min(math.max(-0.8, movement[2]), 0.8) < } --- > stateData.timer = stateData.timer - dt > return stateData.timer <= 0 > end 49c32,33 < return false --- > function fleeState.leavingState(stateData) > setTarget(false) monsters\swimming\swimmingmonster.lua 2,6d1 < self.movement = { 1, 0 } < self.movementWeight = 1.0 < self.wanderTimer = 0 < self.collisionAvoidance = {} < 10,12d4 < self.state.leavingState = function(state) < self.wanderTimer = 0 < end 14c6 < entity.setAnimationState("movement", "swimming") --- > self.aggressive = entity.configParameter("aggressive", false) 16,17c8,16 < script.setUpdateDelta(10) < end --- > self.target = false > self.targetChangeTimer = 0 > self.targetHoldTimer = 0 > > self.homeLocation = mcontroller.position() > self.moveRatioLimit = entity.configParameter("moveRatioLimit", false) > self.directionChangeTimer = 0 > self.fullSpeed = mcontroller.baseParameters().flySpeed > self.slowSpeed = self.fullSpeed / 2.0 19,25c18,19 < function flockSwimmerInfo() < return { < movement = self.movement, < damaged = self.damagedTimer ~= nil, < isLeader = self.isFlockLeader < } < end --- > self.rotation = 0 > entity.setAnimationState("movement", "swimSlow") 27,28c21,24 < function damage(args) < self.damagedTimer = 0.5 --- > entity.setDeathSound(entity.randomizeParameter("deathNoise")) > entity.setDeathParticleBurst(entity.configParameter("deathParticles")) > > script.setUpdateDelta(10) 31,36c27,30 < function update(dt) < if self.damagedTimer ~= nil then < if self.damagedTimer < 0 then < self.damagedTimer = nil < else < self.damagedTimer = self.damagedTimer - dt --- > function damage(args) > if self.targetChangeTimer <= 0 and args.sourceId ~= self.target and args.sourceId ~= 0 then > if not self.target then > self.state.endState() 37a32 > setTarget(args.sourceId) 38a34 > end 40,46c36,39 < if not self.state.update(dt) then < wander(dt) < end < < if self.movement ~= nil then < self.movement = calculateFinalMovement(dt, self.movement, self.movementWeight) < self.movementWeight = 1.0 --- > function findTarget() > local targetId = entity.closestValidTarget(entity.configParameter("targetRadius")) > if targetValid(targetId) then setTarget(targetId) end > end 48,55c41,43 < if self.movement[2] ~= 0 then < local rotateAmount = -math.atan2(self.movement[2], self.movement[1]) < if rotateAmount < 0 then rotateAmount = rotateAmount + 2 * math.pi end < if self.movement[1] < 0 then rotateAmount = math.pi - rotateAmount end < entity.rotateGroup("all", rotateAmount) < else < entity.rotateGroup("all", 0) < end --- > function targetValid(targetId) > return entity.isValidTarget(targetId) and world.liquidAt(world.entityPosition(targetId)) > end 57c45,53 < mcontroller.controlFly(vec2.mul({ self.movement[1], self.movement[2] }, mcontroller.baseParameters().flySpeed)) --- > function setTarget(targetId) > if targetId and targetId ~= 0 and self.targetChangeTimer <= 0 then > world.logInfo("target set to %s", targetId) > self.target = targetId > self.targetChangeTimer = entity.configParameter("targetChangeCooldown") > -- setAggressive(true) > else > self.target = false > self.targetChangeTimer = 0 61,64c57,60 < function wander(dt) < self.movement[1] = util.toDirection(self.movement[1]) < if self.wanderTimer > entity.configParameter("wanderChangeDirectionTime") then < self.movement[2] = 0 --- > function updateTarget() > if self.target and not world.entityExists(self.target) then > self.target = false > self.aggressive = entity.configParameter("aggressive", false) 67,74c63,64 < self.wanderTimer = self.wanderTimer + dt < if self.wanderTimer > entity.configParameter("wanderChangeDirectionCooldown") then < if self.isFlockLeader then < self.movement[2] = entity.randomizeParameterRange("wanderChangeDirectionYRange") < self.movement[1] = -self.movement[1] < end < < self.wanderTimer = 0 --- > if not self.target and self.aggressive then > findTarget() 78,85c68,74 < function calculateFinalMovement(dt, intendedMovement, intendedMovementWeight) < local movements = { { intendedMovement, intendedMovementWeight } } < < local collisionMovement = calculateCollisionMovement(intendedMovement) < if collisionMovement ~= nil then < self.collisionAvoidance.timer = entity.configParameter("collisionAvoidanceTime") < self.collisionAvoidance.movement = collisionMovement < end --- > function update(dt) > if not mcontroller.inLiquid() then > if self.state.stateDesc() ~= "flopState" then > self.state.pickState({flop = true}) > end > else > updateTarget() 87,89c76,77 < if self.collisionAvoidance.movement ~= nil then < table.insert(movements, { self.collisionAvoidance.movement, entity.configParameter("collisionAvoidanceWeight") }) < end --- > if self.target then > script.setUpdateDelta(2) 91,99c79,83 < -- Keep responding to collision avoidance for a while, to prevent bouncing < -- back and forth between collision and where the flock or state wants the < -- monster to move to. This is particularly noticable when a flock hits a wall < -- the leading swimmers start to turn around < if self.collisionAvoidance.timer ~= nil then < self.collisionAvoidance.timer = self.collisionAvoidance.timer - dt < if self.collisionAvoidance.timer < 0 then < self.collisionAvoidance.timer = nil < self.collisionAvoidance.movement = nil --- > if self.state.stateDesc() ~= "fleeState" and not targetValid(self.target) then > self.state.pickState({flee = true}) > end > else > script.setUpdateDelta(10) 101d84 < end 103,108c86,87 < local flockEntities = { damaged = 0 } < local flockMovement = flocking.calculateMovement("flockSwimmerInfo", flockEntities) < if flockEntities.damaged ~= 0 then < local entityPosition = world.entityPosition(flockEntities.damaged) < if entityPosition ~= nil then < self.state.pickState({ scatterSource = entityPosition }) --- > if not self.state.hasState() then > self.state.pickState() 112,123c91 < -- Flock leaders get to move wherever they want, without being influenced by < -- the rest of the flock, while the rest of the flock doesn't have as much say < -- in where they want to go < if not self.isFlockLeader then < table.insert(movements, { flockMovement, entity.configParameter("flockMovementWeight") }) < end < < local combinedMovement = { 0, 0 } < for i, movementComponent in ipairs(movements) do < local movement, weight = table.unpack(movementComponent) < combinedMovement = vec2.add(combinedMovement, vec2.mul(movement, weight)) < end --- > self.state.update(dt) 125c93 < return vec2.norm(combinedMovement) --- > if self.directionChangeTimer > 0 then self.directionChangeTimer = self.directionChangeTimer - dt end 128,134c96,101 < function calculateCollisionMovement(intendedMovement) < local hasCollision = false < local movement = { intendedMovement[1], intendedMovement[2] } < < if util.blockSensorTest("blockedSensors", movement[1]) then < movement[1] = -movement[1] < hasCollision = true --- > function move(direction, run) > if self.moveRatioLimit and direction[1] ~= 0 then > -- limit movement angle > if math.abs(direction[2] / direction[1]) > self.moveRatioLimit then > direction[2] = math.abs(direction[1] * self.moveRatioLimit) * util.toDirection(direction[2]) > end 137,146c104,109 < if util.blockSensorTest("upSensors", movement[1]) then < if movement[2] < 0 then < movement[2] = -movement[2] < else < movement[2] = 1 < end < hasCollision = true < elseif util.blockSensorTest("downSensors", movement[1]) then < if movement[2] > 0 then < movement[2] = -movement[2] --- > direction = vec2.norm(direction) > > -- don't change direction too often > if util.toDirection(direction[1]) ~= util.toDirection(mcontroller.facingDirection()) then > if self.directionChangeTimer > 0 then > direction[1] = -direction[1] 148c111 < movement[2] = -1 --- > self.directionChangeTimer = entity.configParameter("directionChangeCooldown") 150d112 < hasCollision = true 153,154c115,121 < if hasCollision then < return movement --- > -- calculate rotation > if direction[2] ~= 0 then > local rotateAmount = math.atan2(direction[2], direction[1]) > if rotateAmount < 0 then rotateAmount = rotateAmount + 2 * math.pi end > if direction[1] < 0 then rotateAmount = math.pi - rotateAmount end > > self.rotation = rotateAmount 156c123,134 < return nil --- > self.rotation = 0 > end > entity.rotateGroup("all", self.rotation) > mcontroller.setRotation(mcontroller.facingDirection() > 0 and self.rotation or -self.rotation) > > -- move > if run ~= false then > mcontroller.controlFly(vec2.mul({ direction[1], direction[2] }, self.fullSpeed)) > entity.setAnimationState("movement", "swimFast") > else > mcontroller.controlFly(vec2.mul({ direction[1], direction[2] }, self.slowSpeed)) > entity.setAnimationState("movement", "swimSlow") 158a137,147 > > function collides(sensorGroup, direction) > for i, sensor in ipairs(entity.configParameter(sensorGroup)) do > world.debugPoint(entity.toAbsolutePosition(vec2.rotate(sensor, self.rotation)), "blue") > if world.pointCollision(entity.toAbsolutePosition(vec2.rotate(sensor, self.rotation)), true) then > return true > end > end > > return false > end \ No newline at end of file monsters\unique\apexbrainmutant\apexbrainmutant.animation 7d6 < 14c13,22 < "move" : { --- > "jump" : { > "frames" : 3, > "cycle" : 0.5, > "mode" : "transition", > "transition" : "fall" > }, > "fall" : { > "frames" : 1 > }, > "walk" : { 19,20c27,28 < "attack" : { < "frames" : 3, --- > "run" : { > "frames" : 4, 22a31,73 > }, > "chargeWindup" : { > "frames" : 3, > "cycle" : 0.4, > "mode" : "loop" > }, > "charge" : { > "frames" : 4, > "mode" : "loop", > "cycle" : 0.15 > }, > "knockback" : { > "frames" : 1 > }, > "knockout" : { > "frames" : 1 > } > } > }, > > "attack" : { > "priority" : 1, > "default" : "idle", > "states" : { > "idle" : { > "frames" : 4, > "mode" : "loop", > "cycle" : 1 > }, > "melee" : { > "frames" : 3, > "cycle" : 0.4, > "mode" : "loop" > }, > "shooting" : { > "frames" : 3, > "cycle" : 0.4, > "mode" : "loop" > }, > "chargeAttack" : { > "frames" : 4, > "mode" : "loop", > "cycle" : 0.15 51c102 < "move" : { --- > "walk" : { 56c107,127 < "attack" : { --- > "run" : { > "properties" : { > "image" : ":move." > } > }, > "charge" : { > "properties" : { > "image" : ":walk." > } > }, > "jump" : { > "properties" : { > "image" : ":jump." > } > }, > "fall" : { > "properties" : { > "image" : ":fall." > } > }, > "chargeWindup" : { 59a131,163 > }, > "knockback" : { > "properties" : { > "image" : ":idle." > } > }, > "knockout" : { > "properties" : { > "image" : ":idle." > } > } > }, > > "attack" : { > "melee" : { > "properties" : { > "image" : ":attack." > } > }, > "shooting" : { > "properties" : { > "image" : ":attack." > } > }, > "charge" : { > "properties" : { > "image" : ":attack." > } > }, > "chargeAttack" : { > "properties" : { > "image" : ":walk." > } 75c179,180 < "rotationGroup" : "arm", --- > "image" : ":arm", > "rotationGroup" : "projectileAim", 77,96d181 < }, < < "partStates" : { < "movement" : { < "idle" : { < "properties" : { < "image" : ":arm" < } < }, < "move" : { < "properties" : { < "image" : ":arm" < } < }, < "attack" : { < "properties" : { < "image" : ":arm" < } < } < } 103c188 < "arm" : { --- > "projectileAim" : { monsters\unique\apexbrainmutant\apexbrainmutant.monstertype 5a6 > "reversed" : true, 14,15c15 < "/monsters/unique/apexbrainmutant/behavior.lua", < "/scripts/sensors.lua", --- > "/monsters/ground/groundMonster.lua", 18c18,24 < "/scripts/vec2.lua" --- > "/scripts/vec2.lua", > > "/monsters/ground/approachState.lua", > "/monsters/ground/fleeState.lua", > "/monsters/ground/wanderState.lua", > > "/monsters/ground/skills/createGroundRangedAttack.lua" 22a29,60 > "baseSkills" : [ "meleeAttack"], > "specialSkills" : [ "shockingBoltAttack" ], > > "projectileSourceOffset" : [2.5, 0.125], > "projectileSourcePosition" : [-0.25, 0], > > "meleeProjectile" : "shock", > > "attackStartDistance" : 3.5, > "attackTime" : 0.75, > "attackCooldownTime" : 0.5, > > "aggressive" : true, > "territoryDistance" : 10.0, > "territorialTargetRadius" : 20.0, > "minimalTargetRadius" : 6.0, > "targetSearchTime" : 0.5, > "targetHoldTime" : 5.0, > > "closeDistance" : 1.5, > > "wanderTime" : [4.0, 6.0], > "wanderMovementTime" : [2.0, 3.0], > > "idleSoundTime" : [45.0, 60.0], > "painSoundTimer" : 2.0, > > "jumpTargetDistance" : 100, > "jumpTime" : [1.4, 2.0], > > "wanderJumpProbability" : 0, > 94,111c132 < "feetOffset" : [0, -8], < < "collisionSensors" : [ [2.0, -1.75], [2.0, 0.75] ], < < "nearGroundSensor" : [ [0.0, -2.0] ], < "midGroundSensor" : [ [0.0, -5.0] ], < < "moveTimeRange" : [2.5, 5.0], < "moveCooldownTime" : 1.0, < < "targetAcquisitionDistance" : 35.0, < < "attackTargetHoldTime" : 5.0, < "attackDistance" : 15.0, < < "armBaseOffset" : [-0.25, 0], < "armTipOffset" : [3.0, 0.125], < "aimCorrectionOffset" : [0, -1] --- > "feetOffset" : [0, -8] monsters\unique\apexbrainmutant\default.frames 11a12,18 > }, > > "aliases" : { > "fall.1" : "idle.1", > "jump.1" : "attack.1", > "jump.2" : "attack.2", > "jump.3" : "attack.3" monsters\unique\apexmutant\apexmutant.animation 61a62,67 > "shooting" : { > "frames" : 4, > "cycle" : 0.4, > "mode" : "transition", > "transition" : "idle" > }, 66c72 < "frames" : 4, --- > "frames" : 8, 68c74 < "mode" : "end" --- > "mode" : "loop" 134a141,163 > "attack" : { > "melee" : { > "properties" : { > "image" : ":attack." > } > }, > "shooting" : { > "properties" : { > "image" : ":attack." > } > }, > "charge" : { > "properties" : { > "image" : ":attack." > } > }, > "chargeAttack" : { > "properties" : { > "image" : ":walk." > } > } > }, > 143a173,178 > } > }, > > "rotationGroups" : { > "projectileAim" : { > "angularVelocity" : 1.5 monsters\unique\apexmutant\apexmutant.monstertype 21c21,23 < "/monsters/ground/wanderState.lua" --- > "/monsters/ground/wanderState.lua", > > "/monsters/ground/skills/createGroundRangedAttack.lua" 28a31,35 > "baseSkills" : [ "meleeAttack"], > "specialSkills" : [ "shockBallAttack" ], > > "projectileSourcePosition" : [0.5, 0], > 32d38 < "skills" : [ "rushAttack" ], monsters\unique\po\behavior.lua 97c97 < if not mcontroller.onGround() and self.jumpHoldTime > 0 then --- > if self.jumpHoldTime > 0 then 99c99,101 < self.jumpHoldTime = math.max(0, self.jumpHoldTime - dt) --- > self.jumpHoldTime = self.jumpHoldTime - script.updateDt() > else > script.setUpdateDelta(5) 108c110 < self.jumpHoldTime = 0 --- > self.jumpHoldTime = entity.configParameter("smallBounceHoldTime") 109a112 > script.setUpdateDelta(1) monsters\unique\po\megapo.monstertype 103c103,104 < "largeHumpHoldTime" : 5, --- > "largeHumpHoldTime" : 0.2, > "smallBounceHoldTime" : 0.05, monsters\unique\po\micropo.monstertype 101c101,102 < "largeHumpHoldTime" : 5, --- > "largeHumpHoldTime" : 0.2, > "smallBounceHoldTime" : 0.05, monsters\unique\po\po.monstertype 101c101,102 < "largeHumpHoldTime" : 5, --- > "largeHumpHoldTime" : 0.2, > "smallBounceHoldTime" : 0.05, monsters\unique\pogolem\pogolem.animation 7d6 < 17c16 < "throw" : { --- > "fall" : { 19c18 < "mode" : "end" --- > "mode" : "loop" 25c24,60 < "ranged" : { --- > "run" : { > "frames" : 8, > "cycle" : 0.5, > "mode" : "loop" > }, > "chargeWindup" : { > "frames" : 8, > "cycle" : 0.375, > "mode" : "loop" > }, > "charge" : { > "frames" : 8, > "cycle" : 0.275, > "mode" : "loop" > }, > "knockback" : { > "frames" : 1 > }, > "knockout" : { > "frames" : 1 > } > } > }, > > "attack" : { > "priority" : 1, > "default" : "idle", > "states" : { > "idle" : { > "frames" : 4, > "mode" : "loop" > }, > "melee" : { > "frames" : 4, > "mode" : "end" > }, > "shooting" : { 28,31c63,73 < "transition" : "idle", < "frameProperties" : { < "projectile" : [ null, null, null, null, "poopBurst", null, null, null ] < } --- > "transition" : "idle" > }, > "charge" : { > "frames" : 8, > "cycle" : 0.8, > "mode" : "loop" > }, > "chargeAttack" : { > "frames" : 8, > "cycle" : 0.6, > "mode" : "loop" 55a98,112 > "walk" : { > "properties" : { > "image" : ":walk." > } > }, > "run" : { > "properties" : { > "image" : ":walk." > } > }, > "charge" : { > "properties" : { > "image" : ":walk." > } > }, 61c118 < "throw" : { --- > "fall" : { 63c120 < "image" : ":throw." --- > "image" : ":jump." 66c123 < "walk" : { --- > "chargeWindup" : { 71c128,146 < "ranged" : { --- > "knockback" : { > "properties" : { > "image" : ":idle." > } > }, > "knockout" : { > "properties" : { > "image" : ":idle." > } > } > }, > > "attack" : { > "melee" : { > "properties" : { > "image" : ":throw." > } > }, > "shooting" : { 74a150,159 > }, > "charge" : { > "properties" : { > "image" : ":walk." > } > }, > "chargeAttack" : { > "properties" : { > "image" : ":walk." > } 86a172,177 > } > }, > > "rotationGroups" : { > "projectileAim" : { > "angularVelocity" : 1.5 monsters\unique\pogolem\pogolem.monstertype 15,16c15 < "/monsters/unique/pogolem/behavior.lua", < "/scripts/sensors.lua", --- > "/monsters/ground/groundMonster.lua", 19c18,24 < "/scripts/vec2.lua" --- > "/scripts/vec2.lua", > > "/monsters/ground/approachState.lua", > "/monsters/ground/fleeState.lua", > "/monsters/ground/wanderState.lua", > > "/monsters/ground/skills/createGroundRangedAttack.lua" 21a27,53 > "baseSkills" : [ "poopBreathAttack"], > "specialSkills" : [ "throwPoAttack" ], > > "projectileSourcePosition" : [1.875, 1], > > "attackStartDistance" : 3.5, > "attackTime" : 0.75, > "attackCooldownTime" : 0.5, > > "aggressive" : true, > "territoryDistance" : 10.0, > "territorialTargetRadius" : 20.0, > "minimalTargetRadius" : 6.0, > "targetSearchTime" : 0.5, > "targetHoldTime" : 5.0, > > "closeDistance" : 1.5, > > "wanderTime" : [4.0, 6.0], > "wanderMovementTime" : [2.0, 3.0], > > "idleSoundTime" : [45.0, 60.0], > "painSoundTimer" : 2.0, > > "jumpTargetDistance" : 6, > "jumpTime" : [1.4, 2.0], > 92,109c124 < "feetOffset" : [0, -8], < < "blockedSensors" : [ [3, -2], [3, -1], [3, 0], [3, 1], [3, 1.5] ], < < "moveTimeRange" : [2.5, 5.0], < "moveCooldown" : 2.0, < < "targetNoticeRadius" : 30, < < "throwMaxDistance" : 15, < "throwMaxMinions" : 5, < "throwStartTime" : 0.5, < "throwEndTime" : 0.5, < "throwSpawnOffset" : [1.875, 1], < "throwCooldown" : 5, < < "shoutMaxDistance" : 10, < "shoutProjectileOffset" : [0.875, 0.75] --- > "feetOffset" : [0, -8] monsters\unique\serpentdroid\serpentdroid.animation 7d6 < 14c13,21 < "move" : { --- > "jump" : { > "frames" : 12, > "mode" : "loop", > "cycle" : 1 > }, > "fall" : { > "frames" : 1 > }, > "walk" : { 19,23c26,29 < "shieldStart" : { < "frames" : 9, < "mode" : "transition", < "transition" : "shield", < "cycle" : 0.7 --- > "run" : { > "frames" : 4, > "mode" : "loop", > "cycle" : 0.15 25,26c31,32 < "shield" : { < "frames" : 14, --- > "chargeWindup" : { > "frames" : 3, 28c34,39 < "cycle" : 1 --- > "cycle" : 0.25 > }, > "charge" : { > "frames" : 4, > "mode" : "loop", > "cycle" : 0.15 30,34c41,42 < "shieldEnd" : { < "frames" : 5, < "mode" : "transition", < "transition" : "idle", < "cycle" : 0.4 --- > "knockback" : { > "frames" : 1 36c44,69 < "attack" : { --- > "knockout" : { > "frames" : 1 > } > } > }, > > "attack" : { > "priority" : 1, > "default" : "idle", > "states" : { > "idle" : { > "frames" : 3, > "mode" : "loop", > "cycle" : 0.25 > }, > "melee" : { > "frames" : 3, > "mode" : "loop", > "cycle" : 0.25 > }, > "shooting" : { > "frames" : 3, > "mode" : "loop", > "cycle" : 0.25 > }, > "chargeAttack" : { 68c101 < "move" : { --- > "walk" : { 73c106 < "shieldStart" : { --- > "run" : { 75c108 < "image" : ":shieldStart." --- > "image" : ":move." 78c111 < "shield" : { --- > "charge" : { 80c113 < "image" : ":shield." --- > "image" : ":move." 83c116 < "shieldEnd" : { --- > "jump" : { 85c118 < "image" : ":shieldEnd." --- > "image" : ":idle." 88c121 < "attack" : { --- > "fall" : { 90c123 < "image" : ":attack." --- > "image" : ":idle." 92,96c125,126 < } < }, < < "portrait" : { < "portrait" : { --- > }, > "chargeWindup" : { 98c128 < "image" : ":idle.1" --- > "image" : ":attack." 100,113c130,131 < } < } < } < }, < < "arm" : { < "properties" : { < "rotationGroup" : "arm", < "zLevel" : 2 < }, < < "partStates" : { < "movement" : { < "idle" : { --- > }, > "knockback" : { 115c133 < "image" : ":arm" --- > "image" : ":idle." 118c136 < "move" : { --- > "knockout" : { 120c138 < "image" : ":arm" --- > "image" : ":idle." 122,123c140,144 < }, < "shieldStart" : { --- > } > }, > > "attack" : { > "melee" : { 125c146 < "image" : ":arm" --- > "image" : ":attack." 128c149 < "shield" : { --- > "shooting" : { 130c151 < "image" : ":arm" --- > "image" : ":attack." 133c154 < "shieldEnd" : { --- > "charge" : { 135c156 < "image" : ":arm" --- > "image" : ":attack." 138c159 < "attack" : { --- > "chargeAttack" : { 140c161,169 < "image" : ":arm" --- > "image" : ":walk." > } > } > }, > > "portrait" : { > "portrait" : { > "properties" : { > "image" : ":idle.1" 144a174,181 > }, > > "arm" : { > "properties" : { > "image" : ":arm", > "rotationGroup" : "projectileAim", > "zLevel" : 2 > } 150c187 < "arm" : { --- > "projectileAim" : { monsters\unique\serpentdroid\serpentdroid.monstertype 15,16c15 < "/monsters/unique/serpentdroid/behavior.lua", < "/scripts/sensors.lua", --- > "/monsters/ground/groundMonster.lua", 19c18,22 < "/scripts/vec2.lua" --- > "/scripts/vec2.lua", > > "/monsters/ground/wanderState.lua", > > "/monsters/ground/skills/createGroundRangedAttack.lua" 23a27,52 > "baseSkills" : [ "plasmaBurstAttack"], > "specialSkills" : [ "bubbleShieldSpecial" ], > > "projectileSourceOffset" : [1.125, 0], > "projectileSourcePosition" : [-1.125, -0.5], > > "aggressive" : true, > "territoryDistance" : 10.0, > "territorialTargetRadius" : 20.0, > "minimalTargetRadius" : 6.0, > "targetSearchTime" : 0.5, > "targetHoldTime" : 5.0, > > "closeDistance" : 1.5, > > "wanderTime" : [4.0, 6.0], > "wanderMovementTime" : [2.0, 3.0], > > "idleSoundTime" : [45.0, 60.0], > "painSoundTimer" : 2.0, > > "jumpTargetDistance" : 100, > "jumpTime" : [0, 0], > > "wanderJumpProbability" : 0, > 33c62 < "jumpSpeed" : 5, --- > "jumpSpeed" : 0, 71a101,103 > "maxShield" : { > "baseValue" : 0.0 > }, 76a109,111 > }, > "shieldRegen" : { > "baseValue" : 0.0 84a120,124 > }, > "shieldHealth" : { > "maxStat" : "maxShield", > "deltaStat" : "shieldRegen", > "defaultPercentage" : 100 107,108d146 < "armBaseOffset" : [-1.125, -0.5], < "armTipOffset" : [1.125, -0.5], monsters\unique\sewerfly\sewerfly.animation 6c6 < "default" : "idle", --- > "default" : "standing", 9c9 < "fly" : { --- > "standing" : { 14c14,19 < "ground" : { --- > "flying" : { > "frames" : 5, > "cycle" : 0.30, > "mode" : "loop" > }, > "knockback" : { 17,19c22,27 < "attack" : { < "frames" : 4, < "cycle" : 0.25, --- > "knockout" : { > "frames" : 1 > }, > "gliding" : { > "frames" : 5, > "cycle" : 0.30, 22c30 < "idle" : { --- > "flyingAttack" : { 45c53,59 < "fly" : { --- > "standing" : { > "properties" : { > "image" : ":fly." > } > }, > > "flying" : { 50c64,65 < "ground" : { --- > > "knockback" : { 55c70,71 < "attack" : { --- > > "knockout" : { 57c73 < "image" : ":attack." --- > "image" : ":ground" 60c76,77 < "idle" : { --- > > "gliding" : { 62c79,85 < "image" : ":idle." --- > "image" : ":fly." > } > }, > > "flyingAttack" : { > "properties" : { > "image" : ":attack." 84c107,113 < "fly" : { --- > "standing" : { > "properties" : { > "image" : ":idle." > } > }, > > "flying" : { 89c118,125 < "ground" : { --- > > "knockback" : { > "properties" : { > "image" : ":ground" > } > }, > > "knockout" : { 94c130,131 < "attack" : { --- > > "gliding" : { 96c133 < "image" : ":attack." --- > "image" : ":fly." 99c136,137 < "idle" : { --- > > "flyingAttack" : { 101c139 < "image" : ":idle." --- > "image" : ":attack." monsters\unique\sewerfly\sewerfly.monstertype 15c15,16 < "/monsters/unique/sewerfly/behavior.lua", --- > "/monsters/flying/flyingMonster.lua", > "/scripts/util.lua", 18,19c19,25 < "/scripts/util.lua", < "/scripts/vec2.lua" --- > "/scripts/vec2.lua", > > "/monsters/flying/skills/createFlyingRangedAttack.lua", > "/monsters/flying/circleState.lua", > "/monsters/flying/wanderState.lua", > "/monsters/flying/landState.lua" , > "/monsters/flying/turnState.lua" 21a28,68 > > "baseSkills" : [ "flyingSwoopBounceAttack" ], > "specialSkills" : [ "acidicSpitAttack" ], > > "projectileSourcePosition" : [1.5, -0.5], > > "attackStartDistance" : 20.0, > "attackMaxDistance" : 30.0, > "attackCooldownTime" : 4.0, > > "targetRadius" : 30.0, > "targetSearchTime" : 0.5, > "targetHoldTime" : 5.0, > > "wanderRiseSpeed" : 0.9, > "wanderRiseTimeRange" : [0.5, 2.0], > "wanderGlideSpeed" : 0.6, > "wanderGlideTimeRange" : [1.0, 4.0], > "wanderFormationOffset" : 2.0, > "wanderSpeedMultiplier" : 0.4, > "wanderEndChance" : 0.2, > > "turnTime" : 1.0, > "turnTiltRatio" : 0.5, > > "circleWidthRange" : [8.0, 12.0], > "circleHeight" : 1.0, > "circleOffsetYRange" : [6.0, 8.0], > "circleTiltRadius" : 1.5, > "circleTime" : 2.0, > > "landRestTimeRange" : [0, 0], > "landDisturbDistance" : 10.0, > "landCooldownTimeRange" : [10.0, 30.0], > > "glideTime" : 2.0, > "glideCooldownTime" : 10.0, > "glideSinkingSpeed" : 0.8, > "glideSpiralDispersion" : 0.2, > > 92c139,144 < "blockedSensors" : [ [2.0, 0.0], [2.0, 1.0], [2.0, -1.0] ], --- > "blockedSensors" : [ [1.5, -1.1], [1.5, -0.5], [1.5, 0.5], [1.5, 1.1] ], > "upSensors" : [ [-0.75, -1.8], [0.75, -1.8], [1.5, -1.8] ], > "downSensors" : [ [-0.75, 1.8], [0.75, 1.8], [1.5, 1.8] ], > "groundSensors" : [ [0.0, -2.0], [0.0, -6.0], [0.0, -15.0], [0.0, -30.0] ], > "ceilingSensors" : [ [0.0, 2.0], [0.0, 6.0], [0.0, 10.0] ], > "environmentSensors" : [ [0.0, 0.0], [0.0, 2.0], [0.0, -2.0], [2.0, 0.0], [-2.0, 0.0], [2.0, 2.0], [2.0, -2.0], [-2.0, 2.0], [-2.0, -2.0] ], npcs\mission\floranpredator.npctype 9c9 < "amount" : 2.0 --- > "amount" : 40.0 38c38 < "noticeDistance" : 30, --- > "noticeDistance" : 25, 41c41 < "attackDistance" : 30, --- > "attackDistance" : 25, 44c44 < "attackSayingPercent" : 60, --- > "attackSayingPercent" : 100, 61d60 < "Gotcha!", 64c63 < "No way outsss!", --- > "No waysss out!", 65a65,66 > "IT'SSS HAPPENING!", > "Let the gamesss begin!", 68c69 < "Come out to play!", --- > "Come out and play!", 72c73,78 < "Freshhhhh prey!" --- > "The hunt beginsss!", > "Your time isss up!", > "Fresssh meat!", > "Time to ssslay!", > "Sssay goodbye!", > "Fresssh prey!" 142d147 < "head" : [ { "name" : "florantier5head", "parameters" : { "colorIndex" : 5 } } ], 173a179,194 > "head" : [ { "name" : "vicioushead", "parameters" : { "colorIndex" : 0 } } ], > "chest" : [ { "name" : "florantier2chest", "parameters" : { "colorIndex" : 2 } } ], > "legs" : [ { "name" : "florantier2pants", "parameters" : { "colorIndex" : 2 } } ], > "primary" : [ > { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, > { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, > { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, > { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, > { "name" : "generatedsword", "parameters" : { "definition" : "commondagger" } }, > { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } > ], > "alt" : [ > { "name" : "generatedshield", "parameters" : { "definition" : "floranbasicshield" } } > ] > }, > { 234c255 < "baseValue" : 40.0 --- > "baseValue" : 100.0 237c258 < "baseValue" : 40.0 --- > "baseValue" : 100.0 240c261 < "baseValue" : 1.0 --- > "baseValue" : 26.0 npcs\mission\floransniper.npctype 9c9 < "amount" : 2.0 --- > "amount" : 48.0 38c38 < "noticeDistance" : 30, --- > "noticeDistance" : 40, 41c41 < "attackDistance" : 30, --- > "attackDistance" : 40, 99,104c99 < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commondagger" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } --- > { "name" : "generatedsword", "parameters" : { "definition" : "commondagger" } } 142c137 < "baseValue" : 40.0 --- > "baseValue" : 50.0 145c140 < "baseValue" : 40.0 --- > "baseValue" : 100.0 148c143 < "baseValue" : 1.0 --- > "baseValue" : 32.0 npcs\mission\survivor.npctype 747c747 < "baseValue" : 40.0 --- > "baseValue" : 300.0 753c753 < "baseValue" : 1.0 --- > "baseValue" : 2.0 npcs\outpost\outpostapexrefugee.npctype 5a6,7 > "offeredQuests" : [ "apexrefugee4.gearup" ], > "turnInQuests" : [ "apexrefugee4.gearup" ], npcs\outpost\outpostavianexplorer.npctype 6,7c6,7 < "offeredQuests" : [ "avianexplorer3.gearup" ], < "turnInQuests" : [ "avianexplorer3.gearup" ], --- > "offeredQuests" : [ "avianexplorer3.gearup", "avianexplorer4.gearup" ], > "turnInQuests" : [ "avianexplorer3.gearup", "avianexplorer4.gearup" ], npcs\outpost\outpostavianmercenary.npctype 5a6,7 > "offeredQuests" : [ "avianmercenary4.gearup" ], > "turnInQuests" : [ "avianmercenary4.gearup" ], npcs\outpost\outpostbountyhunter.npctype 6,7c6,7 < "offeredQuests" : [ "bountyhunter1.gearup", "bountyhunter2.gearup", "bountyhunter3.gearup" ], < "turnInQuests" : [ "bountyhunter1.gearup", "bountyhunter2.gearup", "bountyhunter3.gearup" ], --- > "offeredQuests" : [ "bountyhunter1.gearup", "bountyhunter2.gearup", "bountyhunter3.gearup", "bountyhunter4.gearup" ], > "turnInQuests" : [ "bountyhunter1.gearup", "bountyhunter2.gearup", "bountyhunter3.gearup", "bountyhunter4.gearup" ], npcs\outpost\outpostfloranhunter.npctype 5a6,7 > "offeredQuests" : [ "floranhunter4.gearup" ], > "turnInQuests" : [ "floranhunter4.gearup" ], npcs\outpost\outposthumanexcon.npctype 6,7c6,7 < "offeredQuests" : [ "humanexcon2.gearup" ], < "turnInQuests" : [ "humanexcon2.gearup" ], --- > "offeredQuests" : [ "humanexcon2.gearup", "humanexcon4.gearup" ], > "turnInQuests" : [ "humanexcon2.gearup", "humanexcon4.gearup" ], objects\farmables\automato\automatoseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3] ], objects\farmables\automato\wildautomatoseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3] ], objects\farmables\avesmingo\avesmingoseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3] ], objects\farmables\avesmingo\wildavesmingoseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3] ], objects\farmables\banana\bananaseed.frames 4c4 < "size" : [16, 32], --- > "size" : [16, 48], objects\farmables\banana\bananaseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3], [1, 4], [0, 4], [1, 5], [0, 5] ], objects\farmables\banana\wildbananaseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3], [1, 4], [0, 4], [1, 5], [0, 5] ], objects\farmables\beakseed\beakseedseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\beakseed\wildbeakseedseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\boltbulb\boltbulbseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\boltbulb\wildboltbulbseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\boneboo\bonebooseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3] ], objects\farmables\boneboo\wildbonebooseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3] ], objects\farmables\carrot\carrotseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\carrot\wildcarrotseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\chili\chiliseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3], [1, 4], [0, 4] ], objects\farmables\chili\wildchiliseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3], [1, 4], [0, 4] ], objects\farmables\coffee\coffeeseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3] ], objects\farmables\coffee\wildcoffeeseed.object 28c28 < "spaceScan" : 0.1, --- > "spaces" :[ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3] ], objects\farmables\coralcreep\coralcreepseed.object 27c27 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3] ], objects\farmables\coralcreep\wildcoralcreepseed.object 27c27 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3] ], objects\farmables\corn\cornseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3], [1, 4], [0, 4] ], objects\farmables\corn\wildcornseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3], [1, 4], [0, 4] ], objects\farmables\crystalplant\crystalplantseed.object 25c25 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\crystalplant\wildcrystalplantseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\currentcorn\currentcornseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\currentcorn\wildcurrentcornseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\diodia\diodiaseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\diodia\wilddiodaseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\dirturchin\dirturchinseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\dirturchin\wilddirturchinseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\eggshoot\eggshootseed.object 24c24 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\eggshoot\wildeggshootseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\feathercrown\feathercrownseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\feathercrown\wildfeathercrownseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\flowerblue\flowerblue.object 24c24 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\flowerred\flowerred.object 24c24 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\flowerspring\flowerspring.object 24c24 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\floweryellow\floweryellow.object 24c24 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\grapes\grapesseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3] ], objects\farmables\grapes\wildgrapesseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3] ], objects\farmables\kiwi\kiwiseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\kiwi\wildkiwiseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\mushroom\mushroomseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\neonmelon\neonmelonseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\neonmelon\wildneonmelonseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\oculemon\oculemonseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2] ], objects\farmables\oculemon\wildoculemonseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2] ], objects\farmables\pearlpea\pearlpeaseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3] ], objects\farmables\pearlpea\wildpearlpeaseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3] ], objects\farmables\pineapple\pineappleseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\pineapple\wildpineappleseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\potatoes\potatoseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\potatoes\wildpotatoseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\pussplum\pussplumseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\pussplum\wildpussplumseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\reefpod\reefpodseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2] ], objects\farmables\reefpod\wildreefpodseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2] ], objects\farmables\rice\riceseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2] ], objects\farmables\rice\wildriceseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2] ], objects\farmables\sugarcane\sugarcaneseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3], [1, 4], [0, 4] ], objects\farmables\sugarcane\wildsugarcaneseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3], [1, 4], [0, 4] ], objects\farmables\tomato\tomatoseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3] ], objects\farmables\tomato\wildtomatoseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3] ], objects\farmables\toxictop\toxictopseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\toxictop\wildtoxictopseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\wartweed\wartweedseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\wartweed\wildwartweedseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1] ], objects\farmables\wheat\wheatseed.object 24c24 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3] ], objects\farmables\wheat\wildwheatseed.object 26c26 < "spaceScan" : 0.1, --- > "spaces" : [ [1, 0], [0, 0], [1, 1], [0, 1], [1, 2], [0, 2], [1, 3], [0, 3] ], objects\outpost\penguinbay\penguinbay.object 4,5c4 < "objectType" : "container", < "description" : "This place is selling weapons and armor. I should check out their inventory.", --- > "description" : "This place is selling counterfeit ship licenses.", 8c7 < "category" : "storage", --- > "category" : "decorative", 21c20 < "image" : "penguinbayleft.png:", --- > "image" : "penguinbayleft.png:.", 25,26c24,47 < "frames" : 1, < "animationCycle" : 1.0, --- > "frames" : 24, > "animationCycle" : 2.4, > > "spaces" : [ > [-7, 0], [-6, 0], [-5, 0], [-4, 0], [-3, 0], [-2, 0], [-1, 0], [0, 0], [1, 0], [2, 0], [3, 0], [4, 0], [5, 0], [6, 0], > [-7, 1], [-6, 1], [-5, 1], [-4, 1], [-3, 1], [-2, 1], [-1, 1], [0, 1], [1, 1], [2, 1], [3, 1], [4, 1], [5, 1], [6, 1], > [-7, 2], [-6, 2], [-5, 2], [-4, 2], [-3, 2], [-2, 2], [-1, 2], [0, 2], [1, 2], [2, 2], [3, 2], [4, 2], [5, 2], [6, 2], > [-7, 3], [-6, 3], [-5, 3], [-4, 3], [-3, 3], [-2, 3], [-1, 3], [0, 3], [1, 3], [2, 3], [3, 3], [4, 3], [5, 3], [6, 3], > [-7, 4], [-6, 4], [-5, 4], [-4, 4], [-3, 4], [-2, 4], [-1, 4], [0, 4], [1, 4], [2, 4], [3, 4], [4, 4], [5, 4], [6, 4], > [-7, 5], [-6, 5], [-5, 5], [-4, 5], [-3, 5], [-2, 5], [-1, 5], [0, 5], [1, 5], [2, 5], [3, 5], [4, 5], [5, 5], [6, 5], > [-4, 6], [-3, 6], [-2, 6], [-1, 6], [0, 6], [1, 6], [2, 6], [3, 6], [4, 6], [5, 6], [6, 6], > [-3, 7], [-2, 7], [-1, 7], [0, 7], [1, 7], [2, 7], [3, 7], [4, 7], [5, 7], > [-3, 8], [-2, 8], [-1, 8], [0, 8], [1, 8], [2, 8], [3, 8], [4, 8], > [-4, 9], [-3, 9], [-2, 9], [-1, 9], [0, 9], [1, 9], [2, 9], [3, 9], [4, 9], > [-3, 10], [-2, 10], [-1, 10], [0, 10], [1, 10], [2, 10], [3, 10], [4, 10], > [-2, 11], [-1, 11], [0, 11], [1, 11], [2, 11], [3, 11], > [-2, 12], [-1, 12], [0, 12], [1, 12], [2, 12], [3, 12], > [-2, 13], [-1, 13], [0, 13], [1, 13], [2, 13], [3, 13], > [-2, 14], [-1, 14], [0, 14], [1, 14], [2, 14], [3, 14], > [-1, 15], [0, 15], [1, 15], [2, 15], > [-1, 16], [0, 16], [1, 16], [2, 16], > [-1, 17], [0, 17], [1, 17], [2, 17], > [-1, 18], [0, 18], [1, 18], [2, 18] > ], 28d48 < "spaceScan" : 0.1, 34c54 < "image" : "penguinbayright.png:", --- > "image" : "penguinbayright.png:.", 38,39c58,81 < "frames" : 1, < "animationCycle" : 1.0, --- > "frames" : 24, > "animationCycle" : 2.4, > > "spaces" : [ > [-7, 0], [-6, 0], [-5, 0], [-4, 0], [-3, 0], [-2, 0], [-1, 0], [0, 0], [1, 0], [2, 0], [3, 0], [4, 0], [5, 0], [6, 0], > [-7, 1], [-6, 1], [-5, 1], [-4, 1], [-3, 1], [-2, 1], [-1, 1], [0, 1], [1, 1], [2, 1], [3, 1], [4, 1], [5, 1], [6, 1], > [-7, 2], [-6, 2], [-5, 2], [-4, 2], [-3, 2], [-2, 2], [-1, 2], [0, 2], [1, 2], [2, 2], [3, 2], [4, 2], [5, 2], [6, 2], > [-7, 3], [-6, 3], [-5, 3], [-4, 3], [-3, 3], [-2, 3], [-1, 3], [0, 3], [1, 3], [2, 3], [3, 3], [4, 3], [5, 3], [6, 3], > [-7, 4], [-6, 4], [-5, 4], [-4, 4], [-3, 4], [-2, 4], [-1, 4], [0, 4], [1, 4], [2, 4], [3, 4], [4, 4], [5, 4], [6, 4], > [-7, 5], [-6, 5], [-5, 5], [-4, 5], [-3, 5], [-2, 5], [-1, 5], [0, 5], [1, 5], [2, 5], [3, 5], [4, 5], [5, 5], [6, 5], > [-7, 6], [-6, 6], [-5, 6],[-4, 6], [-3, 6], [-2, 6], [-1, 6], [0, 6], [1, 6], [2, 6], [3, 6], > [-6, 7], [-5, 7], [-4, 7], [-3, 7], [-2, 7], [-1, 7], [0, 7], [1, 7], [2, 7], > [-5, 8], [-4, 8], [-3, 8], [-2, 8], [-1, 8], [0, 8], [1, 8], [2, 8], > [-5, 9], [-4, 9], [-3, 9], [-2, 9], [-1, 9], [0, 9], [1, 9], [2, 9], [3, 9], > [-5, 10], [-4, 10], [-3, 10], [-2, 10], [-1, 10], [0, 10], [1, 10], [2, 10], > [-4, 11], [-3, 11], [-2, 11], [-1, 11], [0, 11], [1, 11], > [-4, 12], [-3, 12], [-2, 12], [-1, 12], [0, 12], [1, 12], > [-4, 13], [-3, 13], [-2, 13], [-1, 13], [0, 13], [1, 13], > [-4, 14], [-3, 14], [-2, 14], [-1, 14], [0, 14], [1, 14], > [-3, 15], [-2, 15], [-1, 15], [0, 15], > [-3, 16], [-2, 16], [-1, 16], [0, 16], > [-3, 17], [-2, 17], [-1, 17], [0, 17], > [-3, 18], [-2, 18], [-1, 18], [0, 18] > ], 41d82 < "spaceScan" : 0.1, 47,51c88,102 < < "slotCount" : 64, < "uiConfig" : "/interface/chests/chest%slots%.config", < "frameCooldown" : 5, < "autoCloseCooldown" : 3600 --- > "offeredQuests" : [ > "license1.gearup", > "license2.gearup", > "license3.gearup", > "license4.gearup", > "license5.gearup" > ], > "turnInQuests" : [ > "license1.gearup", > "license2.gearup", > "license3.gearup", > "license4.gearup", > "license5.gearup" > ], > "scriptDelta" : 0 objects\outpost\penguinbay\penguinbayleft.frames 5c5 < "dimensions" : [1, 1], --- > "dimensions" : [24, 6], 7c7,12 < [ "default" ] --- > [ "default.0", "default.1", "default.2", "default.3" ], > [ "default.4", "default.5", "default.6", "default.7" ], > [ "default.8", "default.9", "default.10", "default.11" ], > [ "default.12", "default.13", "default.14", "default.15" ], > [ "default.16", "default.17", "default.18", "default.19" ], > [ "default.20", "default.21", "default.22", "default.23" ] 9a15,18 > }, > > "aliases" : { > "default.default" : "default.0" objects\outpost\penguinbay\penguinbayright.frames 5c5 < "dimensions" : [1, 1], --- > "dimensions" : [24, 6], 7c7,12 < [ "default" ] --- > [ "default.0", "default.1", "default.2", "default.3" ], > [ "default.4", "default.5", "default.6", "default.7" ], > [ "default.8", "default.9", "default.10", "default.11" ], > [ "default.12", "default.13", "default.14", "default.15" ], > [ "default.16", "default.17", "default.18", "default.19" ], > [ "default.20", "default.21", "default.22", "default.23" ] 8a14 > }, 9a16,17 > "aliases" : { > "default.default" : "default.0" objects\outpost\terramart\terramart.object 25c25 < "imageLayers" : [ { "image" : "terramartleft.png:", "fullbright" : true }, { "image" : "terramartleftlit.png:" } ], --- > "imageLayers" : [ { "image" : "terramartleft.png:.", "fullbright" : true }, { "image" : "terramartleftlit.png:." } ], 31,32c31,32 < "frames" : 1, < "animationCycle" : 1.0, --- > "frames" : 32, > "animationCycle" : 3.2, 38c38 < "imageLayers" : [ { "image" : "terramartright.png:", "fullbright" : true }, { "image" : "terramartrightlit.png:" } ], --- > "imageLayers" : [ { "image" : "terramartright.png:.", "fullbright" : true }, { "image" : "terramartrightlit.png:." } ], 44,45c44,45 < "frames" : 1, < "animationCycle" : 1.0, --- > "frames" : 32, > "animationCycle" : 3.2, objects\outpost\terramart\terramartleft.frames 5c5 < "dimensions" : [1, 1], --- > "dimensions" : [8, 4], 7c7,10 < [ "default" ] --- > [ "default.0", "default.1", "default.2", "default.3", "default.4", "default.5", "default.6", "default.7" ], > [ "default.8", "default.9", "default.10", "default.11", "default.12", "default.13", "default.14", "default.15" ], > [ "default.16", "default.17", "default.18", "default.19", "default.20", "default.21", "default.22", "default.23" ], > [ "default.24", "default.25", "default.26", "default.27", "default.28", "default.29", "default.30", "default.31" ] 8a12 > }, 9a14,15 > "aliases" : { > "default.default" : "default.0" objects\outpost\terramart\terramartleftlit.frames 5c5 < "dimensions" : [1, 1], --- > "dimensions" : [8, 4], 7c7,10 < [ "default" ] --- > [ "default.0", "default.1", "default.2", "default.3", "default.4", "default.5", "default.6", "default.7" ], > [ "default.8", "default.9", "default.10", "default.11", "default.12", "default.13", "default.14", "default.15" ], > [ "default.16", "default.17", "default.18", "default.19", "default.20", "default.21", "default.22", "default.23" ], > [ "default.24", "default.25", "default.26", "default.27", "default.28", "default.29", "default.30", "default.31" ] 8a12 > }, 9a14,15 > "aliases" : { > "default.default" : "default.0" objects\outpost\terramart\terramartright.frames 5c5 < "dimensions" : [1, 1], --- > "dimensions" : [8, 4], 7c7,10 < [ "default" ] --- > [ "default.0", "default.1", "default.2", "default.3", "default.4", "default.5", "default.6", "default.7" ], > [ "default.8", "default.9", "default.10", "default.11", "default.12", "default.13", "default.14", "default.15" ], > [ "default.16", "default.17", "default.18", "default.19", "default.20", "default.21", "default.22", "default.23" ], > [ "default.24", "default.25", "default.26", "default.27", "default.28", "default.29", "default.30", "default.31" ] 8a12 > }, 9a14,15 > "aliases" : { > "default.default" : "default.0" objects\outpost\terramart\terramartrightlit.frames 5c5 < "dimensions" : [1, 1], --- > "dimensions" : [8, 4], 7c7,10 < [ "default" ] --- > [ "default.0", "default.1", "default.2", "default.3", "default.4", "default.5", "default.6", "default.7" ], > [ "default.8", "default.9", "default.10", "default.11", "default.12", "default.13", "default.14", "default.15" ], > [ "default.16", "default.17", "default.18", "default.19", "default.20", "default.21", "default.22", "default.23" ], > [ "default.24", "default.25", "default.26", "default.27", "default.28", "default.29", "default.30", "default.31" ] 8a12 > }, 9a14,15 > "aliases" : { > "default.default" : "default.0" projectiles\physics.config 83a84,97 > "noveltybanana" : { > "mass" : 1.0, > "gravityMultiplier" : 0.6, > "bounceFactor" : 1, > "maxMovementPerStep" : 0.4, > > "collisionPoly" : [ [-1, -1], [1, -1], [1, 1], [-1, 1] ], > "ignorePlatformCollision" : true, > > "airFriction" : 0.0, > "liquidFriction" : 8.0, > "groundFriction" : 15.0 > }, > projectiles\explosions\smoke\smoke.config 6c6 < "inheritDamageFactor" : 1, --- > "inheritDamageFactor" : 0, projectiles\explosions\smoke\smoke.projectile 8d7 < "damagePoly" : [ [-18, 0], [-12, -12], [0, -18], [12, -12], [18, 0], [12, 12], [0, 18], [-12, 12] ], 11a11 > "onlyHitTerrain" : true, projectiles\guns\unsorted\flamethrower\flamethrower.projectile 18c18,19 < ] --- > ], > "hydrophobic" : true projectiles\npcs\blueflame\blueflame.projectile 18c18,19 < ] --- > ], > "hydrophobic" : true projectiles\npcs\blueflame\blueflamethrower.projectile 8c8 < "damageKindImage" : "icon.png", --- > "damageKindImage" : "/interface/statuses/fire.png", 84c84,88 < "damageKind" : "default" --- > "damageKind" : "flamethrower", > "statusEffects" : [ > "burning" > ], > "hydrophobic" : true projectiles\npcs\flame\flame.projectile 18,19c18,20 < ] < } --- > ], > "hydrophobic" : true > } \ No newline at end of file projectiles\throwable\firework\firework.projectile 10c10 < "damagePoly" : [ [-7, -2], [-7, 2], [4, 2], [4, -2] ], --- > "onlyHitTerrain" : true, projectiles\throwable\firework2\firework2.projectile 11c11 < "damagePoly" : [ [-7, -2], [-7, 2], [4, 2], [4, -2] ], --- > "damagePoly" : [ [-7, -2], [-7, 2], [6, 4], [10, 0], [6, -4] ], projectiles\throwable\firework3\firework3.projectile 11a12 > "hydrophobic" : true, projectiles\throwable\firework4\firework4.projectile 11a12 > "hydrophobic" : true, projectiles\throwable\fireworkblue\fireworkblue.projectile 10c10 < "damagePoly" : [ [-7, -2], [-7, 2], [4, 2], [4, -2] ], --- > "onlyHitTerrain" : true, projectiles\throwable\fireworkblue2\fireworkblue2.projectile 11c11 < "damagePoly" : [ [-7, -2], [-7, 2], [4, 2], [4, -2] ], --- > "damagePoly" : [ [-7, -2], [-7, 2], [6, 4], [10, 0], [6, -4] ], projectiles\throwable\fireworkblue3\fireworkblue3.projectile 11a12 > "hydrophobic" : true, projectiles\throwable\fireworkblue4\fireworkblue4.projectile 11a12 > "hydrophobic" : true, projectiles\throwable\fireworkgreen\fireworkgreen.projectile 10c10 < "damagePoly" : [ [-7, -2], [-7, 2], [4, 2], [4, -2] ], --- > "onlyHitTerrain" : true, projectiles\throwable\fireworkgreen2\fireworkgreen2.projectile 11c11 < "damagePoly" : [ [-7, -2], [-7, 2], [4, 2], [4, -2] ], --- > "damagePoly" : [ [-7, -2], [-7, 2], [6, 4], [10, 0], [6, -4] ], projectiles\throwable\fireworkgreen3\fireworkgreen3.projectile 11a12 > "hydrophobic" : true, projectiles\throwable\fireworkgreen4\fireworkgreen4.projectile 11a12 > "hydrophobic" : true, projectiles\throwable\molotovflame\molotovflame.projectile 13c13 < "damagePoly" : [ [-9, 0], [-6, -6], [0, -9], [6, -6], [9, 0], [6, 6], [0, 9], [-6, 6] ], --- > "damagePoly" : [ [-6, 0], [-4, -4], [0, -6], [4, -4], [6, 0], [4, 4], [0, 6], [-4, 4] ], 25c25,26 < ] --- > ], > "hydrophobic" : true quests\outpost\phase2optional\apexmechanic2.questtemplate 3a4 > "requiredShipLevel" : 4, quests\outpost\phase2optional\avianrefugee2part1.questtemplate 3a4 > "requiredShipLevel" : 4, quests\outpost\phase2optional\avianrefugee2part2.questtemplate 4a5 > "requiredShipLevel" : 4, quests\outpost\phase2optional\bountyhunter2.questtemplate 4a5 > "requiredShipLevel" : 4, quests\outpost\phase2optional\floranscholar2.questtemplate 3a4 > "requiredShipLevel" : 4, quests\outpost\phase2optional\glitchsilenttype2.questtemplate 3a4 > "requiredShipLevel" : 4, quests\outpost\phase2optional\humanexcon2.questtemplate 3a4 > "requiredShipLevel" : 4, quests\outpost\phase2optional\humansurvivor2.questtemplate 3a4 > "requiredShipLevel" : 4, quests\outpost\phase3optional\avianexplorer3.questtemplate 3a4 > "requiredShipLevel" : 5, quests\outpost\phase3optional\bountyhunter3.questtemplate 3a4 > "requiredShipLevel" : 5, quests\outpost\phase3optional\glitchsilenttype3.questtemplate 3a4 > "requiredShipLevel" : 5, quests\outpost\phase3optional\hylotlperformer3.questtemplate 3a4 > "requiredShipLevel" : 5, recipes\heartforge\cupidsbow.recipe 7c7 < "groups" : [ "heartforge", "tools", "weapons", "all" ] --- > "groups" : [ "heartforge", "weapons", "all" ] recipes\heartforge\heartforge.recipe 4c4 < { "item" : "goldbar", "count" : 5 }, --- > { "item" : "goldbar", "count" : 10 }, 8c8 < "groups" : [ "craftingtable", "objects", "all", "tools" ] --- > "groups" : [ "researchstation", "objects", "all", "tools" ] recipes\holidaycraftingtable\holidaycraftingtable.recipe 3c3 < { "item" : "darkwoodmaterial", "count" : 35 } --- > { "item" : "titaniumbar", "count" : 20 } 9c9 < "groups" : [ "plain", "objects", "all", "tools" ] --- > "groups" : [ "researchstation", "objects", "all", "tools" ] ships\apex\blockkey.config 58a59,69 > "value" : [0, 21, 128, 255], > "foregroundBlock" : false, > "backgroundBlock" : true, > "backgroundMat" : "apexshipwall", > "object" : "researchstation", > "objectParameters" : { > "unbreakable" : true > } > }, > > { ships\avian\blockkey.config 58a59,69 > "value" : [0, 21, 128, 255], > "foregroundBlock" : false, > "backgroundBlock" : true, > "backgroundMat" : "apexshipwall", > "object" : "researchstation", > "objectParameters" : { > "unbreakable" : true > } > }, > > { ships\floran\blockkey.config 58a59,69 > "value" : [0, 21, 128, 255], > "foregroundBlock" : false, > "backgroundBlock" : true, > "backgroundMat" : "apexshipwall", > "object" : "researchstation", > "objectParameters" : { > "unbreakable" : true > } > }, > > { ships\glitch\blockkey.config 58a59,69 > "value" : [0, 21, 128, 255], > "foregroundBlock" : false, > "backgroundBlock" : true, > "backgroundMat" : "apexshipwall", > "object" : "researchstation", > "objectParameters" : { > "unbreakable" : true > } > }, > > { ships\human\blockkey.config 58a59,69 > "value" : [0, 21, 128, 255], > "foregroundBlock" : false, > "backgroundBlock" : true, > "backgroundMat" : "apexshipwall", > "object" : "researchstation", > "objectParameters" : { > "unbreakable" : true > } > }, > > { ships\hylotl\blockkey.config 58a59,69 > "value" : [0, 21, 128, 255], > "foregroundBlock" : false, > "backgroundBlock" : true, > "backgroundMat" : "apexshipwall", > "object" : "researchstation", > "objectParameters" : { > "unbreakable" : true > } > }, > > { ships\novakid\blockkey.config 58a59,69 > "value" : [0, 21, 128, 255], > "foregroundBlock" : false, > "backgroundBlock" : true, > "backgroundMat" : "apexshipwall", > "object" : "researchstation", > "objectParameters" : { > "unbreakable" : true > } > }, > > { stats\monster_primary.lua 8a9,14 > if status.resourcePositive("shieldHealth") then > local newDamage = math.max(0, damage - status.resource("shieldHealth")) > status.modifyResource("shieldHealth", -damage + newDamage) > damage = newDamage > end > stats\effects\rage\rage.statuseffect 5,6c5,6 < "runModifier" : -0.35, < "jumpModifier" : -0.35, --- > "runModifier" : -0.25, > "jumpModifier" : -0.25, tiles\mods\diamond.matmod 4c4 < "itemDrop" : "diamondore", --- > "itemDrop" : "diamond", treasure\common.treasurepools 139c139 < {"weight" : 0.2, "item" : [ "diamondore", 4]} --- > {"weight" : 0.1, "item" : [ "diamond", 1]} 657,695d656 < }] < ], < < "techTreasure" : [ < [1, { < "pool" : [ < {"weight" : 0.33, "item" : "doublejumpTech-chip"}, < {"weight" : 0.33, "item" : "dashTech-chip"} < ], < "allowDuplication" : false < }], < < [2, { < "pool" : [ < {"weight" : 0.33, "item" : "doublejumpTech-chip"}, < {"weight" : 0.33, "item" : "dashTech-chip"}, < {"weight" : 0.33, "item" : "hoverTech-chip"}, < {"weight" : 0.33, "item" : "rocketjump-chip"}, < {"weight" : 0.33, "item" : "morphballTech-chip"}, < {"weight" : 0.33, "item" : "jetpackTech-chip"}, < {"weight" : 0.33, "item" : "butterflyboost-chip"} < ], < "allowDuplication" : false < }], < < [3, { < "pool" : [ < {"weight" : 0.33, "item" : "humanMechTech-chip"}, < {"weight" : 0.33, "item" : "targetblinktech-chip"}, < {"weight" : 0.33, "item" : "bubbleboost-chip"}, < {"weight" : 0.33, "item" : "doublejumpTech-chip"}, < {"weight" : 0.33, "item" : "dashTech-chip"}, < {"weight" : 0.33, "item" : "hoverTech-chip"}, < {"weight" : 0.33, "item" : "rocketjump-chip"}, < {"weight" : 0.33, "item" : "morphballTech-chip"}, < {"weight" : 0.33, "item" : "jetpackTech-chip"}, < {"weight" : 0.33, "item" : "butterflyboost-chip"} < ], < "allowDuplication" : false treasure\default.treasurechests 23c23 < "treasurePool" : "techTreasure", --- > "treasurePool" : "basicChestTreasure",