public static void Init() { if (_initialized) { return; } _initialized = true; LynLoggerMain.OnInstanceCreate += i => { i.MapStartNextObserver.OnMapNext += map => { _state = State.Homeport; }; i.PracticeEnemyInfoObserver.OnPracticeEnemyInfo += info => { _info = new DrillInfo() { Briefing = info }; _state = State.Battle; }; i.BattleObserver.OnBattle += battle => { if (_state == State.Battle) { _info.Battle = battle; _state = battle.HasNightWar ? State.NightBattle : State.BattleResult; } else if (_state == State.NightBattle) { _info.Battle = _info.Battle.Clone(); _info.Battle.NightWar = battle.NightWar; _state = State.BattleResult; } }; i.BattleResultObserver.OnBattleResult += battleResult => { if (_state == State.NightBattle || _state == State.BattleResult) { _info.Result = battleResult; DataStore.Store.Current.CurrentLogbook.DrillLog.Append(_info, 0); DataStore.Store.Current.Weekbook.DrillLog.Append(_info, 0); _info = null; if (_onNewLogEntry != null) { _onNewLogEntry(); } } _state = State.Homeport; }; i.PortObserver.OnPortAccess += () => { _state = State.Homeport; _info = null; }; }; }
public static void Init() { if (_initialized) return; _initialized = true; LynLoggerMain.OnInstanceCreate += i => { i.MapStartNextObserver.OnMapNext += map => { _state = State.Homeport; }; i.PracticeEnemyInfoObserver.OnPracticeEnemyInfo += info => { _info = new DrillInfo() { Briefing = info }; _state = State.Battle; }; i.BattleObserver.OnBattle += battle => { if (_state == State.Battle) { _info.Battle = battle; _state = battle.HasNightWar ? State.NightBattle : State.BattleResult; } else if (_state == State.NightBattle) { _info.Battle = _info.Battle.Clone(); _info.Battle.NightWar = battle.NightWar; _state = State.BattleResult; } }; i.BattleResultObserver.OnBattleResult += battleResult => { if (_state == State.NightBattle || _state == State.BattleResult) { _info.Result = battleResult; DataStore.Store.Current.CurrentLogbook.DrillLog.Append(_info, 0); DataStore.Store.Current.Weekbook.DrillLog.Append(_info, 0); _info = null; if (_onNewLogEntry != null) _onNewLogEntry(); } _state = State.Homeport; }; i.PortObserver.OnPortAccess += () => { _state = State.Homeport; _info = null; }; }; }