Skip to content
Snippets Groups Projects
Commit d4a4e61b authored by Chris Davidson's avatar Chris Davidson
Browse files

Revamp the passive charm egos

parent b8d2917f
No related branches found
No related tags found
No related merge requests found
......@@ -75,8 +75,7 @@ newEntity{
newEntity{
name = "overpowered ", prefix=true,
keywords = {['overpower']=true},
level_range = {30, 50},
greater_ego = 1,
level_range = {1, 50},
rarity = 16,
cost = 5,
_modify_charm = modify_charm,
......@@ -95,3 +94,106 @@ newEntity{
end)
end),
}
newEntity{
name = "focusing ", prefix=true,
keywords = {focusing=true},
level_range = {1, 50},
greater_ego = 1,
unique_ego = 1,
rarity = 12,
cost = 5,
focusing_amt = resolvers.mbonus_material(2, 1),
charm_on_use = {
{100, function(self, who) return ("reduce %d talent cooldowns by 2"):format(self.focusing_amt, self.focusing_reduction) end, function(self, who)
who:talentCooldownFilter(nil, self.focusing_amt, 2, true)
end},
},
use_power = {tactical = {BUFF = 0.2}}
}
newEntity{
name = "evasive ", prefix=true,
keywords = {evasive=true},
level_range = {1, 50},
greater_ego = 1,
unique_ego = 1,
rarity = 12,
cost = 5,
evasive_chance = resolvers.mbonus_material(30, 10),
charm_on_use = {
{100, function(self, who) return ("gain a %d%% chance to evade weapon attacks for 2 turns"):format(self.evasive_chance) end, function(self, who)
who:setEffect(who.EFF_ITEM_CHARM_EVASIVE, 2, {chance = self.evasive_chance})
end},
},
use_power = {tactical = {DEFEND = 0.2}}
}
newEntity{
name = "soothing ", prefix=true,
keywords = {soothing=true},
level_range = {1, 50},
rarity = 12,
cost = 5,
--greater_ego = 1,
soothing_heal = resolvers.mbonus_material(80, 30),
charm_on_use = {
{100, function(self, who) return ("heal for %d"):format(self.soothing_heal) end, function(self, who)
who:attr("allow_on_heal", 1)
who:heal(who:mindCrit(self.soothing_heal), who)
who:attr("allow_on_heal", -1)
end},
},
use_power = {tactical = {HEAL = 0.2}}
}
newEntity{
name = "piercing ", prefix=true,
keywords = {piercing=true},
level_range = {1, 50},
rarity = 12,
greater_ego = 1,
unique_ego = 1,
cost = 5,
piercing_penetration = resolvers.mbonus_material(30, 10),
charm_on_use = {
{100, function(self, who) return ("increase all damage penetration by %d%% for 2 turns"):format(self.piercing_penetration) end, function(self, who)
who:setEffect(who.EFF_ITEM_CHARM_PIERCING, 2, {penetration = self.piercing_penetration})
end},
},
use_power = {tactical = {BUFF = 0.2}}
}
newEntity{
name = "savior's ", prefix=true,
keywords = {savior=true},
level_range = {1, 50},
rarity = 12,
greater_ego = 1,
unique_ego = 1,
cost = 5,
savior_saves = resolvers.mbonus_material(30, 10),
charm_on_use = {
{100, function(self, who) return ("increase all saves by %d for 2 turns"):format(self.savior_saves) end, function(self, who)
who:setEffect(who.EFF_ITEM_CHARM_SAVIOR, 2, {save = self.savior_saves})
end},
},
use_power = {tactical = {BUFF = 0.2}}
}
newEntity{
name = "innervating ", prefix=true,
keywords = {innervating=true},
level_range = {1, 50},
rarity = 18,
cost = 5,
greater_ego = 1,
unique_ego = 1,
innervating_fatigue = resolvers.mbonus_material(30, 10),
charm_on_use = {
{100, function(self, who) return ("reduce fatigue by %d%% for 2 turns"):format(self.innervating_fatigue) end, function(self, who)
who:setEffect(who.EFF_ITEM_CHARM_INNERVATING, 2, {fatigue = self.innervating_fatigue})
end},
},
use_power = {tactical = {BUFF = 0.2}}
}
\ No newline at end of file
......@@ -20,80 +20,4 @@
local Talents = require "engine.interface.ActorTalents"
local DamageType = require "engine.DamageType"
load("/data/general/objects/egos/charms.lua")
newEntity{
name = "psionic ", prefix=true,
keywords = {psi=true},
level_range = {10, 50},
rarity = 12,
cost = 5,
charm_on_use = {
{100, function(self, who) return ("regenerate %d psi"):format(self:getCharmPower(who, true) / 7) end, function(self, who)
who:incPsi(self:getCharmPower(who, true) / 7)
end},
},
use_power = {tactical = {PSI = 0.5}}
}
newEntity{
name = "hateful ", prefix=true,
keywords = {hate=true},
level_range = {10, 50},
rarity = 12,
cost = 5,
charm_on_use = {
{100, function(self, who) return ("regenerate %d hate"):format(self:getCharmPower(who, true) / 7) end, function(self, who)
who:incHate(self:getCharmPower(who, true) / 7)
end},
},
use_power = {tactical = {HATE = 0.5}}
}
newEntity{
name = "warded ", prefix=true,
keywords = {ward=true},
level_range = {30, 50},
rarity = 12,
greater_ego = 1,
cost = 5,
wielder = {
wards = {
[DamageType.MIND] = resolvers.mbonus_material(4, 1),
[DamageType.PHYSICAL] = resolvers.mbonus_material(2, 1),
[DamageType.DARKNESS] = resolvers.mbonus_material(4, 1),
},
learn_talent = {[Talents.T_WARD] = 1},
},
}
newEntity{
name = "quiet ", prefix=true,
keywords = {quiet=true},
level_range = {30, 50},
rarity = 12,
greater_ego = 1,
cost = 5,
wielder = {
talent_cd_reduction={[Talents.T_SILENCE]=1},
learn_talent = {[Talents.T_SILENCE] = resolvers.mbonus_material(4, 1)},
},
}
newEntity{
name = "telekinetic ", prefix=true,
keywords = {telekinetic=true},
level_range = {30, 50},
rarity = 12,
greater_ego = 1,
cost = 5,
wielder = {
-- talent_cd_reduction={[Talents.T_TELEKINETIC_BLAST]=-5},
learn_talent = {[Talents.T_TELEKINETIC_BLAST] = resolvers.mbonus_material(4, 1)},
},
}
load("/data/general/objects/egos/charms.lua")
\ No newline at end of file
......@@ -20,94 +20,4 @@
local Talents = require "engine.interface.ActorTalents"
local DamageType = require "engine.DamageType"
load("/data/general/objects/egos/charms.lua")
newEntity{
name = "natural ", prefix=true,
keywords = {natural=true},
level_range = {10, 50},
rarity = 12,
cost = 5,
charm_on_use = {
{100, function(self, who) return ("regenerate %d equilibrium"):format(self:getCharmPower(who, true) / 5) end, function(self, who)
who:incEquilibrium(-self:getCharmPower(who, true) / 5)
end},
},
use_power = {tactical = {EQUILIBRIUM = 0.5}}
}
newEntity{
name = "forceful ", prefix=true,
keywords = {force=true},
level_range = {10, 50},
rarity = 12,
cost = 5,
charm_on_use = {
{100, function(self, who) return ("regenerate %d stamina"):format(self:getCharmPower(who, true) / 6) end, function(self, who)
who:incStamina(self:getCharmPower(who, true) / 6)
end},
},
use_power = {tactical = {STAMINA = 0.5}}
}
newEntity{
name = "warded ", prefix=true,
keywords = {ward=true},
level_range = {30, 50},
rarity = 12,
greater_ego = 1,
cost = 5,
wielder = {
wards = {
[DamageType.NATURE] = resolvers.mbonus_material(4, 1),
[DamageType.ACID] = resolvers.mbonus_material(4, 1),
[DamageType.LIGHT] = resolvers.mbonus_material(4, 1),
},
learn_talent = {[Talents.T_WARD] = 1},
},
}
newEntity{
name = "rushing ", prefix=true,
keywords = {rushing=true},
level_range = {30, 50},
rarity = 12,
greater_ego = 1,
cost = 5,
wielder = {
talent_cd_reduction={[Talents.T_RUSHING_CLAWS]=1},
learn_talent = {[Talents.T_RUSHING_CLAWS] = resolvers.mbonus_material(4, 1)},
},
}
newEntity{
name = "webbed ", prefix=true,
keywords = {webbed=true},
level_range = {30, 50},
rarity = 12,
greater_ego = 1,
cost = 5,
wielder = {
talent_cd_reduction={[Talents.T_LAY_WEB]=1},
learn_talent = {[Talents.T_LAY_WEB] = resolvers.mbonus_material(4, 1)},
},
}
newEntity{
name = "tentacled ", prefix=true,
keywords = {tentacled=true},
level_range = {30, 50},
rarity = 12,
greater_ego = 1,
cost = 15,
wielder = {
talent_cd_reduction={[Talents.T_INVOKE_TENTACLE]=-5},
learn_talent = {[Talents.T_INVOKE_TENTACLE] = 1},
},
}
load("/data/general/objects/egos/charms.lua")
\ No newline at end of file
......@@ -22,121 +22,23 @@ local DamageType = require "engine.DamageType"
load("/data/general/objects/egos/charms.lua")
newEntity{
name = "arcane ", prefix=true, second=true,
keywords = {arcane=true},
level_range = {10, 50},
rarity = 12,
cost = 5,
charm_on_use = {
{100, function(self, who) return ("regenerate %d mana"):format(self:getCharmPower(who, true) / 5) end, function(self, who)
who:incMana(self:getCharmPower(who, true) / 5)
end},
},
use_power = {tactical = {MANA = 0.5}}
}
newEntity{
name = "defiled ", prefix=true, second=true,
keywords = {defiled=true},
level_range = {10, 50},
rarity = 12,
cost = 5,
wielder = {
max_vim = resolvers.mbonus_material(15, 5),
}
}
newEntity{
name = "bright ", prefix=true, second=true,
keywords = {bright=true},
level_range = {10, 50},
rarity = 12,
cost = 5,
charm_on_use = {
{100, function(self, who) return ("regenerate %d positive energy"):format(self:getCharmPower(who, true) / 8) end, function(self, who)
who:incPositive(self:getCharmPower(who, true) / 8)
end},
},
use_power = {tactical = {POSITIVE = 0.5}}
}
newEntity{
name = "shadowy ", prefix=true, second=true,
keywords = {shadow=true},
level_range = {10, 50},
rarity = 12,
cost = 5,
charm_on_use = {
{100, function(self, who) return ("regenerate %d negative energy"):format(self:getCharmPower(who, true) / 8) end, function(self, who)
who:incNegative(self:getCharmPower(who, true) / 8)
end},
},
use_power = {tactical = {NEGATIVE = 0.5}}
}
newEntity{
name = "warded ", prefix=true, second=true,
keywords = {ward=true},
level_range = {30, 50},
level_range = {20, 50},
rarity = 12,
greater_ego = 1,
cost = 5,
wielder = {
wards = {
[DamageType.FIRE] = resolvers.mbonus_material(4, 1),
[DamageType.COLD] = resolvers.mbonus_material(4, 1),
[DamageType.LIGHTNING] = resolvers.mbonus_material(4, 1),
[DamageType.TEMPORAL] = resolvers.mbonus_material(4, 1),
[DamageType.BLIGHT] = resolvers.mbonus_material(4, 1),
},
wards = {},
resolvers.genericlast(function(e)
local types = {"FIRE", "LIGHTNING", "COLD", "ACID", "MIND", "ARCANE", "BLIGHT", "NATURE", "TEMPORAL", "LIGHT", "DARKNESS"}
local wards = {}
for _ = 1,4 do
local pick = rng.tableRemove(types)
e.wielder.wards[pick] = resolvers.mbonus_material(4, 2)
end
end),
learn_talent = {[Talents.T_WARD] = 1},
},
}
newEntity{
name = "void ", prefix=true, second=true,
keywords = {void=true},
level_range = {30, 50},
rarity = 12,
greater_ego = 1,
cost = 5,
wielder = {
-- talent_cd_reduction={[Talents.T_VOID_BLAST]=-6},
learn_talent = {[Talents.T_VOID_BLAST] = resolvers.mbonus_material(4, 1)},
},
}
newEntity{
name = "volcanic ", prefix=true, second=true,
keywords = {volcanic=true},
level_range = {30, 50},
rarity = 12,
greater_ego = 1,
cost = 5,
wielder = {
talent_cd_reduction={[Talents.T_VOLCANO]=2},
learn_talent = {[Talents.T_VOLCANO] = resolvers.mbonus_material(4, 1)},
},
}
newEntity{
name = "striking ", prefix=true, second=true,
keywords = {striking=true},
level_range = {30, 50},
rarity = 12,
greater_ego = 1,
cost = 5,
wielder = {
talent_cd_reduction={[Talents.T_STRIKE]=1},
learn_talent = {[Talents.T_STRIKE] = resolvers.mbonus_material(4, 1)},
},
}
......@@ -59,6 +59,68 @@ newEffect{
end,
}
newEffect{
name = "ITEM_CHARM_PIERCING", image = "talents/intricate_tools.png",
desc = "Charm: Piercing",
long_desc = function(self, eff) return ("All damage penetration increased by %d%%."):format(eff.penetration) end,
type = "other",
subtype = { },
status = "beneficial",
parameters = { penetration=10 },
activate = function(self, eff)
self:effectTemporaryValue(eff, "resists_pen", {all = eff.penetration})
end,
deactivate = function(self, eff)
end,
}
newEffect{
name = "ITEM_CHARM_SAVIOR", image = "talents/intricate_tools.png",
desc = "Charm: Saves",
long_desc = function(self, eff) return ("All saves increased by %d."):format(eff.save) end,
type = "other",
subtype = { },
status = "beneficial",
parameters = { save=10 },
activate = function(self, eff)
self:effectTemporaryValue(eff, "combat_physresist", eff.save)
self:effectTemporaryValue(eff, "combat_spellresist", eff.save)
self:effectTemporaryValue(eff, "combat_mentalresist", eff.save)
end,
deactivate = function(self, eff)
end,
}
newEffect{
name = "ITEM_CHARM_EVASIVE", image = "talents/intricate_tools.png",
desc = "Charm: Evasion",
long_desc = function(self, eff) return ("%d%% chance to avoid weapon attacks"):format(eff.chance) end,
type = "other",
subtype = { },
status = "beneficial",
parameters = { chance=10 },
activate = function(self, eff)
self:effectTemporaryValue(eff, "evasion", eff.chance)
end,
deactivate = function(self, eff)
end,
}
newEffect{
name = "ITEM_CHARM_INNERVATING", image = "talents/intricate_tools.png",
desc = "Charm: Innervating",
long_desc = function(self, eff) return ("Fatigue reduced by %d%%."):format(eff.fatigue) end,
type = "other",
subtype = { },
status = "beneficial",
parameters = { fatigue=10, },
activate = function(self, eff)
self:effectTemporaryValue(eff, "fatigue", -eff.fatigue)
end,
deactivate = function(self, eff)
end,
}
-- Design: Temporary immobility in exchange for a large stat buff.
newEffect{
name = "TREE_OF_LIFE", image = "shockbolt/object/artifact/tree_of_life.png",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment