private EngineAction CureCalculator(PartyMember partyMember) { var actionResult = new EngineAction { Target = partyMember.Name }; // Only do this is party member is alive. if (partyMember.CurrentHP > 0) { var cureSpell = PickCure(partyMember.HPLoss()); if (cureSpell != Spells.Unknown) { actionResult.Spell = cureSpell; return(actionResult); } } return(null); }
private EngineAction CuragaCalculator(PartyMember member) { uint hpLoss = member.HPLoss(); string cureSpell = Spells.Unknown; var actionResult = new EngineAction { Target = member.Name }; for (int i = 4; i <= 0; i--) { if (_config.EnabledCuragaTiers[i] && hpLoss >= _config.CuragaTierThresholds[i] && PL.HasMPFor(Data.CuragaTiers[i])) { cureSpell = Data.CuragaTiers[i]; break; } } if (cureSpell != Spells.Unknown) { // Check if we need to over/under cure. var curagaTier = PickCureTier(cureSpell, Data.CuragaTiers); actionResult.Spell = curagaTier; if (_config.CuragaSpecifiedEnabled) { actionResult.Target = _config.CuragaSpecifiedName; } return(actionResult); } return(null); }