Page 1 of 1

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

Posted: Sun Jan 06, 2013 4:03 am
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!

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

Posted: Sun Jan 06, 2013 4:32 am
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 }

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

Posted: Sun Jan 06, 2013 11:02 am
by Sooty
Thanks very helpful! How do you search the code for these things :x

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

Posted: Sun Jan 06, 2013 6:21 pm
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.

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

Posted: Sun Jan 06, 2013 8:55 pm
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.