Commit 37d410f75e2f10fc07ca63b26981fb6bdeec1fda

Authored by Lisa Greene
1 parent 6ca607b0

Bunny renegade wyrmics vault

Shows in Gorbat Pride in around one of three games
  1 +-- ToME - Tales of Maj'Eyal
  2 +-- Copyright (C) 2009 - 2019 Nicolas Casalini
  3 +--
  4 +-- This program is free software: you can redistribute it and/or modify
  5 +-- it under the terms of the GNU General Public License as published by
  6 +-- the Free Software Foundation, either version 3 of the License, or
  7 +-- (at your option) any later version.
  8 +--
  9 +-- This program is distributed in the hope that it will be useful,
  10 +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
  11 +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12 +-- GNU General Public License for more details.
  13 +--
  14 +-- You should have received a copy of the GNU General Public License
  15 +-- along with this program. If not, see <http://www.gnu.org/licenses/>.
  16 +--
  17 +-- Nicolas Casalini "DarkGod"
  18 +-- darkgod@te4.org
  19 +
  20 +setStatusAll{no_teleport=true, room_map = {can_open=true}}
  21 +
  22 +specialList("actor", {
  23 + "/data/general/npcs/fire-drake.lua",
  24 + "/data/general/npcs/storm-drake.lua",
  25 + "/data/general/npcs/cold-drake.lua",
  26 + "/data/general/npcs/venom-drake.lua",
  27 + "/data/general/npcs/orc-gorbat.lua",
  28 +})
  29 +
  30 +--"orc master wyrmic", "orc mage-hunter"
  31 +
  32 +specialList("terrain", {
  33 + "/data/general/grids/burntland.lua",
  34 + "/data/general/grids/lava.lua",
  35 + "/data/general/grids/mountain.lua",
  36 + "/data/general/grids/ice.lua",
  37 + "/data/general/grids/slime.lua",
  38 + "/data/general/grids/jungle.lua",
  39 + "/data/general/grids/basic.lua",
  40 + "/data/zones/gorbat-pride/grids.lua",
  41 +})
  42 +
  43 +setStatusAll{no_teleport=true, vault_only_door_open=true, room_map = {can_open=true}}
  44 +rotates = {"default", "90", "180", "270", "flipx", "flipy"}
  45 +
  46 +defineTile(',', "FENCE_FLOOR")
  47 +defineTile('.', "FENCE_FLOOR")
  48 +defineTile('#', "HARDMOUNTAIN_WALL")
  49 +defineTile('D', "DOOR")
  50 +defineTile('i', "ICY_FLOOR")
  51 +defineTile('a', function() if rng.percent(33) then return "LAVA_FLOOR" else return "BURNT_GROUND" end end)
  52 +defineTile('l', "CRYSTAL_FLOOR")
  53 +defineTile('L', "WALL")
  54 +defineTile('e', "SLIME_FLOOR")
  55 +defineTile('!', "DOOR_VAULT")
  56 +defineTile('|', "MOUNTAIN_WALL")
  57 +defineTile('R', "ROCKY_GROUND")
  58 +
  59 +local Talents = require("engine.interface.ActorTalents")
  60 +defineTile('W', "FENCE_FLOOR", {random_filter={add_levels=15, tome_mod="uvault"}}, {random_filter={add_levels=15, name = "orc master wyrmic", random_boss={name_scheme="#rng# the Herald", nb_classes=0, loot_quality="store", loot_quantity=1, no_loot_randart=true, loot_unique=true, ai_move="move_complex", rank=3.5, force_classes={Wyrmic=true}}}} )
  61 +defineTile('m', "FENCE_FLOOR", {random_filter={add_levels=30, type="money"}}, {random_filter={add_levels=12, name = "orc grand summoner", random_boss={name_scheme="Beastmaster #rng#", nb_classes=0, loot_quality="store", loot_quantity=1, no_loot_randart=true, ai_move="move_complex", rank=3.2, force_classes={Summoner=true}}}} )
  62 +defineTile('F', "LAVA_FLOOR", {random_filter={add_levels=25, tome_mod="uvault"}}, {entity_mod=function(e)
  63 + e[#e+1] = resolvers.talents{
  64 + [Talents.T_BLASTWAVE]={base=4, every=12, max=10},
  65 + [Talents.T_BURNING_WAKE]={base=4, every=12, max=12},
  66 + [Talents.T_CLEANSING_FLAMES]={base=3, every=15, max=8},
  67 + [Talents.T_WILDFIRE]={base=3, every=15, max=7},}
  68 + e:resolve()
  69 + return e end, random_filter={add_levels=25, name = "fire wyrm", random_boss={name_scheme="#rng# the Flame Terror", nb_classes=2, class_filter=function(d) return d.power_source and (d.power_source.arcane) and d.name ~= "Sun Paladin" end, loot_quality="store", loot_quantity=1, ai_move="move_complex", rank=4, force_classes={['Sun Paladin']=true}}}} )
  70 +defineTile('f', "BURNT_GROUND", {random_filter={add_levels=20, type="money"}}, {random_filter={add_levels=12, name = "fire drake"}} )
  71 +defineTile('S', "CRYSTAL_FLOOR", {random_filter={add_levels=25, tome_mod="uvault"}}, {entity_mod=function(e)
  72 + e[#e+1] = resolvers.talents{
  73 + [Talents.T_NOVA]={base=4, every=12, max=10},
  74 + [Talents.T_THUNDERCLAP]={base=4, every=12, max=12},
  75 + [Talents.T_HURRICANE]={base=3, every=15, max=8},
  76 + [Talents.T_TEMPEST]={base=3, every=15, max=7},
  77 + [Talents.T_LIVING_LIGHTNING]={base=1, every=20, max=4},}
  78 + e:resolve()
  79 + return e end, random_filter={add_levels=25, name = "storm wyrm", random_boss={name_scheme="#rng# the Storm Terror", nb_classes=2, class_filter=function(d) return d.power_source and (d.power_source.arcane) and d.name ~= "Archmage" end, loot_quality="store", loot_quantity=1, no_loot_randart=true, loot_unique=true, ai_move="move_complex", rank=4, force_classes={Archmage=true}}}} )
  80 +defineTile('s', "CRYSTAL_FLOOR", {random_filter={add_levels=20, type="money"}}, {random_filter={add_levels=12, name = "storm drake"}} )
  81 +defineTile('C', "ICY_FLOOR", {random_filter={add_levels=25, tome_mod="uvault"}}, {entity_mod=function(e)
  82 + e[#e+1] = resolvers.talents{
  83 + [Talents.T_FREEZE]={base=4, every=12, max=10},
  84 + [Talents.T_SHIVGOROTH_FORM]={base=4, every=12, max=12},
  85 + [Talents.T_BODY_OF_ICE]={base=3, every=15, max=8},
  86 + [Talents.T_UTTERCOLD]={base=3, every=15, max=7},}
  87 + e:resolve()
  88 + return e end, random_filter={add_levels=25, name = "ice wyrm", random_boss={name_scheme="#rng# the Fozen Terror", nb_classes=2, class_filter=function(d) return d.power_source and (d.power_source.nature or d.power_source.technique) and d.name ~= "Wyrmic" end, loot_quality="store", loot_quantity=1, no_loot_randart=true, loot_unique=true, ai_move="move_complex", rank=4, force_classes={Wyrmic=true}}}} )
  89 +defineTile('c', "ICY_FLOOR", {random_filter={add_levels=20, type="money"}}, {random_filter={add_levels=12, name = "cold drake"}} )
  90 +defineTile('V', "SLIME_FLOOR", {random_filter={add_levels=25, tome_mod="uvault"}}, {entity_mod=function(e)
  91 + e[#e+1] = resolvers.talents{
  92 + [Talents.T_INDISCERNIBLE_ANATOMY]={base=4, every=12, max=10},
  93 + [Talents.T_GRAND_ARRIVAL]=3,
  94 + [Talents.T_WILD_SUMMON]=4,
  95 + [Talents.T_ACIDIC_SOIL]={base=3, every=15, max=7},
  96 + [Talents.T_UNSTOPPABLE_NATURE]={base=3, every=15, max=7},}
  97 + e:resolve()
  98 + return e end, random_filter={add_levels=25, name = "venom wyrm", random_boss={name_scheme="#rng# the Caustic Terror", nb_classes=2, class_filter=function(d) return d.power_source and (d.power_source.nature) and d.name ~= "Oozemancer" end, loot_quality="store", loot_quantity=1, ai_move="move_complex", rank=4, force_classes={Oozemancer=true}}}} )
  99 +defineTile('v', "SLIME_FLOOR", {random_filter={add_levels=20, type="money"}}, {random_filter={add_levels=12, name = "venom drake"}} )
  100 +
  101 +
  102 +return {
  103 + [[,#######################,]],
  104 + [[,#veeeeLve......fLaaaaf#,]],
  105 + [[,#eeeeeDRRRRRRRRRDaaaaa#,]],
  106 + [[,#veevVLWm..R..mWLFfaaf#,]],
  107 + [[,#||||||||||R||||||||||#,]],
  108 + [[,#sllsSLWm..R..mWLCciic#,]],
  109 + [[,#lllllDRRRRRRRRRDiiiii#,]],
  110 + [[,#sllllLsl..R.iicLiiiic#,]],
  111 + [[,###########!###########,]],
  112 + [[,,,,,,,,,,,,,,,,,,,,,,,,,]],
  113 +}
... ...
... ... @@ -74,6 +74,11 @@ tm:applyOnGroups(rooms, function(room, idx)
74 74 end)
75 75 if levers_placed < 2 then return self:redo() end
76 76
  77 +if rng.percent(15) and not game.state:doneEvent("renegade-wyrmics") then
  78 + game.state:doneEvent("renegade-wyrmics",1) -- special vault! can only show once per game and only in gorbat pride; contains exceptionally difficult foes and exceptional loot
  79 + game.level.data.generator.map.greater_vaults_list = {"renegade-wyrmics"}
  80 +end
  81 +
77 82 -- Complete the map by putting wall in all the remaining blank spaces
78 83 tm:fillAll()
79 84
... ...