コード例 #1
0
        public ActionResult DeleteConfirmed(long id)
        {
            FunctionBuilding functionBuilding = db.FunctionBuildings.Find(id);

            db.FunctionBuildings.Remove(functionBuilding);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #2
0
 public ActionResult Edit([Bind(Include = "Id,Name")] FunctionBuilding functionBuilding)
 {
     if (ModelState.IsValid)
     {
         db.Entry(functionBuilding).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(functionBuilding));
 }
コード例 #3
0
    public bool StartBuilding()
    {
        //Can the building get placed.
        if (currentCity.CanBuild(placementBuilding.GetCost()))
        {
            if (placementBuilding is Wonder)
            {
                if (currentCity.GetHappyHouseAmount() < Glob.WonderHappyHouseReq)
                {
                    _soundHandler.PlaySound(SoundHandler.Sounds.ERROR);
                    UIHandler.ShowNotification("The inhabitants are preventing your workers from building this. They don't want you 'wasting' money on this, instead of making them happy. Try building some parks next to houses first.");
                    return(false);
                }
                else if (currentCity.GetManager() is PlayerCityManager)
                {
                    GameInitializer.AddAchieverScore(30);
                }
            }
            _soundHandler.PlaySound(SoundHandler.Sounds.CONFIRM);

            //Place the building.
            //Check for building type if there is another building tile near it. If so, upgrade the building to the amount of buildings.
            //Give the other building an index of +1.
            placementBuilding = UpgradeBuilding(placementBuilding);

            if (placementBuilding is Factory)
            {
                placementBuilding = Instantiate(placementBuilding);
            }
            placementBuilding.SetBuildingPhase(Building.BuildingPhase.DONE);
            placementBuilding.SetBuildingTile(currentCity.GetSelectedTile());
            currentCity.GetSelectedTile().SetBuilding(placementBuilding);
            currentCity.BudgetChange(-placementBuilding.GetCost());
            if (placementBuilding is MissileSilo || placementBuilding is Wonder || placementBuilding is Bridge)
            {
                FunctionBuilding building = placementBuilding as FunctionBuilding;
                building.DoAction();
            }
            if (placementBuilding is House)
            {
                if (placementBuilding.GetBuildingTile().GetIsHappy() && placementBuilding.GetBuildingTile().GetCity().GetManager() is PlayerCityManager)
                {
                    GameInitializer.AddSocializerScore(2);
                }
            }
            DestroyPlacementBuilding();
            return(true);
        }
        else
        {
            _soundHandler.PlaySound(SoundHandler.Sounds.ERROR);
            UIHandler.ShowNotification("You don't have enough money to build that.");
            return(false);
        }
    }
コード例 #4
0
        public ActionResult Create([Bind(Include = "Id,Name")] FunctionBuilding functionBuilding)
        {
            if (ModelState.IsValid)
            {
                db.FunctionBuildings.Add(functionBuilding);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(functionBuilding));
        }
コード例 #5
0
        // GET: FunctionBuildings/Delete/5
        public ActionResult Delete(long?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            FunctionBuilding functionBuilding = db.FunctionBuildings.Find(id);

            if (functionBuilding == null)
            {
                return(HttpNotFound());
            }
            return(View(functionBuilding));
        }
コード例 #6
0
 public void SetBuildingInfoText(Building pBuilding)
 {
     if (pBuilding is ProductionBuilding)
     {
         ProductionBuilding prodBuilding = pBuilding as ProductionBuilding;
         int[] values = prodBuilding.GetMoneyHappinessRange();
         _buildInfoText.text = "<b>" + prodBuilding.GetType() + "</b>\nBuilding cost: <b>" + prodBuilding.GetCost() + "</b>\nProvides <b>" + values[0] + "</b> income each turn\nAnd has a range of <b>" + values[2] + "</b>";
     }
     if (pBuilding is CollectionBuilding)
     {
         CollectionBuilding colBuilding = pBuilding as CollectionBuilding;
         _buildInfoText.text = "<b>" + colBuilding.GetType() + "</b>\nBuilding cost: <b>" + colBuilding.GetCost() + "</b>\nThis building collects resources from nearby <b>factories</b>.";
     }
     if (pBuilding is FunctionBuilding)
     {
         FunctionBuilding funBuilding = pBuilding as FunctionBuilding;
         _buildInfoText.text = "<b>" + funBuilding.GetType() + "</b>\nBuilding cost: <b>" + funBuilding.GetCost() + "</b>\n" + funBuilding.GetDescription();
     }
 }
コード例 #7
0
    public void SetExamineMode(Building pBuilding)
    {
        ToggleExaminePanel(true);
        string text = "This is a <b>" + pBuilding.GetType() + "</b>\n";

        if (pBuilding is ProductionBuilding)
        {
            ProductionBuilding prodBuilding = pBuilding as ProductionBuilding;
            text += "It produces <b>" + prodBuilding.GetMoneyHappinessRange()[0] + "</b> Income\nFor every house in a range of ";
            text += "<b>" + prodBuilding.GetMoneyHappinessRange()[2] + "</b> tile";
        }
        else if (pBuilding is CollectionBuilding)
        {
            CollectionBuilding colBuilding = pBuilding as CollectionBuilding;
            text += "It collects resources from production buildings in range.\n";
        }
        else if (pBuilding is FunctionBuilding)
        {
            FunctionBuilding funBuilding = pBuilding as FunctionBuilding;
            text += funBuilding.GetDescription();
        }
        _examineText.text = text;
    }