diff --git a/game/modules/tome/class/GameState.lua b/game/modules/tome/class/GameState.lua index 6064d0b8f4a865d8c1f284b2ef0048cb05af124d..39a1d10acca226730b43f615f0ed3aaae7dfa51e 100644 --- a/game/modules/tome/class/GameState.lua +++ b/game/modules/tome/class/GameState.lua @@ -1455,7 +1455,7 @@ function _M:createRandomBoss(base, data) -- Select two classes local classes = Birther.birth_descriptor_def.subclass local list = {} - local force_classes = table.clone(data.force_classes) + local force_classes = data.force_classes and table.clone(data.force_classes) for name, cdata in pairs(classes) do if force_classes and force_classes[cdata.name] then apply_class(table.clone(cdata, true)) force_classes[cdata.name] = nil elseif not cdata.not_on_random_boss then list[#list+1] = cdata diff --git a/game/modules/tome/data/gfx/lore/the_master_slain.png b/game/modules/tome/data/gfx/lore/the_master_slain.png new file mode 100644 index 0000000000000000000000000000000000000000..61b03cb6f730f3d74ebf1df944b1f05c6c707440 Binary files /dev/null and b/game/modules/tome/data/gfx/lore/the_master_slain.png differ diff --git a/game/modules/tome/data/lore/dreadfell.lua b/game/modules/tome/data/lore/dreadfell.lua index d63aa3fd092b799443d74e5583e2fc0a23937aaf..27d53dcf3c76df51487ce95a93ff3ae201f47854 100644 --- a/game/modules/tome/data/lore/dreadfell.lua +++ b/game/modules/tome/data/lore/dreadfell.lua @@ -121,3 +121,11 @@ newLore{ name = "a note about undead poetry from the Master", lore = [[As an aside, I notice one of my skeletons has amused himself by writing a poem about me. Whilst my first reaction was to have his bones crunched into dust and what remained of his undead soul sent to the darkest depths of the abyss, I do now realise that there is some merit to this. Every great leader needs tales penned of his brilliant conquest. Therefore I now command you all to write more poetry in my honour, praising my amazing powers, unrivalled leadership, unconquerable strength, etc etc. Any that fail to produce works of sufficient standard shall be annihilated.]], } + +newLore{ + id = "master-slain", + category = "dreadfell", + name = "slain master", always_pop = true, + image = "the_master_slain.png", + lore = [[A powerful staff is grabbed from the Master's dead hands.]], +} diff --git a/game/modules/tome/data/quests/staff-absorption.lua b/game/modules/tome/data/quests/staff-absorption.lua index ce97fc8d56836dfb3ed24d53422c049cfca8ba64..6ea09a29c8cf413a4c190c02d0e3b28f5b7f03f9 100644 --- a/game/modules/tome/data/quests/staff-absorption.lua +++ b/game/modules/tome/data/quests/staff-absorption.lua @@ -42,6 +42,7 @@ desc = function(self, who) end on_grant = function(self, who) + who:learnLore("master-slain") game.logPlayer(who, "#00FFFF#You can feel the power of this staff just by carrying it. This is both ancient and dangerous.") game.logPlayer(who, "#00FFFF#It should be shown to the wise elders in Last Hope!") end diff --git a/game/modules/tome/dialogs/Birther.lua b/game/modules/tome/dialogs/Birther.lua index d2b152a56d58a4e8398c5cc524956ccd62bf0c0f..6468342894d9924827f638127a7e190b427230dc 100644 --- a/game/modules/tome/dialogs/Birther.lua +++ b/game/modules/tome/dialogs/Birther.lua @@ -264,6 +264,10 @@ function _M:randomBirth() }) self.c_name:setText(namegen:generate()) + self.descriptors_by_type.race = nil + self.descriptors_by_type.subrace = nil + self.descriptors_by_type.class = nil + self.descriptors_by_type.subclass = nil --[[ -- Random campaign local camp, camp_id = nil @@ -300,7 +304,7 @@ function _M:randomBirth() -- Random subclass if class then local subclass, subclass_id = nil - repeat subclass, subclass_id = rng.table(self.all_classes[class_id].nodes) print("====", subclass, subclass_id, class_id) + repeat subclass, subclass_id = rng.table(self.all_classes[class_id].nodes) until not subclass.locked self:classUse(subclass) end