So I tried adding a new effect to a skill (which worked in 0.9.1):
public static class AgentBonus implements CharacterStatsSkillEffect {
public static final int BONUS_AGENTS = 1;
@Override
public void apply(MutableCharacterStatsAPI stats, String id, float level) {
Global.getLogger(this.getClass()).info("Applying to " + id + ", " + stats.isPlayerStats());
stats.getDynamic().getStat("nex_max_agents").modifyFlat(id, BONUS_AGENTS);
}
@Override
public void unapply(MutableCharacterStatsAPI stats, String id) {
Global.getLogger(this.getClass()).info("Unapplying to " + id + ", " + stats.isPlayerStats());
stats.getDynamic().getStat("nex_max_agents").unmodify(id);
}
Result:
After I learn either Officer Management or Officer Training, it absolutely spams my log with unapply messages, but
the apply message is never shown:
854377 [Thread-3] INFO exerelin.campaign.skills.NexSkills$AgentBonus - Unapplying to officer_training_stats_4, false
854377 [Thread-3] INFO exerelin.campaign.skills.NexSkills$AgentBonus - Unapplying to officer_management_stats_3, false
854377 [Thread-3] INFO exerelin.campaign.skills.NexSkills$AgentBonus - Unapplying to officer_training_stats_4, false
854377 [Thread-3] INFO exerelin.campaign.skills.NexSkills$AgentBonus - Unapplying to officer_management_stats_3, false
854377 [Thread-3] INFO exerelin.campaign.skills.NexSkills$AgentBonus - Unapplying to officer_training_stats_4, false
854377 [Thread-3] INFO exerelin.campaign.skills.NexSkills$AgentBonus - Unapplying to officer_management_stats_3, false
EDIT: the messages appear even without me learning the skill, but if I do learn it I can get a version with the log message ending in true instead of false, also printed repeatedly
I tried creating two subclasses of AgentBonus and assigning one each to Officer Training and Officer Management (rather than them sharing the superclass). That didn't help.
Am I doing something wrong?