|
|
|
|
|
PlaceObj('BanterDef', { |
|
FX = "CheckFail", |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Text', T(550206936687, "<mechanical-f>\nWho knows what this mechanical monstrosity does."), |
|
'Voiced', false, |
|
'FloatUp', true, |
|
}), |
|
PlaceObj('BanterLine', { |
|
'MultipleTexts', true, |
|
'AnyOfTheseCount', 2, |
|
'AnyOfThese', { |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Fox", |
|
'Text', T(947195799401, "I've spent enough time in jacuzzis to know one when I see one. Good thing I packed my bikini!"), |
|
}), |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Mouse", |
|
'Text', T(730324677378, "I hope this is a water filtration system. I'm getting tired of dumping tablets into my canteen!"), |
|
}), |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Igor", |
|
'Text', T(710225689167, "What interesting moonshine still!"), |
|
}), |
|
}, |
|
'playOnce', true, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratInt_ Jacuzzi_failure", |
|
}) |
|
|
|
PlaceObj('BanterDef', { |
|
FX = "CheckSuccess", |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Text', T(555027307206, "<mechanical-s>\nThis wonder of engineering turns out to be a Jacuzzi AND an oversized moonshine still at the same time!"), |
|
'Voiced', false, |
|
'FloatUp', true, |
|
}), |
|
PlaceObj('BanterLine', { |
|
'MultipleTexts', true, |
|
'AnyOfThese', { |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Vicki", |
|
'Text', T(560779076658, "This is a crazy idea, mon. I love it!"), |
|
}), |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Magic", |
|
'Text', T(614173867048, "This is some nice work. I bet a lot of magic happens here."), |
|
}), |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Gus", |
|
'Text', T(162997656136, "This is genius, Woodruff. I think I'm looking at the perfect place to treat my leg pain."), |
|
}), |
|
}, |
|
'Optional', true, |
|
'playOnce', true, |
|
}), |
|
PlaceObj('BanterLine', { |
|
'Character', "Wlad", |
|
'Text', T(945085241438, "You like it? You should have seen my Autofisher™ that was also designed to rewind cassette tapes! But... Erm, the Legion broke it while trying to use it to pull their sunken boat out of the river."), |
|
'Optional', true, |
|
'playOnce', true, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratInt_ Jacuzzi_success", |
|
}) |
|
|
|
PlaceObj('BanterDef', { |
|
FX = "CheckFail", |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Text', T(815613838362, "<health-f>\nThere is certainly something valuable deep in the waterlogged cellar, but who can hold their breath long enough to reach it?"), |
|
'Voiced', false, |
|
'FloatUp', true, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratInt_ TrapDoor_failure", |
|
}) |
|
|
|
PlaceObj('BanterDef', { |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Text', T(693278682755, "The trap door leads to the waterlogged cellar of the sunken mansion."), |
|
'Voiced', false, |
|
'FloatUp', true, |
|
}), |
|
PlaceObj('BanterLine', { |
|
'Annotation', "Lovecraft reference", |
|
'Character', "Reaper", |
|
'Text', T(790373039277, "Who knows what otherworldly horrors slumber deep beneath the murky waters."), |
|
'Optional', true, |
|
'playOnce', true, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratInt_ TrapDoor_noIntel", |
|
}) |
|
|
|
PlaceObj('BanterDef', { |
|
FX = "CheckSuccess", |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Text', T(122649004330, "<health-s>\nHazardous junk clogs the watery depth, but like a pearl in an oyster, an open safe holds glittering diamonds."), |
|
'Voiced', false, |
|
'FloatUp', true, |
|
}), |
|
PlaceObj('BanterLine', { |
|
'MultipleTexts', true, |
|
'AnyOfThese', { |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Steroid", |
|
'Text', T(706065791668, "A slimy monster tried to wrap its testicles around me! Let's get out of here! Now! "), |
|
}), |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Grizzly", |
|
'Text', T(954143156931, "A loose rope got wrapped around my ankle. For a moment, I thought I wouldn't make it back to the surface."), |
|
}), |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Igor", |
|
'Text', T(380006408724, "There is commendation for escaping watery death trap, yes?"), |
|
}), |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Ivan", |
|
'Text', T(163043306147, "Task is finish. Breath is also finish."), |
|
}), |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Magic", |
|
'Text', T(709623100204, "That was some Houdini shit I just pulled, right there."), |
|
}), |
|
}, |
|
'Optional', true, |
|
'playOnce', true, |
|
}), |
|
PlaceObj('BanterLine', { |
|
'MultipleTexts', true, |
|
'AnyOfThese', { |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Shadow", |
|
'Text', T(525922618438, "Perfect hiding spot. Dangerous, but perfect."), |
|
}), |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Thor", |
|
'Text', T(322422407175, "Again we see that there is nothing that can't be accomplished with the power of positive thinking!"), |
|
}), |
|
}, |
|
'Optional', true, |
|
'playOnce', true, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratInt_ TrapDoor_success", |
|
}) |
|
|
|
PlaceObj('BanterDef', { |
|
FX = "CheckFail", |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Text', T(501189638354, "<wisdom-f>\nThe drawing board is full of schematics and formulas hastily scribbled all over each other. Only an expert could decipher any meaning here."), |
|
'Voiced', false, |
|
'FloatUp', true, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratInt_DrawingBoard_failure", |
|
}) |
|
|
|
PlaceObj('BanterDef', { |
|
FX = "CheckSuccess", |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Text', T(638786229279, "<wisdom-s>\nThe drawing board is a jumble of schematics and formulas. When carefully sorted out, they display evidence of genius-level engineering skills."), |
|
'Voiced', false, |
|
'FloatUp', true, |
|
}), |
|
PlaceObj('BanterLine', { |
|
'MultipleTexts', true, |
|
'AnyOfThese', { |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Vicki", |
|
'Text', T(315598229153, "Whoa, mon! This one looks like a car with fangs!"), |
|
}), |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Magic", |
|
'Text', T(360102591286, "This one here looks like a safe-cracker that can also make bread. Um, the kind you eat, I mean."), |
|
}), |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Livewire", |
|
'Text', T(642389519894, "I have a confession to make, and I hate making those, but I think I am in love with whoever made these plans."), |
|
}), |
|
}, |
|
'playOnce', true, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratInt_DrawingBoard_success", |
|
}) |
|
|
|
PlaceObj('BanterDef', { |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Text', T(739094405184, "There is a horrible <em>effigy</em> on the hill overlooking the village."), |
|
'Voiced', false, |
|
'FloatUp', true, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratInt_EffigyOff", |
|
}) |
|
|
|
PlaceObj('BanterDef', { |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Text', T(453915481552, "Bathed in light, the <em>effigy</em> throws its ominous shadow on the canvas of the sky."), |
|
'Voiced', false, |
|
'FloatUp', true, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratInt_EffigyOn", |
|
}) |
|
|
|
PlaceObj('BanterDef', { |
|
FX = "CheckFail", |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Text', T(990658502833, "<mechanical-f>\nThere is a powerful projector on top of the pylon, but there is no power switch in sight."), |
|
'Voiced', false, |
|
'FloatUp', true, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratInt_LightPylon_failure", |
|
}) |
|
|
|
PlaceObj('BanterDef', { |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Text', T(627727119039, "There doesn't seem to be any point in turning the light on in daylight."), |
|
'Voiced', false, |
|
'FloatUp', true, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratInt_LightPylon_not_night", |
|
}) |
|
|
|
PlaceObj('BanterDef', { |
|
FX = "CheckSuccess", |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Text', T(456977881128, "<mechanical-s>\nThere is a powerful projector on top of the pylon and a cable connects it to the grid. There is no switch, but snapping the cables together is an easy job."), |
|
'Voiced', false, |
|
'FloatUp', true, |
|
}), |
|
PlaceObj('BanterLine', { |
|
'MultipleTexts', true, |
|
'Text', "", |
|
'AnyOfTheseCount', 2, |
|
'AnyOfThese', { |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Vicki", |
|
'Text', T(725638413225, "Whoa, mon, look at the sky!"), |
|
}), |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Reaper", |
|
'Text', T(371007269264, "The deathly figure has painted its shadow on the pale sky."), |
|
}), |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Larry", |
|
'Text', T(891371018176, "Man, that's awesome! They have their own bat-signal here, but with horns! That's cool, man!"), |
|
}), |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Larry_Clean", |
|
'Text', T(665765518894, "Hey, man, is that... Is that something like a bat-signal, but with horns? I thought I was clean, but I think I might be hallucinating again."), |
|
}), |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Magic", |
|
'Text', T(502277119976, "Well, now we got some David Copperfield shit goin' on."), |
|
}), |
|
PlaceObj('BanterLineThin', { |
|
'Character', "Livewire", |
|
'Text', T(503202836548, "Oh, I've seen this in a movie! That signal brings a vigilante who beats up all the criminals... Excuse me. I suddenly remembered I need to be somewhere else."), |
|
}), |
|
}, |
|
'Optional', true, |
|
'playOnce', true, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratInt_LightPylon_success", |
|
}) |
|
|
|
PlaceObj('BanterDef', { |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Text', T(884221966110, "Snapping the cables together powers up the projector and lights up the effigy."), |
|
'Voiced', false, |
|
'FloatUp', true, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratInt_LightPylon_turnon", |
|
}) |
|
|
|
PlaceObj('BanterDef', { |
|
Comment = "interaction with a lonely grave in the Cursed Forest >> GraveFound", |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Text', T(660253989867, "This lonely grave is overgrown with bushes and weeds."), |
|
'Voiced', false, |
|
'FloatUp', true, |
|
}), |
|
}, |
|
conditions = { |
|
PlaceObj('QuestIsVariableBool', { |
|
QuestId = "CursedForestSideQuests", |
|
Vars = set({ |
|
GraveGiven = false, |
|
GraveReported = false, |
|
}), |
|
__eval = function () |
|
local quest = gv_Quests['CursedForestSideQuests'] or QuestGetState('CursedForestSideQuests') |
|
return not quest.GraveGiven and not quest.GraveReported |
|
end, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratOutskirts_01_GraveInitial", |
|
}) |
|
|
|
PlaceObj('BanterDef', { |
|
Comment = "gloomy villager near a house with a skeleton and a portrait on the bed >> GraveGiven", |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Character', "GloomyVillager", |
|
'Text', T(622506399105, "They told me that Mom wanted to see me, but... I came back home too late."), |
|
'Optional', true, |
|
'playOnce', true, |
|
}), |
|
PlaceObj('BanterLine', { |
|
'Character', "GloomyVillager", |
|
'Text', T(853053167152, "She left a note saying that she wanted to be buried with dad, but I can't find his <em>grave</em> at all. "), |
|
}), |
|
PlaceObj('BanterLine', { |
|
'Character', "GloomyVillager", |
|
'Text', T(842300072229, "I know his final resting place is somewhere in this forest, in view of the <em>river</em>."), |
|
'Optional', true, |
|
'playOnce', true, |
|
}), |
|
}, |
|
conditions = { |
|
PlaceObj('QuestIsVariableBool', { |
|
QuestId = "CursedForestSideQuests", |
|
Vars = set({ |
|
GraveDone = false, |
|
GraveFound = false, |
|
}), |
|
__eval = function () |
|
local quest = gv_Quests['CursedForestSideQuests'] or QuestGetState('CursedForestSideQuests') |
|
return not quest.GraveDone and not quest.GraveFound |
|
end, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratOutskirts_02_FrancisInitial", |
|
}) |
|
|
|
PlaceObj('BanterDef', { |
|
Comment = "lonely grave after speaking with the villager who is looking for his father's grave >> GraveFound", |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Text', T(806585469973, "The grave of <em>Francis's</em> father is overgrown with bushes and weeds. "), |
|
'Voiced', false, |
|
'FloatUp', true, |
|
}), |
|
}, |
|
conditions = { |
|
PlaceObj('QuestIsVariableBool', { |
|
QuestId = "CursedForestSideQuests", |
|
Vars = set({ |
|
GraveGiven = true, |
|
GraveReported = false, |
|
}), |
|
__eval = function () |
|
local quest = gv_Quests['CursedForestSideQuests'] or QuestGetState('CursedForestSideQuests') |
|
return quest.GraveGiven and not quest.GraveReported |
|
end, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratOutskirts_03_GraveFound", |
|
}) |
|
|
|
PlaceObj('BanterDef', { |
|
Comment = "grave found and interacted with >> gain Loyalty", |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Character', "GloomyVillager", |
|
'Text', T(114301658027, "THAT is where his grave is?"), |
|
}), |
|
PlaceObj('BanterLine', { |
|
'Character', "GloomyVillager", |
|
'Text', T(771552461870, "I guess it is for the best. The <em>Beast</em> and the spirits of the forest will guard it, so he can rest in peace."), |
|
}), |
|
}, |
|
Once = true, |
|
conditions = { |
|
PlaceObj('QuestIsVariableBool', { |
|
QuestId = "CursedForestSideQuests", |
|
Vars = set({ |
|
GraveBushesCut = true, |
|
GraveDone = false, |
|
GraveGiven = true, |
|
}), |
|
__eval = function () |
|
local quest = gv_Quests['CursedForestSideQuests'] or QuestGetState('CursedForestSideQuests') |
|
return quest.GraveBushesCut and not quest.GraveDone and quest.GraveGiven |
|
end, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratOutskirts_04_FrancisGraveFound", |
|
}) |
|
|
|
PlaceObj('BanterDef', { |
|
Comment = "visiting the grave later >> gain Proud", |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Text', T(373211009503, '"Death did not do them part, because they wished to be together."'), |
|
'Voiced', false, |
|
'FloatUp', true, |
|
}), |
|
}, |
|
conditions = { |
|
PlaceObj('QuestIsVariableBool', { |
|
QuestId = "CursedForestSideQuests", |
|
Vars = set( "GraveReported" ), |
|
__eval = function () |
|
local quest = gv_Quests['CursedForestSideQuests'] or QuestGetState('CursedForestSideQuests') |
|
return quest.GraveReported |
|
end, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratOutskirts_05_GravePayRespect", |
|
}) |
|
|
|
PlaceObj('BanterDef', { |
|
Comment = "all done", |
|
Lines = { |
|
PlaceObj('BanterLine', { |
|
'Character', "GloomyVillager", |
|
'Text', T(742539108831, "I guess I will sleep outside for now."), |
|
}), |
|
}, |
|
conditions = { |
|
PlaceObj('QuestIsVariableBool', { |
|
QuestId = "CursedForestSideQuests", |
|
Vars = set( "GraveReported" ), |
|
__eval = function () |
|
local quest = gv_Quests['CursedForestSideQuests'] or QuestGetState('CursedForestSideQuests') |
|
return quest.GraveReported |
|
end, |
|
}), |
|
}, |
|
group = "Banters_Local_IlleMorat_Triggered", |
|
id = "IlleMoratOutskirts_06_FrancisDone", |
|
}) |
|
|
|
|