public SimAvatarImpl(UUID id, WorldObjects objectSystem, Simulator sim) : base(id, objectSystem, sim) { Affordances.ObjectType.SuperType.Add(SimTypeSystem.GetObjectType("Avatar")); _knownTypeUsages = new ListAsSet <SimTypeUsage>(); WorldSystem.AddAvatar(this, id); }
public void Push(WorldObjects.Player.Player player) { if(player.PrevPosition.Y >= (Position.Y + Texture.Height)) { ReleasePowerUp(); } }
/// <summary> /// Initiates loading for world. /// </summary> public void InitWorld() { WorldObjects.Init((Device != null)); WorldObjectGlobals.Init(); WorldWalls.Init(); WorldFloors.Init(); }
public WorldFile(string fileName, IList <TokenID> allowedTokens) { try { if (string.IsNullOrEmpty(fileName)) { throw new InvalidDataException($"Empty filename could not be parsed for for X and Z tile information."); } // Parse the tile location out of the filename. int p = fileName.LastIndexOf("\\WORLD\\W", StringComparison.OrdinalIgnoreCase); if (!int.TryParse(fileName.AsSpan(p + 8, 7), out int tileX) || !int.TryParse(fileName.AsSpan(p + 15, 7), out int tileZ)) { throw new InvalidDataException($"Could not parse filename {fileName} for X and Z tile information."); } TileX = tileX; TileZ = tileZ; using (SBR sbr = SBR.Open(fileName)) { using (SBR block = sbr.ReadSubBlock()) { Objects = new WorldObjects(block, allowedTokens, TileX, TileZ); } // some w files have additional comments at the end // eg _Skip ( "TS DB-Utility - Version: 3.4.05(13.10.2009), Filetype='World', Copyright (C) 2003-2009 by ...CarlosHR..." ) sbr.Skip(); } } catch (Exception error) { throw new FileLoadException(fileName, error); } }
public void Init() { RogueEncampmentWp = null; RedPortal = null; InGame = false; FullyEnteredGame = false; LastTeleport = 0; Experience = 0; Me = new Player(); Logging.Logger.Write("Reset self"); SkillLevels.Clear(); ItemSkillLevels.Clear(); Logging.Logger.Write("Cleared Skills"); Players.Clear(); Logging.Logger.Write("Cleared Players"); Npcs.Clear(); Logging.Logger.Write("Cleared Npcs"); Items.Clear(); WorldObjects.Clear(); Inventory = new Container("Inventory", GameData.InventoryWidth, GameData.InventoryHeight); Stash = new Container("Stash", GameData.StashWidth, GameData.StashHeight); Cube = new Container("Cube", GameData.CubeWidth, GameData.CubeHeight); Belt = new Container("Belt", 4, 4); MalahId = 0; CurrentLife = 0; FirstNpcInfoPacket = true; AttacksSinceLastTeleport = 0; WeaponSet = 0; HasMerc = false; }
public static Player Red(int playerId) { Player player = new Player(); player.type = "Red"; player.name = "RedPlayer1"; player.health = player.maxHealth; player.player = WorldObjects.RedPlayer(); player.playerId = playerId; player.waiting = new Sprite[] { Resources.GetSpriteSliceBoth(Resources.GetSprite(Resources.redPlayer), 4, 2, 0, 0), Resources.GetSpriteSliceBoth(Resources.GetSprite(Resources.redPlayer), 4, 2, 1, 0) }; player.walking = new Sprite[] { Resources.GetSpriteSliceBoth(Resources.GetSprite(Resources.redPlayer), 4, 2, 0, 1), Resources.GetSpriteSliceBoth(Resources.GetSprite(Resources.redPlayer), 4, 2, 1, 1) }; player.attacking = new Sprite[] { Resources.GetSpriteSliceBoth(Resources.GetSprite(Resources.redPlayer), 4, 2, 2, 1), Resources.GetSpriteSliceBoth(Resources.GetSprite(Resources.redPlayer), 4, 2, 3, 1) }; player.dying = new Sprite[] { Resources.GetSpriteSliceBoth(Resources.GetSprite(Resources.redPlayer), 4, 2, 2, 0) }; player.corpse = WorldObjects.RedCorpse(); return(player); }
/// <summary> /// Initiates loading for world. /// </summary> public void InitWorld() { WorldObjects.Init(); WorldObjectGlobals.Init(); WorldWalls.Init(); WorldFloors.Init(); }
public void Init() { RogueEncampmentWp = null; RedPortal = null; InGame = false; FullyEnteredGame = false; LastTeleport = 0; Experience = 0; Me = new Player(); Logger.Write("Reset GameData"); SkillLevels.Clear(); ItemSkillLevels.Clear(); Players.Clear(); Npcs.Clear(); Items.Clear(); WorldObjects.Clear(); Inventory = new Container("Inventory", ContainerType.Inventory, InventoryWidth, InventoryHeight); Stash = new Container("Stash", ContainerType.Stash, StashWidth, StashHeight); Cube = new Container("Cube", ContainerType.Cube, CubeWidth, CubeHeight); //todo make configurable Belt = new Container("Belt", ContainerType.Belt, 4, 4); //todo make size depend on belt type... MalahId = 0; CurrentLife = 0; FirstNpcInfoPacket = true; AttacksSinceLastTeleport = 0; WeaponSet = 0; HasMerc = false; }
public override void GetNewTask() { if (stats.MoneyAmount <= 5) { var bank = FindObjectOfType <Building_Normal_Service_Bank>(); if (bank == null) { return; } CurrentAction = new BuyFromStore(this, bank); return; } var rand = Random.Range(1, 4); if (rand == 1) { CurrentAction = new TalkAction(this, WorldObjects.GetPersonTarget(this), Random.Range(5f, 15f)); } if (rand == 2) { CurrentAction = new IdleMovement(this, Random.Range(5f, 15f)); } if (rand == 3) { var store = FindObjectOfType <Building_Normal_Service_Store>(); if (store == null) { return; } CurrentAction = new BuyFromStore(this, store); } }
public WorldFile(string fileName, List <TokenID> allowedTokens) { try { // Parse the tile location out of the filename. var p = fileName.LastIndexOf("\\WORLD\\W", StringComparison.OrdinalIgnoreCase); TileX = int.Parse(fileName.Substring(p + 8, 7)); TileZ = int.Parse(fileName.Substring(p + 15, 7)); using (var sbr = SBR.Open(fileName)) { using (var block = sbr.ReadSubBlock()) { Objects = new WorldObjects(block, allowedTokens, TileX, TileZ); } // some w files have additional comments at the end // eg _Skip ( "TS DB-Utility - Version: 3.4.05(13.10.2009), Filetype='World', Copyright (C) 2003-2009 by ...CarlosHR..." ) sbr.Skip(); } } catch (Exception error) { throw new FileLoadException(fileName, error); } }
/// <summary> /// Initiates loading for world. /// </summary> public void InitWorld() { WorldObjects.Init((Device != null)); WorldObjectGlobals.Init(); WorldWalls.Init(); WorldFloors.Init(); WorldCatalog.Init(this); WorldRoofs.Init(); }
public void InternOnRegion(WorldObjects world) { if (!needPush) { return; } needPush = false; world.SendNewRegionEvent(SimEventType.DATA_UPDATE, "OnAssetInfo", this); }
public WorldObjectsXml(WorldObjects worldObjects) { if (worldObjects != null) { foreach (var worldObject in worldObjects) { Add(new WorldObjectXml(worldObject)); } } }
public World ToEntity(State state) { var world = new World(state); world.CreateInstance(); world.Water = Water.ToEntity(state); world.Sub = Sub.ToEntity(state); world.WorldObjects = WorldObjects.ToEntity(state); return(world); }
public WorldObjects ToEntity(State state) { var worldObjects = new WorldObjects(state); foreach (var worldObjectsXml in this) { worldObjects.Add(worldObjectsXml.ToEntity(state)); } return(worldObjects); }
public override CmdResult ExecuteRequest(CmdRequest args) { if (args.Length == 0) { return(ShowUsage()); } SimObject o; if (!args.TryGetValue("target", out o)) { return(Failure(string.Format("Cant find {0}", args.str))); } bool isObject = !(o is SimAvatar); UUID target = o.ID; Primitive currentPrim = o.Prim; if (currentPrim == null) { return(Failure(string.Format("No Prim localId for {0}", args.str))); } Primitive.ObjectProperties props = o.Properties; WorldObjects.EnsureSelected(currentPrim, WorldSystem.GetSimulator(currentPrim)); if (props == null) { return(Failure("no props on " + o + " yet try again")); } GridClient client = TheBotClient; string strA; if (!args.TryGetValue("ammount", out strA)) { return(Success(string.Format("saletype {0} {1} {2}", o.ID, props.SalePrice, props.SaleType))); } int amount; strA = strA.Replace("$", "").Replace("L", ""); if (!int.TryParse(strA, out amount)) { return(Failure("Cant determine amount from: " + strA)); } SaleType saletype; if (!args.TryGetValue("saletype", out saletype)) { saletype = SaleType.Original; //return Failure("Cant determine SaleType: " + strA); } WriteLine("Setting Ammount={0} SaleType={1} for {2}", saletype, amount, o); TheBotClient.Objects.SetSaleInfo(WorldSystem.GetSimulator(currentPrim), currentPrim.LocalID, saletype, amount); return(Success(Name + " on " + o)); }
public void AddObject(WorldObject obj) { WorldObjects.Add(obj); if (obj is IPlayer) { Player = (IPlayer)obj; } if (obj is IDynamicObject) { DynamicObjects.Add((IDynamicObject)obj); } }
public WorldObjectBaseAbstract Create(WorldObjects worldObject) { if (worldObject == WorldObjects.HealthPotion) { return(new HealthPotion()); } if (worldObject == WorldObjects.Spikes) { return(new Spikes()); } throw new ArgumentException($"WorldObjectFactory - no object available with that this name {worldObject}"); }
private void SetPlayers(Player[] players) { TotalPlayers = players.Length; PlayerList = players; var i = 0; foreach (var player in players) { player.CurrentNode = StartingNode; player.ActualLocation = StartingNode.GetTravelPosition(i, TotalPlayers); WorldObjects.Add(player); i++; } }
public ScriptEventListener(ScriptInterpreter interp, BotClient client) { taskInterperter = interp; taskInterperter.Intern("Client", client); taskInterperter.Intern("thisClient", client); if (client != null) { WorldSystem = client.WorldSystem; } thrJobQueue = new Thread(jobManager); thrJobQueue.Name = string.Format("ScriptEventListener Thread for {0}", (client ?? (Object)"ClientManager")); thrJobQueue.Start(); }
public override CmdResult ExecuteRequest(CmdRequest args) { if (args.Length == 0) { WorldObjects.ResetSelectedObjects(); return(Success("ResetSelectedObjects")); } string note = ""; var autoDeselect = (args[0] == "re"); if (autoDeselect) { note += "re"; args = args.AdvanceArgs(1); } var deSelect = (args[0] == "de"); if (deSelect) { note += "de"; args = args.AdvanceArgs(1); } int used; List <SimObject> PS = WorldSystem.GetPrimitives(args, out used); if (IsEmpty(PS)) { return(Failure("Cannot find objects from " + args.str)); } List <uint> selectobjs = new List <uint>(); var fp = PS[0].RegionHandle; foreach (var P in PS) { if (fp != P.RegionHandle) { SelectObjects(deSelect, fp, selectobjs, autoDeselect); fp = P.RegionHandle; selectobjs = new List <uint>(); } selectobjs.Add(P.LocalID); uint pid = P.ParentID; if (pid != 0) { selectobjs.Add(pid); } } SelectObjects(deSelect, fp, selectobjs, autoDeselect); return(Success("objects " + note + "selected " + PS.Count)); }
public override void Update(GameTime gameTime) { if (MapManager.ActiveMap != null) { MapManager.ActiveMap.Update(gameTime); } var gameobjects = WorldObjects.AllObjects(); foreach (var gameobject in gameobjects) { gameobject.Update(gameTime); } }
/// <inheritdoc /> public virtual void Update(ISubject subject) { if (subject is BaseCreature creature) { if (creature.IsDead) { Creatures.Remove(creature); } } if (subject is InteractableWorldObject worldObject) { WorldObjects.Remove(worldObject); } }
public SimObject GetSimObject(object target) { SimObject O = null; UUID id = ToUUID(target); if (id != UUID.Zero) O = WorldObjects.GetSimObjectFromUUID(id); else { if (target is SimObject) { O = (target as SimObject); } } return O; }
static internal SimObject GetSimObjectFromUUID(UUID objid) { DateTime timeOut = DateTime.Now + TimeSpan.FromSeconds(5); while (DateTime.Now < timeOut) { var O = WorldObjects.GetSimObjectFromUUID(objid); if (O != null) { return(O); } Thread.Sleep(500); } return(null); }
public bool ExportPrim(BotClient Client, SimObject exportPrim, OutputDelegate Failure, ImportSettings settings) { uint localID = exportPrim.LocalID; WorldObjects.EnsureRequested(localID + 1, settings.CurSim); try { Client.Objects.SelectObject(settings.CurSim, localID); WorldObjects.EnsureRequested(localID, settings.CurSim); return(ExportPrim0(Client, exportPrim, Failure, settings)); } finally { Client.Objects.DeselectObject(settings.CurSim, localID); } }
public SimAvatarClient(UUID id, WorldObjects objectSystem, Simulator reg) : base(id, objectSystem, reg) { SingleInstance = this; Affordances.ObjectType.SuperType.Add(SimTypeSystem.GetObjectType("PlayerAvatar")); //try //{ // AspectName = slAvatar.Name; //} //catch (Exception) //{ // AspectName += objectSystem.client + "_Avatar_" + slAvatar.LocalID; //} //MakeEnterable(this); WorldSystem.AddAvatar(this, id); }
/// <summary> /// Used in the default world generator to add objects to the world at pseudo-random locations. /// </summary> /// <param name="randomifier">A pseudo random number. If the number is divisible by 10 and the remainder is 0 you place a mountain /// else if you divide by 8 and the remainder is 0 you get an item, else if you divide by 2 and the remainder is 0 you place a creature.</param> /// <param name="x">x coordinate for the object</param> /// <param name="y">y coordinate for the object</param> protected virtual void PlaceObject(int randomifier, int x, int y) { if (WorldObjects.Contains(WorldObjects.Find(obj => obj.Position == new Point(x, y)))) { return; } if (Creatures.Contains(Creatures.Find(obj => obj.Position == new Point(x, y)))) { return; } if (randomifier % 10 == 0) { WorldObjects.Add(new ImpassableTerrain("Mountain", new Point(x, y))); } else if (randomifier % 8 == 0) { WorldObjects.Add(new InteractableWorldObject(new Item("Angel Statue"), new Point(x, y))); } else if (randomifier % 2 == 0) { Random random = new Random(); BaseCreature creature; switch (random.Next(0, 3)) { case 0: creature = _premadeCreatures.Centaur; break; case 1: creature = _premadeCreatures.Goblin; break; case 2: creature = _premadeCreatures.Mage; break; default: creature = _premadeCreatures.Peasant; break; } creature.Position = new Point(x, y); creature.Attach(this); Creatures.Add(creature); } }
public override bool Contributes(object o, Type type) { if (type == useType) { return(true); } if (IsObjectType(ContextType)) { if (o != null) { if (ContextType.IsInstanceOfType(o)) { lastObject = o; return(true); } if (o is Primitive) { lastObject = o; return(true); } { var uuid = ToUUID(o); if (uuid != UUID.Zero) { var lo = WorldObjects.GetSimObjectFromUUID(uuid); if (lo != null) { lastObject = lo; return(true); } lastObject = uuid; } } if (type == typeof(UUID)) { return(false); } } if (IsObjectType(type)) { return(true); } return(!typeof(InventoryBase).IsInstanceOfType(o)); } return(base.Contributes(o, type)); }
public override void Draw(SpriteBatch spriteBatch) { if (MapManager.ActiveMap != null) { MapManager.ActiveMap.Draw(spriteBatch); } var gameobjects = WorldObjects.GameObjectsOfType <DrawableGameObject>(); foreach (var gameobject in gameobjects) { gameobject.Draw(spriteBatch); } gameobjects.First( o => o is FarmPlayer).Draw(spriteBatch); }
private void Awake() { if (_instance == null) { _instance = this; } if (_instance != this) { Destroy(this); return; } _trees = FindObjectsOfType <Tree>().ToList(); _worldObjects[typeof(Tree)] = _trees.Cast <MonoBehaviour>().ToList(); _worldObjects[typeof(Ark)] = new List <MonoBehaviour>() { FindObjectOfType <Ark>() }; foreach (var tree in _trees) { tree.OnDead += TreeOnDeadHandler; } _additionalCheck[typeof(Tree)] = (monoTree) => { var tree = monoTree as Tree; if (tree == null) { return(false); } return(tree.IsAlive); }; _additionalCheck[typeof(TreeTrunk)] = (monoTrunk) => { var trunk = monoTrunk as TreeTrunk; if (trunk == null) { return(false); } return(!trunk.IsCarring && !trunk.IsLoaded); }; }
public void SetTarget(WorldObjects targetObject) { this.targetObject = targetObject; }
private void ChangeSelection(WorldObjects worldObject, Player controller) { SetSelection(false, playingArea); // altes worldObject deselect if (controller.SelectedObject) { controller.SelectedObject.SetSelection(false, playingArea); } controller.SelectedObject = worldObject; worldObject.SetSelection(true, controller.hud.GetPlayingArea());//new worldObject ist ausgewählt }
protected virtual void BeginAttack(WorldObjects targetObject) { this.targetObject = targetObject; if (TargetInRange()) { attacking = true; PerformAttack(); } else AdjustPosition(); }