Codebreak.Service.World.Game.Fight.Effect.Type.StatsBuff.ApplyEffect C# (CSharp) Méthode

ApplyEffect() public méthode

Ajout le boost
public ApplyEffect ( int &damageValue, CastInfos damageInfos = null ) : FightActionResultEnum
damageValue int
damageInfos CastInfos
Résultat FightActionResultEnum
        public override FightActionResultEnum ApplyEffect(ref int damageValue, CastInfos damageInfos = null)
        {
            int showValue;

            switch (CastInfos.EffectType)
            {
                case EffectEnum.SubAP:
                case EffectEnum.SubMP:
                case EffectEnum.SubAPDodgeable:
                case EffectEnum.SubMPDodgeable:
                    showValue = -CastInfos.Value1;
                    break;

                default:
                    showValue = CastInfos.Value1;
                    break;
            }

            if (CastInfos.EffectType != EffectEnum.ReflectSpell)
                Target.Fight.Dispatch(WorldMessage.GAME_ACTION(CastInfos.EffectType, Target.Id, Target.Id + "," + showValue + "," + Duration));

            Target.Statistics.AddDon(CastInfos.EffectType, CastInfos.Value1);

            return base.ApplyEffect(ref damageValue, damageInfos);
        }

Usage Example

        /// <summary>
        ///
        /// </summary>
        /// <param name="CastInfos"></param>
        /// <returns></returns>
        public override FightActionResultEnum ApplyEffect(CastInfos CastInfos)
        {
            if (CastInfos.Target == null)
            {
                return(FightActionResultEnum.RESULT_NOTHING);
            }

            var malusType = _targetMalus[CastInfos.EffectType];
            var bonusType = _casterBonus[CastInfos.EffectType];

            var malusInfos  = new CastInfos(malusType, CastInfos.SpellId, CastInfos.CellId, CastInfos.Value1, CastInfos.Value2, CastInfos.Value3, CastInfos.Chance, CastInfos.Duration, CastInfos.Caster, CastInfos.Target);
            var bonusInfos  = new CastInfos(bonusType, CastInfos.SpellId, CastInfos.CellId, CastInfos.Value1, CastInfos.Value2, CastInfos.Value3, CastInfos.Chance, CastInfos.Duration - 1, CastInfos.Caster, CastInfos.Target);
            var damageValue = 0;

            if (CastInfos.Target == CastInfos.Caster)
            {
                return(FightActionResultEnum.RESULT_NOTHING);
            }

            // Malus a la cible
            var BuffStats = new StatsBuff(malusInfos, CastInfos.Target);

            if (BuffStats.ApplyEffect(ref damageValue) == FightActionResultEnum.RESULT_END)
            {
                return(FightActionResultEnum.RESULT_END);
            }

            CastInfos.Target.BuffManager.AddBuff(BuffStats);

            // Bonus au lanceur
            BuffStats = new StatsBuff(bonusInfos, CastInfos.Caster);
            CastInfos.Caster.BuffManager.AddBuff(BuffStats);

            return(BuffStats.ApplyEffect(ref damageValue));
        }
All Usage Examples Of Codebreak.Service.World.Game.Fight.Effect.Type.StatsBuff::ApplyEffect