ApplyTeleport() public static method

public static ApplyTeleport ( CastInfos castInfos ) : FightActionResultEnum
castInfos CastInfos
return FightActionResultEnum
示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="damageValue"></param>
        /// <param name="damageInfos"></param>
        /// <returns></returns>
        public override FightActionResultEnum ApplyEffect(ref int damageValue, CastInfos damageInfos = null)
        {
            //
            if (damageInfos.IsReflect || damageInfos.IsReturnedDamages || damageInfos.IsPoison)
            {
                return(FightActionResultEnum.RESULT_NOTHING);
            }

            // mort
            if (Caster.IsFighterDead)
            {
                Target.BuffManager.RemoveBuff(this);

                return(FightActionResultEnum.RESULT_NOTHING);
            }

            var targetTeleport = new CastInfos(EffectEnum.Teleport, CastInfos.SpellId, CastInfos.Caster.Cell.Id, 0, 0, 0, 0, 0, Target, null);
            var casterTeleport = new CastInfos(EffectEnum.Teleport, CastInfos.SpellId, Target.Cell.Id, 0, 0, 0, 0, 0, CastInfos.Caster, null);

            Caster.SetCell(null);
            Target.SetCell(null);

            if (TeleportEffect.ApplyTeleport(targetTeleport) == FightActionResultEnum.RESULT_END)
            {
                return(FightActionResultEnum.RESULT_END);
            }

            if (TeleportEffect.ApplyTeleport(casterTeleport) == FightActionResultEnum.RESULT_END)
            {
                return(FightActionResultEnum.RESULT_END);
            }

            // cancel damages
            damageValue = 0;

            var damageJet = damageInfos.RandomJet;

            damageInfos.IsReturnedDamages = true;

            return(DamageEffect.ApplyDamages(damageInfos, CastInfos.Caster, ref damageJet));
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="castInfos"></param>
        /// <returns></returns>
        public override FightActionResultEnum ApplyEffect(CastInfos castInfos)
        {
            if (castInfos.Target == null)
            {
                return(FightActionResultEnum.RESULT_NOTHING);
            }

            if (castInfos.SpellId == 445)
            {
                if (castInfos.Target.Team == castInfos.Caster.Team)
                {
                    return(FightActionResultEnum.RESULT_NOTHING);
                }
            }
            else if (castInfos.SpellId == 438)
            {
                if (castInfos.Target.Team != castInfos.Caster.Team)
                {
                    return(FightActionResultEnum.RESULT_NOTHING);
                }
            }

            var targetTeleport = new CastInfos(EffectEnum.Teleport, castInfos.SpellId, castInfos.Caster.Cell.Id, 0, 0, 0, 0, 0, castInfos.Target, null);
            var casterTeleport = new CastInfos(EffectEnum.Teleport, castInfos.SpellId, castInfos.Target.Cell.Id, 0, 0, 0, 0, 0, castInfos.Caster, null);

            castInfos.Caster.SetCell(null);
            castInfos.Target.SetCell(null);

            if (TeleportEffect.ApplyTeleport(targetTeleport) == FightActionResultEnum.RESULT_END)
            {
                return(FightActionResultEnum.RESULT_END);
            }

            if (TeleportEffect.ApplyTeleport(casterTeleport) == FightActionResultEnum.RESULT_END)
            {
                return(FightActionResultEnum.RESULT_END);
            }

            return(FightActionResultEnum.RESULT_NOTHING);
        }