public void RemoveFromSquare(Vector2 square, TemporaryBuilding building)
 {
     if (squares.ContainsKey(square))
     {
         squares[square].Remove(building);
     }
 }
Exemple #2
0
 public JobBuild(TemporaryBuilding building, int playerId)
 {
     this.building    = building;
     buildingPos      = building.transform.position;
     buildingCollider = building.GetComponent <Collider>();
     this.playerId    = playerId;
 }
 public void AddToSquare(Vector2 square, TemporaryBuilding building)
 {
     if (squares.ContainsKey(square))
     {
         squares[square].Add(building);
     }
 }
Exemple #4
0
    private void CmdPlaceBuilding(Vector3 position, NetworkInstanceId tempBuildingId)
    {
        TemporaryBuilding temporaryBuilding = NetworkServer.objects[tempBuildingId].GetComponent <TemporaryBuilding>();

        temporaryBuilding.transform.position = position;
        temporaryBuilding.placed             = true;
        GameState.Instance.RpcPlaceBuilding(position, tempBuildingId);
    }
Exemple #5
0
 /// <summary>
 /// Sets the new building to be placed. If there already is one, resets the old one's purchase.
 /// </summary>
 /// <param name="building">the new building to build</param>
 public void SetTempBuilding(TemporaryBuilding building)
 {
     if (BuildingToBuild != null)
     {
         ResetBuildingToBuild();
     }
     BuildingToBuild = building;
 }
Exemple #6
0
 /// <summary>
 /// Place the building on its current position and tells the selected object to build it.
 /// </summary>
 public void PlaceBuilding()
 {
     player.PlaceBuilding(BuildingToBuild);
     if (SelectedObject != null)
     {
         SelectedObject.SetGoal(BuildingToBuild);
     }
     BuildingToBuild = null;
 }
 public void Remove(TemporaryBuilding building)
 {
     if (building.hasAuthority && building.playerId == playerId)
     {
         FriendlyTemporaryBuildings.Remove(building);
     }
     else
     {
         EnemyTemporaryBuildings.Remove(building);
     }
 }
Exemple #8
0
 /// <summary>
 /// Places building onto its current position and makes it visible for all clients.
 /// </summary>
 /// <param name="temporaryBuilding"></param>
 public void PlaceBuilding(TemporaryBuilding temporaryBuilding) => CmdPlaceBuilding(temporaryBuilding.transform.position, temporaryBuilding.netId);
Exemple #9
0
 /// <summary>
 /// Get the nearest temporary building to the given position in the given range, which is not a given building.
 /// </summary>
 /// <param name="build">building to be excluded from the list</param>
 /// <param name="position">center of the search</param>
 /// <param name="maxDistance">maximum radius</param>
 /// <returns></returns>
 public TemporaryBuilding GetNearestTempBuilding(TemporaryBuilding build, Vector3 position, int maxDistance) =>
 temporaryBuildings.Where(b => b != build && Vector3.Distance(position, b.transform.position) < maxDistance).
 OrderBy(b => Vector3.Distance(position, b.transform.position)).FirstOrDefault();
Exemple #10
0
 /// <summary>
 /// Resets the building's purchase by returning paid resources and destroying the object.
 /// </summary>
 public void ResetBuildingToBuild()
 {
     playerPurchases.Get(BuildingToBuild.buildingType).Reset();
     player.DestroySelectedObject(BuildingToBuild);
     BuildingToBuild = null;
 }
Exemple #11
0
 public void RemoveFromSquare(Vector2 squareId, TemporaryBuilding selectable) => ForEachSquare(s => s.RemoveFromSquare(squareId, selectable));