FILES ----- [NEW] behaviors\npc\quests\quest-escort-notification.behavior dialog\quest.config interface\ai\ai.config interface\ai\body.png interface\ai\letme3ddown.png interface\ai\letme3dover.png interface\ai\letme3dup.png interface\ai\letstalkdown.png interface\ai\letstalkover.png interface\ai\letstalkup.png interface\ai\showtechdown.png interface\ai\showtechover.png interface\ai\showtechup.png interface\ai\tabbase.png interface\ai\tabover.png interface\ai\tabselected.png interface\ai\tabselectedover.png [NEW] interface\crafting\tabicon_fossilbrush.png [NEW] interface\crafting\tabicon_fossilstand.png interface\inventory\slothighlight.png interface\merchant\tabbase.png interface\objectcrafting\fossilstation.config interface\quests\questlog\body.png [NEW] interface\scripted\mmupgrade\body.png [NEW] interface\scripted\mmupgrade\footer.png [NEW] interface\scripted\mmupgrade\header.png [NEW] interface\scripted\mmupgrade\mmupgradegui.config [NEW] interface\scripted\mmupgrade\mmupgradegui.lua [NEW] interface\scripted\mmupgrade\modules.png [NEW] interface\scripted\mmupgrade\ready.png [NEW] interface\scripted\mmupgrade\unready.png [NEW] interface\scripted\mmupgrade\upgrade.png [NEW] interface\scripted\mmupgrade\upgradecomplete.png [NEW] interface\scripted\mmupgrade\upgradelocked.png [NEW] interface\scripted\mmupgrade\upgradeselected.png items\active\weapons\melee\broadsword\astrosabredeluxe.png items\active\weapons\melee\broadsword\astrosabredeluxefullbright.png items\tools\miningtools\beamaxe.beamaxe [NEW] objects\upgrade\mmupgradeconsole\icon.png [NEW] objects\upgrade\mmupgradeconsole\mmupgradeconsole.animation [NEW] objects\upgrade\mmupgradeconsole\mmupgradeconsole.frames [NEW] objects\upgrade\mmupgradeconsole\mmupgradeconsole.object [NEW] objects\upgrade\mmupgradeconsole\mmupgradeconsole.png [NEW] objects\upgrade\mmupgradeconsole\mmupgradeconsolelit.frames [NEW] objects\upgrade\mmupgradeconsole\mmupgradeconsolelit.png quests\generated\questpools\common.config [NEW] quests\generated\templates\escort.questtemplate [NEW] quests\scripts\generated\escort.lua quests\scripts\generated\kill.lua scripts\actions\overrides.lua scripts\actions\quests.lua scripts\quest\participant.lua DIFFS ----- dialog\quest.config 891a892,900 > }, > "escort" : { > "found" : { > "default" : { > "default" : [ > "I'm so lost. Can you take me back to ?" > ] > } > } interface\ai\ai.config 9a10 > "type" : "button", 69c70,71 < "pressedOffset" : [0, 0] --- > "pressedOffset" : [0, 0], > "caption" : "LET ME 3D PRINT" 78c80,81 < "pressedOffset" : [0, 0] --- > "pressedOffset" : [0, 0], > "caption" : "SHOW ME MY TECH" 138c141 < "rect" : [248, 43, 500, 173], --- > "rect" : [247, 39, 499, 172], 150c153 < "position" : [4, 0], --- > "position" : [6, 4], 155c158 < "rect" : [0, 24, 138, 112], --- > "rect" : [3, 28, 141, 116], 199c202 < "position" : [4, 0], --- > "position" : [6, 4], 204c207 < "rect" : [0, 24, 138, 112], --- > "rect" : [3, 28, 141, 116], 248c251 < "position" : [4, 0], --- > "position" : [6, 4], 253c256 < "rect" : [0, 24, 138, 112], --- > "rect" : [3, 28, 141, 116], 338c341 < "rect" : [247, 37, 400, 173], --- > "rect" : [247, 39, 499, 172], 346c349 < "rect" : [0, 30, 139, 118], --- > "rect" : [5, 28, 141, 116], 393c396 < "rect" : [0, 30, 139, 118], --- > "rect" : [5, 28, 141, 116], 440c443 < "rect" : [0, 30, 139, 118], --- > "rect" : [5, 28, 141, 116], interface\objectcrafting\fossilstation.config 191,192c191,192 < "file" : "/interface/crafting/tabicon_farming.png", < "position" : [25, 222], --- > "file" : "/interface/crafting/tabicon_fossilbrush.png", > "position" : [25, 223], 197,198c197,198 < "file" : "/interface/crafting/tabicon_decorations.png", < "position" : [47, 223], --- > "file" : "/interface/crafting/tabicon_fossilstand.png", > "position" : [52, 223], items\tools\miningtools\beamaxe.beamaxe 15c15 < "tileDamage" : 1.3, --- > "tileDamage" : 1.2, quests\generated\questpools\common.config 7c7,8 < [1.0, "kidnapping"] --- > [1.0, "kidnapping"], > [1.0, "escort"] 451a453,514 > "damageTeamType" : "assistant" > }], > ["species", "questGiver", "species"] > ], > "postconditions" : [ > ] > }, > > "escort" : { > "templateId" : "escort.generated", > "difficulty" : 0.2, > "participants" : { > "questGiver" : { > "turnInQuest" : true > } > }, > > "managerPlugins" : [ > { > "script" : "/scripts/quest/manager/spawn_entities.lua", > "pluginClass" : "SpawnEntities", > "pluginConfig" : { > "group" : "targets", > "spawnCount" : 1, > "positionParameter" : "spawnPoint", > "persistent" : true, > "spawnParameter" : "targetNpcType", > > "addEntityParameter" : "target", > "relationships" : [ > ["likes", false, "questGiver"], > ["likes", true, "questGiver"] > ], > "participantDef" : { > "critical" : true, > "behaviorOverrides" : [ > { > "type" : "notification", > "behavior" : { > "name" : "quest-escort-notification" > } > }, > { > "type" : "follow", > "target" : "player", > "questFlag" : "interacted" > }, > { > "type" : "follow", > "target" : "questGiver", > "questFlag" : "interacted" > } > ] > } > } > } > ], > > "preconditions" : [ > ["findLocation", "spawnPoint", "locationTags", 90, -1], > > ["seededNpcType", "targetNpcType", "species", {"literal":"villager"}, { quests\scripts\generated\kill.lua 16a17 > objective("findPlace"):complete() 42,45c43,48 < local range = config.getParameter("spawnPointObjectiveRange") < local spawnPoint = rect.center(quest.parameters().spawnPoint.region) < if world.magnitude(entity.position(), spawnPoint) < range then < objective("findPlace"):complete() --- > if not objective("findPlace"):isComplete() then > local range = config.getParameter("spawnPointObjectiveRange") > local spawnPoint = rect.center(quest.parameters().spawnPoint.region) > if world.magnitude(entity.position(), spawnPoint) < range then > objective("findPlace"):complete() > end scripts\actions\overrides.lua 54,57c54,59 < local list = {} < for overrideId, override in pairs(overrides) do < list[#list+1] = override < end --- > local list = util.filter(util.toList(overrides), function (override) > if override.questId and override.questFlag then > return self.quest:getQuestValue(override.questId, override.questFlag) and true or false > end > return true > end) scripts\actions\quests.lua 236a237,296 > > -- param quest > -- param name > -- output list/number/bool/etc. > function getQuestValue(args, output) > args = parseArgs(args, { > quest = "", > name = "" > }) > > local quest = BData:getTable(args.quest) > if not quest then return false end > local questId = quest.questId or quest > > local value = self.quest:getQuestValue(questId, args.name) > if not value then return false end > > local setType, index = BData.findType(output) > if setType then > BData:set(setType, index, value) > end > return true > end > > -- param quest > -- param name > -- param list/number/bool/etc. > function setQuestValue(args, output) > args = parseArgs(args, { > quest = "", > name = "" > }) > > local quest = BData:getTable(args.quest) > if not quest then return false end > local questId = quest.questId or quest > > local getType,index = BData.findType(args) > local value = type(index) ~= "string" and index or BData:get(getType, index) > if value == nil then return false end > > self.quest:setQuestValue(questId, args.name, value) > return true > end > > -- param quest > -- param name > function unsetQuestValue(args, output) > args = parseArgs(args, { > quest = "", > name = "" > }) > > local quest = BData:getTable(args.quest) > if not quest then return false end > local questId = quest.questId or quest > > self.quest:setQuestValue(questId, args.name, nil) > return true > end scripts\quest\participant.lua 15a16 > self.data.questValues = self.data.questValues or {} 169a171,172 > > self.data.questValues[questDesc.questId] = self.data.questValues[questDesc.questId] or {} 239a243 > self.data.questValues[questDesc.questId] = nil 364a369,376 > end > > function QuestParticipant:getQuestValue(questId, varName) > return self.data.questValues[questId][varName] > end > > function QuestParticipant:setQuestValue(questId, varName, value) > self.data.questValues[questId][varName] = value