Example #1
0
        public void Update()
        {
            for (int i = DelayedFXPieces.LastIndex(); i >= 0; i--)
            {
                FXPiece piece = DelayedFXPieces [i];
                if (WorldClock.AdjustedRealTime > (piece.TimeAdded + piece.Delay))
                {
                    //Debug.Log ("piece was ready to be spawned at " + WorldClock.AdjustedRealTime.ToString ());
                    DelayedFXPieces.RemoveAt(i);
                    if (piece.Explosion)
                    {
                        if (piece.JustForShow)
                        {
                            SpawnExplosionFX(piece.FXName, piece.FXParent, piece.Position);
                        }
                        else
                        {
                            DefaultExplosionDamage.Point  = piece.Position;
                            DefaultExplosionDamage.Origin = piece.Position;
                            SpawnExplosion(piece.FXName, piece.FXParent.position + piece.Position, piece.Scale, DefaultExplosionForceAtEdge, DefaultExplosionMinimumForce, DefaultExplosionRTDuration, DefaultExplosionDamage);
                        }
                    }
                    else
                    {
                        SpawnFX(piece.FXParent.gameObject, piece.FXName, piece.Position);
                    }

                    if (!string.IsNullOrEmpty(piece.SoundName))
                    {
                        SoundOrigin.position = piece.FXParent.position + piece.Position;
                        MasterAudio.PlaySound(piece.SoundType, SoundOrigin, piece.SoundName);
                    }
                }
            }
        }
Example #2
0
        public void SpawnFX(Transform parentObject, string fxName, float delay)
        {
            FXPiece fxPiece = new FXPiece();

            fxPiece.FXName    = fxName;
            fxPiece.Delay     = delay;
            fxPiece.FXParent  = parentObject;
            fxPiece.Position  = Vector3.zero;
            fxPiece.TimeAdded = WorldClock.AdjustedRealTime;
            DelayedFXPieces.Add(fxPiece);
        }
Example #3
0
        public void Initialize(FXPiece piece)
        {
            FXName      = piece.FXName;
            SoundName   = piece.SoundName;
            SoundType   = piece.SoundType;
            FXDelay     = piece.Delay;
            FXDuration  = piece.Duration;
            FXColor     = piece.FXColor;
            Explosion   = piece.Explosion;
            JustForShow = piece.JustForShow;

            transform.localPosition = piece.Position;
            transform.localRotation = Quaternion.Euler(piece.Rotation);
            transform.localScale    = Vector3.one * piece.Scale;
        }
Example #4
0
 public void SpawnFX(Transform parentObject, FXPiece piece)
 {
     piece.TimeAdded = WorldClock.AdjustedRealTime;
     piece.FXParent  = parentObject;
     DelayedFXPieces.Add(piece);
 }