Ejemplo n.º 1
0
 public THHEffect(TriggerTime[] triggers, string[] piles, CheckConditionDelegate onCheckCondition, CheckTargetDelegate onCheckTarget, ExecuteDelegate onExecute)
 {
     this.triggers         = triggers;
     this.piles            = piles;
     this.onCheckCondition = onCheckCondition;
     this.onCheckTarget    = onCheckTarget;
     this.onExecute        = onExecute;
 }
Ejemplo n.º 2
0
 public THHEffect(TriggerTime trigger, string pile, CheckConditionDelegate onCheckCondition, CheckTargetDelegate onCheckTarget, ExecuteDelegate onExecute)
 {
     triggers = new TriggerTime[] { trigger };
     piles    = new string[] { pile };
     this.onCheckCondition = onCheckCondition;
     this.onCheckTarget    = onCheckTarget;
     this.onExecute        = onExecute;
 }
Ejemplo n.º 3
0
 public ItemTrigggerEffectBefore(CheckConditionDelegate onCheckCondition, ExecuteDelegate onExecute)
     : base(PileName.ITEM, onCheckCondition, null, async(g, c, a) =>
 {
     await onExecute?.Invoke(g, c, a);
     await c.damage(g, c, 1);
     await g.updateDeath();
 })
 {
 }
Ejemplo n.º 4
0
 public ItemTrigggerEffectAfter(CheckConditionDelegate onCheckCondition, ExecuteDelegate onExecute)
     : base(PileName.ITEM, onCheckCondition, null, async(g, c, a) =>
 {
     await onExecute?.Invoke(g, c, a);
     c.setCurrentLife(c.getCurrentLife(g) - 1);
     await g.updateDeath();
 })
 {
 }
Ejemplo n.º 5
0
 public LambdaSingleTargetEffect(ExecuteDelegate onExecute,
                                 PileFlag ranges = PileFlag.none,
                                 CheckConditionDelegate onCheckCondition = null,
                                 CheckTargetDelegate onCheckTarget       = null)
 {
     if (ranges != PileFlag.none)
     {
         this.ranges = PileName.getPiles(ranges);
     }
     _onCheckCondition = onCheckCondition;
     _onCheckTarget    = onCheckTarget;
     _onExecute        = onExecute;
 }
Ejemplo n.º 6
0
        public void RemoveConditionCallBack(CheckConditionDelegate onCheckConditionHandler, CheckCallBackDelegate onCheckCallBackHandler)
        {
            if (onCheckConditionHandler == null || onCheckCallBackHandler == null)
            {
                return;
            }

            for (int i = ConditionalRoutineList.Count - 1; i >= 0; i--)
            {
                ConditionalRoutine data = ConditionalRoutineList[i];
                if (data.CheckCallBackHandler == onCheckCallBackHandler && data.CheckConditionHandler == onCheckConditionHandler)
                {
                    ConditionalRoutineList.Remove(data);
                }
            }
        }
Ejemplo n.º 7
0
        public void AddConditionCallBack(CheckConditionDelegate onCheckConditionHandler,
                                         CheckCallBackDelegate onCheckCallBackHandler, float intervalTime = 3.0f)
        {
            if (intervalTime <= 0 || onCheckConditionHandler == null || onCheckCallBackHandler == null)
            {
                return;
            }

            ConditionalRoutine data = new ConditionalRoutine();

            data.CheckConditionHandler = onCheckConditionHandler;
            data.CheckCallBackHandler  = onCheckCallBackHandler;
            data.CheckRemainTime       = intervalTime;
            data.CheckTimeInterval     = 0;
            data.StatusList            = onCheckConditionHandler();
            ConditionalRoutineList.Add(data);
        }
Ejemplo n.º 8
0
 public THHEffectAfter(string pile, CheckConditionDelegate onCheckCondition, CheckTargetDelegate onCheckTarget, ExecuteDelegate onExecute) :
     base(new After <T>(), pile, (game, card, vars) =>
 {
     if (onCheckCondition != null && vars != null && vars.Length > 0 && vars[0] is T t)
     {
         return(onCheckCondition.Invoke(game, card, t));
     }
     else
     {
         return(true);
     }
 }, onCheckTarget, (game, card, vars, targets) =>
 {
     if (onExecute != null && vars != null && vars.Length > 0 && vars[0] is T t)
     {
         return(onExecute.Invoke(game, card, t));
     }
     else
     {
         return(Task.CompletedTask);
     }
 })
 {
 }
Ejemplo n.º 9
0
 public DeathRattle(int id, ExecuteDelegate onExecute, CheckConditionDelegate onCheckCondition = null)
 {
     this.id               = id;
     this.onExecute        = onExecute;
     this.onCheckCondition = onCheckCondition;
 }
Ejemplo n.º 10
0
 public RemoveBuffAfter(string pile, CheckConditionDelegate onCheckCondition, int buffId) : base(pile, onCheckCondition, null, (game, card, arg) =>
 {
     return(card.removeBuff(game, card.getBuffs().Where(b => b.id == buffId)));
 })
 {
 }
Ejemplo n.º 11
0
 public AddBuffAfter(string pile, CheckConditionDelegate onCheckCondition, Buff originBuff) : base(pile, onCheckCondition, null, (g, c, a) =>
 {
     return(c.addBuff(g, originBuff.clone()));
 })
 {
 }
Ejemplo n.º 12
0
 public NoTargetEffect(ExecuteDelegate onExecute, CheckConditionDelegate onCheckCondition = null)
 {
     _onCheckCondition = onCheckCondition;
     _onExecute        = onExecute;
 }
Ejemplo n.º 13
0
 public CostModifier(int value, CheckConditionDelegate onCheckCondition) : base(nameof(ServantCardDefine.cost), value)
 {
     _onCheckCondition = onCheckCondition;
 }