Пример #1
0
        public override void Special_action(GameProcess gp)
        {
            Stamina -= Special_action_cost;
            if (gp.Levels[Lvl + 1].Modification == "")
            {
                if (gp.Levels[Lvl + 1].Persons.Count == 0) //если никого нет на уровне ниже
                {
                    gp.Levels[Lvl].Persons.Remove(this);   //удаляем с прошлого уровня
                    gp.Levels[Lvl + 1].Persons.Add(this);  //добавляем на новый уровень
                    Lvl++;
                }
                else//смена мест персонажей
                {
                    Charecter tmp = gp.Levels[Lvl + 1].Persons[0];
                    gp.Levels[Lvl + 1].Persons.Remove(tmp);
                    tmp.Lvl--;
                    gp.Levels[Lvl].Persons.Add(tmp);      //добавляем на новый уровень

                    gp.Levels[Lvl].Persons.Remove(this);  //удаляем с прошлого уровня
                    gp.Levels[Lvl + 1].Persons.Add(this); //добавляем на новый уровень
                    Lvl++;
                }
            }
            Stamina += 2;
        }
Пример #2
0
 public override void Special_action(GameProcess gp)
 {
     Stamina -= Special_action_cost;
     if (gp.Levels[Lvl + 1].Modification == "") //1 переход
     {
         gp.Levels[Lvl].Persons.Remove(this);   //удаляем с прошлого уровня
         gp.Levels[Lvl + 1].Persons.Add(this);  //добавляем на новый уровень
         Lvl++;
     }
     if (gp.Levels.Count > Lvl + 1)//2 переход
     {
         if (gp.Levels[Lvl + 1].Modification == "")
         {
             gp.Levels[Lvl].Persons.Remove(this);  //удаляем с прошлого уровня
             gp.Levels[Lvl + 1].Persons.Add(this); //добавляем на новый уровень
             Lvl++;
         }
     }
     if (gp.Levels.Count > Lvl + 1)//3 переход
     {
         if (gp.Levels[Lvl + 1].Modification == "")
         {
             gp.Levels[Lvl].Persons.Remove(this);  //удаляем с прошлого уровня
             gp.Levels[Lvl + 1].Persons.Add(this); //добавляем на новый уровень
             Lvl++;
         }
     }
     Stamina += 2;
 }
Пример #3
0
 public void Descent(GameProcess gp)
 {
     Stamina -= 5;                         //стоимость перехода
     gp.Levels[Lvl].Persons.Remove(this);  //удаляем с прошлого уровня
     gp.Levels[Lvl + 1].Persons.Add(this); //добавляем на новый уровень
     Lvl++;
     Stamina += 2;
 }
Пример #4
0
 public override void Special_action(GameProcess gp)
 {
     Stamina -= Special_action_cost;
     if (gp.Levels.Count > Lvl + 1)
     {
         gp.Levels[Lvl].Persons.Remove(this);  //удаляем с прошлого уровня
         gp.Levels[Lvl + 1].Persons.Add(this); //добавляем на новый уровень
         gp.Levels[Lvl + 1].Modification = "block";
         Lvl++;
         Block_Lvl = true;
     }
     Stamina += 2;
 }
Пример #5
0
 public void Fast_descent(GameProcess gp)
 {
     Stamina -= Fast_descent_cost;
     if (gp.Levels[Lvl + 1].Modification == "")
     {
         gp.Levels[Lvl].Persons.Remove(this);      //удаляем с прошлого уровня
         gp.Levels[Lvl + 1].Persons.Add(this);     //добавляем на новый уровень
         Lvl++;
         if (gp.Levels.Count > Lvl + 1)            //делаем второй переход
         {
             gp.Levels[Lvl].Persons.Remove(this);  //удаляем с прошлого уровня
             gp.Levels[Lvl + 1].Persons.Add(this); //добавляем на новый уровень
             Lvl++;
         }
     }
     Stamina += 2;
 }
