From d116705b20290517e817b219d9d3f58a0a62bd46 Mon Sep 17 00:00:00 2001 From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54> Date: Tue, 9 Mar 2010 10:20:08 +0000 Subject: [PATCH] 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 --- game/engine/dialogs/ShowStore.lua | 2 +- game/modules/tome/class/Actor.lua | 13 ++-- game/modules/tome/class/Object.lua | 20 ++++- game/modules/tome/class/interface/Combat.lua | 5 ++ .../tome/data/general/objects/2haxes.lua | 1 + .../tome/data/general/objects/2hmaces.lua | 1 + .../tome/data/general/objects/2hswords.lua | 1 + .../tome/data/general/objects/bows.lua | 10 +-- .../data/general/objects/cloth-armors.lua | 1 + .../tome/data/general/objects/egos/lite.lua | 19 +++++ .../data/general/objects/egos/scrolls.lua | 10 ++- .../tome/data/general/objects/egos/shield.lua | 56 ++++++++++++++ .../tome/data/general/objects/egos/staves.lua | 18 ++++- .../tome/data/general/objects/egos/weapon.lua | 73 ++++++++++++++++--- .../data/general/objects/heavy-armors.lua | 1 + .../tome/data/general/objects/heavy-boots.lua | 1 + .../tome/data/general/objects/helms.lua | 1 + .../tome/data/general/objects/knifes.lua | 2 +- .../data/general/objects/leather-boots.lua | 1 + .../data/general/objects/leather-caps.lua | 1 + .../data/general/objects/light-armors.lua | 1 + .../tome/data/general/objects/lites.lua | 1 + .../data/general/objects/massive-armors.lua | 1 + .../tome/data/general/objects/shields.lua | 2 + .../tome/data/general/objects/slings.lua | 10 +-- .../tome/data/general/objects/staves.lua | 2 +- .../tome/data/general/objects/swords.lua | 2 +- .../tome/data/general/stores/basic.lua | 31 ++++++++ game/modules/tome/data/maps/towns/bree.lua | 4 +- 29 files changed, 254 insertions(+), 37 deletions(-) create mode 100644 game/modules/tome/data/general/objects/egos/lite.lua create mode 100644 game/modules/tome/data/general/objects/egos/shield.lua diff --git a/game/engine/dialogs/ShowStore.lua b/game/engine/dialogs/ShowStore.lua index 949312d61c..73392ca187 100644 --- a/game/engine/dialogs/ShowStore.lua +++ b/game/engine/dialogs/ShowStore.lua @@ -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) diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index 8b99fcd8bb..15a1665339 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -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 diff --git a/game/modules/tome/class/Object.lua b/game/modules/tome/class/Object.lua index a2ee2c70ba..360e4917f9 100644 --- a/game/modules/tome/class/Object.lua +++ b/game/modules/tome/class/Object.lua @@ -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 diff --git a/game/modules/tome/class/interface/Combat.lua b/game/modules/tome/class/interface/Combat.lua index 2a8816185f..2fa0ac8938 100644 --- a/game/modules/tome/class/interface/Combat.lua +++ b/game/modules/tome/class/interface/Combat.lua @@ -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) diff --git a/game/modules/tome/data/general/objects/2haxes.lua b/game/modules/tome/data/general/objects/2haxes.lua index ceea352862..8e6c95b843 100644 --- a/game/modules/tome/data/general/objects/2haxes.lua +++ b/game/modules/tome/data/general/objects/2haxes.lua @@ -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", diff --git a/game/modules/tome/data/general/objects/2hmaces.lua b/game/modules/tome/data/general/objects/2hmaces.lua index 3451b6d959..5596f61ecf 100644 --- a/game/modules/tome/data/general/objects/2hmaces.lua +++ b/game/modules/tome/data/general/objects/2hmaces.lua @@ -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), } diff --git a/game/modules/tome/data/general/objects/2hswords.lua b/game/modules/tome/data/general/objects/2hswords.lua index d6fff0b3e6..467530d595 100644 --- a/game/modules/tome/data/general/objects/2hswords.lua +++ b/game/modules/tome/data/general/objects/2hswords.lua @@ -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", diff --git a/game/modules/tome/data/general/objects/bows.lua b/game/modules/tome/data/general/objects/bows.lua index adc673ca5b..71408052c3 100644 --- a/game/modules/tome/data/general/objects/bows.lua +++ b/game/modules/tome/data/general/objects/bows.lua @@ -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, diff --git a/game/modules/tome/data/general/objects/cloth-armors.lua b/game/modules/tome/data/general/objects/cloth-armors.lua index ebbf0d2931..d0d056dd8f 100644 --- a/game/modules/tome/data/general/objects/cloth-armors.lua +++ b/game/modules/tome/data/general/objects/cloth-armors.lua @@ -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, diff --git a/game/modules/tome/data/general/objects/egos/lite.lua b/game/modules/tome/data/general/objects/egos/lite.lua new file mode 100644 index 0000000000..00a64a4157 --- /dev/null +++ b/game/modules/tome/data/general/objects/egos/lite.lua @@ -0,0 +1,19 @@ +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, + }, +} diff --git a/game/modules/tome/data/general/objects/egos/scrolls.lua b/game/modules/tome/data/general/objects/egos/scrolls.lua index cf5d87cc3c..d789a2f28e 100644 --- a/game/modules/tome/data/general/objects/egos/scrolls.lua +++ b/game/modules/tome/data/general/objects/egos/scrolls.lua @@ -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), } diff --git a/game/modules/tome/data/general/objects/egos/shield.lua b/game/modules/tome/data/general/objects/egos/shield.lua new file mode 100644 index 0000000000..4863ce2d59 --- /dev/null +++ b/game/modules/tome/data/general/objects/egos/shield.lua @@ -0,0 +1,56 @@ +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), + }, +} diff --git a/game/modules/tome/data/general/objects/egos/staves.lua b/game/modules/tome/data/general/objects/egos/staves.lua index 22530c76c2..e6be3b4c6b 100644 --- a/game/modules/tome/data/general/objects/egos/staves.lua +++ b/game/modules/tome/data/general/objects/egos/staves.lua @@ -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), diff --git a/game/modules/tome/data/general/objects/egos/weapon.lua b/game/modules/tome/data/general/objects/egos/weapon.lua index 1910ab2b0f..2bfd503da2 100644 --- a/game/modules/tome/data/general/objects/egos/weapon.lua +++ b/game/modules/tome/data/general/objects/egos/weapon.lua @@ -1,20 +1,60 @@ ---[[ 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), + }, }, } diff --git a/game/modules/tome/data/general/objects/heavy-armors.lua b/game/modules/tome/data/general/objects/heavy-armors.lua index 3935e35ecb..af140a120b 100644 --- a/game/modules/tome/data/general/objects/heavy-armors.lua +++ b/game/modules/tome/data/general/objects/heavy-armors.lua @@ -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, diff --git a/game/modules/tome/data/general/objects/heavy-boots.lua b/game/modules/tome/data/general/objects/heavy-boots.lua index b0f967e8ef..f66a0ff5f0 100644 --- a/game/modules/tome/data/general/objects/heavy-boots.lua +++ b/game/modules/tome/data/general/objects/heavy-boots.lua @@ -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, diff --git a/game/modules/tome/data/general/objects/helms.lua b/game/modules/tome/data/general/objects/helms.lua index 37a9d72b85..a92093e821 100644 --- a/game/modules/tome/data/general/objects/helms.lua +++ b/game/modules/tome/data/general/objects/helms.lua @@ -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, diff --git a/game/modules/tome/data/general/objects/knifes.lua b/game/modules/tome/data/general/objects/knifes.lua index 910ed99528..682971b387 100644 --- a/game/modules/tome/data/general/objects/knifes.lua +++ b/game/modules/tome/data/general/objects/knifes.lua @@ -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", diff --git a/game/modules/tome/data/general/objects/leather-boots.lua b/game/modules/tome/data/general/objects/leather-boots.lua index e767153219..ec58a87d5b 100644 --- a/game/modules/tome/data/general/objects/leather-boots.lua +++ b/game/modules/tome/data/general/objects/leather-boots.lua @@ -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, diff --git a/game/modules/tome/data/general/objects/leather-caps.lua b/game/modules/tome/data/general/objects/leather-caps.lua index eac0a459c2..b81a50cd37 100644 --- a/game/modules/tome/data/general/objects/leather-caps.lua +++ b/game/modules/tome/data/general/objects/leather-caps.lua @@ -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, diff --git a/game/modules/tome/data/general/objects/light-armors.lua b/game/modules/tome/data/general/objects/light-armors.lua index 4ff9924c4c..19cdc1597b 100644 --- a/game/modules/tome/data/general/objects/light-armors.lua +++ b/game/modules/tome/data/general/objects/light-armors.lua @@ -2,6 +2,7 @@ newEntity{ define_as = "BASE_LIGHT_ARMOR", slot = "BODY", type = "armor", subtype="light", + add_name = " (#ARMOR#)", display = "[", color=colors.SLATE, encumber = 17, rarity = 5, diff --git a/game/modules/tome/data/general/objects/lites.lua b/game/modules/tome/data/general/objects/lites.lua index 455446745c..5f7add9982 100644 --- a/game/modules/tome/data/general/objects/lites.lua +++ b/game/modules/tome/data/general/objects/lites.lua @@ -4,6 +4,7 @@ newEntity{ type = "lite", subtype="lite", display = "~", desc = [[Lite up the dark places of the world!]], + egos = "/data/general/objects/egos/lite.lua", egos_chance = resolvers.mbonus(15, 3), } newEntity{ base = "BASE_LITE", diff --git a/game/modules/tome/data/general/objects/massive-armors.lua b/game/modules/tome/data/general/objects/massive-armors.lua index a64597e3b4..6a16aa6c55 100644 --- a/game/modules/tome/data/general/objects/massive-armors.lua +++ b/game/modules/tome/data/general/objects/massive-armors.lua @@ -4,6 +4,7 @@ newEntity{ define_as = "BASE_MASSIVE_ARMOR", slot = "BODY", type = "armor", subtype="massive", + add_name = " (#ARMOR#)", display = "[", color=colors.SLATE, require = { talent = { Talents.T_MASSIVE_ARMOUR_TRAINING }, }, encumber = 17, diff --git a/game/modules/tome/data/general/objects/shields.lua b/game/modules/tome/data/general/objects/shields.lua index 730793b14b..a534a7bf53 100644 --- a/game/modules/tome/data/general/objects/shields.lua +++ b/game/modules/tome/data/general/objects/shields.lua @@ -2,9 +2,11 @@ newEntity{ define_as = "BASE_SHIELD", slot = "OFFHAND", type = "armor", subtype="shield", + add_name = " (#ARMOR#)", display = ")", color=colors.UMBER, encumber = 7, desc = [[Handheld deflection devices]], + egos = "/data/general/objects/egos/shield.lua", egos_chance = resolvers.mbonus(40, 5), } -- All shields have a "special_combat" field, this is used to compute damage mde with them diff --git a/game/modules/tome/data/general/objects/slings.lua b/game/modules/tome/data/general/objects/slings.lua index 81d5122168..3eb6b07258 100644 --- a/game/modules/tome/data/general/objects/slings.lua +++ b/game/modules/tome/data/general/objects/slings.lua @@ -81,7 +81,7 @@ newEntity{ base = "BASE_SHOT", name = "iron shot", level_range = {1, 10}, require = { stat = { dex=11 }, }, - cost = 5, + cost = 0.05, combat = { dam = resolvers.rngavg(7,12), apr = 1, @@ -94,7 +94,7 @@ newEntity{ base = "BASE_SHOT", name = "steel shot", level_range = {10, 20}, require = { stat = { dex=16 }, }, - cost = 10, + cost = 0.10, combat = { dam = resolvers.rngavg(15,22), apr = 2, @@ -107,7 +107,7 @@ newEntity{ base = "BASE_SHOT", name = "dwarven-steel shot", level_range = {20, 30}, require = { stat = { dex=24 }, }, - cost = 15, + cost = 0.15, combat = { dam = resolvers.rngavg(28,37), apr = 3, @@ -120,7 +120,7 @@ newEntity{ base = "BASE_SHOT", name = "galvorn shot", level_range = {30, 40}, require = { stat = { dex=35 }, }, - cost = 25, + cost = 0.25, combat = { dam = resolvers.rngavg(40,47), apr = 5, @@ -133,7 +133,7 @@ newEntity{ base = "BASE_SHOT", name = "mithril shot", level_range = {40, 50}, require = { stat = { dex=48 }, }, - cost = 35, + cost = 0.35, combat = { dam = resolvers.rngavg(50, 57), apr = 6, diff --git a/game/modules/tome/data/general/objects/staves.lua b/game/modules/tome/data/general/objects/staves.lua index 2a77fe31d9..5fc7efe78c 100644 --- a/game/modules/tome/data/general/objects/staves.lua +++ b/game/modules/tome/data/general/objects/staves.lua @@ -7,7 +7,7 @@ newEntity{ encumber = 5, rarity = 3, desc = [[Staves designed for wielders of magic, by the greats of the art.]], - egos = "/data/general/objects/egos/staves.lua", egos_chance = 100,--resolvers.mbonus(40, 5), + egos = "/data/general/objects/egos/staves.lua", egos_chance = resolvers.mbonus(40, 5), } newEntity{ base = "BASE_STAFF", diff --git a/game/modules/tome/data/general/objects/swords.lua b/game/modules/tome/data/general/objects/swords.lua index 315ffdff21..73b03ced05 100644 --- a/game/modules/tome/data/general/objects/swords.lua +++ b/game/modules/tome/data/general/objects/swords.lua @@ -8,7 +8,7 @@ newEntity{ rarity = 3, combat = { talented = "sword", damrange = 1.4}, 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_LONGSWORD", diff --git a/game/modules/tome/data/general/stores/basic.lua b/game/modules/tome/data/general/stores/basic.lua index 671bdb7617..e7cd2e4b6c 100644 --- a/game/modules/tome/data/general/stores/basic.lua +++ b/game/modules/tome/data/general/stores/basic.lua @@ -16,6 +16,37 @@ newEntity{ }, } +newEntity{ + define_as = "ARMOR", + name = "armour smith", + display = '2', color=colors.UMBER, + store = { + restock_after = 200, + buy_percent = 10, + min_fill = 10, + max_fill = 20, + filters = { + {type="armor", id=true}, + }, + }, +} + +newEntity{ + define_as = "WEAPON", + name = "weapon mith", + display = '3', color=colors.UMBER, + store = { + restock_after = 200, + buy_percent = 10, + min_fill = 10, + max_fill = 20, + filters = { + {type="weapon", id=true}, + {type="ammo", id=true}, + }, + }, +} + newEntity{ define_as = "POTION", name = "alchemist store", diff --git a/game/modules/tome/data/maps/towns/bree.lua b/game/modules/tome/data/maps/towns/bree.lua index a5507e9c18..6ea3c50e9b 100644 --- a/game/modules/tome/data/maps/towns/bree.lua +++ b/game/modules/tome/data/maps/towns/bree.lua @@ -14,8 +14,8 @@ quickEntity('-', {name='grass', display='.', color=colors.LIGHT_GREEN, image="te quickEntity('^', {name='hills', display='^', color=colors.SLATE, image="terrain/mountain.png", block_move=true, block_sight=true}) quickEntity('1', {name="Closed store", display='1', color=colors.LIGHT_UMBER, block_move=true, block_sight=true, image="terrain/wood_store_closed.png"}) -quickEntity('2', {name="Closed store", display='2', color=colors.LIGHT_UMBER, block_move=true, block_sight=true, image="terrain/wood_store_closed.png"}) -quickEntity('3', {name="Closed store", display='3', color=colors.LIGHT_UMBER, block_move=true, block_sight=true, image="terrain/wood_store_closed.png"}) +quickEntity('2', {name="Armour Smith", display='2', color=colors.UMBER, resolvers.store("ARMOR"), image="terrain/wood_store_armor.png"}) +quickEntity('3', {name="Weapon Smith", display='3', color=colors.UMBER, resolvers.store("WEAPON"), image="terrain/wood_store_weapon.png"}) quickEntity('4', {name="Alchemist", display='4', color=colors.LIGHT_BLUE, resolvers.store("POTION"), image="terrain/wood_store_potion.png"}) quickEntity('5', {name="Scribe", display='5', color=colors.WHITE, resolvers.store("SCROLL"), image="terrain/wood_store_book.png"}) quickEntity('6', {name="Closed store", display='6', color=colors.LIGHT_UMBER, block_move=true, block_sight=true, image="terrain/wood_store_closed.png"}) -- GitLab