using CommonAI.ZoneClient; using XmdsCommon.Message; namespace XmdsCommon.ZoneClient.XmdsClientVirtual { public class XmdsClientVirtual_Monster : XmdsClientVirtual { private MonsterVisibleDataB2C mData = null; public override void OnInit(ZoneUnit owner) { base.OnInit(owner); if (owner == null || owner.SyncInfo == null || !(owner.SyncInfo.VisibleInfo is MonsterVisibleDataB2C)) { mLog.Error("ClientVirtual_Monster Init Error"); } else { mData = owner.SyncInfo.VisibleInfo as MonsterVisibleDataB2C; } } public override void OnDispose(ZoneUnit owner) { base.OnDispose(owner); } protected override void MOwner_OnDoEvent(ZoneObject obj, CommonAI.Zone.ObjectEvent e) { if (e is MonsterHeirInfoChangeEventB2C) { if (mData != null) { mData.UnitHeirInfo = (e as MonsterHeirInfoChangeEventB2C).UnitHeirInfo; } } base.MOwner_OnDoEvent(obj, e); } #region 常用方法. public string GetName() { if (mData != null) { return mData.DisplayName; } return null; } public int GetLv() { if (mOwner != null && mOwner.SyncInfo != null) { return mOwner.SyncInfo.Level; } return 0; } /// /// 获得怪物品质. /// /// public MonsterVisibleDataB2C.MonsterQcolor GetMonsterQcolor() { if (mData != null) { return mData.Qcolor; } return MonsterVisibleDataB2C.MonsterQcolor.Q0; } /// /// 获得怪物类型小怪、精英、BOSS. /// /// public MonsterVisibleDataB2C.MonsterType GetMonsterType() { if (mData != null) { return mData.MType; } return MonsterVisibleDataB2C.MonsterType.MType0; } /// /// 获得攻击类型(主动\被动). /// /// public MonsterVisibleDataB2C.MonsterAttackType GetMonsterAtkType() { if (mData != null) { return mData.AttackType; } return MonsterVisibleDataB2C.MonsterAttackType.Active; } /// /// 获得种族类型. /// /// public MonsterVisibleDataB2C.MonsterAtype GetMonsterRaceType() { if (mData != null) { return mData.Atype; } return MonsterVisibleDataB2C.MonsterAtype.Monster; } public int GetID() { if (mData != null) { return mData.MonsterID; } return 0; } public string GetSceneType() { if (mData != null) { return mData.SenceType; } return null; } public string GetTitle() { if (mData != null) { return mData.Title; } return null; } public MonsterVisibleDataB2C.HeirInfo GetHeirInfo() { if (mData != null) { return mData.UnitHeirInfo; } return null; } public byte GetHpPlies() { if(mData != null) { return mData.hpPlies; } return 1; } public MonsterVisibleDataB2C GetData() { return mData; } #endregion } }