IEnumerator NetworkActivate(int player, IndividualCard myCard)
    {
        myCard.SelectCard();
        myCard.cardType       = 15;
        myCard.isPoison       = true;
        myCard.selectedEffect = (GameObject)Instantiate(selectPrefab, myCard.transform.position, Quaternion.identity);

        yield return(new WaitForSeconds(GS.a.powerUpSettings.poison_activeTime));


        if (network_scoreboard [player] != null)
        {
            network_scoreboard [player].GetComponent <DisableAndDestroy> ().Engage();
        }
        network_scoreboard [player] = null;

        myCard.UnSelectCard();
    }
Пример #2
0
    public void Activate(IndividualCard myCard)
    {
        if (isChecking)
        {
            return;
        }

        //check if we have done the first round
        int i = 0;

        if (mem_Cards [0] != null || mem_Cards[1] != null)
        {
            i = 2;
        }

        //select the card the player chose
        SelectCard(myCard, i);

        //select a random card
        SelectRandomCard(i + 1);

        if (i == 0)
        {
            if (mem_Cards [0].cardType == mem_Cards [1].cardType)
            {
                isChecking = true;
                Invoke("CheckCards", GS.a.powerUpSettings.earth_checkSpeed);
            }
            else
            {
                LocalPlayerController.s.canSelect = true;
            }
        }
        else
        {
            isChecking = true;
            Invoke("CheckCards", GS.a.powerUpSettings.earth_checkSpeed);
        }

        if (counter >= GS.a.powerUpSettings.earth_activeCount)
        {
            Disable();
        }
    }
    public override IEnumerator MainLoop()
    {
        yield return(new WaitForSeconds(0.5f));

        IndividualCard        curTarget = null;
        List <IndividualCard> myCards;

        while (true)
        {
            do
            {
                myCards = GetRandomizedMoveableCardList();
                yield return(new WaitForSeconds(0.5f));
            } while (myCards.Count == 0);

            curTarget = GetRandomizedMoveableCardList()[0];
            yield return(MoveToPosition(curTarget));

            if (!Select(curTarget))
            {
                Denied();
            }

            yield return(new WaitForSeconds(selectWaitTime));

            if (curTarget == null)
            {
                yield return(new WaitForSeconds(reactionTime));

                continue;
            }

            while (curTarget.cBase != GS.a.cardSet.matchedCard)
            {
                Activate(curTarget);
                ScoreBoardManager.s.AddScore(DataHandler.s.myPlayerInteger, 0, -1, true);

                yield return(new WaitForSeconds(periodicAttackTime));
            }

            Die(false);
        }
    }
Пример #4
0
    public void ReceiveNPCAction(int x, int y, int index, ActionType action, int data)
    {
        IndividualCard card = null;

        try {
            if (x != -1 && y != -1)
            {
                card = CardHandler.s.allCards[x, y];
            }
        } catch {
            DataLogger.LogError("ReceiveNPCAction couldnt find the card " + x.ToString() + "-" + y.ToString());
        }

        try {
            NPCBase myNPC = null;
            if (action != ActionType.Spawn)
            {
                myNPC = ActiveNPCS[index];
            }

            switch (action)
            {
            case ActionType.Spawn:
                DataLogger.LogError("Customs NPCs are not implemented to spawn yet! Spawning default level npc");
                myNPC = SpawnNPCAtLocation(card, GS.a.myNPCPrefab);
                ActiveNPCS.SetIndex(index, myNPC);
                break;

            case ActionType.Die:
            case ActionType.SelectCard:
            case ActionType.Activate:
            case ActionType.GoToPos:
                myNPC.ReceiveNPCAction(card, action, data);
                break;

            default:
                DataLogger.LogError("Unrecognized power up action PUF");
                break;
            }
        } catch (System.Exception e) {
            DataLogger.LogError(this.name, e);
        }
    }
