public void OnEventComplete(RandomEventConclusion conclusion) { for (int i = 0; i < conclusion.RewardTypes.Length; i++) { RandomEventController.Resources type = conclusion.RewardTypes[i]; switch (type) { case RandomEventController.Resources.Energy: AddEnergy((float)conclusion.RewardValues[i]); break; case RandomEventController.Resources.Sanity: AddSanity((float)conclusion.RewardValues[i]); break; case RandomEventController.Resources.Spirits: for (int j = 0; j < conclusion.RewardValues[i]; j++) { AddSpirit(); } break; default: break; } } }
private void ConcludeEvent(RandomEventConclusion[] eventResults, float[] eventResultChances) { float rnd = Random.Range(0.0f, 1.0f); RandomEventConclusion result = null; for (int i = 0; i < eventResults.Length; i++) { if (rnd < eventResultChances[i]) { result = eventResults[i]; break; } rnd -= eventResultChances[i]; } if (result == null) { Debug.LogError(string.Format("Incorrect rewards setup for {0}", _currentEvent.TitleText)); return; } PlayerRef.OnEventComplete(result); UIManagerRef.SetupEventConclusion(result); UIManagerRef.SetShowEventPopup(false); UIManagerRef.SetShowEventConclusionPopup(true); }
public void SetupEventConclusion(RandomEventConclusion randEventConclusion) { EventConclusionTitle.text = randEventConclusion.Title; EventConclusionMessage.text = randEventConclusion.ResultText; EventConclusionReward.text = randEventConclusion.RewardText; }