Example #1
0
 private void setSlotAvailables()
 {
     foreach (HullSlot slot in slots)
     {
         slot.setSlotAvailable(HullSlot.checkSlotAvailability(hullType, slot.slotType, slot.index));
     }
 }
Example #2
0
    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();
    }
Example #3
0
 private void setSlotPositions()
 {
     foreach (HullSlot slot in slots)
     {
         slot.transform.position = trans.position - HullSlot.getSlotPosition(hullType, slot.slotType, slot.index);
     }
 }
Example #4
0
    public HullSlot ActivateWest()
    {
        HullSlot slot = EnsureWest();

        slot.Activate();
        return(slot);
    }
Example #5
0
    public HullSlot ActivateSouth()
    {
        HullSlot slot = EnsureSouth();

        slot.Activate();
        return(slot);
    }
Example #6
0
 public void Unequip(ExternalConstructionModule module, HullSlot slot)
 {
     if (module.hullSlot != slot)
     {
         return;
     }
     Unequip(module);
 }
Example #7
0
    public HullSlot DeactivateWest()
    {
        HullSlot slot = West();

        if (slot == null || slot.HasAdjacentModules())
        {
            return(slot);
        }
        slot.Deactivate();
        return(slot);
    }
Example #8
0
    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);
    }
Example #9
0
    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;
    }
Example #10
0
 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();
 }
Example #11
0
    /**
     * 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);
        }
    }
Example #12
0
    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);
    }
Example #13
0
    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();
        }
    }