Skip to content
Snippets Groups Projects
Commit 18b8b1f4 authored by DarkGod's avatar DarkGod
Browse files

Altered the orc breeding pits encounter to make it a little less unconfortable...

Altered the orc breeding pits encounter to make it a little less unconfortable and more obvious into what you're getting into
parent 2eb0dc8f
No related branches found
No related tags found
No related merge requests found
......@@ -26,6 +26,7 @@ newChat{ id="welcome",
{"I need help in my hunt for clues about the staff.", jump="clues", cond=function(npc, player) return game.state:isAdvanced() and not player:hasQuest("orc-pride") end},
{"I have destroyed the leaders of all the Orc Prides.", jump="prides-dead", cond=function(npc, player) return player:isQuestStatus("orc-pride", engine.Quest.COMPLETED) end},
{"I am back from the Charred Scar, where the orcs took the staff.", jump="charred-scar", cond=function(npc, player) return player:hasQuest("charred-scar") and player:hasQuest("charred-scar"):isCompleted() end},
{"A dying paladin gave me this map; something about orc breeding pits. [tell her the story]", jump="orc-breeding-pits", cond=function(npc, player) return player:hasQuest("orc-breeding-pits") and player:isQuestStatus("orc-breeding-pits", engine.Quest.COMPLETED, "wuss-out") and not player:isQuestStatus("orc-breeding-pits", engine.Quest.COMPLETED, "wuss-out-done") end},
{"Sorry, I have to go!"},
}
}
......@@ -144,5 +145,25 @@ I am afraid with the power they gained today they will be even harder to stop, b
},
}
newChat{ id="orc-breeding-pits",
text = [[Ah! This is wonderful! Finally a ray of hope amidst the darkness. I will assign my best troops to this. Thank you, @playername@ - take this as a token of gratitude.]],
answers = {
{"Good luck.", action=function(npc, player)
player:setQuestStatus("orc-breeding-pits", engine.Quest.COMPLETED, "wuss-out-done")
player:setQuestStatus("orc-breeding-pits", engine.Quest.COMPLETED)
for i = 1, 5 do
local ro = game.zone:makeEntity(game.level, "object", {ignore_material_restriction=true, type="gem", special=function(o) return o.material_level and o.material_level >= 5 end}, nil, true)
if ro then
ro:identify(true)
game.logPlayer(player, "Aeryn gives you: %s", ro:getName{do_color=true})
game.zone:addEntity(game.level, ro, "object")
player:addObject(player:getInven("INVEN"), ro)
end
end
end}
},
}
return "welcome"
-- ToME - Tales of Maj'Eyal
-- Copyright (C) 2009, 2010, 2011, 2012, 2013 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
newChat{ id="welcome",
text = [[#LIGHT_GREEN#*A ray of light illuminates the gleam of steal amidst the grass. Investigating, you find a lone sun paladin lying stricken on the ground. Her wounds are minor, but her pallid features bely a poison that is taking its final toll. She whispers to you.*#WHITE#
Help, Help me.
]],
answers = {
{"What should I do?", jump="next1"},
}
}
newChat{ id="next1",
text = [[I found it... the abomination Aeryn sent me to seek out. The breeding pits of the orcs... It is more vile than you can imagine... They have it hidden away from their encampments, out of sight of all their people. Their mothers, their young, all there - all vulnerable!
#LIGHT_GREEN#*She pulls out a sketched map, and with some effort puts it in your palm.*#WHITE#
This could be the final solution, the end to the war... forever. We must strike soon, before reinforcements...
#LIGHT_GREEN#*She looks hard at you, exerting all her effort into a final pleading stare.*#WHITE#]],
answers = {
{"I cannot do this myself... I will tell Aeryn about it, it is in her hands.", action=function(npc, player)
player:grantQuest("orc-breeding-pits")
player:setQuestStatus("orc-breeding-pits", engine.Quest.COMPLETED, "wuss-out")
end},
{"I will go myself and ensure this is thoroughly dealt with.", action=function(npc, player)
player:grantQuest("orc-breeding-pits")
local q = player:hasQuest("orc-breeding-pits")
q:reveal()
end},
{"You want me to kill mothers and children? This is barbaric, I'll have nothing to do with it!"},
}
}
return "welcome"
......@@ -69,23 +69,18 @@ newEntity{
}
newEntity{
name = "Orc Breeding Pit",
type = "hostile", subtype = "special", unique = true,
immediate = {"world-encounter", "fareast"},
name = "Orc Breeding Pits",
type = "harmless", subtype = "special", unique = true,
level_range = {35, 50},
rarity = 20,
on_world_encounter = "orc-breeding-pits",
on_encounter = function(self, who)
local x, y = self:findSpot(who)
if not x then return end
local g = game.level.map(x, y, engine.Map.TERRAIN):cloneFull()
g.__nice_tile_base = nil
g.name = "Entrance to the orc breeding pit"
g.display='>' g.color_r=colors.GREEN.r g.color_g=colors.GREEN.g g.color_b=colors.GREEN.b g.notice = true
g.change_level=1 g.change_zone="orc-breeding-pit" g.glow=true
g.add_displays = g.add_displays or {}
g.add_displays[#g.add_displays+1] = mod.class.Grid.new{image="terrain/ladder_down.png"}
g.nice_tiler = nil
g:initGlow()
game.zone:addEntity(game.level, g, "terrain", x, y)
who.energy.value = game.energy_to_act
game.paused = true
who:runStop()
local Chat = require "engine.Chat"
local chat = Chat.new("orc-breeding-pits", {name="Dying sun paladin"}, who)
chat:invoke()
return true
end
end,
}
......@@ -451,6 +451,7 @@ addSpot({36, 25}, "world-encounter", "lost-merchant")
addSpot({37, 25}, "world-encounter", "lost-merchant")
addSpot({35, 35}, "world-encounter", "noxious-caldera")
addSpot({53, 5}, "world-encounter", "sludgenest")
addSpot({162, 59}, "world-encounter", "orc-breeding-pits-spawn")
-- addZone section
addZone({1, 1, 78, 43}, "zonename", "Maj'Eyal")
......@@ -471,6 +472,7 @@ addZone({37, 5, 50, 9}, "world-encounter", "merchant-quest")
addZone({56, 8, 65, 13}, "world-encounter", "merchant-quest")
addZone({69, 3, 77, 17}, "world-encounter", "merchant-quest")
addZone({30, 28, 35, 33}, "world-encounter", "merchant-quest")
addZone({145, 51, 167, 63}, "world-encounter", "orc-breeding-pits")
-- ASCII map section
return {
......
-- ToME - Tales of Maj'Eyal
-- Copyright (C) 2009, 2010, 2011, 2012, 2013 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
-- Quest for the the breeding pits
name = "Desperate Measures"
desc = function(self, who)
local desc = {}
desc[#desc+1] = "You have encountered a dying sun paladin that told you about the orcs breeding pit, a true abomination."
if self:isStatus(engine.Quest.COMPLETED, "wuss-out") then
desc[#desc+1] = "You have decided to report the information to Aeryn so she can deal with it."
if self:isStatus(engine.Quest.COMPLETED, "wuss-out-done") then
desc[#desc+1] = "Aeryn said she would send troops to deal with it."
end
else
desc[#desc+1] = "You have taken upon yourself to cleanse it and deal a crippling blow to the orcs."
if self:isStatus(engine.Quest.COMPLETED, "genocide") then
desc[#desc+1] = "The abominable task is done."
end
end
return table.concat(desc, "\n")
end
on_status_change = function(self, who, status, sub)
if self:isCompleted() then
who:setQuestStatus(self.id, engine.Quest.DONE)
end
end
reveal = function(self)
local spot = game.level:pickSpot{type="world-encounter", subtype="orc-breeding-pits-spawn"}
if not spot then return end
local g = game.level.map(spot.x, spot.y, engine.Map.TERRAIN):cloneFull()
g.__nice_tile_base = nil
g.name = "Entrance to the orc breeding pit"
g.display='>' g.color_r=colors.GREEN.r g.color_g=colors.GREEN.g g.color_b=colors.GREEN.b g.notice = true
g.change_level=1 g.change_zone="orc-breeding-pit" g.glow=true
g.add_displays = g.add_displays or {}
g.add_displays[#g.add_displays+1] = mod.class.Grid.new{image="terrain/ladder_down.png"}
g.nice_tiler = nil
g:initGlow()
game.zone:addEntity(game.level, g, "terrain", spot.x, spot.y)
return true
end
......@@ -381,9 +381,11 @@ newTalent{
if not filter.hasxp then m.exp_worth = 0 end
m:resolve()
m.summoner = self
m.summon_time = filter.lastfor
m.faction = self.faction
if not filter.no_summoner_set then
m.summoner = self
m.summon_time = filter.lastfor
end
if not m.hard_faction then m.faction = self.faction end
if not filter.hasloot then m:forgetInven(m.INVEN_INVEN) end
......
......@@ -54,6 +54,7 @@ newEntity{ base = "BASE_NPC_ORC_SUMMON",
level_range = {25, nil}, exp_worth = 0,
resolvers.generic(function(e) if rng.percent(50) then e.female = true end end),
rarity = 3,
faction = "neutral", hard_faction = "neutral",
max_life = resolvers.rngavg(30,50), life_rating = 4,
rank = 2,
movement_speed = 0.7,
......@@ -68,6 +69,7 @@ newEntity{ base = "BASE_NPC_ORC",
resolvers.generic(function(e) if rng.percent(50) then e.female = true end end),
level_range = {25, nil}, exp_worth = 0,
rarity = 3,
faction = "neutral", hard_faction = "neutral",
max_life = resolvers.rngavg(30,50), life_rating = 9, life_regen = 7,
movement_speed = 1.3,
size_category = 1,
......@@ -100,7 +102,8 @@ newEntity{ base = "BASE_NPC_ORC",
newEntity{ base = "BASE_NPC_ORC",
name = "orc mother", color=colors.YELLOW,
resolvers.nice_tile{image="invis.png", add_mos = {{image="npc/humanoid_orc_orc_mother.png", display_h=2, display_y=-1}}},
desc = [[This giant, bloated form towers above you. Mucus and slime ooze from every orifice, dripping onto the cavern floor. Orc children fight over the right to feed from her distended teats whilst small babies are regularly pushed out from her many pulsating vulvas. The sight and the smell make you retch.]],
desc = [[This giant, bloated form towers above you. Mucus and slime ooze from every orifice, dripping onto the cavern floor. Orc children fight over the right to feed from her distended teats whilst small babies are regularly emerge from folds of flesh. The sight and the smell make you retch.
Here stands a tremendous form almost the size of a dragon. Bloated skin rises in thick folds, seeping viscous slime from its wide pores. Hundreds of hanging teats feed a small army of squabbling, fighting young orcs - only the toughest of them are able to gain the precious nutrients to grow stronger, the weaker ones left to wither on the mouldy floor. At the top of this towering hulk is a shrivelled head coated in long tangled hair. Dazed eyes peer out with a mixture of sadness and pain, but as they fix on you they turn to anger, the creature's face contorted with the fierce desire to protect its young.]],
level_range = {25, nil}, exp_worth = 1,
female = true,
rarity = 8,
......@@ -115,7 +118,7 @@ newEntity{ base = "BASE_NPC_ORC",
on_melee_hit = {[DamageType.SLIME] = resolvers.rngrange(10, 20)},
summon = {
{type="humanoid", subtype="orc", name="orc baby", number=1, hasxp=false},
{type="humanoid", subtype="orc", name="orc baby", number=1, hasxp=false, no_summoner_set=true},
},
-- ai = "tactical",
......@@ -132,7 +135,8 @@ newEntity{ base = "BASE_NPC_ORC",
newEntity{ base="BASE_NPC_ORC", define_as = "GREATMOTHER",
name = "Orc Greatmother", color=colors.VIOLET, unique = true,
resolvers.nice_tile{image="invis.png", add_mos = {{image="npc/humanoid_orc_orc_greatmother.png", display_h=2, display_y=-1}}},
desc = [[Here stands a tremendous form almost the size of a dragon. Bloated skin rises in thick folds, seeping viscous slime from its wide pores. Hundreds of hanging teats feed a small army of squabbling, fighting young orcs - only the toughest of them are able to gain the precious nutrients to grow stronger, the weaker ones left to wither on the mouldy floor. Dozens of gaping vulvae squelch and pulsate, pushing out new young with alarming rapidity. At the top of this towering hulk is a shrivelled head coated in long tangled hair. Dazed eyes peer out with a mixture of sadness and pain, but as they fix on you they turn to anger, the creature's face contorted with the fierce desire to protect its young.]],
desc = [[This giant, bloated form towers above you. Mucus and slime ooze from every orifice, dripping onto the cavern floor. Orc children fight over the right to feed from her distended teats whilst small babies are regularly emerge from folds of flesh. The sight and the smell make you retch.
Here stands a tremendous form almost the size of a dragon. Bloated skin rises in thick folds, seeping viscous slime from its wide pores. Hundreds of hanging teats feed a small army of squabbling, fighting young orcs - only the toughest of them are able to gain the precious nutrients to grow stronger, the weaker ones left to wither on the mouldy floor. At the top of this towering hulk is a shrivelled head coated in long tangled hair. Dazed eyes peer out with a mixture of sadness and pain, but as they fix on you they turn to anger, the creature's face contorted with the fierce desire to protect its young.]],
killer_message = "and given to the children as a plaything",
level_range = {40, nil}, exp_worth = 1,
female = true,
......@@ -159,7 +163,7 @@ newEntity{ base="BASE_NPC_ORC", define_as = "GREATMOTHER",
{type="humanoid", subtype="orc", name="orc baby", number=4, hasxp=false},
},
summon = {
{type="humanoid", subtype="orc", name="orc baby", number=1, hasxp=false},
{type="humanoid", subtype="orc", name="orc baby", number=1, hasxp=false, no_summoner_set=true},
},
resolvers.talents{
......@@ -177,5 +181,7 @@ newEntity{ base="BASE_NPC_ORC", define_as = "GREATMOTHER",
game.log("#PURPLE#As the orc greatmother falls you realize you have dealt a crippling blow to the orcs.")
game.state:eastPatrolsReduce()
world:gainAchievement("GREATMOTHER_DEAD", who)
who:setQuestStatus("orc-breeding-pits", engine.Quest.COMPLETED, "genocide")
who:setQuestStatus("orc-breeding-pits", engine.Quest.COMPLETED)
end,
}
......@@ -62,7 +62,7 @@ return {
game:placeRandomLoreObject("BREEDING_HISTORY5")
end
for uid, e in pairs(level.entities) do e.faction="orc-pride" end
for uid, e in pairs(level.entities) do if e.faction ~= "neutral" then e.faction="orc-pride" end end
end,
on_enter = function(lev, old_lev, newzone)
if newzone and not game.level.shown_warning then
......
......@@ -741,6 +741,12 @@
<property name="type" value="&quot;world-encounter&quot;"/>
</properties>
</object>
<object name="Orc Breeding Pit quest" x="4645" y="1637" width="728" height="406">
<properties>
<property name="subtype" value="&quot;orc-breeding-pits&quot;"/>
<property name="type" value="&quot;world-encounter&quot;"/>
</properties>
</object>
</objectgroup>
<objectgroup name="addSpot#world-encounters" width="170" height="100">
<object name="Random Zone" x="296" y="256" width="50" height="55">
......@@ -953,5 +959,11 @@
<property name="type" value="&quot;world-encounter&quot;"/>
</properties>
</object>
<object name="Breeding pits Spawn" x="5190" y="1894" width="17" height="19">
<properties>
<property name="subtype" value="&quot;orc-breeding-pits-spawn&quot;"/>
<property name="type" value="&quot;world-encounter&quot;"/>
</properties>
</object>
</objectgroup>
</map>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment