FILES ----- debug.macros interface\scripted\bountyboard\bountyboardgui.lua monsters\monster.lua monsters\crawlers\crustoise\icecrustoise.monstertype monsters\crawlers\oculob\fireoculob.monstertype monsters\crawlers\pulpin\poisonpulpin.monstertype monsters\crawlers\snaggler\icesnaggler.monstertype monsters\crawlers\tintic\electrictintic.monstertype monsters\flyers\agrobat\iceagrobat.monstertype monsters\flyers\batong\poisonbatong.monstertype monsters\flyers\bobfae\poisonbobfae.monstertype monsters\flyers\cosmicintruder\cosmicintruder.animation monsters\flyers\cosmicintruder\cosmicintruder.monstertype monsters\flyers\cosmicintruder\body\body.monsterpart [NEW] monsters\flyers\cosmicintruder\body\cosmicintrudereyes.png monsters\flyers\monopus\firemonopus.monstertype monsters\flyers\paratail\poisonparatail.monstertype monsters\flyers\pteropod\firepteropod.monstertype monsters\flyers\scandroid\cultistscandroid.monstertype monsters\ghosts\gosmet\firegosmet.monstertype monsters\ghosts\ignome\electricignome.monstertype monsters\ghosts\lumoth\firelumoth.monstertype monsters\ghosts\pyromantle\poisonpyromantle.monstertype monsters\ghosts\skimbus\electricskimbus.monstertype monsters\ghosts\spookit\firespookit.monstertype monsters\ghosts\squeem\firesqueem.monstertype monsters\ghosts\wisper\firewisper.monstertype monsters\walkers\adultpoptop\albinoadultpoptop.monstertype monsters\walkers\crabcano\icecrabcano.monstertype monsters\walkers\crutter\electriccrutter.monstertype monsters\walkers\fennix\icefennix.monstertype monsters\walkers\gleap\firegleap.monstertype monsters\walkers\hemogoblin\electrichemogoblin.monstertype monsters\walkers\hypnare\icehypnare.monstertype monsters\walkers\kingnutmidgeling\poisonkingnutmidgeling.monstertype monsters\walkers\lilodon\firelilodon.monstertype monsters\walkers\mandraflora\poisonmandraflora.monstertype monsters\walkers\miasmop\icemiasmop.monstertype monsters\walkers\narfin\icenarfin.monstertype monsters\walkers\nutmidgeling\poisonnutmidgeling.monstertype monsters\walkers\peblit\icepeblit.monstertype monsters\walkers\petricub\electricpetricub.monstertype monsters\walkers\quagmutt\electricquagmutt.monstertype monsters\walkers\ringram\iceringram.monstertype monsters\walkers\scaveran\poisonscaveran.monstertype monsters\walkers\smoglin\poisonsmoglin.monstertype monsters\walkers\snaunt\electricsnaunt.monstertype monsters\walkers\snuffish\poisonsnuffish.monstertype monsters\walkers\toumingo\firetoumingo.monstertype monsters\walkers\voltip\electricvoltip.monstertype quests\bounty\bounty.lua quests\bounty\clue_npcs.config quests\bounty\generator.config quests\bounty\stages.lua scripts\bountygeneration.lua stagehands\bountymanager.lua [NEW] stats\effects\elitemonster\elitemonster.lua [NEW] stats\effects\elitemonster\elitemonster.statuseffect DIFFS ----- debug.macros 2a3 > "/admin", 17c18,19 < "/warp instanceworld:outpost" --- > "/warp instanceworld:outpost", > "/admin" 24a27 > "/admin", 64c67,68 < "/enabletech blinkdash" --- > "/enabletech blinkdash", > "/admin" interface\scripted\bountyboard\bountyboardgui.lua 639c639 < if #self.posters == 0 and playerRank > self.assignment.rank or (self.assignment.pointsToCapstone and self.assignment.pointsToCapstone <= 0) then --- > if playerRank > self.assignment.rank or (self.assignment.pointsToCapstone and self.assignment.pointsToCapstone <= 0) then monsters\monster.lua 84a85,88 > if config.getParameter("elite", false) then > status.setPersistentEffects("elite", {"elitemonster"}) > end > monsters\crawlers\crustoise\icecrustoise.monstertype 155c155 < "baseValue" : 50 --- > "baseValue" : 70 monsters\crawlers\oculob\fireoculob.monstertype 158c158 < "baseValue" : 65 --- > "baseValue" : 70 monsters\crawlers\pulpin\poisonpulpin.monstertype 198c198 < "baseValue" : 40 --- > "baseValue" : 70 monsters\crawlers\snaggler\icesnaggler.monstertype 176c176 < "baseValue" : 65 --- > "baseValue" : 70 monsters\crawlers\tintic\electrictintic.monstertype 171c171 < "baseValue" : 55 --- > "baseValue" : 70 monsters\flyers\agrobat\iceagrobat.monstertype 165c165 < "baseValue" : 35 --- > "baseValue" : 70 monsters\flyers\batong\poisonbatong.monstertype 165c165 < "baseValue" : 50 --- > "baseValue" : 70 monsters\flyers\bobfae\poisonbobfae.monstertype 184c184 < "baseValue" : 65 --- > "baseValue" : 70 monsters\flyers\cosmicintruder\cosmicintruder.animation 96,97c96 < "offset" : [0.25, -0.25], < "fullbright" : true --- > "offset" : [0.0, -0.25] 136c135 < "bodynobright" : { --- > "eyes" : { monsters\flyers\cosmicintruder\cosmicintruder.monstertype 49c49 < "fireOffset" : [0.75, -1.75], --- > "fireOffset" : [0.75, -1.0], 109c109 < "poly" : [ [0.26, 0.625], [0.625, 0.26], [0.625, -1.26], [0.26, -1.625], [-0.26, -1.625], [-0.625, -1.26], [-0.625, 0.26], [-0.26, 0.625] ], --- > "poly" : [ [0.5, 1.25], [1.25, 0.5], [1.25, -1.0], [0.5, -1.75], [-0.5, -1.75], [-1.25, -1.0], [-1.25, 0.5], [-0.5, 1.25] ], 122c122 < "collisionPoly" : [ [0.26, 0.625], [0.625, 0.26], [0.625, -1.26], [0.26, -1.625], [-0.26, -1.625], [-0.625, -1.26], [-0.625, 0.26], [-0.26, 0.625] ], --- > "collisionPoly" : [ [0.5, 1.25], [1.25, 0.5], [1.25, -1.0], [0.5, -1.75], [-0.5, -1.75], [-1.25, -1.0], [-1.25, 0.5], [-0.5, 1.25] ], monsters\flyers\cosmicintruder\body\body.monsterpart 8c8 < "bodynobright" : "cosmicintruder_fullbright.png" --- > "eyes" : "cosmicintrudereyes.png" monsters\flyers\monopus\firemonopus.monstertype 163c163 < "baseValue" : 48 --- > "baseValue" : 70 monsters\flyers\paratail\poisonparatail.monstertype 155c155 < "baseValue" : 50 --- > "baseValue" : 70 monsters\flyers\pteropod\firepteropod.monstertype 168c168 < "baseValue" : 48 --- > "baseValue" : 70 monsters\flyers\scandroid\cultistscandroid.monstertype 186c186 < "baseValue" : 30 --- > "baseValue" : 70 monsters\ghosts\gosmet\firegosmet.monstertype 131c131 < "baseValue" : 40 --- > "baseValue" : 70 monsters\ghosts\ignome\electricignome.monstertype 165c165 < "baseValue" : 50 --- > "baseValue" : 70 monsters\ghosts\lumoth\firelumoth.monstertype 139c139 < "baseValue" : 30 --- > "baseValue" : 70 monsters\ghosts\pyromantle\poisonpyromantle.monstertype 171c171 < "baseValue" : 48 --- > "baseValue" : 70 monsters\ghosts\skimbus\electricskimbus.monstertype 165c165 < "baseValue" : 55 --- > "baseValue" : 70 monsters\ghosts\spookit\firespookit.monstertype 160c160 < "baseValue" : 45 --- > "baseValue" : 70 monsters\ghosts\squeem\firesqueem.monstertype 132c132 < "baseValue" : 40 --- > "baseValue" : 70 monsters\ghosts\wisper\firewisper.monstertype 167c167 < "baseValue" : 30 --- > "baseValue" : 70 monsters\walkers\adultpoptop\albinoadultpoptop.monstertype 199c199 < "baseValue" : 250 --- > "baseValue" : 70 monsters\walkers\crabcano\icecrabcano.monstertype 175c175 < "baseValue" : 60 --- > "baseValue" : 70 monsters\walkers\crutter\electriccrutter.monstertype 158c158 < "baseValue" : 65 --- > "baseValue" : 70 monsters\walkers\fennix\icefennix.monstertype 186c186 < "baseValue" : 50 --- > "baseValue" : 70 monsters\walkers\gleap\firegleap.monstertype 171c171 < "baseValue" : 250.0 --- > "baseValue" : 70 monsters\walkers\hemogoblin\electrichemogoblin.monstertype 212c212 < "baseValue" : 30 --- > "baseValue" : 50 monsters\walkers\hypnare\icehypnare.monstertype 187c187 < "baseValue" : 48 --- > "baseValue" : 70 monsters\walkers\kingnutmidgeling\poisonkingnutmidgeling.monstertype 143c143 < "baseValue" : 25 --- > "baseValue" : 70 monsters\walkers\lilodon\firelilodon.monstertype 155c155 < "baseValue" : 60 --- > "baseValue" : 70 monsters\walkers\mandraflora\poisonmandraflora.monstertype 179c179 < "baseValue" : 120 --- > "baseValue" : 70 monsters\walkers\miasmop\icemiasmop.monstertype 184c184 < "baseValue" : 55 --- > "baseValue" : 70 monsters\walkers\narfin\icenarfin.monstertype 181c181 < "baseValue" : 50 --- > "baseValue" : 70 monsters\walkers\nutmidgeling\poisonnutmidgeling.monstertype 143c143 < "baseValue" : 25 --- > "baseValue" : 70 monsters\walkers\peblit\icepeblit.monstertype 206c206 < "baseValue" : 250.0 --- > "baseValue" : 70 monsters\walkers\petricub\electricpetricub.monstertype 160c160 < "baseValue" : 65 --- > "baseValue" : 70 monsters\walkers\quagmutt\electricquagmutt.monstertype 160c160 < "baseValue" : 65 --- > "baseValue" : 70 monsters\walkers\ringram\iceringram.monstertype 160c160 < "baseValue" : 50 --- > "baseValue" : 70 monsters\walkers\scaveran\poisonscaveran.monstertype 181c181 < "baseValue" : 48 --- > "baseValue" : 70 monsters\walkers\smoglin\poisonsmoglin.monstertype 186c186 < "baseValue" : 250.0 --- > "baseValue" : 70 monsters\walkers\snaunt\electricsnaunt.monstertype 164c164 < "baseValue" : 65 --- > "baseValue" : 70 monsters\walkers\snuffish\poisonsnuffish.monstertype 151c151 < "baseValue" : 25 --- > "baseValue" : 70 monsters\walkers\toumingo\firetoumingo.monstertype 168c168 < "baseValue" : 55 --- > "baseValue" : 70 monsters\walkers\voltip\electricvoltip.monstertype 180c180 < "baseValue" : 250.0 --- > "baseValue" : 70 quests\bounty\bounty.lua 94c94,95 < if quest.questArcDescriptor().quests[1].templateId == "pre_bounty" then --- > local firstTemplate = quest.questArcDescriptor().quests[1].templateId > if firstTemplate == "pre_bounty" or firstTemplate == "pre_bounty_capstone" then quests\bounty\clue_npcs.config 31c31 < "Hngh... I knew a low-life like me could never stand against the mighty Peacekeepers! ^orange;Captain Ignoble^reset; is here, on this very planet!" --- > "Hngh... I knew a low-life like me could never stand against the mighty Peacekeepers! ^orange;Captain Ignoble^reset; is >!" quests\bounty\generator.config 1507,1508c1507 < "type" : "previous", < "questParameter" : "world" --- > "prevSystem" : true quests\bounty\stages.lua 114a115 > local celestialWorld = worldIdCoordinate(player.worldId()) ~= nil 128c129 < else --- > elseif celestialWorld then 168a170 > local celestialWorld = worldIdCoordinate(player.worldId()) ~= nil 186c188 < else --- > elseif celestialWorld then 233a236 > local celestialWorld = worldIdCoordinate(player.worldId()) ~= nil 239,247c242,251 < local pos = tracker() < if pos then < local toClue = world.distance(pos, entity.position()) < local distance = world.magnitude(toClue) < if distance > 32 then < quest.setCompassDirection(vec2.angle(toClue)) < else < quest.setCompassDirection(nil) < end --- > if celestialWorld then > local pos = tracker() > if pos then > local toClue = world.distance(pos, entity.position()) > local distance = world.magnitude(toClue) > if distance > 32 then > quest.setCompassDirection(vec2.angle(toClue)) > else > quest.setCompassDirection(nil) > end 249,253c253,258 < < quest.setObjectiveList({ < {objectiveText[1], true}, < {objectiveText[2], false} < }) --- > > quest.setObjectiveList({ > {objectiveText[1], true}, > {objectiveText[2], false} > }) > end 287a293 > local celestialWorld = worldIdCoordinate(player.worldId()) ~= nil 289,294c295,302 < local toClue = world.distance(storage.spawned["clue"], entity.position()) < local distance = world.magnitude(toClue) < if distance > 32 then < quest.setCompassDirection(vec2.angle(toClue)) < else < quest.setCompassDirection(nil) --- > if celestialWorld then > local toClue = world.distance(storage.spawned["clue"], entity.position()) > local distance = world.magnitude(toClue) > if distance > 32 then > quest.setCompassDirection(vec2.angle(toClue)) > else > quest.setCompassDirection(nil) > end 335a344 > local celestialWorld = worldIdCoordinate(player.worldId()) ~= nil 337,342c346,353 < local toClue = world.distance(storage.spawned["clue"], entity.position()) < local distance = world.magnitude(toClue) < if distance > 32 then < quest.setCompassDirection(vec2.angle(toClue)) < else < quest.setCompassDirection(nil) --- > if celestialWorld then > local toClue = world.distance(storage.spawned["clue"], entity.position()) > local distance = world.magnitude(toClue) > if distance > 32 then > quest.setCompassDirection(vec2.angle(toClue)) > else > quest.setCompassDirection(nil) > end 457,468c468,481 < for i,v in pairs(planets) do < if compare(v, orbited) then < if i == planetIndex then < return nextStage() < elseif not storage.scanned[i] then < local message = { < messageId = "scan_planets_message", < unique = false, < text = string.format(config.getParameter("scanMessage"), celestialWrap.planetName(v)) < } < player.radioMessage(message) < storage.scanned[i] = true --- > if quest.isCurrent() then > for i,v in pairs(planets) do > if compare(v, orbited) then > if i == planetIndex then > return nextStage() > elseif not storage.scanned[i] then > local message = { > messageId = "scan_planets_message", > unique = false, > text = string.format(config.getParameter("scanMessage"), celestialWrap.planetName(v)) > } > player.radioMessage(message) > storage.scanned[i] = true > end 571a585 > quest.setWorldId(missionWorld) 582,585d595 < if storage.pending["bounty"] then < local angle = vec2.angle(world.distance(storage.pending["bounty"], entity.position())) < quest.setCompassDirection(angle) < end 597a608,610 > if storage.event["escape"] then > return quest.fail() > end scripts\bountygeneration.lua 631a632,640 > else > -- try not to place the quest in a previously used system > local usedSystems = util.map(usedCoordinates, coordinateSystem) > for i,w in ipairs(planetPool) do > if not contains(usedSystems, coordinateSystem(w)) then > worldIndex = i > break > end > end 644d652 < -- pick a system from the pool that's not previously visited 655,659c663,671 < local world < local excludeSystems = util.map(usedCoordinates, coordinateSystem) < repeat < world = table.remove(planetPool, 1) < until world == nil or not contains(excludeSystems, coordinateSystem(world)) --- > local worldIndex = 1 > local usedSystems = util.map(usedCoordinates, coordinateSystem) > for i,w in ipairs(planetPool) do > if not contains(usedSystems, coordinateSystem(w)) then > worldIndex = i > break > end > end > local world = table.remove(planetPool, 1) stagehands\bountymanager.lua 199,200c199,200 < if contains(storage.questStorage[questId].players, playerId) then < return --- > if not contains(storage.questStorage[questId].players, playerId) then > table.insert(storage.questStorage[questId].players, playerId) 202d201 < table.insert(storage.questStorage[questId].players, playerId) 302c301 < sb.logInfo("Player %s completed %s") --- > sb.logInfo("Player %s completed %s", playerId, questId) 314c313 < sb.logInfo("Player %s failed %s") --- > sb.logInfo("Player %s failed %s", playerId, questId) 566a566,567 > parameters.elite = true > parameters.aggressive = true