private void BotSelectTaunt(Player botPlayer, int botCount, ICollection <Taunt> matchingTaunts, object args) { // Skip this bot if there are no matches if (matchingTaunts.Count == 0) { return; } // Get highest priority in taunt matches var maxTauntPriority = matchingTaunts.Max(t => t.Priority); // Get taunts matching highest priority var eligibleCardTaunts = matchingTaunts.Where(t => t.Priority == maxTauntPriority).ToArray(); // Select a taunt var activeTaunt = eligibleCardTaunts[_rng.Next(eligibleCardTaunts.Length)]; // Calculate probability var tauntChance = (activeTaunt.ResponseChance / botCount + activeTaunt.ResponseChance) * 0.5; // Check against probability and send message if (!(_rng.NextDouble() <= tauntChance)) { return; } var responses = activeTaunt.GetResponses().ToArray(); SendBotChatMessage(botPlayer, responses[_rng.Next(responses.Length)], RantProgramArgs.CreateFrom(args)); }
public void OneArgAnonymousType() { var args = new { msg = "Hello World" }; Assert.AreEqual("Hello World", rant.Do(@"[in:msg]", 0, 0, RantProgramArgs.CreateFrom(args)).Main); }
public void CustomArgsClass() { var args = new TestCustomArgsClass { A = "Hello", B = "World" }; Assert.AreEqual("Hello World!", rant.Do(@"[in:word-a] [in:word-b]!", 0, 0, RantProgramArgs.CreateFrom(args)).Main); }