示例#1
0
 public void ChangeRelationship(string characterName, feelingsAboutChar feeling)
 {
     if (Relationships.ContainsKey(characterName))
     {
         Relationships[characterName] = feeling;
     }
 }
示例#2
0
        /// <summary>
        /// The instigating character insults the receiving character, lowering trust/like of the receiver for the instigator.
        /// </summary>
        public static GameState InsultCharacter(GameState state, Character instigator, Character receiver, Item item)
        {
            GameState newState = state.Clone();
            var       jerk     = newState.GetCharacter(instigator.Name);
            var       insultee = newState.GetCharacter(receiver.Name);

            if (jerk != null && insultee != null)
            {
                // HACK (kasiu): SOMEONE THINK OF A BETTER INSULT TO PUT HERE.
                newState.AddLine(jerk.Name, new DialogueLine(jerk.Name, "You know " + insultee.Name + ", you're an asshole."));
                newState.AddLine(insultee.Name, new DialogueLine(insultee.Name, "What? You try saying that again!"));
                var oldFeelings = insultee.GetRelationship(jerk.Name);
                var newFeelings = new feelingsAboutChar();
                // Lowers trust and like by -1
                newFeelings.Trust = Math.Max(oldFeelings.Trust - 1, -2);
                newFeelings.Like  = Math.Max(oldFeelings.Like - 1, -2);
                insultee.ChangeRelationship(jerk.Name, newFeelings);
            }

            return(newState);
        }
示例#3
0
        /// <summary>
        /// The instigating character insults the receiving character, lowering trust/like of the receiver for the instigator.
        /// </summary>
        public static GameState InsultCharacter(GameState state, Character instigator, Character receiver, Item item) {
            GameState newState = state.Clone();
            var jerk = newState.GetCharacter(instigator.Name);
            var insultee = newState.GetCharacter(receiver.Name);

            if (jerk != null && insultee != null) {
                // HACK (kasiu): SOMEONE THINK OF A BETTER INSULT TO PUT HERE.
                newState.AddLine(jerk.Name, new DialogueLine(jerk.Name, "You know " + insultee.Name + ", you're an asshole."));
                newState.AddLine(insultee.Name, new DialogueLine(insultee.Name, "What? You try saying that again!"));
                var oldFeelings = insultee.GetRelationship(jerk.Name);
                var newFeelings = new feelingsAboutChar();
                // Lowers trust and like by -1
                newFeelings.Trust = Math.Max(oldFeelings.Trust - 1, -2);
                newFeelings.Like = Math.Max(oldFeelings.Like - 1, -2);
                insultee.ChangeRelationship(jerk.Name, newFeelings);
            }

            return newState;
        }
示例#4
0
 //RELATIONSHIP STUFF
 public void AddRelationship(string characterName, feelingsAboutChar feeling)
 {
     Relationships.Add(characterName, feeling);
 }
示例#5
0
    public void ChangeRelationship(string characterName, feelingsAboutChar feeling){
      if (Relationships.ContainsKey (characterName)) {
	Relationships[characterName] = feeling;				
      }
    }
示例#6
0
 //RELATIONSHIP STUFF
 public void AddRelationship(string characterName, feelingsAboutChar feeling){
   Relationships.Add (characterName, feeling);
 }