示例#1
0
        public void ReceiveNewPlayerUnit(int unitIndex, int playerIndex, float x, float y, double direction)
        {
            Game.Cmd.Console.WriteLine("Recieving new player unit for " + Players[playerIndex].Name + " at (" + x + ", " + y + ")");
            Player player = Players[playerIndex];
            Unit u = new Unit(player, Role.List[player.Role].Health, Role.List[player.Role].Energy);
            u.Owner = player;
            u.Team = player.Team;
            u.JumpTo(new Vector2(x, y));
            Role.SetUpUnit(ref u, player.Role);
            player.PlayerUnit = u;

            VGame.Shape shape = Role.MakeShape(player.Role);
            u.Actor = new Actor(u, shape);
            u.Actor.Unit = u;

            Actors.Add(u.Actor);
            Units.Add(unitIndex, u);
            player.ControlledUnits.Add(u);
            if (player.ControlledUnits.Count == 0) {
                player.PlayerUnit = u;
                player.CurrentUnit = u;
            }
        }
示例#2
0
        public Unit MakePlayerUnit(Player player, Vector2 position)
        {
            Console.WriteLine("[S] Making new player unit for " + player.Name + " at (" + position.X + ", " + position.Y + ")");
            Unit u = new Unit(player, Role.List[player.Role].Health, Role.List[player.Role].Energy);
            u.Owner = player;
            u.Team = player.Team;
            u.JumpTo(position);
            Role.SetUpUnit(ref u, player.Role);
            player.ControlledUnits.Add(u);
            player.PlayerUnit = u;

            Units.Add(++unitIndex, u);
            foreach (RemoteClient r in AllClients())
                r.SendNewPlayerUnit(unitIndex, GetPlayerID(player));
            return u;
        }