private void CornerPlayerSaidHandler(object sender, SaidEventArgs e) { //Brak TransactionLevel bot przychodzi i pyta o narkotyk //TransactionLevel == 1 PedEntity czeka na cenę //TransactionLevel == 2 Podana cena była za wysoka i bot wynegocjował zgodnie z tym co może dać, czeka aż gracz powie tak lub poda cenę //Jeśli gracz powie że nie ma if ((!BotHandle.HasData("TransactionLevel") || BotHandle.GetData("TransactionLevel") == 2) && e.Character == Seller && (e.ChatMessageType == ChatMessageType.Normal || e.ChatMessageType == ChatMessageType.Quiet || e.ChatMessageType == ChatMessageType.Loud) && Messages.NoMessagesList.Any(e.Message.Contains)) { GoAllPoints(true); } else if (BotHandle.HasData("TransactionLevel") && BotHandle.GetData("TransactionLevel") == 1 && e.Character == Seller && (e.ChatMessageType == ChatMessageType.Normal || e.ChatMessageType == ChatMessageType.Quiet || e.ChatMessageType == ChatMessageType.Loud) && !e.Message.All(char.IsDigit)) { //Jeśli gracz nie napisze zadnej liczby Seller.SendInfo("Aby podać cenę kupującemu NPC musisz używać liczb np. 70."); } //Jeśli gracz powie tak else if (!BotHandle.HasData("TransactionLevel") && e.Character == Seller && (e.ChatMessageType == ChatMessageType.Normal || e.ChatMessageType == ChatMessageType.Quiet || e.ChatMessageType == ChatMessageType.Loud) && Messages.YesMessagesList.Any(e.Message.Contains)) { BotHandle.SetData("TransactionLevel", 1); SendMessageToNerbyPlayers("Ile za to cudo?", ChatMessageType.Normal); } //Jeśli gracz poda za wysoką cenę, ale w granicach rozsądku else if (BotHandle.HasData("TransactionLevel") && BotHandle.GetData("TransactionLevel") == 1 && e.Character == Seller && (e.ChatMessageType == ChatMessageType.Normal || e.ChatMessageType == ChatMessageType.Quiet || e.ChatMessageType == ChatMessageType.Loud) && MostlyGoodMoneyCounts.Any(Convert.ToDecimal(e.Message).Equals)) { SendMessageToNerbyPlayers($"Co powiesz na ${MoneyCount}?", ChatMessageType.Normal); BotHandle.SetData("TransactionLevel", 2); } //Jeśli gracz poda właściwą lub niższą cenę else if (BotHandle.HasData("TransactionLevel") && BotHandle.GetData("TransactionLevel") == 1 && e.Character == Seller && (e.ChatMessageType == ChatMessageType.Normal || e.ChatMessageType == ChatMessageType.Quiet || e.ChatMessageType == ChatMessageType.Loud) && (e.Message.Contains(MoneyCount.ToString(CultureInfo.InvariantCulture)) || LowerMoneyCounts.Any(Convert.ToDecimal(e.Message).Equals))) { //Sprawdzamy czy gracz posiada dany narkotyk if (Seller.DbModel.Items.Any(i => i.ItemEntityType == ItemEntityType.Drug && i.FirstParameter == (int)DrugType)) { EndTransaction(LowerMoneyCounts.Any(Convert.ToDecimal(e.Message).Equals) ? LowerMoneyCounts.First(Convert.ToDecimal(e.Message).Equals) : MoneyCount); } //Jeśli gracz nie ma narkotyku else { SendFailMessage(); } GoAllPoints(true); } //Po negocjacji else if (BotHandle.HasData("TransactionLevel") && BotHandle.GetData("TransactionLevel") == 2 && e.Character == Seller && (e.ChatMessageType == ChatMessageType.Normal || e.ChatMessageType == ChatMessageType.Quiet || e.ChatMessageType == ChatMessageType.Loud) && (Messages.YesMessagesList.Any(e.Message.Contains) || e.Message.Contains(MoneyCount.ToString(CultureInfo.InvariantCulture)) || LowerMoneyCounts.Any(Convert.ToDecimal(e.Message).Equals))) { //Jeśli gracz zgodzi się na cenę bota //Sprawdzamy czy gracz posiada dany narkotyk if (Seller.DbModel.Items.Any(i => i.ItemEntityType == ItemEntityType.Drug && i.FirstParameter == (int)DrugType)) { if (!e.Message.All(char.IsDigit)) { EndTransaction(MoneyCount); } else { EndTransaction(LowerMoneyCounts.Any(Convert.ToDecimal(e.Message).Equals) ? LowerMoneyCounts.First(Convert.ToDecimal(e.Message).Equals) : MoneyCount); } } //Jeśli gracz nie ma narkotyku po negocjacji else { SendFailMessage(); } GoAllPoints(true); } else { SendMessageToNerbyPlayers(BadFarewell, ChatMessageType.Normal); GoAllPoints(true); } }
private void Start() { StageText.text = StageName; SeatText.text = SeatCount.ToString(); MoneyText.text = MoneyCount.ToString(); }