public void Import(BinaryReader _in, int version) { m_ReputationCamps.Clear(); active = _in.ReadBoolean(); if (version < 7) { for (int i = 0; i < 2; i++) { ReputationCamp camp = new ReputationCamp(); m_ReputationCamps[i + 5] = camp; camp.reputationValue = _in.ReadInt32(); if (version < 6) { camp.belligerency = _in.ReadBoolean(); } else { camp.exValue = _in.ReadInt32(); } camp.ResetState(); } } else { int count = _in.ReadInt32(); for (int i = 0; i < count; ++i) { int playerID = _in.ReadInt32(); m_ReputationCamps[playerID] = new ReputationCamp(); m_ReputationCamps[playerID].reputationValue = _in.ReadInt32(); m_ReputationCamps[playerID].exValue = _in.ReadInt32(); m_ReputationCamps[playerID].ResetState(); } } }
void SetEXValueByForce(int forceID, int targetPlayerID, int value) { ReputationData data = GetReputationData(forceID); ReputationCamp camp = data.GetReputationCamp(targetPlayerID); camp.exValue = Mathf.Clamp(value, 0, ReputationLevelValue[ReputationLevelValue.Length - 1]); camp.ResetState(); }
void SetReputationValueByForce(int forceID, int targetPlayerID, int value) { ReputationData data = GetReputationData(forceID); ReputationCamp camp = data.GetReputationCamp(targetPlayerID); camp.reputationValue = Mathf.Clamp(value, 0, ReputationLevelValue[ReputationLevelValue.Length - 1]); camp.ResetState(); if (null != onReputationChange) { onReputationChange(forceID, targetPlayerID); } }
public ReputationCamp GetReputationCamp(int playerID) { ReputationCamp retCamp = null; if (m_ReputationCamps.ContainsKey(playerID)) { retCamp = m_ReputationCamps[playerID]; } else { retCamp = new ReputationCamp(); m_ReputationCamps[playerID] = retCamp; } return(retCamp); }
/// <summary> /// Modifies the reputation value. /// </summary> void ChangeReputationValueByForce(int forceID, int targetPlayerID, int addValue, bool changeOther = false) { ReputationData data = GetReputationData(forceID); ReputationCamp camp = data.GetReputationCamp(targetPlayerID); SetReputationValueByForce(forceID, targetPlayerID, addValue + camp.reputationValue); if (data.active && changeOther && PeGameMgr.IsStory) { int otherChangeValue = (int)(addValue * ((addValue > 0) ? ChangeValueProportion : (1f / ChangeValueProportion))); List <int> playerIDList = data.GetReputationCampIDs(); for (int i = 0; i < playerIDList.Count; i++) { if (playerIDList[i] != targetPlayerID) { ReputationCamp otherCamp = data.GetReputationCamp(playerIDList[i]); SetReputationValueByForce(forceID, playerIDList[i], otherChangeValue + otherCamp.reputationValue); } } } }