internal override bool Execute(List <string> args, TextMessage message, PersonDb db) { StringBuilder outMessage = new StringBuilder(); CasinoPlayer invoker = DbInterface.GetPlayer(message.InvokerUid, db); outMessage.Append("\n"); if (invoker.Inventory != null || invoker.Inventory.Length > 0) //Don't have any items? frick off { String[] inventory = invoker.Inventory.Split(";"); foreach (string itemID in inventory) { Item item = store.GetItemFromID(itemID); if (item != null) { outMessage.Append($"{item.Name} | {item.Description}\n"); } } } else { outMessage.Append($"You don't have any Items!\nYou can buy some with {CommandManager.CmdIndicator}{store.Label}"); } CommandManager.AnswerCall(message, outMessage.ToString()); return(false); }
private double GetBetMultiplier(CasinoPlayer player) { if (player.Score == 21 && player.Cards.Count == 2) { return(2.5); } return(2); }
private CasinoPlayer AwardPlayerForWin(CasinoPlayer player) { var multiplier = GetBetMultiplier(player); player.CurrentMoney += multiplier * player.CurrentBet; player.TotalEarned += multiplier * player.CurrentBet; return(player); }
internal override bool Execute(List <string> args, TextMessage message, PersonDb db) { StringBuilder outMessage = new StringBuilder(); CasinoPlayer tempPlayer = DbInterface.GetPlayer(message.InvokerUid, db); outMessage.Append("\n"). Append($"{CommandManager.ClientUrl(tempPlayer.Id, tempPlayer.Name)}: You have {tempPlayer.Points} in your Wallet!"); return(CommandManager.AnswerCall(message, outMessage.ToString())); }
static int WonJackpot(CasinoPlayer jackpotPlayer) { int price = jackpotPlayer.Points; if (price <= 0) { return(0); } else { if (!DbInterface.AlterPoints(jackpotPlayer, -price)) //Take money { //Can't change points for some reason throw new Exception("Alter Points failed in CommandSpin.cs"); } return(price); } }
internal override bool Execute(List <string> args, TextMessage message, PersonDb db) { //GetJackPot player CasinoPlayer jackpotPlayer = DbInterface.GetPlayer(this.JackpotID, db); if (jackpotPlayer == null) { CommandManager.AnswerCall(message, $"{Utils.Utils.ApplyColor(Color.Red)}\nNo Jackpot found! Please contact your admin![/COLOR]"); return(false); } StringBuilder outMessage = new StringBuilder(); outMessage.Append("\n"); outMessage.Append($"The Jackpot is currently at {jackpotPlayer.Points} Points!"); CommandManager.AnswerCall(message, outMessage.ToString()); return(true); }
internal override bool Execute(List <string> args, TextMessage message, PersonDb db) { CasinoPlayer myPlayer = DbInterface.GetPlayer(message.InvokerUid, db); StringBuilder outMessage = new StringBuilder(); outMessage.Append("\n"); if (myPlayer.LastDaily.Year < DateTime.Now.Year || myPlayer.LastDaily.Month < DateTime.Now.Month || myPlayer.LastDaily.Day < DateTime.Now.Day) { Error result = DbInterface.UpdateDaily(myPlayer.Id, this.DailyReward, db); switch (result) { case Error.OK: outMessage.Append($"{this.DailyReward} Points have been added to your Wallet!\nYou now have {myPlayer.Points} Points in your Wallet!"); break; case Error.SAVEERROR: outMessage.Append("Changes could not be saved to the Database!"); break; case Error.UNKNOWN: default: outMessage.Append("An Unknown Error Occured"); break; } } else { outMessage.Append($"{CommandManager.ClientUrl(myPlayer.Id, myPlayer.Name)}: You already received your Daily reward {Utils.Utils.MsToM((DateTime.Now - myPlayer.LastDaily).TotalMilliseconds)} ago!\nCome back in {Utils.Utils.MsToM((DateTime.Now.AddDays(1).Date - DateTime.Now).TotalMilliseconds)}."); CommandManager.AnswerCall(message, outMessage.ToString()); return(false); } CommandManager.AnswerCall(message, outMessage.ToString()); return(true); }
internal override bool Execute(List <string> args, TextMessage message, PersonDb db) { if (args.Count < 1) //Not enough parameters => Show Usage { CommandManager.AnswerCall(message, "\nUsage:\n" + CommandManager.CmdIndicator + this.Label + " " + this.Usage); return(false); } String arg0 = args[0].ToLower(); if (arg0 != "buy" && arg0 != "list") { CommandManager.AnswerCall(message, "\nUsage:\n" + CommandManager.CmdIndicator + this.Label + " " + this.Usage); return(false); } StringBuilder outMessage = new StringBuilder(); outMessage.Append("\n"); if (arg0 == "buy") //buy item { if (args.Count == 2 && GetItem(args[1]) != null) //if we have no item to buy -> show list { //Get Invoker CasinoPlayer invoker = DbInterface.GetPlayer(message.InvokerUid, db); Item item = GetItem(args[1]); if (invoker.Points < item.Price) //Not enough points { CommandManager.AnswerCall(message, Responses.NotEnoughPoints); return(false); } //Change the points nauw if (!DbInterface.AlterPoints(invoker, -item.Price)) //Can't change points for some reason { CommandManager.AnswerCall(message, "An Unknown Error Occured! \nGive this to your Admin: 'Alter Points failed in CommandStore.cs'"); throw new Exception("Alter Points failed in CommandStore.cs"); } DbInterface.GiveItem(invoker, item.ID); DbInterface.SaveChanges(db); //Tell the peepz about their item CommandManager.AnswerCall(message, $"{Utils.Utils.ApplyColor(Color.DarkGreen)}\nYou've bought {item.Name} for {item.Price} Points![/COLOR]\nYou now have {invoker.Points} Points"); return(true); } else { ListItems(args, message, ref outMessage); CommandManager.AnswerCall(message, outMessage.ToString()); return(true); } } if (arg0 == "list") //List items { if (args.Count == 2 && GetItem(args[1]) != null) //if we have a item show more information about it else list items { Item item = GetItem(args[1]); if (item != null) { outMessage.Append($"{item.Name} | {item.Description} | {item.Price} Points"); } } else { //List ListItems(args, message, ref outMessage); } CommandManager.AnswerCall(message, outMessage.ToString()); return(true); } return(true); }
internal override bool Execute(List <string> args, TextMessage message, PersonDb db) { if (args.Count < 2) //Not enough parameters => Show Usage { CommandManager.AnswerCall(message, $"\nUsage:\n{CommandManager.CmdIndicator}{this.Label} {this.Usage}"); return(false); } if (!Int32.TryParse(args[1], out int amount)) //Can't parse number => NaN { CommandManager.AnswerCall(message, $"{Utils.Utils.ApplyColor(Color.Red)}\n{args[1]} is not a number![/COLOR]"); return(false); } if (amount <= 0) //Number not positive => frick off { CommandManager.AnswerCall(message, Responses.NegativeNumber); return(false); } //Get Invoker & Target Player CasinoPlayer invoker = DbInterface.GetPlayer(message.InvokerUid, db); List <CasinoPlayer> targets = DbInterface.GetPlayerList(name: args[0]); if (targets.Count != 1) //Target not found/too many targets => same procedure as every year { CommandManager.AnswerCall(message, $"{Utils.Utils.ApplyColor(Color.Red)}\nTarget not Found or not Registered![/COLOR]"); return(false); } if (invoker == targets[0]) //Wanna give money to yourself? Why tho { CommandManager.AnswerCall(message, $"{Utils.Utils.ApplyColor(Color.Red)}\nJust no![/COLOR]"); return(false); } if (invoker.Points < amount) //Not enough points { CommandManager.AnswerCall(message, Responses.NotEnoughPoints); return(false); } //Change the points nauw db.Players.Find(invoker.Id).Points -= amount; db.Players.Find(targets[0].Id).Points += amount; DbInterface.SaveChanges(db); //Tell the peepz about the transfer CommandManager.AnswerCall(message, $"{Utils.Utils.ApplyColor(Color.DarkGreen)}\nTransfer done![/COLOR]\n{CommandManager.ClientUrl(invoker.Id, invoker.Name)}: {invoker.Points} Points\n{CommandManager.ClientUrl(targets[0].Id, targets[0].Name)}: {db.Players.Find(targets[0].Id).Points} Points"); //Private messages StringBuilder privateMessage = new StringBuilder(); privateMessage.Clear(). Append($"\nYou send {amount} Points to {CommandManager.ClientUrl(targets[0].Id, targets[0].Name)}!"). Append($"\nYou now have {invoker.Points} Points!"); GameBot.Instance.TSClient.SendMessage(privateMessage.ToString(), MessageTarget.Private, message.InvokerId); privateMessage.Clear(). Append($"You received {amount} Points from {CommandManager.ClientUrl(invoker.Id, invoker.Name)}!"). Append($"\nYou now have {targets[0].Points} Points!"); var shit = Program.CurrentClients.Where(c => c.NickName == targets[0].Name); if (shit == null || shit.Count() == 0) //Player not online => send offline msg { GameBot.Instance.TSClient.SendOfflineMessage(targets[0].Id, privateMessage.ToString(), "You received Points!"); return(false); } privateMessage.Insert(0, "\n"); GameBot.Instance.TSClient.SendMessage(privateMessage.ToString(), MessageTarget.Private, shit.FirstOrDefault().Id); return(true); }
internal override bool Execute(List <string> args, TextMessage msg, PersonDb db) { if (args.Count < 1) { CommandManager.AnswerCall(msg, $"\nUsage:\n{CommandManager.CmdIndicator}{this.Label} {this.Usage}"); return(false); } String bet = args[0].ToLower(); if (bet != "heads" && bet != "tails") { CommandManager.AnswerCall(msg, $"\nUsage:\n{CommandManager.CmdIndicator}{this.Label} {this.Usage}"); return(false); } int wager = 5; if (args.Count > 1) { if (!Int32.TryParse(args[1], out wager)) { CommandManager.AnswerCall(msg, $"{Utils.Utils.ApplyColor(Color.Red)}\n{args[1]} is not a number![/COLOR]"); return(false); } if (wager <= 0) //Number not positive => frick off { CommandManager.AnswerCall(msg, Responses.NegativeNumber); return(false); } } CasinoPlayer myPlayer = DbInterface.GetPlayer(msg.InvokerUid, db); if (myPlayer.Points < wager) //Not enough points { CommandManager.AnswerCall(msg, Responses.NotEnoughPoints); return(false); } StringBuilder outMessage = new StringBuilder(); outMessage.Append("\n"); //Generate Numbers Random run = new Random(); int edge = run.Next(0, 6000); int flip = 0; int price = 0; if (edge != 1) //1 in 6k { flip = run.Next(0, 1); if (flip == 0) { outMessage.Append("The Coin shows Heads!\n"); if (bet.Equals("heads")) { price = wager * 2; } } else { outMessage.Append("The Coin shows Tails!\n"); if (bet.Equals("tails")) { price = wager * 2; } } } else { outMessage.Append("The Coin landed on its edge! What a crooked game!\n"); } int add = price - wager; if (!DbInterface.AlterPoints(myPlayer, add)) //Give/Take money { //Can't change points for some reason CommandManager.AnswerCall(msg, "An Unknown Error Occured! \nGive this to your Admin: 'Alter Points failed in CommandCoin.cs'"); throw new Exception("Alter Points failed in CommandCoin.cs"); } DbInterface.SaveChanges(db); outMessage.Append(add >= 0 ? $"You have won {add}" : $"You have lost {-add}"); outMessage.Append($" Points. You now have {myPlayer.Points} Points!"); CommandManager.AnswerCall(msg, outMessage.ToString()); return(true); }
internal override bool Execute(List <string> args, TextMessage msg, PersonDb db) { CasinoPlayer myPlayer = DbInterface.GetPlayer(msg.InvokerUid, db); /* * The user Exp has pulled the SLOTMACHINE! ############# # 5 | 6 | 5 # ############# #############And they won a meh Price... */ if (myPlayer.Points < this.Cost) //Not enough points { CommandManager.AnswerCall(msg, Responses.NotEnoughPoints); return(false); } //GetJackPot player CasinoPlayer jackpotPlayer = DbInterface.GetPlayer(this.JackpotID, db); if (jackpotPlayer == null) { CommandManager.AnswerCall(msg, $"{Utils.Utils.ApplyColor(Color.Red)}\nNo Jackpot found! Please contact your admin![/COLOR]"); return(false); } //Generate Numbers Random run = new Random(); int firstNum = run.Next(1, 9); int secondNum = run.Next(1, 9); int thirdNum = run.Next(1, 9); int price = 0; //Create Message StringBuilder outMessage = new StringBuilder(); outMessage.Append("\n"); outMessage.Append($"{CommandManager.ClientUrl(myPlayer.Id, myPlayer.Name)} has paid {this.Cost} to spin the Slot Machine!\n"); outMessage.Append("########\n"); outMessage.Append($"# {firstNum} | {secondNum} | {thirdNum} #\n"); outMessage.Append("########\n"); //Did you win something? prolly not if (firstNum == MagicNumber && secondNum == MagicNumber && thirdNum == MagicNumber) { //lucky bastard outMessage.Append("\nYou've won the Jackpot!\n"); price = WonJackpot(jackpotPlayer); } else if ((firstNum == MagicNumber && secondNum == MagicNumber) || (firstNum == MagicNumber && thirdNum == MagicNumber) || (secondNum == MagicNumber && thirdNum == MagicNumber)) //medium { outMessage.Append("\nYou've won a neato price!\n"); price = Cost * 2; } else if (firstNum == MagicNumber || secondNum == MagicNumber || thirdNum == MagicNumber) { //better than nothing amirite outMessage.Append("\nYou've won a meh price!\n"); price = Cost; } else if (firstNum == 4 && secondNum == 0 && thirdNum == 4) { outMessage.Append("\nPrice not found!\n"); price = Cost; } else //Nothing { outMessage.Append("\nYou've won [S]a price[/S] [B]nothing[/B]!\n"); price = 0; } int add = price - this.Cost; if (add < 0) //if the player loses money give it to the jackpot { DbInterface.AlterPoints(jackpotPlayer, -add); } if (!DbInterface.AlterPoints(myPlayer, add)) //Give/Take money { //Can't change points for some reason CommandManager.AnswerCall(msg, "An Unknown Error Occured! \nGive this to your Admin: 'Alter Points failed in CommandSpin.cs'"); throw new Exception("Alter Points failed in CommandSpin.cs"); } DbInterface.SaveChanges(db); outMessage.Append(add >= 0 ? $"You have won {add}" : $"You have lost {-add}"); outMessage.Append($" Points. You now have {myPlayer.Points} Points!"); CommandManager.AnswerCall(msg, outMessage.ToString()); return(true); }
internal override CCR Execute(List <string> args, PersonDb db) { #region argCompute if (args.Count == 0 || args.Count == 2 || args.Count > 3) { return(CCR.WRONGPARAM); } CasinoPlayer player = DbInterface.GetPlayer(args[0], db); if (player == null) { return(CCR.PLAYERNOTFOUND); } #endregion // show case if (args.Count == 1) { Console.WriteLine($"Name: {player.Name}\nPoints: {player.Points}\nSteam: {player.SteamID64}"); return(CCR.OK); } // change case if (args[1].ToLower() == "change") { if (!Int32.TryParse(args[2], out int amount)) { return(CCR.NOTANUMBER); } if (!DbInterface.AlterPoints(player, amount)) { return(CCR.NOTENOUGHPOINTS); } switch (DbInterface.SaveChanges(db)) { case Error.OK: Console.WriteLine($"Points altered from {(player.Points - amount)} to {player.Points}"); return(CCR.OK); // break; case Error.SAVEERROR: DbInterface.AlterPoints(player, -amount); return(CCR.DBWRITEFAILED); // break; case Error.UNKNOWN: default: return(CCR.UNKNOWN); // break; } } // set case if (args[1].ToLower() == "set") { if (!Int32.TryParse(args[2], out int amount)) { return(CCR.NOTANUMBER); } if (amount < 0) { return(CCR.BELOWZERO); } int oldAmount = player.Points; db.Players.Find(player.Id).Points = amount; // Setting the amount of Points switch (DbInterface.SaveChanges(db)) { case Error.OK: Console.WriteLine($"{player.Name}'s Points were altered from {oldAmount} to {player.Points}"); return(CCR.OK); // break; case Error.SAVEERROR: db.Players.Find(player.Id).Points = oldAmount; // Resetting the amount of Points to the Old value return(CCR.DBWRITEFAILED); // break; case Error.UNKNOWN: default: return(CCR.UNKNOWN); // break; } } return(CCR.UNKNOWN); }
private CasinoPlayer SubtractBetFromPlayerWallet(CasinoPlayer player) { player.CurrentMoney -= player.CurrentBet; return(player); }
private CasinoPlayer SubtractPlayerBetFromTotalLost(CasinoPlayer player) { player.TotalLost += player.CurrentBet; return(player); }
private CasinoPlayer ReturnPlayerBet(CasinoPlayer player) { player.CurrentMoney += player.CurrentBet; return(player); }