public static string AsSubject(this Noun noun) { switch (noun) { case Noun.Potion: case Noun.MemoryLoss: return("the potion that"); case Noun.ExWife: return("the victim's " + bold("ex-wife")); case Noun.Daughter: return("the victim's " + bold("daughter")); case Noun.Mistress: return("the victim's " + bold("mistress")); case Noun.Artist: return("an " + bold(noun.ToString().ToLower())); case Noun.Scientist: case Noun.Writer: case Noun.Philanthropist: return("a " + bold(noun.ToString().ToLower())); case Noun.OwesDebt: return("the debt"); default: // This will happen for names return(bold(noun.ToString())); } }
public override ClueItem GetItem(Noun n1, Noun n2) { // ensure n1 is the identity if (n1.Type() == NounType.Name) { Noun temp = n1; n1 = n2; n2 = temp; } string spriteName = "Letter"; string description = "A letter to the victim about " + Utilities.bold(n2.ToString()) + ", " + n1.WithVictim() + "."; ClueItem item = new ClueItem(n1, n2, Verb.Is, spriteName, description); return(item); }
public static string WithVictim(this Noun noun) { switch (noun) { case Noun.ExWife: return("his " + bold("ex-wife")); case Noun.Daughter: return("his " + bold("daughter")); case Noun.Mistress: return("his " + bold("mistress")); default: return(noun.ToString()); } }
public override string ToString() { StringBuilder sb = new StringBuilder(); if (!IsComplete()) { throw new IncompleteSentenceException(this); } sb.Append($"{Noun.ToString()} {Verb.ToString()} {Descriptor.ToString()}"); for (int i = 0; i < ExtraDescriptors.Count; i++) { sb.Append($" {Conjunctions[i].ToString()} {ExtraDescriptors[i].ToString()}"); } return(sb.ToString()); }
public static string AsObject(this Noun noun, bool positive = true) { string isString = (positive ? "is " : "is not "); string hasString = (positive ? "has " : "does not have "); switch (noun) { case Noun.Potion: case Noun.MemoryLoss: return("caused our memory loss"); case Noun.ExWife: return(isString + "the victim's " + bold("ex-wife")); case Noun.Daughter: return(isString + "the victim's " + bold("daughter")); case Noun.Mistress: return(isString + "the victim's " + bold("mistress")); case Noun.OwesDebt: return((positive ? bold("owes") : "does not " + bold("owe")) + " the victim money"); case Noun.Inheritance: return((positive ? "will " : "will not ") + "receive an " + bold("inheritance") + " from the victim"); case Noun.HasGrudge: return((positive ? "held " : "did not hold ") + "a " + bold("grudge") + " against the victim"); case Noun.Abused: return((positive ? "was " : "was not ") + "" + bold("abused") + " by the victim"); case Noun.Redhead: case Noun.Brunette: case Noun.Blonde: return(isString + "a " + bold(noun.ToString().ToLower())); case Noun.Alice: case Noun.Brianna: case Noun.Catherine: return(isString + "named " + bold(noun.ToString())); case Noun.Killer: return(isString + "the " + bold("murderer")); case Noun.Artist: return(isString + "an " + bold(noun.ToString().ToLower())); case Noun.Scientist: case Noun.Writer: case Noun.Philanthropist: return(isString + "a " + bold(noun.ToString().ToLower())); case Noun.SuspectedName: return("was written in blood next to the victim's body"); default: // I dont think this is necessary return(isString + bold(noun.ToString())); } }
public void ConstructEvilMonologue() { monologue.text = "Ahah! <i>[Taunt them]</i>. You have discovered the true power of this device! I will use this <i>" + ConvertSpaces(adjective.ToString()) + "-powered " + ConvertSpaces(noun.ToString()) + "</i> to _______ <i>" + ConvertSpaces(target.ToString()) + "!</i> You thought <i>[embarrassing thing they did tonight]</i> would help, you thought <i>[silly thing they did tonight]</i> would lead to your salvation. But no, tonight, evil wins! And I, " + PuzzleManager.Instance.teamEvil.teamName + ", will make it so! <i>[Evil laugh]</i>"; }