Ejemplo n.º 1
0
        private void OnPortalDestroyedHandler(PortalInstance instance)
        {
            Utils.Assert(instance != null);
            if (instance.Color == PortalInstance.eColor.Green && Green == null)
            {
                Utils.Assert(false);
            }
            if (instance.Color == PortalInstance.eColor.Red && Red == null)
            {
                Utils.Assert(false);
            }

            if (instance.Color == PortalInstance.eColor.Green)
            {
                Green = null;
            }
            else
            {
                Red = null;
            }

            // preventive check
            if (Green != null || Red != null)
            {
                Utils.Assert(Green != Red);
            }
        }
Ejemplo n.º 2
0
 public static void RaiseOnObjectEnteredPortal(PortalInstance portal, WarppableObject obj)
 {
     if (ObjectEnteredPortal != null)
     {
         ObjectEnteredPortal.Invoke(portal, obj);
     }
 }
Ejemplo n.º 3
0
 public static void RaiseOnObjectExitedPortal(PortalInstance portal, WarppableObject obj, bool crossedThePortal)
 {
     if (ObjectExitedPortal != null)
     {
         ObjectExitedPortal.Invoke(portal, obj, crossedThePortal);
     }
 }
Ejemplo n.º 4
0
 public static void RaisePortalDestroyedEvent(PortalInstance portal)
 {
     if (PortalDestroyed != null)
     {
         PortalDestroyed.Invoke(portal);
     }
 }
Ejemplo n.º 5
0
 public PortalInstance GetOtherPortal(PortalInstance instance)
 {
     if (!IsWormHoleOpen())
     {
         return(null);
     }
     if (instance == Green)
     {
         return(Red);
     }
     if (instance == Red)
     {
         return(Green);
     }
     return(null);
 }
Ejemplo n.º 6
0
        private void OnObjectEnterWarp(PortalInstance portal, WarppableObject warppableObj)
        {
            Debug.Log("OnObjectEnterWarp 1");
            Utils.Assert(portal != null && warppableObj != null);
            if (!portalSet.IsWormHoleOpen())
            {
                return;
            }
            if (GetWormHoleSet(warppableObj) != null)
            {
                return;
            }

            warppableObj.CloneObject();
            warpableObjectSets.Add(new WarpableObjectSet(portal, portalSet.GetOtherPortal(portal), warppableObj));
        }
Ejemplo n.º 7
0
        private void OnObjectExitedWarp(PortalInstance portal, WarppableObject warppableObj, bool crossedTheWormHole)
        {
            Utils.Assert(portal != null && warppableObj != null);
            if (!portalSet.IsWormHoleOpen())
            {
                return;
            }

            WarpableObjectSet warpableObjectSet = GetWormHoleSet(warppableObj);

            if (warpableObjectSet == null)
            {
                Debug.LogWarning("Check this!"); return;
            }

            if (crossedTheWormHole)
            {
                warpableObjectSet._warpObject.SwapWithClone();
            }
            warpableObjectSet._warpObject.DestroyClone();

            warpableObjectSets.Remove(warpableObjectSet);
        }
Ejemplo n.º 8
0
 public WarpableObjectSet(PortalInstance portalA, PortalInstance portalB, WarppableObject warpableObj)
 {
     _portalA    = portalA;
     _portalB    = portalB;
     _warpObject = warpableObj;
 }