Esempio n. 1
0
        private static void OnCoreAttrChanged(NpcAttrChangedEvent Event)
        {
            if (Event.Master.ID != Master.ID)
            {
                return;
            }

            switch (Event.Index)
            {
            case NpcAttrIndex.Hp:
                Player_.Hp = CoreNpc_.CalcFinalAttr(Event.Index);
                EventManager.Send <CoreInfoChangeEvent>();
                break;

            case NpcAttrIndex.MaxHp:
                Player_.MaxHp = CoreNpc_.CalcFinalAttr(Event.Index);
                EventManager.Send <CoreInfoChangeEvent>();
                break;

            case NpcAttrIndex.AddHp:
                Player_.AddHp = CoreNpc_.CalcFinalAttr(Event.Index);
                EventManager.Send <CoreInfoChangeEvent>();
                break;

            case NpcAttrIndex.Mp:
                Player_.Mp = CoreNpc_.CalcFinalAttr(Event.Index);
                EventManager.Send <CoreInfoChangeEvent>();
                break;

            case NpcAttrIndex.MaxMp:
                Player_.MaxMp = CoreNpc_.CalcFinalAttr(Event.Index);
                EventManager.Send <CoreInfoChangeEvent>();
                break;

            case NpcAttrIndex.AddMp:
                Player_.AddMp = CoreNpc_.CalcFinalAttr(Event.Index);
                EventManager.Send <CoreInfoChangeEvent>();
                break;

            default:
                break;
            }
        }
Esempio n. 2
0
        private void OnNpcAttrChangedEvent(NpcAttrChangedEvent Event)
        {
            if (Event.Master.ID != ID)
            {
                return;
            }

            switch (Event.Index)
            {
            case NpcAttrIndex.MaxHp:
                Bar_.SetMaxHp(CalcFinalAttr(NpcAttrIndex.MaxHp));
                break;

            case NpcAttrIndex.MaxMp:
                Bar_.SetMaxMp(CalcFinalAttr(NpcAttrIndex.MaxMp));
                break;

            case NpcAttrIndex.Speed:
                Action.MoveTo(Action.TargetPos);
                break;

            case NpcAttrIndex.Hp:
                if (Event.ChangeValue < 0)
                {
                    LabelManager.AddNumberLabel(Position, NumberLabelType.Float, Event.ChangeValue);
                }

                if (CalcFinalAttr(NpcAttrIndex.Hp) <= 0)
                {
                    Dead();
                }
                break;

            default:
                break;
            }
        }