private bool TryParseWho(LogDatum logDatum, out ILine lineEntry) { var match = RxWho.Match(logDatum.LogMessage); if (!match.Success) { lineEntry = null; return(false); } var isAfk = match.Groups[1].Success ? true : false; var isLfg = match.Groups[12].Success ? true : false; // These first 3 groups are for the ANONYMOUS character var isAnon = match.Groups[2].Success ? true : false; if (isAnon) { var name = match.Groups[3].Success ? match.Groups[3].Value : null; var guild = match.Groups[4].Success ? match.Groups[4].Value : null; lineEntry = new Who(logDatum, YouAre.WhoAreYou(name), 0, null, null, null, guild, isAnon, isAfk, isLfg); } // These groups are for non-anonymous characters else { var level = match.Groups[5].Success ? int.Parse(match.Groups[5].Value) : 0; var title = match.Groups[6].Success ? match.Groups[6].Value : null; var @class = match.Groups[7].Success ? match.Groups[7].Value : null; var name = match.Groups[8].Success ? match.Groups[8].Value : null; var race = match.Groups[9].Success ? match.Groups[9].Value : null; var guild = match.Groups[10].Success ? match.Groups[10].Value : null; var zone = match.Groups[11].Success ? match.Groups[11].Value : null; lineEntry = new Who(logDatum, YouAre.WhoAreYou(name), level, title, @class, race, guild, isAnon, isAfk, isLfg, new Zone(logDatum, zone)); } // What about chars who are /role playing? Is that the same as anonymous? return(true); }
private bool TryParseYouMiss(LogDatum logDatum, out ILine lineEntry) { var match = RxYouMiss.Match(logDatum.LogMessage); if (!match.Success) { lineEntry = null; return(false); } var attacker = YouAre.Name; var attackVerb = match.Groups[1].Value; var defender = match.Groups[2].Value; var defense = match.Groups[3].Value; var qualifier = match.Groups[4].Success ? match.Groups[4].Value : null; defense = ModifyDefense(defender, defense); lineEntry = new Miss(logDatum, attacker, YouAre.WhoAreYou(defender), attackVerb, defense, qualifier); return(true); }
private bool TryParseHeal(LogDatum logDatum, out ILine lineEntry) { var match = RxHeal.Match(logDatum.LogMessage); if (!match.Success) { lineEntry = null; return(false); } var flavor = match.Groups[1].Value; var healer = match.Groups[2].Value; var patient = match.Groups[4].Value; // "has been" || "have been" // Mordsith has been healed over time by .... // You have been healed over time by ... if (match.Groups[3].Success) { patient = healer; healer = null; } // Khronick healed you over time ... // Mordsith has been healed over time ... var isHot = match.Groups[5].Success || match.Groups[4].Value == "over time"; var amount = int.Parse(match.Groups[6].Value); var maxAmount = match.Groups[7].Success ? int.Parse(match.Groups[7].Value) : -1; var spellName = match.Groups[8].Value; var qualifier = match.Groups[9].Success ? match.Groups[9].Value : null; lineEntry = new Heal(logDatum, YouAre.WhoAreYou(healer), YouAre.WhoAreYou(patient), amount, maxAmount, spellName, isHot, qualifier); return(true); }
private bool TryParseSpell(LogDatum logDatum, out ILine lineEntry) { var match = RxSpell.Match(logDatum.LogMessage); if (!match.Success) { lineEntry = null; return(false); } var name = match.Groups[1].Value; var spellName = match.Groups[2].Value; lineEntry = new Spell(logDatum, YouAre.WhoAreYou(name), spellName); return(true); }
private bool TryParseHit(LogDatum logDatum, out ILine lineEntry) { var match = RxHit.Match(logDatum.LogMessage); if (!match.Success) { lineEntry = null; return(false); } var attacker = match.Groups[1].Value; var attackVerb = match.Groups[2].Value; var defender = match.Groups[3].Value; var damage = int.Parse(match.Groups[4].Value); var damageType = match.Groups[5].Success ? match.Groups[5].Value : null; var damageBy = match.Groups[6].Success ? match.Groups[6].Value : null; var damageQualifier = match.Groups[7].Success ? match.Groups[7].Value : null; lineEntry = new Hit(logDatum, YouAre.WhoAreYou(attacker), YouAre.WhoAreYou(defender), attackVerb, damage, damageType, damageBy, damageQualifier); return(true); }
private bool TryParseChat(LogDatum logDatum, out ILine lineEntry) { var match = RxChat.Match(logDatum.LogMessage); if (!match.Success) { lineEntry = null; return(false); } var who = match.Groups[1].Value; var verb = match.Groups[2].Value; var channel = match.Groups[3].Value; var text = match.Groups[4].Value; who = YouAre.WhoAreYou(who); channel = ModifyChannel(string.IsNullOrEmpty(channel) ? verb : channel); var server = CheckNameForServer(ref who); lineEntry = new Chat(logDatum, who, channel, text, server); return(true); }
private bool TryParseOtherDeath(LogDatum logDatum, out ILine lineEntry) { lineEntry = null; string attacker; string defender; int i = logDatum.LogMessage.IndexOf(OtherDeath); if (i >= 0) { defender = logDatum.LogMessage.Substring(0, i); attacker = logDatum.LogMessage.Substring(i + OtherDeath.Length, logDatum.LogMessage.Length - i - OtherDeath.Length - 1); lineEntry = new Kill(logDatum, YouAre.WhoAreYou(attacker), YouAre.WhoAreYou(defender), "slain"); return(true); } return(false); }
public void VerifyNoNameYourUppercase() { var yr = new YouResolver(); Assert.AreEqual("You", yr.WhoAreYou("YOUR")); }
public void VerifyTrickyNoSubstitution3() { var yr = new YouResolver("Khadaji"); Assert.AreEqual("Healyougood", yr.WhoAreYou("Healyougood")); }
public void VerifyTrickyNoSubstitution2() { var yr = new YouResolver("Khadaji"); Assert.AreEqual("Yourdoc", yr.WhoAreYou("Yourdoc")); }
public void VerifyNoSubstitution() { var yr = new YouResolver("Khadaji"); Assert.AreEqual("Movanna", yr.WhoAreYou("Movanna")); }
public void VerifyYourSubstitutionUppercase() { var yr = new YouResolver("Khadaji"); Assert.AreEqual("Khadaji", yr.WhoAreYou("YOUR")); }
public void VerifyYouSubstitutionLowercase() { var yr = new YouResolver("Khadaji"); Assert.AreEqual("Khadaji", yr.WhoAreYou("you")); }
public void HandleYourself() { var yr = new YouResolver("Khronick"); Assert.AreEqual("Khronick", yr.WhoAreYou("yourself")); }
public void VerifyEmptylName() { var yr = new YouResolver("Khadaji"); Assert.AreEqual(string.Empty, yr.WhoAreYou("")); }
public void VerifyNullName() { var yr = new YouResolver("Khadaji"); Assert.IsNull(yr.WhoAreYou(null)); }