/// <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!"); }
// 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); }
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); } }