private void setSlotAvailables() { foreach (HullSlot slot in slots) { slot.setSlotAvailable(HullSlot.checkSlotAvailability(hullType, slot.slotType, slot.index)); } }
public void Unequip(ExternalConstructionModule module) { if (module.hullSlot == null) { return; } if (module is HullConstructionModule) { if (((HullConstructionModule)module).internalModule != null) { return; } hullModules.Remove(module.hullSlot.transform.position); } else if (module is ThrusterConstructionModule) { thrust.thrusters.Remove((ThrusterConstructionModule)module); } else if (module is ManeuveringConstructionModule) { thrust.maneuverers.Remove((ManeuveringConstructionModule)module); } HullSlot slot = module.hullSlot; slot.module = null; module.hullSlot = null; slot.Activate(); slot.DeactivateAdjacents(); module.OnUnequip(); CalcBounds(); }
private void setSlotPositions() { foreach (HullSlot slot in slots) { slot.transform.position = trans.position - HullSlot.getSlotPosition(hullType, slot.slotType, slot.index); } }
public HullSlot ActivateWest() { HullSlot slot = EnsureWest(); slot.Activate(); return(slot); }
public HullSlot ActivateSouth() { HullSlot slot = EnsureSouth(); slot.Activate(); return(slot); }
public void Unequip(ExternalConstructionModule module, HullSlot slot) { if (module.hullSlot != slot) { return; } Unequip(module); }
public HullSlot DeactivateWest() { HullSlot slot = West(); if (slot == null || slot.HasAdjacentModules()) { return(slot); } slot.Deactivate(); return(slot); }
public HullSlot EnsureAdjacent(Vector3 offset) { HullSlot slot = Adjacent(offset); if (slot == null) { Vector3 pos = transform.localPosition - offset; slot = Instantiate(prefab) as HullSlot; slot.transform.parent = hull.transform; slot.transform.localPosition = pos; hull.slots.Add(pos, slot); } return(slot); }
private void initWeapons() { HullSlot slot1 = shipData.getSlot(HullSlot.Type.WEAPON, 0); HullSlot slot2 = shipData.getSlot(HullSlot.Type.WEAPON, 1); HullSlot slot3 = shipData.getSlot(HullSlot.Type.WEAPON, 2); HullSlot slot4 = shipData.getSlot(HullSlot.Type.WEAPON, 3); HullSlot slot5 = shipData.getSlot(HullSlot.Type.WEAPON, 4); WeaponData slot1WeaponData = slot1.item == null? null: (WeaponData)slot1.item.itemData; WeaponData slot2WeaponData = slot2.item == null? null: (WeaponData)slot2.item.itemData; WeaponData slot3WeaponData = slot3.item == null? null: (WeaponData)slot3.item.itemData; WeaponData slot4WeaponData = slot4.item == null? null: (WeaponData)slot4.item.itemData; WeaponData slot5WeaponData = slot5.item == null? null: (WeaponData)slot5.item.itemData; if (slot1WeaponData != null) { initWeapon(slot1WeaponData, 0); } if (slot2WeaponData != null) { initWeapon(slot2WeaponData, 1); } if (slot3WeaponData != null) { initWeapon(slot3WeaponData, 2); } if (slot4WeaponData != null) { initWeapon(slot4WeaponData, 3); } if (slot5WeaponData != null) { initWeapon(slot5WeaponData, 4); } weapons = new Weapon[5]; weapons[0] = weapon_1; weapons[1] = weapon_2; weapons[2] = weapon_3; weapons[3] = weapon_4; weapons[4] = weapon_5; }
public void Equip(ExternalConstructionModule module, HullSlot slot) { if (module.hullSlot == slot) { module.transform.localPosition = Vector2.zero; return; } if (!slot.available) { return; } if (module.hullSlot != null) { Unequip(module); } slot.ActivateAdjacents(); module.transform.parent = slot.transform; module.transform.localPosition = Vector2.zero; slot.module = module; module.hullSlot = slot; slot.Deactivate(); inventory.RemoveModule(module); if (module is HullConstructionModule) { hullModules.Add(module.transform.position, (HullConstructionModule)module); } else if (module is ThrusterConstructionModule) { thrust.thrusters.Add((ThrusterConstructionModule)module); } else if (module is ManeuveringConstructionModule) { thrust.maneuverers.Add((ManeuveringConstructionModule)module); } module.OnEquip(); CalcBounds(); }
/** * Reset to last loaded state */ public void Reset() { Clear(); // no manifest, use scene if (scene.hullManifest == null) { HullSlot slot = Instantiate(slotPrefab) as HullSlot; slot.transform.parent = transform; slot.transform.localPosition = Vector3.zero; slots.Add(Vector3.zero, slot); manifest = new HullManifest(); manifest.position = Vector3.zero; manifest.rotation = Quaternion.identity; manifest.velocity = Vector3.zero; manifest.angularVelocity = Vector3.zero; } // manifest exists, construct hull based on manifest else { Construct(scene.hullManifest); } }
public ShipData init(bool onPlanetSurface) { this.onPlanetSurface = onPlanetSurface; trans = transform; HullSlot tempslot; for (int i = 0; i < trans.childCount; i++) { tempslot = trans.GetChild(i).GetComponent <HullSlot>(); if (tempslot != null) { tempslot.init(); switch (tempslot.slotType) { case HullSlot.Type.RADAR: radarSlot = tempslot; break; case HullSlot.Type.ENGINE: engineSlot = tempslot; break; case HullSlot.Type.GENERATOR: if (tempslot.index == 0) { generatorSlot_1 = tempslot; } else if (tempslot.index == 1) { generatorSlot_2 = tempslot; } else if (tempslot.index == 2) { generatorSlot_3 = tempslot; } break; case HullSlot.Type.HARVESTER: if (tempslot.index == 0) { harvesterSlot_1 = tempslot; } else if (tempslot.index == 1) { harvesterSlot_2 = tempslot; } break; case HullSlot.Type.REPAIR_DROID: if (tempslot.index == 0) { repairDroidSlot_1 = tempslot; } else if (tempslot.index == 1) { repairDroidSlot_2 = tempslot; } else if (tempslot.index == 2) { repairDroidSlot_3 = tempslot; } else if (tempslot.index == 3) { repairDroidSlot_4 = tempslot; } break; case HullSlot.Type.SHIELD: if (tempslot.index == 0) { shieldSlot_1 = tempslot; } else if (tempslot.index == 1) { shieldSlot_2 = tempslot; } else if (tempslot.index == 2) { shieldSlot_3 = tempslot; } break; case HullSlot.Type.WEAPON: if (tempslot.index == 0) { weaponSlot_1 = tempslot; } else if (tempslot.index == 1) { weaponSlot_2 = tempslot; } else if (tempslot.index == 2) { weaponSlot_3 = tempslot; } else if (tempslot.index == 3) { weaponSlot_4 = tempslot; } else if (tempslot.index == 4) { weaponSlot_5 = tempslot; } break; case HullSlot.Type.ARMOR: if (tempslot.index == 0) { armorSlot_1 = tempslot; } else if (tempslot.index == 1) { armorSlot_2 = tempslot; } else if (tempslot.index == 2) { armorSlot_3 = tempslot; } else if (tempslot.index == 3) { armorSlot_4 = tempslot; } else if (tempslot.index == 4) { armorSlot_5 = tempslot; } break; default: Debug.Log("Unknown slot type: " + tempslot.slotType); break; } } } slots = new HullSlot[] { radarSlot, engineSlot, generatorSlot_1, generatorSlot_2, generatorSlot_3, harvesterSlot_1, harvesterSlot_2, repairDroidSlot_1, repairDroidSlot_2, repairDroidSlot_3, repairDroidSlot_4, shieldSlot_1, shieldSlot_2, shieldSlot_3, weaponSlot_1, weaponSlot_2, weaponSlot_3, weaponSlot_4, weaponSlot_5, armorSlot_1, armorSlot_2, armorSlot_3, armorSlot_4, armorSlot_5 }; Transform hullInfo = transform.Find("Hull Information"); hullInfo.gameObject.SetActive(true); healthValue = hullInfo.Find("Health Value").GetComponent <TextMesh> (); armorValue = hullInfo.Find("Armor Value").GetComponent <TextMesh> (); shieldValue = hullInfo.Find("Shield Value").GetComponent <TextMesh>(); energyValue = hullInfo.Find("Energy Value").GetComponent <TextMesh> (); okColor = energyValue.color; healthValue.GetComponent <MeshRenderer> ().sortingLayerName = "Inventory"; armorValue.GetComponent <MeshRenderer> ().sortingLayerName = "Inventory"; shieldValue.GetComponent <MeshRenderer> ().sortingLayerName = "Inventory"; energyValue.GetComponent <MeshRenderer> ().sortingLayerName = "Inventory"; healthValue.GetComponent <MeshRenderer> ().sortingOrder = 3; armorValue.GetComponent <MeshRenderer> ().sortingOrder = 3; shieldValue.GetComponent <MeshRenderer> ().sortingOrder = 3; energyValue.GetComponent <MeshRenderer> ().sortingOrder = 3; transform.Find("Hull Image").gameObject.SetActive(true); gameObject.SetActive(false); return(this); }
override protected void checkItemDrop() { if (Utils.hit != null && Utils.hit.name.Equals("Cell")) { InventoryCell cell = Utils.hit.GetComponent <InventoryCell>(); Inventory targetInv = cell.inventory; if (draggedItem.cell == null) { switch (draggedItem.kind) { case ItemKind.SHIP_EQUIPMENT: shipData.updateHullInfo(); break; case ItemKind.EQUIPMENT: playerData.updatePlayerInfo(); break; } } targetInv.addItemToCell(draggedItem, cell); } else if (Utils.hit != null && Utils.hit.name.StartsWith("HullSlot")) { HullSlot slot = Utils.hit.GetComponent <HullSlot> (); if (slot.slotType != getItemToHullSlotType(draggedItem.type)) { if (draggedItem.cell == null && draggedItem.slot == null) { if (inventory.gameObject.activeInHierarchy) { inventory.addItemToCell(draggedItem, draggedItem.cell); } shipData.updateHullInfo(); } else { draggedItem.returnToParent(); } } else if (slot.item == null) { setItemToSlot(slot); } else if (slot.item != null) { Item currItem = slot.takeItem(); if (draggedItem.slot != null && draggedItem.slot.slotType == slot.slotType) { draggedItem.slot.setItem(currItem); } else if (draggedItem.slot != null) { draggedItem.returnToParent(); } else if (inventory.gameObject.activeInHierarchy) { inventory.addItemToCell(currItem, draggedItem.cell); } shipData.updateHullInfo(); setItemToSlot(slot); } } else if (Utils.hit != null && Utils.hit.name.StartsWith("EquipmentSlot")) { EquipmentSlot slot = Utils.hit.GetComponent <EquipmentSlot> (); if (slot.slotType != getItemToEquipmentSlotType(draggedItem.type)) { if (draggedItem.cell == null && draggedItem.slot == null) { if (inventory.gameObject.activeInHierarchy) { inventory.addItemToCell(draggedItem, draggedItem.cell); } playerData.updatePlayerInfo(); } else { draggedItem.returnToParent(); } } else if (slot.item == null) { setItemToSlot(slot); } else if (slot.item != null) { Item currItem = slot.takeItem(); if (draggedItem.slot != null && draggedItem.slot.slotType == slot.slotType) { draggedItem.slot.setItem(currItem); } else if (draggedItem.slot != null) { draggedItem.returnToParent(); } else if (inventory.gameObject.activeInHierarchy) { inventory.addItemToCell(currItem, draggedItem.cell); } setItemToSlot(slot); playerData.updatePlayerInfo(); } } else if (Utils.hit != null && Utils.hit.name.StartsWith("Supply")) { SupplySlot slot = Utils.hit.GetComponent <SupplySlot>(); if (slot.item == null) { setItemToSlot(slot); } else { Item currItem = slot.takeItem(); if (draggedItem.slot != null) { draggedItem.slot.setItem(currItem); } else if (inventory.gameObject.activeInHierarchy) { inventory.addItemToCell(currItem, draggedItem.cell); } setItemToSlot(slot); } } else if (draggedItem.cell == null && draggedItem.slot == null) { if (inventory.gameObject.activeInHierarchy) { inventory.addItemToCell(draggedItem, null); } switch (draggedItem.kind) { case ItemKind.SHIP_EQUIPMENT: shipData.updateHullInfo(); break; case ItemKind.EQUIPMENT: playerData.updatePlayerInfo(); break; } } else { draggedItem.returnToParent(); } }