Пример #5
0
    public void ReceiveAction(int player, int x, int y, PowerUpManager.ActionType action)
    {
        try {
            switch (action)
            {
            case PowerUpManager.ActionType.Enable:
                network_scoreboard [player] = (GameObject)Instantiate(scoreboardPrefab, ScoreBoardManager.s.scoreBoards [player].transform);
                network_scoreboard [player].transform.ResetTransformation();
                break;

            case PowerUpManager.ActionType.Activate:
                IndividualCard myCard = CardHandler.s.allCards [x, y];
                Instantiate(activatePrefab, myCard.transform.position, Quaternion.identity);
                break;

            case PowerUpManager.ActionType.SelectCard:
                IndividualCard myCard2 = CardHandler.s.allCards [x, y];
                if (myCard2.isSelectable)
                {
                    myCard2.SelectCard();
                }
                else
                {
                    DataHandler.s.NetworkCorrection(myCard2);
                }
                break;

            case PowerUpManager.ActionType.Disable:
                if (network_scoreboard [player] != null)
                {
                    network_scoreboard [player].GetComponent <DisableAndDestroy> ().Engage();
                }
                network_scoreboard [player] = null;
                break;

            default:
                DataLogger.LogError("Unrecognized power up action PUF");
                break;
            }
        } catch (System.Exception e) {
            DataLogger.LogError(this.name, e);
        }
    }
Пример #6
0
    public override void SetUp(int playerID, bool isPowerUp, IndividualCard card1, IndividualCard card2)
    {
        /*if (card1.cBase.score == 0) {
         *      Destroy (gameObject);
         *      return;
         * }*/

        //print ("Trying to spawn and align effect: " + name);

        AlignBetweenCards(card1, card2, AlignMode.position);

        unifier1.transform.position = card1.transform.position - Vector3.forward * 0.1f;
        unifier2.transform.position = card2.transform.position - Vector3.forward * 0.1f;

        float deltaUnifier = Mathf.Abs((card1.transform.position - card2.transform.position).magnitude) / 2f;

        aUnifier = 2 * deltaUnifier / (uniTimer * uniTimer);
        vUnifier = 0;

        List <Transform> targets = new List <Transform> ();

        if (!isPowerUp)
        {
            targets.Add(ScoreBoardManager.s.scoreGetTargets[playerID]);
        }
        else
        {
            targets.Add(ScoreBoardManager.s.powerGetTargets[0]);
            targets.Add(ScoreBoardManager.s.powerGetTargets[0]);
        }
        target = targets[Random.Range(0, targets.Count)];

        float deltax = target.position.x - transform.position.x;
        float deltay = target.position.y - transform.position.y;

        vx = deltax * xMul;
        vy = deltay * yMul;

        ax = 2 * (deltax - (vx * timer)) / (timer * timer);
        ay = 2 * (deltay - (vy * timer)) / (timer * timer);

        StartCoroutine(Move());
    }
    IEnumerator NetworkDisable(int player, IndividualCard myCard)
    {
        myCard.SelectCard();
        Instantiate(activatePrefab, myCard.transform.position, Quaternion.identity);
        myCard.selectedEffect = (GameObject)Instantiate(selectPrefab, myCard.transform.position, Quaternion.identity);

        yield return(new WaitForSeconds(GS.a.powerUpSettings.poison_checkSpeed / 4f));

        for (int i = 0; i < GS.a.powerUpSettings.poison_damage; i++)
        {
            GameObject exp = (GameObject)Instantiate(scoreLowerExplosionPrefab, ScoreBoardManager.s.scoreBoards [player].transform);
            exp.transform.ResetTransformation();

            yield return(new WaitForSeconds((GS.a.powerUpSettings.poison_checkSpeed / 2f) / (float)GS.a.powerUpSettings.poison_damage));
        }

        yield return(new WaitForSeconds(GS.a.powerUpSettings.poison_checkSpeed / 4f));

        myCard.PoisonMatch();
    }
