public void ProcessMessage(GameReady gameReadyMessage) { battleViewer.DisableCancelFindButton(); var kernelPlayer1 = new Player(0); var kernelPlayer2 = new Player(1); LocalPlayer = new LocalPlayer(battleViewer, kernelPlayer1, this, gameManager.UserName); OnlinePlayer = new OnlinePlayer(kernelPlayer2, this, gameReadyMessage.Opponent.Login); ((OnlinePlayer)OnlinePlayer).OnEnable(); IEnumerable <GameObject> opponentTeam = ClientFruitonFactory.CreateClientFruitonTeam(gameReadyMessage.OpponentTeam.FruitonIDs, battleViewer.Board); IEnumerable <GameObject> currentTeam = ClientFruitonFactory.CreateClientFruitonTeam(gameManager.CurrentFruitonTeam.FruitonIDs, battleViewer.Board); // The opponent team is obtained from the server with the correctly set positions. battleViewer.InitializeTeam(opponentTeam, kernelPlayer2, kernelPlayer2.id == 0, gameReadyMessage.OpponentTeam.Positions.ToArray()); GameSettings kernelSettings = GameSettingsFactory.CreateGameSettings(gameReadyMessage.MapId, battleViewer.GameMode); var fruitons = new haxe.root.Array <object>(); foreach (var fruiton in currentTeam) { fruitons.push(fruiton.GetComponent <ClientFruiton>().KernelFruiton); } foreach (var fruiton in opponentTeam) { fruitons.push(fruiton.GetComponent <ClientFruiton>().KernelFruiton); } IsLocalPlayerFirst = gameReadyMessage.StartsFirst; Player player1; Player player2; // If the local player begins, the game will be started with kernelPlayer1 as first argument. if (IsLocalPlayerFirst) { battleViewer.InitializeTeam(currentTeam, kernelPlayer1, kernelPlayer1.id == 0, GameManager.Instance.CurrentFruitonTeam.Positions.ToArray()); player1 = kernelPlayer1; player2 = kernelPlayer2; } // If the online opponent begins, we need to flip the positions to the opposite side because we do not receive // the new positions from the server. The first argument has to be the online opponent = kernelPlayer2. else { var width = GameState.WIDTH; var height = GameState.HEIGHT; var flippedPositions = BattleHelper.FlipCoordinates(GameManager.Instance.CurrentFruitonTeam.Positions, width, height); battleViewer.InitializeTeam(currentTeam, kernelPlayer1, kernelPlayer1.id == 0, flippedPositions.ToArray()); player1 = kernelPlayer2; player2 = kernelPlayer1; battleViewer.DisableEndTurnButton(); } Kernel = new Kernel(player1, player2, fruitons, kernelSettings, false, false); SendReadyMessage(); battleViewer.InitializePlayersInfo(); BattleReady(); }
public static List <T> ToList <T>(this haxe.root.Array <T> array) { var list = new List <T>(array.length); for (int i = 0; i < array.length; i++) { list.Add(array[i]); } return(list); }
public static List <TOut> CastToList <TOut, TIn>(this haxe.root.Array <TIn> array) where TIn : class where TOut : TIn { var list = new List <TOut>(array.length); for (int i = 0; i < array.length; i++) { list.Add((TOut)array[i]); } return(list); }
public static List <List <TOut> > CastToList2D <TOut>(this haxe.root.Array <object> array) where TOut : class { var list = new List <List <TOut> >(array.length); for (int i = 0; i < array.length; i++) { list.Add(new List <TOut>()); var inner = (haxe.root.Array <object>)array[i]; for (int j = 0; j < inner.length; j++) { list[i].Add((TOut)inner[j]); } } return(list); }
public static List <TOut> CastToList <TOut>(this haxe.root.Array <object> array) { return(array.CastToList <TOut, object>()); }