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; }
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; }
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(); }) { }
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(); }) { }
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; }
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); } } }
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); }
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); } }) { }
public DeathRattle(int id, ExecuteDelegate onExecute, CheckConditionDelegate onCheckCondition = null) { this.id = id; this.onExecute = onExecute; this.onCheckCondition = onCheckCondition; }
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))); }) { }
public AddBuffAfter(string pile, CheckConditionDelegate onCheckCondition, Buff originBuff) : base(pile, onCheckCondition, null, (g, c, a) => { return(c.addBuff(g, originBuff.clone())); }) { }
public NoTargetEffect(ExecuteDelegate onExecute, CheckConditionDelegate onCheckCondition = null) { _onCheckCondition = onCheckCondition; _onExecute = onExecute; }
public CostModifier(int value, CheckConditionDelegate onCheckCondition) : base(nameof(ServantCardDefine.cost), value) { _onCheckCondition = onCheckCondition; }