예제 #1
0
 public PersonalOpinionConversationNode(string text, string id, int feelingAdjust)
 {
     Text    = text;
     ID      = id;
     OnVisit = (GameObject speaker, GameObject listener) =>
     {
         UnityEngine.Debug.Log($"Adjusting {speaker.DebugName}'s personal opinion of {listener.DebugName} by {feelingAdjust}");
         DynamicPersonality personality = speaker.GetPart <DynamicPersonality>();
         personality.AdjustPersonalOpinion(listener, feelingAdjust);
     };
 }
        public Fyrefly_PersonalOpinion(DynamicPersonality p, GameObject target)
        {
            personality   = p;
            opinionHaver  = personality.ParentObject;
            opinionTarget = target;

            var rand = new System.Random();

            if (personality.minimumRandomOpinion <= personality.maximumRandomOpinion)
            {
                value = rand.Next(personality.minimumRandomOpinion, personality.maximumRandomOpinion);
            }
            ;
        }
예제 #3
0
 public static bool Prefix(TradeUI __instance, XRL.World.GameObject Trader)
 {
     Debug.Log("Running Trade Patch to check willingness!");
     if (Trader.HasPart("DynamicPersonality"))
     {
         DynamicPersonality personality = Trader.GetPart <DynamicPersonality>();
         if (personality.WillingToTrade)
         {
             Debug.Log("Is willing to trade!");
             return(true);
         }
         else
         {
             Debug.Log("Is NOT willing to trade!");
             Popup.ShowFail(Trader.The + Trader.ShortDisplayName + " does not like you well enough to trade.");
             return(false);
         }
     }
     else
     {
         Debug.LogError($"CheckTradeWillingnessPatch run on gameobject {Trader.DebugName} which has no DynamicPersonality part");
         return(true);
     }
 }