Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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>();
        }