From b321ce2c40a730d0ff733bdfc7ce3f1e8f245cbb Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Thu, 7 Jun 2012 13:43:43 +0000
Subject: [PATCH] naga invasion event -- NOT COMPLETE !

git-svn-id: http://svn.net-core.org/repos/t-engine4@5210 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/engines/default/engine/Zone.lua          |   1 +
 game/modules/tome/class/GameState.lua         |   8 +-
 game/modules/tome/data/birth/worlds.lua       |   3 -
 game/modules/tome/data/factions.lua           |  57 +++----
 .../tome/data/general/events/naga-portal.lua  | 149 ++++++++++++++++++
 .../data/general/events/old-battle-field.lua  |  13 +-
 .../data/zones/infinite-dungeon/objects.lua   |  39 -----
 ideas/events                                  |   6 +-
 ideas/factions.ods                            | Bin 14136 -> 13872 bytes
 9 files changed, 200 insertions(+), 76 deletions(-)
 create mode 100644 game/modules/tome/data/general/events/naga-portal.lua

diff --git a/game/engines/default/engine/Zone.lua b/game/engines/default/engine/Zone.lua
index f5146148cc..f13bd31f9a 100644
--- a/game/engines/default/engine/Zone.lua
+++ b/game/engines/default/engine/Zone.lua
@@ -292,6 +292,7 @@ function _M:makeEntity(level, type, filter, force_level, prob_filter)
 		if type == "actor" then base_list = self.npc_list
 		elseif type == "object" then base_list = self.object_list
 		elseif type == "trap" then base_list = self.trap_list
+		elseif filter.base_list then base_list = filter.base_list end
 		else base_list = self:getEntities(level, type) if not base_list then return nil end end
 		local list = self:computeRarities(type, base_list, level, function(e) return self:checkFilter(e, filter, type) end, filter.add_levels, filter.special_rarity)
 		e = self:pickEntity(list)
diff --git a/game/modules/tome/class/GameState.lua b/game/modules/tome/class/GameState.lua
index bec318a6d6..d91418415c 100644
--- a/game/modules/tome/class/GameState.lua
+++ b/game/modules/tome/class/GameState.lua
@@ -1513,7 +1513,11 @@ function _M:createRandomBoss(base, data)
 		ngd = NameGenerator.new(randart_name_rules.default)
 		name = ngd:generate()
 	end
-	b.name = name.." the "..b.name
+	if data.name_scheme then
+		b.name = data.name_scheme:gsub("#rng#", name):gsub("#base#", b.name)
+	else
+		b.name = name.." the "..b.name
+	end
 	b.unique = b.name
 	b.randboss = true
 	local boss_id = "RND_BOSS_"..b.name:upper():gsub("[^A-Z]", "_")
@@ -1759,7 +1763,7 @@ function _M:startEvents()
 		local levels = {}
 		for i = 1, game.zone.max_level do levels[i] = {} end
 
-		for i, e in ipairs(evts) do 
+		for i, e in ipairs(evts) do
 			if e.always or rng.percent(e.percent) then
 				local lev = nil
 				if e.one_per_level then
