public ActionResult LevelUpFence(int id, string returnUrl) { Inventory item = db.Inventories.Find(id); Character character = db.Characters.Where(x => x.ApplicationUserID == User.Identity.Name).FirstOrDefault(); Building fence = db.Buildings.Find(item.ItemID); ICollection <Inventory> characterInventory = db.Inventories.Where(x => x.CharacterID == character.CharacterID).ToList(); int buildingLevel = fence.BuildingLevel; int newBuildingLevel = buildingLevel; newBuildingLevel++; string buildingName = fence.ItemName; Building newBuilding = db.Buildings.Where(x => x.ItemName == buildingName).Where(x => x.BuildingLevel == newBuildingLevel).FirstOrDefault(); BuildingBuildingMaterial newBuildingBuildingMaterial = db.BuildingBuildingMaterials.Where(x => x.ItemID == newBuilding.ItemID).FirstOrDefault(); foreach (var invMat in characterInventory) { if (invMat.ItemID == newBuildingBuildingMaterial.BuildingMaterialID) { if (invMat.ItemPieces >= newBuildingBuildingMaterial.MaterialPieces) { var newitem = db.Buildings.Where(p => p.ItemID == newBuilding.ItemID).FirstOrDefault(); item.Item = db.Items.Find(newitem.ItemID); item.ItemID = newitem.ItemID; item.ItemMaxDurability = newitem.ItemMaxDurability; item.ItemCurrentDurability = newitem.ItemMaxDurability; invMat.ItemPieces -= newBuildingBuildingMaterial.MaterialPieces; character.CharacterMoney -= fence.BuildingMoneyCost; var result = new CharactersController().ManageEnergy(User.Identity.Name, fence.BuildingEnergyCost, this.Request.FilePath); } } } db.SaveChanges(); return(Redirect(returnUrl)); }
public ActionResult CollectReward(int zABID, int rewardXP, int rewardCoin) { AttackingZombieReward model = new AttackingZombieReward(); model.RexardXP = rewardXP; model.RewardCoin = rewardCoin; Character character = db.Characters.Where(y => y.ApplicationUserID == User.Identity.Name).FirstOrDefault(); ZombieAttackBase zAB = db.ZombieAttackBases.Find(zABID); var addXP = new CharactersController().ManageXPAndLevelUp(User.Identity.Name, rewardXP, this.Request.FilePath); character.CharacterMoney += rewardCoin; db.ZombieAttackBases.Remove(zAB); db.SaveChanges(); base.SetModelProperties(model); return(View(model)); }
public ActionResult RepairBuilding(int id, string returnUrl) { Character character = db.Characters.Where(y => y.ApplicationUserID == User.Identity.Name).FirstOrDefault(); Inventory item = character.Inventory.Where(x => x.ItemID == 55).FirstOrDefault(); //board Inventory building = character.Inventory.Where(x => x.Item.ItemID == id).FirstOrDefault(); List <CharacterMissionTask> characterMissionTasks = db.CharacterMissionTasks.Where(x => x.CharacterID == character.CharacterID).ToList(); if (item == null) { return(RedirectToAction("Details", "Characters", new { id = User.Identity.Name })); } if (character.IsOnAdventure == false) { if (character.CurrentEnergy > 0) { if (item.ItemPieces > 0) { var result = new CharactersController().ManageEnergy(User.Identity.Name, 1, this.Request.Path); item.ItemPieces--; building.ItemCurrentDurability++; db.SaveChanges(); } return(Redirect(returnUrl)); } else { return(Redirect(returnUrl)); } } else { return(Redirect(returnUrl)); } }
public ActionResult AttackZombie(string zAAID, int invID) { Character character = db.Characters.Where(y => y.ApplicationUserID == User.Identity.Name).FirstOrDefault(); List <int> zombik = System.Web.Helpers.Json.Decode <List <int> >(zAAID); List <ZombieAttackAdventurer> zombies = new List <ZombieAttackAdventurer>(); foreach (var z in zombik) { var zombie = db.ZombieAttackAdventurers.Find(z); zombies.Add(zombie); } Inventory item = db.Inventories.Find(invID); Weapon weapon = db.Weapons.Find(item.ItemID); foreach (var z in zombies) { ZombieAttackAdventurer model = db.ZombieAttackAdventurers.Find(z.ZombieAttackAdventurerID); model.Zombie = db.Zombies.Find(model.ZombieID); var inv = db.Inventories.Find(invID); if (inv.ItemCurrentDurability > 0 && inv.ItemMaxDurability != 999) { inv.ItemCurrentDurability--; } else if (inv.ItemCurrentDurability > 0 && inv.ItemMaxDurability == 999) { } else { if (inv.ItemPieces > 0) { inv.ItemCurrentDurability = inv.ItemMaxDurability; inv.ItemPieces--; } } if (model.ZombieLife > weapon.WeaponDamage) { model.ZombieLife = model.ZombieLife - weapon.WeaponDamage; List <ZombieAttackAdventurer> zAA = db.ZombieAttackAdventurers.Where(x => x.CharacterID == character.CharacterID).Where(x => x.State == character.AdventureState).ToList(); zAA.ToArray()[0].isYourTurn = true; db.SaveChanges(); } else { var result = new MissionsController().KillingMission(model.Zombie.ZombieID, User.Identity.Name); var addXP = new CharactersController().ManageXPAndLevelUp(User.Identity.Name, model.Zombie.RewardXP, this.Request.FilePath); character.CharacterMoney += model.Zombie.RewardCoins; db.ZombieAttackAdventurers.Remove(model); db.SaveChanges(); List <ZombieAttackAdventurer> zAA = db.ZombieAttackAdventurers.Where(x => x.CharacterID == character.CharacterID).Where(x => x.State == character.AdventureState).ToList(); if (zAA.Count() != 0) { zAA.ToArray()[0].isYourTurn = true; } db.SaveChanges(); } } character.isYourTurn = false; db.SaveChanges(); return(RedirectToAction("OnAdventure", "Adventures", new { id = User.Identity.Name })); }
public ActionResult StartAdventure(int AdId) { Adventure adventure = db.Adventures.Find(AdId); Character character = db.Characters.Where(y => y.ApplicationUserID == User.Identity.Name).FirstOrDefault(); if (character.IsOnAdventure == false) { if (character.CurrentEnergy >= adventure.AdventureRequerdEnergy) { var result = new CharactersController().ManageEnergy(User.Identity.Name, adventure.AdventureRequerdEnergy, this.Request.FilePath); List <ZombieAttackAdventurer> zombies = new List <ZombieAttackAdventurer>(); Random rand = new Random(); int maxZombieRank = adventure.AdventureID; List <Zombie> selectableZombies = new List <Zombie>(); foreach (var zombie in db.Zombies) { if (zombie.ZombieRank <= maxZombieRank && zombie.ZombieRank >= maxZombieRank - 2 && zombie.ZombiePlaceAppear.ToString() == adventure.AdventureType.ToString()) { selectableZombies.Add(zombie); } } for (int stepCounter = 1; stepCounter <= adventure.AdventureSteps; stepCounter++) { int maxZombiesPerRound = rand.Next(1, adventure.AdventureMaxZombiesPerRound); for (int j = 0; j < maxZombiesPerRound; j++) { int zombieIndex = rand.Next(0, selectableZombies.Count() - 1); Zombie selectedZombie = selectableZombies.ElementAt <Zombie>(zombieIndex); ZombieAttackAdventurer attackingZombie = new ZombieAttackAdventurer { CharacterID = character.CharacterID, State = stepCounter, ZombieID = selectedZombie.ZombieID, ZombieLife = selectedZombie.ZombieLife, isYourTurn = false }; db.ZombieAttackAdventurers.Add(attackingZombie); } } character.FinishAdventure = DateTime.MaxValue; character.AdventureState = 1; character.AdventureID = AdId; character.isYourTurn = true; character.isWaitingOnAdventure = false; character.IsOnAdventure = true; db.SaveChanges(); return(RedirectToAction("OnAdventure", "Adventures", new { id = User.Identity.Name })); } else { return(RedirectToAction("Details", "Characters", new { id = User.Identity.Name })); } } else { return(RedirectToAction("Details", "Characters", new { id = User.Identity.Name })); } }
public ActionResult GetReward(int id) { Character character = db.Characters.Where(y => y.ApplicationUserID == User.Identity.Name).FirstOrDefault(); character.Inventory = db.Inventories.Where(x => x.CharacterID == character.CharacterID).ToList(); List <Item> items = db.Items.ToList(); CharacterMission characterMission = db.CharacterMissions.Find(id); List <CharacterMissionTask> characterMissionTasks = db.CharacterMissionTasks.Where(x => x.CharacterMissionID == characterMission.CharacterMissionID).ToList(); Mission mission = db.Missions.Find(characterMission.MissionID); List <MissionTask> missionTasks = db.MissionTasks.Where(x => x.MissionID == mission.MissionID).ToList(); foreach (var cmt in characterMissionTasks) { foreach (var mt in missionTasks) { if (mt.MissionTaskID == cmt.MissionTaskID) { foreach (var inv in character.Inventory) { if (mt.ItemID == inv.ItemID) { if (cmt.TaskProgress >= mt.ItemPieces) { inv.ItemPieces -= mt.ItemPieces; db.CharacterMissionTasks.Remove(cmt); character.CharacterMoney += mission.RewardICoins; var resultXP = new CharactersController().ManageXPAndLevelUp(User.Identity.Name, mission.RewardXP, this.Request.FilePath); } } } if (mt.ItemID == 0) { if (cmt.TaskProgress >= mt.ItemPieces) { db.CharacterMissionTasks.Remove(cmt); character.CharacterMoney += mission.RewardICoins; var resultXP = new CharactersController().ManageXPAndLevelUp(User.Identity.Name, mission.RewardXP, this.Request.FilePath); } } } } } db.SaveChanges(); characterMissionTasks = db.CharacterMissionTasks.Where(x => x.CharacterMissionID == characterMission.CharacterMissionID).ToList(); if (characterMissionTasks.Count() == 0) { db.CharacterMissions.Remove(characterMission); } db.SaveChanges(); if (mission.IsNextMission) { var result = new MissionsController().StartMission(mission.MissionID + 1, User.Identity.Name); } return(RedirectToAction("Index", "Missions", new { id = User.Identity.Name })); }
public ActionResult BaseDefenseFromZombie(int ZabID, int AttackPower, int invID) { BaseDefenseFromZombiesVM model = new BaseDefenseFromZombiesVM(); model.ZombieAttackBase = db.ZombieAttackBases.Find(ZabID); model.Zombie = db.Zombies.Find(model.ZombieAttackBase.ZombieID); model.Character = db.Characters.Find(model.ZombieAttackBase.CharacterID); ICollection <Inventory> inventory = model.Character.Inventory; model.Weapon = db.Weapons.Find(59); if (invID != 0) { var inv = db.Inventories.Find(invID); if (inv.ItemCurrentDurability > 1 && inv.ItemMaxDurability != 999) { inv.ItemCurrentDurability--; } else if (inv.ItemCurrentDurability > 1 && inv.ItemMaxDurability == 999) { } else { if (inv.ItemPieces > 0) { inv.ItemCurrentDurability = inv.ItemMaxDurability; inv.ItemPieces--; } } } if (AttackPower > 0) { model.ZombieAttackBase.ZombieLife -= AttackPower; var result = new CharactersController().ManageEnergy(User.Identity.Name, 1, this.Request.Path); } model.BuyableWeapons = new List <BuyableWeapon>(); model.CraftableWeapons = new List <CraftableWeapon>(); foreach (var item in model.Character.Inventory) { foreach (var weap in db.BuyableWeapons) { if (item.ItemID == weap.ItemID) { model.BuyableWeapons.Add(weap); } } } foreach (var item in model.Character.Inventory) { foreach (var weap in db.CraftableWeapons) { if (item.ItemID == weap.ItemID) { model.CraftableWeapons.Add(weap); } } } if (model.ZombieAttackBase.ZombieLife <= 0) { var result = new MissionsController().KillingMission(model.Zombie.ZombieID, User.Identity.Name); db.SaveChanges(); base.SetModelProperties(model); return(RedirectToAction("CollectReward", "Zombies", new { zABID = model.ZombieAttackBase.ZombieAttackBaseID, rewardXP = model.Zombie.RewardXP, rewardCoin = model.Zombie.RewardCoins })); } db.SaveChanges(); base.SetModelProperties(model); return(View(model)); }