public void arsenalLeftClick(CargoItemSlot cargoItemSlot) { if (cargoItemSlot.CargoItem is TurretDescription) { unequipTurret((TurretDescription)cargoItemSlot.CargoItem, cargoItemSlot.slotId); } }
/*private void equipTurretToUpgrader(CargoItemSlot cargoItemSlot) * { * TurretDescritpion turretToEquip = cargoItemSlot.CargoItem as TurretDescritpion; * if(turretToEquip != null) * { * equipTurretToUpgrader(turretToEquip); * } * } * * public void equipTurretToUpgrader(TurretDescritpion turret) * { * upgraderPanel.addTurret(turret); * * upgraderPanel.turretName.text = turret.name; * upgraderPanel.damageValue.text = "" + turret.actualDamage; * upgraderPanel.healthValue.text = "" + turret.actualHealth; * upgraderPanel.shotBySalveValue.text = turret.actualShotsPerSalve + " x " + turret.actualNbrOfSalve; * upgraderPanel.cooldownValue.text = "" + turret.actualCooldown; * upgraderPanel.speedValue.text = "" + turret.actualSpeed; * * upgraderPanel.turretType.text = "" + turret.turretType; * upgraderPanel.projectileType.text = "" + turret.projectileType; * upgraderPanel.modifierType.text = "" + turret.modifierPrimaryType; * }*/ public void cargoLeftClick(CargoItemSlot cargoItemSlot) { if (cargoItemSlot.CargoItem is TurretDescription) { equipTurretToArsenal((TurretDescription)cargoItemSlot.CargoItem); } }
private void beginDrag(CargoItemSlot cargoItemSlot) { if (cargoItemSlot.CargoItem != null && !cargoItemSlot.isUsed && !cargoItemSlot.isLocked) { draggedSlot = cargoItemSlot; dragableImage.sprite = cargoItemSlot.turretImage.sprite; dragableImage.transform.position = Input.mousePosition; dragableImage.enabled = true; dragableImage.SetNativeSize(); } }
private void drop(CargoItemSlot dropCargoItemSlot) { if (draggedSlot != null) { TurretDescription dragItem = draggedSlot.CargoItem as TurretDescription; //item dragged by the player TurretDescription dropItem = dropCargoItemSlot.CargoItem as TurretDescription; //item present or not in the cargoItemSlot int slotIdDraggedItem = -1; //We want to know the slotId of the dragged item, and if its a cargo or an arsenal slot if (dragItem.slotName == SlotName.Arsenal) //Turret Slot { //Get slotId of the turret to unequip from arsenal slotIdDraggedItem = dragItem.arsenalId; } else if (dragItem.slotName == SlotName.Cargo) //Cargo Slot { //Get slotId of the turret to unequip from cargo slotIdDraggedItem = dragItem.cargoId; } //Debug.Log(slotIdDraggedItem); //Case 1 : drop item in empty arsenal slot (OK) if (dropCargoItemSlot is TurretSlot && dragItem != null && dropItem == null) { if (dragItem is TurretDescription) //if dragged is a turret { if ((draggedSlot as TurretSlot) != null) //if dragged item come from arsenal (OK) { //Switch turrets dragItem.unequipTurret(this, draggedSlot.slotId); dragItem.equipTurret(this, dropCargoItemSlot.slotId); //equip dragTurret in arsenal slot //Switch hidders (draggedSlot as TurretSlot).hidderEmpty.SetActive(true); (dropCargoItemSlot as TurretSlot).hidderEmpty.SetActive(false); //Switch visual dropCargoItemSlot.CargoItem = draggedSlot.CargoItem; draggedSlot.CargoItem = null; //Update id (dropCargoItemSlot as TurretSlot).cargoId = (draggedSlot as TurretSlot).cargoId; (draggedSlot as TurretSlot).cargoId = -1; //Update price (dropCargoItemSlot as TurretSlot).updateUpgradePrice(dragItem.actualUpgradePriceScraps, dragItem.actualUpgradePriceEnergyCore); (draggedSlot as TurretSlot).updateUpgradePrice(dropItem.actualUpgradePriceScraps, dropItem.actualUpgradePriceEnergyCore); } else //if dragged item come from cargo { dragItem.equipTurret(this, dropCargoItemSlot.slotId); //Switch hidders (dropCargoItemSlot as TurretSlot).hidderEmpty.SetActive(false); draggedSlot.isUsed = true; draggedSlot.manageHidders(); //Switch visual dropCargoItemSlot.CargoItem = draggedSlot.CargoItem; //Update id (dropCargoItemSlot as TurretSlot).cargoId = draggedSlot.slotId; //Update price (dropCargoItemSlot as TurretSlot).updateUpgradePrice(dragItem.actualUpgradePriceScraps, dragItem.actualUpgradePriceEnergyCore); } } } //Case 2 : drop item in occupied arsenal slot (OK) if (dropCargoItemSlot is TurretSlot && dragItem != null && dropItem != null && draggedSlot != dropCargoItemSlot) { if (dragItem is TurretDescription) //if dragged is a turret { if ((draggedSlot as TurretSlot) != null) //if dragged item come from arsenal (OK) { dragItem.unequipTurret(this, draggedSlot.slotId); dropItem.unequipTurret(this, dropCargoItemSlot.slotId); dragItem.equipTurret(this, dropCargoItemSlot.slotId); dropItem.equipTurret(this, draggedSlot.slotId); //Switch items CargoItem draggedItem = draggedSlot.CargoItem; draggedSlot.CargoItem = dropCargoItemSlot.CargoItem; dropCargoItemSlot.CargoItem = draggedItem; //Update price (dropCargoItemSlot as TurretSlot).updateUpgradePrice(dragItem.actualUpgradePriceScraps, dragItem.actualUpgradePriceEnergyCore); (draggedSlot as TurretSlot).updateUpgradePrice(dropItem.actualUpgradePriceScraps, dropItem.actualUpgradePriceEnergyCore); } else if (!draggedSlot.isUsed) //if dragged item come from cargo and its not an already used turret (OK) { dropItem.unequipTurret(this, dropCargoItemSlot.slotId); //unequip turret in arsenal slot dragItem.equipTurret(this, dropCargoItemSlot.slotId); //equip dragTurret in arsenal slot //Send dropItem item back to its cargo slot cargo.itemSlots[(dropCargoItemSlot as TurretSlot).cargoId].isUsed = false; cargo.itemSlots[draggedSlot.slotId].isUsed = true; cargo.itemSlots[(dropCargoItemSlot as TurretSlot).cargoId].manageHidders(); cargo.itemSlots[draggedSlot.slotId].manageHidders(); //Change item in arsenal slot dropCargoItemSlot.CargoItem = draggedSlot.CargoItem; //Set slot id in arsenal slot according to the new turret (dropCargoItemSlot as TurretSlot).cargoId = draggedSlot.slotId; //Update price (dropCargoItemSlot as TurretSlot).updateUpgradePrice(dragItem.actualUpgradePriceScraps, dragItem.actualUpgradePriceEnergyCore); dropItem.cargoId = dropCargoItemSlot.slotId; } } } /*//Case 3 : drop item in empty cargo slot (OK) * if (!(dropCargoItemSlot is TurretSlot) && dragItem != null && dropItem == null) * { * Debug.Log("Case 3"); * if (dragItem is TurretDescritpion) //if dragged is a turret * { * if ((dragItem as TurretDescritpion).slotName == SlotName.Arsenal) //if dragged item come from arsenal (OK) * { * dragItem.unequipTurret(this, slotIdDraggedItem); * dragItem.cargoId = dropCargoItemSlot.slotId; ; * } * else if ((dragItem as TurretDescritpion).slotName == SlotName.Cargo) //if dragged item come from cargo (OK) * { * dragItem.cargoId = dropCargoItemSlot.slotId; * } * } * }*/ /*//Case 4 : drop item in occupied cargo slot (OK) * if (!(dropCargoItemSlot is TurretSlot) && dragItem != null && dropItem != null) * { * Debug.Log("Case 4"); * if (dragItem is TurretDescritpion) //if dragged is a turret * { * if ((dragItem as TurretDescritpion).slotName == SlotName.Arsenal) //if dragged item come from arsenal (OK) * { * dragItem.unequipTurret(this, slotIdDraggedItem); //unequip drag Turret from arsenal slot * dropItem.equipTurret(this, slotIdDraggedItem); //equip drop Turret from cargo in arsenal slot * * dragItem.cargoId = dropCargoItemSlot.slotId; * } * else if ((dragItem as TurretDescritpion).slotName == SlotName.Cargo) //if dragged item come from cargo (OK) * { * dragItem.cargoId = dropCargoItemSlot.slotId; * dropItem.cargoId = slotIdDraggedItem; * } * } * }*/ //Case 4 : drop item in occupied cargo slot (Ok) if (!(dropCargoItemSlot is TurretSlot) && dragItem != null && dropItem != null) { if (dragItem is TurretDescription && (draggedSlot as TurretSlot) != null) //if dragged is a turret { if ((draggedSlot as TurretSlot).cargoId == dropCargoItemSlot.slotId && dropCargoItemSlot.isUsed) //if cargo slot is the origin slot of the dragged item, then the turret become empty { dragItem.unequipTurret(this, draggedSlot.slotId); //unequip drag Turret from arsenal slot //Switch hidder cargo.itemSlots[(draggedSlot as TurretSlot).cargoId].isUsed = false; cargo.itemSlots[(draggedSlot as TurretSlot).cargoId].manageHidders(); (draggedSlot as TurretSlot).hidderEmpty.SetActive(true); //Set slot id in arsenal slot to empty (draggedSlot as TurretSlot).cargoId = -1; //Empty arsenal slot draggedSlot.CargoItem = null; //Update price (draggedSlot as TurretSlot).updateUpgradePrice(-1, -1); } else if (!dropCargoItemSlot.isUsed) { dragItem.unequipTurret(this, draggedSlot.slotId); //unequip drag Turret from arsenal slot dropItem.equipTurret(this, draggedSlot.slotId); //equip drop Turret from cargo in arsenal slot //Switch hidder cargo.itemSlots[(draggedSlot as TurretSlot).cargoId].isUsed = false; cargo.itemSlots[(draggedSlot as TurretSlot).cargoId].manageHidders(); dropCargoItemSlot.isUsed = true; dropCargoItemSlot.manageHidders(); //Change item in arsenal slot draggedSlot.CargoItem = dropCargoItemSlot.CargoItem; //Set slot id in arsenal slot according to the new turret (draggedSlot as TurretSlot).cargoId = dropCargoItemSlot.slotId; //Update price (draggedSlot as TurretSlot).updateUpgradePrice(dropItem.actualUpgradePriceScraps, dropItem.actualUpgradePriceEnergyCore); } dragItem.cargoId = dropCargoItemSlot.slotId; } } /* * if (dragItem is TurretDescritpion) * { * Debug.Log("DragItem"); * if (dragItem != null) dragItem.unequipTurret(this); * if (dropItem != null) dragItem.equipTurret(this, dropCargoItemSlot.slotId); * } * if (dropItem is TurretDescritpion) * { * Debug.Log("DropItem"); * if (dragItem != null) dragItem.equipTurret(this, dropCargoItemSlot.slotId); * if (dropItem != null) dragItem.unequipTurret(this); * }*/ //Reverse items positions /*CargoItem draggedItem = draggedSlot.CargoItem; * draggedSlot.CargoItem = dropCargoItemSlot.CargoItem; * dropCargoItemSlot.CargoItem = draggedItem;*/ } }
private void drag(CargoItemSlot cargoItemSlot) { Debug.Log(Input.mousePosition); dragableImage.transform.position = Input.mousePosition; }
private void endDrag(CargoItemSlot cargoItemSlot) { dragableImage.enabled = false; }