private IEnumerator DestroyEventAfter(GameEventV2 gameEvent) { yield return(new WaitForSeconds(gameEvent.DurationTime)); RemoveModifier(gameEvent.Identifier); RemoveEventIconUI(gameEvent.Identifier); gameEventList.Remove(gameEvent); difficultyPointsLeft += gameEvent.DifficultyPoints; }
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) })); }
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)); }
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)); } }
private void ApplyInstantDamageEventsInPlayer(GameEventV2 gameEvent) { playerAttributes.structure.DecrementValue(gameEvent.StructureDamage); playerAttributes.energy.DecrementValue(gameEvent.EnergyDamage); playerAttributes.water.DecrementValue(gameEvent.WaterDamage); }
private void ApplyInstantBonusEventsInPlayer(GameEventV2 gameEvent) { playerAttributes.structure.IncrementValue(gameEvent.StructureBonus); playerAttributes.energy.IncrementValue(gameEvent.EnergyBonus); playerAttributes.water.IncrementValue(gameEvent.WaterBonus); }
private void UpdatePlayerAttributesByEvent(GameEventV2 gameEvent) { ApplyInstantBonusEventsInPlayer(gameEvent); ApplyInstantDamageEventsInPlayer(gameEvent); ApplyEventModifiersInPlayer(gameEvent); }