FILES ----- monsters\fishing\approachState.lua [NEW] monsters\fishing\aquariumMonster.lua monsters\fishing\fishingMonster.lua monsters\fishing\hookedState.lua monsters\fishing\lurkState.lua monsters\fishing\wanderState.lua monsters\fishing\large\chuckle\fishingchuckle.monstertype monsters\fishing\medium\chomp\fishingchomp.monstertype monsters\fishing\medium\funny\fishingfunny.monstertype monsters\fishing\medium\jaw\fishingjaw.monstertype monsters\fishing\medium\square\fishingsquare.monstertype monsters\fishing\medium\tongue\fishingtongue.monstertype monsters\fishing\small\dirt\fishingdirt.monstertype monsters\fishing\small\frill\fishingfrill.monstertype monsters\fishing\small\jerk\fishingjerk.monstertype npcs\merchantpools.config npcs\dungeon\hylotloceancity\chefmerchant.npctype npcs\dungeon\novakidvillage\bartender.npctype npcs\dungeon\novakidvillage\novakidblacksmith.npctype [NEW] npcs\dungeon\novakidvillage\saloon.npctype [NEW] npcs\furniture\pastel.npctype projectiles\activeitems\staff\elementbouncer\electricbouncer.projectile projectiles\activeitems\staff\elementbouncer\firebouncer.projectile projectiles\activeitems\staff\elementbouncer\poisonbouncer.projectile projectiles\activeitems\staff\elementorb\electricorb.projectile projectiles\activeitems\staff\elementorb\fireorb.projectile projectiles\activeitems\staff\elementorb\iceorb.projectile projectiles\activeitems\staff\elementorb\poisonorb.projectile projectiles\activeitems\staff\elementstickyspikes\electricstickyspikes.projectile projectiles\activeitems\staff\elementstickyspikes\firestickyspikes.projectile projectiles\activeitems\staff\elementstickyspikes\icestickyspikes.projectile projectiles\activeitems\staff\elementstickyspikes\poisonstickyspikes.projectile projectiles\activeitems\staff\elementswarmer\electricswarmer.projectile projectiles\activeitems\staff\elementswarmer\poisonswarmer.projectile projectiles\explosions\elementimpact\electricimpact.config [NEW] projectiles\explosions\elementimpact\electricimpact2.config projectiles\explosions\elementimpact\fireimpact.config projectiles\explosions\elementimpact\iceimpact.config projectiles\explosions\elementimpact\poisonimpact.config [NEW] projectiles\explosions\elementimpact\poisonimpact2.config [NEW] projectiles\explosions\elementimpact\poisonimpact3.config quests\generated\pools\furniture.config quests\generated\pools\hatadjectives.config quests\generated\pools\merchantstock1.config quests\generated\pools\merchantstock2.config quests\generated\pools\specieshats.config quests\generated\pools\specieshelmets.config scripts\fishing\fishingspawner.config scripts\fishing\fishingspawner.lua [NEW] sfx\projectiles\blast_small_fire1.ogg [NEW] sfx\projectiles\blast_small_fire2.ogg [NEW] sfx\projectiles\blast_small_fire3.ogg [NEW] sfx\projectiles\electricstickyspikes_loop.ogg [NEW] sfx\projectiles\fireball_loop.ogg [NEW] sfx\projectiles\iceorb_loop.ogg [NEW] sfx\projectiles\poisonbouncer_impact1.ogg [NEW] sfx\projectiles\poisonbouncer_impact2.ogg [NEW] sfx\projectiles\poisonorb_break1.ogg [NEW] sfx\projectiles\poisonorb_break2.ogg [NEW] sfx\projectiles\poisonorb_loop1.ogg [NEW] sfx\projectiles\poisonorb_loop2.ogg [NEW] sfx\projectiles\poisonstickyspikes_break1.ogg [NEW] sfx\projectiles\poisonstickyspikes_break2.ogg [NEW] sfx\projectiles\poisonstickyspikes_break3.ogg [NEW] sfx\projectiles\poisonstickyspikes_loop.ogg [NEW] tenants\furniture\pastel.tenant [NEW] tenants\other\saloon.tenant DIFFS ----- monsters\fishing\approachState.lua 9c9,10 < approachTimer = util.randomInRange(config.getParameter("approachTimeRange", {6, 10})) --- > biteDistance = config.getParameter("biteDistance", 4), > approachTimer = util.randomInRange(config.getParameter("approachTimeRange", {8, 14})) 27c28 < if lureDist < config.getParameter("biteDistance", 4) then --- > if lureDist < stateData.biteDistance then monsters\fishing\fishingMonster.lua 53a54,57 > message.setHandler("fighting", function() > return self.fighting > end) > 54a59 > self.toLure = {mcontroller.facingDirection() * 100, 20} 94a100,101 > else > self.toLure = {mcontroller.facingDirection() * 100, 20} 96d102 < self.toLure = self.toLure or {mcontroller.facingDirection() * 100, 0} monsters\fishing\hookedState.lua 27,28c27,28 < if stateData.fight == false and math.random() < stateData.fightChance then < stateData.fight = true --- > if self.fighting == false and math.random() < stateData.fightChance then > self.fighting = true 35c35 < if stateData.fight then --- > if self.fighting then 40c40 < stateData.fight = false --- > self.fighting = false 47c47 < if stateData.fight then --- > if self.fighting then 81,83c81 < -- TODO: don't spam this < world.sendEntityMessage(self.ownerId, "stopFight") < --- > self.fighting = false 106a105 > self.fighting = nil monsters\fishing\lurkState.lua 9c9,10 < lurkTimer = util.randomInRange(config.getParameter("lurkTimeRange", {16, 20})) --- > hookDistance = config.getParameter("hookDistance", 1.5), > lurkTimer = util.randomInRange(config.getParameter("lurkTimeRange", {16, 24})) 35c36 < if lureDist < config.getParameter("hookDistance", 1.5) then --- > if lureDist < stateData.hookDistance then 45c46 < elseif lureDist > config.getParameter("hookDistance", 1.5) then --- > elseif lureDist > stateData.hookDistance then monsters\fishing\wanderState.lua 6,18c6,9 < if storage.fadeTimer < self.fadeTime then return nil end < < if self.wanderDirection == nil then < self.wanderDirection = { util.randomDirection(), 0 } < else < self.wanderDirection = { util.toDirection(mcontroller.facingDirection()), 0 } < end < < if self.wanderTime == nil then < self.wanderTime = util.randomInRange(config.getParameter("wanderTime")) < end < < return {} --- > return { > wanderDirection = util.randomDirection(), > wanderTime = util.randomInRange(config.getParameter("wanderTime", {3, 6})) > } 22c13 < -- sb.logInfo("Entering wander state") --- > sb.logInfo("%s Entering wander state", entity.id()) 26,31c17,20 < if self.target then return true end < < self.wanderTime = self.wanderTime - dt < if self.wanderTime <= 0 or util.blockSensorTest("blockedSensors", self.wanderDirection[1]) then < self.wanderDirection[1] = -self.wanderDirection[1] < self.wanderTime = util.randomInRange(config.getParameter("wanderTime")) --- > stateData.wanderTime = stateData.wanderTime - dt > if stateData.wanderTime <= 0 or util.blockSensorTest("blockedSensors", stateData.wanderDirection) then > stateData.wanderDirection = -stateData.wanderDirection > stateData.wanderTime = util.randomInRange(config.getParameter("wanderTime", {3, 6})) 34c23 < move(self.wanderDirection, false) --- > move({stateData.wanderDirection, 0}, false) monsters\fishing\large\chuckle\fishingchuckle.monstertype 24c24 < "lookTimeRange" : [2.5, 3.5], --- > "lookTimeRange" : [2, 3], monsters\fishing\medium\chomp\fishingchomp.monstertype 24c24 < "lookTimeRange" : [1.5, 2.5], --- > "lookTimeRange" : [0.5, 2], monsters\fishing\medium\funny\fishingfunny.monstertype 24c24 < "lookTimeRange" : [2, 3], --- > "lookTimeRange" : [0.5, 3], monsters\fishing\medium\jaw\fishingjaw.monstertype 24,25c24,25 < "lookTimeRange" : [2, 3], < "biteDistance" : 5, --- > "lookTimeRange" : [1, 2.5], > "biteDistance" : 6, monsters\fishing\medium\square\fishingsquare.monstertype 24c24 < "lookTimeRange" : [2, 3], --- > "lookTimeRange" : [0.5, 3], monsters\fishing\medium\tongue\fishingtongue.monstertype 15c15 < "/monsters/fishing/approachState.lua", --- > "/monsters/fishing/lurkState.lua", 23a24 > "lurkTimeRange" : [8, 10], 29c30 < "swimSpeedSlow" : 2.5, --- > "swimSpeedSlow" : 2, monsters\fishing\small\dirt\fishingdirt.monstertype 24,25c24,25 < "lookTimeRange" : [2, 2.5], < "biteDistance" : 5, --- > "lookTimeRange" : [1.5, 2.5], > "biteDistance" : 7, monsters\fishing\small\frill\fishingfrill.monstertype 24c24 < "lookTimeRange" : [2, 3], --- > "lookTimeRange" : [0.5, 3], monsters\fishing\small\jerk\fishingjerk.monstertype 24c24 < "lookTimeRange" : [1, 2], --- > "lookTimeRange" : [0.5, 1.5], 30c30 < "swimSpeedSlow" : 4, --- > "swimSpeedSlow" : 3.5, npcs\merchantpools.config 56c56 < { "item" : { "name" : "shroomblock" }, "rarity" : 0.2 }, --- > { "item" : { "name" : "shroomblock", "parameters" : { "price" : 7 } }, "rarity" : 0.2 }, 91c91 < { "item" : { "name" : "bonematerial" } }, --- > { "item" : { "name" : "bonematerial", "parameters" : { "price" : 4 } } }, 109,114c109,114 < { "item" : { "name" : "crystalblock" } }, < { "item" : { "name" : "biorock2" } }, < { "item" : { "name" : "rockbrickmaterial" } }, < { "item" : { "name" : "obsidian" } }, < { "item" : { "name" : "magmarock" } }, < { "item" : { "name" : "moonrock" } } --- > { "item" : { "name" : "crystalblock", "parameters" : { "price" : 10 } } }, > { "item" : { "name" : "biorock2", "parameters" : { "price" : 15 } } }, > { "item" : { "name" : "rockbrickmaterial", "parameters" : { "price" : 5 } } }, > { "item" : { "name" : "obsidian", "parameters" : { "price" : 9 } } }, > { "item" : { "name" : "magmarock", "parameters" : { "price" : 5 } } }, > { "item" : { "name" : "moonrock", "parameters" : { "price" : 3 } } } 223,229c223,229 < { "item" : { "name" : "woodenwindow1" } }, < { "item" : { "name" : "woodenwindow2" } }, < { "item" : { "name" : "glassmaterial" } }, < { "item" : { "name" : "crosshatch" } }, < { "item" : { "name" : "copperwindow" } }, < { "item" : { "name" : "bars" }, "rarity" : 0.2 }, < { "item" : { "name" : "heavyironbars" }, "rarity" : 0.2 } --- > { "item" : { "name" : "woodenwindow1", "parameters" : { "price" : 8 } } }, > { "item" : { "name" : "woodenwindow2", "parameters" : { "price" : 3 } } }, > { "item" : { "name" : "glassmaterial", "parameters" : { "price" : 7 } } }, > { "item" : { "name" : "crosshatch", "parameters" : { "price" : 4 } } }, > { "item" : { "name" : "copperwindow", "parameters" : { "price" : 8 } } }, > { "item" : { "name" : "bars", "parameters" : { "price" : 9 } }, "rarity" : 0.2 }, > { "item" : { "name" : "heavyironbars", "parameters" : { "price" : 9 } }, "rarity" : 0.2 } npcs\dungeon\hylotloceancity\chefmerchant.npctype 81c81 < "What can I get yer? Have a look at my range.", --- > "What can I get you? Have a look at my range.", 99,104c99,102 < // -todo- < "My produce is simply delectable.", < "My produce is more than palatable - it is a delight!", < "I doubt you'll find food more toothsome than what I have available here.", < "Everything I sell has been grown with love. And compost.", < "Come, sample my ambrosial fare!" --- > "You hankerin' to fill yer belly?", > "I serve up the best food this side o' the solar system!", > "My meals are ace-high!", > "My mighty fine food will send you to the stars!" npcs\dungeon\novakidvillage\bartender.npctype 22,39c22 < // -todo- < "So, what do ya need?", < "Anythin' catch yer eye?", < "Let's trade!", < "Take a look!", < "Nothin' but the finest.", < "I jus' know we have somethin' useful fer ya." < ] < }, < "novakid" : { < "default" : [ < // -todo- < "So, what do ya need?", < "Anythin' catch yer eye?", < "Let's trade!", < "Take a look!", < "Nothin' but the finest.", < "I jus' know we have somethin' useful fer ya." --- > "What can I getcha?" 46,57c29 < // -todo- < "Come to us whene'er ya need more supplies!", < "Anythin' else ya need, come see me!", < "If ya got the pixels, we got the goods." < ] < }, < "novakid" : { < "default" : [ < // -todo- < "Come to us whene'er ya need more supplies!", < "Anythin' else ya need, come see me!", < "If ya got the pixels, we got the goods." --- > "Come back soon, partner!" 64,67c36 < // -todo- < "Lookin' to trade? Follow me.", < "After some supplies? I can help with that! Come with me.", < "Ah, so ya need some supplies, eh? Right this way!" --- > "Come with me if yer lookin' for a drink!" 74,77c43 < // -todo- < "Here we are then!", < "Now then, what were ya lookin' for?", < "This is it!" --- > "Now then, what can I serve you?" 85,86c51,52 < "Need some supplies? I can 'elp with that!", < "If it's supplies yer lookin' for, I handle the trades around here!" --- > "Y'all lookin' for a drink?", > "Howdy! Y'all fancyin' a drink?" npcs\dungeon\novakidvillage\novakidblacksmith.npctype 14c14,21 < "numItems" : 10 --- > "numItems" : 6, > "paneLayoutOverride" : { > "windowtitle" : { > "title" : " Blacksmith", > "subtitle" : " Mighty fine gear!" > > } > } 22,39c29 < // -todo- < "So, what do ya need?", < "Anythin' catch yer eye?", < "Let's trade!", < "Take a look!", < "Nothin' but the finest.", < "I jus' know we have somethin' useful fer ya." < ] < }, < "novakid" : { < "default" : [ < // -todo- < "So, what do ya need?", < "Anythin' catch yer eye?", < "Let's trade!", < "Take a look!", < "Nothin' but the finest.", < "I jus' know we have somethin' useful fer ya." --- > "You wanna look at the goods I've been makin'?" 46,57c36 < // -todo- < "Come to us whene'er ya need more supplies!", < "Anythin' else ya need, come see me!", < "If ya got the pixels, we got the goods." < ] < }, < "novakid" : { < "default" : [ < // -todo- < "Come to us whene'er ya need more supplies!", < "Anythin' else ya need, come see me!", < "If ya got the pixels, we got the goods." --- > "Come back if y'all want to buy somethin' else I've made!" 64,67c43 < // -todo- < "Lookin' to trade? Follow me.", < "After some supplies? I can help with that! Come with me.", < "Ah, so ya need some supplies, eh? Right this way!" --- > "Lookin' to buy some gear I've been makin'? Follow me." 74,77c50 < // -todo- < "Here we are then!", < "Now then, what were ya lookin' for?", < "This is it!" --- > "Now then, what were ya lookin' for?" 84,86c57,58 < // -todo- < "Need some supplies? I can 'elp with that!", < "If it's supplies yer lookin' for, I handle the trades around here!" --- > "I'm sellin' mighty fine gear! Perfect for adventurers an' such!", > "I'm a blacksmith, an' I have some fine lookin' gear to sell!" projectiles\activeitems\staff\elementbouncer\electricbouncer.projectile 13c13 < "file" : "/projectiles/explosions/elementimpact/electricimpact.config" --- > "file" : "/projectiles/explosions/elementimpact/electricimpact2.config" projectiles\activeitems\staff\elementbouncer\firebouncer.projectile 18,19c18,29 < "action" : "config", < "file" : "/projectiles/explosions/elementimpact/fireimpact.config" --- > "action" : "loop", > "count" : 4, > "body" : [ > { > "action" : "particle", > "specification" : "fireshard" > } > ] > }, > { > "action" : "sound", > "options" : [ "/sfx/projectiles/fireball_spit.ogg" ] projectiles\activeitems\staff\elementbouncer\poisonbouncer.projectile 13c13 < "file" : "/projectiles/explosions/elementimpact/poisonimpact.config" --- > "file" : "/projectiles/explosions/elementimpact/poisonimpact2.config" projectiles\activeitems\staff\elementorb\electricorb.projectile 83c83,88 < "actionOnReap" : [], --- > "actionOnReap" : [ > { > "action" : "sound", > "options" : [ "/sfx/gun/lightningcoil1.ogg", "/sfx/gun/lightningcoil2.ogg", "/sfx/gun/lightningcoil3.ogg" ] > } > ], 103c108,109 < } --- > }, > "persistentAudio" : "/sfx/melee/barrier_create_electric.ogg" projectiles\activeitems\staff\elementorb\fireorb.projectile 93a94,97 > }, > { > "action" : "sound", > "options" : [ "/sfx/projectiles/fireball_spit.ogg" ] 115c119,120 < } --- > }, > "persistentAudio" : "/sfx/projectiles/fireball_loop.ogg" projectiles\activeitems\staff\elementorb\iceorb.projectile 92a93,96 > }, > { > "action" : "sound", > "options" : [ "/sfx/objects/ice_break1.ogg", "/sfx/objects/ice_break2.ogg", "/sfx/objects/ice_break3.ogg" ] 114c118,119 < } --- > }, > "persistentAudio" : "/sfx/projectiles/iceorb_loop.ogg" projectiles\activeitems\staff\elementorb\poisonorb.projectile 92a93,96 > }, > { > "action" : "sound", > "options" : [ "/sfx/projectiles/poisonorb_break1.ogg", "/sfx/projectiles/poisonorb_break2.ogg" ] 114c118,119 < } --- > }, > "persistentAudio" : "/sfx/projectiles/poisonorb_loop2.ogg" projectiles\activeitems\staff\elementstickyspikes\electricstickyspikes.projectile 62c62,67 < "actionOnReap" : [], --- > "actionOnReap" : [ > { > "action" : "sound", > "options" : [ "/sfx/projectiles/electrical_barrier_break1.ogg", "/sfx/projectiles/electrical_barrier_break2.ogg", "/sfx/projectiles/electrical_barrier_break3.ogg", "/sfx/projectiles/electrical_barrier_break4.ogg", "/sfx/projectiles/electrical_barrier_break5.ogg", "/sfx/projectiles/electrical_barrier_break6.ogg" ] > } > ], 65c70 < "damageKind" : "electric", --- > "damageKind" : "electricbarrier", 74c79,80 < "piercing" : true --- > "piercing" : true, > "persistentAudio" : "/sfx/projectiles/electricstickyspikes_loop.ogg" projectiles\activeitems\staff\elementstickyspikes\firestickyspikes.projectile 72a73,76 > }, > { > "action" : "sound", > "options" : [ "/sfx/projectiles/fire_out.ogg" ] 86c90,92 < "piercing" : true --- > "piercing" : true, > > "persistentAudio" : "/sfx/objects/torch.ogg" projectiles\activeitems\staff\elementstickyspikes\icestickyspikes.projectile 50a51,54 > }, > { > "action" : "sound", > "options" : [ "/sfx/projectiles/ice_barrier_break1.ogg", "/sfx/projectiles/ice_barrier_break2.ogg", "/sfx/projectiles/ice_barrier_break3.ogg", "/sfx/projectiles/ice_barrier_break4.ogg", "/sfx/projectiles/ice_barrier_break5.ogg", "/sfx/projectiles/ice_barrier_break6.ogg", "/sfx/projectiles/ice_barrier_break7.ogg", "/sfx/projectiles/ice_barrier_break8.ogg", "/sfx/projectiles/ice_barrier_break9.ogg", "/sfx/projectiles/ice_barrier_break10.ogg" ] projectiles\activeitems\staff\elementstickyspikes\poisonstickyspikes.projectile 19a20,23 > }, > { > "action" : "sound", > "options" : [ "/sfx/projectiles/poisonstickyspikes_break1.ogg", "/sfx/projectiles/poisonstickyspikes_break2.ogg", "/sfx/projectiles/poisonstickyspikes_break3.ogg" ] 86c90,91 < "piercing" : true --- > "piercing" : true, > "persistentAudio" : "/sfx/projectiles/poisonstickyspikes_loop.ogg" projectiles\activeitems\staff\elementswarmer\electricswarmer.projectile 13c13 < "file" : "/projectiles/explosions/elementimpact/electricimpact.config" --- > "file" : "/projectiles/explosions/elementimpact/electricimpact2.config" projectiles\activeitems\staff\elementswarmer\poisonswarmer.projectile 13c13 < "file" : "/projectiles/explosions/elementimpact/poisonimpact.config" --- > "file" : "/projectiles/explosions/elementimpact/poisonimpact3.config" projectiles\explosions\elementimpact\electricimpact.config 75c75 < "options" : [ "/sfx/projectiles/electrical_barrier_break2.ogg", "/sfx/projectiles/electrical_barrier_break4.ogg", "/sfx/projectiles/electrical_barrier_break6.ogg" ] --- > "options" : [ "/sfx/projectiles/electrical_barrier_break1.ogg", "/sfx/projectiles/electrical_barrier_break2.ogg", "/sfx/projectiles/electrical_barrier_break3.ogg", "/sfx/projectiles/electrical_barrier_break4.ogg", "/sfx/projectiles/electrical_barrier_break5.ogg", "/sfx/projectiles/electrical_barrier_break6.ogg" ] projectiles\explosions\elementimpact\fireimpact.config 75c75 < "options" : [ "/sfx/gun/grenadeblast_small_fire1.ogg", "/sfx/gun/grenadeblast_small_fire2.ogg", "/sfx/gun/grenadeblast_small_fire3.ogg" ] --- > "options" : [ "/sfx/projectiles/blast_small_fire1.ogg", "/sfx/projectiles/blast_small_fire2.ogg", "/sfx/projectiles/blast_small_fire3.ogg" ] projectiles\explosions\elementimpact\iceimpact.config 76c76 < "options" : [ "/sfx/projectiles/ice_break1.ogg", "/sfx/projectiles/ice_break5.ogg", "/sfx/projectiles/ice_break10.ogg" ] --- > "options" : [ "/sfx/projectiles/ice_break1.ogg", "/sfx/projectiles/ice_break4.ogg", "/sfx/projectiles/ice_break5.ogg", "/sfx/projectiles/ice_break6.ogg", "/sfx/projectiles/ice_break9.ogg", "/sfx/projectiles/ice_break10.ogg" ] projectiles\explosions\elementimpact\poisonimpact.config 58c58 < "options" : [ "/sfx/gun/grenadeblast_small_poison1.ogg", "/sfx/gun/grenadeblast_small_poison2.ogg", "/sfx/gun/grenadeblast_small_poison3.ogg" ] --- > "options" : [ "/sfx/projectiles/acid_hit.ogg" ] quests\generated\pools\furniture.config 32a33 > ["glitch", "hourglass"], 34c35 < ["glitch", "medievalflagpole"], --- > ["glitch", "chesspawn"], 41a43,56 > > ["hylotl", "hylotlcityposter"], > ["hylotl", "hylotllilyclock"], > ["hylotl", "hylotlfloorornament"], > ["hylotl", "hylotlclassictable2"], > ["hylotl", "hylotllilydeco1"], > ["hylotl", "clublampsmall"], > > ["novakid", "picturestand"], > ["novakid", "frontierclock"], > ["novakid", "frontierironsymbol"], > ["novakid", "wantedposter"], > ["novakid", "frontierhatrack"], > ["novakid", "saloonlight"], quests\generated\pools\hatadjectives.config 55c55,60 < ["powerful", "valoroushead"] --- > ["powerful", "valoroushead"], > ["smart", "clocktophathead"], > ["fun", "sombrerohead"], > ["prepared", "cowboyhead"], > ["fine", "sunglasses1head"], > ["interesting", "steampunkhead"] quests\generated\pools\merchantstock1.config 38c38,43 < ["hylotl", "neonhylotlhead"] --- > ["hylotl", "neonhylotlhead"], > > ["novakid", "frontierdoor"], > ["novakid", "safe"], > ["novakid", "frontierchair"], > ["novakid", "frontierbed"] quests\generated\pools\merchantstock2.config 44c44,51 < ["hylotl", "copperpickaxe"] --- > ["hylotl", "copperpickaxe"], > > ["novakid", "picturestand"], > ["novakid", "frontiergramophone"], > ["novakid", "frontierlamppost"], > ["novakid", "frontierpainting1"], > ["novakid", "frontierpainting2"], > ["novakid", "frontierpainting3"] quests\generated\pools\specieshats.config 44c44,50 < ["hylotl", "winterscarfhead"] --- > ["hylotl", "winterscarfhead"], > > ["novakid", "clocktophathead"], > ["novakid", "sombrerohead"], > ["novakid", "cowboyhead"], > ["novakid", "sunglasses1head"], > ["interesting", "steampunkhead"] quests\generated\pools\specieshelmets.config 36c36,41 < ["hylotl", "valoroushead"] --- > ["hylotl", "valoroushead"], > > ["novakid", "clocktophathead"], > ["novakid", "sombrerohead"], > ["novakid", "cowboyhead"], > ["interesting", "steampunkhead"] scripts\fishing\fishingspawner.config 2c2 < "distanceRange" : [8, 12], --- > "distanceRange" : [7, 14], 6c6 < [0.01, "legendary"], --- > [0.005, "legendary"], 8c8 < [0.25, "uncommon"], --- > [0.35, "uncommon"], 11c11 < "initialBias" : 0.3, --- > "initialBias" : 0.25, 15c15,16 < "deepDepth" : 20, --- > "minDepth" : 8, > "deepDepth" : 25, scripts\fishing\fishingspawner.lua 21,22d20 < else < -- sb.logInfo("failed to get spawn position near %s - not enough liquid in rect (liquid was %s)", spawnPosition, liquid) 24,25d21 < else < -- sb.logInfo("failed to get spawn position near %s - collided with stuff", spawnPosition) 27,28d22 < else < -- sb.logInfo("failed to get spawn position near %s - no liquid at base position", spawnPosition) 35,36c29,32 < local deepLevel = world.oceanLevel(pos) - spawnerConfig.deepDepth < if pos[2] < deepLevel then --- > local posDepth = world.oceanLevel(pos) - pos[2] > if posDepth < spawnerConfig.minDepth then > return > elseif posDepth >= spawnerConfig.deepDepth then