Ejemplo n.º 1
0
        public static float GetWaveHeight(this WaveOptions wave, WaveMode waveMode, Vector3 worldPos, float time)
        {
            Texture2D waveTexture = wave.Texture as Texture2D;

            if (waveTexture == null)
            {
                return(0);
            }

            float height = 0;

            switch (waveMode)
            {
            case WaveMode.Wave1:
                height += GetWaveHeight(wave, waveTexture, worldPos, 0, 1, 2, time);
                break;

            case WaveMode.Wave2:
                height += GetWaveHeight(wave, waveTexture, worldPos, 0, 1, 0, time);
                height += GetWaveHeight(wave, waveTexture, worldPos, 2, 3, 1, time);
                break;

            case WaveMode.Wave3:
                height += GetWaveHeight(wave, waveTexture, worldPos, 0, 0, time);
                height += GetWaveHeight(wave, waveTexture, worldPos, 1, 1, time);
                height += GetWaveHeight(wave, waveTexture, worldPos, 2, 2, time);
                break;
            }

            return(height);
        }
Ejemplo n.º 2
0
 private void OnWaveStateInit(WaveMode waveState)
 {
     if (this.waveState != waveState)
     {
         isInitialized = false;
     }
 }
Ejemplo n.º 3
0
 private void OnWaveStateInit(WaveMode waveState)
 {
     if (waveState == WaveMode.IN_PROGRESS)
     {
         DisplayWaveTitle(Util.waveManager.currWaveIndex);
     }
 }
Ejemplo n.º 4
0
        private void OnWaveStateInit(WaveMode waveState)
        {
            if (waveState != WaveMode.IN_PROGRESS)
            {
                return;
            }

            //var scale = Vector3.one;
            //LeanTween.scale(missionPanel.gameObject, scale * 1.2f, 0.2f).setLoopPingPong(1);
            string text = $"Wave <color=#{htmlColor}>{Util.waveManager.currWaveIndex + 1}/{Util.waveManager.waveSettings.waves.Length}</color>";

            missionText.text = text;
            SlideInPanel(text, 1.5f);
        }
