Esempio n. 1
0
        /// <summary>
        /// Adjust tracking value based on In-game progress
        /// </summary>
        /// <param name="progress"></param>
        private void CheckOverUnder(QuestProgressType progress)
        {
            if (this.Datas.Length != 1)
            {
                return;
            }

            var Current = this.Datas[0].Current;
            var Maximum = this.Datas[0].Maximum;
            var cut50   = this.Progress50;
            var cut80   = this.Progress80;

            switch (progress)
            {
            case QuestProgressType.None:
                if (Current >= cut50)
                {
                    Current = cut50 - 1;
                }
                break;

            case QuestProgressType.Progress50:
                if (Current >= cut80)
                {
                    Current = cut80 - 1;
                }

                if (Current < cut50)
                {
                    Current = cut50;
                }
                break;

            case QuestProgressType.Progress80:
                if (Current >= Maximum)
                {
                    Current = Maximum - 1;
                }

                if (Current < cut80)
                {
                    Current = cut80;
                }
                break;

            case QuestProgressType.Complete:
                Current = Maximum;
                break;
            }

            this.Datas[0].Current = Current;
        }
Esempio n. 2
0
 /// <summary>
 /// Update progress state
 /// </summary>
 /// <param name="State"></param>
 public abstract void UpdateState(QuestProgressType State);
Esempio n. 3
0
 public override void UpdateState(QuestProgressType State)
 => CheckOverUnder(State);