public void DeletedObject(Objects.Object deletedObject)
 {
     vehicles.Remove(deletedObject as Vehicle);
     lights.Remove(deletedObject as Lightbulb);
     various.Remove(deletedObject);
     // Cleanup object list, brute force
     // foreach (Vehicle vehicle in vehicles) {
     //  if (vehicle == deletedObject) {
     //      vehicles.Remove(vehicle);
     //      return;
     //  }
     // }
     // foreach (Objects.Object other in various) {
     //  if (other == deletedObject) {
     //      various.Remove(other);
     //      return;
     //  }
     // }
     // foreach (Lightbulb bulb in lights) {
     //  if (bulb == deletedObject) {
     //      lights.Remove(bulb);
     //      return;
     //  }
     // }
 }
        /// <summary>
        /// Remove an object from the equipped objects list.
        /// </summary>
        /// <param name="removableObject">Object to be removed.</param>
        /// <returns>true if the object is removed, false otherwise.</returns>
        public bool RemoveObject(Objects.Object removableObject)
        {
            bool exits = false;

            foreach (Objects.Object playerObject in _equippedObjects)
            {
                if (playerObject == removableObject)
                {
                    exits = true;
                }
            }

            if (exits == false)
            {
                return(false);
            }
            else
            {
                _equippedObjects.Remove(removableObject);

                if (_selectedObject >= _equippedObjects.Count)
                {
                    _selectedObject = _equippedObjects.Count - 1;
                    if (_selectedObject < 0)
                    {
                        _selectedObject = 0;
                    }
                }

                _inside = false;

                return(true);
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="player"></param>
        /// <param name="newObject"></param>
        public EventData_ReloadGun(Player player, Objects.Object newObject)
        {
            _eventType = EventManager.EventType_ChangePlayerObjects;

            _player    = player;
            _newObject = newObject;
        }
示例#4
0
        /// <summary>
        /// Add a new object to the list of objects.
        /// </summary>
        /// <param name="newObject">Object to be added to the list.</param>
        /// <returns>true if the object was added, false otherwise.</returns>
        public bool AddObject(Objects.Object newObject)
        {
            if (_objects.Count == 9)
            {
                return(false);
            }
            else
            {
                if (newObject is Ammo)
                {
                    foreach (Objects.Object playerObject in _objects)
                    {
                        if (playerObject is Ammo && ((Ammo)playerObject).Type == ((Ammo)newObject).Type)
                        {
                            ((Ammo)playerObject).Amount += ((Ammo)newObject).Amount;
                        }
                    }
                }
                else
                {
                    _objects.Add(newObject);

                    OrderObjects();
                }

                return(true);
            }
        }
示例#5
0
        /// <summary>
        /// Constructor of the <c>EventData_ThrowAway</c> class.
        /// </summary>
        /// <param name="player">Reference to the main player.</param>
        /// <param name="newObject">Reference to the object to be thrown away.</param>
        /// <param name="inventoryScreen">Reference to the screen that contains the player inventory.</param>
        public EventData_ThrowAway(Player player, Objects.Object newObject,
                                   InventoryScreen inventoryScreen)
        {
            _eventType = EventManager.EventType_ChangePlayerObjects;

            _player          = player;
            _newObject       = newObject;
            _inventoryScreen = inventoryScreen;
        }
示例#6
0
        public override async Task <ICompletion <INative> > ExecuteAsync(Scope scope)
        {
            var obj = new Objects.Object();

            foreach (var member in Members)
            {
                obj.SetValue(member.Id, await member.ExecuteAsync(scope).GetResult());
            }
            return(new Completion(obj));
        }
示例#7
0
        /// <summary>
        /// Remove an object from the list of objects.
        /// </summary>
        /// <param name="removableObject">Object to be removed.</param>
        /// <returns>true if the object was removed, false otherwise.</returns>
        public bool RemoveObject(Objects.Object removableObject)
        {
            if (!_objects.Contains(removableObject))
            {
                return(false);
            }

            List <Objects.Object> newList = new List <Object>();

            for (int i = 0; i < _objects.Count; i++)
            {
                if (_objects[i] != removableObject)
                {
                    newList.Add(_objects[i]);
                }
                else if (_objects[i].IsEquipped == true)
                {
                    ((AnimatedModel)DModel).MeshesToDraw.Remove(_objects[i].Name);
                }
            }

            _objects = newList;

            // Order position of elements
            bool first             = true;
            int  _notEquippedIndex = 0;

            for (int i = 0; i < _objects.Count; i++)
            {
                if (!_objects[i].IsEquipped && first)
                {
                    first = false;
                    _objects[i].Position = _notEquippedIndex;
                    _notEquippedIndex++;
                }
                else if (!_objects[i].IsEquipped)
                {
                    _objects[i].Position = _notEquippedIndex;
                    _notEquippedIndex++;
                }
            }

            return(true);
        }
        /// <summary>
        /// Add a new object to the not equipped objects list.
        /// </summary>
        /// <param name="newObject">Object to be added.</param>
        /// <returns>true if the object is added, false otherwise.</returns>
        public bool AddObject(Objects.Object newObject)
        {
            if (_notEquippedObjects.Count == 9)
            {
                return(false);
            }

            _notEquippedObjects.Add(newObject);

            for (int i = 0; i < _notEquippedObjects.Count; i++)
            {
                if (_notEquippedObjects[i].Position != i)
                {
                    _notEquippedObjects[i].Position = i;
                }
            }

            return(true);
        }
        /// <summary>
        /// Remove an object from the not equipped objects list.
        /// </summary>
        /// <param name="removableObject">Object to be removed.</param>
        /// <returns>true if the object is removed, false otherwise.</returns>
        public bool RemoveObject(Objects.Object removableObject)
        {
            bool exits = false;

            foreach (Objects.Object playerObject in _notEquippedObjects)
            {
                if (playerObject == removableObject)
                {
                    exits = true;
                }
            }

            if (exits == false)
            {
                return(false);
            }
            else
            {
                _notEquippedObjects.Remove(removableObject);

                // Order position of elements
                for (int i = 0; i < _notEquippedObjects.Count; i++)
                {
                    if (_notEquippedObjects[i].Position != i)
                    {
                        _notEquippedObjects[i].Position = i;
                    }
                }

                if (_selectedObject >= _notEquippedObjects.Count)
                {
                    _selectedObject = _notEquippedObjects.Count - 1;
                    if (_selectedObject < 0)
                    {
                        _selectedObject = 0;
                    }
                }

                return(true);
            }
        }
示例#10
0
        /// <summary>
        /// Add a new object to the equipped objects list.
        /// </summary>
        /// <param name="newObject">Object to be added.</param>
        /// <returns>true if the object is added, false otherwise.</returns>
        public bool AddObject(Objects.Object newObject)
        {
            if (_equippedObjects.Count == 5)
            {
                return(false);
            }

            foreach (Objects.Object playerObject in _equippedObjects)
            {
                if (playerObject is Objects.Armature && newObject is Objects.Armature &&
                    ((Objects.Armature)playerObject).Type == ((Objects.Armature)newObject).Type)
                {
                    return(false);
                }
                else if (playerObject is Objects.Weapon && newObject is Objects.Weapon)
                {
                    return(false);
                }
            }

            _equippedObjects.Add(newObject);

            return(true);
        }
示例#11
0
 public FocusMessage(int id, Objects.Object sender) : base(id) {
     gSender = sender;
 }
示例#12
0
        /// <summary>
        /// Draw the equipped objects of the equipment screen.
        /// </summary>
        /// <param name="gameTime">Global time of the game.</param>
        public void Draw(GameTime gameTime)
        {
            Vector2 viewportSize = new Vector2(
                GameSettings.DefaultInstance.ResolutionWidth,
                GameSettings.DefaultInstance.ResolutionHeight);

            // Draw the background rectangle.
            ScreenManager.SpriteBatch.Draw(TextureManager.GetTexture("EquipmentBackground").BaseTexture as Texture2D,
                                           new Rectangle((int)_initialPosition.X, (int)_initialPosition.Y,
                                                         (int)(viewportSize.X * 3f / 8f - InventoryScreen.HPad),
                                                         (int)(viewportSize.Y * 6f / 8f - InventoryScreen.VPad * 2f)),
                                           new Color(255, 255, 255, 200));

            // Draw each equipped object
            foreach (Objects.Object playerObject in _equippedObjects)
            {
                playerObject.Draw(gameTime);
            }

            if (!_focus || _equippedObjects.Count == 0)
            {
                return;
            }

            Objects.Object element = null;
            foreach (Objects.Object equippedObject in _equippedObjects)
            {
                if ((_selectedObject == 1 && equippedObject is Objects.Weapon) ||
                    (_selectedObject == 0 && equippedObject is Objects.Armature && ((Objects.Armature)equippedObject).Type == Objects.Armature.ArmatureType.Helmet) ||
                    (_selectedObject == 2 && equippedObject is Objects.Armature && ((Objects.Armature)equippedObject).Type == Objects.Armature.ArmatureType.Body) ||
                    (_selectedObject == 3 && equippedObject is Objects.Armature && ((Objects.Armature)equippedObject).Type == Objects.Armature.ArmatureType.Hand) ||
                    (_selectedObject == 4 && equippedObject is Objects.Armature && ((Objects.Armature)equippedObject).Type == Objects.Armature.ArmatureType.Foot))
                {
                    element = equippedObject;
                }
            }

            if (_selectedObject == 0)
            {
                ScreenManager.SpriteBatch.Draw(TextureManager.GetTexture("DummyTexture15T").BaseTexture,
                                               new Rectangle(
                                                   (int)(viewportSize.X * 2.025f / 8f), (int)(viewportSize.Y * 1.38f / 8f),
                                                   (int)(viewportSize.X * 0.73f / 8f), (int)(viewportSize.Y * 0.875f / 8f)),
                                               Color.White);

                if (_inside)
                {
                    ScreenManager.SpriteBatch.Draw(TextureManager.GetTexture("DialogBackground").BaseTexture as Texture2D,
                                                   new Rectangle(
                                                       (int)(viewportSize.X * 1.675f / 8f), (int)(viewportSize.Y * 2.255f / 8f),
                                                       (int)(viewportSize.X * 1.5f / 8f), (int)(viewportSize.Y * 2.6f / 8f)),
                                                   Color.White);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_armature_type") + ": " +
                                                         StringHelper.DefaultInstance.Get("equipment_armature_type_helmet"),
                                                         new Vector2(viewportSize.X * 1.8f / 8f, viewportSize.Y * 2.5f / 8f),
                                                         Color.White, 0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_armature_defense") + ": " +
                                                         ((Objects.Armature)element).Defense,
                                                         new Vector2(viewportSize.X * 1.8f / 8f, viewportSize.Y * 2.95f / 8f),
                                                         Color.White, 0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_armature_skill") + ": " +
                                                         ((Objects.Armature)element).Skill,
                                                         new Vector2(viewportSize.X * 1.8f / 8f, viewportSize.Y * 3.4f / 8f),
                                                         Color.White, 0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.Draw(TextureManager.GetTexture("SeparationBar").BaseTexture,
                                                   new Rectangle(
                                                       (int)(viewportSize.X * 1.8f / 8f), (int)(viewportSize.Y * 3.75f / 8f),
                                                       (int)(viewportSize.X * 1.25f / 8f), 3),
                                                   Color.White);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_select_object_unequip"),
                                                         new Vector2(viewportSize.X * 1.8f / 8f, viewportSize.Y * 3.85f / 8f),
                                                         _selectedEntryMenu == 0 ? Color.White : Color.SlateGray,
                                                         0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_select_object_throw_away"),
                                                         new Vector2(viewportSize.X * 1.8f / 8f, viewportSize.Y * 4.3f / 8f),
                                                         _selectedEntryMenu == 1 ? Color.White : Color.SlateGray,
                                                         0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);
                }
            }
            else if (_selectedObject == 1)
            {
                ScreenManager.SpriteBatch.Draw(TextureManager.GetTexture("DummyTexture15T").BaseTexture,
                                               new Rectangle(
                                                   (int)(viewportSize.X * 3.105f / 8f), (int)(viewportSize.Y * 1.41f / 8f),
                                                   (int)(viewportSize.X * 0.725f / 8f), (int)(viewportSize.Y * 2.28f / 8f)),
                                               Color.White);

                if (_inside)
                {
                    ScreenManager.SpriteBatch.Draw(TextureManager.GetTexture("DialogBackground").BaseTexture as Texture2D,
                                                   new Rectangle(
                                                       (int)(viewportSize.X * 2.75 / 8f), (int)(viewportSize.Y * 2.2f / 8f),
                                                       (int)(viewportSize.X * 1.6f / 8f), (int)(viewportSize.Y * 2.6f / 8f)),
                                                   Color.White);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_weapon_type") + ": " +
                                                         StringHelper.DefaultInstance.Get("equipment_weapon"),
                                                         new Vector2(viewportSize.X * 2.875f / 8f, viewportSize.Y * 2.45f / 8f),
                                                         Color.White, 0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_weapon_ammo") + ": " +
                                                         ((Objects.Weapon)element).CurrentAmmo,
                                                         new Vector2(viewportSize.X * 2.875f / 8f, viewportSize.Y * 2.905f / 8f),
                                                         Color.White, 0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_weapon_power") + ": " +
                                                         ((Objects.Weapon)element).Power,
                                                         new Vector2(viewportSize.X * 2.875f / 8f, viewportSize.Y * 3.36f / 8f),
                                                         Color.White, 0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.Draw(TextureManager.GetTexture("SeparationBar").BaseTexture,
                                                   new Rectangle(
                                                       (int)(viewportSize.X * 2.875f / 8f), (int)(viewportSize.Y * 3.71f / 8f),
                                                       (int)(viewportSize.X * 1.25f / 8f), 3),
                                                   Color.White);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_select_object_unequip"),
                                                         new Vector2(
                                                             viewportSize.X * 2.875f / 8f, viewportSize.Y * 3.81f / 8f),
                                                         _selectedEntryMenu == 0 ? Color.White : Color.SlateGray,
                                                         0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_select_object_throw_away"),
                                                         new Vector2(
                                                             viewportSize.X * 2.875f / 8f, viewportSize.Y * 4.265f / 8f),
                                                         _selectedEntryMenu == 1 ? Color.White : Color.SlateGray,
                                                         0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);
                }
            }
            else if (_selectedObject == 2)
            {
                ScreenManager.SpriteBatch.Draw(TextureManager.GetTexture("DummyTexture15T").BaseTexture,
                                               new Rectangle(
                                                   (int)(viewportSize.X * 1.825f / 8f), (int)(viewportSize.Y * 2.35f / 8f),
                                                   (int)(viewportSize.X * 1.185f / 8f), (int)(viewportSize.Y * 3.5f / 8f)),
                                               Color.White);

                if (_inside)
                {
                    ScreenManager.SpriteBatch.Draw(TextureManager.GetTexture("DialogBackground").BaseTexture as Texture2D,
                                                   new Rectangle(
                                                       (int)(viewportSize.X * 1.675f / 8f), (int)(viewportSize.Y * 3.25f / 8f),
                                                       (int)(viewportSize.X * 1.6f / 8f), (int)(viewportSize.Y * 2.6f / 8f)),
                                                   Color.White);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_armature_type") + ": " +
                                                         StringHelper.DefaultInstance.Get("equipment_armature_type_suit"),
                                                         new Vector2(viewportSize.X * 1.8f / 8f, viewportSize.Y * 3.495f / 8f),
                                                         Color.White, 0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_armature_defense") + ": " +
                                                         ((Objects.Armature)element).Defense,
                                                         new Vector2(viewportSize.X * 1.8f / 8f, viewportSize.Y * 3.95f / 8f),
                                                         Color.White, 0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_armature_skill") + ": " +
                                                         ((Objects.Armature)element).Skill,
                                                         new Vector2(viewportSize.X * 1.8f / 8f, viewportSize.Y * 4.405f / 8f),
                                                         Color.White, 0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.Draw(TextureManager.GetTexture("SeparationBar").BaseTexture,
                                                   new Rectangle(
                                                       (int)(viewportSize.X * 1.8f / 8f), (int)(viewportSize.Y * 4.755f / 8f),
                                                       (int)(viewportSize.X * 1.25f / 8f), 3),
                                                   Color.White);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_select_object_unequip"),
                                                         new Vector2(
                                                             viewportSize.X * 1.8f / 8f, viewportSize.Y * 4.855f / 8f),
                                                         _selectedEntryMenu == 0 ? Color.White : Color.SlateGray,
                                                         0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_select_object_throw_away"),
                                                         new Vector2(
                                                             viewportSize.X * 1.8f / 8f, viewportSize.Y * 5.31f / 8f),
                                                         _selectedEntryMenu == 1 ? Color.White : Color.SlateGray,
                                                         0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);
                }
            }
            else if (_selectedObject == 3)
            {
                ScreenManager.SpriteBatch.Draw(TextureManager.GetTexture("DummyTexture15T").BaseTexture,
                                               new Rectangle(
                                                   (int)(viewportSize.X * 1.25f / 8f), (int)(viewportSize.Y * 3.87f / 8f),
                                                   (int)(viewportSize.X * 0.5f / 8f), (int)(viewportSize.Y * 0.7f / 8f)),
                                               Color.White);

                ScreenManager.SpriteBatch.Draw(TextureManager.GetTexture("DummyTexture15T").BaseTexture,
                                               new Rectangle(
                                                   (int)(viewportSize.X * 3.095f / 8f), (int)(viewportSize.Y * 3.87f / 8f),
                                                   (int)(viewportSize.X * 0.5f / 8f), (int)(viewportSize.Y * 0.7f / 8f)),
                                               Color.White);

                if (_inside)
                {
                    ScreenManager.SpriteBatch.Draw(TextureManager.GetTexture("DialogBackground").BaseTexture as Texture2D,
                                                   new Rectangle(
                                                       (int)(viewportSize.X * 1.7 / 8f), (int)(viewportSize.Y * 4.57f / 8f),
                                                       (int)(viewportSize.X * 1.6f / 8f), (int)(viewportSize.Y * 2.6f / 8f)),
                                                   Color.White);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_armature_type") + ": " +
                                                         StringHelper.DefaultInstance.Get("equipment_armature_type_gloves"),
                                                         new Vector2(viewportSize.X * 1.825f / 8f, viewportSize.Y * 4.815f / 8f),
                                                         Color.White, 0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_armature_defense") + ": " +
                                                         ((Objects.Armature)element).Defense,
                                                         new Vector2(viewportSize.X * 1.825f / 8f, viewportSize.Y * 5.27f / 8f),
                                                         Color.White, 0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_armature_skill") + ": " +
                                                         ((Objects.Armature)element).Skill,
                                                         new Vector2(viewportSize.X * 1.825f / 8f, viewportSize.Y * 5.725f / 8f),
                                                         Color.White, 0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.Draw(TextureManager.GetTexture("SeparationBar").BaseTexture,
                                                   new Rectangle(
                                                       (int)(viewportSize.X * 1.825f / 8f), (int)(viewportSize.Y * 6.075f / 8f),
                                                       (int)(viewportSize.X * 1.25f / 8f), 3),
                                                   Color.White);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_select_object_unequip"),
                                                         new Vector2(
                                                             viewportSize.X * 1.825f / 8f, viewportSize.Y * 6.175f / 8f),
                                                         _selectedEntryMenu == 0 ? Color.White : Color.SlateGray,
                                                         0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_select_object_throw_away"),
                                                         new Vector2(
                                                             viewportSize.X * 1.825f / 8f, viewportSize.Y * 6.63f / 8f),
                                                         _selectedEntryMenu == 1 ? Color.White : Color.SlateGray,
                                                         0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);
                }
            }
            else
            {
                ScreenManager.SpriteBatch.Draw(TextureManager.GetTexture("DummyTexture15T").BaseTexture,
                                               new Rectangle(
                                                   (int)(viewportSize.X * 1.825f / 8f), (int)(viewportSize.Y * 5.99f / 8f),
                                                   (int)(viewportSize.X * 0.555f / 8f), (int)(viewportSize.Y * 0.75f / 8f)),
                                               Color.White);

                ScreenManager.SpriteBatch.Draw(TextureManager.GetTexture("DummyTexture15T").BaseTexture,
                                               new Rectangle(
                                                   (int)(viewportSize.X * 2.45f / 8f), (int)(viewportSize.Y * 5.99f / 8f),
                                                   (int)(viewportSize.X * 0.555f / 8f), (int)(viewportSize.Y * 0.75f / 8f)),
                                               Color.White);

                if (_inside)
                {
                    ScreenManager.SpriteBatch.Draw(TextureManager.GetTexture("DialogBackground").BaseTexture as Texture2D,
                                                   new Rectangle(
                                                       (int)(viewportSize.X * 1.65 / 8f), (int)(viewportSize.Y * 3.25f / 8f),
                                                       (int)(viewportSize.X * 1.6f / 8f), (int)(viewportSize.Y * 2.75f / 8f)),
                                                   Color.White);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_armature_type") + ": " +
                                                         StringHelper.DefaultInstance.Get("equipment_armature_type_boots"),
                                                         new Vector2(viewportSize.X * 1.775f / 8f, viewportSize.Y * 3.52f / 8f),
                                                         Color.White, 0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_armature_defense") + ": " +
                                                         ((Objects.Armature)element).Defense,
                                                         new Vector2(viewportSize.X * 1.775f / 8f, viewportSize.Y * 3.975f / 8f),
                                                         Color.White, 0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_armature_skill") + ": " +
                                                         ((Objects.Armature)element).Skill,
                                                         new Vector2(viewportSize.X * 1.775f / 8f, viewportSize.Y * 4.43f / 8f),
                                                         Color.White, 0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.Draw(TextureManager.GetTexture("SeparationBar").BaseTexture,
                                                   new Rectangle(
                                                       (int)(viewportSize.X * 1.775f / 8f), (int)(viewportSize.Y * 4.885f / 8f),
                                                       (int)(viewportSize.X * 1.25f / 8f), 3),
                                                   Color.White);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_select_object_unequip"),
                                                         new Vector2(
                                                             viewportSize.X * 1.775f / 8f, viewportSize.Y * 4.985f / 8f),
                                                         _selectedEntryMenu == 0 ? Color.White : Color.SlateGray,
                                                         0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);

                    ScreenManager.SpriteBatch.DrawString(ScreenManager.FontEntriesSelected,
                                                         StringHelper.DefaultInstance.Get("equipment_select_object_throw_away"),
                                                         new Vector2(
                                                             viewportSize.X * 1.775f / 8f, viewportSize.Y * 5.44f / 8f),
                                                         _selectedEntryMenu == 1 ? Color.White : Color.SlateGray,
                                                         0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);
                }
            }
        }
