示例#1
0
    private void SpawnHealthEffect(bool positive, int value)
    {
        GameObject healthEffect = Instantiate(healthLostPrefab);

        healthEffect.transform.SetParent(healEffectHolder.transform);
        healthEffect.transform.localPosition = Vector3.zero;

        Text text = healthEffect.GetComponent <Text>();

        if (!positive)
        {
            text.text  = "-" + value;
            text.color = healthLostColor;
        }
        else
        {
            text.text  = "+" + value;
            text.color = healthGainedColor;
        }

        HealthEffect he = healthEffect.GetComponent <HealthEffect>();

        he.duration = healthLostEffectDuration;
        he.speed    = healthLostEffectSpeed;
    }
示例#2
0
 public void AddHealthEffect(HealthEffect effect)
 {
     if (!ContainsHealthEffect(effect.GetType()))
     {
         healthEffects.Add(effect);
     }
 }
示例#3
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;
            }
        }
示例#4
0
 public int calculateStrength(HealthEffect effect)
 {
     return(multiplier * 2);
 }
示例#5
0
 public int calculateStrength(HealthEffect effect)
 {
     return(0);
 }
示例#6
0
	public void AddHealthEffect(HealthEffect effect)
	{
		if(!ContainsHealthEffect(effect.GetType()))
		{
			healthEffects.Add(effect);
		}
	}
示例#7
0
        /// <summary>
        /// 运行效果
        /// </summary>
        /// <param name="game"></param>
        /// <param name="actField"></param>
        private static void RunNormalEffect(GameManager game, string[] actField)
        {
            //ATTACK#ME#POS#AP
            //Me代表对方 YOU代表自己,必须反过来
            IEffectHandler handler      = new AttackEffect();
            EffectDefine   SingleEffect = new EffectDefine();

            switch (actField[0])
            {
            case Card.Server.ActionCode.strAttack:
                handler = new AttackEffect();
                SingleEffect.ActualEffectPoint = int.Parse(actField[3]);
                break;

            case Card.Server.ActionCode.strHealth:
                handler = new HealthEffect();
                SingleEffect.ActualEffectPoint = int.Parse(actField[3]);
                if (actField.Length == 5)
                {
                    SingleEffect.AdditionInfo = actField[4];
                }
                break;

            case Card.Server.ActionCode.strStatus:
                handler = new StatusEffect();
                SingleEffect.AdditionInfo = actField[3];
                break;

            case Card.Server.ActionCode.strPoint:
                handler = new PointEffect();
                SingleEffect.AdditionInfo        = actField[3];
                SingleEffect.StandardEffectPoint = int.Parse(actField[4]);
                break;

            case Card.Server.ActionCode.strTransform:
                handler = new TransformEffect();
                SingleEffect.AdditionInfo = actField[3];
                break;
            }
            if (actField[1] == CardUtility.strYou)
            {
                switch (int.Parse(actField[2]))
                {
                case BattleFieldInfo.HeroPos:
                    handler.DealHero(game, SingleEffect, true);
                    break;

                case BattleFieldInfo.AllPos:
                    for (int i = 0; i < game.MyInfo.BattleField.MinionCount; i++)
                    {
                        handler.DealMinion(game, SingleEffect, true, i);
                    }
                    break;

                default:
                    handler.DealMinion(game, SingleEffect, true, int.Parse(actField[2]) - 1);
                    break;
                }
            }
            else
            {
                switch (int.Parse(actField[2]))
                {
                case BattleFieldInfo.HeroPos:
                    handler.DealHero(game, SingleEffect, false);
                    break;

                case BattleFieldInfo.AllPos:
                    for (int i = 0; i < game.YourInfo.BattleField.MinionCount; i++)
                    {
                        handler.DealMinion(game, SingleEffect, false, i);
                    }
                    break;

                default:
                    handler.DealMinion(game, SingleEffect, false, int.Parse(actField[2]) - 1);
                    break;
                }
            }
        }