void BroadcastValueChange(GameValueChangedComponent changedComponent, float baseDelta, float rangedDelta) { if (onValueChange != null) { onValueChange(this, changedComponent, baseDelta, rangedDelta); } }
void OnHighestLevelChange(GameValue valueChanged, GameValueChangedComponent changedComponent, float baseDelta, float rangedValueDelta) { int deltaPoints = (int)baseDelta; if (deltaPoints > 0) { rewardsV.AddToBaseValue(deltaPoints); } }
void OnPointsChange(GameValue valueChanged, GameValueChangedComponent changedComponent, float baseDelta, float rangedValueDelta) { int basePoints = (int)pointsV.baseValue; int newLevel = levelFormula.LevelReached(basePoints); if (levelV.baseValue != newLevel) { levelV.SetBaseValue(newLevel); } // update 0-1 til next level up (xp bar in ui) if (baseDelta > 0) { BroadcastPointsChange01(basePoints, (int)baseDelta, newLevel); } }
void OnLevelChange(GameValue valueChanged, GameValueChangedComponent changedComponent, float baseDelta, float rangedValueDelta) { int newLevel = (int)levelV.baseValue; // update xp in case we changed level value outside: if (levelFormula.LevelReached(pointsV.baseValue) != newLevel) { pointsV.SetBaseValue(levelFormula.PointsThreshold(newLevel)); } if (useRewards) { // prevent farming points if (newLevel > highestLevelV.baseValue) { highestLevelV.SetBaseValue(newLevel); } } }