public ActionResult New(int gameID) { Debug.WriteLine(string.Format("GET: Unit Controller: New")); var game = GameState.Game; var categories = new List <Checkbox>(); categories.Add(new Checkbox(-1, "None", true)); foreach (var category in game.GameStatistics.UnitCategoriesRaw) { categories.Add(new Checkbox(category.id, category.name, false)); } return(View(new UnitForm { Categories = categories, UnitTypes = UnitTypes.GetUnitTypesCheckboxes() })); }
public ActionResult Edit(UnitForm form) { Debug.WriteLine(string.Format("POST: Ship Controller: Edit - unitID={0}", form.ID)); var game = GameState.Game; var unit = game.GameStatistics.UnitsRaw.Find(x => x.id == form.ID); if (unit.game_id == null || unit.game_id != game.Info.id) { return(RedirectToRoute("game", new { gameID = game.Info.id })); } unit.unit_category_id = (form.SelectedCategoryID == -1) ? null : form.SelectedCategoryID; unit.name = form.Name; unit.unit_type = UnitTypes.GetUnitTypesCheckboxes().Where(x => x.ID == form.SelectedUnitTypeID).First().Name; unit.description = form.Description; unit.rp_cost = form.RPCost; unit.number_to_build = form.NumberToBuild; unit.can_embark = form.CanEmbark; unit.can_attack_ground_units = form.CanAttackGroundUnits; unit.can_attack_boats = form.CanAttackBoats; unit.can_attack_planes = form.CanAttackPlanes; unit.can_attack_spaceships = form.CanAttackSpaceships; unit.embarking_slots = form.EmbarkingSlots; unit.negate_damage = form.NegateDamage; unit.base_health = form.BaseHealth; unit.base_regeneration = form.BaseRegeneration; unit.base_attack = form.BaseAttack; unit.base_special_attack = form.BaseSpecialAttack; unit.base_agility = form.BaseAgility; unit.gmnotes = form.GMNotes; Database.Session.Update(unit); Database.Session.Flush(); return(RedirectToRoute("Statistics")); }
public ActionResult Edit(int gameID, int?unitID) { Debug.WriteLine(string.Format("GET: Ship Controller: Edit - unitID={0}", unitID)); var game = GameState.Game; var unit = game.GameStatistics.UnitsRaw.Find(x => x.id == unitID); var categories = new List <Checkbox>(); categories.Add(new Checkbox(-1, "None", false)); foreach (var category in game.GameStatistics.UnitCategoriesRaw) { categories.Add(new Checkbox(category.id, category.name, category.id == unit.unit_category_id)); } var selected = categories.Where(x => x.IsChecked).ToList(); if (selected.Count == 0) { categories[0].IsChecked = true; } var unitTypes = UnitTypes.GetUnitTypesCheckboxes(); foreach (var checkbox in unitTypes) { if (checkbox.Name == unit.unit_type) { checkbox.IsChecked = true; } } return(View(new UnitForm { ID = unit.id, Name = unit.name, Description = unit.description, RPCost = unit.rp_cost, NumberToBuild = unit.number_to_build, CanEmbark = unit.can_embark, CanAttackGroundUnits = unit.can_attack_ground_units, CanAttackBoats = unit.can_attack_boats, CanAttackPlanes = unit.can_attack_planes, CanAttackSpaceships = unit.can_attack_spaceships, EmbarkingSlots = unit.embarking_slots, NegateDamage = unit.negate_damage, BaseHealth = unit.base_health, BaseRegeneration = unit.base_regeneration, BaseAttack = unit.base_attack, BaseSpecialAttack = unit.base_special_attack, BaseAgility = unit.base_agility, GMNotes = unit.gmnotes, Categories = categories, UnitTypes = unitTypes, })); }