Пример #8
0
    static void SpawnEffectBetweenCards(GameObject fx, int playerID, IndividualCard card1, IndividualCard card2, Color effectColor)
    {
        if (card1.cBase.effectColor.a <= 0.5f)
        {
            card1.cBase.effectColor = PowerUpManager.s.dragonColors[0];
        }

        if (fx != null)
        {
            GameObject myFx = Instantiate(fx);
            if (myFx.GetComponent <BetweenCardsEffect> () != null)
            {
                myFx.GetComponent <BetweenCardsEffect> ().SetUp(playerID, card1.cBase.isPowerUpRelated, card1, card2);
            }
            if (myFx.GetComponent <ElementalTypeSpriteColorChanger> () != null)
            {
                myFx.GetComponent <ElementalTypeSpriteColorChanger> ().ChangeColor(card1.cBase.effectColor);
            }
        }
    }
    IEnumerator _Activate(IndividualCard myCard, int _power, float _amount)
    {
        activateEffect.transform.localScale = new Vector3(-((_power - 1f) / 1.9f), 1f + ((_power - 1.5f) / 7f), 1);

        yield return(new WaitForSeconds(0.1f));

        for (int i = 0; i < _power; i++)
        {
            Select(GetLineSequence(myCard, i, _power));
            yield return(new WaitForSeconds(0.03f));
        }

        CheckCards(0.4f + (0.02f * _power));

        amount--;
        if (amount <= 0)
        {
            Disable();
        }
    }
Пример #10
0
    protected IEnumerator MoveToPosition(IndividualCard to)
    {
        if (to == null)
        {
            yield return(null);
        }
        else
        {
            if (DataHandler.s.myPlayerInteger == 0)
            {
                SendNPCAction(to.x, to.y, NPCManager.ActionType.GoToPos, -1);
            }

            if (selectionHintEffect != null)
            {
                Instantiate(selectionHintEffect, to.transform.position, selectionHintEffect.transform.rotation);
            }
            yield return(MoveToPositionCoroutine(to));
        }
    }
Пример #11
0
    IEnumerator NetworkNetherRoutine(int _power, float _amount)
    {
        //----------------------new
        //GameObject netherEffect = (GameObject)Instantiate (netherEffectPrefab, Vector3.zero, Quaternion.identity);
        //yield return new WaitForSeconds (netherActiveTime);
        //----------------------new

        int gridSizeX = CardHandler.s.allCards.GetLength(0);
        int gridSizeY = CardHandler.s.allCards.GetLength(1);

        for (int y = 0; y < gridSizeY; y++)
        {
            //----------------------old
            IndividualCard NetherPos    = CardHandler.s.allCards[0, y];
            GameObject     netherEffect = (GameObject)Instantiate(netherEffectPrefab, NetherPos.transform.position, Quaternion.identity);
            //----------------------old

            for (int x = 0; x < gridSizeX; x++)
            {
                IndividualCard myCardS = CardHandler.s.allCards[x, y];


                if (myCardS.cBase == null)
                {
                    GameObject netherGetEffect = (GameObject)Instantiate(getEffectPrefab, myCardS.transform.position - Vector3.forward, Quaternion.identity);
                    //myCardS.cardType = 5;
                    //myCardS.cardType = 0;
                    yield return(new WaitForSeconds(0.01f));
                }
                else
                {
                    //myCardS.JustRotate ();
                    myCardS.NetherReset();
                }

                yield return(new WaitForSeconds(0.005f));
            }
            yield return(new WaitForSeconds(0.05f));
        }
        yield return(null);
    }
Пример #12
0
    //-----------------------------------------------------------------------------------------------Helper Functions
    IEnumerator SelectSquareCards(IndividualCard center)
    {
        Instantiate(activatePrefab, center.transform.position, Quaternion.identity);

        //yield return new WaitForSeconds (effectActiveTime);

        int gridSizeX = CardHandler.s.allCards.GetLength(0);
        int gridSizeY = CardHandler.s.allCards.GetLength(1);


        //get cards
        int leftLimit  = (int)Mathf.Clamp(center.x - 1, 0, gridSizeX - 1);
        int rightLimit = (int)Mathf.Clamp(center.x + 1, 0, gridSizeX - 1);
        int downLimit  = (int)Mathf.Clamp(center.y - 1, 0, gridSizeY - 1);
        int upLimit    = (int)Mathf.Clamp(center.y + 1, 0, gridSizeY - 1);

        int n = 0;

        for (int i = leftLimit; i <= rightLimit; i++)
        {
            for (int m = downLimit; m <= upLimit; m++)
            {
                IndividualCard myCardS = CardHandler.s.allCards [i, m];

                if (myCardS.cardType != 0)
                {
                    if (myCardS.isSelectable)
                    {
                        SelectCard(myCardS, n);
                        n++;

                        yield return(new WaitForSeconds(0.05f));
                    }
                }
            }
        }

        yield return(new WaitForSeconds(0.3f));

        CheckCards();
    }
