Commit 9bbf8328482b8374fa483d044e8ae49142abec20
1 parent
df693a3b
Eight new high level monsters
Fixed problem with Shattering Charge Greatly improved Mindlash. Focus mindslayers should be much more fun. Removed much of the moat around the bandit fortress vault to make navigating around it less of a pain. git-svn-id: http://svn.net-core.org/repos/t-engine4@3363 51575b47-30f0-44d4-a5cc-537603b46e54
Showing
14 changed files
with
357 additions
and
29 deletions
... | ... | @@ -78,6 +78,7 @@ loadIfNot("/data/general/npcs/troll.lua") |
78 | 78 | loadIfNot("/data/general/npcs/vampire.lua") |
79 | 79 | loadIfNot("/data/general/npcs/vermin.lua") |
80 | 80 | loadIfNot("/data/general/npcs/wight.lua") |
81 | +loadIfNot("/data/general/npcs/wild-drake.lua") | |
81 | 82 | loadIfNot("/data/general/npcs/xorn.lua") |
82 | 83 | |
83 | 84 | loadIfNot("/data/general/npcs/humanoid_random_boss.lua") | ... | ... |
... | ... | @@ -96,3 +96,29 @@ newEntity{ base = "BASE_NPC_BONE_GIANT", |
96 | 96 | melee_project = {[DamageType.BLIGHT]=resolvers.mbonus(15, 5)}, |
97 | 97 | resolvers.talents{ [Talents.T_BONE_ARMOUR]={base=3, every=10, max=5}, [Talents.T_THROW_BONES]={base=4, every=10, max=7}, [Talents.T_STUN]={base=3, every=10, max=5}, }, |
98 | 98 | } |
99 | + | |
100 | +newEntity{ base = "BASE_NPC_BONE_GIANT", | |
101 | + name = "runed bone giant", color=colors.RED, | |
102 | + desc = [[A towering creature, made from the bones of hundreds of dead bodies, rune-etched and infused with hateful sorceries.]], | |
103 | + level_range = {40, nil}, exp_worth = 1, | |
104 | + rarity = 5, | |
105 | + rank = 3, | |
106 | + ai = "tactical", | |
107 | + max_life = resolvers.rngavg(100,120), | |
108 | + combat_armor = 20, combat_def = 40, | |
109 | + melee_project = {[DamageType.BLIGHT]=resolvers.mbonus(15, 15)}, | |
110 | + autolevel = "warriormage", | |
111 | + resists = {all = 30}, | |
112 | + resolvers.talents{ | |
113 | + [Talents.T_BONE_ARMOUR]={base=5, every=10, max=7}, | |
114 | + [Talents.T_STUN]={base=3, every=10, max=5}, | |
115 | + [Talents.T_SKELETON_REASSEMBLE]=5, | |
116 | + [Talents.T_ARCANE_POWER]={base=4, every=5, max = 8}, | |
117 | + [Talents.T_MANATHRUST]={base=4, every=5, max = 10}, | |
118 | + [Talents.T_MANAFLOW]={base=5, every=5, max = 10}, | |
119 | + [Talents.T_STRIKE]={base=4, every=5, max = 12}, | |
120 | + [Talents.T_INNER_POWER]={base=4, every=5, max = 10}, | |
121 | + [Talents.T_EARTHEN_MISSILES]={base=5, every=5, max = 10}, | |
122 | + }, | |
123 | + resolvers.sustains_at_birth(), | |
124 | +} | ... | ... |
... | ... | @@ -118,3 +118,32 @@ newEntity{ base = "BASE_NPC_GHOST", |
118 | 118 | [Talents.T_MIND_DISRUPTION]={base=3, every=7, max=6}, |
119 | 119 | }, |
120 | 120 | } |
121 | + | |
122 | +newEntity{ base = "BASE_NPC_GHOST", | |
123 | + name = "ruin banshee", color=colors.GREY, image="npc/ruin_banshee.png", | |
124 | + desc = [[A vengeful, screaming soul given form with the breath of Urh'Rok himself. The vapors of the Fearscape seep from its dimension-bending form, withering and searing.]], | |
125 | + level_range = {42, nil}, exp_worth = 1, | |
126 | + rarity = 15, | |
127 | + rank = 3, | |
128 | + max_life = resolvers.rngavg(240,270), | |
129 | + | |
130 | + ai = "tactical", | |
131 | + | |
132 | + combat_armor = 0, combat_def = resolvers.mbonus(10, 50), | |
133 | + on_melee_hit = {[DamageType.BLIGHT]=resolvers.mbonus(25, 25)}, | |
134 | + melee_project = {[DamageType.BLIGHT]=resolvers.mbonus(25, 25)}, | |
135 | + invisibility = resolvers.mbonus(10, 20), | |
136 | + | |
137 | + combat = { dam=resolvers.mbonus(85, 85), atk=resolvers.mbonus(45, 45), apr=100, dammod={str=0.7, mag=0.7} }, | |
138 | + | |
139 | + resolvers.talents{ | |
140 | + [Talents.T_PHASE_DOOR]=10, | |
141 | + [Talents.T_SILENCE]={base=2, every=10, max=6}, | |
142 | + [Talents.T_MIND_DISRUPTION]={base=3, every=7, max=8}, | |
143 | + [Talents.T_CORRUPTED_NEGATION]={base=5, every=6, max=8}, | |
144 | + [Talents.T_CORROSIVE_WORM]={base=4, every=5, max=12}, | |
145 | + [Talents.T_POISON_STORM]={base=4, every=5, max=12}, | |
146 | + [Talents.T_CURSE_OF_DEATH]={base=5, every=6, max=8}, | |
147 | + [Talents.T_CURSE_OF_IMPOTENCE]={base=5, every=6, max=8}, | |
148 | + }, | |
149 | +} | ... | ... |
... | ... | @@ -167,3 +167,39 @@ newEntity{ base = "BASE_NPC_LICH", |
167 | 167 | [Talents.T_SHADOW_WARRIORS]=5, |
168 | 168 | }, |
169 | 169 | } |
170 | + | |
171 | +newEntity{ base = "BASE_NPC_LICH", | |
172 | + name = "blood lich", color=colors.LIGHT_RED, | |
173 | + desc=[[The seething, pumping, disembodied blood of a horrendously powerful necromancer. To strike it is to bathe in the rivers of the Fearscape itself.]], | |
174 | + level_range = {45, nil}, exp_worth = 1, | |
175 | + rarity = 3, | |
176 | + max_life = resolvers.rngavg(100,150), | |
177 | + combat_armor = 0, combat_def = 45, | |
178 | + on_melee_hit = {[DamageType.BLIGHT]=resolvers.mbonus(25, 30)}, | |
179 | + | |
180 | + mana_regen = 100, | |
181 | + | |
182 | + resolvers.talents{ | |
183 | + [Talents.T_FREEZE]={base=5, every=10, max=10}, | |
184 | + [Talents.T_TIDAL_WAVE]={base=3, every=10, max=5}, | |
185 | + [Talents.T_ARCANE_POWER]={base=4, every=5, max = 8}, | |
186 | + [Talents.T_MANATHRUST]={base=4, every=5, max = 10}, | |
187 | + [Talents.T_MANAFLOW]={base=5, every=5, max = 10}, | |
188 | + [Talents.T_GLOOM]={base=4, every=5, max = 12}, | |
189 | + [Talents.T_WEAKNESS]={base=4, every=5, max = 10}, | |
190 | + [Talents.T_TORMENT]={base=5, every=5, max = 10}, | |
191 | + [Talents.T_LIFE_LEECH]={base=5, every=5, max = 10}, | |
192 | + [Talents.T_WILLFUL_STRIKE]={base=5, every=5, max = 10}, | |
193 | + [Talents.T_UNSEEN_FORCE]={base=5, every=5, max = 10}, | |
194 | + [Talents.T_BLOOD_SPRAY]={base=5, every=5, max = 10}, | |
195 | + [Talents.T_BLOOD_GRASP]={base=5, every=5, max = 10}, | |
196 | + [Talents.T_BLOOD_BOIL]={base=5, every=5, max = 10}, | |
197 | + [Talents.T_BLOOD_FURY]={base=5, every=5, max = 10}, | |
198 | +-- Utility spells | |
199 | + [Talents.T_PHASE_DOOR]=10, | |
200 | + [Talents.T_CALL_SHADOWS]=8, | |
201 | + [Talents.T_FOCUS_SHADOWS]=5, | |
202 | + [Talents.T_SHADOW_MAGES]=5, | |
203 | + [Talents.T_SHADOW_WARRIORS]=5, | |
204 | + }, | |
205 | +} | |
\ No newline at end of file | ... | ... |
... | ... | @@ -198,3 +198,85 @@ It moves swiftly toward you, casting terrible spells and swinging its weapons at |
198 | 198 | [Talents.T_TWILIGHT_SURGE]={base=5, every=8, max=8}, |
199 | 199 | }, |
200 | 200 | } |
201 | + | |
202 | +newEntity{ base = "BASE_NPC_MAJOR_DEMON", | |
203 | + name = "champion of Urh'Rok", color=colors.GREY, | |
204 | + --resolvers.nice_tile{image="invis.png", add_mos = {{image="npc/demon_major_daelach.png", display_h=2, display_y=-1}}}, | |
205 | + desc = [[One of Urh'Rok's own champions. A thousand nightmares made flesh and screaming steel towering before you in the form of a massive, armored humanoid.]], | |
206 | + level_range = {43, nil}, exp_worth = 1, | |
207 | + rarity = 7, | |
208 | + rank = 3, | |
209 | + global_speed = 1.3, | |
210 | + size_category = 4, | |
211 | + autolevel = "warrior", | |
212 | + life_rating = 25, | |
213 | + combat_armor = 90, combat_def = 60, | |
214 | + mana_regen = 100, positive_regen = 100, negative_regen = 100, equilibrium_regen = -100, vim_regen = 100, stamina_regen = 100, | |
215 | + | |
216 | + ai = "tactical", | |
217 | + | |
218 | + resolvers.equip{ {type="weapon", subtype="greatsword", autoreq=true}, }, | |
219 | + | |
220 | + resists={all = resolvers.mbonus(25, 20)}, | |
221 | + | |
222 | + stun_immune = 1, | |
223 | + blind_immune = 1, | |
224 | + knockback_immune = 1, | |
225 | + | |
226 | + resolvers.talents{ | |
227 | + [Talents.T_CORRUPTED_STRENGTH]={base=5, every=8, max=8}, | |
228 | + [Talents.T_DISARM]=5, | |
229 | + [Talents.T_RUSH]={base=8, every=8, max=8}, | |
230 | + [Talents.T_WEAPON_COMBAT]={base=8, every=5, max=12}, | |
231 | + [Talents.T_GHOULISH_LEAP]={base=1, every=8, max=5}, | |
232 | + [Talents.T_DEATH_DANCE]={base=5, every=8, max=10}, | |
233 | + [Talents.T_STUNNING_BLOW]={base=5, every=8, max=8}, | |
234 | + [Talents.T_SUNDER_ARMOUR]={base=5, every=8, max=10}, | |
235 | + [Talents.T_SUNDER_ARMS]={base=5, every=8, max=10}, | |
236 | + }, | |
237 | +} | |
238 | + | |
239 | +newEntity{ base = "BASE_NPC_MAJOR_DEMON", | |
240 | + name = "forge-giant", color=colors.RED, | |
241 | + --resolvers.nice_tile{image="invis.png", add_mos = {{image="npc/demon_major_daelach.png", display_h=2, display_y=-1}}}, | |
242 | + desc = [[A burning giant wielding a forge hammer of the underworld in each hand-- weapons imbued by Urh'Rok himself with the power to crush and shape felsteel. Enter their range at your peril.]], | |
243 | + level_range = {47, nil}, exp_worth = 1, | |
244 | + rarity = 8, | |
245 | + rank = 3, | |
246 | + global_speed = 1, | |
247 | + size_category = 5, | |
248 | + autolevel = "warriormage", | |
249 | + life_rating = 30, | |
250 | + combat_armor = 32, combat_def = 40, | |
251 | + mana_regen = 100, positive_regen = 100, negative_regen = 100, equilibrium_regen = -100, vim_regen = 100, stamina_regen = 100, | |
252 | + | |
253 | + ai = "tactical", | |
254 | + | |
255 | + resolvers.equip{ {type="weapon", subtype="mace", autoreq=true}, }, | |
256 | + resolvers.equip{ {type="weapon", subtype="mace", autoreq=true}, }, | |
257 | + | |
258 | + resists={[DamageType.PHYSICAL] = resolvers.mbonus(15, 10), [DamageType.FIRE] = 100}, | |
259 | + on_melee_hit = {[DamageType.FIRE]=resolvers.mbonus(25, 25)}, | |
260 | + melee_project = {[DamageType.FIRE]=resolvers.mbonus(25, 35)}, | |
261 | + | |
262 | + stun_immune = 1, | |
263 | + knockback_immune = 1, | |
264 | + | |
265 | + | |
266 | + resolvers.talents{ | |
267 | + [Talents.T_CORRUPTED_STRENGTH]={base=5, every=8, max=8}, | |
268 | + [Talents.T_DUAL_WEAPON_TRAINING]={base=1, every=8, max=6}, | |
269 | + [Talents.T_DUAL_WEAPON_DEFENSE]={base=5, every=8, max=8}, | |
270 | + [Talents.T_WEAPON_COMBAT]={base=8, every=5, max=12}, | |
271 | + [Talents.T_WEAPONS_MASTERY]={base=7, every=8, max=14}, | |
272 | + [Talents.T_THROW_BOULDER]={base=5, every=8, max=14}, | |
273 | + [Talents.T_FIREBEAM]={base=5, every=8, max=8}, | |
274 | + [Talents.T_WILDFIRE]={base=5, every=8, max=8}, | |
275 | + [Talents.T_INFERNO]={base=5, every=8, max=8}, | |
276 | + [Talents.T_FLAME]={base=5, every=8, max=10}, | |
277 | + [Talents.T_FLAMESHOCK]={base=5, every=8, max=10}, | |
278 | + [Talents.T_FIREFLASH]={base=5, every=8, max=10}, | |
279 | + [Talents.T_BURNING_WAKE]={base=5, every=8, max=10}, | |
280 | + [Talents.T_CLEANSING_FLAMES]={base=5, every=8, max=10}, | |
281 | + }, | |
282 | +} | |
\ No newline at end of file | ... | ... |
... | ... | @@ -114,3 +114,33 @@ newEntity{ base = "BASE_NPC_TROLL", |
114 | 114 | [Talents.T_THUNDERSTORM]={base=3, every=7, max=8}, |
115 | 115 | }, |
116 | 116 | } |
117 | + | |
118 | +newEntity{ base = "BASE_NPC_TROLL", | |
119 | + name = "patchwork troll", color=colors.PURPLE, image="npc/troll_patchwork.png", | |
120 | + desc = [[A disgusting and mismatched construct of necromantically-enhanced troll bits and shattered weapons. Confused and furious, it rends and shatters its surroundings with impossible strength, moving with speed found nowhere in nature.]], | |
121 | + level_range = {38, nil}, exp_worth = 1, | |
122 | + rarity = 6, | |
123 | + rank = 3, | |
124 | + global_speed = 1.6, | |
125 | + life_rating = 25, | |
126 | + max_life = resolvers.rngavg(220,240), | |
127 | + | |
128 | + combat_armor = 60, combat_def = 0, | |
129 | + combat = { dam=resolvers.levelup(resolvers.rngavg(25,110), 1, 2), atk=resolvers.rngavg(25,70), apr=15, dammod={str=1.5} }, | |
130 | + autolevel = "warrior", | |
131 | + ai = "tactical", | |
132 | + stamina_regen = 100, | |
133 | + stun_immune = 1, | |
134 | + knockback_immune = 1, | |
135 | + blind_immune = 1, | |
136 | + | |
137 | + resolvers.talents{ | |
138 | + [Talents.T_STUN]={base=5, every=6, max=12}, | |
139 | + [Talents.T_RUSH]=8, | |
140 | + [Talents.T_BLINDING_SPEED]={base=4, every=7, max=10}, | |
141 | + [Talents.T_FAST_METABOLISM]={base=5, every=5, max=30}, | |
142 | + [Talents.T_UNFLINCHING_RESOLVE]={base=5, every=5, max=10}, | |
143 | + [Talents.T_JUGGERNAUT]={base=5, every=5, max=10}, | |
144 | + }, | |
145 | + resolvers.sustains_at_birth(), | |
146 | +} | ... | ... |
1 | +-- ToME - Tales of Maj'Eyal | |
2 | +-- Copyright (C) 2009, 2010, 2011 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 | +local Talents = require("engine.interface.ActorTalents") | |
21 | + | |
22 | +newEntity{ | |
23 | + define_as = "BASE_NPC_WILD_DRAKE", | |
24 | + type = "dragon", subtype = "wild", | |
25 | + display = "D", color=colors.SLATE, | |
26 | + | |
27 | + body = { INVEN = 10, MAINHAND=1, OFFHAND=1, PSIONIC_FOCUS=1, BODY=1 }, | |
28 | + resolvers.drops{chance=100, nb=1, {type="money"} }, | |
29 | + | |
30 | + infravision = 10, | |
31 | + life_rating = 15, | |
32 | + rank = 2, | |
33 | + size_category = 5, | |
34 | + | |
35 | + autolevel = "drake", | |
36 | + ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, }, | |
37 | + stats = { str=20, dex=20, mag=30, con=16 }, | |
38 | + | |
39 | + knockback_immune = 1, | |
40 | + stun_immune = 1, | |
41 | + resolvers.sustains_at_birth(), | |
42 | +} | |
43 | + | |
44 | + | |
45 | +newEntity{ base = "BASE_NPC_WILD_DRAKE", | |
46 | + name = "spire dragon", color=colors.SLATE, display="D", | |
47 | + desc = [[A monstrous, coiled wyrm, patient and hateful. Its hide, studded with spikes and crests and blades, turns aside steel and sorcery with equal ease.]], | |
48 | + --resolvers.nice_tile{image="invis.png", add_mos = {{image="npc/dragon_cold_ice_wyrm.png", display_h=2, display_y=-1}}}, | |
49 | + level_range = {35, nil}, exp_worth = 1, | |
50 | + rarity = 6, | |
51 | + rank = 3, | |
52 | + global_speed = 1.3, | |
53 | + size_category = 5, | |
54 | + autolevel = "warrior", | |
55 | + max_life = resolvers.rngavg(170,190), | |
56 | + combat_armor = 70, combat_def = 50, | |
57 | + combat = { dam=resolvers.levelup(resolvers.rngavg(25,110), 1, 2), atk=resolvers.rngavg(25,70), apr=45, dammod={str=1.5} }, | |
58 | + resists={all = resolvers.mbonus(25, 30)}, | |
59 | + --resolvers.equip{ {type="gem", autoreq=true}, }, | |
60 | + resolvers.drops{chance=100, nb=2, {type="gem"} }, | |
61 | + | |
62 | + ai = "tactical", | |
63 | + | |
64 | + resolvers.talents{ | |
65 | + [Talents.T_CONSTRICT]={base=4, every=5, max = 10}, | |
66 | + [Talents.T_RUSHING_CLAWS]={base=3, every=5, max = 5}, | |
67 | + [Talents.T_KINETIC_AURA]={base=4, every=5, max = 8}, | |
68 | + [Talents.T_KINETIC_SHIELD]={base=4, every=5, max = 8}, | |
69 | + [Talents.T_SHATTERING_CHARGE]={base=4, every=5, max = 10}, | |
70 | + [Talents.T_INSATIABLE]={base=5, every=5, max = 30}, | |
71 | + }, | |
72 | +} | |
73 | + | |
74 | +newEntity{ base = "BASE_NPC_WILD_DRAKE", | |
75 | + name = "blinkwyrm", color=colors.YELLOW, display="D", | |
76 | + desc = [[A shifting, writhing, snake-like dragon, blinking in and out of existance, just waiting for you to turn your back.]], | |
77 | + --resolvers.nice_tile{image="invis.png", add_mos = {{image="npc/dragon_cold_ice_wyrm.png", display_h=2, display_y=-1}}}, | |
78 | + level_range = {40, nil}, exp_worth = 1, | |
79 | + rarity = 7, | |
80 | + rank = 3, | |
81 | + global_speed = 1.4, | |
82 | + size_category = 4, | |
83 | + autolevel = "caster", | |
84 | + max_life = resolvers.rngavg(100,120), | |
85 | + combat_armor = 0, combat_def = 90, | |
86 | + mana_regen = 100, positive_regen = 100, negative_regen = 100, equilibrium_regen = -100, vim_regen = 100, stamina_regen = 100, | |
87 | + | |
88 | + ai = "tactical", | |
89 | + | |
90 | + resolvers.talents{ | |
91 | + [Talents.T_DISRUPTION_SHIELD]={base=4, every=5, max = 10}, | |
92 | + [Talents.T_DISPLACEMENT_SHIELD]={base=3, every=5, max = 10}, | |
93 | + [Talents.T_TIME_SHIELD]={base=4, every=5, max = 10}, | |
94 | + [Talents.T_ARCANE_POWER]={base=4, every=5, max = 8}, | |
95 | + [Talents.T_MANATHRUST]={base=4, every=5, max = 10}, | |
96 | + [Talents.T_MANAFLOW]={base=5, every=5, max = 10}, | |
97 | + [Talents.T_DISPERSE_MAGIC]={base=4, every=5, max = 8}, | |
98 | + [Talents.T_QUICKEN_SPELLS]={base=4, every=5, max = 10}, | |
99 | + [Talents.T_METAFLOW]={base=5, every=5, max = 10}, | |
100 | + [Talents.T_ESSENCE_OF_SPEED]={base=4, every=5, max = 10}, | |
101 | + [Talents.T_MINDLASH]={base=5, every=5, max = 10}, | |
102 | + [Talents.T_KINETIC_LEECH]={base=5, every=5, max = 10}, | |
103 | + [Talents.T_THERMAL_LEECH]={base=4, every=5, max = 10}, | |
104 | + [Talents.T_CHARGE_LEECH]={base=5, every=5, max = 10}, | |
105 | + [Talents.T_INSATIABLE]={base=5, every=5, max = 30}, | |
106 | + [Talents.T_PHASE_DOOR]={base=5, every=5, max = 10}, | |
107 | + [Talents.T_PROBABILITY_TRAVEL]={base=5, every=5, max = 10}, | |
108 | + }, | |
109 | + | |
110 | + resolvers.inscriptions(2, {"phase door rune", "phase door rune"}), | |
111 | + | |
112 | +} | ... | ... |
... | ... | @@ -41,17 +41,17 @@ defineTile('A', "DEEP_WATER", nil, {random_filter={add_levels=10, type = "aquati |
41 | 41 | |
42 | 42 | return { |
43 | 43 | |
44 | -[[~~~~~A~~~~~~~~~~~~~~~A~~~~~~~~~~~~~A~~~~]], | |
45 | -[[~##########~~~~~~~~~~~~~~~~~~##########~]], | |
46 | -[[~#.p.....p#~~~A~~~~~~~~~~~~~~#.....p..#~]], | |
47 | -[[A#.######.#~~~~~~~~~~~~~~~~~~#.######.#A]], | |
48 | -[[~#.#xxxx#.#~~~~~~~~~A~~~~~A~~#.#xxx.#.#~]], | |
49 | -[[~#p#HHHH#.####################p#TTTT#p#~]], | |
50 | -[[~#.#pppP#.#*$$pH.+.#HLH.D..+^#.#HHHH#.#~]], | |
51 | -[[A#.#....#p#$*$pH.#.#LHH.D..#^#.#xxx.#.#~]], | |
52 | -[[~#.###+##.########.#########.#.##+###.#A]], | |
53 | -[[~#..p.....#..DDLL#.%.........+.p....p.#~]], | |
54 | -[[~#####+####%######+####################~]], | |
44 | +[[........................................]], | |
45 | +[[.##########~~~~~~~~~~~~~~~~~~##########.]], | |
46 | +[[.#.p.....p#~~~A~~~~~~~~~~~~~~#.....p..#.]], | |
47 | +[[.#.######.#~~~~~~~~~~~~~~~~~~#.######.#.]], | |
48 | +[[.#.#xxxx#.#~~~~~~~~~A~~~~~A~~#.#xxx.#.#.]], | |
49 | +[[.#p#HHHH#.####################p#TTTT#p#.]], | |
50 | +[[.#.#pppP#.#*$$pH.+.#HLH.D..+^#.#HHHH#.#.]], | |
51 | +[[.#.#....#p#$*$pH.#.#LHH.D..#^#.#xxx.#.#.]], | |
52 | +[[.#.###+##.########.#########.#.##+###.#.]], | |
53 | +[[.#..p.....#..DDLL#.%.........+.p....p.#.]], | |
54 | +[[.#####+####%######+####################.]], | |
55 | 55 | [[~A~~~#.#**#^.../$#P.....p....+.pp/#~~~~~]], |
56 | 56 | [[~~~~~#.#**#$.../$#.p.......p.#.pP/#~A~~~]], |
57 | 57 | [[~~~~~#.#**#$.../$#...p.....p.#ppp/#~~~~~]], |
... | ... | @@ -70,16 +70,16 @@ return { |
70 | 70 | [[~~A~~#.#**#xxxxxD#.p.......P.#ppp/#A~~~~]], |
71 | 71 | [[~~~~~#.#**########.....p.....#.pP/#~~~A~]], |
72 | 72 | [[~~~~~#.#**%DDDLLL#.p.....p...+.pp/#~~~~~]], |
73 | -[[~#####+###########+####################~]], | |
74 | -[[~#.p....p.+..P......H....TT..+.....p..#~]], | |
75 | -[[~#.###+##.#.....p......p..TT^#.##+###.#A]], | |
76 | -[[~#.#....#.#%################%#p#xxx.#.#~]], | |
77 | -[[~#.#pppP#.#....DDLL#LLDD.....#.#TTTT#.#~]], | |
78 | -[[~#p#HHHH#.####################.#HHHH#p#~]], | |
79 | -[[A#.#xxxx#p#~~~~A~~~~~~~~~A~~~#.#xxx.#.#A]], | |
80 | -[[~#.######.#~~~~~~~~~~~~~~~~~~#.######.#~]], | |
81 | -[[~#..p.....#~~~~~~~~~~~~~~~~A~#p...p...#~]], | |
82 | -[[~##########~~~~~A~~~~~~~~~~~~##########~]], | |
83 | -[[~~~~~A~~~~~~~~~~~~~~~~~~~~~~~~~~A~~~~~~~]], | |
73 | +[[.#####+###########+####################.]], | |
74 | +[[.#.p....p.+..P......H....TT..+.....p..#.]], | |
75 | +[[.#.###+##.#.....p......p..TT^#.##+###.#.]], | |
76 | +[[.#.#....#.#%################%#p#xxx.#.#.]], | |
77 | +[[.#.#pppP#.#....DDLL#LLDD.....#.#TTTT#.#.]], | |
78 | +[[.#p#HHHH#.####################.#HHHH#p#.]], | |
79 | +[[.#.#xxxx#p#~~~~A~~~~~~~~~A~~~#.#xxx.#.#.]], | |
80 | +[[.#.######.#~~~~~~~~~~~~~~~~~~#.######.#.]], | |
81 | +[[.#..p.....#~~~~~~~~~~~~~~~~A~#p...p...#.]], | |
82 | +[[.##########~~~~~A~~~~~~~~~~~~##########.]], | |
83 | +[[........................................]], | |
84 | 84 | |
85 | 85 | } |
\ No newline at end of file | ... | ... |
... | ... | @@ -154,10 +154,15 @@ newTalent{ |
154 | 154 | end |
155 | 155 | local dam = self:spellCrit(self:combatTalentMindDamage(t, 20, 600)) |
156 | 156 | self:project(tg, x, y, DamageType.BATTER, self:spellCrit(rng.avg(2*dam/3, dam, 3))) |
157 | - local _ _, x, y = self:canProject(tg, x, y) | |
157 | + --local _ _, x, y = self:canProject(tg, x, y) | |
158 | 158 | game.level.map:particleEmitter(self.x, self.y, tg.radius, "flamebeam", {tx=x-self.x, ty=y-self.y}) |
159 | 159 | game:playSoundNear(self, "talents/lightning") |
160 | - self:move(x, y, true) | |
160 | + --self:move(x, y, true) | |
161 | + local fx, fy = util.findFreeGrid(x, y, 5, true, {[Map.ACTOR]=true}) | |
162 | + if not fx then | |
163 | + return | |
164 | + end | |
165 | + self:move(fx, fy, true) | |
161 | 166 | else |
162 | 167 | game.logSeen(self, "You can't move there.") |
163 | 168 | return nil |
... | ... | @@ -189,7 +194,12 @@ newTalent{ |
189 | 194 | tx, ty = lx, ly |
190 | 195 | lx, ly = l() |
191 | 196 | end |
192 | - self:move(tx, ty, true) | |
197 | + --self:move(tx, ty, true) | |
198 | + local fx, fy = util.findFreeGrid(tx, ty, 5, true, {[Map.ACTOR]=true}) | |
199 | + if not fx then | |
200 | + return | |
201 | + end | |
202 | + self:move(fx, fy, true) | |
193 | 203 | return true |
194 | 204 | end |
195 | 205 | end, | ... | ... |
... | ... | @@ -29,11 +29,11 @@ newTalent{ |
29 | 29 | points = 5, |
30 | 30 | random_ego = "attack", |
31 | 31 | cooldown = function(self, t) |
32 | - local c = 15 | |
32 | + local c = 5 | |
33 | 33 | local gem_level = getGemLevel(self) |
34 | - return c - gem_level | |
34 | + return math.max(c - gem_level, 0) | |
35 | 35 | end, |
36 | - psi = 15, | |
36 | + psi = 10, | |
37 | 37 | tactical = { ATTACK = 2 }, |
38 | 38 | range = function(self, t) |
39 | 39 | local r = 5 | ... | ... |
... | ... | @@ -395,7 +395,7 @@ newEffect{ |
395 | 395 | newEffect{ |
396 | 396 | name = "STUNNED", |
397 | 397 | desc = "Stunned", |
398 | - long_desc = function(self, eff) return ("The target is stunned, reducing damage by 70%%, healing received by 50%, putting random talents on cooldown and reducing movement speed by 50%%. While stunned talents do not cooldown."):format() end, | |
398 | + long_desc = function(self, eff) return ("The target is stunned, reducing damage by 70%%, healing received by 50%%, putting random talents on cooldown and reducing movement speed by 50%%. While stunned talents do not cooldown."):format() end, | |
399 | 399 | type = "physical", |
400 | 400 | status = "detrimental", |
401 | 401 | parameters = {}, | ... | ... |
No preview for this file type
No preview for this file type
-
Please register or login to post a comment