Пример #1
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);
            }
        }