From 8806b539d5370df1beaede7808c8914cb230a8d9 Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Sun, 13 Mar 2011 12:00:48 +0000
Subject: [PATCH] Teleport is now allowed again on the endboss fight but
 controlled phase door will have somewhat higher chance of fizzling

git-svn-id: http://svn.net-core.org/repos/t-engine4@3012 51575b47-30f0-44d4-a5cc-537603b46e54
---
 .../tome/data/maps/zones/high-peak-last.lua   | 30 ++++++++++---------
 .../tome/data/talents/misc/inscriptions.lua   |  2 +-
 .../tome/data/talents/spells/conveyance.lua   |  2 +-
 3 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/game/modules/tome/data/maps/zones/high-peak-last.lua b/game/modules/tome/data/maps/zones/high-peak-last.lua
index 611667a964..b130fe967e 100644
--- a/game/modules/tome/data/maps/zones/high-peak-last.lua
+++ b/game/modules/tome/data/maps/zones/high-peak-last.lua
@@ -17,27 +17,29 @@
 -- Nicolas Casalini "DarkGod"
 -- darkgod@te4.org
 
+setStatusAll{control_teleport_fizzle=30}
+
 defineTile('<', "UP")
 defineTile(',', "FLOOR")
-defineTile('.', "FLOOR", nil, nil, nil, {lite=true, no_teleport=true})
+defineTile('.', "FLOOR", nil, nil, nil, {lite=true})
 defineTile('#', "WALL", nil, nil, nil, {lite=true})
-defineTile('*', "HARDWALL", nil, nil, nil, {lite=true, no_teleport=true})
+defineTile('*', "HARDWALL", nil, nil, nil, {lite=true})
 
 -- Portals
-defineTile('&', "FAR_EAST_PORTAL", nil, nil, nil, {lite=true, no_teleport=true})
-defineTile('"', "WEST_PORTAL", nil, nil, nil, {lite=true, no_teleport=true})
-defineTile('V', "VOID_PORTAL", nil, nil, nil, {lite=true, no_teleport=true})
-defineTile('!', "CFAR_EAST_PORTAL", nil, nil, nil, {lite=true, no_teleport=true})
-defineTile("'", "CWEST_PORTAL", nil, nil, nil, {lite=true, no_teleport=true})
-defineTile('v', "CVOID_PORTAL", nil, nil, nil, {lite=true, no_teleport=true})
-defineTile('d', "ORB_DESTRUCTION", nil, nil, nil, {lite=true, no_teleport=true})
-defineTile('D', "ORB_DRAGON", nil, nil, nil, {lite=true, no_teleport=true})
-defineTile('E', "ORB_ELEMENTS", nil, nil, nil, {lite=true, no_teleport=true})
-defineTile('U', "ORB_UNDEATH", nil, nil, nil, {lite=true, no_teleport=true})
+defineTile('&', "FAR_EAST_PORTAL", nil, nil, nil, {lite=true})
+defineTile('"', "WEST_PORTAL", nil, nil, nil, {lite=true})
+defineTile('V', "VOID_PORTAL", nil, nil, nil, {lite=true})
+defineTile('!', "CFAR_EAST_PORTAL", nil, nil, nil, {lite=true})
+defineTile("'", "CWEST_PORTAL", nil, nil, nil, {lite=true})
+defineTile('v', "CVOID_PORTAL", nil, nil, nil, {lite=true})
+defineTile('d', "ORB_DESTRUCTION", nil, nil, nil, {lite=true})
+defineTile('D', "ORB_DRAGON", nil, nil, nil, {lite=true})
+defineTile('E', "ORB_ELEMENTS", nil, nil, nil, {lite=true})
+defineTile('U', "ORB_UNDEATH", nil, nil, nil, {lite=true})
 
 -- Bosses
-defineTile('A', "FLOOR", nil, "ELANDAR", nil, {lite=true, no_teleport=true})
-defineTile('P', "FLOOR", nil, "ARGONIEL", nil, {lite=true, no_teleport=true})
+defineTile('A', "FLOOR", nil, "ELANDAR", nil, {lite=true})
+defineTile('P', "FLOOR", nil, "ARGONIEL", nil, {lite=true})
 
 addSpot({16, 4}, "portal", "demon")
 addSpot({33, 4}, "portal", "dragon")
diff --git a/game/modules/tome/data/talents/misc/inscriptions.lua b/game/modules/tome/data/talents/misc/inscriptions.lua
index 756ec70e15..7da3c2b651 100644
--- a/game/modules/tome/data/talents/misc/inscriptions.lua
+++ b/game/modules/tome/data/talents/misc/inscriptions.lua
@@ -302,7 +302,7 @@ newInscription{
 
 		-- Check LOS
 		local rad = 3
-		if not self:hasLOS(x, y) and rng.percent(35) then
+		if not self:hasLOS(x, y) and rng.percent(35 + (game.level.map.attrs(self.x, self.y, "control_teleport_fizzle") or 0)) then
 			game.logPlayer(self, "The targetted phase door fizzles and works randomly!")
 			x, y = self.x, self.y
 			rad = tg.range
diff --git a/game/modules/tome/data/talents/spells/conveyance.lua b/game/modules/tome/data/talents/spells/conveyance.lua
index 777b77db46..755150cefe 100644
--- a/game/modules/tome/data/talents/spells/conveyance.lua
+++ b/game/modules/tome/data/talents/spells/conveyance.lua
@@ -67,7 +67,7 @@ newTalent{
 			rad = radius
 
 			-- Check LOS
-			if not self:hasLOS(x, y) and rng.percent(35) then
+			if not self:hasLOS(x, y) and rng.percent(35 + (game.level.map.attrs(self.x, self.y, "control_teleport_fizzle") or 0)) then
 				game.logPlayer(self, "The targetted phase door fizzles and works randomly!")
 				x, y = self.x, self.y
 				rad = t.getRange(self, t)
-- 
GitLab