private static void ShowAvailableUpgrade(UpgradeRecord upgrade) { GameObject prefab = (GameObject)Resources.Load("Prefabs/SquadBuilder/UpgradePanel", typeof(GameObject)); Transform contentTransform = GameObject.Find("UI/Panels/SelectUpgradePanel/Panel/Scroll View/Viewport/Content").transform; GameObject newUpgradePanel = MonoBehaviour.Instantiate(prefab, contentTransform); string upgradeType = AllUpgrades.Find(n => n.UpgradeName == upgrade.UpgradeName).UpgradeTypeName; GenericUpgrade newUpgrade = (GenericUpgrade)System.Activator.CreateInstance(Type.GetType(upgradeType)); Edition.Current.AdaptUpgradeToRules(newUpgrade); if (newUpgrade is IVariableCost && Edition.Current is SecondEdition) { (newUpgrade as IVariableCost).UpdateCost(CurrentSquadBuilderShip.Instance); } UpgradePanelSquadBuilder script = newUpgradePanel.GetComponent <UpgradePanelSquadBuilder>(); script.Initialize(upgrade.UpgradeName, CurrentUpgradeSlot, newUpgrade, SelectUpgradeClicked, true); int column = availableUpgradesCounter; newUpgradePanel.transform.localPosition = new Vector3(DISTANCE_MEDIUM + (Edition.Current.UpgradeCardSize.x + DISTANCE_MEDIUM) * column, Edition.Current.UpgradeCardSize.y / 2, 0); availableUpgradesCounter++; }
private static void GeneratePlayerShipConfigurations(PlayerNo playerNo) { foreach (Transform shipPanel in GetShipsPanel(playerNo)) { if (shipPanel.name == "AddShipPanel") { continue; } string pilotNameFull = shipPanel.Find("GroupShip/DropdownPilot").GetComponent <Dropdown>().captionText.text; string pilotNameId = AllPilots[pilotNameFull]; List <string> upgradesList = new List <string>(); foreach (Transform upgradePanel in shipPanel.transform.Find("GroupUpgrades")) { string upgradeName = upgradePanel.GetComponent <Dropdown>().captionText.text; if (AllUpgrades.ContainsKey(upgradeName)) { upgradesList.Add(AllUpgrades[upgradeName]); } } int shipCost = int.Parse(shipPanel.Find("Panel/CostPanel").GetComponentInChildren <Text>().text); Global.AddShip(pilotNameId, upgradesList, playerNo, shipCost); } }
private static string GetUpgradeTooltipImage(GameObject panel) { string upgradeKey = panel.GetComponent <Dropdown>().captionText.text; if (AllUpgrades.ContainsKey(upgradeKey)) { Upgrade.GenericUpgrade upgrade = (Upgrade.GenericUpgrade)Activator.CreateInstance(Type.GetType(AllUpgrades[upgradeKey])); return(upgrade.ImageUrl); } return(null); }
private static string GetNameOfUpgrade(SquadBuilderUpgrade upgrade) { string result = ""; string upgradeName = upgrade.Panel.transform.GetComponent <Dropdown>().captionText.text; if (AllUpgrades.ContainsKey(upgradeName)) { result = AllUpgrades[upgradeName]; } return(result); }
private static string GetUpgradeTooltipImage(GameObject panel) { string upgradeKey = panel.GetComponent <Dropdown>().captionText.text; if (AllUpgrades.Find(n => n.UpgradeNameWithCost == upgradeKey) == null) { return(null); } if (AllUpgrades.Find(n => n.UpgradeNameWithCost == upgradeKey).UpgradeTypeName != null) { GenericUpgrade upgrade = (GenericUpgrade)Activator.CreateInstance(Type.GetType(AllUpgrades.Find(n => n.UpgradeNameWithCost == upgradeKey).UpgradeTypeName)); return(upgrade.ImageUrl); } return(null); }
private static void ShowAvailableUpgrades(UpgradeSlot slot) { availableUpgradesCounter = 0; List <UpgradeRecord> filteredUpgrades = AllUpgrades.Where(n => n.Instance.hasType(slot.Type) && n.Instance.IsAllowedForShip(CurrentSquadBuilderShip.Instance) && n.Instance.HasEnoughSlotsInShip(CurrentSquadBuilderShip.Instance)).ToList(); int filteredUpgradesCount = filteredUpgrades.Count; Transform contentTransform = GameObject.Find("UI/Panels/SelectUpgradePanel/Panel/Scroll View/Viewport/Content").transform; DestroyChildren(contentTransform); contentTransform.localPosition = new Vector3(0, contentTransform.localPosition.y, contentTransform.localPosition.z); contentTransform.GetComponent <RectTransform>().sizeDelta = new Vector2(filteredUpgradesCount * (UPGRADE_CARD_WIDTH + DISTANCE_MEDIUM) + 2 * DISTANCE_MEDIUM, 0); foreach (UpgradeRecord upgrade in filteredUpgrades) { ShowAvailableUpgrade(upgrade); } }
private static void ShowAvailableUpgrade(UpgradeRecord upgrade) { GameObject prefab = (GameObject)Resources.Load("Prefabs/SquadBuilder/UpgradePanel", typeof(GameObject)); Transform contentTransform = GameObject.Find("UI/Panels/SelectUpgradePanel/Panel/Scroll View/Viewport/Content").transform; GameObject newUpgradePanel = MonoBehaviour.Instantiate(prefab, contentTransform); string upgradeType = AllUpgrades.Find(n => n.UpgradeName == upgrade.UpgradeName).UpgradeTypeName; GenericUpgrade newUpgrade = (GenericUpgrade)System.Activator.CreateInstance(Type.GetType(upgradeType)); UpgradePanelSquadBuilder script = newUpgradePanel.GetComponent <UpgradePanelSquadBuilder>(); script.Initialize(upgrade.UpgradeName, CurrentUpgradeSlot, newUpgrade, SelectUpgradeClicked, true); int column = availableUpgradesCounter; newUpgradePanel.transform.localPosition = new Vector3(DISTANCE_MEDIUM + (UPGRADE_CARD_WIDTH + DISTANCE_MEDIUM) * column, UPGRADE_CARD_HEIGHT / 2, 0); availableUpgradesCounter++; }
// Update Costs private static void UpdateShipCost(PlayerNo playerNo, GameObject panel) { int totalShipCost = 0; string pilotKey = panel.transform.Find("GroupShip/DropdownPilot").GetComponent <Dropdown>().captionText.text; Ship.GenericShip shipContainer = (Ship.GenericShip)Activator.CreateInstance(Type.GetType(AllPilots[pilotKey])); totalShipCost += shipContainer.Cost; foreach (Transform upgradePanel in panel.transform.Find("GroupUpgrades")) { string upgradeName = upgradePanel.transform.GetComponent <Dropdown>().captionText.text; if (AllUpgrades.ContainsKey(upgradeName)) { Upgrade.GenericUpgrade upgradeContainer = (Upgrade.GenericUpgrade)Activator.CreateInstance(System.Type.GetType(AllUpgrades[upgradeName])); totalShipCost += upgradeContainer.Cost; } } panel.transform.Find("Panel/CostPanel").GetComponentInChildren <Text>().text = totalShipCost.ToString(); UpdateSquadCost(playerNo); }