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); }
public void TravelThroughDoor(params object[] args) { ISubworldEntranceObject entrObjec = args[0] as ISubworldEntranceObject; WorldObjectData objDat = entrObjec as WorldObjectData; WorldObject obj = objDat.LoadedObject; obj.OnEntityInteract(Entity); }
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); }
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(); }
public static Subworld GetSubworld(this ISubworldEntranceObject swEnt) { return(WorldManager.Instance.World.GetSubworld(swEnt.GetSubworldID())); }