Skip to content
Snippets Groups Projects
Commit 289dd7a1 authored by dg's avatar dg
Browse files

Ego items powers are based on the material level of the base object. A mithril...

Ego items powers are based on the material level of the base object. A mithril weapon will get better bonuses than an iron one


git-svn-id: http://svn.net-core.org/repos/t-engine4@787 51575b47-30f0-44d4-a5cc-537603b46e54
parent 4eebde8b
No related branches found
No related tags found
No related merge requests found
......@@ -260,17 +260,18 @@ function _M:finishEntity(level, type, e, ego_chance)
for ie, ego in ipairs(egos_list) do
print("ego", ego.__CLASSNAME, ego.name, getmetatable(ego))
ego = ego:clone()
ego:resolve()
ego:resolve(nil, true)
local newname
if ego.prefix then newname = ego.name .. e.name
else newname = e.name .. ego.name end
print("applying ego", ego.name, "to ", e.name, "::", newname)
ego.unided_name = nil
table.mergeAdd(e, ego, true)
-- Merge additively but with array appending, so that nameless resolvers are not lost
table.mergeAddAppendArray(e, ego, true)
e.name = newname
e.egoed = true
end
-- Re-resolve with the (possibly) new resolvers
e:resolve()
end
e.egos = nil e.egos_chance = nil e.force_ego = nil
end
......
......@@ -38,11 +38,12 @@ end
--- Random bonus based on level
resolvers.current_level = 1
resolvers.mbonus_max_level = 50
function resolvers.mbonus(max, add)
return {__resolver="mbonus", max, add}
end
function resolvers.calc.mbonus(t)
return rng.mbonus(t[1], resolvers.current_level, 50) + (t[2] or 0)
return rng.mbonus(t[1], resolvers.current_level, resolvers.mbonus_max_level) + (t[2] or 0)
end
--- Talents resolver
......
......@@ -62,6 +62,36 @@ function table.mergeAdd(dst, src, deep)
end
end
--- Merges additively the named fields and append the array part
-- Yes this is weird and you'll probably not need it, but the engine does :)
function table.mergeAddAppendArray(dst, src, deep)
-- Append the array part
for i = 1, #src do
local b = src[i]
if deep and type(b) == "table" and not b.__CLASSNAME then b = table.clone(b, true)
elseif deep and type(b) == "table" and b.__CLASSNAME then b = b:clone()
end
table.insert(dst, b)
end
-- Copy the table part
for k, e in pairs(src) do
if type(k) ~= "number" then
if deep and dst[k] and type(e) == "table" and type(dst[k]) == "table" and not e.__CLASSNAME then
-- WARNING we do not recurse on ourself but instead of the simple mergeAdd, we do not want to do the array stuff for subtables
-- yes I warned you this is weird
table.mergeAdd(dst[k], e, true)
elseif deep and not dst[k] and type(e) == "table" and not e.__CLASSNAME then
dst[k] = table.clone(e, true)
elseif dst[k] and type(e) == "number" then
dst[k] = dst[k] + e
else
dst[k] = e
end
end
end
end
function table.append(dst, src)
for i = 1, #src do dst[#dst+1] = src[i] end
end
......
......@@ -26,7 +26,7 @@ newEntity{
rarity = 6,
cost = 4,
wielder = {
inc_stats = { [Stats.STAT_CUN] = resolvers.mbonus(8, 2) },
inc_stats = { [Stats.STAT_CUN] = resolvers.mbonus_material(8, 2) },
},
}
newEntity{
......@@ -35,7 +35,7 @@ newEntity{
rarity = 6,
cost = 4,
wielder = {
inc_stats = { [Stats.STAT_WIL] = resolvers.mbonus(8, 2) },
inc_stats = { [Stats.STAT_WIL] = resolvers.mbonus_material(8, 2) },
},
}
newEntity{
......@@ -87,7 +87,7 @@ newEntity{
local tt = tts[rng.range(1, #tts)]
e.wielder.talents_types_mastery = {}
e.wielder.talents_types_mastery[tt] = (10 + rng.mbonus(30, resolvers.current_level, 50)) / 100
e.wielder.talents_types_mastery[tt] = (10 + rng.mbonus(math.ceil(30 * e.material_level / 5), resolvers.current_level, 50)) / 100
end),
}
newEntity{
......
......@@ -23,7 +23,7 @@ newEntity{
rarity = 5,
cost = 6,
wielder = {
resists={[DamageType.FIRE] = resolvers.mbonus(30, 10)},
resists={[DamageType.FIRE] = resolvers.mbonus_material(30, 10)},
},
}
newEntity{
......@@ -32,7 +32,7 @@ newEntity{
rarity = 5,
cost = 6,
wielder = {
resists={[DamageType.COLD] = resolvers.mbonus(30, 10)},
resists={[DamageType.COLD] = resolvers.mbonus_material(30, 10)},
},
}
newEntity{
......@@ -41,7 +41,7 @@ newEntity{
rarity = 5,
cost = 6,
wielder = {
resists={[DamageType.ACID] = resolvers.mbonus(30, 10)},
resists={[DamageType.ACID] = resolvers.mbonus_material(30, 10)},
},
}
newEntity{
......@@ -50,7 +50,7 @@ newEntity{
rarity = 5,
cost = 6,
wielder = {
resists={[DamageType.LIGHTNING] = resolvers.mbonus(30, 10)},
resists={[DamageType.LIGHTNING] = resolvers.mbonus_material(30, 10)},
},
}
newEntity{
......@@ -59,7 +59,7 @@ newEntity{
rarity = 5,
cost = 6,
wielder = {
resists={[DamageType.NATURE] = resolvers.mbonus(30, 10)},
resists={[DamageType.NATURE] = resolvers.mbonus_material(30, 10)},
},
}
......
......@@ -26,7 +26,7 @@ newEntity{
rarity = 4,
cost = 2,
wielder = {
see_invisible = resolvers.mbonus(20, 5),
see_invisible = resolvers.mbonus_material(20, 5),
},
}
......@@ -38,7 +38,7 @@ Beware, you should take off your light, otherwise you will still be easily spott
rarity = 4,
cost = 16,
wielder = {
invisible = resolvers.mbonus(10, 5),
invisible = resolvers.mbonus_material(10, 5),
},
}
......@@ -48,7 +48,7 @@ newEntity{
rarity = 10,
cost = 8,
wielder = {
life_regen = resolvers.mbonus(3, 1),
life_regen = resolvers.mbonus_material(3, 1),
},
}
......@@ -58,7 +58,7 @@ newEntity{
rarity = 8,
cost = 3,
wielder = {
mana_regen = resolvers.mbonus(3, 1),
mana_regen = resolvers.mbonus_material(3, 1),
},
}
......@@ -68,7 +68,7 @@ newEntity{
rarity = 6,
cost = 2,
wielder = {
combat_atk = resolvers.mbonus(15, 5),
combat_atk = resolvers.mbonus_material(15, 5),
},
}
......@@ -78,7 +78,7 @@ newEntity{
rarity = 6,
cost = 2,
wielder = {
combat_def = resolvers.mbonus(15, 5),
combat_def = resolvers.mbonus_material(15, 5),
},
}
......@@ -88,7 +88,7 @@ newEntity{
rarity = 6,
cost = 2,
wielder = {
resists = { [DamageType.FIRE] = resolvers.mbonus(15, 20), }
resists = { [DamageType.FIRE] = resolvers.mbonus_material(15, 20), }
},
}
......@@ -98,7 +98,7 @@ newEntity{
rarity = 6,
cost = 2,
wielder = {
resists = { [DamageType.COLD] = resolvers.mbonus(15, 20), }
resists = { [DamageType.COLD] = resolvers.mbonus_material(15, 20), }
},
}
......@@ -108,7 +108,7 @@ newEntity{
rarity = 6,
cost = 2,
wielder = {
resists = { [DamageType.NATURE] = resolvers.mbonus(15, 20), }
resists = { [DamageType.NATURE] = resolvers.mbonus_material(15, 20), }
},
}
......@@ -118,7 +118,7 @@ newEntity{
rarity = 6,
cost = 2,
wielder = {
resists = { [DamageType.LIGHTNING] = resolvers.mbonus(15, 20), }
resists = { [DamageType.LIGHTNING] = resolvers.mbonus_material(15, 20), }
},
}
......@@ -128,7 +128,7 @@ newEntity{
rarity = 6,
cost = 2,
wielder = {
resists = { [DamageType.ACID] = resolvers.mbonus(15, 20), }
resists = { [DamageType.ACID] = resolvers.mbonus_material(15, 20), }
},
}
......@@ -138,7 +138,7 @@ newEntity{
rarity = 6,
cost = 2,
wielder = {
combat_spellresist = resolvers.mbonus(15, 5),
combat_spellresist = resolvers.mbonus_material(15, 5),
},
}
......@@ -148,7 +148,7 @@ newEntity{
rarity = 6,
cost = 2,
wielder = {
combat_physresist = resolvers.mbonus(15, 5),
combat_physresist = resolvers.mbonus_material(15, 5),
},
}
......@@ -158,7 +158,7 @@ newEntity{
rarity = 6,
cost = 4,
wielder = {
inc_stats = { [Stats.STAT_STR] = resolvers.mbonus(8, 2) },
inc_stats = { [Stats.STAT_STR] = resolvers.mbonus_material(8, 2) },
},
}
newEntity{
......@@ -167,7 +167,7 @@ newEntity{
rarity = 6,
cost = 4,
wielder = {
inc_stats = { [Stats.STAT_DEX] = resolvers.mbonus(8, 2) },
inc_stats = { [Stats.STAT_DEX] = resolvers.mbonus_material(8, 2) },
},
}
newEntity{ define_as = "RING_MAGIC",
......@@ -176,7 +176,7 @@ newEntity{ define_as = "RING_MAGIC",
rarity = 6,
cost = 4,
wielder = {
inc_stats = { [Stats.STAT_MAG] = resolvers.mbonus(8, 2) },
inc_stats = { [Stats.STAT_MAG] = resolvers.mbonus_material(8, 2) },
},
}
newEntity{
......@@ -185,7 +185,7 @@ newEntity{
rarity = 6,
cost = 4,
wielder = {
inc_stats = { [Stats.STAT_CON] = resolvers.mbonus(8, 2) },
inc_stats = { [Stats.STAT_CON] = resolvers.mbonus_material(8, 2) },
},
}
......@@ -196,7 +196,7 @@ newEntity{
rarity = 4,
cost = 4,
wielder = {
inc_damage = { [DamageType.PHYSICAL] = resolvers.mbonus(15, 5) },
inc_damage = { [DamageType.PHYSICAL] = resolvers.mbonus_material(15, 5) },
},
}
newEntity{ define_as = "RING_ARCANE_POWER",
......@@ -205,7 +205,7 @@ newEntity{ define_as = "RING_ARCANE_POWER",
rarity = 4,
cost = 4,
wielder = {
inc_damage = { [DamageType.ARCANE] = resolvers.mbonus(15, 5) },
inc_damage = { [DamageType.ARCANE] = resolvers.mbonus_material(15, 5) },
},
}
newEntity{ define_as = "RING_BURNING",
......@@ -214,7 +214,7 @@ newEntity{ define_as = "RING_BURNING",
rarity = 4,
cost = 4,
wielder = {
inc_damage = { [DamageType.FIRE] = resolvers.mbonus(15, 5) },
inc_damage = { [DamageType.FIRE] = resolvers.mbonus_material(15, 5) },
},
}
newEntity{ define_as = "RING_FREEZING",
......@@ -223,7 +223,7 @@ newEntity{ define_as = "RING_FREEZING",
rarity = 4,
cost = 4,
wielder = {
inc_damage = { [DamageType.COLD] = resolvers.mbonus(15, 5) },
inc_damage = { [DamageType.COLD] = resolvers.mbonus_material(15, 5) },
},
}
newEntity{ define_as = "RING_NATURE_BLESSING",
......@@ -232,7 +232,7 @@ newEntity{ define_as = "RING_NATURE_BLESSING",
rarity = 4,
cost = 4,
wielder = {
inc_damage = { [DamageType.NATURE] = resolvers.mbonus(15, 5) },
inc_damage = { [DamageType.NATURE] = resolvers.mbonus_material(15, 5) },
},
}
newEntity{ define_as = "RING_BLIGHT",
......@@ -241,7 +241,7 @@ newEntity{ define_as = "RING_BLIGHT",
rarity = 4,
cost = 4,
wielder = {
inc_damage = { [DamageType.BLIGHT] = resolvers.mbonus(15, 5) },
inc_damage = { [DamageType.BLIGHT] = resolvers.mbonus_material(15, 5) },
},
}
newEntity{ define_as = "RING_SHOCK",
......@@ -250,7 +250,7 @@ newEntity{ define_as = "RING_SHOCK",
rarity = 4,
cost = 4,
wielder = {
inc_damage = { [DamageType.LIGHTNING] = resolvers.mbonus(15, 5) },
inc_damage = { [DamageType.LIGHTNING] = resolvers.mbonus_material(15, 5) },
},
}
newEntity{ define_as = "RING_CORROSION",
......@@ -259,6 +259,6 @@ newEntity{ define_as = "RING_CORROSION",
rarity = 4,
cost = 4,
wielder = {
inc_damage = { [DamageType.ACID] = resolvers.mbonus(15, 5) },
inc_damage = { [DamageType.ACID] = resolvers.mbonus_material(15, 5) },
},
}
......@@ -23,7 +23,7 @@ newEntity{
rarity = 5,
cost = 6,
wielder = {
resists={[DamageType.FIRE] = resolvers.mbonus(30, 10)},
resists={[DamageType.FIRE] = resolvers.mbonus_material(30, 10)},
},
}
newEntity{
......@@ -32,7 +32,7 @@ newEntity{
rarity = 5,
cost = 6,
wielder = {
resists={[DamageType.COLD] = resolvers.mbonus(30, 10)},
resists={[DamageType.COLD] = resolvers.mbonus_material(30, 10)},
},
}
newEntity{
......@@ -41,7 +41,7 @@ newEntity{
rarity = 5,
cost = 6,
wielder = {
resists={[DamageType.ACID] = resolvers.mbonus(30, 10)},
resists={[DamageType.ACID] = resolvers.mbonus_material(30, 10)},
},
}
newEntity{
......@@ -50,7 +50,7 @@ newEntity{
rarity = 5,
cost = 6,
wielder = {
resists={[DamageType.LIGHTNING] = resolvers.mbonus(30, 10)},
resists={[DamageType.LIGHTNING] = resolvers.mbonus_material(30, 10)},
},
}
newEntity{
......@@ -59,7 +59,7 @@ newEntity{
rarity = 5,
cost = 6,
wielder = {
resists={[DamageType.NATURE] = resolvers.mbonus(30, 10)},
resists={[DamageType.NATURE] = resolvers.mbonus_material(30, 10)},
},
}
......@@ -69,7 +69,7 @@ newEntity{
rarity = 7,
cost = 6,
wielder = {
max_mana = resolvers.mbonus(100, 10),
max_mana = resolvers.mbonus_material(100, 10),
},
}
......@@ -79,7 +79,7 @@ newEntity{
rarity = 7,
cost = 6,
wielder = {
on_melee_hit={[DamageType.SLIME] = resolvers.mbonus(7, 3)},
on_melee_hit={[DamageType.SLIME] = resolvers.mbonus_material(7, 3)},
},
}
......@@ -90,14 +90,14 @@ newEntity{
cost = 15,
wielder = {
inc_damage = {
[DamageType.ARCANE] = resolvers.mbonus(15, 5),
[DamageType.FIRE] = resolvers.mbonus(15, 5),
[DamageType.COLD] = resolvers.mbonus(15, 5),
[DamageType.ACID] = resolvers.mbonus(15, 5),
[DamageType.LIGHTNING] = resolvers.mbonus(15, 5),
[DamageType.NATURE] = resolvers.mbonus(15, 5),
[DamageType.BLIGHT] = resolvers.mbonus(15, 5),
[DamageType.PHYSICAL] = resolvers.mbonus(15, 5),
[DamageType.ARCANE] = resolvers.mbonus_material(15, 5),
[DamageType.FIRE] = resolvers.mbonus_material(15, 5),
[DamageType.COLD] = resolvers.mbonus_material(15, 5),
[DamageType.ACID] = resolvers.mbonus_material(15, 5),
[DamageType.LIGHTNING] = resolvers.mbonus_material(15, 5),
[DamageType.NATURE] = resolvers.mbonus_material(15, 5),
[DamageType.BLIGHT] = resolvers.mbonus_material(15, 5),
[DamageType.PHYSICAL] = resolvers.mbonus_material(15, 5),
},
combat_spellpower = 4,
},
......
......@@ -23,7 +23,7 @@ newEntity{
rarity = 5,
cost = 4,
wielder = {
resists={[DamageType.FIRE] = resolvers.mbonus(20, 10)},
resists={[DamageType.FIRE] = resolvers.mbonus_material(20, 10)},
},
}
newEntity{
......@@ -32,7 +32,7 @@ newEntity{
rarity = 5,
cost = 4,
wielder = {
resists={[DamageType.COLD] = resolvers.mbonus(20, 10)},
resists={[DamageType.COLD] = resolvers.mbonus_material(20, 10)},
},
}
newEntity{
......@@ -41,7 +41,7 @@ newEntity{
rarity = 5,
cost = 4,
wielder = {
resists={[DamageType.ACID] = resolvers.mbonus(20, 10)},
resists={[DamageType.ACID] = resolvers.mbonus_material(20, 10)},
},
}
newEntity{
......@@ -50,7 +50,7 @@ newEntity{
rarity = 5,
cost = 4,
wielder = {
resists={[DamageType.LIGHTNING] = resolvers.mbonus(20, 10)},
resists={[DamageType.LIGHTNING] = resolvers.mbonus_material(20, 10)},
},
}
newEntity{
......@@ -59,7 +59,7 @@ newEntity{
rarity = 5,
cost = 4,
wielder = {
resists={[DamageType.NATURE] = resolvers.mbonus(20, 10)},
resists={[DamageType.NATURE] = resolvers.mbonus_material(20, 10)},
},
}
......@@ -70,7 +70,7 @@ newEntity{
rarity = 8,
cost = 8,
wielder = {
on_melee_hit={[DamageType.FIRE] = resolvers.mbonus(7, 3)},
on_melee_hit={[DamageType.FIRE] = resolvers.mbonus_material(7, 3)},
},
}
newEntity{
......@@ -79,7 +79,7 @@ newEntity{
rarity = 8,
cost = 10,
wielder = {
on_melee_hit={[DamageType.ICE] = resolvers.mbonus(4, 3)},
on_melee_hit={[DamageType.ICE] = resolvers.mbonus_material(4, 3)},
},
}
newEntity{
......@@ -88,7 +88,7 @@ newEntity{
rarity = 8,
cost = 8,
wielder = {
on_melee_hit={[DamageType.ACID] = resolvers.mbonus(7, 3)},
on_melee_hit={[DamageType.ACID] = resolvers.mbonus_material(7, 3)},
},
}
newEntity{
......@@ -97,7 +97,7 @@ newEntity{
rarity = 8,
cost = 8,
wielder = {
on_melee_hit={[DamageType.LIGHTNING] = resolvers.mbonus(7, 3)},
on_melee_hit={[DamageType.LIGHTNING] = resolvers.mbonus_material(7, 3)},
},
}
......@@ -107,7 +107,7 @@ newEntity{
rarity = 15,
cost = 20,
wielder = {
combat_def=resolvers.mbonus(15, 4),
combat_def=resolvers.mbonus_material(15, 4),
},
}
......@@ -117,6 +117,6 @@ newEntity{
rarity = 15,
cost = 20,
wielder = {
max_life=resolvers.mbonus(100, 10),
max_life=resolvers.mbonus_material(100, 10),
},
}
......@@ -25,7 +25,7 @@ newEntity{
rarity = 4,
cost = 8,
wielder = {
combat_spellpower = resolvers.mbonus(30, 3),
combat_spellpower = resolvers.mbonus_material(30, 3),
},
}
......@@ -35,7 +35,7 @@ newEntity{
rarity = 3,
cost = 8,
wielder = {
max_mana = resolvers.mbonus(100, 10),
max_mana = resolvers.mbonus_material(100, 10),
},
}
......@@ -45,7 +45,7 @@ newEntity{
rarity = 3,
cost = 8,
wielder = {
combat_spellcrit = resolvers.mbonus(15, 4),
combat_spellcrit = resolvers.mbonus_material(15, 4),
},
}
......@@ -55,9 +55,9 @@ newEntity{
rarity = 12,
cost = 45,
wielder = {
combat_spellpower = resolvers.mbonus(30, 3),
max_mana = resolvers.mbonus(100, 10),
inc_stats = { [Stats.STAT_MAG] = resolvers.mbonus(5, 1), [Stats.STAT_WIL] = resolvers.mbonus(5, 1) },
combat_spellpower = resolvers.mbonus_material(30, 3),
max_mana = resolvers.mbonus_material(100, 10),
inc_stats = { [Stats.STAT_MAG] = resolvers.mbonus_material(5, 1), [Stats.STAT_WIL] = resolvers.mbonus_material(5, 1) },
},
}
......@@ -67,7 +67,7 @@ newEntity{
rarity = 3,
cost = 5,
wielder = {
inc_damage={ [DamageType.FIRE] = resolvers.mbonus(25, 8), },
inc_damage={ [DamageType.FIRE] = resolvers.mbonus_material(25, 8), },
},
}
......@@ -77,7 +77,7 @@ newEntity{
rarity = 3,
cost = 5,
wielder = {
inc_damage={ [DamageType.COLD] = resolvers.mbonus(25, 8), },
inc_damage={ [DamageType.COLD] = resolvers.mbonus_material(25, 8), },
},
}
......@@ -87,7 +87,7 @@ newEntity{
rarity = 3,
cost = 5,
wielder = {
inc_damage={ [DamageType.ACID] = resolvers.mbonus(25, 8), },
inc_damage={ [DamageType.ACID] = resolvers.mbonus_material(25, 8), },
},
}
......@@ -97,7 +97,7 @@ newEntity{
rarity = 3,
cost = 5,
wielder = {
inc_damage={ [DamageType.LIGHTNING] = resolvers.mbonus(25, 8), },
inc_damage={ [DamageType.LIGHTNING] = resolvers.mbonus_material(25, 8), },
},
}
......@@ -107,7 +107,7 @@ newEntity{
rarity = 3,
cost = 5,
wielder = {
inc_damage={ [DamageType.NATURE] = resolvers.mbonus(25, 8), },
inc_damage={ [DamageType.NATURE] = resolvers.mbonus_material(25, 8), },
},
}
......@@ -117,6 +117,6 @@ newEntity{
rarity = 3,
cost = 5,
wielder = {
inc_damage={ [DamageType.BLIGHT] = resolvers.mbonus(25, 8), },
inc_damage={ [DamageType.BLIGHT] = resolvers.mbonus_material(25, 8), },
},
}
......@@ -22,7 +22,7 @@ newEntity{
level_range = {1, 50},
rarity = 5,
wielder = {
melee_project={[DamageType.FIRE] = resolvers.mbonus(25, 4)},
melee_project={[DamageType.FIRE] = resolvers.mbonus_material(25, 4)},
},
}
newEntity{
......@@ -30,7 +30,7 @@ newEntity{
level_range = {15, 50},
rarity = 5,
wielder = {
melee_project={[DamageType.ICE] = resolvers.mbonus(15, 4)},
melee_project={[DamageType.ICE] = resolvers.mbonus_material(15, 4)},
},
}
newEntity{
......@@ -38,7 +38,7 @@ newEntity{
level_range = {1, 50},
rarity = 5,
wielder = {
melee_project={[DamageType.ACID] = resolvers.mbonus(25, 4)},
melee_project={[DamageType.ACID] = resolvers.mbonus_material(25, 4)},
},
}
newEntity{
......@@ -46,7 +46,7 @@ newEntity{
level_range = {1, 50},
rarity = 5,
wielder = {
melee_project={[DamageType.LIGHTNING] = resolvers.mbonus(25, 4)},
melee_project={[DamageType.LIGHTNING] = resolvers.mbonus_material(25, 4)},
},
}
newEntity{
......@@ -54,7 +54,7 @@ newEntity{
level_range = {1, 50},
rarity = 5,
wielder = {
melee_project={[DamageType.POISON] = resolvers.mbonus(45, 6)},
melee_project={[DamageType.POISON] = resolvers.mbonus_material(45, 6)},
},
}
......@@ -63,7 +63,7 @@ newEntity{
level_range = {10, 50},
rarity = 5,
wielder = {
melee_project={[DamageType.SLIME] = resolvers.mbonus(45, 6)},
melee_project={[DamageType.SLIME] = resolvers.mbonus_material(45, 6)},
},
}
......@@ -72,7 +72,7 @@ newEntity{
level_range = {1, 50},
rarity = 3,
cost = 4,
combat={atk = resolvers.mbonus(20, 2)},
combat={atk = resolvers.mbonus_material(20, 2)},
}
newEntity{
......@@ -80,7 +80,7 @@ newEntity{
level_range = {1, 50},
rarity = 3,
cost = 6,
combat={apr = resolvers.mbonus(15, 1)},
combat={apr = resolvers.mbonus_material(15, 1)},
}
newEntity{
......@@ -90,10 +90,10 @@ newEntity{
cost = 35,
wielder = {
melee_project={
[DamageType.FIRE] = resolvers.mbonus(25, 4),
[DamageType.ICE] = resolvers.mbonus(15, 4),
[DamageType.ACID] = resolvers.mbonus(25, 4),
[DamageType.LIGHTNING] = resolvers.mbonus(25, 4),
[DamageType.FIRE] = resolvers.mbonus_material(25, 4),
[DamageType.ICE] = resolvers.mbonus_material(15, 4),
[DamageType.ACID] = resolvers.mbonus_material(25, 4),
[DamageType.LIGHTNING] = resolvers.mbonus_material(25, 4),
},
},
}
......@@ -104,6 +104,6 @@ newEntity{
rarity = 3,
cost = 4,
wielder = {
inc_damage={ [DamageType.PHYSICAL] = resolvers.mbonus(25, 8), },
inc_damage={ [DamageType.PHYSICAL] = resolvers.mbonus_material(25, 8), },
},
}
......@@ -158,3 +158,17 @@ function resolvers.calc.chatfeature(t, e)
-- Delete the origin field
return nil
end
--- Random bonus based on level (sets the mbonus max level, we use 60 instead of 50 to get some forced randomness at high level)
resolvers.mbonus_max_level = 60
--- Random bonus based on level and material quality
resolvers.current_level = 1
function resolvers.mbonus_material(max, add)
return {__resolver="mbonus_material", max, add}
end
function resolvers.calc.mbonus_material(t, e)
local ml = e.material_level or 1
print("RESOLVER MBONUS MATERIAL", ml, math.ceil(t[1] * ml / 5))
return math.ceil(rng.mbonus(t[1], resolvers.current_level, resolvers.mbonus_max_level) * ml / 5) + (t[2] or 0)
end
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