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 }