Exemple #1
0
    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));
    }
Exemple #2
0
/*
 *  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));
    }
Exemple #3
0
    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));
    }
Exemple #4
0
    // ------ フロアデータ

    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));
    }
Exemple #5
0
    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);
    }
Exemple #6
0
    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));
    }
Exemple #7
0
 public void Construct(FieldObjectFactory factory)
 {
     _factory = factory;
 }
Exemple #8
0
 public DestructibleObjectSpawner(FieldObjectFactory factory)
 {
     _factory = factory;
 }