Пример #13
0
    IEnumerator _Activate(IndividualCard myCard, int _power, float _amount)
    {
        yield return(new WaitForSeconds(0.1f));

        for (int i = 0; i < _power; i++)
        {
            Select(GetAreaSequence(myCard, i, _power));
            if (i % 4 == 0)
            {
                yield return(new WaitForSeconds(0.03f));
            }
        }

        CheckCards(0.4f + (0.02f * _power));

        amount--;
        if (amount <= 0)
        {
            Disable();
        }
    }
Пример #14
0
    NPCBase SpawnNPCAtLocation(IndividualCard myCard, NPCBase myNPCPrefab)
    {
        if (myNPCPrefab == null)
        {
            DataLogger.LogError("Trying to spawn null npc");
            return(null);
        }

        NPCBase myNPC = Instantiate(myNPCPrefab.gameObject, npcSpawnPos.position, Quaternion.identity).GetComponent <NPCBase> ();

        myNPC.transform.localScale = new Vector3(1, 1, 1) * GS.a.gridSettings.scaleMultiplier;
        myNPC.Spawn(myCard);

        if (DataHandler.s.myPlayerInteger == 0)
        {
            ActiveNPCS.Add(myNPC);
            SendNPCAction(myCard.x, myCard.y, myNPC.GetComponent <NPCBase> (), ActionType.Spawn, -1);
        }

        return(myNPC);
    }
Пример #15
0
    IEnumerator MoveOneSpot(IndividualCard from, IndividualCard to)
    {
        //Vector3 startPos = from.transform.position + cardOffset;
        Vector3 endPos = to.transform.position + cardOffset;

        while (Vector3.Distance(transform.position, endPos) > 0.01f)
        {
            if (!isStunned)
            {
                transform.position = Vector3.Lerp(transform.position, endPos, Time.deltaTime * 20f);
            }

            yield return(null);
        }

        transform.position = endPos;

        from.myOccupants.Remove(this);
        to.myOccupants.Add(this);
        myCurrentOccupation = to;
        yield return(null);
    }
Пример #16
0
    IEnumerator MoveToStartPos(IndividualCard myCard)
    {
        //come back to this sometime to comment this section please!

        transform.position = myCard.transform.position + cardOffset + cardOffset + cardOffset + startingPositionOffset;
        Vector3 endPos = myCard.transform.position + cardOffset;

        while (Vector3.Distance(transform.position, endPos) > 0.01f)
        {
            transform.position = Vector3.Lerp(transform.position, endPos, Time.deltaTime * 10f);

            yield return(null);
        }
        transform.position = endPos;

        myCurrentOccupation = myCard;

        if (DataHandler.s.myPlayerInteger == 0)
        {
            StartCoroutine(MainLoop());
        }
    }
Пример #17
0
    public override IEnumerator MainLoop()
    {
        yield return(new WaitForSeconds(0.5f));

        IndividualCard curTarget = null;

        while (true)
        {
            List <IndividualCard> allCards = GetAllCards();
            RandFuncs.Shuffle(allCards);
            foreach (IndividualCard card in allCards)
            {
                if (card.currentSelectingPlayer != -1)
                {
                    curTarget = card;
                    break;
                }
            }

            if (curTarget == null)
            {
                yield return(new WaitForSeconds(reactionTime));

                continue;
            }

            yield return(MoveToPosition(curTarget));

            while (curTarget.currentSelectingPlayer != -1)
            {
                Activate(curTarget);
                ScoreBoardManager.s.AddScore(curTarget.currentSelectingPlayer, 0, -1, true);

                yield return(new WaitForSeconds(periodicAttackTime));
            }

            yield return(new WaitForSeconds(reactionTime));
        }
    }
