예제 #1
0
 public void Initialize(string dungeonId)
 {
     DungeonLogic.CreateMap(dungeonId);
     _dungeonMapView.Refresh();
     DungeonDataModel.Instance.DungeonFloorSelectSubject = new Subject <Vector3Int>();
     //DungeonEventSubscribe();
 }
예제 #2
0
        /// <summary>
        /// タイルをクリックした処理
        /// TODO
        /// </summary>
        public void DungeonTileClick()
        {
            Vector3Int mousePosition = GetTilePosition(_tilemap);
            var        model         = DungeonDataModel.Instance;

            if (model.Location.y + 1 == mousePosition.y && model.DungeonFloor[mousePosition.x][mousePosition.y].Enabled &&
                model.IsEvent == false)
            {
                model.Location = mousePosition;
                model.IsEvent  = true;
                DungeonLogic.DungeonEvent(mousePosition, _dungeonEffectView).Subscribe(_ =>
                {
                    model.Floor++;
                    _dungeonMapView.NextFloor().Subscribe(__ =>
                    {
                        //イベント後
                        model.IsEvent = false;
                    });
                    DungeonLogic.DisableFloor();
                    DungeonLogic.DisableNextFloor();
                    _dungeonMapView.DisableFloor();
                    _dungeonMapView.NowLocationFloor();
                    model.Location = mousePosition;
                });
            }
        }
예제 #3
0
 public void SetDungeonLogic(DungeonLogic dungeonLogic)
 {
     if (triggerCondition == DungeonSpawnConfig.ActionTriggerCondition.OnWaveFinish)
     {
         dungeonLogic.ListenToStageWaveCycle(OnWaveCycle);
     }
 }
예제 #4
0
    public void IsDungeonValid_False()
    {
        var dungeon = new Dungeon()
        {
            Entrance = new EntranceLoc(
                new EntranceLoc()
                ),
        };

        Assert.IsFalse(DungeonLogic.IsDungeonValid(dungeon));
    }
예제 #5
0
    public void IsDungeonValid_True()
    {
        var dungeon = new Dungeon()
        {
            Entrance = new EntranceLoc(
                new MonsterLoc(new ExitLoc()),
                new MonsterLoc(new ExitLoc())
                ),
        };

        Assert.IsTrue(DungeonLogic.IsDungeonValid(dungeon));
    }
예제 #6
0
    public static void LoadBattle(StageData stage)
    {
        int battleId = DungeonLogic.GetBattleDataTimeByStage(stage).BattleID;

        m_BattleData = DataManager.s_BattleDataManager.GetData(battleId);
        if (m_BattleData == null)
        {
            return;
        }
        m_StageData = stage;
        Debug.Log(m_BattleData.SceneId);
        GameStateManager.LoadScene(m_BattleData.SceneId);
    }
예제 #7
0
    public void OpendDungeon()
    {
        //TODO
        int         warriorId   = DungeonLogic.GetMainWarriorId();
        WarriorData warriorData = DataManager.s_WarriorDataManager.GetData(warriorId);

        if (warriorData == null)
        {
            Debug.LogError("no hero");
        }
        else
        {
            DungeonLogic.LoadDungeon(m_DungeonId);
        }
    }