private static Data D6() { // めぐすり草を使う。ワープのワナが見える。 // TODO:ワープは必ずいまいる部屋とは別の部屋にワープする const string map = @" ....##....# ....##....# ....##....# ....##....# "; var stairsLoc = new Loc(2, 6); var playerLoc = new Loc(1, 3); var fobjs = new List <FieldObject>(); fobjs.Add(FieldObjectFactory.CreateTrapWarp(new Loc(0, 0))); var fitems = new List <FieldItem>(); // めぐすり草 fitems.Add(FieldItemFactory.CreateHerb(new Loc(1, 1), 4)); var enemies = new List <Enemy>(); return(new Data(map, stairsLoc, playerLoc, fobjs, fitems, enemies)); }
/* * private static Data D9() { * // ふきとばし。場所替え * const string map = @" * ..... * ..... * ..~.. * ..... * ..... * ..... + + ...... +++++...... + ...... + "; + + var stairsLoc = new Loc(4, 14); + var playerLoc = new Loc(1, 2); + + var fobjs = new List<FieldObject>(); + + var fitems = new List<FieldItem>(); + //fitems.Add(FieldItemFactory.CreateHerb(new Loc(5, 4), 4)); + + var enemies = new List<Enemy>(); + enemies.Add(EnemyFactory.CreateEnemy(new Loc(4, 2))); + + + return new Data(map, stairsLoc, playerLoc, fobjs, fitems, enemies); + } */ private static Data D9() { // TODO: 上下左右いずれの方向に進んでも全ての敵が回りにくるロジック // ふきとばし。場所替え // とびつきで const string map = @" ........ ........ ........ .~~~~~~. .~....~. .~....~. .~....~. .~~~~~~. ........ "; var stairsLoc = new Loc(5, 4); var playerLoc = new Loc(0, 3); var fobjs = new List <FieldObject>(); fobjs.Add(FieldObjectFactory.CreateNoticeBoard(new Loc(5, 3), "ゲームクリアです!! \n\n階段を降りると\n1Fに戻ります。")); var fitems = new List <FieldItem>(); fitems.Add(FieldItemFactory.CreateWand(new Loc(2, 3), 1)); fitems.Add(FieldItemFactory.CreateWand(new Loc(2, 4), 2)); var enemies = new List <Enemy>(); enemies.Add(EnemyFactory.CreateEnemy(new Loc(6, 5))); return(new Data(map, stairsLoc, playerLoc, fobjs, fitems, enemies)); }
private static Data D1() { const string map = @" ....... ....... ....... ....... ....... ....... "; var stairsLoc = new Loc(0, 3); var playerLoc = new Loc(2, 3); var fobjs = new List <FieldObject>(); fobjs.Add(FieldObjectFactory.CreateNoticeBoard(new Loc(0, 4), "落ちているアイテムやワナを駆使して\n階段を目指してください。\nフロアを移動すると、\n所持アイテムはなくなります。\n\n画面右上の「ギブアップ」ボタンを押すと\n現在のフロアをやり直します。")); // fobjs.Add(FieldObjectFactory.CreateTrapHeal(new Loc(2, 4))); var fitems = new List <FieldItem>(); // fitems.Add(FieldItemFactory.CreateWand(new Loc(2, 3), 3)); // fitems.Add(FieldItemFactory.CreateWand(new Loc(3, 2), 0)); // fitems.Add(FieldItemFactory.CreateWand(new Loc(3, 3), 1)); // fitems.Add(FieldItemFactory.CreateWand(new Loc(3, 4), 2)); fitems.Add(FieldItemFactory.CreateHerb(new Loc(2, 3), 0)); var enemies = new List <Enemy>(); return(new Data(map, stairsLoc, playerLoc, fobjs, fitems, enemies)); }
// ------ フロアデータ private static Data D1_0() { const string map = TestMap; var stairsLoc = new Loc(4, 3); var playerLoc = new Loc(5, 3); var fobjs = new List <FieldObject>(); fobjs.Add(FieldObjectFactory.CreateTrapHeal(new Loc(6, 6))); var fitems = new List <FieldItem>(); fitems.Add(FieldItemFactory.CreateMagic(new Loc(6, 3), 4)); // 水がれ fitems.Add(FieldItemFactory.CreateMagic(new Loc(12, 3), 4)); // 水がれ fitems.Add(FieldItemFactory.CreateHerb(new Loc(6, 4), 1)); // 睡眠草 fitems.Add(FieldItemFactory.CreateHerb(new Loc(6, 5), 4)); // 目薬草 var enemies = new List <Enemy>(); enemies.Add(EnemyFactory.CreateEnemy(new Loc(5, 5))); enemies.Last().AddStatus(StatusType.Sleep); return(new Data(map, stairsLoc, playerLoc, fobjs, fitems, enemies)); }
public static Floor CreateFloor(int floorNumber, Player player, MainSystem sys) { // プレイヤーの状態をリセット player.ClearItems(); player.UpdateHp(player.MaxHp); Data data = D1_0(); // Data data = GetData(floorNumber); char[,] mapData = CreateMap(data.Map); var map = new Map(mapData); foreach (var fitem in data.FieldItems) { sys.AddFieldItem(fitem); } foreach (var enemy in data.Enemies) { sys.AddEnemy(enemy); } FieldObjectFactory.CreateStairs(data.StairsLoc); // ミニマップ生成 Minimap minimap = new Minimap(mapData, data.FieldObjects, data.StairsLoc); var floor = new Floor(map, minimap, data.FieldObjects, data.StairsLoc); player.UpdateLoc(data.PlayerLoc); // TODO:プレイヤーの初期位置設定 player.ChangeDir(Dir.S); return(floor); }
private static Data D8() { // TODO: 上下左右いずれの方向に進んでも全ての敵が回りにくるロジック const string map = @" ......... ......... ..~...~.. ......... ... .........++++... ......... ... ..~...~.. ......... ......... "; var stairsLoc = new Loc(4, 14); var playerLoc = new Loc(4, 4); var fobjs = new List <FieldObject>(); // 地雷のワナ fobjs.Add(FieldObjectFactory.CreateTrapLandmine(new Loc(4, 4))); var fitems = new List <FieldItem>(); // めぐすり草 fitems.Add(FieldItemFactory.CreateHerb(new Loc(5, 4), 4)); var enemies = new List <Enemy>(); enemies.Add(EnemyFactory.CreateEnemy(new Loc(4, 8))); enemies.Add(EnemyFactory.CreateEnemy(new Loc(4, 0))); enemies.Add(EnemyFactory.CreateEnemy(new Loc(1, 1))); enemies.Add(EnemyFactory.CreateEnemy(new Loc(1, 7))); enemies.Add(EnemyFactory.CreateEnemy(new Loc(7, 1))); enemies.Add(EnemyFactory.CreateEnemy(new Loc(7, 7))); enemies.Add(EnemyFactory.CreateEnemy(new Loc(0, 4))); enemies.Add(EnemyFactory.CreateEnemy(new Loc(8, 4))); return(new Data(map, stairsLoc, playerLoc, fobjs, fitems, enemies)); }
public void Construct(FieldObjectFactory factory) { _factory = factory; }
public DestructibleObjectSpawner(FieldObjectFactory factory) { _factory = factory; }