Пример #18
0
    public void ReceiveEnemyPowerUpActions(int player, int x, int y, PUpTypes type, int id, int power, float amount, ActionType action)
    {
        IndividualCard card = null;

        try {
            if (x != -1 && y != -1)
            {
                card = CardHandler.s.allCards[x, y];
            }
        } catch {
            DataLogger.LogError("ReceiveEnemyPowerUpActions couldnt find the card " + x.ToString() + "-" + y.ToString());
        }

        if (type == PUpTypes.equipment)
        {
            equipmentPUps[id].ReceiveAction(player, card, power, amount, action);
        }
        else
        {
            potionPUps[id].ReceiveAction(player, card, power, amount, action);
        }
    }
Пример #19
0
    IEnumerator _Activate(IndividualCard myCard)
    {
        SendAction(myCard.x, myCard.y, PowerUpManager.ActionType.Activate);

        myCard.SelectCard();
        myCard.cardType       = 15;
        myCard.isPoison       = true;
        myCard.selectedEffect = (GameObject)Instantiate(selectPrefab, myCard.transform.position, Quaternion.identity);


        indicator.GetComponent <DisableAndDestroy> ().Engage();
        indicator = null;
        LocalPlayerController.s.PowerUpMode(false);
        PowerUpManager.s.canActivatePowerUp = true;
        LocalPlayerController.s.canSelect   = true;


        yield return(new WaitForSeconds(GS.a.powerUpSettings.poison_activeTime));


        myCard.UnSelectCard();
    }
Пример #20
0
    /*Vector3 DefPos;
     * IEnumerator FloatAround () {
     *      DefPos = transform.position;
     *
     *      int random = Random.Range (0, 10000);
     *
     *      yield return new WaitForSeconds (Random.Range(0, 2f));
     *
     *      while (true) {
     *              Vector3 goToPos = Random.insideUnitSphere/5f + DefPos;
     *              //Vector3 goToPos = new Vector3 (temp.x, temp.y, DefPos.z) + DefPos;
     *
     *              float timer = Random.Range(1f,3f);
     *              float driftSpeed = Random.Range (0.01f, 0.05f);
     *              //print ("Card going to: " + goToPos.ToString());
     *              while (timer > 0) {
     *                      transform.position = Vector3.MoveTowards (transform.position, goToPos, driftSpeed * Time.deltaTime);
     *                      timer -= Time.deltaTime;
     *                      yield return null;
     *              }
     *              yield return null;
     *      }
     * }*/

    public void SetOpenState(bool state)
    {
        aud    = GetComponent <AudioPlayer> ();
        card   = GetComponent <IndividualCard> ();
        isOpen = state;

        if (!isMatched)
        {
            InstantSetAlphaStates();
            StopAllCoroutines();
            if (isOpen)
            {
                aud.OpenSound();
                StartCoroutine(RotateTo(openRotation, openTime));
            }
            else
            {
                aud.CloseSound();
                StartCoroutine(RotateTo(closeRotation, openTime));
            }
        }
    }
Пример #21
0
    IEnumerator _ChoosePoisonCard(int myPlayerinteger, IndividualCard myCard)
    {
        bool temp = true;

        if (myPlayerinteger == DataHandler.s.myPlayerInteger)
        {
            //LocalPlayerController.s.canSelect = false;
            //temp = PowerUpManager.s.canActivatePowerUp;
            //PowerUpManager.s.canActivatePowerUp = false;
        }

        myCard.SelectCard();
        Instantiate(activatePrefab, myCard.transform.position, Quaternion.identity);
        myCard.selectedEffect = (GameObject)Instantiate(selectPrefab, myCard.transform.position, Quaternion.identity);
        myCard.isPoison       = false;

        print("poison coroutine started");

        yield return(new WaitForSeconds(GS.a.powerUpSettings.poison_checkSpeed / 4f));

        for (int i = 0; i < GS.a.powerUpSettings.poison_damage; i++)
        {
            ScoreBoardManager.s.AddScore(myPlayerinteger, 0, -1, false);
            GameObject exp = (GameObject)Instantiate(scoreLowerExplosionPrefab, ScoreBoardManager.s.scoreBoards [myPlayerinteger].transform);
            exp.transform.ResetTransformation();

            yield return(new WaitForSeconds((GS.a.powerUpSettings.poison_checkSpeed / 2f) / (float)GS.a.powerUpSettings.poison_damage));
        }

        yield return(new WaitForSeconds(GS.a.powerUpSettings.poison_checkSpeed / 4f));

        if (myPlayerinteger == DataHandler.s.myPlayerInteger)
        {
            //LocalPlayerController.s.canSelect = true;
            //PowerUpManager.s.canActivatePowerUp = temp;
        }
        myCard.PoisonMatch();
    }
