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; }
public void AddHealthEffect(HealthEffect effect) { if (!ContainsHealthEffect(effect.GetType())) { healthEffects.Add(effect); } }
/// <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; } }
public int calculateStrength(HealthEffect effect) { return(multiplier * 2); }
public int calculateStrength(HealthEffect effect) { return(0); }
public void AddHealthEffect(HealthEffect effect) { if(!ContainsHealthEffect(effect.GetType())) { healthEffects.Add(effect); } }
/// <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; } } }