示例#1
0
        private void OnSetClass(object sender, object args)
        {
            object[]       param     = args as object[];
            int            num       = MatchController.NumberOfPlayers;
            UnitParameters unitParam = (UnitParameters)param[1];

            Random.InitState(unitParam.RandomSeed);
            foreach (PlayerController player in MatchController.Players)
            {
                if (player.netId == (NetworkInstanceId)param[0])
                {
                    player.AssignUnit(new BasicUnit(GameModel.Map.GetRandomUnoccupiedCell(), MapGenerator.GetRandomDirection(), unitParam.Class));
                }
                if (player.ControlledUnit != null)
                {
                    --num;
                }
            }
            if (num == 0)
            {
                Starting = false;

                GameView.Clear();
                ShowMap();
                GameView.Init();
                CheckState();
            }
        }
示例#2
0
 private void RpcSetClass(NetworkInstanceId id, UnitParameters param)
 {
     object[] args = new object[2];
     args[0] = id;
     args[1] = param;
     this.PostNotification(SetClass, args);
 }
示例#3
0
 public MapParameters(List <Cell> cells)
 {
     Positions = new Coordinates[cells.Count];
     Tiles     = new BasicTile[cells.Count];
     Objects   = new ObjectParameters[cells.Count];
     Units     = new UnitParameters[cells.Count];
     for (int i = 0; i < cells.Count; ++i)
     {
         Positions[i] = cells[i].Position;
         Tiles[i]     = cells[i].Tile;
         if (cells[i].Object != null)
         {
             Objects[i] = new ObjectParameters(cells[i].Object.Type);
         }
         else
         {
             Objects[i] = new ObjectParameters();
         }
         if (cells[i].Unit != null)
         {
             Units[i] = new UnitParameters(cells[i].Unit.Class.Tag, cells[i].Unit.Facing);
         }
         else
         {
             Units[i] = new UnitParameters();
         }
     }
 }
示例#4
0
 public Map(MapParameters mapParam)
 {
     Cells = new Dictionary <Coordinates, Cell>();
     for (int i = 0; i < mapParam.Count; ++i)
     {
         Cell             cell         = new Cell(mapParam.Positions[i], mapParam.Tiles[i]);
         ObjectParameters objectParams = mapParam.Objects[i];
         if (objectParams.Type != ObjectType.None)
         {
             new BasicObject(cell, objectParams.Type);
         }
         UnitParameters unitParams = mapParam.Units[i];
         if (unitParams.Class != ClassTag.None)
         {
             new BasicUnit(cell, unitParams.Facing, unitParams.Class);
         }
         Cells[mapParam.Positions[i]] = cell;
     }
 }
示例#5
0
 public void CmdSetClass(NetworkInstanceId id, UnitParameters param)
 {
     RpcSetClass(id, param);
 }