Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }