diff --git a/game/modules/tome/data/general/objects/potions.lua b/game/modules/tome/data/general/objects/potions.lua index c88df101f30a1c748ff430fc0c54dd3e2ec8a2c0..6815536f58794dec589122bb6065c61dfb2ec822 100644 --- a/game/modules/tome/data/general/objects/potions.lua +++ b/game/modules/tome/data/general/objects/potions.lua @@ -284,3 +284,16 @@ newEntity{ base = "BASE_POTION", return "destroy", true end} } + +newEntity{ base = "BASE_POTION", + name = "potion of free action", + color = colors.YELLOW, + level_range = {15, 50}, + rarity = 6, + cost = 7, + + use_simple = { name="resist stuns, dazes and pinning", use = function(self, who) + who:setEffect(who.EFF_FREE_ACTION, 4 + math.floor(who:getMag(3)), {power=1}) + return "destroy", true + end} +} diff --git a/game/modules/tome/data/timed_effects.lua b/game/modules/tome/data/timed_effects.lua index de6224f1f4760bab13ae5aaa1a5713776e55c0c2..74d57d711a56e9fae94433c66a4e90d48e009390 100644 --- a/game/modules/tome/data/timed_effects.lua +++ b/game/modules/tome/data/timed_effects.lua @@ -1041,3 +1041,23 @@ newEffect{ self:removeTemporaryValue("continuum_destabilization", eff.effid) end, } + +newEffect{ + name = "FREE_ACTION", + desc = "Free Action", + type = "magical", + status = "beneficial", + parameters = { power=1 }, + on_gain = function(self, err) return "#Target# is moving freely .", "+Free Action" end, + on_lose = function(self, err) return "#Target# is moving less freely.", "-Free Action" end, + activate = function(self, eff) + eff.stun = self:addTemporaryValue("stun_immune", eff.power) + eff.daze = self:addTemporaryValue("daze_immune", eff.power) + eff.pin = self:addTemporaryValue("pin_immune", eff.power) + end, + deactivate = function(self, eff) + self:removeTemporaryValue("stun_immune", eff.stun) + self:removeTemporaryValue("daze_immune", eff.daze) + self:removeTemporaryValue("pin_immune", eff.pin) + end, +}