From c79649d8a393c1174db1f723f30ea354b11ccf17 Mon Sep 17 00:00:00 2001 From: Bunny <glisa825@gmail.com> Date: Sun, 29 Dec 2019 20:33:49 -0500 Subject: [PATCH] Better way of going about sleeping dragons --- .../vaults/auto/greater/sleeping-dragons.lua | 20 +++++++++---------- .../modules/tome/data/timed_effects/other.lua | 15 ++++++++++++++ 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/game/modules/tome/data/maps/vaults/auto/greater/sleeping-dragons.lua b/game/modules/tome/data/maps/vaults/auto/greater/sleeping-dragons.lua index 6f7ef42f94..271d79d991 100644 --- a/game/modules/tome/data/maps/vaults/auto/greater/sleeping-dragons.lua +++ b/game/modules/tome/data/maps/vaults/auto/greater/sleeping-dragons.lua @@ -65,8 +65,9 @@ local check_sleep = function(self) game.level.seen_wyrm_awoken = true game.log("The dragons here are asleep. You may try to steal their treasure... at your own risk.") end - if not self:hasEffect(self.EFF_SLEEP) then - self:setEffect(self.EFF_SLEEP, 999, {src=self, power=1, waking=0, insomnia=0, contagious=0}) + if not self:hasEffect(self.EFF_DOZING) then + self:setEffect(self.EFF_DOZING, 999, {}) + self.energy.value = 0 end return true end @@ -78,7 +79,7 @@ local aggro_wyrm = function() game.level.wyrm_awoken = true for uid, e in pairs(game.level.entities) do if e.sleeping_wyrm == true then - e:removeEffect(e.EFF_SLEEP) + e:removeEffect(e.EFF_DOZING) e:setTarget(game.player) end end @@ -104,9 +105,9 @@ local aggro_wyrm_grid = function(chance) end return g end -defineTile('1', aggro_wyrm_grid(2), {random_filter={add_levels=25, type="money"}}) -defineTile('2', aggro_wyrm_grid(5), {random_filter={add_levels=10, tome_mod="uvault"}}) -defineTile('3', aggro_wyrm_grid(25), {random_filter={add_levels=15, tome_mod="gvault"}}) +defineTile('1', aggro_wyrm_grid(3), {random_filter={add_levels=25, type="money"}}) +defineTile('2', aggro_wyrm_grid(10), {random_filter={add_levels=15, tome_mod="uvault"}}) +defineTile('3', aggro_wyrm_grid(33), {random_filter={add_levels=25, tome_mod="gvault"}}) defineTile('W', "FLOOR", nil, {entity_mod=function(e) e.make_escort = nil @@ -118,8 +119,8 @@ defineTile('W', "FLOOR", nil, return e end, random_filter={special_rarity="wyrm_rarity", - add_levels=15, - random_boss={name_scheme="Sleeping #rng#", force_classes={Wyrmic=true}, nb_classes=0, loot_quality="store", loot_quantity=1, rank=3.5} + add_levels=10, + random_boss={name_scheme="Sleeping #rng#", force_classes={Wyrmic=true}, class_filter=function(d) return d.power_source and ((d.power_source.nature or d.power_source.technique) and not d.power_source.arcane) end, loot_quality="store", loot_quantity=1, rank=3.5} } } ) @@ -134,8 +135,7 @@ defineTile('D', "FLOOR", nil, return e end, random_filter={special_rarity="drake_rarity", - add_levels=15, - random_boss={name_scheme="Dozing #rng#", force_classes={Wyrmic=true}, nb_classes=0, loot_quality="store", loot_quantity=1, rank=3.5} + random_boss={name_scheme="Dozing #rng#", force_classes={Wyrmic=true}, class_filter=function(d) return d.power_source and ((d.power_source.nature or d.power_source.technique) and not d.power_source.arcane) end, nb_classes=1, loot_quality="store", loot_quantity=1, rank=3.5} } } ) diff --git a/game/modules/tome/data/timed_effects/other.lua b/game/modules/tome/data/timed_effects/other.lua index 7eb6f85cee..2f94a4d6b8 100644 --- a/game/modules/tome/data/timed_effects/other.lua +++ b/game/modules/tome/data/timed_effects/other.lua @@ -3973,4 +3973,19 @@ newEffect{ self:removeEffect(eff.src.EFF_FED_UPON, false, true) end end, +} + +newEffect{ + name = "DOZING", image = "talents/sleep.png", + desc = "Dozing", + long_desc = function(self, eff) return "The target is completely asleep, unable to act." end, + type = "other", + subtype = { sleep=true }, + status = "detrimental", + parameters = { }, + activate = function(self, eff) + self:effectTemporaryValue(eff, "dont_act", 1) + end, + deactivate = function(self, eff) + end, } \ No newline at end of file -- GitLab