Пример #1
0
        public override void ExitState()
        {
            base.ExitState();

            ai?.Dispose();
            ai = null;
            buff?.RemoveAndDisposeCompanionBuff();
            buff = null;
            combatWithheldDialogue?.Clear();
            combatWithheldDialogue = null;
            seenDialogueForLocations?.Clear();
            seenDialogueForLocations = null;
            r = null;
            Patches.companion = null;

            ModEntry.modHelper.Events.GameLoop.UpdateTicked -= GameLoop_UpdateTicked;
            ModEntry.modHelper.Events.GameLoop.TimeChanged  -= GameLoop_TimeChanged;
            ModEntry.modHelper.Events.GameLoop.DayEnding    -= GameLoop_DayEnding;

            ModEntry.modHelper.Events.Player.Warped -= Player_Warped;

            ModEntry.modHelper.Events.Display.MenuChanged -= Display_MenuChanged;

            ModEntry.modHelper.Events.World.NpcListChanged -= World_NpcListChanged;
        }
Пример #2
0
        public override void EnterState()
        {
            base.EnterState();

            ai = new AI_StateMachine(this);
            combatWithheldDialogue = new Stack <Dialogue>();
            buff = CompanionBuff.InitializeBuffFromCompanionName(stateMachine.companion.Name, stateMachine.manager.farmer,
                                                                 stateMachine.manager);
            seenDialogueForLocations = new Dictionary <string, bool>();
            r = new Random((int)Game1.uniqueIDForThisGame + (int)Game1.stats.DaysPlayed + Game1.timeOfDay);
            Patches.companion = stateMachine.companion.Name;
            stateMachine.companion.faceTowardFarmerTimer = 0;
            stateMachine.companion.movementPause         = 0;

            stateMachine.companion.controller          = null;
            stateMachine.companion.temporaryController = null;

            ModEntry.modHelper.Events.GameLoop.UpdateTicked += GameLoop_UpdateTicked;
            ModEntry.modHelper.Events.GameLoop.TimeChanged  += GameLoop_TimeChanged;
            ModEntry.modHelper.Events.GameLoop.DayEnding    += GameLoop_DayEnding;

            ModEntry.modHelper.Events.Player.Warped += Player_Warped;

            ModEntry.modHelper.Events.Display.MenuChanged += Display_MenuChanged;

            ModEntry.modHelper.Events.World.NpcListChanged += World_NpcListChanged;;
        }
Пример #3
0
 public override void Init(Blackboard blackboard)
 {
     this.blackboard = blackboard;
     companion       = blackboard.GetValueFromKey <CompanionBuff>("companion");
 }
Пример #4
0
 public override void Init(Blackboard blackboard)
 {
     this.blackboard = blackboard;
     companion       = blackboard.GetValueFromKey <CompanionBuff>("companion");
     material        = companion.GetComponent <Renderer>().material;
 }