예제 #1
0
 public static InventoryItem ExistItem(InventoryItem item, Character character, StatsManager.Position position = StatsManager.Position.None, int quantity = 1)
 {
     return DatabaseProvider.InventoryItems.Find(
         x =>
             x.ItemInfos == item.ItemInfos &&
             string.Join(",", x.Stats).Equals(string.Join(",", item.Stats)) &&
             x.Character == character && x.ItemPosition == position && x.Quantity >= quantity);
 }
예제 #2
0
 public InventoryItem Copy(StatsManager.Position position = StatsManager.Position.None, int quantity = 1)
 {
     return new InventoryItem
     {
         Id =
             DatabaseProvider.InventoryItems.Count > 0
                 ? DatabaseProvider.InventoryItems.OrderByDescending(x => x.Id).First().Id + 1
                 : 1,
         Character = this.Character,
         ItemInfos = this.ItemInfos,
         Quantity = quantity,
         Stats = this.Stats,
         ItemPosition = position,
     };
 }
예제 #3
0
        public static void Update(StatsManager stats)
        {
            const string query = "UPDATE character_stats SET Vitality=@Vitality, Wisdom=@Wisdom," +
                                        "Strenght=@Strenght, Intelligence=@Intelligence, Chance=@Chance, Agility=@Agility " +
                                 "WHERE id=@Id";

            Base.Repository.ExecuteQuery(query, GameDbManager.GetDatabaseConnection(),
                (command) =>
                {
                    command.Parameters.Add(new MySqlParameter("@Id", stats.Id));
                    command.Parameters.Add(new MySqlParameter("@Vitality", stats.Vitality));
                    command.Parameters.Add(new MySqlParameter("@Wisdom", stats.Wisdom));
                    command.Parameters.Add(new MySqlParameter("@Strenght", stats.Strength));
                    command.Parameters.Add(new MySqlParameter("@Intelligence", stats.Intelligence));
                    command.Parameters.Add(new MySqlParameter("@Chance", stats.Chance));
                    command.Parameters.Add(new MySqlParameter("@Agility", stats.Agility));
                });
        }
예제 #4
0
        public static void Create(StatsManager stats)
        {
            const string query = "INSERT INTO character_stats SET Id=@Id, Vitality=@Vitality, Wisdom=@Wisdom," +
                                        "Strenght=@Strenght, Intelligence=@Intelligence, Chance=@Chance, Agility=@Agility";

            Base.Repository.ExecuteQuery(query, GameDbManager.GetDatabaseConnection(),
                (command) =>
                {
                    command.Parameters.Add(new MySqlParameter("@Id", stats.Id));
                    command.Parameters.Add(new MySqlParameter("@Vitality", stats.Vitality));
                    command.Parameters.Add(new MySqlParameter("@Wisdom", stats.Wisdom));
                    command.Parameters.Add(new MySqlParameter("@Strenght", stats.Strength));
                    command.Parameters.Add(new MySqlParameter("@Intelligence", stats.Intelligence));
                    command.Parameters.Add(new MySqlParameter("@Chance", stats.Chance));
                    command.Parameters.Add(new MySqlParameter("@Agility", stats.Agility));
                });

                lock (DatabaseProvider.StatsManager)
                    DatabaseProvider.StatsManager.Add(stats);
        }
