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); } } }