diff --git a/game/modules/tome/data/birth/worlds.lua b/game/modules/tome/data/birth/worlds.lua
index 2d4108581d..cf3dd82c9c 100644
--- a/game/modules/tome/data/birth/worlds.lua
+++ b/game/modules/tome/data/birth/worlds.lua
@@ -120,10 +120,7 @@ newBirthDescriptor{
 			end
 		end,
 
-		-- Give the orb of knowledge
-		resolvers.inventory{ id=true, {defined="ORB_KNOWLEDGE"}},
 		resolvers.equip{ id=true, {name="iron pickaxe", ego_chance=-1000}},
-		resolvers.generic(function(e) e.hotkey[12] = {"inventory", "Orb of Knowledge"} end),
 		-- Override normal stuff
 		before_starting_zone = function(self)
 			self.starting_level = 1
diff --git a/game/modules/tome/data/factions.lua b/game/modules/tome/data/factions.lua
index f13d2adb60..2e180f1713 100644
--- a/game/modules/tome/data/factions.lua
+++ b/game/modules/tome/data/factions.lua
@@ -19,34 +19,35 @@
 
 -- CSV export
 local src = [[
-,Enemies,Undead,Allied Kingdoms,Shalore,Thalore,Iron Throne,The Way,Angolwen,Dreadfell,,Temple of Creation|H,Water lair|H,Assassin lair|H,Rhalore,Zigur,,Sunwall,Orc Pride,,Sandworm Burrowers,Victim,Slavers,,Sorcerers,Fearscape,,Sher'Tul
-Enemies,,,,,,,,,,,,,,,,,,,,,,,,,,,
-Undead,-1,,,,,,,,,,,,,,,,,,,,,,,,,,
-Allied Kingdoms,-1,-1,,,,,,,,,,,,,,,,,,,,,,,,,
-Shalore,-1,-1,0.5,,,,,,,,,,,,,,,,,,,,,,,,
-Thalore,-1,-1,0.7,0.2,,,,,,,,,,,,,,,,,,,,,,,
-Iron Throne,-1,-1,0.2,0.2,0.2,,,,,,,,,,,,,,,,,,,,,,
-The Way,-1,-1,0,0,0,0,,,,,,,,,,,,,,,,,,,,,
-Angolwen,-1,-1,,,,,,,,,,,,,,,,,,,,,,,,,
-Dreadfell,,-1,-1,-1,-1,-1,-1,-1,,,,,,,,,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,
-Temple of Creation|H,,,,,,,,,,,,,,,,,,,,,,,,,,,
-Water lair|H,-1,,,,,,,,,,-1,,,,,,,,,,,,,,,,
-Assassin lair|H,,,,,,,,,,,,,,,,,,,,,,,,,,,
-Rhalore,-1,-1,-1,-1,-1,-1,-1,-1,-1,,-1,-1,-1,,,,,,,,,,,,,,
-Zigur,-1,-1,1,1,1,1,0.2,-1,-1,,,,,-1,,,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,
-Sunwall,-1,-1,,,,,,,-1,,,,-1,-1,,,,,,,,,,,,,
-Orc Pride,,-1,-1,-1,-1,-1,-1,-1,-1,,,,,-1,-1,,-1,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,
-Sandworm Burrowers,,,,,,,,,,,,,,,,,,,,,,,,,,,
-Victim,,,,,,,,,,,,,,,,,,,,,,,,,,,
-Slavers,-1,,,,,,,,,,,,,,,,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,
-Sorcerers,,-1,-1,-1,-1,-1,-1,-1,-1,,,,,-1,-1,,-1,1,,,,,,,,,
-Fearscape,,-1,-1,-1,-1,-1,-1,-1,,,-1,-1,-1,-1,-1,,-1,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,
-Sher'Tul,,,,,,,,,,,,,,,,,,,,,,,,,-1,,
+,Enemies,Undead,Allied Kingdoms,Shalore,Thalore,Iron Throne,The Way,Angolwen,Dreadfell,,Temple of Creation|H,Water lair|H,Assassin lair|H,Rhalore,Zigur,,Vargh Republic,Sunwall,Orc Pride,,Sandworm Burrowers,Victim,Slavers,,Sorcerers,Fearscape,,Sher'Tul
+Enemies,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Undead,-1,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Allied Kingdoms,-1,-1,,,,,,,,,,,,,,,,,,,,,,,,,,
+Shalore,-1,-1,0.5,,,,,,,,,,,,,,,,,,,,,,,,,
+Thalore,-1,-1,0.7,0.2,,,,,,,,,,,,,,,,,,,,,,,,
+Iron Throne,-1,-1,0.2,0.2,0.2,,,,,,,,,,,,,,,,,,,,,,,
+The Way,-1,-1,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,
+Angolwen,-1,-1,,,,,,,,,,,,,,,,,,,,,,,,,,
+Dreadfell,,-1,-1,-1,-1,-1,-1,-1,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Temple of Creation|H,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Water lair|H,-1,,,,,,,,,,-1,,,,,,,,,,,,,,,,,
+Assassin lair|H,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Rhalore,-1,-1,-1,-1,-1,-1,-1,-1,-1,,-1,-1,-1,,,,,,,,,,,,,,,
+Zigur,-1,-1,1,1,1,1,0.2,-1,-1,,,,,-1,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Vargh Republic,-1,-1,-1,-1,-1,-1,-1,-1,-1,,-1,,-1,-1,-1,,,,,,,,,,,,,
+Sunwall,-1,-1,,,,,,,-1,,,,-1,-1,,,-1,,,,,,,,,,,
+Orc Pride,,-1,-1,-1,-1,-1,-1,-1,-1,,,,,-1,-1,,-1,-1,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Sandworm Burrowers,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Victim,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Slavers,-1,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Sorcerers,,-1,-1,-1,-1,-1,-1,-1,-1,,,,,-1,-1,,-1,-1,1,,,,,,,,,
+Fearscape,,-1,-1,-1,-1,-1,-1,-1,,,-1,-1,-1,-1,-1,,-1,-1,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Sher'Tul,,,,,,,,,,,,,,,,,,,,,,,,,,-1,,
 ]]
 
 local facts = {}
diff --git a/game/modules/tome/data/general/events/naga-portal.lua b/game/modules/tome/data/general/events/naga-portal.lua
new file mode 100644
index 0000000000..5cd132eef1
--- /dev/null
+++ b/game/modules/tome/data/general/events/naga-portal.lua
@@ -0,0 +1,149 @@
+-- ToME - Tales of Maj'Eyal
+-- Copyright (C) 2009, 2010, 2011, 2012 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
+
+-- Find a random spot
+local x, y = rng.range(1, level.map.w - 2), rng.range(1, level.map.h - 2)
+local tries = 0
+while (not game.player:canMove(x, y) or level.map.attrs(x, y, "no_teleport")) and tries < 100 do
+	x, y = rng.range(1, level.map.w - 2), rng.range(1, level.map.h - 2)
+	tries = tries + 1
+end
+if tries >= 100 then return false end
+
+local id = "naga-invasion-"..game.turn
+
+local changer = function(id)
+	local npcs = mod.class.NPC:loadList{"/data/general/npcs/naga.lua"}
+	local objects = mod.class.Object:loadList("/data/general/objects/objects.lua")
+	local terrains = mod.class.Grid:loadList{"/data/general/grids/basic.lua", "/data/general/grids/water.lua"}
+	terrains.WATER_UP_WILDERNESS.change_level_shift_back = true
+	terrains.WATER_UP_WILDERNESS.change_zone_auto_stairs = true
+	local zone = mod.class.Zone.new(id, {
+		name = "water cavern",
+		level_range = {zone:level_adjust_level(level, zone, "actor"), zone:level_adjust_level(level, zone, "actor")},
+		level_scheme = "player",
+		max_level = 1,
+		actor_adjust_level = function(zone, level, e) return zone.base_level + e:getRankLevelAdjust() + level.level-1 + rng.range(-1,2) end,
+		width = 30, height = 30,
+		ambient_music = "Dark Secrets.ogg",
+		reload_lists = false,
+		color_shown = {0.5, 1, 0.8, 1},
+		color_obscure = {0.5*0.6, 1*0.6, 0.8*0.6, 0.6},
+		persistent = "zone",
+		generator =  {
+			map = {
+				class = "engine.generator.map.Cavern",
+				zoom = 12,
+				min_floor = 250,
+				floor = "WATER_FLOOR",
+				wall = "WATER_WALL",
+				up = "WATER_UP",
+				down = "WATER_DOWN",
+				door = "WATER_FLOOR",
+			},
+			actor = {
+				class = "mod.class.generator.actor.Random",
+				nb_npc = {12, 12},
+				guardian = {random_elite={life_rating=function(v) return v * 1.5 + 4 end, nb_rares=4, name_scheme="#rng# the Tidebender"}},
+			},
+			object = {
+				class = "engine.generator.object.Random",
+				filters = {{type="gem"}},
+				nb_object = {6, 9},
+			},
+			trap = {
+				class = "engine.generator.trap.Random",
+				nb_trap = {6, 9},
+			},
+		},
+		post_process = function(level) for uid, e in pairs(level.entities) do e.faction = e.hard_faction or "vargh-republic" end end,
+--		levels = { [1] = { generator = { map = { up = "CAVEFLOOR", }, }, }, },
+		npc_list = npcs,
+		grid_list = terrains,
+		object_list = objects,
+		trap_list = mod.class.Trap:loadList("/data/general/traps/water.lua"),
+	})
+	return zone
+end
+
+local g = game.level.map(x, y, engine.Map.TERRAIN):cloneFull()
+g.name = "naga invasion coral portal"
+g.display='&' g.color_r=0 g.color_g=0 g.color_b=255 g.notice = true
+g.change_level=1 g.change_zone=id g.glow=true
+g.add_displays = g.add_displays or {}
+g.add_displays[#g.add_displays+1] = mod.class.Grid.new{z=18, image="terrain/naga_portal.png", display_h=2, display_y=-1, embed_particles = {
+	{name="naga_portal_smoke", rad=2, args={smoke="particles_images/smoke_whispery_bright"}},
+	{name="naga_portal_smoke", rad=2, args={smoke="particles_images/smoke_heavy_bright"}},
+	{name="naga_portal_smoke", rad=2, args={smoke="particles_images/smoke_dark"}},
+}}
+g.nice_tiler = nil
+g:initGlow()
+g.real_change = changer
+g.change_level_check = function(self)
+	game:changeLevel(1, self.real_change(self.change_zone), {temporary_zone_shift=true})
+	self.change_level_check = nil
+	self.real_change = nil
+	return true
+end
+g.block_move = function(self, x, y, who, act, couldpass)
+	if not who or not who.player or not act then return false end
+	if self.broken then
+		game.log("#VIOLET#The portal is already broken!")
+		return false
+	end
+
+	require("engine.ui.Dialog"):yesnoPopup("Coral Portal", "Do you wish to enter the portal or just destroy it?", function(ret)
+		game.log("#VIOLET#The portal is broken!")
+		if ret then
+			self:change_level_check()
+		end
+		self.broken = true
+		self.change_level = nil
+	end, "Destroy", "Enter")
+
+	return false
+end
+
+game.zone:addEntity(game.level, g, "terrain", x, y)
+
+local respawn = function(self)
+	local i, j = util.findFreeGrid(self.naga_portal_x, self.naga_portal_y, 10, true, {[engine.Map.ACTOR]=true})
+	if not i then return end
+
+	local npcs = mod.class.NPC:loadList{"/data/general/npcs/naga.lua"}
+	local m = game.zone:makeEntity(game.level, "actor", {base_list=npcs}, nil, true)
+	if not m then return end
+
+	m.naga_portal_x = self.naga_portal_x
+	m.naga_portal_y = self.naga_portal_y
+	m.naga_respawn = self.naga_respawn
+	m.exp_worth = 0
+	m.no_drops = true
+	m.faction = "vargh-republic"
+	m.on_die = function(self) self:naga_respawn() end
+	game.zone:addEntity(game.level, m, "actor", i, j)
+	game.logSeen(m, "#VIOLET#A naga steps out of the coral portal!")
+end
+
+-- Spawn two that will keep on being replenished
+local base = {naga_portal_x=x, naga_portal_y=y, naga_respawn=respawn}
+respawn(base)
+respawn(base)
+
+return true
diff --git a/game/modules/tome/data/general/events/old-battle-field.lua b/game/modules/tome/data/general/events/old-battle-field.lua
index 435eef66b6..c1bd9b78c0 100644
--- a/game/modules/tome/data/general/events/old-battle-field.lua
+++ b/game/modules/tome/data/general/events/old-battle-field.lua
@@ -35,7 +35,7 @@ while not check(x, y) and tries < 100 do
 	x, y = rng.range(3, level.map.w - 4), rng.range(3, level.map.h - 4)
 	tries = tries + 1
 end
