From d476787a00bd00ea1f0230052d60979d4526f9c6 Mon Sep 17 00:00:00 2001 From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54> Date: Mon, 24 May 2010 23:20:43 +0000 Subject: [PATCH] light damage exists git-svn-id: http://svn.net-core.org/repos/t-engine4@683 51575b47-30f0-44d4-a5cc-537603b46e54 --- game/engine/Zone.lua | 2 +- game/modules/tome/class/interface/Combat.lua | 2 + game/modules/tome/data/damage_types.lua | 9 ++- .../tome/data/general/npcs/sunwall-human.lua | 57 ++++++++++++++++++ game/modules/tome/data/general/npcs/swarm.lua | 6 +- .../tome/data/general/objects/scrolls.lua | 2 +- .../data/general/objects/world-artifacts.lua | 2 +- .../tome/data/talents/spells/phantasm.lua | 2 +- game/special/mainmenu/dialogs/EnterName.lua | 2 +- ideas/zones.ods | Bin 12708 -> 12796 bytes 10 files changed, 74 insertions(+), 10 deletions(-) create mode 100644 game/modules/tome/data/general/npcs/sunwall-human.lua diff --git a/game/engine/Zone.lua b/game/engine/Zone.lua index 14d094d2d2..17eb274a66 100644 --- a/game/engine/Zone.lua +++ b/game/engine/Zone.lua @@ -488,7 +488,7 @@ function _M:newLevel(level_data, lev, old_lev, game) -- Check for connectivity from entrance to exit local a = Astar.new(map, game:getPlayer()) print("[LEVEL GENERATION] checking entrance to exit A*", ux, uy, "to", dx, dy) - if ux and uy and dx and dy and (ux ~= dx or uy ~= dy) and not a:calc(ux, uy, dx, dy) then + if ux and uy and dx and dy and (ux ~= dx or uy ~= dy) and not spot.no_level_connectivity and not a:calc(ux, uy, dx, dy) then print("Level unconnected, no way from entrance to exit", ux, uy, "to", dx, dy) level:removed() return self:newLevel(level_data, lev, old_lev, game) diff --git a/game/modules/tome/class/interface/Combat.lua b/game/modules/tome/class/interface/Combat.lua index cb944d0e62..a85b382029 100644 --- a/game/modules/tome/class/interface/Combat.lua +++ b/game/modules/tome/class/interface/Combat.lua @@ -181,6 +181,7 @@ function _M:archeryShoot(damtype, mult, on_hit, tg, params) local atk, def = self:combatAttack(weapon), target:combatDefense() local dam, apr, armor = self:combatDamage(ammo), self:combatAPR(ammo), target:combatArmor() print("[ATTACK] to ", target.name, " :: ", dam, apr, armor, "::", mult) + if not self:canSee(target) then atk = atk / 3 end -- If hit is over 0 it connects, if it is 0 we still have 50% chance local hitted = false @@ -262,6 +263,7 @@ function _M:attackTargetWith(target, weapon, damtype, mult) -- Does the blow connect? yes .. complex :/ local atk, def = self:combatAttack(weapon), target:combatDefenseRanged() + if not self:canSee(target) then atk = atk / 3 end local dam, apr, armor = self:combatDamage(weapon), self:combatAPR(weapon), target:combatArmor() print("[ATTACK] to ", target.name, " :: ", dam, apr, armor, "::", mult) diff --git a/game/modules/tome/data/damage_types.lua b/game/modules/tome/data/damage_types.lua index 69060956c5..5c2fb759d2 100644 --- a/game/modules/tome/data/damage_types.lua +++ b/game/modules/tome/data/damage_types.lua @@ -144,14 +144,19 @@ newDamageType{ end, } --- Light up the room +-- Lite up the room newDamageType{ - name = "light", type = "LIGHT", text_color = "#YELLOW#", + name = "lite", type = "LITE", text_color = "#YELLOW#", projector = function(src, x, y, type, dam) game.level.map.lites(x, y, true) end, } +-- Light damage +newDamageType{ + name = "light", type = "LIGHT", text_color = "#YELLOW#", +} + -- Darkness damage newDamageType{ name = "darkness", type = "DARKNESS", text_color = "#DARK_GREY#", diff --git a/game/modules/tome/data/general/npcs/sunwall-human.lua b/game/modules/tome/data/general/npcs/sunwall-human.lua new file mode 100644 index 0000000000..8dece10619 --- /dev/null +++ b/game/modules/tome/data/general/npcs/sunwall-human.lua @@ -0,0 +1,57 @@ +-- ToME - Tales of Middle-Earth +-- Copyright (C) 2009, 2010 Nicolas Casalini +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- +-- Nicolas Casalini "DarkGod" +-- darkgod@te4.org + +local Talents = require("engine.interface.ActorTalents") + +newEntity{ + define_as = "BASE_NPC_SUNWALL_HUMAN", + type = "humanoid", subtype = "human", + display = "p", color=colors.WHITE, + faction = "sunwall", + + combat = { dam=resolvers.rngavg(1,2), atk=2, apr=0, dammod={str=0.4} }, + + body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1, QUIVER=1 }, + resolvers.drops{chance=20, nb=1, {} }, + + life_rating = 10, + rank = 2, + size_category = 3, + + open_door = true, + + autolevel = "warrior", + ai = "dumb_talented_simple", ai_state = { talent_in=3, }, + energy = { mod=1 }, + stats = { str=12, dex=8, mag=6, con=10 }, +} + +newEntity{ base = "BASE_NPC_SUNWALL_HUMAN", + name = "human sun-paladin", color=colors.GOLD, + desc = [[A human in a shiny plate armour.]], + level_range = {1, 50}, exp_worth = 1, + rarity = 6, + max_life = resolvers.rngavg(70,80), + resolvers.equip{ + {type="weapon", subtype="longsword", autoreq=true}, + {type="armor", subtype="shield", autoreq=true}, + {type="armor", subtype="heavy", autoreq=true}, + }, + resolvers.talents{ [Talents.T_HEAVY_ARMOUR_TRAINING]=1, [Talents.T_PERFECT_STRIKE]=1, }, +} diff --git a/game/modules/tome/data/general/npcs/swarm.lua b/game/modules/tome/data/general/npcs/swarm.lua index b639e35a2b..893e6c6372 100644 --- a/game/modules/tome/data/general/npcs/swarm.lua +++ b/game/modules/tome/data/general/npcs/swarm.lua @@ -54,7 +54,7 @@ newEntity{ base = "BASE_NPC_INSECT", max_life = resolvers.rngavg(1,3), combat = { dam=2, atk=15, apr=20 }, - resolvers.talents{ [Talents.T_SPORE_POISON]=1 }, + resolvers.talents{ [Talents.T_BITE_POISON]=1 }, } newEntity{ base = "BASE_NPC_INSECT", @@ -65,7 +65,7 @@ newEntity{ base = "BASE_NPC_INSECT", max_life = resolvers.rngavg(3,5), combat = { dam=5, atk=15, apr=20 }, - resolvers.talents{ [Talents.T_SPORE_POISON]=2 }, + resolvers.talents{ [Talents.T_BITE_POISON]=2 }, } newEntity{ base = "BASE_NPC_INSECT", @@ -77,5 +77,5 @@ newEntity{ base = "BASE_NPC_INSECT", combat = { dam=10, atk=15, apr=20 }, can_multiply = 4, - resolvers.talents{ [Talents.T_SPORE_POISON]=3 }, + resolvers.talents{ [Talents.T_BITE_POISON]=3 }, } diff --git a/game/modules/tome/data/general/objects/scrolls.lua b/game/modules/tome/data/general/objects/scrolls.lua index 5adccb34b0..de16eed58f 100644 --- a/game/modules/tome/data/general/objects/scrolls.lua +++ b/game/modules/tome/data/general/objects/scrolls.lua @@ -37,7 +37,7 @@ newEntity{ base = "BASE_SCROLL", cost = 1, use_simple = { name="light up the surrounding area", use = function(self, who) - who:project({type="ball", range=0, friendlyfire=true, radius=15}, who.x, who.y, engine.DamageType.LIGHT, 1) + who:project({type="ball", range=0, friendlyfire=true, radius=15}, who.x, who.y, engine.DamageType.LITE, 1) game.logSeen(who, "%s reads a %s!", who.name:capitalize(), self:getName()) return "destroy", true end} diff --git a/game/modules/tome/data/general/objects/world-artifacts.lua b/game/modules/tome/data/general/objects/world-artifacts.lua index f4c90e41a0..9aab483bc5 100644 --- a/game/modules/tome/data/general/objects/world-artifacts.lua +++ b/game/modules/tome/data/general/objects/world-artifacts.lua @@ -122,7 +122,7 @@ newEntity{ base = "BASE_LITE", max_power = 15, power_regen = 1, use_power = { name = "call light", power = 10, use = function(self, who) - who:project({type="ball", range=0, friendlyfire=false, radius=20}, who.x, who.y, DamageType.LIGHT, 1) + who:project({type="ball", range=0, friendlyfire=false, radius=20}, who.x, who.y, DamageType.LITE, 1) game.logSeen(who, "%s brandishes the %s and banishes all shadows!", who.name:capitalize(), self:getName()) end }, diff --git a/game/modules/tome/data/talents/spells/phantasm.lua b/game/modules/tome/data/talents/spells/phantasm.lua index 8035bd1875..bd0ab5243c 100644 --- a/game/modules/tome/data/talents/spells/phantasm.lua +++ b/game/modules/tome/data/talents/spells/phantasm.lua @@ -26,7 +26,7 @@ newTalent{ cooldown = 14, action = function(self, t) local tg = {type="ball", range=0, friendlyfire=true, radius=5 + self:getTalentLevel(t), talent=t} - self:project(tg, self.x, self.y, DamageType.LIGHT, 1) + self:project(tg, self.x, self.y, DamageType.LITE, 1) if self:getTalentLevel(t) >= 3 then tg.friendlyfire = false self:project(tg, self.x, self.y, DamageType.BLIND, 3 + self:getTalentLevel(t)) diff --git a/game/special/mainmenu/dialogs/EnterName.lua b/game/special/mainmenu/dialogs/EnterName.lua index 12077cc063..caa1f7b4ab 100644 --- a/game/special/mainmenu/dialogs/EnterName.lua +++ b/game/special/mainmenu/dialogs/EnterName.lua @@ -56,7 +56,7 @@ function _M:init(runmod) -- And now run it! _G.game:run() else - engine.Dialog:simplePopup("Error", "Character name must be between 3 and 25 characters.") + engine.Dialog:simplePopup("Error", "Character name must be between 2 and 25 characters.") end end, _BACKSPACE = function() diff --git a/ideas/zones.ods b/ideas/zones.ods index 9afddee9c77d11c2fc8c8c5b03bcbec34964a8ef..df9d01592cae44af27a8f253b0a8d819096e632b 100644 GIT binary patch delta 7241 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 M`3Nv?p8p;AKP;h@2><{9 delta 7212 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 -- GitLab