/// <summary>
 /// Unequipe an object if the object is equipped and put in the inventory.
 /// return true if the item was unequipped.
 /// </summary>
 /// <param name="item"></param>
 /// <param name="inventory"></param>
 /// <returns></returns>
 public override bool UnequipObject(Equipable item, Inventory inventory)
 {
     if (item != null)
     {
         if (inventory.CanAddItem(item))
         {
             if (item.Equals(body))
             {
                 inventory.AddItem(body);
                 Body = null;
             }
             else if (item.Equals(rightHand))
             {
                 inventory.AddItem(rightHand);
                 RightHand = null;
             }
             else if (item.Equals(leftHand))
             {
                 inventory.AddItem(leftHand);
                 LeftHand = null;
             }
         }
     }
     return(false);
 }
        /// <summary>
        /// Equip the given equipable.
        /// Return true if the item was correctly equiped.
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public override bool EquipObject(Equipable item, Inventory inventory)
        {
            if (inventory.GetItemCount(item) <= 0)
            {
                return(false);
            }
            Type itemType = item.GetType();

            if (itemType.Equals(typeof(BodyArmor)))
            {
                if (inventory.SwitchItems(Body, item))
                {
                    Body = (BodyArmor)item;
                }
            }
            else if (itemType.Equals(typeof(TwoHandedWeapon)))
            {
                if (inventory.CanAddItem(leftHand) && inventory.SwitchItems(rightHand, item))
                {
                    inventory.AddItem(leftHand);
                    RightHand = (TwoHandedWeapon)item;
                    LeftHand  = null;
                }
            }
            else if (itemType.Equals(typeof(OneHandedWeapon)))
            {
                if (rightHand == null || rightHand.GetType().Equals(typeof(TwoHandedWeapon)))
                {
                    if (inventory.SwitchItems(rightHand, item))
                    {
                        RightHand = (OneHandedWeapon)item;
                    }
                }
                else
                {
                    if (inventory.SwitchItems(leftHand, item))
                    {
                        LeftHand = (OneHandedWeapon)item;
                    }
                }
            }

            return(false);
        }
    public void ItemSelected()
    {
        itemType = item.ToString();

        if (itemType == TypeOfItem.Helmets.ToString())
        {
            helmet = inventory.InventoryExtensions.FindHelmet(objectId);
            inventoryManager.updatePlayerHelmet(helmet);
        }
        else if (itemType == TypeOfItem.Arms.ToString())
        {
            arm = inventory.InventoryExtensions.FindArm(objectId);
            inventoryManager.updatePlayerArm(arm);
        }
        else if (itemType == TypeOfItem.Chests.ToString())
        {
            chest = inventory.InventoryExtensions.FindChest(objectId);
            inventoryManager.updatePlayerChest(chest);
        }
        else if (itemType == TypeOfItem.Legs.ToString())
        {
            leg = inventory.InventoryExtensions.FindLeg(objectId);
            inventoryManager.updatePlayerLeg(leg);
        }
        else if (itemType == TypeOfItem.WeaponAttacks.ToString())
        {
            attack = inventory.InventoryExtensions.FindWeaponAttack(objectId);
            inventoryManager.updatePlayerComboSet(attack);
        }
        else if (itemType == TypeOfItem.OneHandedWeapons.ToString())
        {
            oneHandedWeapon = inventory.InventoryExtensions.FindOneHandedWeapon(objectId);
            inventoryManager.updatePlayerOneHandedWeapon(oneHandedWeapon);
        }
        else if (itemType == TypeOfItem.TwoHandedWeapons.ToString())
        {
            twoHandedWeapon = inventory.InventoryExtensions.FindTwoHandedWeapon(objectId);
            inventoryManager.updatePlayerTwoHandedWeapon(twoHandedWeapon);
        }

        Debug.Log("Item added!");
    }