-if tries < 100 then 
+if tries < 100 then
 	local id = "old-battle-field-"..game.turn
 
 	local changer = function(id)
@@ -79,6 +79,17 @@ if tries < 100 then
 						local g = game.zone:makeEntityByName(game.level, "terrain", "CAVE_LADDER_UP_WILDERNESS")
 						game.zone:addEntity(game.level, g, "terrain", spot.x, spot.y)
 
+						-- A "boss" comes
+						local nb = 20
+						while nb > 0 do
+							local spot = game.level:pickSpot{type="pop", subtype="undead"}
+							if not game.level.map(spot.x, spot.y, game.level.map.ACTOR) then
+								local m = game.zone:makeEntity(game.level, "actor", {random_elite={life_rating=function(v) return v * 1.5 + 4 end, nb_rares=6}}, nil, true)
+								if m then game.zone:addEntity(game.level, m, "actor", spot.x, spot.y) m:setTarget(game.player) break end
+							end
+							nb = nb - 1
+						end
+
 						require("engine.ui.Dialog"):simpleLongPopup("Onslaught", "You have survived the onslaught of undeads, you notice a way to climb up you had not seen before in a wall nearby.", 400)
 					elseif game.level.turn_counter % 50 == 0 then
 						for i = 1, math.floor(game.level.nb_pop) do
