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",