public void Update(int filterIndex, Selection selection, float deltaTime) { switch (filterIndex) { case 0: isNewFrame = selection.First().GetComp <C_FrameIndex>().newFrame; break; case 1: if (!isNewFrame) { return; } Entity e = selection.First(); C_LevelData data = e.GetComp <C_LevelData>(); C_PlayerProperties player = e.GetComp <C_PlayerProperties>(); C_MonsterGenerator m = e.GetComp <C_MonsterGenerator>(); Rect rect = new Rect(50, 100, 400, 100); string text = $"wave:{m.currentWave} coins:{player.coins} hp:{player.hpRest}/{player.hpMax}"; guiActions.Clear(); guiActions.Add(() => { GUI.Label(rect, text, new GUIStyle(GUI.skin.label) { fontSize = 20 }); }); break; } }
public void Update(int filterIndex, Selection selection, float deltaTime) { foreach (var s in selection) { } Entity e = selection.First(); C_MonsterGenerator c = e.GetComp <C_MonsterGenerator>(); if (c.current == null) { return; } if (c.timeForNextWave > 0) { c.timeForNextWave -= deltaTime; if (c.timeForNextWave > 0) { return; } } if (c.timeForNextWave < 0) { float fixTime = -c.timeForNextWave; c.timeForNextWave = 0; c.timer = fixTime; return; } c.timer += deltaTime; while (c.timer > c.current.interval) { c.timer -= c.current.interval; MonsterEntry mm = CfgProxy.Instance.Get <MonsterEntry>(c.current.monsterID); Entity monster = context.CreateMonster(mm); c.counter++; if (c.counter == c.current.count) { if (c.currentWave < c.monsterSequences.Count - 1) { c.currentWave++; c.current = c.monsterSequences[c.currentWave]; c.ResetCounter(); } else { c.current = null; } break; } } }