diff --git a/game/modules/tome/data/zones/infinite-dungeon/objects.lua b/game/modules/tome/data/zones/infinite-dungeon/objects.lua
index 3b69175258..c7fc4a4abe 100644
--- a/game/modules/tome/data/zones/infinite-dungeon/objects.lua
+++ b/game/modules/tome/data/zones/infinite-dungeon/objects.lua
@@ -18,42 +18,3 @@
 -- darkgod@te4.org
 
 load("/data/general/objects/objects.lua")
-
--- Id stuff
-newEntity{ define_as = "ORB_KNOWLEDGE",
-	power_source = {unknown=true},
-	unique = true, quest=true,
-	type = "orb", subtype="orb",
-	unided_name = "orb", no_unique_lore = true,
-	name = "Orb of Knowledge", identified = true,
-	display = "*", color=colors.VIOLET, image = "object/ruby.png",
-	encumber = 1,
-	save_hotkey = true,
-	desc = [[This orb was given to you by Elisa the halfling scryer, it will automatically identify normal and rare items for you and can be activated to identify all others.]],
-
-	on_drop = function(self, who)
-		if who == game.player then
-			game.logPlayer(who, "You cannot bring yourself to drop the %s", self:getName())
-			return true
-		end
-	end,
-
-	max_power = 1, power_regen = 1,
-	use_power = { name = "use the orb", power = 1,
-		use = function(self, who)
-			for inven_id, inven in pairs(who.inven) do
-				for item, o in ipairs(inven) do
-					if not o:isIdentified() then
-						o:identify(true)
-						game.logPlayer(who, "You have: %s", o:getName{do_colour=true})
-					end
-				end
-			end
-			return {id=true, used=true}
-		end
-	},
-
-	carrier = {
-		auto_id = 2,
-	},
-}
diff --git a/ideas/events b/ideas/events
index c4273dd949..9516d00c1c 100644
--- a/ideas/events
+++ b/ideas/events
@@ -2,9 +2,9 @@
 * naga invasion portal: nagas pouring out: enter the water portal; end up in a water cave (provide air bubbles) and defeat the naga leader
 * 3 pedesrals, stay on each for 3 turns; each time a rare pops; when all 3 dead a portal pops and a randboss pops from it
 * 7 neutral cultists are spread on the level with a back stone nearby; when one is killed a timer starts, if all killed before timer is out a stair to a secret cave is revealed with an artifact inside
