Beispiel #1
0
        public void RefreshWeaponsPowerUsage()
        {
            for (int i = 0; i < GameManager.shipWeapons.Count; i++)
            {
                GameObject weapon           = weapons.transform.GetChild(i).gameObject;
                Weaponry   shipWeapon       = GameManager.shipWeapons[i].GetComponent <Weaponry>();
                PowerUsage weaponPowerUsage = weapon.GetComponent <PowerUsage>();

                // if weapon is damaged, turn icon red
                if (shipWeapon.IsDamaged)
                {
                    weaponPowerUsage.iconGO.GetComponent <Image>().color = weapon.GetComponent <Image>().color = damagedColor;
                }
                else
                {
                    weaponPowerUsage.iconGO.GetComponent <Image>().color = weapon.GetComponent <Image>().color = NORMAL_COLOR;
                }

                weaponPowerUsage.maxUsage  = GameManager.ship.WeaponsRoom.weaponsEquipped[i].powerConsumption;
                weaponPowerUsage.usage     = shipWeapon.powerConsumption;
                weaponPowerUsage.IsPowered = shipWeapon.IsPowered;
                weaponPowerUsage.RefreshPowerUsageUI(shipWeapon);
            }

            // refresh power value
            powerValueTxt      = powerValue.GetComponent <TMPro.TextMeshProUGUI>();
            powerValueTxt.text = playerShip.reactor.ToString();
        }
Beispiel #2
0
        // public void SetupCrew() {

        //     // clear previous crewattpanels
        //     foreach(Transform child in crewAttributePanels)
        //         Destroy(child.gameObject);

        //     int currentButtonIndex = 0;

        //     for (int i = 0; i < playerShip.crew.transform.childCount; i++) {

        //         GameObject crewmemberGO;
        //         crewmemberGO = playerShip.crew.transform.GetChild(i).gameObject;

        //         // if the crewmember's gameobject is inactive for some reason, skip to next
        //         if(crewmemberGO.activeSelf == false) {
        //             continue;
        //         }

        //         Crewmember crewmember = crewmemberGO.GetComponent<Crewmember>();

        //         print(crewmember.name);

        //         GameObject crewmemberButtonGO = crewPanel.transform.GetChild(currentButtonIndex).gameObject;
        //         // add to crew button index
        //         currentButtonIndex++;

        //         Image crewmemberIcon = crewmemberButtonGO.transform.GetChild(0).GetComponentInChildren<Image>(true);
        //         // enable crew icon
        //         crewmemberIcon.enabled = true;
        //         // set crew icon
        //         crewmemberIcon.sprite = crewmember.icon;
        //         print(crewmember.icon + " vs " + crewmemberIcon.sprite);
        //         crewmemberIcon.color = crewmember.GetComponent<SpriteRenderer>().color;

        //         RectTransform crewAttPanelRectT = crewmemberButtonGO.transform.Find("CrewAttributesPanel").GetComponent<RectTransform>();
        //         AttributesUIPanel attUI = crewAttPanelRectT.GetComponent<AttributesUIPanel>();
        //         attUI.SetCrewmember(crewmember);

        //         //crewAttPanelRectT.SetParent(crewAttributePanels.transform, true);

        //         // set double click
        //         CustomButton crewmemberButton = crewmemberButtonGO.GetComponent<CustomButton>();
        //         crewmemberButton.onDoubleTap.AddListener(
        //             () =>  crewAttPanelRectT.gameObject.SetActive(!crewAttPanelRectT.gameObject.activeSelf)
        //         );

        //         crewmemberButton.onDoubleTap?.Invoke();

        //     }

        //     AddListenerToShipCrew();

        // }

        public void SetupSystems()
        {
            for (int i = 0; i < playerShip.systems.transform.childCount; i++)
            {
                ShipSystem shipSystem = GameManager.shipSystems[i].GetComponent <ShipSystem>();
                // set system power usage to UI
                GameObject systemButton     = systemPanel.transform.GetChild(i).gameObject;
                PowerUsage systemPowerUsage = systemButton.GetComponent <PowerUsage>();
                systemPowerUsage.maxUsage = shipSystem.powerCap;
                systemPowerUsage.RefreshMaxPowerUsageUI();
                Image systemIcon = systemButton.transform.GetChild(0).GetComponentInChildren <Image>();
                // enable system icon
                systemIcon.enabled = true;
                // set system icon
                systemIcon.sprite = shipSystem.system.icon;
            }

            AddListenerToShipSystems();
            RefreshSystemsPowerUsage();
        }
Beispiel #3
0
        public void RefreshSystemsPowerUsage()
        {
            for (int i = 0; i < GameManager.shipSystems.Count; i++)
            {
                int childCount = systemPanel.transform.childCount;

                ShipSystem shipSystem = GameManager.shipSystems[i].GetComponent <ShipSystem>();

                GameObject systemButton = systemPanel.transform.GetChild(i).gameObject;

                PowerUsage systemPowerUsage = systemButton.GetComponent <PowerUsage>();

                //if system is damaged, turn icon red
                if (shipSystem.IsDamaged)
                {
                    systemPowerUsage.iconGO.GetComponent <Image>().color = systemButton.GetComponent <Image>().color = damagedColor;
                }
                else
                {
                    systemPowerUsage.iconGO.GetComponent <Image>().color = systemButton.GetComponent <Image>().color = NORMAL_COLOR;
                }

                if (systemPowerUsage != null)
                {
                    systemPowerUsage.usage     = shipSystem.powerConsumption;
                    systemPowerUsage.IsPowered = shipSystem.IsPowered;
                    systemPowerUsage.RefreshPowerUsageUI(shipSystem);
                }
                else
                {
                    Debug.LogError(shipSystem.name + " is missing the power usage component");
                }
            }

            // refresh power value
            powerValueTxt      = powerValue.GetComponent <TMPro.TextMeshProUGUI>();
            powerValueTxt.text = playerShip.reactor.ToString();
        }
Beispiel #4
0
        public void SetupWeapons()
        {
            for (int i = 0; i < GameManager.shipWeapons.Count; i++)
            {
                GameObject weapon     = weapons.transform.GetChild(i).gameObject;
                Weaponry   shipWeapon = GameManager.shipWeapons[i].GetComponent <Weaponry>();

                // set weapon power usage to UI
                PowerUsage weaponPowerUsage = weapon.GetComponent <PowerUsage>();
                weaponPowerUsage.SetWeapon(shipWeapon);
                weaponPowerUsage.maxUsage = shipWeapon.powerCap;
                weaponPowerUsage.RefreshMaxPowerUsageUI();

                Image weaponIcon = weapon.transform.GetChild(0).GetComponentInChildren <Image>();
                // enable weapon icon
                weaponIcon.enabled = true;
                // set weapon icon
                weaponIcon.sprite = GameManager.ship.WeaponsRoom.weaponsEquipped[i].icon;
            }

            AddListenerToShipWeapons();

            RefreshWeaponsPowerUsage();
        }