Skip to content
Snippets Groups Projects
Commit 923419f1 authored by dg's avatar dg
Browse files

ego items now vary in price based on their level of bonus

git-svn-id: http://svn.net-core.org/repos/t-engine4@812 51575b47-30f0-44d4-a5cc-537603b46e54
parent e34ed405
No related branches found
No related tags found
No related merge requests found
...@@ -91,11 +91,19 @@ function _M:descAttribute(attr) ...@@ -91,11 +91,19 @@ function _M:descAttribute(attr)
elseif attr == "DAMBONUS" then elseif attr == "DAMBONUS" then
local stat, i = next(self.wielder.inc_damage) local stat, i = next(self.wielder.inc_damage)
return (i > 0 and "+"..i or tostring(i)).."%" return (i > 0 and "+"..i or tostring(i)).."%"
elseif attr == "RESIST" then
local stat, i = next(self.wielder.resists)
return (i > 0 and "+"..i or tostring(i)).."%"
elseif attr == "REGEN" then
local i = self.wielder.mana_regen or self.wielder.stamina_regen or self.wielder.life_regen
return ("%s%0.2f/turn"):format(i > 0 and "+" or "-", math.abs(i))
elseif attr == "COMBAT" then elseif attr == "COMBAT" then
local c = self.combat local c = self.combat
return c.dam.."-"..(c.dam*(c.damrange or 1.1)).." dam, "..(c.apr or 0).." apr" return c.dam.."-"..(c.dam*(c.damrange or 1.1)).." dam, "..(c.apr or 0).." apr"
elseif attr == "ARMOR" then elseif attr == "ARMOR" then
return (self.wielder and self.wielder.combat_def or 0).." def, "..(self.wielder and self.wielder.combat_armor or 0).." armor" return (self.wielder and self.wielder.combat_def or 0).." def, "..(self.wielder and self.wielder.combat_armor or 0).." armor"
elseif attr == "ATTACK" then
return (self.wielder and self.wielder.combat_atk or 0).." attack, "..(self.wielder and self.wielder.combat_apr or 0).." apr"..(self.wielder and self.wielder.combat_dam or 0).." dam"
elseif attr == "MONEY" then elseif attr == "MONEY" then
return ("worth %0.2f"):format(self.money_value / 10) return ("worth %0.2f"):format(self.money_value / 10)
end end
...@@ -262,8 +270,8 @@ function _M:getDesc() ...@@ -262,8 +270,8 @@ function _M:getDesc()
if w.knockback_immune then desc[#desc+1] = ("Increases knockback immunity: %d%%."):format(w.knockback_immune * 100) end if w.knockback_immune then desc[#desc+1] = ("Increases knockback immunity: %d%%."):format(w.knockback_immune * 100) end
if w.instakill_immune then desc[#desc+1] = ("Increases instant-death immunity: %d%%."):format(w.instakill_immune * 100) end if w.instakill_immune then desc[#desc+1] = ("Increases instant-death immunity: %d%%."):format(w.instakill_immune * 100) end
if w.life_regen then desc[#desc+1] = ("Regenerates %d hitpoints each turn."):format(w.life_regen) end if w.life_regen then desc[#desc+1] = ("Regenerates %0.2f hitpoints each turn."):format(w.life_regen) end
if w.mana_regen then desc[#desc+1] = ("Regenerates %d mana each turn."):format(w.mana_regen) end if w.mana_regen then desc[#desc+1] = ("Regenerates %0.2f mana each turn."):format(w.mana_regen) end
if w.max_life then desc[#desc+1] = ("Maximum life %d"):format(w.max_life) end if w.max_life then desc[#desc+1] = ("Maximum life %d"):format(w.max_life) end
if w.max_mana then desc[#desc+1] = ("Maximum mana %d"):format(w.max_mana) end if w.max_mana then desc[#desc+1] = ("Maximum mana %d"):format(w.max_mana) end
......
...@@ -26,7 +26,7 @@ newEntity{ ...@@ -26,7 +26,7 @@ newEntity{
rarity = 6, rarity = 6,
cost = 4, cost = 4,
wielder = { wielder = {
inc_stats = { [Stats.STAT_CUN] = resolvers.mbonus_material(8, 2) }, inc_stats = { [Stats.STAT_CUN] = resolvers.mbonus_material(8, 2, function(e, v) return v * 3 end) },
}, },
} }
newEntity{ newEntity{
...@@ -35,7 +35,7 @@ newEntity{ ...@@ -35,7 +35,7 @@ newEntity{
rarity = 6, rarity = 6,
cost = 4, cost = 4,
wielder = { wielder = {
inc_stats = { [Stats.STAT_WIL] = resolvers.mbonus_material(8, 2) }, inc_stats = { [Stats.STAT_WIL] = resolvers.mbonus_material(8, 2, function(e, v) return v * 3 end) },
}, },
} }
newEntity{ newEntity{
...@@ -87,14 +87,16 @@ newEntity{ ...@@ -87,14 +87,16 @@ newEntity{
local tt = tts[rng.range(1, #tts)] local tt = tts[rng.range(1, #tts)]
e.wielder.talents_types_mastery = {} e.wielder.talents_types_mastery = {}
e.wielder.talents_types_mastery[tt] = (10 + rng.mbonus(math.ceil(30 * e.material_level / 5), resolvers.current_level, 50)) / 100 local v = (10 + rng.mbonus(math.ceil(30 * e.material_level / 5), resolvers.current_level, 50)) / 100
e.wielder.talents_types_mastery[tt] = v
e.cost = e.cost + v * 60
end), end),
} }
newEntity{ newEntity{
name = " of greater telepathy", suffix=true, name = " of greater telepathy", suffix=true,
level_range = {40, 50}, level_range = {40, 50},
rarity = 15, rarity = 15,
cost = 15, cost = 25,
wielder = { wielder = {
esp = {all=1}, esp = {all=1},
}, },
......
...@@ -23,7 +23,7 @@ newEntity{ ...@@ -23,7 +23,7 @@ newEntity{
rarity = 5, rarity = 5,
cost = 6, cost = 6,
wielder = { wielder = {
resists={[DamageType.FIRE] = resolvers.mbonus_material(30, 10)}, resists={[DamageType.FIRE] = resolvers.mbonus_material(30, 10, function(e, v) return v * 0.15 end)},
}, },
} }
newEntity{ newEntity{
...@@ -32,7 +32,7 @@ newEntity{ ...@@ -32,7 +32,7 @@ newEntity{
rarity = 5, rarity = 5,
cost = 6, cost = 6,
wielder = { wielder = {
resists={[DamageType.COLD] = resolvers.mbonus_material(30, 10)}, resists={[DamageType.COLD] = resolvers.mbonus_material(30, 10, function(e, v) return v * 0.15 end)},
}, },
} }
newEntity{ newEntity{
...@@ -41,7 +41,7 @@ newEntity{ ...@@ -41,7 +41,7 @@ newEntity{
rarity = 5, rarity = 5,
cost = 6, cost = 6,
wielder = { wielder = {
resists={[DamageType.ACID] = resolvers.mbonus_material(30, 10)}, resists={[DamageType.ACID] = resolvers.mbonus_material(30, 10, function(e, v) return v * 0.15 end)},
}, },
} }
newEntity{ newEntity{
...@@ -50,7 +50,7 @@ newEntity{ ...@@ -50,7 +50,7 @@ newEntity{
rarity = 5, rarity = 5,
cost = 6, cost = 6,
wielder = { wielder = {
resists={[DamageType.LIGHTNING] = resolvers.mbonus_material(30, 10)}, resists={[DamageType.LIGHTNING] = resolvers.mbonus_material(30, 10, function(e, v) return v * 0.15 end)},
}, },
} }
newEntity{ newEntity{
...@@ -59,7 +59,7 @@ newEntity{ ...@@ -59,7 +59,7 @@ newEntity{
rarity = 5, rarity = 5,
cost = 6, cost = 6,
wielder = { wielder = {
resists={[DamageType.NATURE] = resolvers.mbonus_material(30, 10)}, resists={[DamageType.NATURE] = resolvers.mbonus_material(30, 10, function(e, v) return v * 0.15 end)},
}, },
} }
......
...@@ -26,8 +26,9 @@ newEntity{ ...@@ -26,8 +26,9 @@ newEntity{
rarity = 4, rarity = 4,
cost = 2, cost = 2,
wielder = { wielder = {
see_invisible = resolvers.mbonus_material(20, 5), see_invisible = resolvers.mbonus_material(20, 5, function(e, v) return v * 0.2 end),
}, },
} }
newEntity{ newEntity{
...@@ -38,97 +39,97 @@ Beware, you should take off your light, otherwise you will still be easily spott ...@@ -38,97 +39,97 @@ Beware, you should take off your light, otherwise you will still be easily spott
rarity = 4, rarity = 4,
cost = 16, cost = 16,
wielder = { wielder = {
invisible = resolvers.mbonus_material(10, 5), invisible = resolvers.mbonus_material(10, 5, function(e, v) return v * 1 end),
}, },
} }
newEntity{ newEntity{
name = " of regeneration", suffix=true, name = " of regeneration (#REGEN#)", suffix=true,
level_range = {10, 20}, level_range = {10, 20},
rarity = 10, rarity = 10,
cost = 8, cost = 8,
wielder = { wielder = {
life_regen = resolvers.mbonus_material(3, 1), life_regen = resolvers.mbonus_material(30, 5, function(e, v) v=v/10 return v * 10, v end),
}, },
} }
newEntity{ newEntity{
name = "energizing ", prefix=true, name = " of mana (#REGEN#)", suffix=true,
level_range = {10, 20}, level_range = {10, 20},
rarity = 8, rarity = 8,
cost = 3, cost = 3,
wielder = { wielder = {
mana_regen = resolvers.mbonus_material(3, 1), mana_regen = resolvers.mbonus_material(3, 1, function(e, v) v=v/10 return v * 8, v end),
}, },
} }
newEntity{ newEntity{
name = " of accuracy", suffix=true, name = " of accuracy (#ATTACK#)", suffix=true,
level_range = {1, 30}, level_range = {1, 30},
rarity = 6, rarity = 6,
cost = 2, cost = 2,
wielder = { wielder = {
combat_atk = resolvers.mbonus_material(15, 5), combat_atk = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.3 end),
}, },
} }
newEntity{ newEntity{
name = " of defense", suffix=true, name = " of defense (#ARMOR#)", suffix=true,
level_range = {1, 30}, level_range = {1, 30},
rarity = 6, rarity = 6,
cost = 2, cost = 2,
wielder = { wielder = {
combat_def = resolvers.mbonus_material(15, 5), combat_def = resolvers.mbonus_material(15, 5, function(e, v) return v * 1 end),
}, },
} }
newEntity{ newEntity{
name = " of fire resistance", suffix=true, name = " of fire resistance (#RESIST#)", suffix=true,
level_range = {10, 40}, level_range = {10, 40},
rarity = 6, rarity = 6,
cost = 2, cost = 2,
wielder = { wielder = {
resists = { [DamageType.FIRE] = resolvers.mbonus_material(15, 20), } resists = { [DamageType.FIRE] = resolvers.mbonus_material(15, 20, function(e, v) return v * 0.15 end), }
}, },
} }
newEntity{ newEntity{
name = " of cold resistance", suffix=true, name = " of cold resistance (#RESIST#)", suffix=true,
level_range = {10, 40}, level_range = {10, 40},
rarity = 6, rarity = 6,
cost = 2, cost = 2,
wielder = { wielder = {
resists = { [DamageType.COLD] = resolvers.mbonus_material(15, 20), } resists = { [DamageType.COLD] = resolvers.mbonus_material(15, 20, function(e, v) return v * 0.15 end), }
}, },
} }
newEntity{ newEntity{
name = " of nature resistance", suffix=true, name = " of nature resistance (#RESIST#)", suffix=true,
level_range = {10, 40}, level_range = {10, 40},
rarity = 6, rarity = 6,
cost = 2, cost = 2,
wielder = { wielder = {
resists = { [DamageType.NATURE] = resolvers.mbonus_material(15, 20), } resists = { [DamageType.NATURE] = resolvers.mbonus_material(15, 20, function(e, v) return v * 0.15 end), }
}, },
} }
newEntity{ newEntity{
name = " of lightning resistance", suffix=true, name = " of lightning resistance (#RESIST#)", suffix=true,
level_range = {10, 40}, level_range = {10, 40},
rarity = 6, rarity = 6,
cost = 2, cost = 2,
wielder = { wielder = {
resists = { [DamageType.LIGHTNING] = resolvers.mbonus_material(15, 20), } resists = { [DamageType.LIGHTNING] = resolvers.mbonus_material(15, 20, function(e, v) return v * 0.15 end), }
}, },
} }
newEntity{ newEntity{
name = " of acid resistance", suffix=true, name = " of acid resistance (#RESIST#)", suffix=true,
level_range = {10, 40}, level_range = {10, 40},
rarity = 6, rarity = 6,
cost = 2, cost = 2,
wielder = { wielder = {
resists = { [DamageType.ACID] = resolvers.mbonus_material(15, 20), } resists = { [DamageType.ACID] = resolvers.mbonus_material(15, 20, function(e, v) return v * 0.15 end), }
}, },
} }
...@@ -138,7 +139,7 @@ newEntity{ ...@@ -138,7 +139,7 @@ newEntity{
rarity = 6, rarity = 6,
cost = 2, cost = 2,
wielder = { wielder = {
combat_spellresist = resolvers.mbonus_material(15, 5), combat_spellresist = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.15 end),
}, },
} }
...@@ -148,7 +149,7 @@ newEntity{ ...@@ -148,7 +149,7 @@ newEntity{
rarity = 6, rarity = 6,
cost = 2, cost = 2,
wielder = { wielder = {
combat_physresist = resolvers.mbonus_material(15, 5), combat_physresist = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.15 end),
}, },
} }
...@@ -158,7 +159,7 @@ newEntity{ ...@@ -158,7 +159,7 @@ newEntity{
rarity = 6, rarity = 6,
cost = 4, cost = 4,
wielder = { wielder = {
inc_stats = { [Stats.STAT_STR] = resolvers.mbonus_material(8, 2) }, inc_stats = { [Stats.STAT_STR] = resolvers.mbonus_material(8, 2, function(e, v) return v * 3 end) },
}, },
} }
newEntity{ newEntity{
...@@ -167,7 +168,7 @@ newEntity{ ...@@ -167,7 +168,7 @@ newEntity{
rarity = 6, rarity = 6,
cost = 4, cost = 4,
wielder = { wielder = {
inc_stats = { [Stats.STAT_DEX] = resolvers.mbonus_material(8, 2) }, inc_stats = { [Stats.STAT_DEX] = resolvers.mbonus_material(8, 2, function(e, v) return v * 3 end) },
}, },
} }
newEntity{ define_as = "RING_MAGIC", newEntity{ define_as = "RING_MAGIC",
...@@ -176,7 +177,7 @@ newEntity{ define_as = "RING_MAGIC", ...@@ -176,7 +177,7 @@ newEntity{ define_as = "RING_MAGIC",
rarity = 6, rarity = 6,
cost = 4, cost = 4,
wielder = { wielder = {
inc_stats = { [Stats.STAT_MAG] = resolvers.mbonus_material(8, 2) }, inc_stats = { [Stats.STAT_MAG] = resolvers.mbonus_material(8, 2, function(e, v) return v * 3 end) },
}, },
} }
newEntity{ newEntity{
...@@ -185,7 +186,7 @@ newEntity{ ...@@ -185,7 +186,7 @@ newEntity{
rarity = 6, rarity = 6,
cost = 4, cost = 4,
wielder = { wielder = {
inc_stats = { [Stats.STAT_CON] = resolvers.mbonus_material(8, 2) }, inc_stats = { [Stats.STAT_CON] = resolvers.mbonus_material(8, 2, function(e, v) return v * 3 end) },
}, },
} }
...@@ -196,7 +197,7 @@ newEntity{ ...@@ -196,7 +197,7 @@ newEntity{
rarity = 4, rarity = 4,
cost = 4, cost = 4,
wielder = { wielder = {
inc_damage = { [DamageType.PHYSICAL] = resolvers.mbonus_material(15, 5) }, inc_damage = { [DamageType.PHYSICAL] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },
}, },
} }
newEntity{ define_as = "RING_ARCANE_POWER", newEntity{ define_as = "RING_ARCANE_POWER",
...@@ -205,7 +206,7 @@ newEntity{ define_as = "RING_ARCANE_POWER", ...@@ -205,7 +206,7 @@ newEntity{ define_as = "RING_ARCANE_POWER",
rarity = 4, rarity = 4,
cost = 4, cost = 4,
wielder = { wielder = {
inc_damage = { [DamageType.ARCANE] = resolvers.mbonus_material(15, 5) }, inc_damage = { [DamageType.ARCANE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },
}, },
} }
newEntity{ define_as = "RING_BURNING", newEntity{ define_as = "RING_BURNING",
...@@ -214,7 +215,7 @@ newEntity{ define_as = "RING_BURNING", ...@@ -214,7 +215,7 @@ newEntity{ define_as = "RING_BURNING",
rarity = 4, rarity = 4,
cost = 4, cost = 4,
wielder = { wielder = {
inc_damage = { [DamageType.FIRE] = resolvers.mbonus_material(15, 5) }, inc_damage = { [DamageType.FIRE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },
}, },
} }
newEntity{ define_as = "RING_FREEZING", newEntity{ define_as = "RING_FREEZING",
...@@ -223,7 +224,7 @@ newEntity{ define_as = "RING_FREEZING", ...@@ -223,7 +224,7 @@ newEntity{ define_as = "RING_FREEZING",
rarity = 4, rarity = 4,
cost = 4, cost = 4,
wielder = { wielder = {
inc_damage = { [DamageType.COLD] = resolvers.mbonus_material(15, 5) }, inc_damage = { [DamageType.COLD] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },
}, },
} }
newEntity{ define_as = "RING_NATURE_BLESSING", newEntity{ define_as = "RING_NATURE_BLESSING",
...@@ -232,7 +233,7 @@ newEntity{ define_as = "RING_NATURE_BLESSING", ...@@ -232,7 +233,7 @@ newEntity{ define_as = "RING_NATURE_BLESSING",
rarity = 4, rarity = 4,
cost = 4, cost = 4,
wielder = { wielder = {
inc_damage = { [DamageType.NATURE] = resolvers.mbonus_material(15, 5) }, inc_damage = { [DamageType.NATURE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },
}, },
} }
newEntity{ define_as = "RING_BLIGHT", newEntity{ define_as = "RING_BLIGHT",
...@@ -241,7 +242,7 @@ newEntity{ define_as = "RING_BLIGHT", ...@@ -241,7 +242,7 @@ newEntity{ define_as = "RING_BLIGHT",
rarity = 4, rarity = 4,
cost = 4, cost = 4,
wielder = { wielder = {
inc_damage = { [DamageType.BLIGHT] = resolvers.mbonus_material(15, 5) }, inc_damage = { [DamageType.BLIGHT] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },
}, },
} }
newEntity{ define_as = "RING_SHOCK", newEntity{ define_as = "RING_SHOCK",
...@@ -250,7 +251,7 @@ newEntity{ define_as = "RING_SHOCK", ...@@ -250,7 +251,7 @@ newEntity{ define_as = "RING_SHOCK",
rarity = 4, rarity = 4,
cost = 4, cost = 4,
wielder = { wielder = {
inc_damage = { [DamageType.LIGHTNING] = resolvers.mbonus_material(15, 5) }, inc_damage = { [DamageType.LIGHTNING] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },
}, },
} }
newEntity{ define_as = "RING_CORROSION", newEntity{ define_as = "RING_CORROSION",
...@@ -259,6 +260,6 @@ newEntity{ define_as = "RING_CORROSION", ...@@ -259,6 +260,6 @@ newEntity{ define_as = "RING_CORROSION",
rarity = 4, rarity = 4,
cost = 4, cost = 4,
wielder = { wielder = {
inc_damage = { [DamageType.ACID] = resolvers.mbonus_material(15, 5) }, inc_damage = { [DamageType.ACID] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },
}, },
} }
...@@ -23,7 +23,7 @@ newEntity{ ...@@ -23,7 +23,7 @@ newEntity{
rarity = 5, rarity = 5,
cost = 6, cost = 6,
wielder = { wielder = {
resists={[DamageType.FIRE] = resolvers.mbonus_material(30, 10)}, resists={[DamageType.FIRE] = resolvers.mbonus_material(30, 10, function(e, v) return v * 0.15 end)},
}, },
} }
newEntity{ newEntity{
...@@ -32,7 +32,7 @@ newEntity{ ...@@ -32,7 +32,7 @@ newEntity{
rarity = 5, rarity = 5,
cost = 6, cost = 6,
wielder = { wielder = {
resists={[DamageType.COLD] = resolvers.mbonus_material(30, 10)}, resists={[DamageType.COLD] = resolvers.mbonus_material(30, 10, function(e, v) return v * 0.15 end)},
}, },
} }
newEntity{ newEntity{
...@@ -41,7 +41,7 @@ newEntity{ ...@@ -41,7 +41,7 @@ newEntity{
rarity = 5, rarity = 5,
cost = 6, cost = 6,
wielder = { wielder = {
resists={[DamageType.ACID] = resolvers.mbonus_material(30, 10)}, resists={[DamageType.ACID] = resolvers.mbonus_material(30, 10, function(e, v) return v * 0.15 end)},
}, },
} }
newEntity{ newEntity{
...@@ -50,7 +50,7 @@ newEntity{ ...@@ -50,7 +50,7 @@ newEntity{
rarity = 5, rarity = 5,
cost = 6, cost = 6,
wielder = { wielder = {
resists={[DamageType.LIGHTNING] = resolvers.mbonus_material(30, 10)}, resists={[DamageType.LIGHTNING] = resolvers.mbonus_material(30, 10, function(e, v) return v * 0.15 end)},
}, },
} }
newEntity{ newEntity{
...@@ -60,7 +60,7 @@ newEntity{ ...@@ -60,7 +60,7 @@ newEntity{
cost = 6, cost = 6,
wielder = { wielder = {
resists={[DamageType.NATURE] = resolvers.mbonus_material(30, 10)}, resists={[DamageType.NATURE] = resolvers.mbonus_material(30, 10)},
}, }, , function(e, v) return v * 0.15 end
} }
newEntity{ newEntity{
...@@ -69,7 +69,7 @@ newEntity{ ...@@ -69,7 +69,7 @@ newEntity{
rarity = 7, rarity = 7,
cost = 6, cost = 6,
wielder = { wielder = {
max_mana = resolvers.mbonus_material(100, 10), max_mana = resolvers.mbonus_material(100, 10, function(e, v) return v * 0.1 end),
}, },
} }
...@@ -79,25 +79,25 @@ newEntity{ ...@@ -79,25 +79,25 @@ newEntity{
rarity = 7, rarity = 7,
cost = 6, cost = 6,
wielder = { wielder = {
on_melee_hit={[DamageType.SLIME] = resolvers.mbonus_material(7, 3)}, on_melee_hit={[DamageType.SLIME] = resolvers.mbonus_material(7, 3, function(e, v) return v * 1 end)},
}, },
} }
newEntity{ newEntity{
name = " of power", suffix=true, name = " of power", suffix=true,
level_range = {20, 50}, level_range = {20, 50},
rarity = 9, rarity = 15,
cost = 15, cost = 15,
wielder = { wielder = {
inc_damage = { inc_damage = {
[DamageType.ARCANE] = resolvers.mbonus_material(15, 5), [DamageType.ARCANE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end),
[DamageType.FIRE] = resolvers.mbonus_material(15, 5), [DamageType.FIRE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end),
[DamageType.COLD] = resolvers.mbonus_material(15, 5), [DamageType.COLD] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end),
[DamageType.ACID] = resolvers.mbonus_material(15, 5), [DamageType.ACID] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end),
[DamageType.LIGHTNING] = resolvers.mbonus_material(15, 5), [DamageType.LIGHTNING] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end),
[DamageType.NATURE] = resolvers.mbonus_material(15, 5), [DamageType.NATURE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end),
[DamageType.BLIGHT] = resolvers.mbonus_material(15, 5), [DamageType.BLIGHT] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end),
[DamageType.PHYSICAL] = resolvers.mbonus_material(15, 5), [DamageType.PHYSICAL] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end),
}, },
combat_spellpower = 4, combat_spellpower = 4,
}, },
......
...@@ -23,7 +23,7 @@ newEntity{ ...@@ -23,7 +23,7 @@ newEntity{
rarity = 5, rarity = 5,
cost = 4, cost = 4,
wielder = { wielder = {
resists={[DamageType.FIRE] = resolvers.mbonus_material(20, 10)}, resists={[DamageType.FIRE] = resolvers.mbonus_material(20, 10, function(e, v) return v * 0.15 end)},
}, },
} }
newEntity{ newEntity{
...@@ -32,7 +32,7 @@ newEntity{ ...@@ -32,7 +32,7 @@ newEntity{
rarity = 5, rarity = 5,
cost = 4, cost = 4,
wielder = { wielder = {
resists={[DamageType.COLD] = resolvers.mbonus_material(20, 10)}, resists={[DamageType.COLD] = resolvers.mbonus_material(20, 10, function(e, v) return v * 0.15 end)},
}, },
} }
newEntity{ newEntity{
...@@ -41,7 +41,7 @@ newEntity{ ...@@ -41,7 +41,7 @@ newEntity{
rarity = 5, rarity = 5,
cost = 4, cost = 4,
wielder = { wielder = {
resists={[DamageType.ACID] = resolvers.mbonus_material(20, 10)}, resists={[DamageType.ACID] = resolvers.mbonus_material(20, 10, function(e, v) return v * 0.15 end)},
}, },
} }
newEntity{ newEntity{
...@@ -50,7 +50,7 @@ newEntity{ ...@@ -50,7 +50,7 @@ newEntity{
rarity = 5, rarity = 5,
cost = 4, cost = 4,
wielder = { wielder = {
resists={[DamageType.LIGHTNING] = resolvers.mbonus_material(20, 10)}, resists={[DamageType.LIGHTNING] = resolvers.mbonus_material(20, 10, function(e, v) return v * 0.15 end)},
}, },
} }
newEntity{ newEntity{
...@@ -59,7 +59,7 @@ newEntity{ ...@@ -59,7 +59,7 @@ newEntity{
rarity = 5, rarity = 5,
cost = 4, cost = 4,
wielder = { wielder = {
resists={[DamageType.NATURE] = resolvers.mbonus_material(20, 10)}, resists={[DamageType.NATURE] = resolvers.mbonus_material(20, 10, function(e, v) return v * 0.15 end)},
}, },
} }
...@@ -70,7 +70,7 @@ newEntity{ ...@@ -70,7 +70,7 @@ newEntity{
rarity = 8, rarity = 8,
cost = 8, cost = 8,
wielder = { wielder = {
on_melee_hit={[DamageType.FIRE] = resolvers.mbonus_material(7, 3)}, on_melee_hit={[DamageType.FIRE] = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.6 end)},
}, },
} }
newEntity{ newEntity{
...@@ -79,7 +79,7 @@ newEntity{ ...@@ -79,7 +79,7 @@ newEntity{
rarity = 8, rarity = 8,
cost = 10, cost = 10,
wielder = { wielder = {
on_melee_hit={[DamageType.ICE] = resolvers.mbonus_material(4, 3)}, on_melee_hit={[DamageType.ICE] = resolvers.mbonus_material(4, 3, function(e, v) return v * 0.7 end)},
}, },
} }
newEntity{ newEntity{
...@@ -88,7 +88,7 @@ newEntity{ ...@@ -88,7 +88,7 @@ newEntity{
rarity = 8, rarity = 8,
cost = 8, cost = 8,
wielder = { wielder = {
on_melee_hit={[DamageType.ACID] = resolvers.mbonus_material(7, 3)}, on_melee_hit={[DamageType.ACID] = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.7 end)},
}, },
} }
newEntity{ newEntity{
...@@ -97,7 +97,7 @@ newEntity{ ...@@ -97,7 +97,7 @@ newEntity{
rarity = 8, rarity = 8,
cost = 8, cost = 8,
wielder = { wielder = {
on_melee_hit={[DamageType.LIGHTNING] = resolvers.mbonus_material(7, 3)}, on_melee_hit={[DamageType.LIGHTNING] = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.7 end)},
}, },
} }
...@@ -107,7 +107,7 @@ newEntity{ ...@@ -107,7 +107,7 @@ newEntity{
rarity = 15, rarity = 15,
cost = 20, cost = 20,
wielder = { wielder = {
combat_def=resolvers.mbonus_material(15, 4), combat_def=resolvers.mbonus_material(15, 4, function(e, v) return v * 1 end),
}, },
} }
...@@ -117,6 +117,6 @@ newEntity{ ...@@ -117,6 +117,6 @@ newEntity{
rarity = 15, rarity = 15,
cost = 20, cost = 20,
wielder = { wielder = {
max_life=resolvers.mbonus_material(100, 10), max_life=resolvers.mbonus_material(100, 10, function(e, v) return v * 0.1 end),
}, },
} }
...@@ -25,7 +25,7 @@ newEntity{ ...@@ -25,7 +25,7 @@ newEntity{
rarity = 4, rarity = 4,
cost = 8, cost = 8,
wielder = { wielder = {
combat_spellpower = resolvers.mbonus_material(30, 3), combat_spellpower = resolvers.mbonus_material(30, 3, function(e, v) return v * 0.8 end),
}, },
} }
...@@ -35,7 +35,7 @@ newEntity{ ...@@ -35,7 +35,7 @@ newEntity{
rarity = 3, rarity = 3,
cost = 8, cost = 8,
wielder = { wielder = {
max_mana = resolvers.mbonus_material(100, 10), max_mana = resolvers.mbonus_material(100, 10, function(e, v) return v * 0.2 end),
}, },
} }
...@@ -45,7 +45,7 @@ newEntity{ ...@@ -45,7 +45,7 @@ newEntity{
rarity = 3, rarity = 3,
cost = 8, cost = 8,
wielder = { wielder = {
combat_spellcrit = resolvers.mbonus_material(15, 4), combat_spellcrit = resolvers.mbonus_material(15, 4, function(e, v) return v * 0.4 end),
}, },
} }
...@@ -55,9 +55,9 @@ newEntity{ ...@@ -55,9 +55,9 @@ newEntity{
rarity = 12, rarity = 12,
cost = 45, cost = 45,
wielder = { wielder = {
combat_spellpower = resolvers.mbonus_material(30, 3), combat_spellpower = resolvers.mbonus_material(30, 3, function(e, v) return v * 0.6 end),
max_mana = resolvers.mbonus_material(100, 10), max_mana = resolvers.mbonus_material(100, 10, function(e, v) return v * 0.2 end),
inc_stats = { [Stats.STAT_MAG] = resolvers.mbonus_material(5, 1), [Stats.STAT_WIL] = resolvers.mbonus_material(5, 1) }, inc_stats = { [Stats.STAT_MAG] = resolvers.mbonus_material(5, 1, function(e, v) return v * 3 end), [Stats.STAT_WIL] = resolvers.mbonus_material(5, 1, function(e, v) return v * 3 end) },
}, },
} }
...@@ -67,7 +67,7 @@ newEntity{ ...@@ -67,7 +67,7 @@ newEntity{
rarity = 3, rarity = 3,
cost = 5, cost = 5,
wielder = { wielder = {
inc_damage={ [DamageType.FIRE] = resolvers.mbonus_material(25, 8), }, inc_damage={ [DamageType.FIRE] = resolvers.mbonus_material(25, 8, function(e, v) return v * 0.8 end), },
}, },
} }
...@@ -77,7 +77,7 @@ newEntity{ ...@@ -77,7 +77,7 @@ newEntity{
rarity = 3, rarity = 3,
cost = 5, cost = 5,
wielder = { wielder = {
inc_damage={ [DamageType.COLD] = resolvers.mbonus_material(25, 8), }, inc_damage={ [DamageType.COLD] = resolvers.mbonus_material(25, 8, function(e, v) return v * 0.8 end), },
}, },
} }
...@@ -87,7 +87,7 @@ newEntity{ ...@@ -87,7 +87,7 @@ newEntity{
rarity = 3, rarity = 3,
cost = 5, cost = 5,
wielder = { wielder = {
inc_damage={ [DamageType.ACID] = resolvers.mbonus_material(25, 8), }, inc_damage={ [DamageType.ACID] = resolvers.mbonus_material(25, 8, function(e, v) return v * 0.8 end), },
}, },
} }
...@@ -97,7 +97,7 @@ newEntity{ ...@@ -97,7 +97,7 @@ newEntity{
rarity = 3, rarity = 3,
cost = 5, cost = 5,
wielder = { wielder = {
inc_damage={ [DamageType.LIGHTNING] = resolvers.mbonus_material(25, 8), }, inc_damage={ [DamageType.LIGHTNING] = resolvers.mbonus_material(25, 8, function(e, v) return v * 0.8 end), },
}, },
} }
...@@ -107,7 +107,7 @@ newEntity{ ...@@ -107,7 +107,7 @@ newEntity{
rarity = 3, rarity = 3,
cost = 5, cost = 5,
wielder = { wielder = {
inc_damage={ [DamageType.NATURE] = resolvers.mbonus_material(25, 8), }, inc_damage={ [DamageType.NATURE] = resolvers.mbonus_material(25, 8, function(e, v) return v * 0.8 end), },
}, },
} }
...@@ -117,6 +117,6 @@ newEntity{ ...@@ -117,6 +117,6 @@ newEntity{
rarity = 3, rarity = 3,
cost = 5, cost = 5,
wielder = { wielder = {
inc_damage={ [DamageType.BLIGHT] = resolvers.mbonus_material(25, 8), }, inc_damage={ [DamageType.BLIGHT] = resolvers.mbonus_material(25, 8, function(e, v) return v * 0.8 end), },
}, },
} }
...@@ -22,7 +22,7 @@ newEntity{ ...@@ -22,7 +22,7 @@ newEntity{
level_range = {1, 50}, level_range = {1, 50},
rarity = 5, rarity = 5,
wielder = { wielder = {
melee_project={[DamageType.FIRE] = resolvers.mbonus_material(25, 4)}, melee_project={[DamageType.FIRE] = resolvers.mbonus_material(25, 4, function(e, v) return v * 0.64 end)},
}, },
} }
newEntity{ newEntity{
...@@ -30,7 +30,7 @@ newEntity{ ...@@ -30,7 +30,7 @@ newEntity{
level_range = {15, 50}, level_range = {15, 50},
rarity = 5, rarity = 5,
wielder = { wielder = {
melee_project={[DamageType.ICE] = resolvers.mbonus_material(15, 4)}, melee_project={[DamageType.ICE] = resolvers.mbonus_material(15, 4, function(e, v) return v * 0.7 end)},
}, },
} }
newEntity{ newEntity{
...@@ -38,7 +38,7 @@ newEntity{ ...@@ -38,7 +38,7 @@ newEntity{
level_range = {1, 50}, level_range = {1, 50},
rarity = 5, rarity = 5,
wielder = { wielder = {
melee_project={[DamageType.ACID] = resolvers.mbonus_material(25, 4)}, melee_project={[DamageType.ACID] = resolvers.mbonus_material(25, 4, function(e, v) return v * 0.7 end)},
}, },
} }
newEntity{ newEntity{
...@@ -46,7 +46,7 @@ newEntity{ ...@@ -46,7 +46,7 @@ newEntity{
level_range = {1, 50}, level_range = {1, 50},
rarity = 5, rarity = 5,
wielder = { wielder = {
melee_project={[DamageType.LIGHTNING] = resolvers.mbonus_material(25, 4)}, melee_project={[DamageType.LIGHTNING] = resolvers.mbonus_material(25, 4, function(e, v) return v * 0.7 end)},
}, },
} }
newEntity{ newEntity{
...@@ -54,7 +54,7 @@ newEntity{ ...@@ -54,7 +54,7 @@ newEntity{
level_range = {1, 50}, level_range = {1, 50},
rarity = 5, rarity = 5,
wielder = { wielder = {
melee_project={[DamageType.POISON] = resolvers.mbonus_material(45, 6)}, melee_project={[DamageType.POISON] = resolvers.mbonus_material(45, 6, function(e, v) return v * 0.5 end)},
}, },
} }
...@@ -63,7 +63,7 @@ newEntity{ ...@@ -63,7 +63,7 @@ newEntity{
level_range = {10, 50}, level_range = {10, 50},
rarity = 5, rarity = 5,
wielder = { wielder = {
melee_project={[DamageType.SLIME] = resolvers.mbonus_material(45, 6)}, melee_project={[DamageType.SLIME] = resolvers.mbonus_material(45, 6, function(e, v) return v * 0.9 end)},
}, },
} }
...@@ -72,7 +72,7 @@ newEntity{ ...@@ -72,7 +72,7 @@ newEntity{
level_range = {1, 50}, level_range = {1, 50},
rarity = 3, rarity = 3,
cost = 4, cost = 4,
combat={atk = resolvers.mbonus_material(20, 2)}, combat={atk = resolvers.mbonus_material(20, 2, function(e, v) return v * 0.3 end)},
} }
newEntity{ newEntity{
...@@ -80,7 +80,7 @@ newEntity{ ...@@ -80,7 +80,7 @@ newEntity{
level_range = {1, 50}, level_range = {1, 50},
rarity = 3, rarity = 3,
cost = 6, cost = 6,
combat={apr = resolvers.mbonus_material(15, 1)}, combat={apr = resolvers.mbonus_material(15, 1, function(e, v) return v * 0.3 end)},
} }
newEntity{ newEntity{
...@@ -90,10 +90,10 @@ newEntity{ ...@@ -90,10 +90,10 @@ newEntity{
cost = 35, cost = 35,
wielder = { wielder = {
melee_project={ melee_project={
[DamageType.FIRE] = resolvers.mbonus_material(25, 4), [DamageType.FIRE] = resolvers.mbonus_material(25, 4, function(e, v) return v * 0.7 end),
[DamageType.ICE] = resolvers.mbonus_material(15, 4), [DamageType.ICE] = resolvers.mbonus_material(15, 4, function(e, v) return v * 0.7 end),
[DamageType.ACID] = resolvers.mbonus_material(25, 4), [DamageType.ACID] = resolvers.mbonus_material(25, 4, function(e, v) return v * 0.7 end),
[DamageType.LIGHTNING] = resolvers.mbonus_material(25, 4), [DamageType.LIGHTNING] = resolvers.mbonus_material(25, 4, function(e, v) return v * 0.7 end),
}, },
}, },
} }
...@@ -104,6 +104,6 @@ newEntity{ ...@@ -104,6 +104,6 @@ newEntity{
rarity = 3, rarity = 3,
cost = 4, cost = 4,
wielder = { wielder = {
inc_damage={ [DamageType.PHYSICAL] = resolvers.mbonus_material(25, 8), }, inc_damage={ [DamageType.PHYSICAL] = resolvers.mbonus_material(25, 8, function(e, v) return v * 0.8 end), },
}, },
} }
...@@ -23,7 +23,7 @@ quickEntity('T', {name='tree', display='#', color=colors.LIGHT_GREEN, block_move ...@@ -23,7 +23,7 @@ quickEntity('T', {name='tree', display='#', color=colors.LIGHT_GREEN, block_move
quickEntity('o', {name='fountain', display='~', color=colors.BLUE, block_move=true, image="terrain/river.png"}) quickEntity('o', {name='fountain', display='~', color=colors.BLUE, block_move=true, image="terrain/river.png"})
quickEntity(' ', {name='grass', display='.', color=colors.LIGHT_GREEN, image="terrain/grass.png"}) quickEntity(' ', {name='grass', display='.', color=colors.LIGHT_GREEN, image="terrain/grass.png"})
quickEntity('2', {show_tooltip=true, name="Jewelry", display='2', color=colors.BLUE, resolvers.store("ANGOLWEN_JEWELRY"), image="terrain/terrain/wood_store_gem.png"}) quickEntity('2', {show_tooltip=true, name="Jewelry", display='2', color=colors.BLUE, resolvers.store("ANGOLWEN_JEWELRY"), image="terrain/wood_store_gem.png"})
quickEntity('4', {show_tooltip=true, name="Alchemist", display='4', color=colors.LIGHT_BLUE, resolvers.store("POTION"), image="terrain/wood_store_potion.png"}) quickEntity('4', {show_tooltip=true, name="Alchemist", display='4', color=colors.LIGHT_BLUE, resolvers.store("POTION"), image="terrain/wood_store_potion.png"})
quickEntity('5', {show_tooltip=true, name="Scribe", display='5', color=colors.WHITE, resolvers.store("SCROLL"), image="terrain/wood_store_book.png"}) quickEntity('5', {show_tooltip=true, name="Scribe", display='5', color=colors.WHITE, resolvers.store("SCROLL"), image="terrain/wood_store_book.png"})
quickEntity('6', {show_tooltip=true, name="Staves & Wands", display='6', color=colors.RED, resolvers.store("ANGOLWEN_STAFF_WAND"), image="terrain/wood_store_closed.png"}) quickEntity('6', {show_tooltip=true, name="Staves & Wands", display='6', color=colors.RED, resolvers.store("ANGOLWEN_STAFF_WAND"), image="terrain/wood_store_closed.png"})
......
...@@ -164,11 +164,26 @@ resolvers.mbonus_max_level = 60 ...@@ -164,11 +164,26 @@ resolvers.mbonus_max_level = 60
--- Random bonus based on level and material quality --- Random bonus based on level and material quality
resolvers.current_level = 1 resolvers.current_level = 1
function resolvers.mbonus_material(max, add) function resolvers.mbonus_material(max, add, pricefct)
return {__resolver="mbonus_material", max, add} return {__resolver="mbonus_material", max, add, pricefct}
end end
function resolvers.calc.mbonus_material(t, e) function resolvers.calc.mbonus_material(t, e)
local ml = e.material_level or 1 local ml = e.material_level or 1
print("RESOLVER MBONUS MATERIAL", ml, math.ceil(t[1] * ml / 5)) local v = math.ceil(rng.mbonus(t[1], resolvers.current_level, resolvers.mbonus_max_level) * ml / 5) + (t[2] or 0)
return math.ceil(rng.mbonus(t[1], resolvers.current_level, resolvers.mbonus_max_level) * ml / 5) + (t[2] or 0)
if e.cost and t[3] then
local ap, nv = t[3](e, v)
e.cost = e.cost + ap
v = nv or v
end
return v
end
--- Generic resolver, takes a function, executes at the end
function resolvers.genericlast(fct)
return {__resolver="genericlast", __resolve_last=true, fct}
end
function resolvers.calc.genericlast(t, e)
return t[1](e)
end 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