示例#1
0
    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);
    }
示例#2
0
    // 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);

                }
    }