public static void Tick(World model, WorldView view) { while (model.events.Count > 0) { BaseEvent e = model.events.Dequeue(); e.Execute(model, view); } if (model.player != null) { if (view.playerView == null) { view.playerView = CreatePlayerView(model.player); } view.playerView.transform.position = model.player.pos.Vector3(); view.playerView.transform.forward = Vector3.Lerp(view.playerView.transform.forward, model.player.dir.Vector3(), Time.deltaTime * Config.VIEW_LERP); } foreach (BulletView bulletView in view.bulletViews.Values) { Bullet bullet = model.bullets[bulletView.id]; bulletView.transform.position = Vector3.Lerp(bulletView.transform.position, (bullet.pos + bullet.dir * bullet.speed).Vector3(), Time.deltaTime * Config.VIEW_LERP * 2.5f); bulletView.transform.forward = Vector3.Lerp(bulletView.transform.forward, bullet.dir.Vector3(), Time.deltaTime * Config.VIEW_LERP); } foreach (BanditView banditView in view.banditViews.Values) { Bandit bandit = model.bandits[banditView.id]; banditView.transform.position = Vector3.Lerp(banditView.transform.position, bandit.pos.Vector3(), Time.deltaTime * Config.VIEW_LERP * 0.5f); banditView.transform.forward = Vector3.Lerp(banditView.transform.forward, bandit.dir.Vector3(), Time.deltaTime * Config.VIEW_LERP); } }
public ExecutionResult ExecuteEvent(int Id) { Chapter scene = chapters[iteration]; BaseEvent baseEvent = scene.SelectEvent(Id); ExecutionResult result = new ExecutionResult(); if (baseEvent == null) { return(null); } if (baseEvent.IsExecutable(TimeManager.CurrentStep, p)) { bool executed = baseEvent.Execute(p, TimeManager.CurrentStep); if (executed) { result.Success(baseEvent.EventText); this.iteration++; TimeManager.NextPart(); } else { result.Continue(baseEvent.EventText); } ReasonsToDeath r = p.IsWantToLive(); if (r == ReasonsToDeath.None) { return(result); } string deathreason = ""; switch (r) { case ReasonsToDeath.NoHappy: deathreason = "Вашому герою дуже сумно, і ніхто не в змозі" + "втримати його від стрибка з криші. Добре," + "що це всього лиш гра!"; break; case ReasonsToDeath.NoPower: deathreason = "Ваш герой відчуває неймовірну втому. Очі ..." + "зачиняються... і так важко.... хапатися..." + "за світло..."; break; case ReasonsToDeath.NoMoney: deathreason = "Вашого героя забирають до шпиталю у зв'язку" + "з гострою язвою. Вартувало б трохи зберігти грошей" + "на їжу."; break; } result.Death(deathreason, baseEvent.EventText); return(result); } else { result.Fail(); return(result); } }
public static void Tick(View view, Model model) { if (model.events.Count > 0) { BaseEvent e = model.events.Dequeue(); e.Execute(model, view); } foreach (BoxView boxView in view.boxViews) { Box box = ModelService.GetBoxWithId(model, boxView.boxId); boxView.transform.position = Position.Lerp ( new Position(boxView.transform.position), box.position, Config.VIEW_DELAY ).ToVector(); } }