public void OnEntityInteract(Entity ent)
 {
     if (ent is Player)
     {
         return;
     }
     if (Data is IOnEntityInteract)
     {
         (Data as IOnEntityInteract).OnEntityInteract(ent);
     }
     else if (Data is ISubworldEntranceObject)
     {
         ISubworldEntranceObject ob = Data as ISubworldEntranceObject;
         Key key = ob.GetSubworldKey();
         if (key == null || ent.Inventory.ContainsItemStack(key) != null)
         {
             Subworld current = ent.GetSubworld();
             if (current == null)
             {
                 WorldManager.Instance.EntityEnterSubworld(ent, ob.GetSubworld());
             }
             else
             {
                 WorldManager.Instance.EntityExitSubworld(ent, ob.GetSubworld());
             }
         }
     }
 }
 public void AddSubworld(ISubworldEntranceObject obj, Subworld subworld)
 {
     if (Subworlds == null)
     {
         Subworlds = new Dictionary <Subworld, ISubworldEntranceObject>();
     }
     Subworlds.Add(subworld, obj);
 }
Beispiel #3
0
    public void TravelThroughDoor(params object[] args)
    {
        ISubworldEntranceObject entrObjec = args[0] as ISubworldEntranceObject;
        WorldObjectData         objDat    = entrObjec as WorldObjectData;
        WorldObject             obj       = objDat.LoadedObject;

        obj.OnEntityInteract(Entity);
    }
Beispiel #4
0
    public void PersueThroughDoor(params object[] args)
    {
        ISubworldEntranceObject entrObjec = args[0] as ISubworldEntranceObject;
        WorldObjectData         objDat    = entrObjec as WorldObjectData;
        WorldObject             obj       = objDat.LoadedObject;

        obj.OnEntityInteract(Entity);
        Entity.GetLoadedEntity().LEPathFinder.SetEntityTarget(CurrentTarget);
    }
Beispiel #5
0
    public void ExitThroughDoor(params object[] args)
    {
        Debug.Log("reached door?");
        ISubworldEntranceObject entrObjec = args[0] as ISubworldEntranceObject;
        WorldObjectData         objDat    = entrObjec as WorldObjectData;
        WorldObject             obj       = objDat.LoadedObject;

        obj.OnEntityInteract(Entity);
        IsRunningFromCombat = false;
        RunFromCombat();
    }
Beispiel #6
0
 public static Subworld GetSubworld(this ISubworldEntranceObject swEnt)
 {
     return(WorldManager.Instance.World.GetSubworld(swEnt.GetSubworldID()));
 }