FILES ----- client.config dialog\quest.config dungeons\microdungeons\underground\underground0d\underground0dmicrodungeons.dungeon [NEW] dungeons\microdungeons\underground\underground0d\underground0d_open2.json [NEW] dungeons\microdungeons\underground\underground0d\underground0d_tunnel2.json [NEW] dungeons\microdungeons\underground\underground0d\underground0d_tunnelbackslope2.json [NEW] dungeons\microdungeons\underground\underground0d\underground0d_tunnelforwardslope2.json [NEW] dungeons\microdungeons\underground\underground0d\underground0d_tunnelweakbackslope2.json [NEW] dungeons\microdungeons\underground\underground0d\underground0d_tunnelweakforwardslope2.json [NEW] dungeons\microdungeons\underground\underground1a\underground1amicrodungeons.dungeon [NEW] dungeons\microdungeons\underground\underground1a\underground1a_open1.json interface\elements\ice.png interface\quests\newquest\body.png interface\quests\newquest\details.png [NEW] interface\quests\newquest\polaroid.png [NEW] interface\quests\newquest\polaroidbackground.png [NEW] interface\quests\newquest\questgiver.png [NEW] interface\quests\newquest\tape.png [NEW] interface\quests\questcomplete2\body.png [NEW] interface\quests\questcomplete2\details.png [NEW] interface\quests\questcomplete2\footer.png [NEW] interface\quests\questcomplete2\header.png [NEW] interface\quests\questcomplete2\okayover.png [NEW] interface\quests\questcomplete2\okayup.png [NEW] interface\quests\questcomplete2\questcomplete.png [NEW] interface\quests\questcomplete2\questgiver.png [NEW] interface\quests\questcomplete2\rewardbanner.png [NEW] interface\quests\questcomplete2\rewards.png [NEW] interface\quests\questcomplete2\shine.png interface\quests\questfailed\questfailed.png interface\windowconfig\newquest.config interface\windowconfig\questcomplete.config interface\windowconfig\questfailed.config [NEW] items\active\weapons\ranged\altabilities\fuelairtrail\fuelairtrail.altability [NEW] items\active\weapons\ranged\altabilities\fuelairtrail\fuelairtrail.lua [NEW] items\active\weapons\ranged\flamethrower\flamethrower.activeitem [NEW] items\active\weapons\ranged\flamethrower\flamethrower.lua [NEW] items\active\weapons\ranged\flamethrower\barrel\1.png [NEW] items\active\weapons\ranged\flamethrower\barrel\2.png [NEW] items\active\weapons\ranged\flamethrower\barrel\3.png [NEW] items\active\weapons\ranged\flamethrower\barrel\4.png [NEW] items\active\weapons\ranged\flamethrower\butt\1.png [NEW] items\active\weapons\ranged\flamethrower\butt\2.png [NEW] items\active\weapons\ranged\flamethrower\butt\3.png [NEW] items\active\weapons\ranged\flamethrower\butt\4.png [NEW] items\active\weapons\ranged\flamethrower\butt\5.png [NEW] items\active\weapons\ranged\flamethrower\butt\6.png [NEW] items\active\weapons\ranged\flamethrower\butt\7.png [NEW] items\active\weapons\ranged\flamethrower\middle\1.png [NEW] items\active\weapons\ranged\flamethrower\middle\2.png [NEW] items\active\weapons\ranged\flamethrower\middle\3.png [NEW] items\active\weapons\ranged\flamethrower\middle\4.png [NEW] items\active\weapons\ranged\remotegrenadelauncher\remotegrenadelauncher.activeitem [NEW] items\active\weapons\ranged\remotegrenadelauncher\remotegrenadelauncher.animation [NEW] items\active\weapons\ranged\remotegrenadelauncher\remotegrenadelauncher.lua [NEW] items\active\weapons\ranged\remotegrenadelauncher\remotegrenadelauncher.png monsters\walkers\crabcano\crabcano.animation monsters\walkers\hypnare\hypnare.animation monsters\walkers\mandraflora\mandraflora.animation monsters\walkers\peblit\peblit.animation monsters\walkers\peblit\peblit.monstertype monsters\walkers\pipkin\pipkin.animation monsters\walkers\pipkin\pipkin.monstertype monsters\walkers\ringram\ringram.animation monsters\walkers\scaveran\scaveran.animation monsters\walkers\scaveran\scaveran.monstertype npcs\guard.npctype objects\ancient\airbooster\airbooster.object [NEW] projectiles\guns\unsorted\fuelaircloud\default.frames [NEW] projectiles\guns\unsorted\fuelaircloud\fuelaircloud.lua [NEW] projectiles\guns\unsorted\fuelaircloud\fuelaircloud.png [NEW] projectiles\guns\unsorted\fuelaircloud\fuelaircloud.projectile projectiles\remotegrenade\remotestickygrenade.png projectiles\remotegrenade\remotestickygrenade.projectile quests\generated\comfort.config quests\generated\protection.config quests\generated\subquests.config quests\generated\comfort\add_object_to_house.questtemplate quests\generated\pools\monsters.config quests\generated\subquests\bribe.questtemplate quests\generated\subquests\build_home.questtemplate quests\generated\subquests\collect_fine.questtemplate quests\generated\subquests\collect_for_safekeeping.questtemplate quests\generated\subquests\collect_gift.questtemplate quests\generated\subquests\cooking.questtemplate quests\generated\subquests\craft.questtemplate quests\generated\subquests\extort.questtemplate quests\generated\subquests\farming.questtemplate quests\generated\subquests\fetch.questtemplate quests\generated\subquests\fetch_dungeon.questtemplate quests\generated\subquests\gift.questtemplate quests\generated\subquests\intimidate.questtemplate quests\generated\subquests\kill_monster.questtemplate quests\generated\subquests\protect.questtemplate [NEW] quests\generated\subquests\request_craft.questtemplate quests\generated\subquests\return_stolen.questtemplate quests\generated\subquests\share_secret.questtemplate quests\generated\subquests\spread_rumors.questtemplate quests\generated\subquests\steal.questtemplate scripts\questgen\generator.lua scripts\questgen\relations.lua sfx\npc\monsters\crabcano_windup2.ogg [NEW] sfx\npc\monsters\hypnare_hop.ogg sfx\npc\monsters\mandraflora_spinning.ogg sfx\npc\monsters\mandraflora_winddown.ogg sfx\npc\monsters\mandraflora_windup.ogg sfx\npc\monsters\monster_surprise.ogg [NEW] sfx\npc\monsters\peblit_drop1.ogg [NEW] sfx\npc\monsters\peblit_drop2.ogg [NEW] sfx\npc\monsters\peblit_drop3.ogg [NEW] sfx\npc\monsters\pipkin_attack.ogg [NEW] sfx\npc\monsters\ringram_attack1.ogg [NEW] sfx\npc\monsters\ringram_attack2.ogg [NEW] sfx\npc\monsters\ringram_windup.ogg [NEW] sfx\npc\monsters\scaveran_attack.ogg [NEW] sfx\npc\monsters\scaveran_hop.ogg [NEW] sfx\npc\monsters\scaveran_idle1.ogg [NEW] sfx\npc\monsters\scaveran_idle2.ogg [NEW] sfx\npc\monsters\scaveran_idle3.ogg [NEW] sfx\npc\monsters\scaveran_idle_quick1.ogg [NEW] sfx\npc\monsters\scaveran_idle_quick2.ogg [NEW] sfx\npc\monsters\scaveran_idle_quick3.ogg DIFFS ----- client.config 8c8 < "worldClientUpdateStepDelta" : 10, --- > "worldClientStateUpdateDelta" : 10, dialog\quest.config 307a308,341 > }, > "human" : { > "default" : [ > "I assure you, that was acquired legally!", > "Fine, take the - I don't need it anyway!" > ] > }, > "apex" : { > "default" : [ > "Fine, take back the - Just don't get me into trouble!", > "That was acquired legitimately - I swear!" > ] > }, > "avian" : { > "default" : [ > "I had permission to borrow that , it wasn't stolen!" > ] > }, > "floran" : { > "default" : [ > "You can take that back, just don't get Floran in trouble!" > ] > }, > "glitch" : { > "default" : [ > "Nervous. I have no idea how that got here!", > "Worried. That wasn't stolen, it only looks that way!" > ] > }, > "hylotl" : { > "default" : [ > "I didn't steal that , I was just borrowing it!", > "That was acquired fairly, I promise you!" > ] 316c350,385 < "Fine, fine, I'll pay the fine. Tell it's a fair cop." --- > "Fine, fine, I'll pay the fine. Don't judge me!" > ] > }, > "human" : { > "default" : [ > "Fine, fine, I'll pay the fine. Don't judge me!", > "You caught me! I'll play fair." > ] > }, > "apex" : { > "default" : [ > "Fine, I'll pay up. Just don't report this to the MiniKnog!", > "You caught me - I'll pay the fine. Just don't get me in bigger trouble!" > ] > }, > "avian" : { > "default" : [ > "No need to ruffle my feathers any further - I'll pay up!" > ] > }, > "floran" : { > "default" : [ > "Floran got caught, ssso Floran will pay fine.", > "You caught Floran! Floran impressed, here isss the fine." > ] > }, > "glitch" : { > "default" : [ > "Defeated. I guess I should pay the fine, I don't want to get in further trouble!", > "Embarassed. I'll pay the fine - There's no use running." > ] > }, > "hylotl" : { > "default" : [ > "I'll pay the fine! No need to disturb the peace any further.", > "Stay calm! I'll pay the fine!" dungeons\microdungeons\underground\underground0d\underground0dmicrodungeons.dungeon 8c8 < "anchor" : [ "underground0d_open1", "underground0d_tunnelBackSlope1", "underground0d_tunnelForwardSlope1", "underground0d_tunnel1", "underground0d_tunnelWeakBackSlope1", "underground0d_tunnelWeakForwardSlope1" ], --- > "anchor" : [ "underground0d_open1", "underground0d_open2", "underground0d_tunnelBackSlope1", "underground0d_tunnelBackSlope2", "underground0d_tunnelForwardSlope1", "underground0d_tunnelForwardSlope2", "underground0d_tunnel1", "underground0d_tunnel2", "underground0d_tunnelWeakBackSlope1", "underground0d_tunnelWeakBackSlope2", "underground0d_tunnelWeakForwardSlope1", "underground0d_tunnelWeakForwardSlope2" ], 23a24,30 > { > "name" : "underground0d_open2", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "underground0d_open2.json" ] > }, 31a39,45 > "name" : "underground0d_tunnelBackSlope2", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "underground0d_tunnelBackSlope2.json" ] > }, > { 38a53,59 > "name" : "underground0d_tunnelForwardSlope2", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "underground0d_tunnelForwardSlope2.json" ] > }, > { 45a67,73 > "name" : "underground0d_tunnel2", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "underground0d_tunnel2.json" ] > }, > { 52a81,87 > "name" : "underground0d_tunnelWeakBackSlope2", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "underground0d_tunnelWeakBackSlope2.json" ] > }, > { 57a93,99 > }, > { > "name" : "underground0d_tunnelWeakForwardSlope2", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "underground0d_tunnelWeakForwardSlope2.json" ] interface\windowconfig\newquest.config 37c37 < "position" : [30, 156], --- > "position" : [30, 212], 54,55c54,56 < "offset" : [48, 50], < "position" : [9, 94] --- > "offset" : [48, 30], > "position" : [9, 153], > "scale" : 1.5 59c60 < "position" : [32, 87], --- > "position" : [32, 143], 68,69c69,71 < "offset" : [15, 10], < "position" : [250, 68] --- > "offset" : [26, 15], > "position" : [220, 57], > "scale" : 1.5 73,75c75,77 < "position" : [245, 68], < "hAnchor" : "right", < "fontSize" : 8, --- > "position" : [235, 49], > "hAnchor" : "mid", > "fontSize" : 4, 77c79 < "color" : "green" --- > "color" : "black" 83c85 < "position" : [155, 49], --- > "position" : [104, 32], 88,89c90,91 < "position" : [8, 47], < "dimensions" : [5, 1], --- > "position" : [55, 47], > "dimensions" : [2, 1], 96c98 < "position" : [12, 68], --- > "position" : [12, 51], 100a103,120 > "imgPolaroid" : { > "type" : "image", > "file" : "/interface/quests/newquest/polaroid.png", > "position" : [216, 47], > "zlevel" : -1 > }, > /* "imgTape" : { > "type" : "image", > "file" : "/interface/quests/newquest/tape.png", > "position" : [204, 49] > }, > */ > "imgPolaroidBack" : { > "type" : "image", > "file" : "/interface/quests/newquest/polaroidBackground.png", > "position" : [216, 47], > "zlevel" : -2 > }, 104c124 < "position" : [60, 70] --- > "position" : [60, 700] 108c128 < "position" : [75, 68], --- > "position" : [75, 680], 115c135 < "position" : [140, 144], --- > "position" : [140, 200], 125c145 < "position" : [65, 132], --- > "position" : [67, 188], 128c148 < "wrapWidth" : 190, --- > "wrapWidth" : 187, interface\windowconfig\questcomplete.config 11,13c11,13 < "fileHeader" : "/interface/quests/questcomplete/header.png", < "fileBody" : "/interface/quests/newquest/body.png", < "fileFooter" : "/interface/quests/newquest/footer.png" --- > "fileHeader" : "/interface/quests/questcomplete2/header.png", > "fileBody" : "/interface/quests/questcomplete2/body.png", > "fileFooter" : "/interface/quests/questcomplete2/footer.png" 23,24c23,24 < "file" : "/interface/quests/newquest/details.png", < "position" : [3, 37], --- > "file" : "/interface/quests/questcomplete2/details.png", > "position" : [3, 25], 30c30,35 < "position" : [9, 94] --- > "position" : [12, 91] > }, > "imgQuestgiver" : { > "type" : "image", > "file" : "/interface/quests/questcomplete2/questgiver.png", > "position" : [8, 84] 34c39 < "position" : [32, 87], --- > "position" : [35, 84], 44c49 < "position" : [250, 68] --- > "position" : [250, 1000] 48c53 < "position" : [245, 68], --- > "position" : [245, 1000], 56,59c61,64 < "base" : "/interface/quests/questcomplete/acceptRewardOver.png", < "hover" : "/interface/quests/questcomplete/acceptRewardUp.png", < "position" : [155, 49], < "caption" : "ACCEPT" --- > "base" : "/interface/quests/questcomplete2/okayOver.png", > "hover" : "/interface/quests/questcomplete2/okayUp.png", > "position" : [104, 21], > "caption" : "OKAY" 63,64c68,79 < "file" : "/interface/quests/questcomplete/questcomplete.png", < "position" : [-42, 122] --- > "file" : "/interface/quests/questcomplete2/questcomplete.png", > "position" : [37, 151] > }, > "imgRewards" : { > "type" : "image", > "file" : "/interface/quests/questcomplete2/rewards.png", > "position" : [80, 59] > }, > "imgBanner" : { > "type" : "image", > "file" : "/interface/quests/questcomplete2/rewardbanner.png", > "position" : [-37, 19] 68,69c83,84 < "position" : [8, 47], < "dimensions" : [5, 1], --- > "position" : [157, 57], > "dimensions" : [2, 1], 76c91 < "position" : [12, 68], --- > "position" : [126, 46], 78,79c93,94 < "value" : "REWARDS:", < "color" : [155, 227, 214] --- > "value" : "^shadow;BONUS:^noshadow;", > "color" : "orange" 84c99 < "position" : [60, 70] --- > "position" : [157, 47] 88c103 < "position" : [75, 68], --- > "position" : [170, 46], 105c120 < "position" : [65, 132], --- > "position" : [70, 130], interface\windowconfig\questfailed.config 41,53d40 < "objectivePortraitImage" : { < "type" : "image", < "offset" : [15, 10], < "position" : [250, 68] < }, < "objectivePortraitTitle" : { < "type" : "label", < "position" : [245, 68], < "hAnchor" : "right", < "fontSize" : 8, < "value" : "", < "color" : "green" < }, monsters\walkers\crabcano\crabcano.animation 21c21,22 < "persistentSound" : "/sfx/npc/monsters/crabcano_windup2.ogg" --- > "persistentSound" : "/sfx/npc/monsters/crabcano_windup2.ogg", > "persistentSoundStopVelocity" : 5 monsters\walkers\hypnare\hypnare.animation 27,30c27,28 < "particleEmittersOn" : [ "leaves" ] < }, < "frameProperties" : { < "immediateSound" : [ "", "/sfx/npc/monsters/gleap_hop.ogg" ] --- > "particleEmittersOn" : [ "leaves" ], > "immediateSound" : "/sfx/npc/monsters/hypnare_hop.ogg" monsters\walkers\mandraflora\mandraflora.animation 36,37c36,37 < "persistentSound" : "/sfx/npc/monsters/mandraflora_windup.ogg" < // "persistentSoundStopVelocity" : 0.2 --- > "persistentSound" : "/sfx/npc/monsters/mandraflora_windup.ogg", > "persistentSoundStopVelocity" : 7 46,47c46,48 < "particleEmittersOff" : [ "spindust" ], < "immediateSound" : "/sfx/npc/monsters/mandraflora_winddown.ogg" --- > "particleEmittersOff" : [ "spindust" ] > // "persistentSound" : "/sfx/npc/monsters/mandraflora_winddown.ogg", > // "persistentSoundStopVelocity" : 1 55c56,57 < "persistentSound" : "/sfx/npc/monsters/mandraflora_spinning.ogg" --- > "persistentSound" : "/sfx/npc/monsters/mandraflora_spinning.ogg", > "persistentSoundStopVelocity" : 2 monsters\walkers\peblit\peblit.animation 19c19,22 < "frames" : 1 --- > "frames" : 1, > "properties" : { > "immediateSound" : "/sfx/npc/monsters/gleap_hop.ogg" > } 29c32,35 < "cycle" : 0.5 --- > "cycle" : 0.5, > "frameProperties" : { > "immediateSound" : [ "", "", "", "", "", "", "/sfx/npc/monsters/peblit_drop1.ogg", "" ] > } monsters\walkers\peblit\peblit.monstertype 22c22 < "targetQueryRange" : 50, --- > "targetQueryRange" : 15, 26c26 < "keepTargetInRange" : 20, --- > "keepTargetInRange" : 15, monsters\walkers\pipkin\pipkin.animation 7c7 < "states" : { --- > "states" : { 19c19,22 < "frames" : 1 --- > "frames" : 1, > "properties" : { > "immediateSound" : "/sfx/npc/monsters/gleap_hop.ogg" > } 28c31,35 < "transition" : "firewinddown" --- > "transition" : "firewinddown", > "properties" : { > "persistentSound" : "/sfx/npc/monsters/pipkin_attack.ogg", > "persistentSoundStopVelocity" : 2 > } 141,142c148 < "deathPuff" : [ "/sfx/npc/enemydeathpuff.ogg" ], < "fire" : [ "/sfx/projectiles/spit1.ogg", "/sfx/projectiles/spit2.ogg" ] --- > "deathPuff" : [ "/sfx/npc/enemydeathpuff.ogg" ] monsters\walkers\pipkin\pipkin.monstertype 52,53c52 < "winddownTime" : 0.5, < "fireSound" : "fire" --- > "winddownTime" : 0.5 monsters\walkers\ringram\ringram.animation 21c21,24 < "mode" : "loop" --- > "mode" : "loop", > "properties" : { > "immediateSound" : "/sfx/npc/monsters/hypnare_hop.ogg" > } 31c34,38 < "mode" : "loop" --- > "mode" : "loop", > "properties" : { > "persistentSound" : "/sfx/npc/monsters/ringram_windup.ogg", > "persistentSoundStopVelocity" : 2 > } 40c47,51 < "mode" : "loop" --- > "mode" : "loop", > "properties" : { > "persistentSound" : "/sfx/npc/monsters/ringram_attack2.ogg", > "persistentSoundStopVelocity" : 3 > } monsters\walkers\scaveran\scaveran.animation 10a11,15 > /* > "frameProperties" : { > "immediateSound" : [ "", "", "", "", "", "", "", "", "", "", "", "/sfx/npc/monsters/scaveran_idle_quick1.ogg", "", "", "", "", "", "", "", "", "", "", "", "" ] > } > */ 25c30 < "cycle" : 0.6, --- > "cycle" : 0.85, 27c32,36 < "transition" : "idle" --- > "transition" : "idle", > "properties" : { > "persistentSound" : "/sfx/npc/monsters/scaveran_attack.ogg", > "persistentSoundStopVelocity" : 7 > } 37,38c46,47 < "frameProperties" : { < "immediateSound" : [ "", "/sfx/npc/monsters/gleap_hop.ogg" ] --- > "properties" : { > "immediateSound" : "/sfx/npc/monsters/scaveran_hop.ogg" 153c162 < "fire" : [ "/sfx/projectiles/spit1.ogg", "/sfx/projectiles/spit2.ogg" ] --- > "fire" : [ "/sfx/projectiles/bloodvomit1.ogg", "/sfx/projectiles/bloodvomit2.ogg", "/sfx/projectiles/bloodvomit3.ogg", "/sfx/projectiles/bloodvomit4.ogg", "/sfx/projectiles/bloodvomit5.ogg", "/sfx/projectiles/bloodvomit6.ogg", "/sfx/projectiles/bloodvomit7.ogg" ] monsters\walkers\scaveran\scaveran.monstertype 65c65,66 < "hopAwayFromWall" : true --- > "hopAwayFromWall" : true, > "hopSound" : "hop" npcs\guard.npctype 77,79c77,79 < { "name" : "generatedgun", "parameters" : { "definition" : "commonpistol" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonmachinepistol" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonassaultrifle" } } --- > // { "name" : "generatedgun", "parameters" : { "definition" : "commonpistol" } }, > // { "name" : "generatedgun", "parameters" : { "definition" : "commonmachinepistol" } }, > { "name" : "commonassaultrifle" } 82c82 < { "name" : "humantier1broadsword" } --- > { "name" : "commonbroadsword" } objects\ancient\airbooster\airbooster.object 12c12 < // "floranDescription" : "-todo-", --- > "floranDescription" : "Vent makesss Floran go whoosh!", projectiles\remotegrenade\remotestickygrenade.projectile 7c7 < "lightColor" : [40, 60, 80], --- > "lightColor" : [90, 30, 30], 9c9 < "animationCycle" : 0.5, --- > "animationCycle" : 0.75, quests\generated\comfort.config 4,14d3 < "parameters" : { < "object" : { < "type" : "item" < }, < "deed" : { < "type" : "entity" < }, < "extraRewards" : { < "type" : "itemList" < } < }, quests\generated\protection.config 5,12d4 < "parameters" : { < "target" : { < "type" : "entity" < }, < "item" : { < "type" : "item" < } < }, 33a26 > ["!npcHasFurniture", "target", "item"], 45,52d37 < "parameters" : { < "target" : { < "type" : "entity" < }, < "item" : { < "type" : "item" < } < }, quests\generated\subquests.config 4,11d3 < "parameters" : { < "fetchedItems" : { < "type" : "itemList" < }, < "extraRewards" : { < "type" : "itemList" < } < }, 38,51d29 < "parameters" : { < "monster" : { < "type" : "monsterType" < }, < "items" : { < "type" : "itemList" < }, < "spawnPoint" : { < "type" : "location" < }, < "extraRewards" : { < "type" : "itemList" < } < }, 94,104d71 < "parameters" : { < "fetchedItems" : { < "type" : "itemList" < }, < "dungeon" : { < "type" : "noDetail" < }, < "extraRewards" : { < "type" : "itemList" < } < }, 127,143d93 < "parameters" : { < "victim" : { < "type" : "entity" < }, < "victimDeed" : { < "type" : "entity" < }, < "objectItem" : { < "type" : "item" < }, < "object" : { < "type" : "entity" < }, < "extraRewards" : { < "type" : "itemList" < } < }, 191,201d140 < "parameters" : { < "craftedItems" : { < "type" : "itemList" < }, < "ingredients" : { < "type" : "itemList" < }, < "recipes" : { < "type" : "itemList" < } < }, 235,245d173 < "parameters" : { < "cropList" : { < "type" : "itemList" < }, < "seedList" : { < "type" : "itemList" < }, < "extraRewards" : { < "type" : "itemList" < } < }, 273,283d200 < "parameters" : { < "cookedItems" : { < "type" : "itemList" < }, < "ingredients" : { < "type" : "itemList" < }, < "recipes" : { < "type" : "itemList" < } < }, 312,319d228 < "parameters" : { < "furnitureSet" : { < "type" : "itemList" < }, < "extraRewards" : { < "type" : "itemList" < } < }, 343,365d251 < "parameters" : { < "victimDeed" : { < "type" : "entity" < }, < "victim" : { < "type" : "entity" < }, < "thiefDeed" : { < "type" : "entity" < }, < "thief" : { < "type" : "entity" < }, < "item" : { < "type" : "item" < }, < "object" : { < "type" : "entity" < }, < "extraRewards" : { < "type" : "itemList" < } < }, 416,423d301 < "parameters" : { < "target" : { < "type" : "entity" < }, < "item" : { < "type" : "itemTag" < } < }, 450,460d327 < "parameters" : { < "target" : { < "type" : "entity" < }, < "gift" : { < "type" : "item" < }, < "extraRewards" : { < "type" : "itemList" < } < }, 498,508d364 < "parameters" : { < "target" : { < "type" : "entity" < }, < "gift" : { < "type" : "item" < }, < "extraRewards" : { < "type" : "itemList" < } < }, 546,550d401 < "parameters" : { < "target" : { < "type" : "entity" < } < }, 578c429 < "parameters" : { --- > "participants" : { 580,583c431,432 < "type" : "entity" < }, < "item" : { < "type" : "item" --- > "turnInQuest" : true, > "critical" : true 585a435,452 > > "chance" : 0.2, > > "preconditions" : [ > ["likes", "target", "questGiver"], > ["owns", "player", "item", 0], > ["isNpc", "target"], > ["!npcHasFurniture", "target", "item"], > ["!=", "target", "questGiver"] > ], > "postconditions" : [ > ["!owns", "player", "item", 0], > ["owns", "player", "item", 1] > ] > }, > > "request_craft" : { > "templateId" : "request_craft.generated", 598a466,467 > ["isFurniture", "item"], > ["!npcHasFurniture", "target", "item"], 609,616d477 < "parameters" : { < "target" : { < "type" : "entity" < }, < "item" : { < "type" : "item" < } < }, 629a491 > ["!npcHasFurniture", "target", "item"], 640,647d501 < "parameters" : { < "target" : { < "type" : "entity" < }, < "item" : { < "type" : "item" < } < }, 660a515 > ["!npcHasFurniture", "target", "item"], 672,679d526 < "parameters" : { < "target" : { < "type" : "entity" < }, < "item" : { < "type" : "item" < } < }, 699a547 > ["!npcHasFurniture", "target", "item"], 711,721d558 < "parameters" : { < "target" : { < "type" : "entity" < }, < "threat" : { < "type" : "npcType" < }, < "spawnPoint" : { < "type" : "location" < } < }, 751,758d587 < "parameters" : { < "target" : { < "type" : "entity" < }, < "other" : { < "type" : "entity" < } < }, quests\generated\comfort\add_object_to_house.questtemplate 2a3,19 > "parameters" : { > "object" : { > "type" : "item", > "example" : { > "item" : "woodtable" > } > }, > "deed" : { > "type" : "entity" > }, > "extraRewards" : { > "type" : "itemList", > "example" : { > "items" : [ {"name" : "money", "count": 1000} ] > } > } > }, 32,33c49,50 < "Alright, I think this ^orange^white; is exactly what's needed! Could you find a good spot for it? ^green;Place it somewhere that ties it all together!", < "I think this ^orange^white; is going to do the trick! All that's left to do is ^green;place it in the perfect spot." --- > "Alright, I think this ^orange;^white; is exactly what's needed! ^green;Could you find some space in my home to place it?", > "I think this ^orange;^white; is going to do the trick! All that's left to do is ^green;place it in the perfect spot." quests\generated\pools\monsters.config 4,5c4,5 < "name" : "Gleap", < "typeName" : "gleap" --- > "name" : "Pipkin", > "typeName" : "pipkin" 8,9c8,9 < "name" : "Nutmidge", < "typeName" : "nutmidge" --- > "name" : "Mandraflora", > "typeName" : "mandraflora" quests\generated\subquests\bribe.questtemplate 2a3,22 > "parameters" : { > "target" : { > "type" : "entity", > "example" : { > "name" : "Mr Corrupt Person" > } > }, > "gift" : { > "type" : "item", > "example" : { > "item" : "cake" > } > }, > "extraRewards" : { > "type" : "itemList", > "example" : { > "items" : [{"name" : "money", "count": 1000}] > } > } > }, 24,25c44,45 < "Floran heard that ^orange;^white; hasss been looking for a nice ^orange;^white; for a long time now. Lucky for them we have one! If we give them this precious ^orange;^white; Floran is sssure they will feel presssured to help us.", < "Floran heard from a friend of a friend that ^orange;'s^white; biggessst wish is to have a nice ^orange;^white;. Let's ussse this to our advantage. ^green;Give them our preciousss ^orange;^white; and they will surely feel indebted to usss. " --- > "Floran heard that ^orange;^white; hasss been looking for a nice ^orange;^white; for a long time now. Lucky for them we have one! If we give them this precious ^orange;^white; Floran is sssure they will feel presssured to help us.", > "Floran heard from a friend of a friend that ^orange;'s^white; biggessst wish is to have a nice ^orange;^white;. Let's ussse this to our advantage. ^green;Give them our preciousss ^orange;^white; and they will surely feel indebted to usss. " 28,29c48,49 < "Manipulative. The next thing I?ÇÖd like you to do is ^green;give ^orange; ^white;a very special something. I need them to receive ^green;the ^orange;^white; in order for the plan to work.", < "Nervous. Next I need the favour of ^orange; - ^green;Try bribing them with the ^orange;^white; that should hopefully work..." --- > "Manipulative. The next thing I'd like you to do is ^green;give ^orange; ^white;a very special something. I need them to receive ^green;the ^orange;^white; in order for the plan to work.", > "Nervous. Next I need the favour of ^orange;^green; - Try bribing them with the ^orange;^white; that should hopefully work..." 32c52 < "Next ^green;I need to win over ^orange;^white;, and it just so happens that ^green;they would probably love your ^white;! Is that bribery? Sure, but I don't think they'll mind...", --- > "Next ^green;I need to win over ^orange;^white;, and it just so happens that ^green;they would probably love your ^orange;^white;! Is that bribery? Sure, but I don't think they'll mind...", 38,39c58,59 < "Now we can finally get to the important part of the plan. Floran knowss that ^orange;^white; has been searching for a nice ^orange;^white; for a long time. ^green;If you bribe them with ours,^white; they'll help me in future.", < "Floran hass done research and found out that ^orange;^white; needs one ^orange;^white; for their persssonal use. Floran thinks that if we ^green;give them our ^orange;^white;, they will surely owe us a favour." --- > "Now we can finally get to the important part of the plan. Floran knowss that ^orange;^white; has been searching for a nice ^orange;^white; for a long time. ^green;If you bribe them with ours,^white; they'll help me in future.", > "Floran hass done research and found out that ^orange;^white; needs one ^orange;^white; for their persssonal use. Floran thinks that if we ^green;give them our ^orange;^white;, they will surely owe us a favour." 42c62 < "Apprehensive. I?ÇÖd like to make clear that this is very much not a bribe of any sort. I don't even know the meaning of the word. All I need you to do is ^green;give ^orange; ^green;the ^orange; ^white;to persuade them to act in my favour...", --- > "Apprehensive. I'd like to make clear that this is very much not a bribe of any sort. I don't even know the meaning of the word. All I need you to do is ^green;give ^orange; ^green;the ^orange; ^white;to persuade them to act in my favour...", 72c92 < "Exhilarated. took the ? That?ÇÖs perfect! If I ever need a favour I know I have someone that?ÇÖs indebted to me now. I can?ÇÖt believe you thought this was some sort of bribe!", --- > "Exhilarated. took the ? That's perfect! If I ever need a favour I know I have someone that's indebted to me now. I can't believe you thought this was some sort of bribe!", quests\generated\subquests\build_home.questtemplate 2a3,19 > "parameters" : { > "furnitureSet" : { > "type" : "itemList", > "example" : { > "items" : [ > {"name" : "woodtable", "count" : 1}, > {"name" : "tier1light", "count" : 1} > ] > } > }, > "extraRewards" : { > "type" : "itemList", > "example" : { > "items" : [{"name" : "money", "count" : 1000}] > } > } > }, 32c49 < "I think we've gathered all the furnishings we need. Now we just need the house itself! ^green;Build a home and set ^orange^green; inside.^white; Along with the ^green;Colony Deed^white; I gave you earlier we should be able to attract a good tenant.", --- > "I think we've gathered all the furnishings we need. Now we just need the house itself! ^green;Build a home and set ^orange;^green; inside.^white; Along with the ^green;Colony Deed^white; I gave you earlier we should be able to attract a good tenant.", quests\generated\subquests\collect_fine.questtemplate 2a3,16 > "parameters" : { > "target" : { > "type" : "entity", > "example" : { > "name" : "Criminal McCriminalson" > } > }, > "item" : { > "type" : "item", > "example" : { > "item" : "banana" > } > } > }, quests\generated\subquests\collect_for_safekeeping.questtemplate 2a3,16 > "parameters" : { > "target" : { > "type" : "entity", > "example" : { > "name" : "John Smith" > } > }, > "item" : { > "type" : "item", > "example" : { > "item" : "cake" > } > } > }, 10,11c24,25 < "Eager. First things first, you?ÇÖll need to ^green;speak to ^orange ^white;and ^green;borrow their ^orange. ^white;Just tell them I sent you, and they?ÇÖll be happy to lend it to you.", < "Restless. Our first priority should be obtaining a good quality ^orange;. It?ÇÖs likely quicker to just^green; ask ^orange;^green; if we can borrow theirs. " --- > "Eager. First things first, you'll need to ^green;speak to ^orange ^white;and ^green;borrow their ^orange. ^white;Just tell them I sent you, and they'll be happy to lend it to you.", > "Restless. Our first priority should be obtaining a good quality ^orange;. It's likely quicker to just^green; ask ^orange;^green; if we can borrow theirs. " 24c38 < "Spontaneous. We?ÇÖll need to ^green;borrow sylabus ?ÇÖs ^white;next. They?ÇÖll not have a problem handing it over if you tell them I sent you over there.", --- > "Spontaneous. We'll need to ^green;borrow sylabus 's ^white;next. They'll not have a problem handing it over if you tell them I sent you over there.", 40,41c54,55 < "Delighted. Great! that?ÇÖs just what we needed. I knew would come through for us! Just don?ÇÖt do something silly like forget to hand it back to them when we?ÇÖre done here. That?ÇÖd be pretty embarrassing!", < "Relieved. You got it! this will do nicely. It was nice of to let us borrow it. Try and remember to return it when we?ÇÖve finished." --- > "Delighted. Great! that's just what we needed. I knew would come through for us! Just don't do something silly like forget to hand it back to them when we're done here. That'd be pretty embarrassing!", > "Relieved. You got it! this will do nicely. It was nice of to let us borrow it. Try and remember to return it when we've finished." 54,55c68,69 < "Trusting. Ah good, you got the ! You?ÇÖll have to remember to return it at some point, but don?ÇÖt worry about that for now.", < "Thankful. This will work perfectly! it also saved us tracking one down ourselves. Make sure you don?ÇÖt damage it, wouldn?ÇÖt be happy if you returned it in poor condition." --- > "Trusting. Ah good, you got the ! You'll have to remember to return it at some point, but don't worry about that for now.", > "Thankful. This will work perfectly! it also saved us tracking one down ourselves. Make sure you don't damage it, wouldn't be happy if you returned it in poor condition." quests\generated\subquests\collect_gift.questtemplate 2a3,16 > "parameters" : { > "target" : { > "type" : "entity", > "example" : { > "name" : "Friendly Friend" > } > }, > "item" : { > "type" : "item", > "example" : { > "item" : "luckydip" > } > } > }, quests\generated\subquests\cooking.questtemplate 2a3,26 > "parameters" : { > "cookedItems" : { > "type" : "itemList", > "example" : { > "items" : [{"name" : "cake", "count" : 1}] > } > }, > "ingredients" : { > "type" : "itemList", > "example" : { > "items" : [ > {"name" : "wheat", "count" : 1}, > {"name" : "egg", "count" : 1}, > {"name" : "milk", "count" : 1} > ] > } > }, > "recipes" : { > "type" : "itemList", > "example" : { > "items" : [{"name" : "cake-recipe", "count" : 1}] > } > } > }, quests\generated\subquests\craft.questtemplate 2a3,25 > "parameters" : { > "craftedItems" : { > "type" : "itemList", > "example" : { > "items" : [{"name" : "torch", "count" : 1}] > } > }, > "ingredients" : { > "type" : "itemList", > "example" : { > "items" : [ > {"name" : "darkwoodmaterial", "count" : 2}, > {"name" : "coalore", "count" : 1} > ] > } > }, > "recipes" : { > "type" : "itemList", > "example" : { > "items" : [] > } > } > }, quests\generated\subquests\extort.questtemplate 2a3,16 > "parameters" : { > "target" : { > "type" : "entity", > "example" : { > "name" : "Ms Extorted" > } > }, > "item" : { > "type" : "item", > "example" : { > "item" : "apexstatue3" > } > } > }, 10,11c24,25 < "Blunt. First I need you to ^green;find that fool, ^orange; ^green;and ask them to give up their ^orange;. ^white;Make sure you mention that ^orange;^white; sent you, they won?ÇÖt protest... ", < "Exasperated. First, we must deal with ^orange;. ^white;I need their ^orange;, ^white;but they?ÇÖd be petrified if I went in person. It would save us both some trouble if you were to ^green;fetch it^white; instead." --- > "Blunt. First I need you to ^green;find that fool, ^orange; ^green;and ask them to give up their ^orange;. ^white;Make sure you mention that ^orange;^white; sent you, they won't protest... ", > "Exasperated. First, we must deal with ^orange;. ^white;I need their ^orange;, ^white;but they'd be petrified if I went in person. It would save us both some trouble if you were to ^green;fetch it^white; instead." 25c39 < "Antagonistic. Now we can have a bit of fun! Go find ^orange; ^white;and ^green;pressure them into handing over their ^orange.^white; It shouldn?ÇÖt be too difficult, just mention that ^orange^white; sent you personally." --- > "Antagonistic. Now we can have a bit of fun! Go find ^orange; ^white;and ^green;pressure them into handing over their ^orange.^white; It shouldn't be too difficult, just mention that ^orange^white; sent you personally." 40,41c54,55 < "Sarcastic. Ah, I see you got the . I?ÇÖm sure it was difficult for you to get to hand it over. Keep hold of it for me for the time being.", < "Amused. Ah, you got ?ÇÖs . I can imagine the look on their face was priceless!" --- > "Sarcastic. Ah, I see you got the . I'm sure it was difficult for you to get to hand it over. Keep hold of it for me for the time being.", > "Amused. Ah, you got 's . I can imagine the look on their face was priceless!" 54,55c68,69 < "Distrustful. This is definitely ?ÇÖs ? And they just handed it you? It?ÇÖs probably nothing...But you should hold onto it for now.", < "Approving. This is the we needed! I assume wasn?ÇÖt too much trouble? You'll need to keep hold of it for now." --- > "Distrustful. This is definitely 's ? And they just handed it you? It's probably nothing...But you should hold onto it for now.", > "Approving. This is the we needed! I assume wasn't too much trouble? You'll need to keep hold of it for now." quests\generated\subquests\farming.questtemplate 2a3,22 > "parameters" : { > "cropList" : { > "type" : "itemList", > "example" : { > "items" : [{"name" : "pearlpea", "count" : 3}] > } > }, > "seedList" : { > "type" : "itemList", > "example" : { > "items" : [{"name" : "pearlpeaseed", "count" : 1}] > } > }, > "extraRewards" : { > "type" : "itemList", > "example" : { > "items" : [{"name" : "money", "count" : 1000}] > } > } > }, 36c56 < "Thanksssss, friend. Floran finds hard to grow here, you have been a great help.", --- > "Thanksssss, friend. Floran finds hard to grow here, you have been a great help.", quests\generated\subquests\fetch.questtemplate 2a3,19 > "parameters" : { > "fetchedItems" : { > "type" : "itemList", > "example" : { > "items" : [ > {"name" : "banana", "count" : 3}, > {"name" : "teleportercore", "count" : 1} > ] > } > }, > "extraRewards" : { > "type" : "itemList", > "example" : { > "items" : [{"name" : "money", "count" : 1000}] > } > } > }, quests\generated\subquests\fetch_dungeon.questtemplate 2a3,22 > "parameters" : { > "fetchedItems" : { > "type" : "itemList", > "example" : { > "items" : [{"name" : "apextorturebed", "count" : 1}] > } > }, > "dungeon" : { > "type" : "noDetail", > "example" : { > "name" : "Apex Test Chambers" > } > }, > "extraRewards" : { > "type" : "itemList", > "example" : { > "items" : [{"name" : "money", "count" : 1000}] > } > } > }, quests\generated\subquests\gift.questtemplate 2a3,22 > "parameters" : { > "target" : { > "type" : "entity", > "example" : { > "name" : "Friendly Friendson" > } > }, > "gift" : { > "type" : "item", > "example" : { > "item" : "coffeecake" > } > }, > "extraRewards" : { > "type" : "itemList", > "example" : { > "items" : [{"name" : "money", "count" : 1000}] > } > } > }, 39c59 < "Lastly, the final thing to impresss ^orange;. A hunting trophy! Floran doesn't hunt alone, so thiss ^orange; ^white;will have to do for now. Can you ^green;deliver the gift to them?" --- > "Lastly, the final thing to impresss ^orange;^white;. A hunting trophy! Floran doesn't hunt alone, so thiss ^orange;^white; will have to do for now. Can you ^green;deliver the gift to them?" quests\generated\subquests\intimidate.questtemplate 2a3,17 > "parameters" : { > "target" : { > "type" : "entity", > "example" : { > "name" : "Perfectly Generic Victim" > } > }, > "item" : { > "type" : "itemTag", > "example" : { > "tag" : "hammer", > "name" : "hammer" > } > } > }, 75c90 < "I've been informed that ^orange; ^white;is afraid of ^orange;s! ^green;Could you go and threaten them with one for me?^green; I'm sure they'll swear to obey me with a big pointed at them!" --- > "I've been informed that ^orange; ^white;is afraid of ^orange;s! ^green;Could you go and threaten them with one for me?^white; I'm sure they'll swear to obey me with a big pointed at them!" quests\generated\subquests\kill_monster.questtemplate 2a3,26 > "parameters" : { > "monster" : { > "type" : "monsterType", > "example" : { > "name" : "Nutmidge", > "typeName" : "nutmidge" > } > }, > "items" : { > "type" : "itemList", > "example" : { > "items" : [{"name" : "rawbacon", "count" : 2}] > } > }, > "spawnPoint" : { > "type" : "location" > }, > "extraRewards" : { > "type" : "itemList", > "example" : { > "items" : [{"name" : "money", "count" : 1000}] > } > } > }, 6,7c30,31 < "Firsst, we need ^orange;. ^white;Not hard to find, Floran ssaw ^orange; ^green;keep ssafe in belly. Hunt ^orange; ^white;and ^green;bring Floran ^orange;.", < "Firsst sstep, Floran need you to ^green;go on a little hunt. ^white;Floran sssaw ^orange; ^white;nearby swallow ^orange;. Greedy ^orange;! ^green;Hunt it and bring Floran the stuff from inssside." --- > "Firsst, we need ^orange;. ^white;Not hard to find, Floran ssaw lone ^orange; ^white;keep ssafe in belly. ^green;Hunt the ^orange; ^green;and bring Floran's thingsss back!", > "Firsst sstep, Floran need you to go on a little hunt. Floran sssaw ^orange; ^white;nearby swallow ^orange;. Greedy ^orange;! ^green;Hunt it and bring Floran the stuff from inssside." 10,11c34,35 < "Bewildered. ^green;I had just finished gathering ^orange; when a lone ^orange; swallowed them all! ^white;Could you go ^green;hunt the beast and retrieve my belongings^white; for me?", < "Nervous. A lone ^orange; ambushed me and took ^orange;! ^green;Can you hunt the creature and retrieve my possessions for me?" --- > "Bewildered. I had just finished gathering ^orange;^white; when a lone ^orange;^white; swallowed them all! Could you go ^green;hunt the beast and retrieve my belongings^white; for me?", > "Nervous. A lone ^orange; ambushed me and took ^orange;! ^green;Can you hunt the creature and retrieve my possessions for me?" 21c45 < "Okay, now Floran needss ^orange;. ^white;Floran sssaw ^orange; ^white;nearby swallow the stuff we need! ^green;Hunt the ^orange; ^white;for Floran and ^green;bring back the thingsss." --- > "Okay, now Floran needss ^orange;. ^white;Floran sssaw ^orange; ^white;nearby swallow the stuff we need! ^green;Hunt the ^orange; ^white;for Floran and ^green;bring back the thingsss." 24c48 < "Shocked. I was recently attacked by a fierce ^orange;, which made off with my ^orange;. ^green;Could you hunt the creature down for me?^white; It couldn't have gotten far.", --- > "Shocked. I was recently attacked by a fierce ^orange;, which made off with my ^orange;. ^green;Could you hunt the creature down for me?^white; It couldn't have gotten far.", quests\generated\subquests\protect.questtemplate 2a3,21 > "parameters" : { > "target" : { > "type" : "entity", > "example" : { > "name" : "Alpha Betty" > } > }, > "threat" : { > "type" : "npcType", > "example" : { > "species" : "human", > "typeName" : "bandit", > "name" : "bandits" > } > }, > "spawnPoint" : { > "type" : "location" > } > }, quests\generated\subquests\return_stolen.questtemplate 2a3,40 > "parameters" : { > "victimDeed" : { > "type" : "entity" > }, > "victim" : { > "type" : "entity", > "example" : { > "name" : "Perfectly Generic Victim" > } > }, > "thiefDeed" : { > "type" : "entity" > }, > "thief" : { > "type" : "entity", > "example" : { > "name" : "Evil McThief" > } > }, > "item" : { > "type" : "item", > "example" : { > "item" : "spookybed" > } > }, > "object" : { > "type" : "entity", > "example" : { > "name" : "Spooky Bed" > } > }, > "extraRewards" : { > "type" : "itemList", > "example" : { > "items" : [{"name" : "money", "count" : 1000}] > } > } > }, 17c55 < "^cyan;I saw that was looking for their stolen , and I happen to know where it is. They?ÇÖd be pretty thankful if we were to help return it. ", --- > "^cyan;I saw that was looking for their stolen , and I happen to know where it is. They'd be pretty thankful if we were to help return it. ", 28c66 < "Perturbed. A thief who goes by the name of ^orange;^white; has stolen ^orange;?ÇÖs^white; prized ^orange;! ^green;Will you retrieve it and put it back in ^orange;?ÇÖs^green; house?^white; I'm sure they would appreciate it.", --- > "Perturbed. A thief who goes by the name of ^orange;^white; has stolen ^orange;'s^white; prized ^orange;! ^green;Will you retrieve it and put it back in ^orange;'s^green; house?^white; I'm sure they would appreciate it.", 32,33c70,71 < "Alright, I know for a fact that ^orange;^white; has been keeping ^orange;?ÇÖs^white; stolen ^orange;^white; in their home. I?ÇÖll keep watch while you ^green;take it back. Once you?ÇÖve got it, ^green;place it back in ^orange;?ÇÖs^green; house.", < "The first thing we?ÇÖve got to do involves a little bit of thievery. Well, it's a good kind of thievery. The ^orange; we need to steal back is located in ^orange;?ÇÖs home. Go get it, then place it back in ^orange;?ÇÖs house." --- > "Alright, I know for a fact that ^orange;^white; has been keeping ^orange;'s^white; stolen ^orange;^white; in their home. I'll keep watch while you ^green;take it back.^white; Once you've got it, ^green;place it back in ^orange;'s^green; house.", > "The first thing we've got to do involves a little bit of thievery. Well, it's a good kind of thievery. The ^orange; we need to steal back is located in ^orange;'s home. Go get it, then place it back in ^orange;'s house." 46,47c84,85 < "Okay, now we get to do some housebreaking. ^green;Go grab the stolen ^orange;^green; from ^orange;?ÇÖs^green; home, and ^green;place it back in ^orange;?ÇÖs^green; house.^white; I?ÇÖll keep an eye out and make sure nobody?ÇÖs watching.", < "A little breaking and entering never hurt anyone. Nobody we know or care about, at least. Go steal back the ^orange; in ^orange;'s house. Then put it back in ^orange;?ÇÖs home." --- > "Okay, now we get to do some housebreaking. ^green;Go grab the stolen ^orange;^green; from ^orange;'s^green; home, and ^green;place it back in ^orange;'s^green; house.^white; I'll keep an eye out and make sure nobody's watching.", > "A little breaking and entering never hurt anyone. Nobody we know or care about, at least. Go steal back the ^orange; in ^orange;'s house. Then put it back in ^orange;'s home." 60,61c98,99 < "Finally, time for some vigilante justice! ^green;Remove the stolen ^orange;^green; from ^orange;?ÇÖs^green; home, and ^green;place it back in ^orange;?ÇÖs^green; house.^white; I?ÇÖll be watching to make sure nobody sees what?ÇÖs going on.", < "Everything else is in place! It?ÇÖs time for some vigilante style burglary. I?ÇÖll be your lookout while you grab the stolen ^orange; from ^orange;?ÇÖs place. Then sneak it back into ^orange;?ÇÖs home." --- > "Finally, time for some vigilante justice! ^green;Remove the stolen ^orange;^green; from ^orange;'s^green; home, and ^green;place it back in ^orange;'s^green; house.^white; I'll be watching to make sure nobody sees what's going on.", > "Everything else is in place! It's time for some vigilante style burglary. I'll be your lookout while you grab the stolen ^orange; from ^orange;'s place. Then sneak it back into ^orange;'s home." 70c108 < "Concerned. In a moment of desperation, ^orange;^white; robbed ^orange;^white; of their ^orange;^white;! If you ^green;retrieve it and put it back in ^orange;?ÇÖs^green; house,^white; they may never even realise it was gone! I would be grateful.", --- > "Concerned. In a moment of desperation, ^orange;^white; robbed ^orange;^white; of their ^orange;^white;! If you ^green;retrieve it and put it back in ^orange;'s^green; house,^white; they may never even realise it was gone! I would be grateful.", 74,75c112,113 < "Alright, I?ÇÖll keep a lookout while you ^green;take the stolen ^orange;^green; from ^orange;?ÇÖs^green; home.^white; Once you?ÇÖre done, ^green;place it back in ^orange;'s^green; house. ", < "The ^orange; we?ÇÖre looking for was stolen by ^orange;. Right now it?ÇÖs sitting in their home. ^green;Go steal it back, then ^green;place it back in ^orange;'s^green; house where it belongs. I?ÇÖll be watching for trouble." --- > "Alright, I'll keep a lookout while you ^green;take the stolen ^orange;^green; from ^orange;'s^green; home.^white; Once you're done, ^green;place it back in ^orange;'s^green; house. ", > "The ^orange; we're looking for was stolen by ^orange;. Right now it's sitting in their home. ^green;Go steal it back, then ^green;place it back in ^orange;'s^green; house where it belongs. I'll be watching for trouble." 90c128 < "You did such a good job! I can?ÇÖt wait to see ?ÇÖs face when they see they got a taste of their own medicine. ", --- > "You did such a good job! I can't wait to see 's face when they see they got a taste of their own medicine. ", 104c142 < "That was really impressive! I also like the way you didn?ÇÖt leave any fingerprints, that?ÇÖs smart thinking. Just wait until hears about this! ", --- > "That was really impressive! I also like the way you didn't leave any fingerprints, that's smart thinking. Just wait until hears about this! ", 118c156 < " and , purveyors of vigilante justice! Sounds good, right? You were like a ghost in there. won?ÇÖt know what to think! ", --- > " and , purveyors of vigilante justice! Sounds good, right? You were like a ghost in there. won't know what to think! ", 132c170 < "Wow, you made that look easy! will be pleased to see we got their back. Have you done this before? There?ÇÖs no danger of leaving fingerprints with a specialised tool like that..", --- > "Wow, you made that look easy! will be pleased to see we got their back. Have you done this before? There's no danger of leaving fingerprints with a specialised tool like that..", quests\generated\subquests\share_secret.questtemplate 2a3,10 > "parameters" : { > "target" : { > "type" : "entity", > "example" : { > "name" : "Notafriendyet Smith" > } > } > }, 24c32 < "To begin, Floran needsss ^orange;'s friendship. Here is a ^orange;note ^white;Floran wantsss you to ^green;deliver to ^orange; ^white;to make friendsss. Don't read it yourssself or Floran will stab you.", --- > "To begin, Floran needsss 's friendship. Here is a ^orange;note ^white;Floran wantsss you to ^green;deliver to ^orange; ^white;to make friendsss. Don't read it yourssself or Floran will stab you.", quests\generated\subquests\spread_rumors.questtemplate 2a3,16 > "parameters" : { > "target" : { > "type" : "entity", > "example" : { > "name" : "Notafriendyet Jones" > } > }, > "other" : { > "type" : "entity", > "example" : { > "name" : "Rival Person" > } > } > }, quests\generated\subquests\steal.questtemplate 2a3,31 > "parameters" : { > "victim" : { > "type" : "entity", > "example" : { > "name" : "Perfectly Generic Victim" > } > }, > "victimDeed" : { > "type" : "entity" > }, > "objectItem" : { > "type" : "item", > "example" : { > "item" : "spookypumpkinhead" > } > }, > "object" : { > "type" : "entity", > "example" : { > "name" : "Spooky Pumpkin Head" > } > }, > "extraRewards" : { > "type" : "itemList", > "example" : { > "items" : [{"name" : "money", "count" : 1000}] > } > } > }, 10,11c39,40 < "Hesitant. I?ÇÖm in need of a certain object, specifically, ^orange;?ÇÖs . ^white;Would you ^green;visit their home and... Acquire it for me?^white; I wouldn?ÇÖt ask if it wasn?ÇÖt important.", < "Insensitive. Priority one, I need you to ^green;obtain ^orange;?ÇÖs . ^white;We can make far better use of it, but they won?ÇÖt just hand it over. ^green;You?ÇÖll have to take it." --- > "Hesitant. I'm in need of a certain object, specifically, ^orange;'s . ^white;Would you ^green;visit their home and... Acquire it for me?^white; I wouldn't ask if it wasn't important.", > "Insensitive. Priority one, I need you to ^green;obtain ^orange;'s . ^white;We can make far better use of it, but they won't just hand it over. ^green;You'll have to take it." 14,15c43,44 < "I?ÇÖm in need of a certain item, and I know that ^orange;^white; keeps one in their home. I need you to ^green;sneak in and remove their ^orange; ^white;while they're not looking.", < "First, some petty thievery. I need you to ^green;obtain ^orange;?ÇÖs . ^green;Go grab it from their house^white; but make sure nobody sees you." --- > "I'm in need of a certain item, and I know that ^orange;^white; keeps one in their home. I need you to ^green;sneak in and remove their ^orange; ^white;while they're not looking.", > "First, some petty thievery. I need you to ^green;obtain ^orange;'s . ^green;Go grab it from their house^white; but make sure nobody sees you." 24,25c53,54 < "Demanding. Now I require a certain object. Specifically the ^orange;^green; in ^orange;?ÇÖs^green; home.^white; You?ÇÖre going to have to ^green;acquire it for me. ", < "Apprehensive. I?ÇÖm afraid this next part requires something that does not belong to us. You need to ^green;obtain the ^orange; ^green;located in ^orange;?ÇÖs ^green;home. ^white;Just make sure you don?ÇÖt get caught." --- > "Demanding. Now I require a certain object. Specifically the ^orange;^green; in ^orange;'s^green; home.^white; You're going to have to ^green;acquire it for me. ", > "Apprehensive. I'm afraid this next part requires something that does not belong to us. You need to ^green;obtain the ^orange; ^green;located in ^orange;'s ^green;home. ^white;Just make sure you don't get caught." 28,29c57,58 < "How do you feel about burglary? I'd like you to ^green;aquire the ^orange;^green; in ^orange;?ÇÖs^green; home for me. ", < "This next part requires something that isn?ÇÖt ours to use. We are in need of the ^orange; ^green;located in ^orange;?ÇÖs^green; home. Could you get it?" --- > "How do you feel about burglary? I'd like you to ^green;aquire the ^orange;^green; in ^orange;'s^green; home for me. ", > "This next part requires something that isn't ours to use. We are in need of the ^orange; ^green;located in ^orange;'s^green; home. Could you get it?" 40,41c69,70 < "Anxious. You actually got the from ? I thought maybe you?ÇÖd get cold feet. Keep hold of it for the time being, and make sure you don?ÇÖt lose it!", < "Paranoid. This is the I required. Am I correct to assume nobody saw you take it? better not hand it to me immediately. Let?ÇÖs wait for a moment." --- > "Anxious. You actually got the from ? I thought maybe you'd get cold feet. Keep hold of it for the time being, and make sure you don't lose it!", > "Paranoid. This is the I required. Am I correct to assume nobody saw you take it? better not hand it to me immediately. Let's wait for a moment." 44c73 < "Nice work, you made it look easy! Keep hold of that for the time being, and make sure you don?ÇÖt lose it!", --- > "Nice work, you made it look easy! Keep hold of that for the time being, and make sure you don't lose it!", 54,55c83,84 < "Frowning. This looks like ?ÇÖs alright. It?ÇÖs not in the best condition, but it?ÇÖll have to do for now. Hang onto it for me? I don?ÇÖt want to get caught if comes looking for it.", < "Panicked. Don?ÇÖt just hand me that ! You think wouldn?ÇÖt put two and two together? hold on to it for now. " --- > "Frowning. This looks like 's alright. It's not in the best condition, but it'll have to do for now. Hang onto it for me? I don't want to get caught if comes looking for it.", > "Panicked. Don't just hand me that ! You think wouldn't put two and two together? hold on to it for now. " 58c87 < "Wow, I bet you'd take anything that wasn't nailed down! I don?ÇÖt want to get caught if comes looking for that so hold onto it for now.", --- > "Wow, I bet you'd take anything that wasn't nailed down! I don't want to get caught if comes looking for that so hold onto it for now.", scripts\questgen\generator.lua 281c281 < function QuestGenerator:generateParameters(parameterDefs, opSymbols) --- > function QuestGenerator:generateParameters(templateId, parameterDefs, opSymbols) 307c307 < parameters[key] = self:generateParameter(parameterDef, opSymbols[key]) --- > parameters[key] = self:generateParameter(templateId, key, parameterDef, opSymbols[key]) 312c312 < function QuestGenerator:generateParameter(parameterDef, predicand) --- > function QuestGenerator:generateParameter(templateId, paramName, parameterDef, predicand) 387c387 < error("Invalid quest parameter: "..tostring(value)) --- > error("Invalid "..paramName.." parameter for quest "..templateId..": "..tostring(value)) 398c398 < if not param[key] then --- > if not param[key] and key ~= "example" then 465c465,466 < local parameters = self:generateParameters(operation.config.parameters, operation.symbols) --- > local parameterDefs = root.questConfig(templateId).parameters > local parameters = self:generateParameters(templateId, parameterDefs, operation.symbols) scripts\questgen\relations.lua 45d44 < local results = {} 55d53 < local results = {} 127a126,150 > } > > QuestRelations.npcHasFurniture = defineQueryRelation("npcHasFurniture", true) { > [case(1, Entity, Item)] = function (self, npc, item) > local deed = nil > if npc:uniqueId() then > deed = self.context:parentDeeds()[npc:uniqueId()] > end > if not deed then > if self.negated then > return {{npc, item}} > else > return Relation.empty > end > end > local objects = deed:callScript("getOwnedObjectNames") or {} > if xor(self.negated, (objects[item.itemName] or 0) > 0) then > return {{npc, item}} > end > return Relation.empty > end, > [case(2, Entity, Nil)] = Relation.some, > [case(3, Nil, Item)] = Relation.some, > [case(4, Nil, Nil)] = Relation.some, > default = Relation.empty