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

armor & weapon smiths in bree

added egos for lites, weapons, shields
adjusted costs for arrows
armour now displays inline, just like weapon's damage


git-svn-id: http://svn.net-core.org/repos/t-engine4@385 51575b47-30f0-44d4-a5cc-537603b46e54
parent 1540f171
No related branches found
No related tags found
No related merge requests found
Showing
with 209 additions and 28 deletions
......@@ -17,7 +17,7 @@ function _M:init(title, store_inven, actor_inven, store_filter, actor_filter, ac
self.list = self.store_list
self.sel = 1
self.scroll = 1
self.max = math.floor((self.ih - 5) / self.font_h) - 1
self.max = math.floor((self.ih * 0.8 - 5) / self.font_h) - 1
self:keyCommands({
__TEXTINPUT = function(c)
......
......@@ -60,6 +60,7 @@ function _M:init(t, no_default)
t.esp = t.esp or {range=10}
t.on_melee_hit = t.on_melee_hit or {}
t.melee_project = t.melee_project or {}
-- Resistances
t.resists = t.resists or {}
......@@ -650,12 +651,12 @@ end
--- Can the target be applied some effects
-- @param what a string describing what is being tried
function _M:canBe(what)
if what == "poison" and self:attr("poison_immune") then return false end
if what == "cut" and self:attr("cut_immune") then return false end
if what == "blind" and self:attr("blind_immune") then return false end
if what == "stun" and self:attr("stun_immune") then return false end
if what == "knockback" and self:attr("knockback_immune") then return false end
if what == "instakill" and self:attr("instakill_immune") then return false end
if what == "poison" and rng.percent(100 * self:attr("poison_immune")) then return false end
if what == "cut" and rng.percent(100 * self:attr("cut_immune")) then return false end
if what == "blind" and rng.percent(100 * self:attr("blind_immune")) then return false end
if what == "stun" and rng.percent(100 * self:attr("stun_immune")) then return false end
if what == "knockback" and rng.percent(100 * self:attr("knockback_immune")) then return false end
if what == "instakill" and rng.percent(100 * self:attr("instakill_immune")) then return false end
return true
end
......
......@@ -69,6 +69,8 @@ function _M:descAttribute(attr)
elseif attr == "COMBAT" then
local c = self.combat
return c.dam.."-"..(c.dam*(c.damrange or 1.1)).." dam, "..(c.apr or 0).." apr"
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"
elseif attr == "MONEY" then
return ("worth %0.2f"):format(self.money_value / 10)
end
......@@ -151,10 +153,26 @@ function _M:getDesc()
desc[#desc+1] = ("Increases stats: %s."):format(table.concat(dm, ','))
end
if w.melee_project then
local rs = {}
for typ, dam in pairs(w.melee_project) do
rs[#rs+1] = ("%d %s"):format(dam, DamageType.dam_def[typ].name)
end
desc[#desc+1] = ("Damage on hit: %s."):format(table.concat(rs, ','))
end
if w.on_melee_hit then
local rs = {}
for typ, dam in pairs(w.on_melee_hit) do
rs[#rs+1] = ("%d %s"):format(dam, DamageType.dam_def[res].name)
end
desc[#desc+1] = ("Damage when hit: %s."):format(table.concat(rs, ','))
end
if w.resists then
local rs = {}
for res, i in pairs(w.resists) do
rs[#rs+1] = ("%d%% %s"):format(i, DamageType.dam_def[res].name)
rs[#rs+1] = ("%d%% %s"):format(i, DamageType.dam_def[typ].name)
end
desc[#desc+1] = ("Increases resistances: %s."):format(table.concat(rs, ','))
end
......
......@@ -220,6 +220,11 @@ function _M:attackTargetWith(target, weapon, damtype, mult)
game.logSeen(target, "%s misses %s.", self.name:capitalize(), target.name)
end
-- Melee project
if hitted then for typ, dam in pairs(self.melee_project) do
DamageType:get(typ).projector(self, target.x, target.y, typ, dam)
end end
-- Reactive target on hit damage
if hitted then for typ, dam in pairs(target.on_melee_hit) do
DamageType:get(typ).projector(target, self.x, self.y, typ, dam)
......
......@@ -10,6 +10,7 @@ newEntity{
combat = { talented = "axe", damrange = 1.5 },
desc = [[Massive two-handed battleaxes.]],
twohanded = true,
egos = "/data/general/objects/egos/weapon.lua", egos_chance = resolvers.mbonus(40, 5),
}
newEntity{ base = "BASE_BATTLEAXE",
......
......@@ -10,4 +10,5 @@ newEntity{
combat = { talented = "mace", damrange = 1.5 },
desc = [[Massive two-handed maul.]],
twohanded = true,
egos = "/data/general/objects/egos/weapon.lua", egos_chance = resolvers.mbonus(40, 5),
}
......@@ -10,6 +10,7 @@ newEntity{
combat = { talented = "sword", damrange = 1.6 },
desc = [[Massive two-handed swords.]],
twohanded = true,
egos = "/data/general/objects/egos/weapon.lua", egos_chance = resolvers.mbonus(40, 5),
}
newEntity{ base = "BASE_GREATSWORD",
......
......@@ -82,7 +82,7 @@ newEntity{ base = "BASE_ARROW",
name = "elm arrow",
level_range = {1, 10},
require = { stat = { dex=11 }, },
cost = 5,
cost = 0.05,
combat = {
dam = resolvers.rngavg(7,12),
apr = 5,
......@@ -95,7 +95,7 @@ newEntity{ base = "BASE_ARROW",
name = "ash arrow",
level_range = {10, 20},
require = { stat = { dex=16 }, },
cost = 10,
cost = 0.1,
combat = {
dam = resolvers.rngavg(15,22),
apr = 7,
......@@ -108,7 +108,7 @@ newEntity{ base = "BASE_ARROW",
name = "yew arrow",
level_range = {20, 30},
require = { stat = { dex=24 }, },
cost = 15,
cost = 0.15,
combat = {
dam = resolvers.rngavg(28,37),
apr = 10,
......@@ -121,7 +121,7 @@ newEntity{ base = "BASE_ARROW",
name = "elven-wood arrow",
level_range = {30, 40},
require = { stat = { dex=35 }, },
cost = 25,
cost = 0.25,
combat = {
dam = resolvers.rngavg(40,47),
apr = 14,
......@@ -134,7 +134,7 @@ newEntity{ base = "BASE_ARROW",
name = "dragonbone arrow",
level_range = {40, 50},
require = { stat = { dex=48 }, },
cost = 35,
cost = 0.35,
combat = {
dam = resolvers.rngavg(50, 57),
apr = 18,
......
......@@ -2,6 +2,7 @@ newEntity{
define_as = "BASE_CLOTH_ARMOR",
slot = "BODY",
type = "armor", subtype="cloth",
add_name = " (#ARMOR#)",
display = "[", color=colors.SLATE,
encumber = 2,
rarity = 5,
......
newEntity{
name = "bright ", prefix=true,
level_range = {1, 50},
rarity = 5,
cost = 1,
wielder = {
lite=1,
},
}
newEntity{
name = " of clean seeing",
level_range = {10, 50},
rarity = 5,
cost = 1,
wielder = {
blind_immune=0.5,
},
}
......@@ -3,5 +3,13 @@ newEntity{
level_range = {1, 50},
rarity = 4,
cost = 0.5,
acid_proof = true,
fire_proof = true,
}
newEntity{
name = "long ", prefix=true,
level_range = {1, 50},
rarity = 5,
cost = 2,
multicharge = resolvers.mbonus(4, 2),
}
newEntity{
name = "flaming ", prefix=true,
level_range = {1, 50},
rarity = 5,
cost = 8,
wielder = {
on_melee_hit={[DamageType.FIRE] = resolvers.mbonus(7, 3)},
},
}
newEntity{
name = "icy ", prefix=true,
level_range = {1, 50},
rarity = 5,
cost = 10,
wielder = {
on_melee_hit={[DamageType.ICE] = resolvers.mbonus(4, 3)},
},
}
newEntity{
name = "acidic ", prefix=true,
level_range = {1, 50},
rarity = 5,
cost = 8,
wielder = {
on_melee_hit={[DamageType.ACID] = resolvers.mbonus(7, 3)},
},
}
newEntity{
name = "shocking ", prefix=true,
level_range = {1, 50},
rarity = 5,
cost = 8,
wielder = {
on_melee_hit={[DamageType.FIRE] = resolvers.mbonus(7, 3)},
},
}
newEntity{
name = " of deflection",
level_range = {10, 50},
rarity = 15,
cost = 20,
wielder = {
combat_def=resolvers.mbonus(15, 4),
},
}
newEntity{
name = " of resilience",
level_range = {20, 50},
rarity = 15,
cost = 20,
wielder = {
max_life=resolvers.mbonus(100, 10),
},
}
......@@ -4,27 +4,37 @@ newEntity{
name = " of power",
level_range = {1, 50},
rarity = 4,
cost = 5,
cost = 8,
wielder = {
combat_spellpower = resolvers.mbonus(30, 3),
},
}
newEntity{
name = "charged ", prefix=true,
name = "shimmering ", prefix=true,
level_range = {1, 50},
rarity = 3,
cost = 5,
cost = 8,
wielder = {
max_mana = resolvers.mbonus(100, 10),
},
}
newEntity{
name = " of might",
level_range = {1, 50},
rarity = 3,
cost = 8,
wielder = {
combat_spellcrit = resolvers.mbonus(15, 4),
},
}
newEntity{
name = " of wizardry",
level_range = {25, 50},
rarity = 4,
cost = 5,
cost = 25,
wielder = {
combat_spellpower = resolvers.mbonus(30, 3),
max_mana = resolvers.mbonus(100, 10),
......
--[[
newEntity{
name = "flaming ", prefix=true,
level_range = {1, 10},
rarity = 3,
level_range = {1, 50},
rarity = 5,
wielder = {
melee_project={[DamageType.FIRE] = resolvers.mbonus(25, 4)},
},
}
newEntity{
name = "icy ", prefix=true,
level_range = {15, 50},
rarity = 5,
wielder = {
melee_project={[DamageType.ICE] = resolvers.mbonus(15, 4)},
},
}
newEntity{
name = "acidic ", prefix=true,
level_range = {1, 50},
rarity = 5,
wielder = {
melee_project={[DamageType.ACID] = resolvers.mbonus(25, 4)},
},
}
newEntity{
name = "shocking ", prefix=true,
level_range = {1, 50},
rarity = 5,
wielder = {
-- melee_project={[DamageType.FIRE] = 4},
melee_project={[DamageType.LIGHTNING] = resolvers.mbonus(25, 4)},
},
}
--]]
newEntity{
name = "poisonous ", prefix=true,
level_range = {1, 50},
rarity = 5,
wielder = {
melee_project={[DamageType.POISON] = resolvers.mbonus(45, 6)},
},
}
newEntity{
name = "slime-covered ", prefix=true,
level_range = {10, 50},
rarity = 5,
wielder = {
melee_project={[DamageType.SLIME] = resolvers.mbonus(45, 6)},
},
}
newEntity{
name = " of accuracy",
level_range = {1, 50},
rarity = 3,
cost = 10,
cost = 4,
wielder = {
combat_atk = resolvers.mbonus(20),
combat={atk = resolvers.mbonus(20, 2)},
},
}
......@@ -22,8 +62,23 @@ newEntity{
name = "kinetic ", prefix=true,
level_range = {1, 50},
rarity = 3,
cost = 10,
cost = 6,
wielder = {
combat={apr = resolvers.mbonus(15, 1)},
},
}
newEntity{
name = "elemental ", prefix=true,
level_range = {35, 50},
rarity = 25,
cost = 35,
wielder = {
combat_apr = resolvers.mbonus(15),
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),
},
},
}
......@@ -4,6 +4,7 @@ newEntity{
define_as = "BASE_HEAVY_ARMOR",
slot = "BODY",
type = "armor", subtype="heavy",
add_name = " (#ARMOR#)",
display = "[", color=colors.SLATE,
require = { talent = { Talents.T_HEAVY_ARMOUR_TRAINING }, },
encumber = 17,
......
......@@ -4,6 +4,7 @@ newEntity{
define_as = "BASE_HEAVY_BOOTS",
slot = "FEET",
type = "armor", subtype="feet",
add_name = " (#ARMOR#)",
display = "]", color=colors.SLATE,
require = { talent = { Talents.T_HEAVY_ARMOUR_TRAINING }, },
encumber = 3,
......
......@@ -4,6 +4,7 @@ newEntity{
define_as = "BASE_HELM",
slot = "HEAD",
type = "armor", subtype="head",
add_name = " (#ARMOR#)",
display = "]", color=colors.SLATE,
require = { talent = { Talents.T_HEAVY_ARMOUR_TRAINING }, },
encumber = 3,
......
......@@ -8,7 +8,7 @@ newEntity{
rarity = 3,
combat = { talented = "knife", damrange = 1.3 },
desc = [[Sharp, long, and deadly.]],
-- egos = "/data/general/objects/egos/swords.lua", egos_chance = resolvers.mbonus(40, 5),
egos = "/data/general/objects/egos/weapon.lua", egos_chance = resolvers.mbonus(40, 5),
}
newEntity{ base = "BASE_KNIFE",
......
......@@ -2,6 +2,7 @@ newEntity{
define_as = "BASE_LEATHER_BOOT",
slot = "FEET",
type = "armor", subtype="feet",
add_name = " (#ARMOR#)",
display = "]", color=colors.UMBER,
encumber = 2,
rarity = 6,
......
......@@ -2,6 +2,7 @@ newEntity{
define_as = "BASE_LEATHER_CAP",
slot = "HEAD",
type = "armor", subtype="head",
add_name = " (#ARMOR#)",
display = "]", color=colors.UMBER,
encumber = 2,
rarity = 6,
......
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