コード例 #1
0
ファイル: GarageCommand.cs プロジェクト: Fooxboy/HydraBot
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }
            string text   = "🔧 Магазин гаражей";
            var    kb     = new KeyboardBuilder(bot);
            var    helper = GarageHelper.GetHelper();

            foreach (var garage in helper.Garages)
            {
                text += $"\n 🔧 [{garage.Id}] {garage.Name} | 🚘 Мест: {garage.CountPlaces} | 💵 Цена: {garage.Price}";
                kb.AddButton($"🔧 {garage.Id}", "infogarage", new List <string>()
                {
                    garage.Id.ToString()
                });
                if (garage.Id == 3 || garage.Id == 7)
                {
                    kb.AddLine();
                }
            }

            kb.AddLine();
            kb.AddButton("↩ Назад", "store");
            sender.Text(text, msg.ChatId, kb.Build());
        }
コード例 #2
0
ファイル: InfoGarageCommand.cs プロジェクト: Fooxboy/HydraBot
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }
            var garage      = Main.Api.Garages.GetGarage(msg);
            var id          = Int64.Parse(msg.Payload.Arguments[0]);
            var helper      = GarageHelper.GetHelper();
            var garageModel = helper.GetGarageModel(id);

            bool isActive = garage.Name == garageModel.Name;

            var text = $"🔧 Иформация о гараже:" +
                       $"\n 🚩 Название: {garageModel.Name}" +
                       $"\n 🚘 Парковочных мест: {garageModel.CountPlaces}" +
                       $"\n 💵 Цена: {garageModel.Price}";

            if (isActive || garage.GarageModelId >= garageModel.Id)
            {
                text += "\n ✔ У Вас куплен этот гараж";
            }

            var kb = new KeyboardBuilder(bot);

            if (!(isActive || garage.GarageModelId >= garageModel.Id))
            {
                kb.AddButton("💵 Купить гараж", "buygarage", new List <string> {
                    garageModel.Id.ToString()
                }, color: KeyboardButtonColor.Positive);
            }

            kb.AddButton("↩ Назад к гаражам", "garagestore");

            sender.Text(text, msg.ChatId, kb.Build());
        }
コード例 #3
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }

            var helper      = GarageHelper.GetHelper();
            var api         = Main.Api;
            var id          = long.Parse(msg.Payload.Arguments[0]);
            var garageModel = helper.GetGarageModel(id);

            var user   = api.Users.GetUser(msg);
            var kb     = new KeyboardBuilder(bot);
            var garage = api.Garages.GetGarage(user.Id);

            var text = string.Empty;

            if (user.Money < garageModel.Price)
            {
                text = $"❌ У Вас недостаточно наличных, чтобы купить этот гараж. \n 💵 Ваш баланс: {user.Money} рублей.";
            }
            else
            {
                api.Users.RemoveMoney(user.Id, garageModel.Price);
                api.Garages.UpgrateGarage(user.Id, garageModel.Name, garageModel.CountPlaces, garageModel.Id);
                text = "✔ Вы купили новый гараж!";
            }

            kb.AddButton("↩ Назад", "garagestore");
            kb.AddButton("🔧 Перейти в гараж", "garage");
            sender.Text(text, msg.ChatId, kb.Build());
        }
コード例 #4
0
ファイル: GarageCommand.cs プロジェクト: Fooxboy/HydraBot
 public void Init(IBot bot, ILoggerService logger)
 {
     GarageHelper.GetHelper().InitGarages(logger);
 }
コード例 #5
0
        public string Execute(List <string> message, Lobby lobby)
        {
            var strGarage = GarageHelper.GetHelper().GetGarageString(lobby.Garage);

            return(strGarage);
        }
コード例 #6
0
        public string Execute(List <string> message, Lobby lobby)
        {
            var type     = message[1];
            var itemId   = Int32.Parse(message[2]);
            var count    = type == "n"? Int32.Parse(message[3]): 0;
            var userRank = RankHelper.GetHelper().GetRankFromScore(lobby.Garage.Score);
            var garage   = lobby.Garage;

            if (type == "h")
            {
                var hull = HullHelper.GetHelper().GetHullFromId(itemId);
                if (hull.Prices[Convert.ToInt32(hull.Level.Value)] > lobby.Garage.Crystalls)
                {
                    return("error;У вас недостаточно кристалов;");
                }
                if (hull.Ranks[Convert.ToInt32(hull.Level.Value)] > userRank)
                {
                    return("error;У вас слишком маленькое звание.");
                }
                if (garage.Hulls.Any(h => h.Id == hull.Id && h.Level == hull.Level))
                {
                    return("error;У вас уже куплен этот корпус");
                }

                if (garage.Hulls.Any(h => h.Id == hull.Id))
                {
                    var hullBuy = garage.Hulls.Single(h => h.Id == hull.Id);
                    garage.Hulls.Remove(hullBuy);
                }
                garage.Hulls.Add(hull);
                garage.Crystalls -= hull.Prices[(Convert.ToInt32(hull.Level.Value))];
            }
            else if (type == "t")
            {
                var turret = TurretHelper.GetHelper().GetTurretFromId(itemId);
                if (turret.Prices[Convert.ToInt32(turret.Level.Value)] > garage.Crystalls)
                {
                    return("error;У вас недостаточно кристалов;");
                }
                if (turret.Ranks[Convert.ToInt32(turret.Level.Value)] > userRank)
                {
                    return("error;У вас слишком маленькое звание.");
                }
                if (garage.Turrets.Any(t => t.Id == turret.Id && t.Level == turret.Level))
                {
                    return("error;У вас уже куплена эта башня");
                }
                if (garage.Turrets.Any(t => t.Id == turret.Id))
                {
                    var turretBuy = garage.Turrets.Single(t => t.Id == turret.Id);
                    garage.Turrets.Remove(turretBuy);
                }

                garage.Turrets.Add(turret);
                garage.Crystalls -= turret.Prices[(Convert.ToInt32(turret.Level.Value))];
            }
            else if (type == "c")
            {
                var colormap = ColormapHelper.GetHelper().Colormaps[itemId];
                if (colormap.Price > garage.Crystalls)
                {
                    return("error;У вас недостаточно кристалов;");
                }
                if (colormap.Rank > userRank)
                {
                    return("error;У вас слишком маленькое звание.");
                }
                if (garage.Colormaps.Any(c => c.Id == colormap.Id))
                {
                    return("error;У вас уже куплен эта краска");
                }
                garage.Colormaps.Add(colormap);
                garage.Crystalls -= colormap.Price;
            }
            else if (type == "n")
            {
                if (itemId > NumericHelper.GetHelper().Numerics.Count - 1)
                {
                    return("error;id слишком большое;");
                }
                var numeric = NumericHelper.GetHelper().Numerics[itemId];
                var price   = numeric.Price * count;
                if (garage.Crystalls < price)
                {
                    return("error;У Вас недостатточно кристаллов.;");
                }
                if (userRank < numeric.Rank)
                {
                    return("error;У вас слишком маленькое звание;");
                }
                for (var i = 0; i > count; i++)
                {
                    garage.Numerics.Add(numeric);
                }
            }

            _api.Garage.SetGarage(garage);
            var garStr = GarageHelper.GetHelper().GetGarageString(lobby.Garage);

            lobby.Send(garStr);
            return($"sett;{lobby.User.Nickname};{garage.Crystalls};{garage.Score};{HullHelper.GetHelper().GetCurrentHull(garage.CurrentHull)};{TurretHelper.GetHelper().GetCurrentTurret(garage.CurrentTurret)};{garage.CurrentColormap.Id};");
        }