Example #1
0
        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);
        }
Example #2
0
        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);
                }
            }
        }