public void ChangeDispositionNew(DispositionGameData disposition, ChangeStrengthGameData strength) { if (!this.m_dispositions.ContainsKey(disposition)) { return; } int preChangeRank = this.GetRank(disposition); Guid strengthOverrideGuid = this._dispositionStrengthOverrides.First(x => x.Key == strength.ID).Value; ChangeStrengthGameData strengthOverride = Scripts.GetGameDataByGuid <ChangeStrengthGameData>(strengthOverrideGuid); Dictionary <DispositionGameData, int> dispositions; (dispositions = this.m_dispositions)[disposition] = dispositions[disposition] + strengthOverride.ChangeValue; int postChangeRank = this.GetRank(disposition); if (preChangeRank < 3 && postChangeRank >= 3 && SingletonBehavior <AchievementTracker> .Instance) { SingletonBehavior <AchievementTracker> .Instance.IncrementTrackedStat(TrackedAchievementStat.NumDispositionsAtLevel); } TutorialManager.STriggerTutorialsOfType(TutorialEventType.DispositionGain); }
public static void ReputationAddPointsNew(Guid factionGuid, Axis axis, Guid strengthGuid) { Guid strengthOverrideGuid = ReputationStrengthOverrides.First(x => x.Key == strengthGuid).Value; ChangeStrengthGameData strengthOverride = Scripts.GetGameDataByGuid <ChangeStrengthGameData>(strengthOverrideGuid); FactionGameData faction = Scripts.GetGameDataByGuid <FactionGameData>(factionGuid); Reputation reputation = SingletonBehavior <ReputationManager> .Instance.GetReputation(faction); if (reputation != null) { reputation.AddReputation(axis, strengthOverride); Debug.Log($"{faction} reputation changed on the {axis} axis ({strengthOverride})."); } else { Debug.LogError($"Faction {faction} is not set up!"); } }
public static void CompanionAddRelationshipNew(Guid sourceGuid, Guid targetGuid, Axis axis, Guid strengthGuid, bool onlyInParty) { Guid strengthOverrideGuid = CompanionStrengthOverrides.First(x => x.Key == strengthGuid).Value; ChangeStrengthGameData strengthOverride = Scripts.GetGameDataByGuid <ChangeStrengthGameData>(strengthOverrideGuid); sourceGuid = InstanceID.GetObjectID(sourceGuid); targetGuid = InstanceID.GetObjectID(targetGuid); Guid guid = GameState.PlayerCharacter.GetComponent <InstanceID>().Guid; if (onlyInParty && (!SingletonBehavior <PartyManager> .Instance.IsActivePartyMember(sourceGuid) || !SingletonBehavior <PartyManager> .Instance.IsActivePartyMember(targetGuid))) { return; } if (sourceGuid == SpecialCharacterInstanceID.PlayerGuid || sourceGuid == guid) { Debug.LogError("Cannot change the player's relationship towards a companion"); UIDebug.LogOnScreenWarning("Script is trying to use Player's guid as SourceGuid for CompanionAddRelationship", UIDebug.Department.Design, 10f); } else if (targetGuid == SpecialCharacterInstanceID.PlayerGuid || targetGuid == guid) { CompanionGameData sourceCompanion = CompanionManager.GetCompanionData(sourceGuid); SingletonBehavior <PartyManager> .Instance.AddPlayerRelationship(sourceCompanion, strengthOverride.ChangeValue, axis); } else { CompanionGameData sourceCompanion = CompanionManager.GetCompanionData(sourceGuid); CompanionGameData targetCompanion = CompanionManager.GetCompanionData(targetGuid); if (sourceCompanion == null || targetCompanion == null) { Debug.LogError($"Null companion data being used for guid: {((!(sourceCompanion == null)) ? targetGuid : sourceGuid)}"); } else { SingletonBehavior <PartyManager> .Instance.AddRelationship(sourceCompanion, targetCompanion, strengthOverride.ChangeValue, axis); } } }