Legend_of_the_Invincibles
Legend_of_the_Invincibles copied to clipboard
Add level Harder
The existing difficulty levels just aren't (aside from a handful of scenarios). I added a fourth level to experiment with adding some amount of difficulty. I was just targetting "Normal", but I think I actually came up with something approaching Hard. It's kind of a tricky question, the scenarios are certainly a bit harder but I've yet to see the longer term effects. For example, I usually finish ch1 with about 500 saved_turns, testing on Harder I've ended up close to 300. Also, I've actually lost experience/geared units (though not enough) -- my goal if I see this through is not to end each part with 300-600 unused items and no losses (except Exec Sanct, where I just let senior units die to finish as fast as possible). So it's tough to say how these effects will play out in chapters to come.
I've played this through a couple times, and most scenarios several times each (all on 1.19) and while it's not quite as hard as I'd like I think it's close enough to put it out there for feedback and to see if there's any interest, both on your part and the players'. If you're interested, I'm wondering if it's possible (I assume it must be), to create a branch/fork and publish a separate experimental version.
I tried not to touch the existing levels at all, but there were a couple places where it was just easier to change ifdef HARD to ifndef EASY, for example, and I only did that on scenarios that were really trivial anyway.
BTW, I've never relied much on elves (save gryphon riders), but on my last run I have a Sylph and an Enchantress who are nearly as powerful as Lethalia (at least, they almost always kill any enemy unit in one turn) even with minimal gear. And Lethalia seems MUCH more powerful than normal. It's all fairie fire. I suspect the recent changes to the elves are pretty major.
If I recall correctly, a 4 difficulty setup is quite expected, so you can use the GOLD4
macro instead of defining a LOTI_GOLD
macro and a few others.
I usually felt like 3 difficulties are enough, if hard is not hard enough, it can be made harder. More enemy gold is not all the difficulty that higher difficulties bring. It also makes items weaker, increases exp requirements, makes custom enemy units stronger and a few other tweaks. That is a lot of work. And also, some scenarios are reportedly significantly harder than others. That is why I always preferred making easy scenarios harder rather than thinking about adding a new difficulty.
Of course, if you want to create and maintain a fork, maybe it will attract enough players to justify the maintenance and I will merge it.
Ultimately, if this little experiment is successful, I'd prefer to see Harder back ported to be the new Hard (be happy to do that), leaving the standard three levels with a fourth "reserved" for Nightmare, should anyone decide to go that route (I have some ideas, but no interest in actually playing what I would consider NM).
But because it's such an undertaking, I figured the best thing would be to keep my changes completely separate for now until they can be evaluated within the scope of an entire five chapters.
FWIW, I actually suspect that increasing enemy gold is probably the least preferable approach to increasing difficulty. If you don't first make his units harder to kill and yours easier to die, more enemy gold probably just means more XP for your team, making subsequent scenarios easier, not harder. And it's not nearly as interesting.
I thought I remembered a GOLD4, but a search didn't find anything.
I am surprised that GOLD4 can't be found anymore.
I'd prefer to see Harder back ported to be the new Hard
Then it might make more sense for you to edit the hard difficulty instead of going through all the complications of adding a 4th difficulty.
There is GOLD4 https://github.com/wesnoth/wesnoth/blob/1.18/data/core/macros/utils.cfg
But it requires the fourth difficulty to be NIGHTMARE
, not HARDER
But it requires the fourth difficulty to be
NIGHTMARE
, notHARDER
Not seeing anything that requires NIGHTMARE in that.
Not seeing anything that requires NIGHTMARE in that.
It uses the fourth value with #ifdef NIGHTMARE
https://github.com/wesnoth/wesnoth/blob/72a102ccd427caede35038bed4cd6ebebc23b29a/data/core/macros/utils.cfg#L35
https://github.com/wesnoth/wesnoth/blob/72a102ccd427caede35038bed4cd6ebebc23b29a/data/core/macros/utils.cfg#L78
Modified whirlwind so that it doesn't poison, slow, or kill secondary targets on Hard. Still very useful for setting up easy kills, but unable to make huge holes to advance through. I am not going to like this.
tbh I don't really like an idea of changing how game mechanics work depending on difficulty. I would limit balancing difficulties to adjusting parameters like golds, unit types of enemies and friends and so on, not the logic of abilities, if possible. Consider also potential side effects on changing difficulties or addons using LotI as a dependency. Just my opinion, leave to you to decide
Items are already made weaker on hard, and that will bleed into other add-ons. The value on hard is the default value for situations where the difficulty defines are absent. Adding more stacks of lethargy after using AoE attacks could be a penalty in the same vein.
I don't think it's good to make abilities follow different logic on hard, though. It would mean more counter-intuitive behaviour (you learn how to play it on normal, and you realise that your builds stopped working on hard), more code to maintain and more bug reports.
Turns out, I don't really like the whirlwind changes. In a way, they actually make things easier (E leaves a lot of 1HP enemies for supporting troops to gather XP).
The goals were to stop E from getting so many kills so he didn't advance so rapidly, to make it so that if you try to take on the world with him alone you can't just use whirlwind and a greater healing potion to run away when you get in a jam, and so that he can't just break holes through the enemy lines so the army can advance when necessary. All of these were intended to force the player to put some supporting units at risk so that they die and take their gear with them.
Adjusting lethargy be an alternative, if it was done only for human players (not that I can think of any examples of enemies using WW-ish attacks), and if it was changed to take longer to cool down (and shorter for wrath?) -- it falls off so quickly just increasing the penalty is basically worthless. Would need to take into account those black enemy units with lethargy attacks, they could get really nasty if their effects lasted much longer (offensive vs defensive lethargy? sounds ugly).
Of course, alternative ideas appreciated.
P.S. Can you delete the commits labelled "cripple whirlwind on HARD"?
EDIT: Oh yeah, I wouldn't be against removing the ability to poison/slow secondary units from whirlwind and maybe cleave on all difficulties. That's just too much for one attack.
The balance problem with whirlwind is not easy to solve. The only thing that worked was to remove the exp from killing secondary targets, which resulted in players never using it. And even that didn't stop players from attempting to do easier scenarios only with leaders, because they could kill most enemies in retaliation.
The current penalty that comes with whirlwind makes retaliatory damage weaker, which takes places before any penalty falloff, so it directly counteracts the other way how leaders can cut through enemy legions. But this is not so apparent.
Is there a reason undead are excluded from temptation? If so, any reason not to make an exception for unit_type *_lich and *_lich_weakened?
In First Confrontation, we meet a ton of drakes. I've found it's easy enough to just leave your army in the castle and charge forward with E/L working together to cut right through to the leaders.
I had the idea to give about 1 in 8 drakes temptation (on hard) so E/L would get stuck if they went it alone, thereby requiring you to use your troops in a rather dangerous situation. But they are immune since they are undead.
I can see this being a useful tool in more scenarios than just this one.
Self-conscious undead that look like humans could be subject to the temptation ability, that could make sense.
But giving temptation to random drakes is a rather let's generate a bunch of random enemies with random abilities kind of faction. Now, temptation is available only in one unit type, for whom it's their signature ability. It would just make no sense on monstrous beings with honourable society like drakes.
What would be good at countering AoE effects would be damage reflection auras. Currently, thorns don't work against AoE hits and there is no thorns aura, but it can be changed. Put some 2 or 3 champions with damage reflection auras into each faction that is prone to being obliterated by a leaders AoE and the leader will get so many small hits from individual units reflecting damage that they won't be able to continue.
Hmm, I swear I've run into temptation in the strangest places, but the only one I can locate ATM is the bandit leader in Gods.
Using reflection is an intriguing idea, though I'm not sure what you mean by 'aura' (I've seen some things listed as aura, but never even thought about what makes X an aura vs a ???). Clearly you've got an idea here I'm not seeing. I assume you mean things like reflect/thorns/etc would work on AoE secondary strikes (which they don't now because there's no attacker_hits in play I assume), but I'm not sure how making an "aura" would change this. I can think of ways to implement reflect-when-secondary, but I think you have something in mind.
Sorry, I was used to the term aura from other games and forgot it's not well defined here. What I had in mind is an ability that affects adjacent units, in this case, I meant that the ability would make all adjacent units deal some damage back to whoever who hits them. This would be a strong deterrent to using AoE attacks against them, because taking 4 damage when hitting an enemy isn't much, but hitting 5 units affected by this ability simultaneously would result in the attacker taking 20 damage per hit, maybe 100 total damage per round, which can't be sustained.
Implementing this is nontrivial, I can do that if you want.
Yes, please. It doesn't sound terribly difficult, so I obviously haven't tried. Be interested to see how you do it.
I have made AoE attacks count also as attacks against other targets, so AoE attacks will trigger some on hit effects. I have also made thorns stronger, working also against non-melee attacks and added an ability to grant thorns to adjacent allies. It is available through an item, but it will be more influential if an enemy champion uses it.
The commit hash is 90e9bb5.
Ok, looked at thorns_aura. If I understand you correctly, each (enemy) race would have a couple unit types which (can?) have that ability (probably their highest level units)?
So Corrupted Elvish Nightprowler and Corrupted Elvish Juggernaut might have (a chance to have?) thorns_aura? I'm guessing you don't give them to Elves, since players can recruit those.
I assume drakes would have a couple that return fire (what's that ability like thorns with fire?), but I don't see any loti-drakes so I'm not quite sure how that would work.
Etc.
Close?
If I understand you correctly, each (enemy) race would have a couple unit types which (can?) have that ability (probably their highest level units)?
No. Except for demon traits, as demons are meant to be difficult by having randomised abilities.
What I had in mind was that if some scenario is too easy to be done with leaders only, the side could start with a couple of extra units with this ability. This would be particularly limiting if there is a bottleneck where they would just line up to be slaughtered by AoE attacks before they can deal damage.
I think that now there is an unintentional new problem - if two units with thorns attack each other, they will keep reflecting damage until one of them dies.
There can be only one.
I'm not seeing it. If thorns used harm_unit_loti, sure. But harm_unit doesn't trigger attacker_hits (like h_u_l)?
Okay, it didn't kill because it didn't award experience, and it didn't award experience because it needed [harm_unit_loti]
to give experience on kill but not on every instance of dealing damage. So I put [harm_unit_loti]
there and changed the way how it triggers events.
For completeness, I have also added abilities reflect aura and weak reflect aura, that reflect damage based on damage dealt if adjacent units are hit.
reflect_aura? Man, that's just mean. Basically the only way I ever lose units is if I don't notice a demon with reflect until it's too late.
Will I be able to tell if an enemy unit is affected? Seems like something on the order of an illuminates/darkens "field" is warranted here.
I didn't add it to any enemies, not even as a demon trait, exactly because of this reason. However, 1.18 allows adding halos to abilities. I have accepted the pull request (#650 ) that added them to the usual leadership that had them added in quite a hacky way, adding them now should be significantly easier.
One more thing on whirlwind, since I'm thinking about it. There are some units like the elves in the SW of Gods who transform into something else on "death". But not when they're killed by ww, not even if it's a secondary. Not a big deal in Gods, HUGE in (I think) Wasteland_of_Lost_Eternity.
Do you have a save file where it can be replicated? Getting there takes some time.
I have added visual clues to the reflect abilities (will also apply to demons). The reflection aura should be very apparent.
Btw, you haven't uploaded the save file, only a weird link to this same page.
Sorry, link fixed.
If the reflect aura only has visual for demons, I suspect it's only to be given to demons?
Will there be more thorn/reflect-like auras with different damage types so they can be matched to unit types (fire for drakes, impact for trolls, etc)?