Example #1
0
 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);
 }
Example #2
0
 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;
 }