| | |
| | | float m_Timer = 0f;
|
| | | const float Interval = 10f;
|
| | |
|
| | | bool autoSelect = false;
|
| | | int defaultSelect = 0;
|
| | |
|
| | | #region Built-in
|
| | | protected override void BindController()
|
| | | {
|
| | |
| | | DisplaySurplusTime();
|
| | | DisplayBossInfo();
|
| | | DisplayHighestFairy();
|
| | | model.QueryGrabBossProgress();
|
| | | GlobalTimeEvent.Instance.secondEvent += SecondEvent;
|
| | | model.bossSelectedEvent += BossSelectedEvent;
|
| | | model.bossProgressUpdate += BossProgressUpdate;
|
| | | model.bossAllProgressUpdate += BossAllProgressUpdate;
|
| | | model.stateUpdate += StateUpdate;
|
| | | m_Timer = 0;
|
| | | }
|
| | |
| | | {
|
| | | base.OnActived();
|
| | | DisplayBosses();
|
| | | defaultSelect = model.selectBoss;
|
| | | autoSelect = false;
|
| | | model.QueryGrabBossProgress();
|
| | | }
|
| | |
|
| | | protected override void OnAfterOpen()
|
| | |
| | | GlobalTimeEvent.Instance.secondEvent -= SecondEvent;
|
| | | model.bossSelectedEvent -= BossSelectedEvent;
|
| | | model.bossProgressUpdate -= BossProgressUpdate;
|
| | | model.bossAllProgressUpdate -= BossAllProgressUpdate;
|
| | | model.stateUpdate -= StateUpdate;
|
| | | }
|
| | |
|
| | |
| | |
|
| | | private void BossSelectedEvent(int bossId)
|
| | | {
|
| | | if (defaultSelect != bossId)
|
| | | {
|
| | | autoSelect = true;
|
| | | }
|
| | | DisplayBossInfo();
|
| | | DisplayHighestFairy();
|
| | | }
|
| | |
| | | DisplayHighestFairy();
|
| | | }
|
| | | }
|
| | |
|
| | | void BossAllProgressUpdate()
|
| | | {
|
| | | if (!autoSelect)
|
| | | {
|
| | | AutoSelect();
|
| | | }
|
| | | }
|
| | |
|
| | | private void StateUpdate()
|
| | | {
|
| | | DisplayHighestFairy();
|
| | | }
|
| | |
|
| | | void AutoSelect()
|
| | | {
|
| | | autoSelect = true;
|
| | | var index = 0;
|
| | | for (int i = 0; i < model.bosses.Count; i++)
|
| | | {
|
| | | FairyGrabBossModel.BossProgressInfo bossProgress;
|
| | | if (model.TryGetBossProgress(model.bosses[i], out bossProgress))
|
| | | {
|
| | | var progress = (float)bossProgress.currentHp / bossProgress.totalHp;
|
| | | if (progress > 0)
|
| | | {
|
| | | index = i;
|
| | | break;
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | index = i;
|
| | | break;
|
| | | }
|
| | | }
|
| | | m_Bosses.MoveToCenter(index);
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | }
|