Skip to content

Commit

Permalink
Merge pull request #77658 from Standing-Storm/anabolic-eoc
Browse files Browse the repository at this point in the history
[MoM] Update Anabolic Rejuvenation and Accelerated Resuscitation with EoCified healing
  • Loading branch information
Night-Pryanik authored Nov 8, 2024
2 parents cd7da94 + c0b3a28 commit 11efb63
Show file tree
Hide file tree
Showing 6 changed files with 190 additions and 63 deletions.
4 changes: 2 additions & 2 deletions data/mods/MindOverMatter/PowerDescriptionSpoilers.md
Original file line number Diff line number Diff line change
Expand Up @@ -1299,7 +1299,7 @@ Powers causing telepathic damage have a 5% chance to down the target, a 33% chan
*Duration*: 2 minutes and 26 seconds to 6 minutes and 12 seconds, plus 29 seconds to 1 minute and 50 seconds per power level<br />
*Stamina Cost*: 10000, minus 150 per level to a minimum of 6500<br />
*Channeling Time*: 10 seconds<br />
*Effects*: Use up the psion's bodily reserves to speed healing to a preternatural rate. Every 30 seconds, the psion heals one hit point to every body part, but whenever a healing tick occurs, the psion loses between 50 and 250 kCal, 50 to 200 units of iron, 100 to 200 units of calcium, 20 to 80 units of vitamin C, and gains 2 to 10 points of fatigue.<br />
*Effects*: Use up the psion's bodily reserves to speed healing to a preternatural rate. Every 20 to 35 seconds, minus 0.5 seconds per power level to a minimum of 3 to 7 seconds, the psion heals one hit point to every body part, but whenever a healing tick occurs, the psion loses between 50 and 250 kCal, 50 to 200 units of iron, 100 to 200 units of calcium, 20 to 60 units of vitamin C, and gains 2 to 10 points of fatigue.<br />
*Prerequisites*: Healthy Glow 14 *or* Revitalizing Meditation 9, Damage Balancing 10 *or* Detoxification 7 *or* Blood Purge 5<br />