예제 #5
0
        public void GenerateInfos(int gmLevel)
        {
            // Map
            switch (Classe)
            {
                case Class.Feca:
                    Map = DatabaseProvider.Maps.Find(x => x.Id == int.Parse(Config.Get("StartMap_Feca")));
                    MapCell = int.Parse(Config.Get("StartCell_Feca"));
                    Direction = int.Parse(Config.Get("StartDir_Feca"));
                    break;
                case Class.Osamodas:
                    Map = DatabaseProvider.Maps.Find(x => x.Id == int.Parse(Config.Get("StartMap_Osa")));
                    MapCell = int.Parse(Config.Get("StartCell_Osa"));
                    Direction = int.Parse(Config.Get("StartDir_Osa"));
                    break;
                case Class.Enutrof:
                    Map = DatabaseProvider.Maps.Find(x => x.Id == int.Parse(Config.Get("StartMap_Enu")));
                    MapCell = int.Parse(Config.Get("StartCell_Enu"));
                    Direction = int.Parse(Config.Get("StartDir_Enu"));
                    break;
                case Class.Sram:
                    Map = DatabaseProvider.Maps.Find(x => x.Id == int.Parse(Config.Get("StartMap_Sram")));
                    MapCell = int.Parse(Config.Get("StartCell_Sram"));
                    Direction = int.Parse(Config.Get("StartDir_Sram"));
                    break;
                case Class.Xelor:
                    Map = DatabaseProvider.Maps.Find(x => x.Id == int.Parse(Config.Get("StartMap_Xel")));
                    MapCell = int.Parse(Config.Get("StartCell_Xel"));
                    Direction = int.Parse(Config.Get("StartDir_Xel"));
                    break;
                case Class.Ecaflip:
                    Map = DatabaseProvider.Maps.Find(x => x.Id == int.Parse(Config.Get("StartMap_Eca")));
                    MapCell = int.Parse(Config.Get("StartCell_Eca"));
                    Direction = int.Parse(Config.Get("StartDir_Eca"));
                    break;
                case Class.Eniripsa:
                    Map = DatabaseProvider.Maps.Find(x => x.Id == int.Parse(Config.Get("StartMap_Eni")));
                    MapCell = int.Parse(Config.Get("StartCell_Eni"));
                    Direction = int.Parse(Config.Get("StartDir_Eni"));
                    break;
                case Class.Iop:
                    Map = DatabaseProvider.Maps.Find(x => x.Id == int.Parse(Config.Get("StartMap_Iop")));
                    MapCell = int.Parse(Config.Get("StartCell_Iop"));
                    Direction = int.Parse(Config.Get("StartDir_Iop"));
                    break;
                case Class.Cra:
                    Map = DatabaseProvider.Maps.Find(x => x.Id == int.Parse(Config.Get("StartMap_Cra")));
                    MapCell = int.Parse(Config.Get("StartCell_Cra"));
                    Direction = int.Parse(Config.Get("StartDir_Cra"));
                    break;
                case Class.Sadida:
                    Map = DatabaseProvider.Maps.Find(x => x.Id == int.Parse(Config.Get("StartMap_Sadi")));
                    MapCell = int.Parse(Config.Get("StartCell_Sadi"));
                    Direction = int.Parse(Config.Get("StartDir_Sadi"));
                    break;
                case Class.Sacrieur:
                    Map = DatabaseProvider.Maps.Find(x => x.Id == int.Parse(Config.Get("StartMap_Sacri")));
                    MapCell = int.Parse(Config.Get("StartCell_Sacri"));
                    Direction = int.Parse(Config.Get("StartDir_Sacri"));
                    break;
                case Class.Pandawa:
                    Map = DatabaseProvider.Maps.Find(x => x.Id == int.Parse(Config.Get("StartMap_Panda")));
                    MapCell = int.Parse(Config.Get("StartCell_Panda"));
                    Direction = int.Parse(Config.Get("StartDir_Panda"));
                    break;
            }

            // Create alignment row in database & list
            var alignmentId = DatabaseProvider.StatsManager.Count > 0
                ? DatabaseProvider.StatsManager.OrderByDescending(x => x.Id).First().Id + 1
                : 1;

            Alignment = new Alignment.Alignment {Id = alignmentId};
            AlignmentRepository.Create(Alignment);

            // Create stats row in database & list
            var statsId = DatabaseProvider.StatsManager.Count > 0
                ? DatabaseProvider.StatsManager.OrderByDescending(x => x.Id).First().Id + 1
                : 1;

            Stats = new StatsManager {Id = statsId};
            StatsRepository.Create(Stats);

            Channels = (gmLevel > 0)
                ? Channel.Headers.Select(channel => new Channel
                {
                    Header = (Channel.ChannelHeader) channel
                }).ToList()
                : Channel.Headers.Where(x => x != (char) Channel.ChannelHeader.AdminChannel)
                    .Select(channel => new Channel
                    {
                        Header = (Channel.ChannelHeader) channel
                    }).ToList();
        }
예제 #6
0
 public static void Remove(StatsManager stats)
 {
 }