public void SetUpModifiers() { if (modifiersSetUp) { return; } modifiersSetUp = true; numberOfStunedTurns = 0; effectZoneToInstantiateOnHit = EffectZoneType.None; destroyOnHit = false; foreach (DiscModifier modifier in discModifiers) { if (numberOfStunedTurns == 0) { DiscModifierStun stunModifier = modifier as DiscModifierStun; if (stunModifier != null) { numberOfStunedTurns = stunModifier.GetNumberOfStunedTurns; } } if (effectZoneToInstantiateOnHit == EffectZoneType.None) { DiscModifierEffectZone effectZoneModifier = modifier as DiscModifierEffectZone; if (effectZoneModifier != null) { effectZoneToInstantiateOnHit = effectZoneModifier.GetEffectZoneToCreateOnHit; destroyOnHit = effectZoneModifier.GetDiscProjectileOnHit; } } } }
public void ReturnEffectZoneInPool(EffectZone effectZone) { EffectZoneType effectZoneType = effectZone.GetEffectZoneType; effectZone.gameObject.SetActive(false); if (allEffectZonePools.ContainsKey(effectZoneType)) { allEffectZonePools[effectZoneType].Enqueue(effectZone); } else { Destroy(effectZone.gameObject); } }
public EffectZone GetEffectZoneFromPool(EffectZoneType effectZoneType) { if (allEffectZonePools.ContainsKey(effectZoneType)) { EffectZone newEffectZone = null; if (allEffectZonePools[effectZoneType].Count > 0) { newEffectZone = allEffectZonePools[effectZoneType].Dequeue(); newEffectZone.gameObject.SetActive(true); } else { newEffectZone = Instantiate(effectZoneTypeToPrefab[effectZoneType], effectZoneTypeToPoolParent[effectZoneType]); newEffectZone.gameObject.SetActive(true); } return(newEffectZone); } return(null); }
public void SetEffectZoneType(EffectZoneType zoneType) { effectZoneType = zoneType; }