public void FinishBattle() { if (_battle.State.Data.Status == BattleStatus.Running) { _battle.State.Data.Status = BattleStatus.Leave; LogicLog.SetBattle(LogBattleType.Leave, _explorer.State.LastInteractiveId, _explorer.State.RoomId, _explorer.CurrentStage); } var status = _battle.State.Data.Status; _battleLogic.ClearBattle(); if (status == BattleStatus.Win) { _impactLogic.ExecuteImpact(_contextLogic.ImpactWin); LogicLog.SetBattle(LogBattleType.Win, _explorer.State.LastInteractiveId, _explorer.State.RoomId, _explorer.CurrentStage); } else { _impactLogic.ExecuteImpact(_contextLogic.ImpactLose); LogicLog.SetBattle(LogBattleType.Lose, _explorer.State.LastInteractiveId, _explorer.State.RoomId, _explorer.CurrentStage); } }