-* a few tombstones that can be interraced with; if disturbed a random undead (rare or randboss) may pop
-* old battle field: many tombs in close space, if disturbed the player falls into the ground into a small cave; for 100 turns undeads pop faster and faster, if survived a pile of treasure is generated
-* damp cave: filled with thieves & bandits with some rares; uses building generator; hosts a pile of gems
+++ a few tombstones that can be interraced with; if disturbed a random undead (rare or randboss) may pop
+++ old battle field: many tombs in close space, if disturbed the player falls into the ground into a small cave; for 100 turns undeads pop faster and faster, if survived a pile of treasure is generated
+++ damp cave: filled with thieves & bandits with some rares; uses building generator; hosts a pile of gems
 * a necromancer starts on the other side of the level (not on boss levels); kills npcs, when enough killed he makes a huge bone golem rare
 * a huge meteor falls near the player, destroying anything and poping losgoroths
 * zone appropriate battle fields: yeachs vs. yeeks; zigur vs corrupters, ...
diff --git a/ideas/factions.ods b/ideas/factions.ods
index 563530743d0fc9280d8aa04081e91676930b2eb5..dd211c8dcf570bb2ef8c64aa355befbed6838230 100644
GIT binary patch
literal 13872
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

literal 14136
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
D`%R~H

-- 
GitLab