mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Talk to five characters
This commit is contained in:
parent
16131fa6f4
commit
813cca1b33
19
NewHorizons/External/NewHorizonsData.cs
vendored
19
NewHorizons/External/NewHorizonsData.cs
vendored
@ -83,12 +83,14 @@ namespace NewHorizons.External
|
||||
KnownSignals = new List<string>();
|
||||
NewlyRevealedFactIDs = new List<string>();
|
||||
PopupsRead = new List<string>();
|
||||
CharactersTalkedTo = new List<string>();
|
||||
}
|
||||
|
||||
public List<string> KnownFrequencies { get; }
|
||||
public List<string> KnownSignals { get; }
|
||||
public List<string> NewlyRevealedFactIDs { get; }
|
||||
public List<string> PopupsRead { get; }
|
||||
public List<string> CharactersTalkedTo { get; }
|
||||
}
|
||||
|
||||
#region Frequencies
|
||||
@ -172,5 +174,22 @@ namespace NewHorizons.External
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Characters talked to
|
||||
|
||||
public static void OnTalkedToCharacter(string name)
|
||||
{
|
||||
if (name == CharacterDialogueTree.RECORDING_NAME || name == CharacterDialogueTree.SIGN_NAME) return;
|
||||
_activeProfile?.PopupsRead.SafeAdd(name);
|
||||
Save();
|
||||
}
|
||||
|
||||
public static bool HasTalkedToFiveCharacters()
|
||||
{
|
||||
if (_activeProfile == null) return false;
|
||||
return _activeProfile.CharactersTalkedTo.Count >= 5;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@ -1,3 +1,4 @@
|
||||
using NewHorizons.External;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@ -13,6 +14,13 @@ namespace NewHorizons.OtherMods.AchievementsPlus.NH
|
||||
public static void Init()
|
||||
{
|
||||
AchievementHandler.Register(UNIQUE_ID, false, Main.Instance);
|
||||
if (NewHorizonsData.HasTalkedToFiveCharacters()) Earn();
|
||||
}
|
||||
|
||||
public static void OnTalkedToCharacter(string name)
|
||||
{
|
||||
NewHorizonsData.OnTalkedToCharacter(name);
|
||||
if (NewHorizonsData.HasTalkedToFiveCharacters()) Earn();
|
||||
}
|
||||
|
||||
public static void Earn()
|
||||
|
||||
@ -38,5 +38,9 @@ namespace NewHorizons.Patches
|
||||
__instance.enabled = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
[HarmonyPostfix]
|
||||
[HarmonyPatch(typeof(CharacterDialogueTree), nameof(CharacterDialogueTree.StartConversation))]
|
||||
public static void CharacterDialogueTree_StartConversation(CharacterDialogueTree __instance) => TalkToFiveCharactersAchievement.OnTalkedToCharacter(__instance._characterName);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user