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; } }
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; } }