private void FixPickupMessage(On.RoR2.Chat.orig_AddPickupMessage orig, CharacterBody body, string pickupToken, Color32 pickupColor, uint pickupQuantity) { if (pickupToken == Name.Token && pickupQuantity == 0) { pickupQuantity = 3; } orig(body, pickupToken, pickupColor, pickupQuantity); }
private void Chat_AddPickupMessage1(On.RoR2.Chat.orig_AddPickupMessage orig, CharacterBody body, string pickupToken, Color32 pickupColor, uint pickupQuantity) { if (!MostRecentGrabber == body) { orig(body, pickupToken, pickupColor, pickupQuantity); ResetGrabber(); MostRecentGrabber = body; return; } else { Chat.log.RemoveAt(IndexOfLastPickupMessage); //if (Chat.log.Count - 1 > 0) //Chat.log.RemoveAt(Chat.log.Count - 1); Tokens_to_Count[pickupToken] = pickupQuantity; if (!Tokens_to_NewCount.ContainsKey(pickupToken)) { Tokens_to_NewCount.Add(pickupToken, 0); } Tokens_to_NewCount[pickupToken]++; } // ({Util.GenerateColoredString($"+{Tokens_to_NewCount[pickupToken]}", Color.yellow)}) string message = ""; foreach (KeyValuePair <string, uint> kvp in Tokens_to_Count) { if (kvp.Key == pickupToken) { message += $"{Util.GenerateColoredString(Language.GetString(kvp.Key), pickupColor)} ({kvp.Value}) ({Util.GenerateColoredString($"+{Tokens_to_NewCount[pickupToken]}", Color.yellow)})"; } else { message += $"{Util.GenerateColoredString(Language.GetString(kvp.Key), Color.grey)} ({kvp.Value})"; } message += " "; } var subjectFormatChatMessage = new Chat.SubjectFormatChatMessage { baseToken = "PLAYER_PICKUP", paramTokens = new string[] { message, "" }, subjectAsCharacterBody = body }; Chat.AddMessage(subjectFormatChatMessage); IndexOfLastPickupMessage = Mathf.Max(0, Chat.log.Count - 1); }
private void textToSpeech(On.RoR2.Chat.orig_AddPickupMessage orig, CharacterBody body, string pickupToken, Color32 pickupColor, uint pickupQuantity) { Chat.PlayerPickupChatMessage pickupMessage = new Chat.PlayerPickupChatMessage { subjectCharacterBody = body, baseToken = "PLAYER_PICKUP", pickupToken = pickupToken, pickupColor = pickupColor, pickupQuantity = pickupQuantity }; string text = pickupMessage.ConstructChatString(); synthesizer.Speak(text); orig(body, pickupToken, pickupColor, pickupQuantity); }