Example #1
0
    public void JoinGame(string nickname)
    {
        SetGameCamera();
        SScript.SetPlayerInGame(nickname, true);
        switch (GameMode)
        {
        case "LANGame":
            Player = SScript.JoinEmptyGame(nickname, 2);
            break;

        case "EasyAI":
            Player = SScript.JoinNewGame(nickname, 2);
            break;

        case "NormalAI":
            Player = SScript.JoinNewGame(nickname, 2);
            break;

        case "Sandbox":
            Player = SScript.JoinNewGame(nickname, 1);
            break;

        case "Hotseat":
            Player = SScript.JoinNewGame(nickname, 2);
            break;
        }
        Game   = SScript.GetGame(nickname);
        GameId = Game.Id;
        RpcJoinGame(GameId);
        SetHandset(nickname, Player);

        RpcSpawnCScript();
        RpcSetPNumber(Player.Number);
        DownloadData();
        for (int x = 0; x < 4; x++)
        {
            RpcSetTopCardInQueue(GameId, x, STopCardInQueue(x));
        }
        // Specjal modes
        if (GameMode == "NormalAI")
        {
            SScript.JoinGame("NormalAI", 2, GameId);
            SetHandset("NormalAI", Game.NextPlayer(Player));
        }
        else if (GameMode == "EasyAI")
        {
            SScript.JoinGame("EasyAI", 2, GameId);
            SetHandset("NormalAI", Game.NextPlayer(Player));
        }
        else if (GameMode == "Hotseat")
        {
            SScript.JoinGame(nickname, 2, GameId);
            SetHandset(nickname, Game.NextPlayer(Player));
        }
    }
Example #2
0
    public void SetHandset(string nickname, SScript.BasicGame.BasicPlayer player)
    {
        string [] Lines         = File.ReadAllLines(@"C:/TokenBattle/Users/" + nickname + ".txt");
        int       HandsetNumber = int.Parse(Lines [Array.FindIndex(Lines, s => s.Equals("Handset")) + 1]);
        int       LineNumber    = Array.FindIndex(Lines, s => s.Equals("set " + HandsetNumber.ToString()));

        LineNumber++;
        for (int x = 0; x < 4; x++)
        {
            string [] Stack = Lines [++LineNumber].Split(' ');
            player.CardQueue [x].QueueSize   = Stack.Length;
            player.CardQueue [x].CardNumbers = new int [Stack.Length];
            int y = 0;
            foreach (string number in Stack)
            {
                player.CardQueue [x].CardNumbers [y] = int.Parse(number);
                y++;
            }
        }
    }
Example #3
0
    public void UseToken(int x, int y, int CardNumber)
    {
        if (!SGetTokenExist(x, y) && (GameMode == "Sandbox" || Game.TurnOfPlayer == Player.Number) && !Game.Finished)
        {
            SSetTokenExist(x, y, true);
            SSetTokenType(x, y, STokenType(CardNumber));
            SSetTokenValue(x, y, STokenValue(CardNumber));
            SSetTokenPlayer(x, y, Player.Number);
            SSpawnToken(x, y, true);
            SetCheckedAll(false);
            for (int ta = 0; ta < SAbilitySize(CardNumber); ta++)
            {
                int cx = x + SAbilityX(CardNumber, ta);
                int cy = y + SAbilityY(CardNumber, ta);
                if (CheckWithMap(cx, cy))
                {
                    switch (SAbilityType(CardNumber))
                    {
                    case 1:
                        RpcCreateEffect(GameId, cx, cy);
                        SSetTokenValue(cx, cy, SGetTokenValue(cx, cy) - 1);
                        StartCoroutine(SCheckToken(cx, cy));
                        break;

                    case 2:
                        RpcCreateArrowEffect(GameId, cx, cy, x, y);
                        if (SGetTokenExist(cx, cy) && !SGetTokenChecked(cx, cy))
                        {
                            int cx2 = x + 2 * SAbilityX(CardNumber, ta);
                            int cy2 = y + 2 * SAbilityY(CardNumber, ta);
                            if (CheckWithMap(cx2, cy2))
                            {
                                if (!SGetTokenExist(cx2, cy2))
                                {
                                    RpcPushToken(GameId, cx, cy, cx2, cy2);
                                    SSwapToken(cx, cy, cx2, cy2);
                                    SSetTokenChecked(cx2, cy2, true);
                                }
                            }
                            else
                            {
                                RpcPushToken(GameId, cx, cy, cx2, cy2);
                                SSetTokenExist(cx, cy, false);
                            }
                        }
                        break;

                    case 3:
                        RpcCreateArrowEffect(GameId, cx, cy, 2 * cx - x, 2 * cy - y);
                        if (SGetTokenExist(cx, cy) && !SGetTokenChecked(cx, cy))
                        {
                            int cx2 = x - SAbilityX(CardNumber, ta);
                            int cy2 = y - SAbilityY(CardNumber, ta);
                            if (CheckWithMap(cx2, cy2))
                            {
                                if (!SGetTokenExist(cx2, cy2))
                                {
                                    RpcPushToken(GameId, cx, cy, cx2, cy2);
                                    SSwapToken(cx, cy, cx2, cy2);
                                    SSetTokenChecked(cx2, cy2, true);
                                }
                            }
                            else
                            {
                                RpcPushToken(GameId, cx, cy, cx2, cy2);
                                SSetTokenExist(cx, cy, false);
                            }
                        }
                        break;
                    }
                }
            }
            Player.UsedTokens++;
            Player.UsedTokensByAbilityType [SAbilityType(CardNumber)]++;
            SMoveQueue(CardNumber);
            EndTurn();
            if (Player.Nickname != "NormalAI" && Player.Nickname != "EasyAI")
            {
                RpcSetTopCardInQueue(GameId, CardNumber, STopCardInQueue(CardNumber));
                if (GameMode == "EasyAI" || GameMode == "NormalAI" || GameMode == "Hotseat")
                {
                    Player = Game.NextPlayer(Player);
                }
                if (GameMode == "EasyAI")
                {
                    StartCoroutine(RunAI(NicknameToNumber("EasyAI"), 0.25f));
                }
                if (GameMode == "NormalAI")
                {
                    StartCoroutine(RunAI(NicknameToNumber("NormalAI"), 0.25f));
                }
                if (GameMode == "Hotseat")
                {
                    RpcSetPNumber(Player.Number);
                    for (int queue = 0; queue < 4; queue++)
                    {
                        RpcSetTopCardInQueue(GameId, queue, STopCardInQueue(queue));
                    }
                }
            }
            else
            {
                Player = Game.NextPlayer(Player);
            }
        }
    }