Пример #22
0
    protected void Select(IndividualCard card)
    {
        if (card == null)
        {
            return;
        }

        if (card.isOccupied)
        {
            card.KillOccupants();
        }

        if (card.isSelectable)
        {
            card.SelectCard(-1);
            SendAction(card.x, card.y, power, amount, PowerUpManager.ActionType.SelectCard);
            mem_Cards.Add(card);
            if (selectPrefab != null)
            {
                card.selectedEffect = (GameObject)Instantiate(selectPrefab, card.transform.position, Quaternion.identity);
            }
        }
    }
Пример #23
0
    IEnumerator DeadlyPoisonCard(int myPlayerinteger, IndividualCard myCard, DeadlyRoutineHolder holder)
    {
        myCard.SelectCard(myPlayerinteger);
        float timer = myCard.cBase.poisonAmount;

        GameObject myEffect = Instantiate(deadlyPoisonEffect, myCard.transform.position, Quaternion.identity);

        myEffect.GetComponent <DeadlyPoisonEffect> ().SetUp(timer);

        holder.effect = myEffect;

        yield return(new WaitForSeconds(timer));

        LocalPlayerController.s.canSelect   = false;
        GameObjectiveMaster.s.isGamePlaying = false;

        Instantiate(deadlyPoisonExplodeEffect, myCard.transform.position, Quaternion.identity);

        yield return(new WaitForSeconds(1f));

        GameObjectiveMaster.s.EndGame(GameObjectiveMaster.s.WinnerID(false));

        yield return(null);
    }
Пример #24
0
    //Area Sequence

    /*
     *   6  4  8
     *   3  1  2
     *   9  5  7
     */
    protected IndividualCard GetAreaSequence(IndividualCard start, int areaId, int power)
    {
        int xLength = CardHandler.s.allCards.GetLength(0);
        int yLength = CardHandler.s.allCards.GetLength(1);
        int xOffset = 0;
        int yOffset = 0;

        switch (areaId + 1)
        {
        case 1:
            //do nothing as this is the middle
            break;

        case 2:
            xOffset = 1;
            break;

        case 3:
            xOffset = -1;
            break;

        case 4:
            yOffset = 1;
            break;

        case 5:
            yOffset = -1;
            break;

        case 6:
            xOffset = -1;
            yOffset = 1;
            break;

        case 7:
            xOffset = 1;
            yOffset = -1;
            break;

        case 8:
            xOffset = 1;
            yOffset = 1;
            break;

        case 9:
            xOffset = -1;
            yOffset = -1;
            break;
        }


        if ((xLength > start.x + xOffset && start.x + xOffset >= 0) &&
            (yLength > start.y + yOffset && start.y + yOffset >= 0))
        {
            return(CardHandler.s.allCards[start.x + xOffset, start.y + yOffset]);
        }
        else
        {
            return(null);
        }
    }
Пример #25
0
 /// <summary>
 /// Dont use this method unless necessary, CheckCards will automatically unselect for you
 /// </summary>
 /// <param name="card"></param>
 protected void UnSelect(IndividualCard card)
 {
     card.UnSelectCard();
     DataHandler.s.SendPlayerAction(card.x, card.y, CardHandler.CardActions.UnSelect);
 }
