Closed LordMidas closed 5 months ago
One thing that I need Taro/Enduriel to improve in this system is that if the affordability preview would make a skill that is currently unaffordable affordable again, then we need to convey this information somehow. Currently, that skill's icon stays black&white because the vanilla affordability preview system only considers the case of currently affordable skills potentially becoming unaffordable and hence puts a "prohibited" icon on them. It does not expect currently unaffordable skills to become affordable. An idea for this case could be to put a green check mark on such skills to counter the red prohibited sign.
Relevant functions for achieving this are:
// in `turnsequencebar_module.js`:
TacticalScreenTurnSequenceBarModule.prototype.addSkillToList
TacticalScreenTurnSequenceBarModule.prototype.updateEntitySkillsPreview
// in `turn_sequence_bar.nut:`
setActiveEntityCostsPreview
resetActiveEntityCostsPreview
Closing in favor of #354
This contains two deprecation commits. The feature of this PR is in the main
feat
commit, so you may wanna look into the diff of that commit only to get an overview of how it works.I would like to deprecate the scheduled changes system of skills because, while it is an interesting idea, I think there are plenty of ways to work around it if you design/implement skills in a smart way. Personally I have never used it, and I believe it is a bloat to support further.
This is a massive improvement over the current Affordability Preview system we have in MSU which I implemented in #88. That system is convoluted to work with from the user's perspective and is also limited in certain aspects. The new system is far more intuitive and in fact covers some edge cases which the old system failed in.
Old System (the one this PR deprecates):
modifyPreviewField
andmodifyPreviewProperty
functions from inside a skill'sonAffordablePreview
function. The parameters of those functions are convoluted to work with.onUpdate
,onAfterUpdate
, andexecuteScheduledChanges
functions and then applies the new change.New System:
onUpdatePreview
andonAfterUpdatePreview
which by default call their regular counterparts. But you can overwrite these functions for custom functionality during previewing.skill_container
in between getting the affordability status of skills and their cost string. This is probably less "efficient" than the old system but honestly this is better and I wish I had done it this way the first time around.Example: Let's say I have a skill which after at least 2 tiles reduces the AP cost of all attacks by 1. But this effect expires when you use any skill.
Old System usage:
New System: