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; }
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; }
public void Descent(GameProcess gp) { Stamina -= 5; //стоимость перехода gp.Levels[Lvl].Persons.Remove(this); //удаляем с прошлого уровня gp.Levels[Lvl + 1].Persons.Add(this); //добавляем на новый уровень Lvl++; Stamina += 2; }
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; }
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; }
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())); } }
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); }
public virtual void Special_action(GameProcess gp) { //у каждого персонажа это действие индивидуально }
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); }