private void ApplyPartyPenalty(Penalty partyPenalty) { if (_travelMessenger == null) { _travelMessenger = FindObjectOfType <TravelMessenger>(); } var penaltiesText = new List <TravelMessenger.PartyMessageDto>(); if (partyPenalty.PartyLosses != null && partyPenalty.PartyLosses.Count > 0) { foreach (var partyLoss in partyPenalty.PartyLosses) { var lossType = partyLoss.Key; switch (lossType) { case PartySupplyTypes.Food: Party.Food -= partyLoss.Value; break; case PartySupplyTypes.HealthPotions: Party.HealthPotions -= partyLoss.Value; break; case PartySupplyTypes.Gold: Party.Gold -= partyLoss.Value; break; default: Debug.Log($"Invalid loss type! {lossType}"); break; } var partyDto = new TravelMessenger.PartyMessageDto { Message = BuildPartyLossTextItem(partyLoss.Value, lossType), TextColor = _travelMessenger.penaltyColor }; penaltiesText.Add(partyDto); } } _travelMessenger.QueuePartyMessages(penaltiesText); }
public void ApplyPartyReward(Reward partyReward) { if (_travelMessenger == null) { _travelMessenger = FindObjectOfType <TravelMessenger>(); } var rewardsText = new List <TravelMessenger.PartyMessageDto>(); if (partyReward.PartyGains != null && partyReward.PartyGains.Count > 0) { foreach (var partyGain in partyReward.PartyGains) { var gainType = (PartySupplyTypes)partyGain.Key; switch (gainType) { case PartySupplyTypes.Food: Party.Food += partyGain.Value; break; case PartySupplyTypes.HealthPotions: Party.HealthPotions += partyGain.Value; break; case PartySupplyTypes.Gold: Party.Gold += partyGain.Value; break; default: Debug.Log($"Invalid gain type! {gainType}"); break; } var partyDto = new TravelMessenger.PartyMessageDto { Message = BuildPartyRewardTextItem(partyGain.Value, gainType), TextColor = _travelMessenger.rewardColor }; rewardsText.Add(partyDto); } } _travelMessenger.QueuePartyMessages(rewardsText); }
private void Awake() { var eventMediator = FindObjectOfType <EventMediator>(); if (!SceneManager.GetActiveScene().name.Equals(GlobalHelper.CombatScene)) { eventMediator.SubscribeToEvent(GlobalHelper.CampingEncounterFinished, this); } eventMediator.SubscribeToEvent(GlobalHelper.EntityDead, this); BuildBiomeQueue(); CurrentDayOfTravel = 1; ResetTravelDays(); ResetDaysTilNextBiome(); _musicController = FindObjectOfType <MusicController>(); _travelMessenger = FindObjectOfType <TravelMessenger>(); }