Contacts
Contacts are NPCs who give missions, respecs, tailoring, training, and similar dialog interactions.
Contact introductions
Contacts will sometimes introduce a player to other contacts. When an introduction is being made, the game will first attempt to pick valid contacts at the same stature level as the contact which is making the introduction. If it can find any contacts at the same stature level, it will pick only contacts from that stature level. If there are no valid contacts at the same stature level, it will pick contacts from any stature level.
A contact is valid for introduction if all of the following are true:
- They do not have the Deprecated or DontIntroduceMe flags set
- The player does not already know the contact
- They do not share a StatureSet with any other contact that the player already has
- The player's level must be no higher than MaxPlayerLevel of the contact - but if it is, and the contact would introduce another contact that would be acceptable, that one is substituted.
- If the contact has a badge requirement, the player must have the badge
- If the contact has an InteractionRequires rule, it must be satisfied
- If the contact is not the same stature level as the one making the introduction, then NextStatureSet rules are applied:
- Contacts may have the NextStatureSet and NextStatureSet2 fields set on them. For the first contact being introduced, NextStatureSet is used. If NextStatureSet2 is defined, this is used instead for all options after the first.
- The contact being introduced must have their StatureSet equal to the NextStatureSet field on the contact making the introduction.
- This means:
- If only NextStatureSet is defined, all contacts introduced must come from this set
- If both NextStatureSet and NextStatureSet2 are defined, the first contact must come from NextStatureSet and all other contacts must come from NextStatureSet2
- If only NextStatureSet2 is defined, the first contact can come from any stature set and all other contacts must come from NextStatureSet2
Up to four contacts will be introduced. They will be randomly selected from the set of available contacts which meet these criteria.
Contacts of the same stature level will be introduced when a story task gives NewContactReward. Otherwise, if the contact has the NoFriendIntroduction flag set, or the player's level is higher than MaxPlayerLevel, or the player is not on a flashback and their level is higher than FailsafePlayerLevel, they will never introduce contacts of the same level. Other than from story rewards, each contact will only introduce a same-level contact once, when a player has at least FriendCP contact points.
Contacts of other stature levels will never be introduced by a contact which has the NoCompleteIntroduction flag set, and will only introduce one other-level contact ever. Otherwise, a new other-level contact will be introduced if any of these happens:
- The player's level is higher than MaxPlayerLevel
- The player is not on a flashback and their level is higher than FailsafePlayerLevel
- If the player's level is at least CompletedPlayerLevel and they have earned at least CompleteCP contact points with this contact