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()); }
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()); }
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()); }
public void Init(IBot bot, ILoggerService logger) { GarageHelper.GetHelper().InitGarages(logger); }
public string Execute(List <string> message, Lobby lobby) { var strGarage = GarageHelper.GetHelper().GetGarageString(lobby.Garage); return(strGarage); }
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};"); }