Exemplo n.º 1
0
 public void Insert(MoveableAtom a)
 {
     if (a.Physical)
     {
         if (a.Unblockable ||
             CanMoveTo(a.Position) ||
             a.IsNotBlockedFromType(table[a.Position]))
         {
             buffer[a.Position] = table[a.Position];
             table[a.Position]  = a;
         }
     }
     else
     {
         untangibles[a.Position].Add(a);
     }
 }
Exemplo n.º 2
0
        public virtual bool CanHappenTriggerEvent(MoveableAtom triggerer,
                                                  Atom triggerable)
        {
            var immediate = false;

            var typeOfStepped = triggerable.GetType();

            if (typeof(ITriggerable).IsAssignableFrom(triggerable.GetType()))
            {
                if (typeof(ITriggerActor).IsAssignableFrom(triggerer.GetType()))
                {
                    var _triggerable = (ITriggerable)triggerable;
                    var _triggerer   = (ITriggerActor)triggerer;

                    _triggerer.RegisterTriggerable(_triggerable);
                    _triggerable.RegisterTriggeringSubject(triggerer);

                    immediate = _triggerable.ImmediateTrigger;
                }
            }

            return(immediate);
        }