示例#13
0
        /// <summary>
        /// Handle the input of the user in the equipment screen.
        /// </summary>
        /// <param name="input">Current state of the player input.</param>
        public void HandleInput(GameComponents.Input input)
        {
            if (input.Down)
            {
                if (!_inside)
                {
                    if (_selectedObject == 0)
                    {
                        _selectedObject = 2;
                    }
                    else if (_selectedObject == 1)
                    {
                        _selectedObject = 3;
                    }
                    else if (_selectedObject == 2)
                    {
                        _selectedObject = 4;
                    }
                    else if (_selectedObject == 3)
                    {
                        _selectedObject = 1;
                    }
                    else
                    {
                        _selectedObject = 0;
                    }
                }
                else
                {
                    _selectedEntryMenu = _selectedEntryMenu - 1 < 0 ? 1 : 0;
                }
            }

            if (input.Up)
            {
                if (!_inside)
                {
                    if (_selectedObject == 0)
                    {
                        _selectedObject = 4;
                    }
                    else if (_selectedObject == 1)
                    {
                        _selectedObject = 3;
                    }
                    else if (_selectedObject == 2)
                    {
                        _selectedObject = 0;
                    }
                    else if (_selectedObject == 3)
                    {
                        _selectedObject = 1;
                    }
                    else
                    {
                        _selectedObject = 2;
                    }
                }
                else
                {
                    _selectedEntryMenu = _selectedEntryMenu + 1 > 1 ? 0 : 1;
                }
            }

            if (input.Left)
            {
                if (!_inside)
                {
                    if (_selectedObject == 0)
                    {
                        _selectedObject = 1;
                    }
                    else if (_selectedObject == 1)
                    {
                        _selectedObject = 0;
                    }
                    else if (_selectedObject == 2)
                    {
                        _selectedObject = 3;
                    }
                    else if (_selectedObject == 3)
                    {
                        _selectedObject = 2;
                    }
                }
            }

            if (input.Right)
            {
                if (!_inside)
                {
                    if (_selectedObject == 0)
                    {
                        _selectedObject = 1;
                    }
                    else if (_selectedObject == 1)
                    {
                        _selectedObject = 0;
                    }
                    else if (_selectedObject == 2)
                    {
                        _selectedObject = 3;
                    }
                    else if (_selectedObject == 3)
                    {
                        _selectedObject = 2;
                    }
                }
            }

            if (input.Action)
            {
                if (!_inside)
                {
                    //_inside = true;
                    foreach (Objects.Object playerObject in _equippedObjects)
                    {
                        if (playerObject is Objects.Weapon && _selectedObject == 1)
                        {
                            _inside = true;
                        }
                        else if (playerObject is Objects.Armature && _selectedObject == 0 &&
                                 ((Objects.Armature)playerObject).Type == Armature.ArmatureType.Helmet)
                        {
                            _inside = true;
                        }
                        else if (playerObject is Objects.Armature && _selectedObject == 2 &&
                                 ((Objects.Armature)playerObject).Type == Armature.ArmatureType.Body)
                        {
                            _inside = true;
                        }
                        else if (playerObject is Objects.Armature && _selectedObject == 3 &&
                                 ((Objects.Armature)playerObject).Type == Armature.ArmatureType.Hand)
                        {
                            _inside = true;
                        }
                        else if (playerObject is Objects.Armature && _selectedObject == 4 &&
                                 ((Objects.Armature)playerObject).Type == Armature.ArmatureType.Foot)
                        {
                            _inside = true;
                        }
                    }
                }
                else
                {
                    if (_selectedEntryMenu == 0)
                    {
                        Objects.Object element = null;
                        for (int i = 0; i < _equippedObjects.Count && element == null; i++)
                        {
                            if (_selectedObject == 0 && _equippedObjects[i] is Objects.Armature &&
                                ((Objects.Armature)_equippedObjects[i]).Type == Armature.ArmatureType.Helmet)
                            {
                                element = _equippedObjects[i];
                            }
                            else if (_selectedObject == 1 && _equippedObjects[i] is Objects.Weapon)
                            {
                                element = _equippedObjects[i];
                            }
                            else if (_selectedObject == 2 && _equippedObjects[i] is Objects.Armature &&
                                     ((Objects.Armature)_equippedObjects[i]).Type == Armature.ArmatureType.Body)
                            {
                                element = _equippedObjects[i];
                            }
                            else if (_selectedObject == 3 && _equippedObjects[i] is Objects.Armature &&
                                     ((Objects.Armature)_equippedObjects[i]).Type == Armature.ArmatureType.Hand)
                            {
                                element = _equippedObjects[i];
                            }
                            else if (_selectedObject == 4 && _equippedObjects[i] is Objects.Armature &&
                                     ((Objects.Armature)_equippedObjects[i]).Type == Armature.ArmatureType.Foot)
                            {
                                element = _equippedObjects[i];
                            }
                        }

                        if (element != null)
                        {
                            EventManager.Trigger(new EventData_UnequipObject(_player, element, _inventoryScreen));
                        }
                    }
                    else
                    {
                        Objects.Object element = null;
                        for (int i = 0; i < _equippedObjects.Count && element == null; i++)
                        {
                            if (_selectedObject == 0 && _equippedObjects[i] is Objects.Armature &&
                                ((Objects.Armature)_equippedObjects[i]).Type == Armature.ArmatureType.Helmet)
                            {
                                element = _equippedObjects[i];
                            }
                            else if (_selectedObject == 1 && _equippedObjects[i] is Objects.Weapon)
                            {
                                element = _equippedObjects[i];
                            }
                            else if (_selectedObject == 2 && _equippedObjects[i] is Objects.Armature &&
                                     ((Objects.Armature)_equippedObjects[i]).Type == Armature.ArmatureType.Body)
                            {
                                element = _equippedObjects[i];
                            }
                            else if (_selectedObject == 3 && _equippedObjects[i] is Objects.Armature &&
                                     ((Objects.Armature)_equippedObjects[i]).Type == Armature.ArmatureType.Hand)
                            {
                                element = _equippedObjects[i];
                            }
                            else if (_selectedObject == 4 && _equippedObjects[i] is Objects.Armature &&
                                     ((Objects.Armature)_equippedObjects[i]).Type == Armature.ArmatureType.Foot)
                            {
                                element = _equippedObjects[i];
                            }
                        }

                        if (element != null)
                        {
                            EventManager.Trigger(new EventData_ThrowAway(_player, element, _inventoryScreen));
                        }
                    }
                }
            }

            if (input.Cancel)
            {
                _inside = false;
            }
        }
