From 398b4d0230a0a1c37e81f9f10ea35bfd23e7e3fb Mon Sep 17 00:00:00 2001 From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54> Date: Thu, 1 Apr 2010 13:24:53 +0000 Subject: [PATCH] * new artifact ring: Elemental Fury * new ring egos: increase damage git-svn-id: http://svn.net-core.org/repos/t-engine4@484 51575b47-30f0-44d4-a5cc-537603b46e54 --- game/modules/tome/class/Game.lua | 2 - game/modules/tome/class/Object.lua | 13 ++++ game/modules/tome/data/damage_types.lua | 5 -- .../tome/data/general/objects/egos/rings.lua | 74 +++++++++++++++++++ .../data/general/objects/world-artifacts.lua | 21 ++++++ .../modules/tome/data/talents/spells/fire.lua | 8 +- 6 files changed, 112 insertions(+), 11 deletions(-) diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua index eb1a7486e1..a05a163d72 100644 --- a/game/modules/tome/class/Game.lua +++ b/game/modules/tome/class/Game.lua @@ -35,8 +35,6 @@ local QuitDialog = require "mod.dialogs.Quit" module(..., package.seeall, class.inherit(engine.GameTurnBased, engine.interface.GameMusic)) -collectgarbage("stop") - function _M:init() engine.GameTurnBased.init(self, engine.KeyBind.new(), 1000, 100) engine.interface.GameMusic.init(self) diff --git a/game/modules/tome/class/Object.lua b/game/modules/tome/class/Object.lua index 13b9fd472a..ea6b77219a 100644 --- a/game/modules/tome/class/Object.lua +++ b/game/modules/tome/class/Object.lua @@ -68,6 +68,9 @@ function _M:descAttribute(attr) elseif attr == "STATBONUS" then local stat, i = next(self.wielder.inc_stats) return i > 0 and "+"..i or tostring(i) + elseif attr == "DAMBONUS" then + local stat, i = next(self.wielder.inc_damage) + return (i > 0 and "+"..i or tostring(i)).."%" elseif attr == "COMBAT" then local c = self.combat return c.dam.."-"..(c.dam*(c.damrange or 1.1)).." dam, "..(c.apr or 0).." apr" @@ -132,6 +135,8 @@ function _M:getDesc() desc[#desc+1] = ("#67AD00#%0.2f Encumbrance."):format(self.encumber) end + desc[#desc+1] = ("Type: %s / %s"):format(self.type, self.subtype) + -- Stop here if unided if not self:isIdentified() then return table.concat(desc, "\n") end @@ -182,6 +187,14 @@ function _M:getDesc() desc[#desc+1] = ("Increases resistances: %s."):format(table.concat(rs, ',')) end + if w.inc_damage then + local rs = {} + for res, i in pairs(w.inc_damage) do + rs[#rs+1] = ("%d%% %s"):format(i, DamageType.dam_def[res].name) + end + desc[#desc+1] = ("Increases damage type: %s."):format(table.concat(rs, ',')) + end + if w.esp then local rs = {} for type, i in pairs(w.esp) do diff --git a/game/modules/tome/data/damage_types.lua b/game/modules/tome/data/damage_types.lua index 75d82b2c13..950d985072 100644 --- a/game/modules/tome/data/damage_types.lua +++ b/game/modules/tome/data/damage_types.lua @@ -114,11 +114,6 @@ newDamageType{ end, } --- Irresistible fire damage -newDamageType{ - name = "netherflame", type = "NETHERFLAME", text_color = "#FIREBRICK#", -} - -- Blinds newDamageType{ name = "blindness", type = "BLIND", diff --git a/game/modules/tome/data/general/objects/egos/rings.lua b/game/modules/tome/data/general/objects/egos/rings.lua index 346a46f5da..7b6e35c116 100644 --- a/game/modules/tome/data/general/objects/egos/rings.lua +++ b/game/modules/tome/data/general/objects/egos/rings.lua @@ -167,3 +167,77 @@ newEntity{ inc_stats = { [Stats.STAT_CON] = resolvers.mbonus(8, 2) }, }, } + +-------------------------- Damage increase rings +newEntity{ + name = " of massacre (#DAMBONUS#)", + level_range = {6, 50}, + rarity = 1, + cost = 4, identified=true, + wielder = { + inc_damage = { [DamageType.PHYSICAL] = resolvers.mbonus(15, 5) }, + }, +} +newEntity{ + name = " of arcane power (#DAMBONUS#)", + level_range = {6, 50}, + rarity = 1, + cost = 4, identified=true, + wielder = { + inc_damage = { [DamageType.ARCANE] = resolvers.mbonus(15, 5) }, + }, +} +newEntity{ + name = " of burning (#DAMBONUS#)", + level_range = {6, 50}, + rarity = 1, + cost = 4, identified=true, + wielder = { + inc_damage = { [DamageType.FIRE] = resolvers.mbonus(15, 5) }, + }, +} +newEntity{ + name = " of freezing (#DAMBONUS#)", + level_range = {6, 50}, + rarity = 1, + cost = 4, identified=true, + wielder = { + inc_damage = { [DamageType.COLD] = resolvers.mbonus(15, 5) }, + }, +} +newEntity{ + name = " of nature's blessing (#DAMBONUS#)", + level_range = {6, 50}, + rarity = 1, + cost = 4, identified=true, + wielder = { + inc_damage = { [DamageType.NATURE] = resolvers.mbonus(15, 5) }, + }, +} +newEntity{ + name = " of blight (#DAMBONUS#)", + level_range = {6, 50}, + rarity = 1, + cost = 4, identified=true, + wielder = { + inc_damage = { [DamageType.BLIGHT] = resolvers.mbonus(15, 5) }, + }, +} +newEntity{ + name = " of shock (#DAMBONUS#)", + level_range = {6, 50}, + rarity = 1, + cost = 4, identified=true, + wielder = { + inc_damage = { [DamageType.LIGHTNING] = resolvers.mbonus(15, 5) }, + }, +} +newEntity{ + name = " of corrosion (#DAMBONUS#)", + level_range = {6, 50}, + rarity = 1, + cost = 4, identified=true, + wielder = { + inc_damage = { [DamageType.ACID] = resolvers.mbonus(15, 5) }, + }, +} diff --git a/game/modules/tome/data/general/objects/world-artifacts.lua b/game/modules/tome/data/general/objects/world-artifacts.lua index a1f4f27920..30eb9b550b 100644 --- a/game/modules/tome/data/general/objects/world-artifacts.lua +++ b/game/modules/tome/data/general/objects/world-artifacts.lua @@ -64,6 +64,27 @@ newEntity{ base = "BASE_RING", }, } +newEntity{ base = "BASE_RING", + unique = true, + name = "Elemental Fury", color = colors.PURPLE, + unided_name = "multi-hued ring", + desc = [[This ring shines with many colors.]], + level_range = {15, 30}, + rarity = 150, + cost = 500, + + wielder = { + inc_stats = { [Stats.STAT_CUN] = 3, }, + inc_damage = { + [DamageType.ARCANE] = 15, + [DamageType.FIRE] = 15, + [DamageType.COLD] = 15, + [DamageType.ACID] = 15, + [DamageType.LIGHTNING] = 15, + }, + }, +} + newEntity{ base = "BASE_LITE", unique = true, name = "Phial of Galadriel", diff --git a/game/modules/tome/data/talents/spells/fire.lua b/game/modules/tome/data/talents/spells/fire.lua index dff08bf1ee..d9f83132eb 100644 --- a/game/modules/tome/data/talents/spells/fire.lua +++ b/game/modules/tome/data/talents/spells/fire.lua @@ -62,12 +62,12 @@ newTalent{ local tg = {type="ball", range=self:getTalentRange(t), radius=1 + self:getTalentLevelRaw(t), friendlyfire=self:spellFriendlyFire(), talent=t} local x, y = self:getTarget(tg) if not x or not y then return nil end - self:project(tg, x, y, DamageType.FIRE, self:spellCrit(28 + self:combatSpellpower(0.4) * self:getTalentLevel(t)), {type="flame"}) + self:project(tg, x, y, DamageType.FIRE, self:spellCrit(28 + self:combatSpellpower(0.6) * self:getTalentLevel(t)), {type="flame"}) return true end, info = function(self, t) return ([[Conjures up a flash of fire doing %0.2f fire damage in a radius of %d. - The damage will increase with the Magic stat]]):format(28 + self:combatSpellpower(0.4) * self:getTalentLevel(t), 1 + self:getTalentLevelRaw(t)) + The damage will increase with the Magic stat]]):format(28 + self:combatSpellpower(0.6) * self:getTalentLevel(t), 1 + self:getTalentLevelRaw(t)) end, } @@ -93,7 +93,7 @@ newTalent{ -- Add a lasting map effect game.level.map:addEffect(self, x, y, duration, - DamageType.NETHERFLAME, dam, + DamageType.FIRE, dam, radius, 5, nil, engine.Entity.new{alpha=100, display='', color_br=180, color_bg=30, color_bb=60}, @@ -102,7 +102,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Raging flames burn foes and allies alike doing %0.2f netherflame damage in a radius of 5 each turn for %d turns. + return ([[Raging flames burn foes and allies alike doing %0.2f fire damage in a radius of 5 each turn for %d turns. The damage and duration will increase with the Magic stat]]):format(15 + self:combatSpellpower(0.15) * self:getTalentLevel(t), 5 + self:getTalentLevel(t)) end, } -- GitLab