Commit 37d410f75e2f10fc07ca63b26981fb6bdeec1fda
1 parent
6ca607b0
Bunny renegade wyrmics vault
Shows in Gorbat Pride in around one of three games
Showing
2 changed files
with
118 additions
and
0 deletions
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 | ... | ... |
-
Please register or login to post a comment