Ejemplo n.º 5
0
        public override WaveMode OnUpdate(WaveMode waveState)
        {
            Init();

            var wave = waveManager.currWave;

            if (Time.time > wave.timeStarted + wave.startDelay)
            {
                //Debug.Log("Start in progress state");
                return(WaveMode.IN_PROGRESS);
            }
            else
            {
                return(waveState);
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Begins rendering the waveform pulses.
        /// Do not forget to set the pin direction/mode as an output pin.
        /// The wave is automatically prepared if it has not been prepared before.
        /// </summary>
        /// <param name="mode">The mode.</param>
        public void Send(WaveMode mode)
        {
            if (IsDisposed)
            {
                throw new ObjectDisposedException(DisposedErrorMessage);
            }
            if (IsPrepared == false)
            {
                Prepare();
            }

            if (IsPrepared)
            {
                BoardException.ValidateResult(Waves.GpioWaveTxSend(Convert.ToUInt32(WaveId), mode));
            }
        }
Ejemplo n.º 7
0
    private void Start()
    {
        this.enemyParent = GameObject.Find("Enemy").transform;
        this.waveNum     = 1;
        this.countdown   = normalWaitTime;
        this.isLast      = false;
        UpdateWaveText();

        if (GameManager.instance.GameMode == GameManager.Mode.Timed)
        {
            startWave = new WaveMode(TimedWave);
        }
        else
        {
            startWave = new WaveMode(NormalWave);
        }
    }
Ejemplo n.º 8
0
        public override WaveMode OnUpdate(WaveMode waveState)
        {
            Init();
            var wave = waveManager.currWave;

            if (Time.time > wave.lastSpawn + wave.spawnInterval || wave.numSpawns == 0)
            {
                waveManager.SpawnEnemy(wave.minMaxSpeed, wave.enemyType);
                wave.lastSpawn = Time.time;
                wave.numSpawns++;
            }

            if ((wave.numSpawns >= wave.numEnemiesPerWave && !wave.isEndless))
            {
                waveState = WaveMode.ENDED;
            }
            return(waveState);
        }
Ejemplo n.º 9
0
        private void Update()
        {
            if (!GameManager.Instance.gameStates.IsGameState())
            {
                return;
            }

            if (!wavesInitialized)
            {
                return;
            }

            if (wavesHaveCompleted)
            {
                return;
            }

            waveMode = waveStateMap[waveMode].OnUpdate(waveMode);
        }
Ejemplo n.º 10
0
        public override WaveMode OnUpdate(WaveMode waveState)
        {
            Init();
            var wave = waveManager.currWave;

            if (waveManager.currWaveIndex < waveManager.waveSettings.waves.Length - 1)
            {
                ++waveManager.currWaveIndex;
                waveState = WaveMode.NOT_STARTED;
                //waveManager.waveSettings.waves[waveManager.currWave].state = WaveMode.NOT_STARTED;
                //Debug.Log("new wave: " + waveManager.currWave);
            }
            else
            {
                waveManager.wavesHaveCompleted = true;
                EventManager.Game.onWavesCompleted?.Invoke();
            }

            return(waveState);
        }
Ejemplo n.º 11
0
        public static bool Wave(ref Bitmap bmp, WaveMode wm, double factor,
                                                                double frequency)
        {
            if (bmp.PixelFormat != PixelFormat.Format24bppRgb)
                return false;

            int w = bmp.Width;
            int h = bmp.Height;

            int mg = 1; // margin for interpolations

            double f = factor;
            double c = frequency;
            double deg = Math.PI / 180d;

            RectangleF rct = new RectangleF(0, 0, w - 1, h - 1);

            Bitmap tmp = new Bitmap(w + mg * 2, h + mg * 2, bmp.PixelFormat);

            Graphics g = Graphics.FromImage(tmp);
            g.Clear(Color.Gray);
            g.DrawImageUnscaled(bmp, mg, mg);
            g.Dispose();

            double xx, yy;

            BmpProc24 src = new BmpProc24(tmp);
            BmpProc24 dst = new BmpProc24(bmp);

            for (int y = 0; y < h; y++)
                for (int x = 0; x < w; x++)
                {
                    xx = x;
                    yy = y;

                    switch (wm)
                    {
                        case WaveMode.wmHorizontal:
                            yy = y + f * Math.Sin(c * deg * x);
                            break;

                        case WaveMode.wmVertical:
                            xx = x + f * Math.Sin(c * deg * y);
                            break;

                        case WaveMode.wmBoth:
                            xx = x + f * Math.Sin(c * deg * y);
                            yy = y + f * Math.Sin(c * deg * x);
                            break;
                    }

                    if (rct.Contains(new PointF((float)xx, (float)yy)))
                    {
                        xx = xx + mg;
                        yy = yy + mg;

                        intBilinear(dst, src, x, y, xx, yy);
                    }
                    else
                    {
                        if (xx < 0) xx = 0;
                        if (xx > w - 1) xx = w - 1;
                        if (yy < 0) yy = 0;
                        if (yy > h - 1) yy = h - 1;

                        xx = xx + mg;
                        yy = yy + mg;

                        intBilinear(dst, src, x, y, xx, yy);
                    }

                }

            CallDispose(dst, src, tmp);

            return true;
        }
Ejemplo n.º 12
0
 public void SetMode(WaveMode mode)
 {
     this.Mode = mode;
 }
Ejemplo n.º 13
0
        protected override JobHandle OnUpdate(JobHandle inputDeps)
        {
            switch (GameObj.baseData.mode)
            {
            case 1:
                waveMode = new WaveMode
                {
                    baseData      = GameObj.baseData,
                    transformData = GameObj.transformData,
                    freq          = GameObj.freq,
                    magn          = GameObj.magn,
                    time          = GameObj.time,
                    scalej        = GameObj.transformData.size,
                    vector        = float3.zero,
                };
                jobHandle = waveMode.Schedule(this, inputDeps);
                break;

            case 2:
                rippleMode = new RippleMode
                {
                    baseData      = GameObj.baseData,
                    transformData = GameObj.transformData,
                    freq          = GameObj.freq,
                    magn          = GameObj.magn,
                    time          = GameObj.time,
                    scalej        = GameObj.transformData.size,
                    vector        = float3.zero
                };
                jobHandle = rippleMode.Schedule(this, inputDeps);
                break;

            case 3:
                cylinderMode = new CylinderMode
                {
                    baseData      = GameObj.baseData,
                    transformData = GameObj.transformData,
                    freq          = GameObj.freq,
                    magn          = GameObj.magn,
                    time          = GameObj.time,
                    scalej        = GameObj.transformData.size,
                    vector        = float3.zero
                };
                jobHandle = cylinderMode.Schedule(this, inputDeps);
                break;

            case 4:
                sphereMode = new SphereMode
                {
                    baseData      = GameObj.baseData,
                    transformData = GameObj.transformData,
                    freq          = GameObj.freq,
                    magn          = GameObj.magn,
                    time          = GameObj.time,
                    scalej        = GameObj.transformData.size,
                    vector        = float3.zero
                };
                jobHandle = sphereMode.Schedule(this, inputDeps);
                break;

            case 5:
                torusMode = new TorusMode
                {
                    baseData      = GameObj.baseData,
                    transformData = GameObj.transformData,
                    freq          = GameObj.freq,
                    magn          = GameObj.magn,
                    time          = GameObj.time,
                    scalej        = GameObj.transformData.size,
                    vector        = float3.zero
                };
                jobHandle = torusMode.Schedule(this, inputDeps);
                break;

            default:
                defaultMode = new DefaultMode
                {
                    scalej = 1f,
                    vector = float3.zero
                };
                jobHandle = defaultMode.Schedule(this, inputDeps);
                break;
            }
            return(jobHandle);
        }
Ejemplo n.º 14
0
 public void SetEndedState()
 {
     wavesInitialized = false;
     waveMode         = WaveMode.ENDED;
 }
Ejemplo n.º 15
0
 public static extern int GpioWaveTxSend(uint waveId, WaveMode waveMode);
Ejemplo n.º 16
0
 public void SetNotStartedState()
 {
     waveMode = WaveMode.NOT_STARTED;
 }
Ejemplo n.º 17
0
 public virtual WaveMode OnUpdate(WaveMode waveState)
 {
     return(waveState);
 }
Ejemplo n.º 18
0
 public override WaveMode OnUpdate(WaveMode waveState)
 {
     Init();
     waveManager.currWave.timeStarted = Time.time;
     return(WaveMode.DELAY);
 }