public override void OnTransition(KanturuTowerOfRefinementState NextState) { _manager.SendAll(new SKanturuStateChange { State = _manager._state, btDetailState = (byte)NextState }); switch (NextState) { case KanturuTowerOfRefinementState.None: _manager.Trigger(EventState.Open); break; case KanturuTowerOfRefinementState.Revitalization: Trigger(KanturuTowerOfRefinementState.Notify1, TimeSpan.FromSeconds(82500)); break; case KanturuTowerOfRefinementState.Notify1: Trigger(KanturuTowerOfRefinementState.Close, TimeSpan.FromSeconds(300)); break; case KanturuTowerOfRefinementState.Close: Trigger(KanturuTowerOfRefinementState.Notify2, TimeSpan.FromSeconds(2220)); break; case KanturuTowerOfRefinementState.Notify2: Trigger(KanturuTowerOfRefinementState.End, TimeSpan.FromSeconds(180)); break; case KanturuTowerOfRefinementState.End: Trigger(KanturuTowerOfRefinementState.None, TimeSpan.FromSeconds(5)); break; } }
public override void OnTransition(KanturuBattleOfNightmareState NextState) { _manager.SendAll(new SKanturuStateChange { State = _manager._state, btDetailState = (byte)NextState }); switch (NextState) { case KanturuBattleOfNightmareState.None: break; case KanturuBattleOfNightmareState.Idle: _manager.WarpAllTo(134); Trigger(KanturuBattleOfNightmareState.Notify, TimeSpan.FromSeconds(5)); break; case KanturuBattleOfNightmareState.Notify: Trigger(KanturuBattleOfNightmareState.Start, TimeSpan.FromSeconds(10)); _manager.SendAll(new SNotice(NoticeType.Gold, ServerMessages.GetMessage(Messages.Kanturu_NightmareNotify))); break; case KanturuBattleOfNightmareState.Start: { _manager.LoadScene(2); MonsterIA.InitGroup(23, DieMonster); var mob = MonstersMng.Instance.Monsters.FirstOrDefault(x => x.Info.Monster == 361); _nightmare = new PatternManager(mob, Program.XMLConfiguration.Files.NightmarePatterns); _nightmare.UseSkill += _nightmare_UseSkill; _manager.FailState = true; Trigger(KanturuBattleOfNightmareState.End, TimeSpan.FromSeconds(1200)); _manager.SendAll(new SKanturuBattleTime { BattleTime = (int)TimeLeft.TotalSeconds }); } break; case KanturuBattleOfNightmareState.End: _nightmare = null; MonsterIA.DelGroup(23); _logger.Information("Battle result:{0}", _manager.FailState?"Fail":"Win"); _manager.SendAll(new SKanturuBattleResult { Result = (byte)(_manager.FailState ? 0 : 1) }); Trigger(KanturuBattleOfNightmareState.EndCycle, TimeSpan.FromSeconds(5)); break; case KanturuBattleOfNightmareState.EndCycle: if (_manager.FailState) { _manager.Clear(); } else { _manager._towerOfRefinement.Initialize(); _manager.Trigger(EventState.Closed); } Trigger(KanturuBattleOfNightmareState.None); break; } }
public override void OnTransition(KanturuBattleOfMayaState NextState) { _manager.SendAll(new SKanturuStateChange { State = _manager._state, btDetailState = (byte)NextState }); if (NextState == KanturuBattleOfMayaState.EndCycle1 || NextState == KanturuBattleOfMayaState.EndCycle2 || NextState == KanturuBattleOfMayaState.EndCycle3) { var str = ServerMessages.GetMessage(Messages.Kanturu_NextBattle); Program.MapAnoucement(Maps.Kantru1, str).Wait(); Program.MapAnoucement(Maps.Kantru2, str).Wait(); Program.MapAnoucement(Maps.Kantru3, str).Wait(); } switch (NextState) { // Battle Stage 1 case KanturuBattleOfMayaState.StandBy1: Trigger(KanturuBattleOfMayaState.Notify1, TimeSpan.FromSeconds(120)); break; case KanturuBattleOfMayaState.Notify1: if (!_manager.CanRun()) { _manager.FailState = true; Trigger(KanturuBattleOfMayaState.End); return; } Trigger(KanturuBattleOfMayaState.Start1, TimeSpan.FromSeconds(15)); break; case KanturuBattleOfMayaState.Start1: _manager.LoadScene(0); Trigger(KanturuBattleOfMayaState.End1, TimeSpan.FromSeconds(900)); _manager.SendAll(new SKanturuBattleTime { BattleTime = (int)TimeLeft.TotalMilliseconds }); break; case KanturuBattleOfMayaState.Maya1: { _LeftHand = false; _RightHand = false; _manager.LoadScene(3); MonsterIA.InitGroup(20, DieMonster); var h1 = MonstersMng.Instance.Monsters.FirstOrDefault(x => x.Info.Monster == 363 || x.Info.Monster == 362); _hand1 = new PatternManager(h1, Program.XMLConfiguration.Files.MayaLeftHandPatterns); _hand1.UseSkill += _hand_UseSkill; } break; case KanturuBattleOfMayaState.End1: _hand1.UseSkill -= _hand_UseSkill; _hand1 = null; MonsterIA.DelGroup(20); if (_manager.MonsterCount() > 1 || !_LeftHand) { _manager.FailState = true; Trigger(KanturuBattleOfMayaState.End); return; } Trigger(KanturuBattleOfMayaState.EndCycle1, TimeSpan.FromSeconds(5)); break; case KanturuBattleOfMayaState.EndCycle1: { Trigger(KanturuBattleOfMayaState.StandBy2, TimeSpan.FromSeconds(3)); } break; // Battle Stage 2 case KanturuBattleOfMayaState.StandBy2: Trigger(KanturuBattleOfMayaState.Start2, TimeSpan.FromSeconds(60)); break; case KanturuBattleOfMayaState.Start2: _manager.LoadScene(0); Trigger(KanturuBattleOfMayaState.End2, TimeSpan.FromSeconds(900)); _manager.SendAll(new SKanturuBattleTime { BattleTime = (int)TimeLeft.TotalMilliseconds }); break; case KanturuBattleOfMayaState.Maya2: { _LeftHand = false; _RightHand = false; MonsterIA.InitGroup(21, DieMonster); _manager.LoadScene(4); var h1 = MonstersMng.Instance.Monsters.FirstOrDefault(x => x.Info.Monster == 363 || x.Info.Monster == 362); _hand2 = new PatternManager(h1, Program.XMLConfiguration.Files.MayaRightHandPatterns); _hand2.UseSkill += _hand_UseSkill; } break; case KanturuBattleOfMayaState.End2: _hand2.UseSkill -= _hand_UseSkill; _hand2 = null; MonsterIA.DelGroup(21); if (_manager.MonsterCount() > 1 || !_RightHand) { _manager.FailState = true; Trigger(KanturuBattleOfMayaState.End); return; } Trigger(KanturuBattleOfMayaState.EndCycle2, TimeSpan.FromSeconds(5)); break; case KanturuBattleOfMayaState.EndCycle2: Trigger(KanturuBattleOfMayaState.StandBy3, TimeSpan.FromSeconds(3)); break; // Battle Stage 3 case KanturuBattleOfMayaState.StandBy3: Trigger(KanturuBattleOfMayaState.Start3, TimeSpan.FromSeconds(60)); break; case KanturuBattleOfMayaState.Start3: _manager.LoadScene(1); Trigger(KanturuBattleOfMayaState.End3, TimeSpan.FromSeconds(900)); _manager.SendAll(new SKanturuBattleTime { BattleTime = (int)TimeLeft.TotalMilliseconds }); break; case KanturuBattleOfMayaState.Maya3: { _LeftHand = false; _RightHand = false; MonsterIA.InitGroup(22, DieMonster); _manager.LoadScene(5); var h1 = MonstersMng.Instance.Monsters.FirstOrDefault(x => x.Info.Monster == 362); var h2 = MonstersMng.Instance.Monsters.FirstOrDefault(x => x.Info.Monster == 363); _hand1 = new PatternManager(h1, Program.XMLConfiguration.Files.MayaLeftHandPatterns); _hand2 = new PatternManager(h2, Program.XMLConfiguration.Files.MayaRightHandPatterns); _hand1.UseSkill += _hand_UseSkill; _hand2.UseSkill += _hand_UseSkill; } break; case KanturuBattleOfMayaState.End3: _hand1.UseSkill -= _hand_UseSkill; _hand2.UseSkill -= _hand_UseSkill; _hand1 = null; _hand2 = null; MonsterIA.DelGroup(22); if (_manager.MonsterCount() > 1 || !_LeftHand || !_RightHand) { _manager.FailState = true; Trigger(KanturuBattleOfMayaState.End); return; } Trigger(KanturuBattleOfMayaState.EndCycle3, TimeSpan.FromSeconds(5)); break; case KanturuBattleOfMayaState.EndCycle3: Trigger(KanturuBattleOfMayaState.End, TimeSpan.FromSeconds(3)); break; case KanturuBattleOfMayaState.End: Trigger(KanturuBattleOfMayaState.EndCycle, TimeSpan.FromSeconds(3)); if (_manager.FailState) { _manager.SendAll(new SNotice(NoticeType.Gold, ServerMessages.GetMessage(Messages.Kanturu_Fail))); } break; case KanturuBattleOfMayaState.EndCycle: if (!_manager.FailState) { _manager._battleOfNightmare.Initialize(); } else { _manager.Trigger(EventState.Open); } Trigger(KanturuBattleOfMayaState.None); break; } }