What do these egos do? (Evis/Crip/Torm/Grav etc.)

Everything about ToME 4.x.x. No spoilers, please

Moderator: Moderator

Post Reply
Message
Author
Sooty
Higher
Posts: 55
Joined: Tue Dec 18, 2012 11:04 am

What do these egos do? (Evis/Crip/Torm/Grav etc.)

#1 Post by Sooty »

I can't seem to find a concrete answer to this - what exactly does crushing, crippling, wounding and tormenting do, and how are these effects saved against? I noticed I had been doing all sorts of random status effects such as pinning, stunning, blinding, confusing and so forth just by attacking with my daggers/bows with these these 3 egos, but because I don't exactly know how these things are being calculated I'm not sure whether weapons which don't have these traits but have other advantages are good for me.

Edit: Added crushing to the list!

lukep
Sher'Tul Godslayer
Posts: 1712
Joined: Mon Mar 14, 2011 10:32 am
Location: Canada

Re: What do these egos do? (Eviseration, Crippling, Torment)

#2 Post by lukep »

Crippling and eviscerating are applied with accuracy, saved with physical save. Torment is mindpower vs. Mind save. Here's the code, which is hopefully clear enough:

Code: Select all

 newEntity{
  45         power_source = {technique=true},
  46         name = " of crippling", suffix=true, instant_resolve=true,
  47         keywords = {crippling=true},
  48         level_range = {1, 50},
  49         rarity = 3,
  50         cost = 4,
  51         wielder = {
  52                 combat_physcrit = resolvers.mbonus_material(10, 5),
  53         },
  54         combat = {
  55                 special_on_crit = {desc="cripple the target", fct=function(combat, who, target)
  56                         local power = 5 + (who:combatPhysicalpower()/5)
  57                         target:setEffect(target.EFF_CRIPPLE, 4, {src=who, atk=power, dam=power, apply_power=who:combatAttack(combat)})
  58                 end},
  59         },
  60 }

Code: Select all

newEntity{
 113         power_source = {technique=true},
 114         name = " of evisceration", suffix=true, instant_resolve=true ,
 115         keywords = {evisc=true},
 116         level_range = {30, 50},
 117         greater_ego = 1,
 118         rarity = 20,
 119         cost = 40,
 120         wielder = {
 121                 combat_physcrit = resolvers.mbonus_material(10, 5),
 122                 combat_dam = resolvers.mbonus_material(10, 5),
 123         },
 124         combat = {
 125                 special_on_crit = {desc="wounds the target", fct=function(combat, who, target)
 126                         local dam = 5 + (who:combatPhysicalpower()/5)
 127                         if target:canBe("cut") then
 128                                 target:setEffect(target.EFF_DEEP_WOUND, 7, {src=who, heal_factor=dam * 2, power=dam, apply_power=who:combatAttack()})
 129                         end
 130                 end},
 131         },
 132 }

Code: Select all

newEntity{
 907         power_source = {psionic=true},
 908         name = " of torment", suffix=true, instant_resolve=true,
 909         keywords = {torment=true},
 910         level_range = {30, 50},
 911         greater_ego = 1,
 912         rarity = 30,
 913         cost = 30,
 914         wielder = {
 915                 resists_pen = {
 916                         [DamageType.MIND] = resolvers.mbonus_material(10, 5),
 917                         [DamageType.DARKNESS] = resolvers.mbonus_material(10, 5),
 918                 },
 919         },
 920         combat = {
 921                 special_on_hit = {desc="20% chance to torment the target", fct=function(combat, who, target)
 922                         if not rng.percent(20) then return end
 923                         local eff = rng.table{"stun", "blind", "pin", "confusion", "silence",}
 924                         if not target:canBe(eff) then return end
 925                         if not who:checkHit(who:combatMindpower(), target:combatMentalResist()) then return end
 926                         if eff == "stun" then target:setEffect(target.EFF_STUNNED, 3, {})
 927                         elseif eff == "blind" then target:setEffect(target.EFF_BLINDED, 3, {})
 928                         elseif eff == "pin" then target:setEffect(target.EFF_PINNED, 3, {})
 929                         elseif eff == "confusion" then target:setEffect(target.EFF_CONFUSED, 3, {power=60})
 930                         elseif eff == "silence" then target:setEffect(target.EFF_SILENCED, 3, {})
 931                         end
 932                 end},
 933         },
 934 }
EDIT:

Code: Select all

newEntity{
 569         power_source = {nature=true},
 570         name = " of gravity", suffix=true, instant_resolve=true,
 571         keywords = {gravity=true},
 572         level_range = {30, 50},
 573         greater_ego = 1,
 574         rarity = 30,
 575         cost = 30,
 576         wielder = {
 577                 inc_damage = {
 578                         [DamageType.PHYSICAL] = resolvers.mbonus_material(10, 5),
 579                 },
 580         },
 581         combat = {
 582                 melee_project={
 583                         [DamageType.GRAVITY] = resolvers.mbonus_material(15, 5),
 584                 },
 585                 special_on_hit = {desc="25% chance to crush the target", fct=function(combat, who, target)
 586                         if not rng.percent(25) then return end
 587                         if target:attr("never_move") then
 588                                 local tg = {type="hit", range=1}
 589                                 who:project(tg, target.x, target.y, engine.DamageType.IMPLOSION, 10 + who:combatMindpower()/4)
 590                         elseif target:canBe("pin") then
 591                                 target:setEffect(target.EFF_PINNED, 3, {src=who, apply_power=who:combatAttack(combat)})
 592                         else
 593                                 game.logSeen(target, "%s resists the pin!", target.name:capitalize())
 594                         end
 595                 end},
 596         },
 597 }
Last edited by lukep on Sun Jan 06, 2013 6:23 pm, edited 1 time in total.
Some of my tools for helping make talents:
Melee Talent Creator
Annotated Talent Code (incomplete)

Sooty
Higher
Posts: 55
Joined: Tue Dec 18, 2012 11:04 am

Re: What do these egos do? (Evis/Crip/Torm/Grav etc.)

#3 Post by Sooty »

Thanks very helpful! How do you search the code for these things :x

lukep
Sher'Tul Godslayer
Posts: 1712
Joined: Mon Mar 14, 2011 10:32 am
Location: Canada

Re: What do these egos do? (Evis/Crip/Torm/Grav etc.)

#4 Post by lukep »

I found it through the git page (http://git.develz.org/?p=tome.git;a=summary), and you can also extract it from the module (in TOME FOLDER/game/modules/tome-1.0.0.teaa) as a .zip. I found those snippits in data/general/objects/egos/weapons.lua.

As for more general code searching tips, most of the important things are in damagetypes.lua, the various talent files, mod/class/interface/combat.lua, and maybe the timed effect files.

EDIT: also added gravity to post above.
Some of my tools for helping make talents:
Melee Talent Creator
Annotated Talent Code (incomplete)

phantomglider
Archmage
Posts: 372
Joined: Fri Jan 20, 2012 12:13 am

Re: What do these egos do? (Evis/Crip/Torm/Grav etc.)

#5 Post by phantomglider »

If you can't tell from the code, Gravity pins with accuracy vs. physical power, and against pinned targets instead applies a slow and a damage-over-time effect based on mindpower.
<Ferret> The Spellblaze was like a nuclear disaster apparently: ammo became the "real" currency.

Post Reply