public static bool CanBeClosed(this Essence _essence, LiveMapCell _cell, Creature _creature) { if (!(_essence is Thing)) { return(false); } if (_essence.IsFake()) { _essence = _cell.ResolveFakeThing(_creature); } return(_essence is ICanbeClosed && ((ICanbeClosed)_essence).ELockType == ELockType.OPEN); }
public static bool IsLockedFor(this Essence _essence, LiveMapCell _cell, Creature _creature) { if (_essence == null) { return(false); } if (_essence.IsFake()) { _essence = _cell.ResolveFakeThing(_creature); } return(_essence is ICanbeOpened && ((ICanbeOpened)_essence).ELockType != ELockType.OPEN); }
public EssenceDescriptor(Essence _essence, LiveMapCell _cell, IContainer _container, Creature _creature) { m_creature = _creature; if (_essence is IFaked) { if (_container != null) { if (_essence is Item) { _essence = _container.ResolveFakeItem(_creature, (FakedItem)_essence); } else { throw new NotImplementedException("Как так?"); } } else if(_cell!=null) { if (_essence is Item) { _essence = _cell.ResolveFakeItem(_creature, (FakedItem)_essence); } else if (_essence is Thing) { _essence = _cell.ResolveFakeThing(_creature); } } else { throw new NotImplementedException("Как так?"); } } Essence = _essence; LiveCoords = _cell!=null?_cell.LiveCoords:null; Container = _container; }
public EssenceDescriptor(Essence _essence, LiveMapCell _cell, IContainer _container, Creature _creature) { m_creature = _creature; if (_essence is IFaked) { if (_container != null) { if (_essence is Item) { _essence = _container.ResolveFakeItem(_creature, (FakedItem)_essence); } else { throw new NotImplementedException("Как так?"); } } else if (_cell != null) { if (_essence is Item) { _essence = _cell.ResolveFakeItem(_creature, (FakedItem)_essence); } else if (_essence is Thing) { _essence = _cell.ResolveFakeThing(_creature); } } else { throw new NotImplementedException("Как так?"); } } Essence = _essence; LiveCoords = _cell != null?_cell.LiveCoords:null; Container = _container; }