public static void AddToStack(bool AI, card effectcard, int effect_number) { EffectToDo effect_to_add = new EffectToDo(); effect_to_add.AI = AI; effect_to_add.effectcard = effectcard; effect_to_add.effect_number = effect_number; if (AI) foreach (GameObject target in Enemy.targets) effect_to_add.targets.Add(target); else foreach (GameObject target in Player.targets) effect_to_add.targets.Add(target); Stack.Add (effect_to_add); Debug.Log ("added to stack effect from card:" + effectcard.Name + ", for enemy: "+AI); }
// Update is called once per frame void Update() { //Debug.Log("Player.CanDoStack:"+Player.CanDoStack); //try to execute the first effect from stack if (Stack.Count > 0 && !Player.EffectInProcess && Player.CanDoStack) { // here an option to counter the spell/ cast an instant will be added Player.EffectInProcess = true; Debug.Log ("starting to do the last added effect from the stack"); EffectToDo lastadded = new EffectToDo(); lastadded.AI = Stack[Stack.Count-1].AI; lastadded.effectcard = Stack[Stack.Count-1].effectcard; lastadded.effect_number = Stack[Stack.Count-1].effect_number; lastadded.targets = Stack[Stack.Count-1].targets; Stack.Remove(Stack[Stack.Count-1]); DoEffect (lastadded.AI, lastadded.effectcard, lastadded.effect_number, lastadded.targets); } }