예제 #1
0
        public void EditCharacter(Guid id, string name, string faction, string race, string characterclass, short level, bool Active)
        {
            CharacterFaction cf;
            CharacterRace cr;
            CharacterClass cc;

            List<Character> characters = GetCharacter();

            if (!Enum.TryParse<CharacterFaction>(faction, out cf))
            {
                throw new Exception("Faction invalid");
            }

            if (!Enum.TryParse<CharacterRace>(race, out cr))
            {
                throw new Exception("Race invalid");
            }

            if (!Enum.TryParse<CharacterClass>(characterclass, out cc))
            {
                throw new Exception("Class invalid");
            }

            Character newCharacter = new Character(name, cf, cr, cc);
            newCharacter.Id = id;
            newCharacter.Level = level;
            newCharacter.Active = Active;

            PlayerData p = new PlayerData(FileName);
            p.EditCharacter(UserName, newCharacter);
        }
예제 #2
0
        public void AddCharacter(string name, string faction, string race, string characterclass)
        {
            CharacterFaction cf;
            CharacterRace cr;
            CharacterClass cc;

            List<Character> characters = GetCharacter();
            
            if(!Enum.TryParse<CharacterFaction>(faction, out cf))
            {
                throw new Exception("Faction invalid");
            }

            if(!Enum.TryParse<CharacterRace>(race, out cr))
            {
                throw new Exception("Race invalid");
            }

            if(!Enum.TryParse<CharacterClass>(characterclass, out cc))
            {
                throw new Exception("Class invalid");
            }

            if(characters.Count(x => x.Faction != cf && x.Active == true) > 0)
            {
                throw new Exception("All Characters must be part of the " + characters.First().Faction.ToString());
            }

            Character newCharacter = new Character(name, cf, cr, cc);
            
            PlayerData p = new PlayerData(FileName);
            p.AddCharacter(UserName, newCharacter);
        }
예제 #3
0
파일: Player.cs 프로젝트: whasian/Blizzard
        public void AddCharacter(Character character)
        {
            if(character.Class == CharacterClass.DeathKnight)
            {
                if(!this.Characters.Exists(x => x.Level >= 55 && x.Active))
                {
                    throw new Exception("Cannot create a Death Knight untill one of your Characters is at least level 55");
                }
            }

            if(this.Characters.Count > 0 && this.Characters.Exists(x => x.Faction != character.Faction && x.Active))
            {
                throw new Exception("Stay loyal to your faction and only create characters within the same faction");
            }

            this.Characters.Add(character);
        }
예제 #4
0
파일: Player.cs 프로젝트: whasian/Blizzard
        public void EditCharacter(Character character)
        {
            Character c = this.Characters.FirstOrDefault(x => x.Id == character.Id);

            if (c == null)
            {
                throw new Exception("This Character does not exist");
            }

            if (this.Characters.Count > 0 && this.Characters.Exists(x => character.Active && x.Faction != character.Faction && x.Active))
            {
                throw new Exception("Stay loyal to your faction and only create characters within the same faction");
            }

            c.Name = character.Name;
            c.Faction = character.Faction;
            c.Race = character.Race;
            c.Class = character.Class;
            c.Level = character.Level;
            c.Active = character.Active;
        }
예제 #5
0
 public void setCharacter(Core.Character character)
 {
     m_character = character;
 }
예제 #6
0
        public void CreateValidCharacterDeleteUndelete()
        {
            Character c = new Character("TestCharacter", CharacterFaction.Alliance, CharacterRace.Human, CharacterClass.Warrior);

            Assert.IsTrue(c.Active);

            c.Delete();

            Assert.IsFalse(c.Active);

            c.Undelete();

            Assert.IsTrue(c.Active);
        }
예제 #7
0
        public void EditCharacter(string userName, Character character)
        {
            lock (fileLock)
            {
                List<Player> players = GetAllPlayers();

                Player p = players.FirstOrDefault(x => x.UserName.Equals(userName, StringComparison.OrdinalIgnoreCase));

                if (p == null)
                {
                    throw new Exception("This User doesn't exists");
                }

                p.EditCharacter(character);

                Save(players);
            }
        }
예제 #8
0
        public void AddCharacter(string userName, Character character)
        {
            lock (fileLock)
            {
                List<Player> players = GetAllPlayers();

                if (!players.Exists(x => x.UserName.Equals(userName, StringComparison.OrdinalIgnoreCase)))
                {
                    throw new Exception("This User doesn't exists");
                }

                players.First(x => x.UserName.Equals(userName, StringComparison.OrdinalIgnoreCase)).AddCharacter(character);

                Save(players);
            }
        }