using System.Collections.Generic;
using ACE.Entity;
using ACE.Entity.Enum;
using ACE.Entity.Models;
using ACE.Server.Network;
using Character = ACE.Database.Models.Shard.Character;
namespace ACE.Server.WorldObjects
{
public class Sentinel : Player
{
///
/// A new biota be created taking all of its values from weenie.
///
public Sentinel(Weenie weenie, ObjectGuid guid, uint accountId) : base(weenie, guid, accountId)
{
if (!Character.IsPlussed)
{
Character.IsPlussed = true;
CharacterChangesDetected = true;
}
SetEphemeralValues();
}
///
/// Restore a WorldObject from the database.
///
public Sentinel(Biota biota, IEnumerable inventory, IEnumerable wieldedItems, Character character, Session session) : base(biota, inventory, wieldedItems, character, session)
{
if (!Character.IsPlussed)
{
Character.IsPlussed = true;
CharacterChangesDetected = true;
}
SetEphemeralValues();
}
private void SetEphemeralValues()
{
ObjectDescriptionFlags |= ObjectDescriptionFlag.Admin;
if (!ChannelsAllowed.HasValue)
ChannelsAllowed = Channel.Audit | Channel.Advocate1 | Channel.Advocate2 | Channel.Advocate3 | Channel.Sentinel | Channel.AllBroadcast;
else
ChannelsAllowed |= Channel.Audit | Channel.Advocate1 | Channel.Advocate2 | Channel.Advocate3 | Channel.Sentinel | Channel.AllBroadcast;
}
public override void InitPhysicsObj()
{
base.InitPhysicsObj();
switch (CloakStatus)
{
case CloakStatus.Off:
goto default;
case CloakStatus.On:
//Translucency = 0.5f;
Cloaked = true;
Ethereal = true;
NoDraw = true;
Visibility = true;
break;
case CloakStatus.Player:
goto default;
case CloakStatus.Creature:
Attackable = true;
goto default;
default:
Translucency = null;
Cloaked = false;
Ethereal = false;
NoDraw = false;
Visibility = false;
break;
}
}
}
}