forums | blogs | polls | tutorials | downloads | rules | help

Add new comment

Moros wrote:

I'm more interested in how boromonokli is going to fix this death resistance problem with the infect curse, do go into minute detail about the file\s involved as well as any code changes you make as well as its been a long time since I've been inside those spell files and any other files related to them.

I actually couldn't fix that. I realized it's attack damage modifiers are in fact negative, and are set to follow the damage curve of magic miniboss AoE (base_actor_evil_magic_aoe_miniboss in actor_evil_magic_aoe.gas), which is the following (set in the attack component):

damage_max = 1.25 * ((1.9 * #monster_level) + 7.1) * (1.0 + 0.04 * #monster_level);
damage_min = 0.75 * ((1.9 * #monster_level) + 7.1) * (1.0 + 0.04 * #monster_level);

The spell itself, spell_monster_infect in spl_ds2_monster_spells.gas has this damage modifier and this helpful comment:

// Set Damage Over Time here. DoT is applied every 0.5 seconds for full duration.
// DoT = 1/10th of normal monster damage per second
attack_damage_modifier_max = 0.1 * (1.25 * ((1.9 * #monster_level) + 7.2) * (1.0 + 0.035 * #monster_level)) - (1.25 * ((1.9 * #monster_level) + 7.2) * (1.0 + 0.035 * #monster_level));
attack_damage_modifier_min = 0.1 * (0.75 * ((1.9 * #monster_level) + 7.2) * (1.0 + 0.035 * #monster_level)) - (1.25 * ((1.9 * #monster_level) + 7.2) * (1.0 + 0.035 * #monster_level));

However, our problem boss is the grand wizard, whose template is defined in sharded_petra_male_magic_boss_stats in sharded_petra_soldier.gas, and specializes base_sharded_petra_male_magic_boss, that in turn specializes base_actor_evil_magic_miniboss, with no attack overrides. The attack component for that looks like this, in actor_evil_magic.gas

damage_max = 1.25 * ((4.7 * #monster_level) + 17.8) * (1.0 + 0.04 * #monster_level); damage_min = 0.75 * ((4.7 * #monster_level) + 17.8) * (1.0 + 0.04 * #monster_level);

A significant chunk higher than 10%, right? And this time it was GPG that bungled this, not someone else.

To solve this, I went to the base_sharded_petra_male_magic_boss template, and overrode it's attack to the aoe miniboss formula. To make sure it can still deal damage, I made a copy of the grave beam and replaced the boss' standard grave beam with with it:

[t:template,n:spell_monster_grave_beam_petraboss]
{
doc = "spell_monster_grave_beam";
specializes = base_spell_monster_attack;
[magic]
{
damage_type = dmt_death;
attack_damage_modifier_max = 1.55 * ((1.9 * #monster_level) + 7.2) * (1.0 + 0.04 * #monster_level);
attack_damage_modifier_min = 1.05 * ((1.9 * #monster_level) + 7.2) * (1.0 + 0.04 * #monster_level);
}
[spell_single]
{
cast_ffx = ffx_spell_grave_beam;
}
}

To my surprise, even as I'm overleveled it was dealing decent damage with okay resistances (50-60 without debuff) once infect was applied to my party. From then on it was just going through the rest of the actors and either removing infect from regular mage types, or replacing it on bosses, or fixing the bosses' damage so it won't kill the party.