Exemplo n.º 1
0
    private IEnumerator DestroyEventAfter(GameEventV2 gameEvent)
    {
        yield return(new WaitForSeconds(gameEvent.DurationTime));

        RemoveModifier(gameEvent.Identifier);
        RemoveEventIconUI(gameEvent.Identifier);
        gameEventList.Remove(gameEvent);
        difficultyPointsLeft += gameEvent.DifficultyPoints;
    }
Exemplo n.º 2
0
 private void ApplyEventModifiersInPlayer(GameEventV2 gameEvent)
 {
     InsertModifier(new Modifier(gameEvent.Identifier, new List <AttributeModifier>()
     {
         new AttributeModifier(AttributeEnum.STRUCTURE, gameEvent.StructureModifier),
         new AttributeModifier(AttributeEnum.ENERGY, gameEvent.EnergyModifier),
         new AttributeModifier(AttributeEnum.WATER, gameEvent.WaterModifier)
     }));
 }
Exemplo n.º 3
0
    private void AddEventIconUI(GameEventV2 gameEvent)
    {
        if (!string.IsNullOrEmpty(gameEvent.IconPathLeft))
        {
            GameObject iconLeft = Instantiate(eventIcon, climateEventsContainer.transform);
            iconLeft.GetComponent <Image>().sprite = Resources.Load <Sprite>(gameEvent.IconPathLeft);
            iconLeft.name = gameEvent.Identifier;
            iconLeft.GetComponent <EventIcon>().SetEventIconText(gameEvent.Identifier, string.Format("{0:0.0}", gameEvent.WaterModifier), string.Format("{0:0.0}", gameEvent.StructureModifier), string.Format("{0:0.0}", gameEvent.EnergyModifier));
        }
        GameObject icon = Instantiate(eventIcon, gameEventsContainer.transform);

        icon.GetComponent <Image>().sprite = Resources.Load <Sprite>(gameEvent.IconPath);
        icon.name = gameEvent.Identifier;
        icon.GetComponent <EventIcon>().SetEventIconText(gameEvent.Identifier, string.Format("{0:0.0}", gameEvent.WaterModifier), string.Format("{0:0.0}", gameEvent.StructureModifier), string.Format("{0:0.0}", gameEvent.EnergyModifier));
    }
Exemplo n.º 4
0
    public void CreateGameEvent()
    {
        if (difficultyPointsLeft > 0)
        {
            Debug.Log("Começou a criar evento");
            //if (gameEventList.Any(x => x.Type == GameEventType.CLIMATE))
            //{
            //Não randomizar eventos de clima caso exista
            //Não fiz isso por enquanto pq sempre vai haver somente 1 evento de clima
            //}
            var gameEvent = new GameEventV2().RandomizeGameEventByDifficultyPoints(difficultyPointsLeft);
            gameEventList.Add(gameEvent);
            difficultyPointsLeft -= gameEvent.DifficultyPoints;

            UpdatePlayerAttributesByEvent(gameEvent);

            AddEventIconUI(gameEvent);

            StartCoroutine(DestroyEventAfter(gameEvent));
        }
    }
Exemplo n.º 5
0
 private void ApplyInstantDamageEventsInPlayer(GameEventV2 gameEvent)
 {
     playerAttributes.structure.DecrementValue(gameEvent.StructureDamage);
     playerAttributes.energy.DecrementValue(gameEvent.EnergyDamage);
     playerAttributes.water.DecrementValue(gameEvent.WaterDamage);
 }
Exemplo n.º 6
0
 private void ApplyInstantBonusEventsInPlayer(GameEventV2 gameEvent)
 {
     playerAttributes.structure.IncrementValue(gameEvent.StructureBonus);
     playerAttributes.energy.IncrementValue(gameEvent.EnergyBonus);
     playerAttributes.water.IncrementValue(gameEvent.WaterBonus);
 }
Exemplo n.º 7
0
 private void UpdatePlayerAttributesByEvent(GameEventV2 gameEvent)
 {
     ApplyInstantBonusEventsInPlayer(gameEvent);
     ApplyInstantDamageEventsInPlayer(gameEvent);
     ApplyEventModifiersInPlayer(gameEvent);
 }