I've uploaded a new version. Main practical changes to the mage knight classes are:
-Moved the damage shrug off from Flexible Resistance Training to Eldritch Wardings, and the surge value from Eldritch Wardings to Flexible Resistance Training. -Removed the damage delay from Eldritch Wardings (but see below!) and replaced it with a feature that speeds inscription cooldowns a bit. -Changed the alternate light armor boost from split resist all/armor to damage mitigation (see below). -Changed Rapid Strike from granting free moves to imposing some sort of mobility-restricting effect on either the target, or all enemies in a radius if the target dies. -Pretty much all the healing and shielding talents are no longer instant use. However, when used manually, they have a Secondary Effect; one turn later, they'll trigger either another basic heal or a basic shield (which boosts an existing shield) on the caster only, generally at reduced power from the original (but not always if the talent's power is divided up among other things). The amount is then boosted based on how much life or shield value you have compared to your maximum when it triggers. This should allow them to still be robust against the "I spend my turn healing/shielding, and end up with lower effective life than I started because the enemy deals more damage than that" issue. Cure type talents are still instant use though. -Renamed some talents and categories to better reflect current mechanics and design themes. -Changed Phoenix Heart Disease resistance to Cut resistance. -Lightning Ride now has short-range teleport capability that deals damage in a line (can teleport at long range by targeting your current position), now just damages and dazes. -Gemstone Shields now can't be used manually even at level 3, no longer have on-shatter effects, and are just generally more streamlined in function. Two more types have been added. -Sea Knights now recover some Flow when Surge reaches 100. -Changed the resist all in Drink Deep to damage withstand. -Rising waters is now a regular damage shield rather than a time shield, but comes with a shield boost effect. -Mana Bolt now deals additional damage in an area around destroyed projectiles, rather than giving a portion of a turn.
But these changes are kinda sidenotes. You see, the recent updates involved me creating a game option to turn off mage knight enemies. This naturally involved me learning how to create game options. So I naturally proceeded to gleefully abuse this new capability. The new version now includes a new tab in the Game Options menu called Mage Knight Plus, which has various little options most of which have nothing to do with mage knights themselves, but which I thought might be interesting or useful, at least to players like me. The OP...looks like it's finally reached the character limit, so I'm putting the primer on the game options below.
In addition, I've done some fairly complete code cleanup, deleting a bunch of outdated timed effects, adding better tactical definitions to the talents (although there's still some more work to be done there), and setting up shortnames for all the talents, damage types, and timed effects (and several actor variables) with an "mkp_" prefix to reduce risk of overlaps with other addons. I also took a number of the mechanics I either was using in multiple places, or felt could potentially be used elsewhere in the future, and put them in one spot (a hidden dummy talent to hang callbacks on, pretty much), to streamline several talent descriptions (well, sort of, because there's an option that will show definitions for the mechanics in a separate section under the main description, but if you turn that off, they're more streamlined). This also fixes issues where, like, several things are now using Rejuvenation but it's only actually defined in one specific Phoenix Knight talent or whatever. And it means I'm no longer confused about which defenses occur when, so that's nice.
--
New Mechanics
This addon incorporates several new mechanics. They're generally referred to by name alone, and there is additional information in relevant tooltips that can be disabled as an option. If you want to just review them all in one place, though:
Damage Backlash: Deals the listed amount of Arcane damage to anyone who damages you, no more than once per turn per target.
Damage Ignore: You can outright ignore any instance of damage below the listed amount. If you have Damage Withstand, Damage Mitigate, and Damage Ignore, only the one that would reduce the most damage applies to any given instance of damage.
Damage Mitigate: Reduces each instance of damage received by the listed amount (as a flat total), to a maximum of up to 30% of the damage with 30% armor hardiness to 50% of the damage at 100% armor hardiness. If you have Damage Withstand, Damage Mitigate, and Damage Ignore, only the one that would reduce the most damage applies to any given instance of damage.
Damage Withstand: Reduces each instance of damage received by the listed percentage. If you have Damage Withstand, Damage Mitigate, and Damage Ignore, only the one that would reduce the most damage applies to any given instance of damage.
Damage Delay: You can delay up to the listed percentage of damage received, spreading it out over four turns. Over this time, it is dealt as irresistible damage (although your resistances would have already applied to the damage by the time this is calculated, so you won't take any more damage than you otherwise would). It can still be ablated or prepared for with shields, healing, regeneration, etc. The amount of damage you can delay lowers as your life gets lower and as the damage compared to your maximum life gets lower, potentially falling to as low as one-tenth the actual percentage for low-damage attacks while you are low on life.
Damage Shrug: You reduce all incoming damage by the listed percentage. This only applies to the damage that gets through to your life. Damage Block: Up to the listed number of times over the effect's duration, when you would take damage over 8% of your maximum life, you ignore it. This occurs after most damage reducers but before damage delays and shield effects. Free Moves: You may move without spending energy the listed number of times. Free movement can be gained in two ways. Normal free moves allow a certain number of free moves per turn, but each free movement also lowers the duration of the effect by one. Bonus moves can be spent freely during the effect duration. Ground Down: This effect weakens many forms of defense by the listed percentage. Armor, defense, all resistances, flat damage reduction, healing factor, shield factor, damage ignore, damage mitigate, and damage withstand are all reduced (multiplicatively). Repetitions reset the duration but only the highest power applies. Rejuvenation: Your life regeneration increases by the listed amount. Rejuvenation effects stack with Regeneration effects and can merge. However, there is a cap on how much life Rejuvenation can restore per turn; if a Rejuvenation effect would exceed this cap, it spreads the total healing out over a longer duration. Status Block: You can ignore the listed number of detrimental effects over the effect's duration. Cross-tier effects are ignored without reducing your number of status blocks. Temporary Life: Increases your current and maximum life. When the effect ends, your maximum life is reduced, but #{italic}#not#{normal}# your current life. Temp life effects are capable of merging.
Reactions: The first time you receive damage or detrimental effects from a given enemy in a given turn, you have a chance to trigger a Reaction. The chance of success is equal to the combined chances of all talents and effects that grant a reaction chance. If you are capable of multiple different types of reactions, the one that applies will be determined randomly from among them, proportionate to their independent chances. The effects of a Reaction will apply to all damage and detrimental effects (where applicable) caused by that attacker during that turn. Secondary Effect: Talents that shield or heal as their primary effect and which take a turn to use may carry a secondary effect. This provides an additional shield or heal one turn after the talent is used. The value of the secondary effect is typically lower than the primary effect (though this may not be the case if some of the talent's power goes to other effects), and it does not carry any special effects that the main effect might. The secondary effect is boosted by 1% per percent of your missing life or lost shield value at the time of the trigger. Secondary Effects cannot be triggered if the talent was originally triggered by Eldritch Combat.
Shield Boost: Each turn that you have a damage shield active, its current and maximum power increases by the listed amount.
Shield Convert: Any time one of your damage shields absorbs damage, it converts the listed percentage of it to healing.
Shield Counter: While you have a damage shield active, you have the listed percent chance to ignore any detrimental effects received, at the cost of 50 points of shield power (no cost for cross-tier effects).
Shield Redirect: Any time one of your damage shields absorbs damage, it has the listed percent chance to fully redirect it back at the attacker, similar to a displacement shield.
Shield Reflect: Any time one of your damage shields absorbs damage, it reflects the listed percentage of it back on the attacker, as if it were a reflection shield.
Shield Renew: Each turn that you have a damage shield active, it regains the listed amount of power, but this can't bring it above its maximum.
Surge Value: Each turn, you gain the listed surge value. If this causes your surge value to exceed 100, your surge value lowers by 100 and you lower the duration of all detrimental effects upon you by 1.
Terrain Sense: Each turn you map the terrain around you to the listed radius.
New Game Options
In addition to the mage knight classes, this addon adds several new game options, under the Mage Knight Plus tab of the Game Options menu. These options don't necessarily have anything to do with mage knights themselves, but some of them do use the new mechanics. I'm mainly just packaging them together for convenience.
Mage Knight Enemies: Disabled by default. Enable to allow mage knight classes to appear on adventurers and NPCs.
Tooltip Helpers: Enabled by default. Talents that use the new mechanics will include a reference to each new mechanic used below the main talent description.
Damage Delay: Disabled by default. If enabled, you can choose a damage delay percentage; up to that percent of all damage received by the player (after most defenses but before shields) will be spread out over four turns. The exact amount spread out gets lower for low damage totals or while you're low on life, and it can potentially be as low as one-tenth the listed percentage. Whatever damage gets spread out is increased by 40%.
Design Notes: This used to be a function of the Eldritch Wardings talent (and the Eldritch Body talent before that) for mage knights, only without increasing the damage that got delayed. I elected to remove it from them and make it a customizable option instead. My premise is that this should make it much less likely that you just die instantly to some overpowered attack; you'll have some time to raise shields, start regen infusions, or whatever to deal with the damage. But you pay for this by taking more total damage overall.
Revised Combat Techniques: Disabled by default. This option removes the speed penalty from the Precise Strikes talent, and completely overhauls the Combat Veteran tree. New Combat Veteran talents are as follows:
Experienced Endurance: Improves life and stamina regen (scaling with Con), and grants life and stamina on kill based on the regeneration bonuses. Converts stamina effects to hate retention and hate on kill for Afflicted like the original talents did. Experienced Defense: Improves armor and defense (scaling with Dex), and grants damage mitigation based on armor and damage withstand based on defense. Experienced Resistance: Improves saves (each scaling with a different mental stat), and grants a percent chance to ignore detrimental effects based on the relevant save. The Danger Sense talent applies to the percent check as well. Experienced Offense: Improves physical power (scaling with Str), and causes your hits to impose a Ground Down effect based on physical power. The Grown Down effect will scale with Accuracy if Precise Strikes is active and your Accuracy is higher than your Physical Power.
Design Notes: My sense has been that Precise Strikes is somewhere between actively detrimental and a lateral move, and the Combat Veteran talents are among the weakest in the game. I mean, Experienced Endurance provides most of the functions that the original entire tree provided plus life on kill, and I don't think it goes too far. Danger Sense, likewise, has such a high penalty that given the save calculation it's probably almost never going to trigger in practice.
The theme behind the tree is the idea that experienced warriors in Eyal are exposed to all manner of esoteric forms of attack and defense, and should probably be able to deal with them. These talents only go so far, and they involve different abilities and scale off different stats so nobody can really get the most out of all of them. But they can help, and they make the basic combat stats a bit more attractive. Some random +30 defense item might be a bit more appealing when it also means a bit of damage reduction, even if you're not really stacking defense.
The talents only have their full effect for rank 3 and lower characters; higher ranks get the normal stat boosts, but halve the secondary benefits (which are kinda the main points of the talents) for each rank above, so the numbers shouldn't get inflated too high on randbosses and such (actually they'll probably end up lower than they would on a PC, even with the kind of stats NPCs can get). Likewise, the ability score scaling uses the same function mage knight talents use, which basically means you get half the benefit of talent levels 2-5 if the relevant stat is below a certain threshold, and then you get about a talent level's worth of bonus if the stat reaches 100. So that scaling won't get insane on NPCs either.
Sun Paladin Tweaks: Makes the following modifications to sun paladins (and, like, the Barrier one affects anorithils too, but mostly sun paladins).
Weapon of Light, Shield of Light, Weapon of Wrath: All are set to instant use. Brandish and Crusade: Greys out icon if you don't have a shield equipped. Barrier: Disallows use if you already have a damage shield. Retribution: Disables friendly fire. I had to alter the priority order to do this without superloading the entire onTakeHit function, so unfortunately this also means retribution shielding can be lost even if you are invulnerable, but I figure aside from the odd Time Prison that probably doesn't matter overmuch. Suncloak: Becomes a passive talent that has a chance of granting a two-turn damage cap every time you cast a spell. When it triggers, you also get back a portion of the time spent on the spell, and the cooldown lowers some. Sun's Vengeance: When the Sun's Vengeance buff triggers, it will immediately attempt to cast Sunray at the most damaged enemy.
Design Notes: These are meant to be mostly QoL changes. Making those three sustains instant is probably the only straight power up, and my premise there was mainly that sun paladins already have to desustain like half of their offense when they run into luminous horrors et al, and having to spend turns doing it just seems punitive. I'll admit I find sustain dispelling a bit broken in any case, so I don't feel particularly bad making them slightly more resilient to it.
Beyond that, the changes to Suncloak and Sun's Vengeance shouldn't actually change their overall value any; Suncloak's chance of triggering should be such that it applies more-or-less as often as it could have before (maybe a bit more with things like Adept and mastery increases, a bit less with things like cooldown-reducing gear or duration-buffing talents, and a fair bit less at lower talent levels), and Sun's Vengeance just takes out the active usage by the player (usually) without changing the underlying numbers at all. So if you were using them as often as you could, there won't be any change; in fact, they may end up a shade weaker, since you're ceding control over using them. Suncloak in particular you'd lose the ability to use it and spam through as many spells as you can while it's up.
But if you're not doing that, having them going off without direct input probably ends up making them stronger in the sense of fewer missed opportunities to benefit from them.
Brandish, Crusade, and Barrier basically just get on_pre_use checks that they probably should have had already. And Retribution I just felt had no business being friendly fire when it's a giant uncontrolled area attack tied to one of your best defenses, so you have to tank your defense is you get an escort quest or whatever.
Variant checkHit: Changes the chance of success in checkHit to be attack bonus squared in attack bonus squared + defense bonus squared, rounded up. Normal minimum and maximum chances still apply. So for example, accuracy 60 vs. defense 90 would be a 31% chance to hit, rather than basically 0.
Design Notes: This is probably the most highly experimental option, in that I think most of the other ones would be generally good additions at least for players who play like I do, whereas this one I have no idea if it would make things more or less fun. I have some vague memory that the calculation used to be more like this in the first place, so this might be kinda moving backwards, but whatever.
In principle this should help make sure that investment in accuracy, defense, powers, and saves is always meaningful to at least some degree, rather than only being significant if you're within say ten or so points of your opponent. Flip side, massive investment in say Defense just isn't going to bring you to the point where almost nothing can hit you, which is itself probably a good thing. It's worth noting that defense and saves get some additional comparison-independent value (at least for characters with access to the Combat Veteran tree) if the Revised Combat Techniques option is enabled. So using both together may have a cumulative impact on the value of these stats. Whether that's a good or bad thing I dunno, but there it is.
Uncapped Levels: This option is a variation on StarKeep's Campaign Uncapper add-on. Like that add-on, it removes the level cap and adjusts zone levels to compensate. But rather than set all zone levels to equal the player level, this sets an alternate level that gets used if higher than the zone's normal minimum level, which is some percentage of the player level that starts below 100%, and scales up based on the zone's normal minimum level, so that higher-level zones use higher percentages of the player level, up to 130% for the strongest zones.
Design Notes: For me, Campaign Uncapper made the early levels too hard, while the later levels still ended up too easy (and I think just in general, especially in the Age of Ascendancy quest, you tend to outlevel the zones in the late game, although this may be a factor of my playing Cornacs most of the time). I think I've got the scaling about dialed in, but it may need some tweaking. And I'm kinda going back and forth on whether or not to make some special exception for Dreadfell to give it a higher level than it gets based on the normal equation, since it actually only has a minimum level of 15.
Infinite Rewards: Changes the rare item reward for Infinite Dungeon challenges to a permanent +25 life, and doubles the number of rewards that Pacifist and Rush Hour give you.
Design Notes: To me those rare item rewards were, just, crushingly disappointing. Especially on higher difficulties where you'll be swimming in pinks anyway. I figure +25 life isn't exactly a game-changer, but more life never hurts and as the most common reward it can add up.
The buff to Rush Hour and Pacifist are to account for the fact that to complete them you're probably giving up much or almost all (respectively) of the level's available treasure and XP.
Last edited by Phoenix1 on Tue Apr 06, 2021 5:15 am, edited 1 time in total.
|