#region
using System;
using System.Linq;
using ScriptDotNet2;
using ScriptSDK.Core.Attributes;
#endregion
namespace ScriptSDK.Core.Mobile
{
public class Mobile : BaseObject
{
public virtual bool IsRunning
{
get { return GetValue<bool>(CoreAttribut.IsRunning); }
}
public virtual bool YellowHits
{
get { return GetValue<bool>(CoreAttribut.YellowHits); }
}
public virtual bool Poisoned
{
get { return GetValue<bool>(CoreAttribut.Poisoned); }
}
public virtual bool Paralyzed
{
get { return GetValue<bool>(CoreAttribut.Paralyzed); }
}
public virtual bool Hidden
{
get { return GetValue<bool>(CoreAttribut.Hidden); }
}
public virtual bool WarMode
{
get { return GetValue<bool>(CoreAttribut.WarMode); }
}
public virtual bool Dead
{
get { return GetValue<bool>(CoreAttribut.Dead); }
}
public virtual int Strength
{
get { return GetValue<int>(CoreAttribut.Strength); }
}
public virtual int Intelligence
{
get { return GetValue<int>(CoreAttribut.Intelligence); }
}
public virtual int Dexterity
{
get { return GetValue<int>(CoreAttribut.Dexterity); }
}
public virtual int Hits
{
get { return GetValue<int>(CoreAttribut.Hits); }
}
public virtual int MaxHits
{
get { return GetValue<int>(CoreAttribut.MaxHits); }
}
public virtual int Mana
{
get { return GetValue<int>(CoreAttribut.Mana); }
}
public virtual int MaxMana
{
get { return GetValue<int>(CoreAttribut.MaxMana); }
}
public virtual int Stamina
{
get { return GetValue<int>(CoreAttribut.Stamina); }
}
public virtual int MaxStamina
{
get { return GetValue<int>(CoreAttribut.MaxStamina); }
}
public virtual Notoriety Notoriety
{
get { return GetValue<Notoriety>(CoreAttribut.Notoriety); }
}
public virtual string Name
{
get { return GetValue<string>(CoreAttribut.Name); }
}
public virtual string Title
{
get { return GetValue<string>(CoreAttribut.Title); }
}
public virtual string AltName
{
get { return GetValue<string>(CoreAttribut.AltName); }
}
public virtual Gender Gender
{
get { return GetValue<Gender>(CoreAttribut.Gender); }
}
public Mobile(uint serial)
: base(serial)
{
Register(CoreAttribut.IsRunning);
Register(CoreAttribut.YellowHits);
Register(CoreAttribut.Poisoned);
Register(CoreAttribut.Paralyzed);
Register(CoreAttribut.Hidden);
Register(CoreAttribut.WarMode);
Register(CoreAttribut.Dead);
Register(CoreAttribut.Strength);
Register(CoreAttribut.Intelligence);
Register(CoreAttribut.Dexterity);
Register(CoreAttribut.Hits);
Register(CoreAttribut.MaxHits);
Register(CoreAttribut.Mana);
Register(CoreAttribut.MaxMana);
Register(CoreAttribut.Stamina);
Register(CoreAttribut.MaxStamina);
Register(CoreAttribut.Notoriety);
Register(CoreAttribut.Name);
Register(CoreAttribut.Title);
Register(CoreAttribut.AltName);
Register(CoreAttribut.Gender);
}
protected override object GetRawValue(CoreAttribut attrib)
{
switch (attrib)
{
case CoreAttribut.IsRunning:
return Stealth.Default.IsRunning(Serial);
case CoreAttribut.YellowHits:
return Stealth.Default.IsYellowHits(Serial);
case CoreAttribut.Poisoned:
return Stealth.Default.IsPoisoned(Serial);
case CoreAttribut.Paralyzed:
return Stealth.Default.IsParalyzed(Serial);
case CoreAttribut.Hidden:
return Stealth.Default.IsHidden(Serial);
case CoreAttribut.WarMode:
return Stealth.Default.IsWarMode(Serial);
case CoreAttribut.Dead:
return Stealth.Default.IsDead(Serial);
case CoreAttribut.Strength:
return Stealth.Default.GetStr(Serial);
case CoreAttribut.Intelligence:
return Stealth.Default.GetInt(Serial);
case CoreAttribut.Dexterity:
return Stealth.Default.GetDex(Serial);
case CoreAttribut.Hits:
return Stealth.Default.GetHP(Serial);
case CoreAttribut.MaxHits:
return Stealth.Default.GetMaxHP(Serial);
case CoreAttribut.Mana:
return Stealth.Default.GetMana(Serial);
case CoreAttribut.MaxMana:
return Stealth.Default.GetMaxMana(Serial);
case CoreAttribut.Stamina:
return Stealth.Default.GetStam(Serial);
case CoreAttribut.MaxStamina:
return Stealth.Default.GetMaxStam(Serial);
case CoreAttribut.Notoriety:
{
var b = Stealth.Default.GetNotoriety(Serial);
if ((Enum.GetValues(typeof (Notoriety)) as byte[]).Contains(b))
return (Notoriety) b;
return Notoriety.Invalid;
}
case CoreAttribut.Name:
return Stealth.Default.GetName(Serial);
case CoreAttribut.Title:
return Stealth.Default.GetTitle(Serial);
case CoreAttribut.AltName:
return Stealth.Default.GetAltName(Serial);
case CoreAttribut.Gender:
return Stealth.Default.IsFemale(Serial) ? Gender.female : Gender.male;
default:
return base.GetRawValue(attrib);
}
}
protected override CoreObject CreateInstance()
{
return new Mobile(Serial);
}
protected virtual bool _LineOfSight(BaseObject obj)
{
/* public bool OnLineOfSight(UORootObject o)
{
if (!o.Valid)
return false;
if (o.Map.Equals(Map.Unknown))
return false;
return o.RootParent == this; //|| Utils.LOSHelper.LineOfSight(this, o);
}*/
return true;
}
}
}