public void installComponent(Component_Class i, int j)
    {
        i.setFaction(this.faction);

        if (i.getType() == "")
        {
            i.Awake();
        }

        if (true)                                                   //If at drydock, and part exists, etc.
        {
            //print(i.getType()+" "+j);
            parts_list[j] = i;
            print("Component installed " + parts_list[j].getType());
            if (i.getType() == "Thruster")
            {
                //parts_list = new Component_Class[size];             //Set component list size to the amount of slots it has
                ship_speed = 0;
                foreach (Component_Class k in parts_list)           //Recalculate ship speed by adding all thruster component tiers together
                {
                    if (k != null)
                    {
                        if (k.getType() == "Thruster")
                        {
                            ship_speed += 1;
                        }
                    }
                }
            }
        }
    }
    //test
    public Component_Class removeComponent(int i)
    {
        Component_Class temp = parts_list[i];

        parts_list[i] = null;
        return(temp);
    }
Exemple #3
0
    public void install(int i)
    {
        print("Install " + component_type + " at slot " + i);
        if (selected_ship.parts_list[i] != null)
        {
            print("To Replace " + selected_ship.parts_list[i].getType());
        }
        bool tmp = true;

        switch (component_type)                                                                     //FInd component to be installed, install, and reduce inv
        {
        case 0:
            if (inRange[component_type] > 0)
            {
                toInstall = selected_ship.gameObject.AddComponent <Thruster_Class>();
                //Decrement space dock array, currently only decrements self
                inRange[component_type]--;
                //current.component_storage[component_type]--;
            }
            else
            {
                tmp = false;
            }
            break;

        case 1:
            if (inRange[component_type] > 0)
            {
                toInstall = selected_ship.gameObject.AddComponent <Armour_Class>();
                //Decrement space dock array, currently only decrements self
                inRange[component_type]--;
                //current.component_storage[component_type]--;
            }
            else
            {
                tmp = false;
            }
            break;

        case 2:
            if (inRange[component_type] > 0)
            {
                toInstall = selected_ship.gameObject.AddComponent <Beam_Class>();
                //Decrement space dock array, currently only decrements self
                inRange[component_type]--;
                //current.component_storage[component_type]--;
            }
            else
            {
                tmp = false;
            }
            break;

        case 3:
            if (inRange[component_type] > 0)
            {
                toInstall = selected_ship.gameObject.AddComponent <Shield_Class>();
                //Decrement space dock array, currently only decrements self
                inRange[component_type]--;
                //current.component_storage[component_type]--;
            }
            else
            {
                tmp = false;
            }
            break;

        case 4:
            if (inRange[component_type] > 0)
            {
                toInstall = selected_ship.gameObject.AddComponent <Missile_Class>();
                //Decrement space dock array, currently only decrements self
                inRange[component_type]--;
                //current.component_storage[component_type]--;
            }
            else
            {
                tmp = false;
            }
            break;

        case 5:
            if (inRange[component_type] > 0)
            {
                toInstall = selected_ship.gameObject.AddComponent <Colonization_Class>();
                //Decrement space dock array, currently only decrements self
                inRange[component_type]--;
                //current.component_storage[component_type]--;
            }
            else
            {
                tmp = false;
            }
            break;

        case 6:
            if (inRange[component_type] > 0)
            {
                toInstall = selected_ship.gameObject.AddComponent <AntiMissile_Class>();
                //Decrement space dock array, currently only decrements self
                inRange[component_type]--;
                //current.component_storage[component_type]--;
            }
            else
            {
                tmp = false;
            }
            break;

        case 7:
            if (inRange[component_type] > 0)
            {
                toInstall = selected_ship.gameObject.AddComponent <Repair_Class>();
                //Decrement space dock array, currently only decrements self
                inRange[component_type]--;
                //current.component_storage[component_type]--;
            }
            else
            {
                tmp = false;
            }
            break;
        }

        if (selected_ship.parts_list[i] != null)                                                 //If part is already in slot, refund type to inv
        {
            int temp = -1;
            //Debug.Break();
            selected_ship.parts_list[i].getType();
            switch (selected_ship.parts_list[i].getType())
            {
            case "Thruster":
                temp = 0;
                break;

            case "Armour":
                temp = 1;
                break;

            case "Beam":
                temp = 2;
                break;

            case "Shield":
                temp = 3;
                break;

            case "Missile":
                temp = 4;
                break;

            case "Colonization":
                temp = 5;
                break;

            case "Anti Missile":
                temp = 6;
                break;

            case "Repair":
                temp = 7;
                break;
            }
            //Increment and replace, does not reference shipyard yet
            if (temp != -1)
            {
                print("Replacing part " + temp + " from " + i);
                Destroy(selected_ship.parts_list[i]);
                selected_ship.removeComponent(i);
                inRange[temp]++;
                //current.component_storage[temp]++;
            }
        }

        if (tmp)
        {
            selected_ship.installComponent(toInstall, i);                                    //Update ship w/ component
        }
    }