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