示例#1
0
    public override Game createGame(XMPPGameOptions options)
    {
        var ffa = new FreeForAll(options.multiplayerAttackOption, mage.constants.RangeOfInfluence.ALL, options.mulligan, options.startLife);

        ffa.setGameOptions(options.mageGameOptions);
        return(ffa);
    }
示例#2
0
    void InitGame(List <string> playerUsernames, XMPPGameType gameType, XMPPGameOptions gameOptions)
    {
        mageGame = gameType.createGame(gameOptions);
        mageGame.addTableEventListener(new XMPPEventListener(this));
        // mageGame.addPlayerQueryEventListener(new XMPPEventListener(this));
        var networkManager = GameObject.FindGameObjectWithTag("NetworkManager").GetComponent <XMPPNetworkManager>();

        foreach (var s in playerUsernames)
        {
            var p = Instantiate(playerPrefab);
            // NetworkServer.Spawn(p);
            players.Add(s, p);
            playerPresent.Add(s, false);
        }
    }
示例#3
0
 public abstract mage.game.Game createGame(XMPPGameOptions options);
示例#4
0
    // Start is called before the first frame update
    void Start()
    {
        string[] args = System.Environment.GetCommandLineArgs();
        string   m    = "CanadianHighlanderMulligan";
        int      fm   = 0;

        gameOptions = new XMPPGameOptions();
        gameOptions.mageGameOptions = new mage.game.GameOptions();
        for (int i = 0; i < args.Length; i++)
        {
            switch (args[i])
            {
            case "--server":
                server = true;
                break;

            case "--address":
                address = args[i + 1];
                break;

            case "--port":
                port = int.Parse(args[i + 1]);
                break;

            case "--username":
                username = args[i + 1];
                break;

            case "--gameType":
                gameType = args[i + 1];
                break;

            case "--mulliganType":
                m = args[i + 1];
                break;

            case "--freeMulligan":
                fm = int.Parse(args[i + 1]);
                break;

            case "--startLife":
                gameOptions.startLife = int.Parse(args[i + 1]);
                break;

            case "--startingSize":
                gameOptions.startingSize = int.Parse(args[i + 1]);
                break;

            case "--multiplayerAttackOption":
                switch (args[i + 1])
                {
                case "multiple":
                    gameOptions.multiplayerAttackOption = MultiplayerAttackOption.MULTIPLE;
                    break;

                case "left":
                    gameOptions.multiplayerAttackOption = MultiplayerAttackOption.LEFT;
                    break;

                case "right":
                    gameOptions.multiplayerAttackOption = MultiplayerAttackOption.RIGHT;
                    break;
                }
                break;

            case "--deckFile":
                deckFile = args[i + 1];
                ClientAttemptLoadDeck();
                break;

            case "--players":
                int num = int.Parse(args[i + 1]);
                for (int j = 2; j <= num + 1; j++)
                {
                    players.Add(args[i + j]);
                }
                break;

            case "--clientAutoReconnect":
                clientAutoReconnect = bool.Parse(args[i + 1]);
                break;
            }
            gameOptions.mulligan = XMPPMulliganType.mulliganTypes[m].createMulligan(fm);
        }
        Debug.Log(JsonUtility.ToJson(this));
        if (server)
        {
            if (address == "" || port == -1 || gameType == "")
            {
                Debug.LogError("Invalid CMD Arg. Quit.");
                Application.Quit();
            }
        }
        else
        {
            if (address == "" || port == -1 || username == "")
            {
                Debug.LogError("Invalid CMD Arg. Quit.");
                Application.Quit();
            }
        }
    }