示例#14
0
 public GlobalObject()
 {
     _values = new Objects.Object();
 }
示例#15
0
        /// <summary>
        /// Change the state (equipped, not equipped) of an object.
        /// </summary>
        /// <param name="newObject">Object to be changed.</param>
        /// <param name="newState">New state of the object.</param>
        /// <returns></returns>
        public bool ChangeState(Objects.Object newObject, bool newState)
        {
            if (newState)
            {
                if (!_objects.Contains(newObject))
                {
                    return(false);
                }

                // Search for a equiped object
                foreach (Objects.Object playerObject in _objects)
                {
                    if ((playerObject is Objects.Armature && playerObject.IsEquipped && newObject is Objects.Armature &&
                         ((Objects.Armature)playerObject).Type == ((Objects.Armature)newObject).Type) ||
                        (playerObject is Objects.Weapon && newObject is Objects.Weapon && playerObject.IsEquipped))
                    {
                        playerObject.IsEquipped = false;
                        ((InventoryScreen)ScreenManager.GetScreen("Inventory")).Inventory.AddObject(playerObject);

                        ((AnimatedModel)DModel).MeshesToDraw.Remove(playerObject.Name);
                    }
                }

                // Change the state of the new Object
                foreach (Objects.Object playerObject in _objects)
                {
                    if (playerObject == newObject)
                    {
                        playerObject.IsEquipped = true;
                        if (playerObject.Name.Contains("Gun"))
                        {
                            _gun = new Gun(playerObject.Name, ((Weapon)playerObject).Type, this,
                                           ((Weapon)playerObject).Power, ((Weapon)playerObject).CurrentAmmo);
                        }
                        else
                        {
                            ((AnimatedModel)DModel).MeshesToDraw.Add(playerObject.Name);
                        }
                    }
                }

                OrderObjects();

                return(true);
            }
            else
            {
                if (!_objects.Contains(newObject))
                {
                    return(false);
                }

                foreach (Objects.Object playerObject in _objects)
                {
                    if (playerObject == newObject)
                    {
                        if (playerObject.IsEquipped)
                        {
                            ((AnimatedModel)DModel).MeshesToDraw.Remove(playerObject.Name);
                        }
                        playerObject.IsEquipped = false;
                        if (playerObject.Name.Contains("Gun"))
                        {
                            _gun = null;
                        }
                    }
                }

                OrderObjects();

                return(true);
            }
        }
示例#16
0
 public Item(string name, string icon, Objects.Object @object)
 {
     Name = name; Icon = icon; NewObject = @object;
 }