Commit c09e52e9ab4fc6f86107904046335bc068a3a45f
1 parent
0686fb99
Very cursory revision of Staff egos
Showing
1 changed file
with
36 additions
and
514 deletions
... | ... | @@ -21,10 +21,6 @@ local Stats = require "engine.interface.ActorStats" |
21 | 21 | local Talents = require "engine.interface.ActorTalents" |
22 | 22 | local DamageType = require "engine.DamageType" |
23 | 23 | |
24 | ---load("/data/general/objects/egos/charged-attack.lua") | |
25 | ---load("/data/general/objects/egos/charged-defensive.lua") | |
26 | ---load("/data/general/objects/egos/charged-utility.lua") | |
27 | - | |
28 | 24 | newEntity{ |
29 | 25 | power_source = {technique=true}, |
30 | 26 | name = "cruel ", prefix=true, instant_resolve=true, |
... | ... | @@ -97,16 +93,15 @@ newEntity{ |
97 | 93 | power_source = {arcane=true}, |
98 | 94 | name = "blighted ", prefix=true, instant_resolve=true, |
99 | 95 | keywords = {blight=true}, |
100 | - level_range = {30, 50}, | |
96 | + level_range = {20, 50}, | |
101 | 97 | greater_ego = 1, |
102 | 98 | rarity = 30, |
103 | 99 | cost = 40, |
104 | 100 | wielder = { |
105 | 101 | vim_on_crit = resolvers.mbonus_material(5, 1), |
106 | 102 | max_vim = resolvers.mbonus_material(30, 10), |
107 | - melee_project = { | |
108 | - [DamageType.ITEM_BLIGHT_DISEASE] = resolvers.mbonus_material(15, 5), | |
109 | - }, | |
103 | + combat_spellpower = resolvers.mbonus_material(10, 2), | |
104 | + combat_spellcrit = resolvers.mbonus_material(5, 5), | |
110 | 105 | }, |
111 | 106 | } |
112 | 107 | |
... | ... | @@ -114,31 +109,30 @@ newEntity{ |
114 | 109 | power_source = {arcane=true}, |
115 | 110 | name = "ethereal ", prefix=true, instant_resolve=true, |
116 | 111 | keywords = {ethereal=true}, |
117 | - level_range = {30, 50}, | |
112 | + level_range = {20, 50}, | |
118 | 113 | greater_ego = 1, |
119 | 114 | rarity = 30, |
120 | 115 | cost = 40, |
121 | 116 | wielder = { |
122 | 117 | combat_spellpower = resolvers.mbonus_material(5, 3), |
123 | 118 | combat_def = resolvers.mbonus_material(15, 10), |
124 | - damage_shield_penetrate = resolvers.mbonus_material(40, 10), | |
125 | - melee_project = { | |
126 | - [DamageType.RANDOM_CONFUSION] = resolvers.mbonus_material(8, 4), | |
127 | - }, | |
119 | + damage_shield_penetrate = resolvers.mbonus_material(30, 10), | |
120 | + shield_factor=resolvers.mbonus_material(20, 5), | |
128 | 121 | }, |
129 | 122 | } |
130 | 123 | |
124 | +-- Applies all of a Command Staff subtype instead of just one selected element.. I think | |
131 | 125 | newEntity{ |
132 | 126 | power_source = {arcane=true}, |
133 | 127 | name = "greater ", prefix=true, instant_resolve=true, |
134 | 128 | keywords = {greater=true}, |
135 | - level_range = {30, 50}, | |
129 | + level_range = {20, 50}, | |
136 | 130 | greater_ego = 1, |
137 | 131 | rarity = 30, |
138 | 132 | cost = 45, |
139 | 133 | combat = {is_greater = true,}, |
140 | 134 | wielder = { |
141 | - combat_spellpower = resolvers.mbonus_material(4, 3), | |
135 | + combat_spellpower = resolvers.mbonus_material(10, 3), | |
142 | 136 | }, |
143 | 137 | resolvers.command_staff(), |
144 | 138 | } |
... | ... | @@ -147,7 +141,7 @@ newEntity{ |
147 | 141 | power_source = {arcane=true}, |
148 | 142 | name = "void walker's ", prefix=true, instant_resolve=true, |
149 | 143 | keywords = {['v. walkers']=true}, |
150 | - level_range = {30, 50}, | |
144 | + level_range = {20, 50}, | |
151 | 145 | greater_ego = 1, |
152 | 146 | rarity = 40, |
153 | 147 | cost = 30, |
... | ... | @@ -178,6 +172,7 @@ newEntity{ |
178 | 172 | }, |
179 | 173 | } |
180 | 174 | |
175 | +-- this ego needs something | |
181 | 176 | newEntity{ |
182 | 177 | power_source = {nature=true}, |
183 | 178 | name = " of illumination", suffix=true, instant_resolve=true, |
... | ... | @@ -188,9 +183,6 @@ newEntity{ |
188 | 183 | wielder = { |
189 | 184 | combat_def = resolvers.mbonus_material(10, 5), |
190 | 185 | lite = resolvers.mbonus_material(3, 2), |
191 | - melee_project = { | |
192 | - [DamageType.ITEM_LIGHT_BLIND] = resolvers.mbonus_material(15, 5), | |
193 | - }, | |
194 | 186 | }, |
195 | 187 | resolvers.charmt(Talents.T_ILLUMINATE, {1,2}, 6, "T_GLOBAL_CD", |
196 | 188 | {no_npc_use = function(self, who) return self:restrictAIUseObject(who) end} -- don't let dumb ai do stupid things with this |
... | ... | @@ -221,82 +213,7 @@ newEntity{ |
221 | 213 | }, |
222 | 214 | } |
223 | 215 | |
224 | -newEntity{ | |
225 | - power_source = {arcane=true}, | |
226 | - name = " of projection", suffix=true, instant_resolve=true, | |
227 | - keywords = {projection=true}, | |
228 | - level_range = {1, 50}, | |
229 | - rarity = 10, | |
230 | - cost = 15, | |
231 | - wielder = { | |
232 | - combat_spellpower = resolvers.mbonus_material(3, 2), | |
233 | - combat_spellcrit = resolvers.mbonus_material(2, 2), | |
234 | - }, | |
235 | - resolvers.charm( | |
236 | - function(self, who) | |
237 | - local damtype = engine.DamageType:get(self.combat.element or "ARCANE") | |
238 | - local range = self.use_power.range(self) | |
239 | - local dam = who:damDesc(damtype, self.use_power.damage(self, who)) | |
240 | - local damrange = self.use_power.damrange(self, who) | |
241 | - return ("project a bolt elemental energy from the staff (to range %d) dealing %0.2f to %0.2f %s damage"):format(range, dam, dam*damrange, damtype.name) | |
242 | - end, | |
243 | - 5, | |
244 | - function(self, who) | |
245 | - local tg = self.use_power.target(self, who) | |
246 | - local weapon = who:hasStaffWeapon() | |
247 | - if not weapon then | |
248 | - game.logPlayer(who, "You have no appropriate weapon.") | |
249 | - return | |
250 | - end | |
251 | - local combat = weapon.combat | |
252 | - local explosion, particle, trail | |
253 | - | |
254 | - local DamageType = require "engine.DamageType" | |
255 | - local damtype = combat.element or DamageType.ARCANE | |
256 | - if damtype == DamageType.FIRE then explosion = "flame" particle = "bolt_fire" trail = "firetrail" | |
257 | - elseif damtype == DamageType.COLD then explosion = "freeze" particle = "ice_shards" trail = "icetrail" | |
258 | - elseif damtype == DamageType.ACID then explosion = "acid" particle = "bolt_acid" trail = "acidtrail" | |
259 | - elseif damtype == DamageType.LIGHTNING then explosion = "lightning_explosion" particle = "bolt_lightning" trail = "lightningtrail" | |
260 | - elseif damtype == DamageType.LIGHT then explosion = "light" particle = "bolt_light" trail = "lighttrail" | |
261 | - elseif damtype == DamageType.DARKNESS then explosion = "dark" particle = "bolt_dark" trail = "darktrail" | |
262 | - elseif damtype == DamageType.NATURE then explosion = "slime" particle = "bolt_slime" trail = "slimetrail" | |
263 | - elseif damtype == DamageType.BLIGHT then explosion = "slime" particle = "bolt_slime" trail = "slimetrail" | |
264 | - elseif damtype == DamageType.PHYSICAL then explosion = "dark" particle = "stone_shards" trail = "earthtrail" | |
265 | - elseif damtype == DamageType.TEMPORAL then explosion = "light" particle = "temporal_bolt" trail = "lighttrail" | |
266 | - else explosion = "manathrust" particle = "bolt_arcane" trail = "arcanetrail" --damtype = DamageType.ARCANE | |
267 | - end | |
268 | - | |
269 | - local x, y = who:getTarget(tg) | |
270 | - if not x or not y then return nil end | |
271 | - | |
272 | - -- Compute damage | |
273 | - local dam = self.use_power.damage(self, who) | |
274 | - local damrange = self.use_power.damrange(self, who) | |
275 | - local damTyp = DamageType:get(damtype or "ARCANE") | |
276 | - tg.name = damTyp.name .. " bolt" | |
277 | - dam = rng.range(dam, dam * damrange) | |
278 | - dam = who:spellCrit(dam) | |
279 | - | |
280 | - game.logSeen(who, "%s fires a bolt of %s%s#LAST# energy from %s %s!", who.name:capitalize(), damTyp.text_color, damTyp.name, who:his_her(), self:getName({no_add_name = true, do_color = true})) | |
281 | - who:projectile(tg, x, y, damtype, dam, {type=explosion, particle=particle, trail=trail}) | |
282 | - | |
283 | - game:playSoundNear(who, "talents/arcane") | |
284 | - return {id=true, used=true} | |
285 | - end, | |
286 | - "T_GLOBAL_CD", | |
287 | - {range = function(self, who) return 5 + self.material_level end, | |
288 | - target = function(self, who) return {type="bolt", range=self.use_power.range(self), speed=20, display = {particle=particle, trail=trail},} end, | |
289 | - requires_target = true, | |
290 | - tactical = { ATTACK = function(who, t, aitarget) | |
291 | - local weapon = who:hasStaffWeapon() | |
292 | - if not weapon or not weapon.combat then return 1 end | |
293 | - return {[weapon.combat.element or "ARCANE"] = 1 + (who.talents["T_STAFF_MASTERY"] or 0)/2.5} -- tactical AI adds staff skill to effective talent level of this ability | |
294 | - end }, | |
295 | - damage = function(self, who) return who:combatDamage(self.combat) end, | |
296 | - damrange = function(self, who) return who:combatDamageRange(self.combat) end} | |
297 | - ), | |
298 | -} | |
299 | - | |
216 | +-- Adds wards for each element on the staff? | |
300 | 217 | newEntity{ |
301 | 218 | power_source = {arcane=true}, |
302 | 219 | name = " of warding", suffix=true, instant_resolve=true, |
... | ... | @@ -317,11 +234,12 @@ newEntity{ |
317 | 234 | resolvers.command_staff(), |
318 | 235 | } |
319 | 236 | |
237 | +-- 50% of all staff elements as resistance penetration | |
320 | 238 | newEntity{ |
321 | 239 | power_source = {arcane=true}, |
322 | 240 | name = " of breaching", suffix=true, instant_resolve=true, |
323 | 241 | keywords = {breaching=true}, |
324 | - level_range = {30, 50}, | |
242 | + level_range = {20, 50}, | |
325 | 243 | greater_ego = 1, |
326 | 244 | rarity = 30, |
327 | 245 | cost = 40, |
... | ... | @@ -335,95 +253,21 @@ newEntity{ |
335 | 253 | |
336 | 254 | newEntity{ |
337 | 255 | power_source = {arcane=true}, |
338 | - name = " of blasting", suffix=true, instant_resolve=true, | |
339 | - keywords = {blasting=true}, | |
340 | - level_range = {30, 50}, | |
341 | - greater_ego = 1, | |
342 | - rarity = 30, | |
343 | - cost = 40, | |
344 | - wielder = { | |
345 | - combat_spellpower = resolvers.mbonus_material(5, 5), | |
346 | - combat_spellcrit = resolvers.mbonus_material(5, 5), | |
347 | - }, | |
348 | - resolvers.charm( | |
349 | - function(self, who) | |
350 | - local damtype = engine.DamageType:get(self.combat.element or "ARCANE") | |
351 | - local radius = self.use_power.radius(self) | |
352 | - local dam = who:damDesc(damtype, self.use_power.damage(self, who)) | |
353 | - local damrange = self.use_power.damrange(self, who) | |
354 | - return ("unleash an elemental blastwave, dealing %0.2f to %0.2f %s damage in a radius %d around the user"):format(dam, dam*damrange, damtype.name, radius) | |
355 | - end, | |
356 | - 10, | |
357 | - function(self, who) | |
358 | - local tg = self.use_power.target(self, who) | |
359 | - local weapon = who:hasStaffWeapon() | |
360 | - if not weapon then return end | |
361 | - local combat = weapon.combat | |
362 | - if not combat then return end | |
363 | - | |
364 | - local DamageType = require "engine.DamageType" | |
365 | - local damtype = combat.element or DamageType.ARCANE | |
366 | - local explosion | |
367 | - | |
368 | - if damtype == DamageType.FIRE then explosion = "flame" | |
369 | - elseif damtype == DamageType.COLD then explosion = "freeze" | |
370 | - elseif damtype == DamageType.ACID then explosion = "acid" | |
371 | - elseif damtype == DamageType.LIGHTNING then explosion = "lightning_explosion" | |
372 | - elseif damtype == DamageType.LIGHT then explosion = "light" | |
373 | - elseif damtype == DamageType.DARKNESS then explosion = "dark" | |
374 | - elseif damtype == DamageType.NATURE then explosion = "slime" | |
375 | - elseif damtype == DamageType.BLIGHT then explosion = "slime" | |
376 | - elseif damtype == DamageType.PHYSICAL then explosion = "dark" | |
377 | - elseif damtype == DamageType.TEMPORAL then explosion = "light" | |
378 | - else explosion = "manathrust" -- damtype = DamageType.ARCANE | |
379 | - end | |
380 | - | |
381 | - -- Compute damage | |
382 | - local dam = self.use_power.damage(self, who) | |
383 | - local damrange = self.use_power.damrange(self, who) | |
384 | - local damTyp = DamageType:get(damtype or "ARCANE") | |
385 | - dam = rng.range(dam, dam * damrange) | |
386 | - dam = who:spellCrit(dam) | |
387 | - | |
388 | - game.logSeen(who, "%s unleashes a blastwave of %s%s#LAST# energy from %s %s!", who.name:capitalize(), damTyp.text_color, damTyp.name, who:his_her(), self:getName({no_add_name = true, do_color = true})) | |
389 | - who:project(tg, who.x, who.y, damtype, dam, {type=explosion}) | |
390 | - | |
391 | - game:playSoundNear(who, "talents/arcane") | |
392 | - return {id=true, used=true} | |
393 | - end, | |
394 | - "T_GLOBAL_CD", | |
395 | - {range = 0, | |
396 | - radius = function(self, who) return 1 + self.material_level end, | |
397 | - target = function(self, who) return {type="ball", range=self.use_power.range, radius=self.use_power.radius(self, who), selffire=false} end, | |
398 | - requires_target = true, | |
399 | - no_npc_use = function(self, who) return self:restrictAIUseObject(who) end, -- don't let dumb ai blow up friends | |
400 | - tactical = { ATTACKAREA = function(who, t, aitarget) | |
401 | - local weapon = who:hasStaffWeapon() | |
402 | - if not weapon or not weapon.combat then return 1 end | |
403 | - return {[weapon.combat.element or "ARCANE"] = 1 + (who.talents["T_STAFF_MASTERY"] or 0)/2.5} -- tactical AI adds staff skill to effective talent level of this ability | |
404 | - end }, | |
405 | - damage = function(self, who) return who:combatDamage(self.combat) end, | |
406 | - damrange = function(self, who) return who:combatDamageRange(self.combat) end} | |
407 | - ), | |
408 | -} | |
409 | - | |
410 | -newEntity{ | |
411 | - power_source = {arcane=true}, | |
412 | 256 | name = " of channeling", suffix=true, instant_resolve=true, |
413 | 257 | keywords = {channeling=true}, |
414 | - level_range = {30, 50}, | |
258 | + level_range = {20, 50}, | |
415 | 259 | greater_ego = 1, |
416 | 260 | rarity = 20, |
417 | 261 | cost = 45, |
418 | 262 | wielder = { |
419 | 263 | combat_spellpower = resolvers.mbonus_material(10, 8), |
420 | - mana_regen = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return 0, v end), | |
264 | + mana_regen = resolvers.mbonus_material(50, 10, function(e, v) v=v/100 return 0, v end), | |
421 | 265 | }, |
422 | - resolvers.charm("channel mana (increasing mana regeneration by 500%% for ten turns)", 30, | |
266 | + resolvers.charm("channel mana (increasing mana regeneration by 2000%% for 5 turns)", 30, | |
423 | 267 | function(self, who) |
424 | 268 | if who.mana_regen > 0 and not who:hasEffect(who.EFF_MANASURGE) then |
425 | 269 | game.logSeen(who, "%s channels mana through %s %s!", who.name:capitalize(), who:his_her(), self:getName({no_add_name = true, do_color = true})) |
426 | - who:setEffect(who.EFF_MANASURGE, 10, {power=who.mana_regen * 5}) | |
270 | + who:setEffect(who.EFF_MANASURGE, 5, {power=who.mana_regen * 20}) | |
427 | 271 | else |
428 | 272 | if who.mana_regen < 0 then |
429 | 273 | game.logPlayer(who, "Your negative mana regeneration rate is unaffected by the staff.") |
... | ... | @@ -444,7 +288,7 @@ newEntity{ |
444 | 288 | power_source = {arcane=true}, |
445 | 289 | name = " of greater warding", suffix=true, instant_resolve=true, |
446 | 290 | keywords = {['g. warding']=true}, |
447 | - level_range = {30, 50}, | |
291 | + level_range = {20, 50}, | |
448 | 292 | greater_ego = 1, |
449 | 293 | rarity = 30, |
450 | 294 | cost = 40, |
... | ... | @@ -465,9 +309,9 @@ newEntity{ |
465 | 309 | power_source = {arcane=true}, |
466 | 310 | name = " of invocation", suffix=true, instant_resolve=true, |
467 | 311 | keywords = {invocation=true}, |
468 | - level_range = {30, 50}, | |
312 | + level_range = {20, 50}, | |
469 | 313 | greater_ego = 1, |
470 | - rarity = 30, | |
314 | + rarity = 50, | |
471 | 315 | cost = 40, |
472 | 316 | wielder = { |
473 | 317 | combat_spellpower = resolvers.mbonus_material(5, 5), |
... | ... | @@ -535,11 +379,12 @@ newEntity{ |
535 | 379 | ), |
536 | 380 | } |
537 | 381 | |
382 | +-- Adds 50% of each damage element on the staff to resists.. I think | |
538 | 383 | newEntity{ |
539 | 384 | power_source = {arcane=true}, |
540 | 385 | name = " of protection", suffix=true, instant_resolve=true, |
541 | 386 | keywords = {protection=true}, |
542 | - level_range = {30, 50}, | |
387 | + level_range = {20, 50}, | |
543 | 388 | greater_ego = 1, |
544 | 389 | rarity = 30, |
545 | 390 | cost = 40, |
... | ... | @@ -555,7 +400,7 @@ newEntity{ |
555 | 400 | power_source = {arcane=true}, |
556 | 401 | name = " of wizardry", suffix=true, instant_resolve=true, |
557 | 402 | keywords = {wizardry=true}, |
558 | - level_range = {30, 50}, | |
403 | + level_range = {20, 50}, | |
559 | 404 | greater_ego = 1, |
560 | 405 | rarity = 18, |
561 | 406 | cost = 45, |
... | ... | @@ -570,7 +415,7 @@ newEntity{ |
570 | 415 | power_source = {nature=true}, |
571 | 416 | name = "lifebinding ", prefix=true, instant_resolve=true, |
572 | 417 | keywords = {lifebinding=true}, |
573 | - level_range = {30, 50}, | |
418 | + level_range = {20, 50}, | |
574 | 419 | greater_ego = 1, |
575 | 420 | rarity = 16, |
576 | 421 | cost = 35, |
... | ... | @@ -588,7 +433,7 @@ newEntity{ |
588 | 433 | power_source = {arcane=true}, |
589 | 434 | name = "infernal ", prefix=true, instant_resolve=true, |
590 | 435 | keywords = {infernal=true}, |
591 | - level_range = {30, 50}, | |
436 | + level_range = {20, 50}, | |
592 | 437 | greater_ego = 1, |
593 | 438 | rarity = 16, |
594 | 439 | cost = 35, |
... | ... | @@ -606,7 +451,7 @@ newEntity{ |
606 | 451 | power_source = {arcane=true}, |
607 | 452 | name = "bloodlich's ", prefix=true, instant_resolve=true, |
608 | 453 | keywords = {bloodlich=true}, |
609 | - level_range = {40, 50}, | |
454 | + level_range = {30, 50}, | |
610 | 455 | greater_ego = 1, |
611 | 456 | rarity = 40, |
612 | 457 | cost = 90, |
... | ... | @@ -628,7 +473,7 @@ newEntity{ |
628 | 473 | power_source = {arcane=true}, |
629 | 474 | name = "magelord's ", prefix=true, instant_resolve=true, |
630 | 475 | keywords = {magelord=true}, |
631 | - level_range = {30, 50}, | |
476 | + level_range = {20, 50}, | |
632 | 477 | greater_ego = 1, |
633 | 478 | rarity = 30, |
634 | 479 | cost = 60, |
... | ... | @@ -669,7 +514,7 @@ newEntity{ |
669 | 514 | slot_forbid = false, |
670 | 515 | twohanded = false, |
671 | 516 | keywords = {magewarrior=true}, |
672 | - level_range = {30, 50}, | |
517 | + level_range = {20, 50}, | |
673 | 518 | greater_ego = 1, |
674 | 519 | rarity = 35, |
675 | 520 | cost = 60, |
... | ... | @@ -682,7 +527,6 @@ newEntity{ |
682 | 527 | combat_spellpower = resolvers.mbonus_material(5, 5), |
683 | 528 | combat_physcrit = resolvers.mbonus_material(5, 5), |
684 | 529 | combat_spellcrit = resolvers.mbonus_material(2, 2), |
685 | - combat_critical_power = resolvers.mbonus_material(7, 7), | |
686 | 530 | }, |
687 | 531 | resolvers.genericlast(function(e) |
688 | 532 | if e.moddable_tile:find("_hand_08_0[1-5]") then |
... | ... | @@ -691,338 +535,16 @@ newEntity{ |
691 | 535 | end) |
692 | 536 | } |
693 | 537 | |
694 | - | |
695 | ---[[ | |
696 | 538 | newEntity{ |
697 | 539 | power_source = {arcane=true}, |
698 | - name = "magma ", prefix=true, instant_resolve=true, | |
699 | - keywords = {magma=true}, | |
700 | - level_range = {1, 50}, | |
701 | - rarity = 3, | |
702 | - cost = 5, | |
703 | - wielder = { | |
704 | - inc_damage={ [DamageType.FIRE] = resolvers.mbonus_material(25, 8), }, | |
705 | - }, | |
706 | -} | |
707 | - | |
708 | -newEntity{ | |
709 | - power_source = {arcane=true}, | |
710 | - name = "temporal ", prefix=true, instant_resolve=true, | |
711 | - keywords = {temporal=true}, | |
712 | - level_range = {1, 50}, | |
713 | - rarity = 3, | |
714 | - cost = 5, | |
715 | - wielder = { | |
716 | - inc_damage={ [DamageType.TEMPORAL] = resolvers.mbonus_material(25, 8), }, | |
717 | - }, | |
718 | -} | |
719 | - | |
720 | -newEntity{ | |
721 | - power_source = {arcane=true}, | |
722 | - name = "icy ", prefix=true, instant_resolve=true, | |
723 | - keywords = {icy=true}, | |
724 | - level_range = {1, 50}, | |
725 | - rarity = 3, | |
726 | - cost = 5, | |
727 | - wielder = { | |
728 | - inc_damage={ [DamageType.COLD] = resolvers.mbonus_material(25, 8), }, | |
729 | - }, | |
730 | -} | |
731 | - | |
732 | -newEntity{ | |
733 | - power_source = {arcane=true}, | |
734 | - name = "acidic ", prefix=true, instant_resolve=true, | |
735 | - keywords = {acidic=true}, | |
736 | - level_range = {1, 50}, | |
737 | - rarity = 3, | |
738 | - cost = 5, | |
739 | - wielder = { | |
740 | - inc_damage={ [DamageType.ACID] = resolvers.mbonus_material(25, 8), }, | |
741 | - }, | |
742 | -} | |
743 | - | |
744 | -newEntity{ | |
745 | - power_source = {arcane=true}, | |
746 | - name = "crackling ", prefix=true, instant_resolve=true, | |
747 | - keywords = {crackling=true}, | |
748 | - level_range = {1, 50}, | |
749 | - rarity = 3, | |
750 | - cost = 5, | |
751 | - wielder = { | |
752 | - inc_damage={ [DamageType.LIGHTNING] = resolvers.mbonus_material(25, 8), }, | |
753 | - }, | |
754 | -} | |
755 | - | |
756 | -newEntity{ | |
757 | - power_source = {nature=true}, | |
758 | - name = "naturalist's ", prefix=true, instant_resolve=true, | |
759 | - keywords = {naturalist=true}, | |
760 | - level_range = {1, 50}, | |
761 | - rarity = 3, | |
762 | - cost = 5, | |
763 | - wielder = { | |
764 | - inc_damage={ [DamageType.NATURE] = resolvers.mbonus_material(25, 8), }, | |
765 | - }, | |
766 | -} | |
767 | - | |
768 | -newEntity{ | |
769 | - power_source = {nature=true}, | |
770 | - name = "sunbathed ", prefix=true, instant_resolve=true, | |
771 | - keywords = {sunbathed=true}, | |
772 | - level_range = {1, 50}, | |
773 | - rarity = 3, | |
774 | - cost = 5, | |
775 | - wielder = { | |
776 | - inc_damage={ [DamageType.LIGHT] = resolvers.mbonus_material(25, 8), }, | |
777 | - }, | |
778 | -} | |
779 | - | |
780 | -newEntity{ | |
781 | - power_source = {nature=true}, | |
782 | - name = "shadow ", prefix=true, instant_resolve=true, | |
783 | - keywords = {shadow=true}, | |
784 | - level_range = {1, 50}, | |
785 | - rarity = 3, | |
786 | - cost = 5, | |
787 | - wielder = { | |
788 | - inc_damage={ [DamageType.DARKNESS] = resolvers.mbonus_material(25, 8), }, | |
789 | - }, | |
790 | -} | |
791 | - | |
792 | -newEntity{ | |
793 | - power_source = {arcane=true}, | |
794 | - name = " of conveyance", suffix=true, instant_resolve=true, | |
795 | - keywords = {conveyance=true}, | |
796 | - level_range = {1, 50}, | |
797 | - rarity = 10, | |
798 | - cost = 10, | |
799 | - wielder = { | |
800 | - talents_types_mastery = { | |
801 | - ["spell/conveyance"] = resolvers.mbonus_material(1, 1, function(e, v) v=v/10 return 0, v end), | |
802 | - }, | |
803 | - }, | |
804 | - max_power = 120, power_regen = 1, | |
805 | - use_power = { name = "teleport you anywhere on the level, randomly", power = 70, use = function(self, who) | |
806 | - game.level.map:particleEmitter(who.x, who.y, 1, "teleport") | |
807 | - who:teleportRandom(who.x, who.y, 200) | |
808 | - game.level.map:particleEmitter(who.x, who.y, 1, "teleport") | |
809 | - game.logSeen(who, "%s uses %s!", who.name:capitalize(), self:getName{no_count=true}) | |
810 | - return {id=true, used=true} | |
811 | - end} | |
812 | -} | |
813 | - | |
814 | -newEntity{ | |
815 | - power_source = {arcane=true}, | |
816 | - name = " of blasting", suffix=true, instant_resolve=true, | |
817 | - keywords = {blasting=true}, | |
818 | - level_range = {30, 50}, | |
819 | - greater_ego = 1, | |
820 | - rarity = 18, | |
821 | - cost = 45, | |
822 | - wielder = { | |
823 | - }, | |
824 | - max_power = 15, power_regen = 1, | |
825 | - use_talent = { id = Talents.T_BLASTWAVE, level = 2, power = 10 }, | |
826 | -} | |
827 | - | |
828 | -newEntity{ | |
829 | - power_source = {nature=true}, | |
830 | - name = "lifebinding ", prefix=true, instant_resolve=true, | |
831 | - keywords = {lifebinding=true}, | |
832 | - level_range = {30, 50}, | |
833 | - greater_ego = 1, | |
834 | - rarity = 16, | |
835 | - cost = 35, | |
836 | - wielder = { | |
837 | - combat_spellpower = resolvers.mbonus_material(7, 3), | |
838 | - life_regen = resolvers.mbonus_material(15, 5, function(e, v) v=v/10 return 0, v end), | |
839 | - healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return 0, v end), | |
840 | - inc_stats = { | |
841 | - [Stats.STAT_CON] = resolvers.mbonus_material(4, 3), | |
842 | - }, | |
843 | - }, | |
844 | -} | |
845 | - | |
846 | -newEntity{ | |
847 | - power_source = {arcane=true}, | |
848 | - name = "infernal ", prefix=true, instant_resolve=true, | |
849 | - keywords = {infernal=true}, | |
850 | - level_range = {30, 50}, | |
851 | - greater_ego = 1, | |
852 | - rarity = 16, | |
853 | - cost = 35, | |
854 | - wielder = { | |
855 | - combat_spellpower = resolvers.mbonus_material(7, 3), | |
856 | - see_invisible = resolvers.mbonus_material(15, 5), | |
857 | - inc_damage = { | |
858 | - [DamageType.FIRE] = resolvers.mbonus_material(20, 5), | |
859 | - [DamageType.BLIGHT] = resolvers.mbonus_material(20, 5), | |
860 | - }, | |
861 | - }, | |
862 | -} | |
863 | - | |
864 | -newEntity{ | |
865 | - power_source = {arcane=true}, | |
866 | - name = "chronomancer's ", prefix=true, instant_resolve=true, | |
867 | - keywords = {chronomancer=true}, | |
868 | - level_range = {30, 50}, | |
869 | - greater_ego = 1, | |
870 | - rarity = 16, | |
871 | - cost = 35, | |
872 | - wielder = { | |
873 | - combat_spellpower = resolvers.mbonus_material(7, 3), | |
874 | - movement_speed = 0.1, | |
875 | - inc_damage = { | |
876 | - [DamageType.TEMPORAL] = resolvers.mbonus_material(20, 5), | |
877 | - }, | |
878 | - }, | |
879 | - | |
880 | -} | |
881 | - | |
882 | -newEntity{ | |
883 | - power_source = {nature=true}, | |
884 | - name = "abyssal ", prefix=true, instant_resolve=true, | |
885 | - keywords = {abyssal=true}, | |
886 | - level_range = {30, 50}, | |
887 | - greater_ego = 1, | |
888 | - rarity = 40, | |
889 | - cost = 80, | |
890 | - wielder = { | |
891 | - inc_damage = { | |
892 | - [DamageType.COLD] = resolvers.mbonus_material(25, 5), | |
893 | - [DamageType.DARKNESS] = resolvers.mbonus_material(25, 5), | |
894 | - }, | |
895 | - resists_pen = { | |
896 | - [DamageType.COLD] = resolvers.mbonus_material(15, 5), | |
897 | - [DamageType.DARKNESS] = resolvers.mbonus_material(15, 5), | |
898 | - }, | |
899 | - }, | |
900 | -} | |
901 | - | |
902 | -newEntity{ | |
903 | - power_source = {arcane=true}, | |
904 | - name = "magelord's ", prefix=true, instant_resolve=true, | |
905 | - keywords = {magelord=true}, | |
906 | - level_range = {10, 50}, | |
907 | - greater_ego = 1, | |
908 | - rarity = 40, | |
909 | - cost = 60, | |
910 | - wielder = { | |
911 | - max_mana = resolvers.mbonus_material(100, 20), | |
912 | - combat_spellpower = resolvers.mbonus_material(20, 5), | |
913 | - }, | |
914 | -} | |
915 | - | |
916 | -newEntity{ | |
917 | - power_source = {arcane=true}, | |
918 | - name = "polar ", prefix=true, instant_resolve=true, | |
919 | - keywords = {polar=true}, | |
920 | - level_range = {10, 50}, | |
921 | - greater_ego = 1, | |
922 | - rarity = 15, | |
923 | - cost = 30, | |
924 | - wielder = { | |
925 | - combat_spellpower = resolvers.mbonus_material(12, 3), | |
926 | - inc_damage = { | |
927 | - [DamageType.COLD] = resolvers.mbonus_material(15, 5), | |
928 | - }, | |
929 | - on_melee_hit = { | |
930 | - [DamageType.ICE] = resolvers.mbonus_material(10, 5), | |
931 | - }, | |
932 | - }, | |
933 | -} | |
934 | - | |
935 | -newEntity{ | |
936 | - power_source = {arcane=true}, | |
937 | - name = "bloodlich's ", prefix=true, instant_resolve=true, | |
938 | - keywords = {bloodlich=true}, | |
540 | + name = " of the prodigy", suffix=true, instant_resolve=true, | |
541 | + keywords = {prodigy=true}, | |
939 | 542 | level_range = {40, 50}, |
940 | 543 | greater_ego = 1, |
941 | - rarity = 40, | |
942 | - cost = 90, | |
943 | - wielder = { | |
944 | - inc_stats = { | |
945 | - [Stats.STAT_MAG] = resolvers.mbonus_material(9, 1), | |
946 | - }, | |
947 | - inc_damage = { | |
948 | - [DamageType.ACID] = resolvers.mbonus_material(10, 5), | |
949 | - [DamageType.LIGHTNING] = resolvers.mbonus_material(10, 5), | |
950 | - [DamageType.FIRE] = resolvers.mbonus_material(10, 5), | |
951 | - [DamageType.COLD] = resolvers.mbonus_material(10, 5), | |
952 | - }, | |
953 | - }, | |
954 | -} | |
955 | - | |
956 | -newEntity{ | |
957 | - power_source = {arcane=true}, | |
958 | - name = " of conflagration", suffix=true, instant_resolve=true, | |
959 | - keywords = {conflagration=true}, | |
960 | - level_range = {30, 50}, | |
961 | - greater_ego = 1, | |
962 | - rarity = 30, | |
963 | - cost = 60, | |
964 | - wielder = { | |
965 | - mana_regen = resolvers.mbonus_material(50, 10, function(e, v) v=v/100 return 0, -v end), | |
966 | - }, | |
967 | -} | |
968 | - | |
969 | -newEntity{ | |
970 | - power_source = {arcane=true}, | |
971 | - name = " of lightning", suffix=true, instant_resolve=true, | |
972 | - keywords = {lightning=true}, | |
973 | - level_range = {30, 50}, | |
974 | - greater_ego = 1, | |
975 | - rarity = 30, | |
976 | - cost = 60, | |
977 | - max_power = 30, power_regen = 1, | |
978 | - use_talent = { id = Talents.T_CHAIN_LIGHTNING, level = 3, power = 20 }, | |
979 | - wielder = { | |
980 | - | |
981 | - }, | |
982 | -} | |
983 | - | |
984 | -newEntity{ | |
985 | - power_source = {arcane=true}, | |
986 | - name = " of the stars", suffix=true, instant_resolve=true, | |
987 | - keywords = {stars=true}, | |
988 | - level_range = {1, 50}, | |
989 | - greater_ego = 1, | |
990 | - rarity = 15, | |
991 | - cost = 30, | |
992 | - max_power = 30, power_regen = 1, | |
993 | - use_talent = { id = Talents.T_STARFALL, level = 2, power = 20 }, | |
994 | - wielder = { | |
995 | - combat_spellpower = resolvers.mbonus_material(12, 3), | |
996 | - }, | |
997 | -} | |
998 | - | |
999 | -newEntity{ | |
1000 | - power_source = {arcane=true}, | |
1001 | - name = " of ruination", suffix=true, instant_resolve=true, | |
1002 | - keywords = {ruination=true}, | |
1003 | - level_range = {1, 50}, | |
1004 | - greater_ego = 1, | |
1005 | - rarity = 15, | |
1006 | - cost = 30, | |
1007 | - max_power = 40, power_regen = 1, | |
1008 | - use_talent = { id = Talents.T_CORRUPTED_NEGATION, level = 2, power = 30 }, | |
1009 | - wielder = { | |
1010 | - }, | |
1011 | -} | |
1012 | - | |
1013 | - | |
1014 | -newEntity{ | |
1015 | - power_source = {arcane=true}, | |
1016 | - name = " of divination", suffix=true, instant_resolve=true, | |
1017 | - keywords = {divination=true}, | |
1018 | - level_range = {1, 50}, | |
1019 | - rarity = 8, | |
1020 | - cost = 8, | |
544 | + rarity = 80, | |
545 | + cost = 45, | |
1021 | 546 | wielder = { |
1022 | - talents_types_mastery = { | |
1023 | - ["spell/divination"] = resolvers.mbonus_material(1, 1, function(e, v) v=v/10 return 0, v end), | |
1024 | - }, | |
547 | + spellsurge_on_crit = resolvers.mbonus_material(5, 5), | |
548 | + inc_stats = { [Stats.STAT_MAG] = resolvers.mbonus_material(15, 5), [Stats.STAT_WIL] = resolvers.mbonus_material(15, 5), [Stats.STAT_CUN] = resolvers.mbonus_material(15, 5) }, | |
1025 | 549 | }, |
1026 | -} | |
1027 | - | |
1028 | -]] | |
550 | +} | |
\ No newline at end of file | ... | ... |
-
Please register or login to post a comment