public Game(IMonsterFactory factory) { gamer = new Hero(); // герой, за которого играем //Список комнат в локации Room[] rooms = new Room[] { new Room(), new Room(), new Room() }; //Список сокровищ в локации Treasure[] treasures = new Treasure[] { new Treasure(), new Treasure(), new Treasure() }; IMonster[] monsters = new IMonster[50]; // Список монстров в локации for (int i = 0; i < monsters.Length; i++) { monsters[i] = factory.Create(); // задаем тип монстра } location = new Dangeon(monsters, rooms, treasures); // инициализация игровой локации }
public static Dangeon Generate() { var result = new Dangeon(); result.floors = Enumerable.Range(0, 10).Select(index => new DangeonFloor()).ToList(); //接続部の作成 for (int i = 0; i < 10; i++) { DangeonFloor floor = result.floors[i]; //前のフロアへの接続部 if (0 < i) { floor["Prev"] = result.floors[i - 1]; //適当に階段を生成 floor.Portal[new V3() { x = 1, y = 2, z = 3 }] = "Prev"; } //次のフロアへの接続部 if (i < 10) { floor["Next"] = result.floors[i + 1]; } } return(result); }