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); }
private void OnWaveStateInit(WaveMode waveState) { if (this.waveState != waveState) { isInitialized = false; } }
private void OnWaveStateInit(WaveMode waveState) { if (waveState == WaveMode.IN_PROGRESS) { DisplayWaveTitle(Util.waveManager.currWaveIndex); } }
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); }
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); } }
/// <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)); } }
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); } }
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); }
private void Update() { if (!GameManager.Instance.gameStates.IsGameState()) { return; } if (!wavesInitialized) { return; } if (wavesHaveCompleted) { return; } waveMode = waveStateMap[waveMode].OnUpdate(waveMode); }
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); }
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; }
public void SetMode(WaveMode mode) { this.Mode = mode; }
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); }
public void SetEndedState() { wavesInitialized = false; waveMode = WaveMode.ENDED; }
public static extern int GpioWaveTxSend(uint waveId, WaveMode waveMode);
public void SetNotStartedState() { waveMode = WaveMode.NOT_STARTED; }
public virtual WaveMode OnUpdate(WaveMode waveState) { return(waveState); }
public override WaveMode OnUpdate(WaveMode waveState) { Init(); waveManager.currWave.timeStarted = Time.time; return(WaveMode.DELAY); }