public ActionResult NewUnit(RnDUnitForm form) { Debug.WriteLine($"POST: Civilization RnD Unit Controller: New"); DB_users user = Auth.User; var game = GameState.Game; var dbUnit = game.GameStatistics.UnitsRaw .Where(x => x.id == form.SelectedUnitID.Value) .FirstOrDefault(); var dbBuildAtStruct = game.GetCivilization(form.CivilizationID.Value).Assets.CompletedInfrastructure .Where(x => x.CivilizationInfo.id == form.SelectedBuildAtInfrastructureID) .FirstOrDefault(); if (dbUnit == null || dbBuildAtStruct == null) { return(RedirectToRoute("ViewCivilization", new { civilizationID = form.CivilizationID.Value })); } // Check to ensure there are slots remaining var civilization = game.GetCivilization(form.CivilizationID.Value); if (UnitTypes.IsSpaceship(dbUnit.unit_type)) { if (!civilization.Assets.HasShipConstructionSlots) { return(RedirectToRoute("ViewCivilization", new { civilizationID = form.CivilizationID.Value })); } } else { if (!civilization.Assets.HasUnitTrainingSlots) { return(RedirectToRoute("ViewCivilization", new { civilizationID = form.CivilizationID.Value })); } } // Save the Unit to the DB DB_civilization_rnd_units unit = new DB_civilization_rnd_units(); unit.game_id = game.ID; unit.civilization_id = form.CivilizationID.Value; unit.unit_id = dbUnit.id; unit.civ_struct_id = dbBuildAtStruct.CivilizationInfo.id; unit.species_id = form.SelectedSpeciesID == -1 ? null : form.SelectedSpeciesID; unit.name = form.Name; unit.build_percentage = form.BuildPercentage; Database.Session.Save(unit); Database.Session.Flush(); return(RedirectToRoute("ViewCivilization", new { civilizationID = form.CivilizationID.Value })); }
public ActionResult EditUnit(RnDUnitForm form) { Debug.WriteLine($"POST: Civilization RND Unit Controller: Edit"); DB_users user = Auth.User; var game = GameState.Game; DB_civilization_rnd_units unit = FindRNDCivilizationUnit(form.ID).Info; if (unit.game_id != game.ID) { return(RedirectToRoute("game", new { gameID = game.Info.id })); } var dbUnit = game.GameStatistics.UnitsRaw .Where(x => x.id == form.SelectedUnitID.Value) .FirstOrDefault(); var dbBuildAtStruct = game.GetCivilization(form.CivilizationID.Value).Assets.CompletedInfrastructure .Where(x => x.CivilizationInfo.id == form.SelectedBuildAtInfrastructureID) .FirstOrDefault(); if (dbUnit == null || dbBuildAtStruct == null) { return(RedirectToRoute("ViewCivilization", new { civilizationID = form.CivilizationID.Value })); } unit.name = form.Name; if (RequireGMAdminAttribute.IsGMOrAdmin()) { unit.civilization_id = form.CivilizationID.Value; unit.unit_id = dbUnit.id; unit.civ_struct_id = dbBuildAtStruct.CivilizationInfo.id; unit.species_id = form.SelectedSpeciesID == -1 ? null : form.SelectedSpeciesID; unit.build_percentage = form.BuildPercentage; } Database.Session.Update(unit); Database.Session.Flush(); return(RedirectToRoute("ViewCivilization", new { civilizationID = form.CivilizationID.Value })); }
public RnDUnit(DB_civilization_rnd_units info, Civilization owner) { Info = info; Owner = owner; }