Пример #6
0
        static void Main(string[] args)
        {
            GameLogic.GameProcess gp = new GameLogic.GameProcess();
            gp.Choice_person();                 //выбираем персонажей
            GameSave GS     = new GameSave(UserInterface.Сonsole_interaction.GetSaveNum());
            int      result = gp.StartGame(GS); //начинаем игру, и получаем в результате дальнейшее действие

            DatabaseOperations.SaveGame(GS);    //сохраняем нашу игру в бд


            if (result == 0)//воспроизвести игру из бд
            {
                GameLogic.SaveGameToConsole printgame = new GameLogic.SaveGameToConsole();
                printgame.PrintGame(DatabaseOperations.Get_GameSave(UserInterface.Сonsole_interaction.GetSaveExistNum()));
            }
            if (result == 1)//начать новую игру
            {
                GameLogic.GameProcess gp2 = new GameLogic.GameProcess();
                gp2.Choice_person();
                gp2.StartGame(new GameSave(UserInterface.Сonsole_interaction.GetSaveNum()));
            }
        }
Пример #7
0
        public virtual int Make_move(string action, GameProcess gp)
        {
            switch (action)
            {
            case "rest":
                Rest();
                return(0);


            case "descent":
                if ((Stamina < 5) || gp.Levels[Lvl].Modification != "")
                {
                    return(-1);
                }
                else
                {
                    if (gp.Levels.Count > Lvl + 1)
                    {
                        if (gp.Levels[Lvl + 1].Modification == "")
                        {
                            Descent(gp);
                            return(1);
                        }
                    }
                }
                break;

            case "fast_descent":
                if ((Stamina < Fast_descent_cost) || gp.Levels[Lvl].Modification != "")
                {
                    return(-1);
                }
                else
                {
                    if (gp.Levels.Count > Lvl + 1)
                    {
                        if (gp.Levels[Lvl + 1].Modification == "")
                        {
                            Fast_descent(gp);
                            return(2);
                        }
                    }
                }
                break;

            case "special_action":
                if ((Stamina < Special_action_cost) || gp.Levels[Lvl].Modification != "")
                {
                    return(-1);
                }
                else
                {
                    if (gp.Levels.Count > Lvl + 1)
                    {
                        Special_action(gp);
                        return(3);
                    }
                }
                break;
            }
            return(-1);
        }
Пример #8
0
 public virtual void Special_action(GameProcess gp)
 {
     //у каждого персонажа это действие индивидуально
 }
Пример #9
0
        public override int Make_move(string action, GameProcess gp)
        {
            if (Block_Lvl)//разблокировали ранее заблокированный уровень
            {
                gp.Levels[Lvl].Modification = "";
                Block_Lvl = false;
            }

            switch (action)
            {
            case "rest":
                Rest();
                return(0);


            case "descent":
                if ((Stamina < 5) || gp.Levels[Lvl].Modification != "")
                {
                    return(-1);
                }
                else
                {
                    if (gp.Levels.Count > Lvl + 1)
                    {
                        if (gp.Levels[Lvl + 1].Modification == "")
                        {
                            Descent(gp);
                            return(1);
                        }
                    }
                }
                break;

            case "fast_descent":
                if ((Stamina < Fast_descent_cost) || gp.Levels[Lvl].Modification != "")
                {
                    return(-1);
                }
                else
                {
                    if (gp.Levels.Count > Lvl + 1)
                    {
                        if (gp.Levels[Lvl + 1].Modification == "")
                        {
                            Fast_descent(gp);
                            return(2);
                        }
                    }
                }
                break;

            case "special_action":
                if ((Stamina < Special_action_cost) || gp.Levels[Lvl].Modification != "")
                {
                    return(-1);
                }
                else
                {
                    if (gp.Levels.Count > Lvl + 1)
                    {
                        Special_action(gp);
                        return(3);
                    }
                }
                break;
            }
            return(-1);
        }