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