Esempio n. 1
0
        public DustEffectBehaviour GetEffectByTag(Transform target, Vector2 uv)
        {
            if ((QualitySettings.GetQualityLevel() <= this.QualityForLowDust) || !target)
            {
                return(this.LowGraphicDust);
            }
            int  num2 = 0;
            bool flag = this._effects.ContainsKey(target);

            while (true)
            {
                DustEffectBehaviour behaviour;
                if (!flag && (this.ParentDeep > num2))
                {
                    target = target.parent;
                    if (target)
                    {
                        flag = this._effects.ContainsKey(target);
                        continue;
                    }
                }
                if (!flag)
                {
                    return(this.DefaultDust);
                }
                int           num3    = 0;
                TargetEffects effects = this._effects[target];
                using (List <Texture2D> .Enumerator enumerator = effects.Textures.GetEnumerator())
                {
                    while (true)
                    {
                        if (enumerator.MoveNext())
                        {
                            Texture2D current = enumerator.Current;
                            if (!current)
                            {
                                behaviour = effects.DustEffects[num3];
                            }
                            else
                            {
                                float   grayscale = current.GetPixelBilinear(uv.x, uv.y).grayscale;
                                Vector2 vector    = effects.GrayscaleRanges[num3];
                                if ((grayscale < vector.x) || (grayscale > vector.y))
                                {
                                    num3++;
                                    continue;
                                }
                                behaviour = effects.DustEffects[num3];
                            }
                        }
                        else
                        {
                            break;
                        }
                        break;
                    }
                }
                return(behaviour);
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Removes an effect to the corresponding list for caster or target
 /// </summary>
 /// <param name="effect"></param>
 /// <param name="casterEffect"></param>
 public void RemoveEffect(Effect e, bool casterEffect)
 {
     if (casterEffect)
     {
         CasterEffects.Remove(e);
     }
     else
     {
         TargetEffects.Remove(e);
     }
 }
Esempio n. 3
0
 /// <summary>
 /// Adds an effect to the corresponding list for caster or target
 /// </summary>
 /// <param name="effect"></param>
 /// <param name="casterEffect"></param>
 public void AddEffect(Effect e, bool casterEffect)
 {
     if (casterEffect)
     {
         CasterEffects.Add(e);
     }
     else
     {
         TargetEffects.Add(e);
     }
 }
Esempio n. 4
0
 private void Start()
 {
     if (this.DefaultDust == null)
     {
         foreach (DustEffectBehaviour behaviour in FindObjectsOfType <DustEffectBehaviour>())
         {
             if (behaviour.surface == DustEffectBehaviour.SurfaceType.Concrete)
             {
                 this.DefaultDust = behaviour;
                 break;
             }
             this.DefaultDust = behaviour;
         }
     }
     if (this.LowGraphicDust == null)
     {
         this.LowGraphicDust = this.DefaultDust;
     }
     this._effects.Clear();
     foreach (MapDustEffect effect in this.Targets)
     {
         Transform target = effect.Target;
         if (target)
         {
             TargetEffects      effects     = new TargetEffects();
             MaskToDustEffect[] dustEffects = effect.DustEffects;
             int index = 0;
             while (true)
             {
                 if (index >= dustEffects.Length)
                 {
                     this._effects.Add(target, effects);
                     break;
                 }
                 MaskToDustEffect effect2 = dustEffects[index];
                 effects.GrayscaleRanges.Add(effect2.GrayScaleRange);
                 effects.Textures.Add(effect2.Mask);
                 effects.DustEffects.Add(effect2.EffectBehaviour);
                 index++;
             }
         }
     }
 }