## Accelerated Resuscitation (C)
Expand All @@ -1308,5 +1308,5 @@ Powers causing telepathic damage have a 5% chance to down the target, a 33% chan
*Duration*: 1 hour 6 minutes and 2 minutes and 18 seconds to 3 hours and 26 minutes, plus 16 minutes and 2 seconds to 46 minutes and 59 seconds per power level<br />
*Stamina Cost*: 9000, minus 125 per level to a minimum of 6000<br />
*Channeling Time*: 30 seconds<br />
*Effects*: Prepare the psion's body for a potentially fatal shock. If the psion takes fatal damage while this power is maintained, any body part below 10 hit points will be healed to 10 hit points, their attributes and speed will have no penalties based on pain (penalties increase by 10% every 30 seconds until they reach the normal level) and a much faster Anabolic Rejuvenation is placed on them, ticking once every second for 20 seconds. However, the psion's total stored kCal is reduced by 20% to fuel the resuscitation, and each Anabolic Rejuvenation costs 5x the kCal, iron, etc that it would if the psion had used Anabolic Rejuvenation.<br />
*Effects*: Prepare the psion's body for a potentially fatal shock. If the psion takes fatal damage while this power is maintained, any body part below 15 hit points will be healed to 15 hit points, their attributes and speed will have no penalties based on pain (penalties increase by 10% every 30 seconds until they reach the normal level) and a much faster Anabolic Rejuvenation is placed on them, ticking once every 1 to 3 seconds for 20 seconds. However, the psion's total stored kCal is reduced by 20% to fuel the resuscitation, and each Anabolic Rejuvenation costs 3x the kCal, iron, etc that it would if the psion had used Anabolic Rejuvenation.<br />
*Prerequisites*: Anabolic Rejuvenation 6 *or* Banish Illness 8 *and* Revitalizing Meditation 6<br />
38 changes: 3 additions & 35 deletions data/mods/MindOverMatter/effects/effects_psionic.json
Original file line number Diff line number Diff line change
Expand Up @@ -2419,51 +2419,19 @@
{
"type": "effect_type",
"id": "effect_vita_super_heal",
"name": [ "Anabolic Rejuvenation" ],
"desc": [ "You are healing extraordinarily quickly." ],
"apply_message": "",
"remove_message": "Your body aches as your preternatural healing slows to a stop.",
"rating": "good",
"removes_effects": [ "bleed" ],
"enchantments": [
{
"intermittent_activation": {
"effects": [
{
"frequency": "30 seconds",
"spell_effects": [ { "id": "vita_super_heal_healing" }, { "id": "vita_super_heal_drain" } ]
}
]
}
}
],
"flags": [ "BLEED_IMMUNE" ]
"rating": "good"
},
{
"type": "effect_type",
"id": "effect_vita_super_heal_return_from_death",
"desc": [ "You are healing extraordinarily quickly." ],
"apply_message": "",
"remove_message": "Your body aches as your preternatural healing slows to a stop.",
"rating": "good",
"removes_effects": [ "bleed" ],
"enchantments": [
{
"intermittent_activation": {
"effects": [
{
"frequency": "1 seconds",
"spell_effects": [
{ "id": "vita_super_heal_healing" },
{ "id": "vita_super_heal_drain" },
{ "id": "vita_super_heal_drain" },
{ "id": "vita_super_heal_drain" }
]
}
]
}
}
],
"flags": [ "BLEED_IMMUNE" ]
"rating": "good"
},
{
"type": "effect_type",
Expand Down
25 changes: 25 additions & 0 deletions data/mods/MindOverMatter/obsolete/powers.json
Original file line number Diff line number Diff line change
Expand Up @@ -200,5 +200,30 @@
"base_casting_time": 200,
"final_casting_time": 75,
"casting_time_increment": -8
},
{
"id": "vita_super_heal_healing",
"type": "SPELL",
"name": "Anabolic Rejuvenation Heal",
"description": "The healing part of Anabolic Rejuvenation.",
"valid_targets": [ "self" ],
"teachable": false,
"min_damage": { "math": [ "min((-1 * u_nether_attunement_power_scaling), -1)" ] },
"max_damage": { "math": [ "min((-1 * u_nether_attunement_power_scaling), -1)" ] },
"effect": "attack",
"shape": "blast",
"flags": [ "PSIONIC", "SILENT" ]
},
{
"id": "vita_super_heal_drain",
"type": "SPELL",
"name": "Anabolic Rejuvenation draining",
"description": "The draining part of Anabolic Rejuvenation.",
"valid_targets": [ "self" ],
"teachable": false,
"effect": "effect_on_condition",
"effect_str": "EOC_VITA_SUPER_HEAL_DRAIN",
"shape": "blast",
"flags": [ "PSIONIC", "SILENT" ]
}
]
25 changes: 0 additions & 25 deletions data/mods/MindOverMatter/powers/vitakinesis.json
Original file line number Diff line number Diff line change
Expand Up @@ -624,31 +624,6 @@
},
"base_casting_time": { "math": [ "u_effect_intensity('effect_vita_health') > -1 ? 10 : 1000" ] }
},
{
"id": "vita_super_heal_healing",
"type": "SPELL",
"name": "Anabolic Rejuvenation Heal",
"description": "The healing part of Anabolic Rejuvenation.",
"valid_targets": [ "self" ],
"teachable": false,
"min_damage": { "math": [ "min((-1 * u_nether_attunement_power_scaling), -1)" ] },
"max_damage": { "math": [ "min((-1 * u_nether_attunement_power_scaling), -1)" ] },
"effect": "attack",
"shape": "blast",
"flags": [ "PSIONIC", "SILENT" ]
},
{
"id": "vita_super_heal_drain",
"type": "SPELL",
"name": "Anabolic Rejuvenation draining",
"description": "The draining part of Anabolic Rejuvenation.",
"valid_targets": [ "self" ],
"teachable": false,
"effect": "effect_on_condition",
"effect_str": "EOC_VITA_SUPER_HEAL_DRAIN",
"shape": "blast",
"flags": [ "PSIONIC", "SILENT" ]
},
{
"id": "vita_limb_restore",
"type": "SPELL",
Expand Down
15 changes: 15 additions & 0 deletions data/mods/MindOverMatter/powers/vitakinesis_concentration_eoc.json
Original file line number Diff line number Diff line change
Expand Up @@ -467,6 +467,21 @@
{ "u_message": "You feel a sudden sensation of fatigue and your wounds itch.", "type": "good" },
{ "run_eocs": [ "EOC_POWER_MAINTENANCE_PLUS_ONE", "EOC_POWER_MAINTENANCE_PLUS_ONE" ] },
{ "u_add_effect": "effect_vita_super_heal", "duration": "PERMANENT" },
{
"queue_eocs": "EOC_VITAKIN_SUPER_HEAL_RUN_HEALING",
"time_in_future": [
{
"math": [
"20 - min( ( (u_spell_level('vita_super_heal') * 0.5) * scaling_factor(u_val('intelligence') ) * u_nether_attunement_power_scaling), 17) "
]
},
{
"math": [
"35 - min( ( (u_spell_level('vita_super_heal') * 0.5) * scaling_factor(u_val('intelligence') ) * u_nether_attunement_power_scaling), 28) "
]
}
]
},
{
"queue_eocs": "EOC_VITAKIN_SUPER_HEAL_DRAIN",
"time_in_future": [
Expand Down
146 changes: 145 additions & 1 deletion data/mods/MindOverMatter/powers/vitakinesis_eoc.json
Original file line number Diff line number Diff line change
Expand Up @@ -1049,14 +1049,116 @@
{ "math": [ "u_vitamin('vitamin_psionic_drain')", "+=", "rng( 45,90 )" ] }
]
},
{
"type": "effect_on_condition",
"id": "EOC_VITAKIN_SUPER_HEAL_RUN_HEALING",
"condition": { "u_has_effect": "effect_vita_super_heal" },
"effect": [
{ "run_eocs": [ "EOC_VITAKIN_SUPER_HEAL_EFFECTS", "EOC_VITA_SUPER_HEAL_DRAIN" ] },
{
"queue_eocs": "EOC_VITAKIN_SUPER_HEAL_RUN_HEALING",
"time_in_future": [
{
"math": [
"20 - min( ( (u_spell_level('vita_super_heal') * 0.5) * scaling_factor(u_val('intelligence') ) * u_nether_attunement_power_scaling), 17) "
]
},
{
"math": [
"35 - min( ( (u_spell_level('vita_super_heal') * 0.5) * scaling_factor(u_val('intelligence') ) * u_nether_attunement_power_scaling), 28) "
]
}
]
}
]
},
{
"type": "effect_on_condition",
"id": "EOC_VITAKIN_SUPER_HEAL_EFFECTS",
"effect": [
{
"if": { "math": [ "u_vitamin('redcells')", "<", "0" ] },
"then": { "math": [ "u_vitamin('redcells')", "+=", "150" ] }
},
{
"if": { "math": [ "u_vitamin('redcells')", "<", "-1000" ] },
"then": { "math": [ "u_vitamin('redcells')", "+=", "500" ] }
},
{
"if": { "math": [ "u_vitamin('redcells')", "<", "-10000" ] },
"then": { "math": [ "u_vitamin('redcells')", "+=", "2500" ] }
},
{
"if": { "math": [ "u_vitamin('blood')", "<", "0" ] },
"then": { "math": [ "u_vitamin('blood')", "+=", "150" ] }
},
{
"if": { "math": [ "u_vitamin('blood')", "<", "-1000" ] },
"then": { "math": [ "u_vitamin('blood')", "+=", "500" ] }
},
{
"if": { "math": [ "u_vitamin('blood')", "<", "-10000" ] },
"then": { "math": [ "u_vitamin('blood')", "+=", "2500" ] }
},
{
"if": {
"or": [
{ "math": [ "u_hp('arm_l')", "<", "u_hp_max('arm_l')" ] },
{ "math": [ "u_hp('arm_r')", "<", "u_hp_max('arm_r')" ] },
{ "math": [ "u_hp('leg_l')", "<", "u_hp_max('leg_l')" ] },
{ "math": [ "u_hp('leg_r')", "<", "u_hp_max('leg_r')" ] },
{ "math": [ "u_hp('torso')", "<", "u_hp_max('torso')" ] },
{ "math": [ "u_hp('head')", "<", "u_hp_max('head')" ] }
]
},
"then": {
"foreach": "array",
"target": [ "arm_l", "arm_r", "leg_l", "leg_r", "torso", "head" ],
"var": { "context_val": "id" },
"effect": [
{
"if": { "math": [ "u_hp(_id)", "<", "u_hp_max(_id)" ] },
"then": {
"math": [ "u_hp(_id)", "+=", "max(( 1 * scaling_factor(u_val('intelligence') ) * u_nether_attunement_power_scaling), 1)" ]
}
}
]
}
},
{
"if": { "math": [ "u_effect_intensity('bleed', 'bodypart': 'arm_l')", ">=", "1" ] },
"then": { "u_add_effect": "bleed", "target_part": "arm_l", "duration": 0, "intensity": -1 }
},
{
"if": { "math": [ "u_effect_intensity('bleed', 'bodypart': 'arm_r')", ">=", "1" ] },
"then": { "u_add_effect": "bleed", "target_part": "arm_r", "duration": 0, "intensity": -1 }
},
{
"if": { "math": [ "u_effect_intensity('bleed', 'bodypart': 'leg_l')", ">=", "1" ] },
"then": { "u_add_effect": "bleed", "target_part": "leg_l", "duration": 0, "intensity": -1 }
},
{
"if": { "math": [ "u_effect_intensity('bleed', 'bodypart': 'leg_r')", ">=", "1" ] },
"then": { "u_add_effect": "bleed", "target_part": "leg_r", "duration": 0, "intensity": -1 }
},
{
"if": { "math": [ "u_effect_intensity('bleed', 'bodypart': 'torso')", ">=", "1" ] },
"then": { "u_add_effect": "bleed", "target_part": "torso", "duration": 0, "intensity": -1 }
},
{
"if": { "math": [ "u_effect_intensity('bleed', 'bodypart': 'head')", ">=", "1" ] },
"then": { "u_add_effect": "bleed", "target_part": "head", "duration": 0, "intensity": -1 }
}
]
},
{
"type": "effect_on_condition",
"id": "EOC_VITA_SUPER_HEAL_DRAIN",
"effect": [
{ "math": [ "u_calories('dont_affect_weariness': true)", "-=", "rng( 150,650 )" ] },
{ "math": [ "u_vitamin('iron')", "-=", "rng( 50,200 )" ] },
{ "math": [ "u_vitamin('calcium')", "-=", "rng( 100,200 )" ] },
{ "math": [ "u_vitamin('vitC')", "-=", "rng( 20,80 )" ] },
{ "math": [ "u_vitamin('vitC')", "-=", "rng( 20,60 )" ] },
{ "math": [ "u_val('sleepiness')", "+=", "rng( 2,10 )" ] }
]
},
Expand All @@ -1070,6 +1172,33 @@
{ "run_eocs": [ "EOC_VITAKINESIS_RETURN_FROM_DEATH_START" ] }
]
},
{
"type": "effect_on_condition",
"id": "EOC_VITAKIN_RETURN_FROM_DEATH_RUN_HEALING",
"condition": { "u_has_effect": "effect_vita_super_heal_return_from_death" },
"effect": [
{
"run_eocs": [
"EOC_VITAKIN_SUPER_HEAL_EFFECTS",
"EOC_VITA_SUPER_HEAL_DRAIN",
"EOC_VITA_SUPER_HEAL_DRAIN",
"EOC_VITA_SUPER_HEAL_DRAIN"
]
},
{ "math": [ "u_vitamin('vitamin_psionic_drain')", "+=", "rand(10) + 2" ] },
{
"queue_eocs": "EOC_VITAKIN_RETURN_FROM_DEATH_RUN_HEALING",
"time_in_future": [
1,
{
"math": [
"3 - min( ( (u_spell_level('vita_return_from_death') / 25) * scaling_factor(u_val('intelligence') ) * u_nether_attunement_power_scaling), 2) "
]
}
]
}
]
},
{
"type": "effect_on_condition",
"id": "EOC_VITAKINESIS_RETURN_FROM_DEATH_DAMAGE_TRACKER",
Expand Down Expand Up @@ -1133,6 +1262,21 @@
{ "u_lose_effect": "deaf" },
{ "u_lose_effect": "effect_vita_return_from_death" },
{ "u_add_effect": "effect_vita_super_heal_return_from_death", "duration": "20 seconds" },
{
"queue_eocs": "EOC_VITAKIN_RETURN_FROM_DEATH_RUN_HEALING",
"time_in_future": [
{
"math": [
"2 - min( ( (u_spell_level('vita_return_from_death') / 25) * scaling_factor(u_val('intelligence') ) * u_nether_attunement_power_scaling), 1) "
]
},
{
"math": [
"3 - min( ( (u_spell_level('vita_return_from_death') / 25) * scaling_factor(u_val('intelligence') ) * u_nether_attunement_power_scaling), 2) "
]
}
]
},
{ "u_add_effect": "effect_vita_super_heal_pain_allayed", "duration": "300 seconds" }
]
}
Expand Down

0 comments on commit 11efb63

Please sign in to comment.