Example #1
0
        /// <summary>
        /// 针对系统的法术效果
        /// </summary>
        /// <param name="game"></param>
        /// <param name="ConvertPosDirect"></param>
        /// <param name="Ability"></param>
        /// <returns></returns>
        public static List <string> RunGameSystemEffect(ActionStatus game, AtomicEffectDefine effect, CardUtility.位置选择用参数结构体 Option)
        {
            List <string> Result = new List <string>();

            switch (effect.AtomicEffectType)
            {
            case AtomicEffectDefine.AtomicEffectEnum.卡牌:
                CardEffect CardAtomic = new CardEffect();
                CardAtomic.GetField(effect.InfoArray);
                return(CardAtomic.RunEffect(game, Option.EffectTargetSelectDirect));

            case AtomicEffectDefine.AtomicEffectEnum.水晶:
                CrystalEffect CrystalAtomic = new CrystalEffect();
                CrystalAtomic.GetField(effect.InfoArray);
                return(CrystalAtomic.RunEffect(game, Option.EffectTargetSelectDirect));

            case AtomicEffectDefine.AtomicEffectEnum.武器:
                WeaponPointEffect WeaponPointAtomic = new WeaponPointEffect();
                WeaponPointAtomic.GetField(effect.InfoArray);
                return(WeaponPointAtomic.RunEffect(game, Option.EffectTargetSelectDirect));

            case AtomicEffectDefine.AtomicEffectEnum.召唤:
                SummonEffect SummonAtomic = new SummonEffect();
                SummonAtomic.GetField(effect.InfoArray);
                return(SummonAtomic.RunEffect(game, Option.EffectTargetSelectDirect));
            }
            return(Result);
        }
Example #2
0
    public static AbstractAbilityEffect getEffect(XmlNode xmlEffect, object obj)
    {
        AbstractAbilityEffect effect = null;

        switch (xmlEffect["type"].InnerText)
        {
        case "DamageAbilityEffect":
            effect = new DamageAbilityEffect();
            break;

        case "AddBuffEffect":
        {
            var buffEffect = new AddBuffEffect {
                buff = (Buff)obj
            };
            effect = buffEffect;
            break;
        }

        case "RowAddBuffEffect":
        {
            AddBuffEffect buffEffect = new RowAddBuffEffect();
            buffEffect.buff = (Buff)obj;
            effect          = buffEffect;
            break;
        }

        case "HealAbilityEffect":
            effect = new HealAbilityEffect();
            break;

        case "SummonEffect":
            var sumEffect = new SummonEffect();
            sumEffect.person = ((SummonAbility)obj).person;
            effect           = sumEffect;
            break;

        case "UseItemEffect":
            effect = new UseItemEffect();
            break;

        case "AddShieldAbilityEffect":
            effect = new AddShieldAbilityEffect();
            break;

        case "RowAddShieldAbilityEffect":
            effect = new RowAddShieldAbilityEffect();
            break;
        }

        effect.targetsNumber = int.Parse(xmlEffect["targetsNumber"].InnerText);
        foreach (XmlNode attribute in xmlEffect["attributes"])
        {
            effect.attribures.Add(getEffectAttribures(attribute.InnerText));
        }

        effect.valueGenerator = getValueGenerator(xmlEffect["valueGenerator"]);

        return(effect);
    }
Example #3
0
    public override SkillEffect Copy()
    {
        SummonEffect se = new SummonEffect(summonKey);

        se.summonKey = summonKey;

        return(se);
    }
Example #4
0
    public SummonGolem()
    {
        var summon = XMLFactory.loadPerson("configs/monsters/golems/golem");

        getAbilityTactic().summon = summon;
        timeCast = 1.0f;
        manaCost = 1;
        image    = Constants.loadSprite("texture/Skills/buffIcons", "buffIcons_60");
        name     = "Summon Golem";
        type     = "activeAbility";

        targetTactic = new ItselfTargetTactic();

        var effect = new SummonEffect();

        effect.person   = summon;
        effect.duration = 0;
        effectList.Add(effect);
    }
Example #5
0
        /// <summary>
        /// 处理对方的动作
        /// </summary>
        /// <param name="ActionCommand"></param>
        /// <param name="game"></param>
        public static void Process(string ActionCommand, ActionStatus game)
        {
            string[] actField = ActionCommand.Split(CardUtility.strSplitMark.ToCharArray());
            switch (ActionCode.GetActionType(ActionCommand))
            {
            case ActionCode.ActionType.Card:
                CardEffect.ReRunEffect(1, game, actField);
                break;

            case ActionCode.ActionType.UseMinion:
                int Pos    = int.Parse(actField[2]);
                var minion = (MinionCard)CardUtility.GetCardInfoBySN(actField[1]);
                minion.初始化();
                game.AllRole.YourPublicInfo.BattleField.PutToBattle(Pos, minion);
                Buff.ResetBuff(game);
                break;

            case ActionCode.ActionType.UseWeapon:
                game.AllRole.YourPublicInfo.Hero.Weapon = (WeaponCard)CardUtility.GetCardInfoBySN(actField[1]);
                break;

            case ActionCode.ActionType.UseSecret:
                game.AllRole.YourPublicInfo.Hero.SecretCount++;;
                break;

            case ActionCode.ActionType.UseAbility:
                break;

            case ActionCode.ActionType.Fight:
                //FIGHT#1#2
                FightHandler.Fight(int.Parse(actField[2]), int.Parse(actField[1]), game, false);
                break;

            case ActionCode.ActionType.Point:
                IAtomicEffect point = new PointEffect();
                point.ReRunEffect(game, actField);
                break;

            case ActionCode.ActionType.Health:
                IAtomicEffect health = new HealthEffect();
                health.ReRunEffect(game, actField);
                break;

            case ActionCode.ActionType.Status:
                IAtomicEffect status = new StatusEffect();
                status.ReRunEffect(game, actField);
                break;

            case ActionCode.ActionType.Transform:
                IAtomicEffect transform = new TransformEffect();
                transform.ReRunEffect(game, actField);
                break;

            case ActionCode.ActionType.Attack:
                IAtomicEffect attack = new AttackEffect();
                attack.ReRunEffect(game, actField);
                break;

            case ActionCode.ActionType.HitSecret:
                SecretCard.ReRunSecret(game, actField);
                break;

            case ActionCode.ActionType.Control:
                ControlEffect.ReRunEffect(game, actField);
                break;

            case ActionCode.ActionType.Summon:
                SummonEffect.ReRunEffect(game, actField);
                break;

            case ActionCode.ActionType.Crystal:
                CrystalEffect.ReRunEffect(game, actField);
                break;

            case ActionCode.ActionType.WeaponPoint:
                WeaponPointEffect.ReRunEffect(game, actField);
                break;

            case ActionCode.ActionType.Settle:
                ActionStatus.Settle(game);
                break;
            }
        }