public void loadDungeon(int x, int y, string dungeonName, string[] party, bool combat = false) { //Verify that the dungeon selection is legitimate if (combat || MapDataClasses.MapDataManager.validateDungeonSelection(currentMap.name, x, y, currentMap, dungeonName)) { this.combatCountdown = rng.getNumber(MapDataClasses.MapDataManager.getMinCombatCount(dungeonName), MapDataClasses.MapDataManager.getMaxCombatCount(dungeonName)); if (MapDataClasses.MapDataManager.getHubMap(dungeonName) == dungeonName) { //Need to disband the party that is currently being used currentMap = MapDataClasses.MapDataManager.createMap(dungeonName); this.player.getActiveParty().location = currentMap; ObjectiveDirector.markCompletedObjectives(this.player); player.rootX = currentMap.startX; player.rootY = currentMap.startY; setMap(dungeonName); var currentParty = new PlayerModels.Models.PartyModel(); foreach (PlayerModels.Models.PartyModel pm in player.parties) { if (pm.uniq == player.activeParty) { currentParty = pm; } } if (player.parties.Contains(currentParty)) { player.parties.Remove(currentParty); } player.activeParty = 0; db.SaveChanges(); } else { currentMap = MapDataClasses.MapDataManager.createMap(dungeonName); //Create party and set to default PlayerModels.Models.PartyModel pm = new PlayerModels.Models.PartyModel(); pm.x = currentMap.startX; pm.y = currentMap.startY; pm.location = currentMap; pm.maxSize = party.Length; pm.characters = new List <PlayerModels.Models.PartyCharacterModel>(); foreach (string s in party) { foreach (PlayerModels.Models.CharacterModel cm in player.characters) { if (cm.name == s) { pm.characters.Add(new PlayerModels.Models.PartyCharacterModel() { characterUniq = cm.uniq, hp = cm.stats.maxHP, mp = cm.stats.maxMP, usedAbilities = new List <string>() }); } } } player.parties.Add(pm); player.copyTo(user.player); db.SaveChanges(); player.activeParty = pm.uniq; player.copyTo(user.player); this.player.getActiveParty().location = currentMap; ObjectiveDirector.markCompletedObjectives(this.player); player.rootX = currentMap.startX; player.rootY = currentMap.startY; setMap(dungeonName); db.SaveChanges(); } } }
public void loadDungeon(int x, int y, string dungeonName, string[] party, bool combat = false) { //Verify that the dungeon selection is legitimate if (combat || MapDataClasses.MapDataManager.validateDungeonSelection(currentMap.name, x, y, currentMap, dungeonName)) { this.combatCountdown = rng.getNumber(MapDataClasses.MapDataManager.getMinCombatCount(dungeonName), MapDataClasses.MapDataManager.getMaxCombatCount(dungeonName)); if (MapDataClasses.MapDataManager.getHubMap(dungeonName) == dungeonName) { //Need to disband the party that is currently being used currentMap = MapDataClasses.MapDataManager.createMap(dungeonName); this.player.getActiveParty().location = currentMap; ObjectiveDirector.markCompletedObjectives(this.player); player.rootX = currentMap.startX; player.rootY = currentMap.startY; setMap(dungeonName); var currentParty = new PlayerModels.Models.PartyModel(); foreach (PlayerModels.Models.PartyModel pm in player.parties) { if (pm.uniq == player.activeParty) { currentParty = pm; } } if (player.parties.Contains(currentParty)) { player.parties.Remove(currentParty); } player.activeParty = 0; db.SaveChanges(); } else { currentMap = MapDataClasses.MapDataManager.createMap(dungeonName); //Create party and set to default PlayerModels.Models.PartyModel pm = new PlayerModels.Models.PartyModel(); pm.x = currentMap.startX; pm.y = currentMap.startY; pm.location = currentMap; pm.maxSize = party.Length; pm.characters = new List<PlayerModels.Models.PartyCharacterModel>(); foreach (string s in party) { foreach (PlayerModels.Models.CharacterModel cm in player.characters) { if (cm.name == s) { pm.characters.Add(new PlayerModels.Models.PartyCharacterModel() { characterUniq = cm.uniq, hp = cm.stats.maxHP, mp = cm.stats.maxMP, usedAbilities = new List<string>() }); } } } player.parties.Add(pm); player.copyTo(user.player); db.SaveChanges(); player.activeParty = pm.uniq; player.copyTo(user.player); this.player.getActiveParty().location = currentMap; ObjectiveDirector.markCompletedObjectives(this.player); player.rootX = currentMap.startX; player.rootY = currentMap.startY; setMap(dungeonName); db.SaveChanges(); } } }