Ejemplo n.º 1
0
    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;
                }
            }
        }
    }
Ejemplo n.º 2
0
    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);
        }
    }
Ejemplo n.º 3
0
    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);
    }
Ejemplo n.º 4
0
 public void SetEffectZoneType(EffectZoneType zoneType)
 {
     effectZoneType = zoneType;
 }