Exemple #4
0
 // Method to update player's oneHandedWeapon
 public void updatePlayerOneHandedWeapon(OneHandedWeapon w)
 {
     playerManager.CurrentOneHandedWeapon = w;
 }
    // Method to find an specific One Handed Weapon
    public OneHandedWeapon FindOneHandedWeapon(int oneHandedWeaponId)
    {
        OneHandedWeapon oneHandedWeapon = (OneHandedWeapon)FindInventoryItem(inv.WeaponsKey, inv.Weapons.OneHandedWeaponsKey, oneHandedWeaponId);

        return(oneHandedWeapon);
    }
Exemple #6
0
    private void AssembleOneHandedWeapon(Transform weaponContainer, OneHandedWeapon weapon)
    {
        // Draw the Handle
        GameObject handleObject = Instantiate(Resources.Load(weapon.Handle.PrefabFullPath)) as GameObject;

        handleObject.name = "Handle";

        Transform      handleTransform = handleObject.GetComponent <Transform>();
        SpriteRenderer handleRenderer  = handleObject.GetComponent <SpriteRenderer>();

        handleTransform.parent     = weaponContainer;
        handleTransform.localScale = new Vector3(WeaponPartsScale, WeaponPartsScale, 1f);
        float handleTranslateX = handleRenderer.bounds.size.y * -0.5f;

        handleTransform.localPosition   = new Vector3(handleTranslateX, 0f, 0f);
        handleTransform.localRotation   = Quaternion.Euler(0f, 0f, 90f);
        handleRenderer.sortingLayerName = "WeaponsLayer";

        // Draw the Power Module
        GameObject powerModuleObject = Instantiate(Resources.Load(weapon.PowerModule.PrefabFullPath)) as GameObject;

        powerModuleObject.name = "PowerModule";

        Transform      powerModuleTransform = powerModuleObject.GetComponent <Transform>();
        SpriteRenderer powerModuleRenderer  = powerModuleObject.GetComponent <SpriteRenderer>();

        powerModuleTransform.parent     = weaponContainer;
        powerModuleTransform.localScale = new Vector3(WeaponPartsScale, WeaponPartsScale, 1f);
        float powerModuleTranslateX = -handleRenderer.bounds.size.x - powerModuleRenderer.bounds.size.y * 0.5f;

        powerModuleTransform.localPosition   = new Vector3(powerModuleTranslateX, 0f, 0f);
        powerModuleTransform.localRotation   = Quaternion.Euler(0f, 0f, 90f);
        powerModuleRenderer.sortingLayerName = "WeaponsLayer";

        // Draw the propulsors
        for (int i = 0; i < weapon.Propulsors.Length; i++)
        {
            Propulsor propulsorToDraw = weapon.Propulsors[i];

            // Create a propulsor container
            GameObject propulsorContainerObject = new GameObject();
            propulsorContainerObject.name = "Propulsor" + i;
            Transform propulsorContainerTransform = propulsorContainerObject.GetComponent <Transform>();
            propulsorContainerTransform.parent = weaponContainer;
            float propulsorTranslateX = -handleRenderer.bounds.size.x - powerModuleRenderer.bounds.size.x;
            float propulsorTranslateY = weapon.PowerModule.BarrelSlots == 1 ? 0f : powerModuleRenderer.bounds.size.y * (0.25f * (-1 + 2 * i));

            propulsorContainerTransform.localPosition = new Vector3(propulsorTranslateX, propulsorTranslateY, 0f);

            // Draw the Barrel
            GameObject barrelObject = Instantiate(Resources.Load(propulsorToDraw.Barrel.PrefabFullPath)) as GameObject;
            barrelObject.name = "Barrel";

            Transform      barrelTransform = barrelObject.GetComponent <Transform>();
            SpriteRenderer barrelRenderer  = barrelObject.GetComponent <SpriteRenderer>();

            barrelTransform.parent     = propulsorContainerTransform;
            barrelTransform.localScale = new Vector3(WeaponPartsScale, WeaponPartsScale, 1f);
            float barrelTranslateX = -barrelRenderer.bounds.size.y * 0.5f;
            barrelTransform.localPosition   = new Vector3(barrelTranslateX, 0f, 0f);
            barrelTransform.localRotation   = Quaternion.Euler(0f, 0f, 90f);
            barrelRenderer.sortingLayerName = "WeaponsLayer";

            float projectileEmitterTranslateX = -barrelRenderer.bounds.size.x * 0.8f;;

            // Draw the Magazine
            GameObject magazineObject = Instantiate(Resources.Load(propulsorToDraw.Magazine.PrefabFullPath)) as GameObject;
            magazineObject.name = "Magazine";

            Transform      magazineTransform = magazineObject.GetComponent <Transform>();
            SpriteRenderer magazineRenderer  = magazineObject.GetComponent <SpriteRenderer>();

            magazineTransform.parent     = propulsorContainerTransform;
            magazineTransform.localScale = new Vector3(WeaponPartsScale, WeaponPartsScale, 1f);
            float magazineTranslateX = -magazineRenderer.bounds.size.y * 0.5f;
            magazineTransform.localPosition   = new Vector3(magazineTranslateX, 0f, 0f);
            magazineTransform.localRotation   = Quaternion.Euler(0f, 0f, 90f);
            magazineRenderer.sortingLayerName = "WeaponsLayer";
            magazineRenderer.sortingOrder     = 1;

            // Draw the Extension
            if (propulsorToDraw.Extension != null)
            {
                GameObject extensionObject = Instantiate(Resources.Load(propulsorToDraw.Extension.PrefabFullPath)) as GameObject;
                extensionObject.name = "Extension";

                Transform      extensionTransform = extensionObject.GetComponent <Transform>();
                SpriteRenderer extensionRenderer  = extensionObject.GetComponent <SpriteRenderer>();

                extensionTransform.parent     = propulsorContainerTransform;
                extensionTransform.localScale = new Vector3(WeaponPartsScale, WeaponPartsScale, 1f);
                float extensionTranslateX = -barrelRenderer.bounds.size.x - extensionRenderer.bounds.size.y * 0.5f;
                extensionTransform.localPosition   = new Vector3(extensionTranslateX, 0f, 0f);
                extensionTransform.localRotation   = Quaternion.Euler(0f, 0f, 90f);
                extensionRenderer.sortingLayerName = "WeaponsLayer";

                projectileEmitterTranslateX = -barrelRenderer.bounds.size.x - extensionRenderer.bounds.size.y * 0.8f;
            }

            // Draw the Accessory
            if (propulsorToDraw.Accessory != null)
            {
                GameObject accessoryObject = Instantiate(Resources.Load(propulsorToDraw.Accessory.PrefabFullPath)) as GameObject;
                accessoryObject.name = "Accessory";

                Transform      accessoryTransform = accessoryObject.GetComponent <Transform>();
                SpriteRenderer accessoryRenderer  = accessoryObject.GetComponent <SpriteRenderer>();

                accessoryTransform.parent     = propulsorContainerTransform;
                accessoryTransform.localScale = new Vector3(WeaponPartsScale, WeaponPartsScale, 1f);
                float accessoryTranslateX = -barrelRenderer.bounds.size.x * 0.75f;
                accessoryTransform.localPosition   = new Vector3(accessoryTranslateX, 0f, 0f);
                accessoryTransform.localRotation   = Quaternion.Euler(0f, 0f, 90f);
                accessoryRenderer.sortingLayerName = "WeaponsLayer";
                accessoryRenderer.sortingOrder     = 1;
            }

            // Create the projectile emitter
            string     emitterPrefab = ProjectileEmitterContainer.GetPrefabPath(propulsorToDraw);
            GameObject emitterObject = Instantiate(Resources.Load(emitterPrefab)) as GameObject;
            emitterObject.name = "ProjectileEmitter";

            Transform emitterTransform = emitterObject.GetComponent <Transform>();
            emitterTransform.parent        = propulsorContainerTransform;
            emitterTransform.localPosition = new Vector3(projectileEmitterTranslateX, 0f, 0f);
        }
    }