Beispiel #1
0
    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);
        }
    }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
    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();
        }
    }