Пример #26
0
    IEnumerator MoveToPositionCoroutine(IndividualCard to)
    {
        if (to == null)
        {
            yield return(new WaitForSeconds(1f));
        }

        to.isTargeted = true;

        int distanceX = to.x - myCurrentOccupation.x;
        int distanceY = to.y - myCurrentOccupation.y;
        int distance  = Mathf.Abs(distanceX) + Mathf.Abs(distanceY);

        while (distance > 0)
        {
            int xOff = 0;
            int yOff = 0;
            if (distanceY > 0)
            {
                yOff = 1;
            }
            else if (distanceY < 0)
            {
                yOff = -1;
            }
            if (distanceX > 0)
            {
                xOff = 1;
            }
            else if (distanceX < 0)
            {
                xOff = -1;
            }

            if (Mathf.Abs(xOff) + Mathf.Abs(yOff) == 2)
            {
                if (Random.value > 0.5f)
                {
                    xOff = 0;
                }
                else
                {
                    yOff = 0;
                }
            }

            if (Mathf.Abs(xOff) + Mathf.Abs(yOff) == 0)
            {
                break;
            }
            IndividualCard targetCard = CardHandler.s.allCards[myCurrentOccupation.x + xOff, myCurrentOccupation.y + yOff];


            yield return(MoveOneSpot(myCurrentOccupation, targetCard));

            distanceX = to.x - myCurrentOccupation.x;
            distanceY = to.y - myCurrentOccupation.y;
            distance  = Mathf.Abs(distanceX) + Mathf.Abs(distanceY);


            yield return(new WaitForSeconds(movementSpeed));
        }

        //moving finsihed
        yield return(new WaitForSeconds(selectWaitTime));
    }
Пример #27
0
    public override void Activate(IndividualCard myCard)
    {
        base.Activate(myCard);

        StartCoroutine(_Activate(myCard, power, amount));
    }
Пример #28
0
    // Use this for initialization

    public override void SetUp(int playerID, bool isPowerUp, IndividualCard card1, IndividualCard card2)
    {
        Color myColor = card1.cBase.effectColor;

        if (myColor.a <= 0.5f)
        {
            myColor = PowerUpManager.s.dragonColors[0];
        }


        //-----------------------------lightning bolt
        Vector3[] places = new Vector3[2];
        places[0] = card1.transform.position + (-Vector3.forward);
        places[1] = card2.transform.position + (-Vector3.forward);

        GetComponentInChildren <LineRenderer> ().startColor = myColor;
        GetComponentInChildren <LineRenderer> ().endColor   = myColor;


        GetComponentInChildren <DigitalRuby.LightningBolt.LightningBoltScript> ().StartPosition = places[0];
        GetComponentInChildren <DigitalRuby.LightningBolt.LightningBoltScript> ().EndPosition   = places[1];


        //-----------------------------particle attractor
        if (card1.cBase.score != 0)
        {
            List <Transform> targets = new List <Transform> ();
            if (!isPowerUp)
            {
                targets.Add(ScoreBoardManager.s.scoreGetTargets[playerID]);
            }
            else
            {
                targets.Add(ScoreBoardManager.s.powerGetTargets[0]);
                targets.Add(ScoreBoardManager.s.powerGetTargets[1]);
            }
            foreach (ParticleSystem part in GetComponentsInChildren <ParticleSystem> ())
            {
                part.startColor = myColor;
            }
            try {
                int n = 0;
                foreach (particleAttractorLinear att in GetComponentsInChildren <particleAttractorLinear> ())
                {
                    if (targets[n] == null)
                    {
                        n = IncrementN(n, targets);
                    }
                    if (targets[n] == null)
                    {
                        DataLogger.LogError("Trying to set null match effect target!");
                    }
                    att.target = targets[n];
                    n          = IncrementN(n, targets);
                }
            } catch (System.Exception e) {
                DataLogger.LogError("Cant set match effect target " + e.Message);
            }

            particles[0].transform.position = places[0];
            particles[1].transform.position = places[1];
        }
        else
        {
            Destroy(particles[0].gameObject);
            Destroy(particles[1].gameObject);
        }
    }
Пример #29
0
    IEnumerator _Activate(IndividualCard myCard, float n)
    {
        yield return(new WaitForSeconds(n == 0 ? 0.7f : 0.4f));

        Select(myCard);
    }
Пример #30
0
    public void Activate(IndividualCard myCard, float n)
    {
        base.Activate(myCard);

        StartCoroutine(_Activate(myCard, n));
    }