Exemplo n.º 1
0
    public bool correctPlacement(BuildingPlatformController bpc)
    {
        foreach (SolutionItem si in solutions)
        {
            if (si.platform.Equals(bpc))
            {
                // If it is found, the correct type of building and upgrade should have been placed
                Upgrade.UpgradeType uType = Upgrade.UpgradeType.None;
                if (si.platform.upgrade != null)
                {
                    uType = si.platform.upgrade.type;
                }
                Building.BuildingType bType = Building.BuildingType.None;
                if (si.platform.building != null)
                {
                    bType = si.platform.building.type;
                }

                if (si.upgrade == uType && si.building == bType)
                {
                    return(true);
                }

                return(false);
            }
        }
        // If it isn't defined as solution, it should be empty
        if ((bpc.building == null || bpc.building.type == Building.BuildingType.None) &&
            (bpc.upgrade == null || bpc.upgrade.type == Upgrade.UpgradeType.None))
        {
            return(true);
        }
        return(false);
    }
Exemplo n.º 2
0
        public void BoughtUpgrade(Upgrade.UpgradeType upgradeType)
        {
            switch (upgradeType)
            {
            case Upgrade.UpgradeType.OxygenUpgrade:
                IncreaseOxygen();
                break;

            case Upgrade.UpgradeType.HealthUpgrade:
                IncreaseHealth();
                break;

            case Upgrade.UpgradeType.LightUpgrade:
                IncreaseLight();
                break;

            case Upgrade.UpgradeType.SpeedUpgrade:
                IncreaseSpeed();
                break;

            case Upgrade.UpgradeType.HookUpgrade:
                IncreaseHook();
                break;

            case Upgrade.UpgradeType.HullUpgrade:
                IncreaseHull();
                break;
            }
            AudioManager.Instance.PlaySound(SoundName.upgrade1);
        }
Exemplo n.º 3
0
    private static List <string> GetUpgrades(Upgrade.UpgradeType slot)
    {
        List <string> results = new List <string>();

        List <Type> typelist = Assembly.GetExecutingAssembly().GetTypes()
                               .Where(t => String.Equals(t.Namespace, "UpgradesList", StringComparison.Ordinal))
                               .ToList();

        foreach (var type in typelist)
        {
            Upgrade.GenericUpgrade newUpgrade = (Upgrade.GenericUpgrade)System.Activator.CreateInstance(type);
            if (!newUpgrade.IsHidden)
            {
                if (newUpgrade.Type == slot)
                {
                    string upgradeKey = newUpgrade.Name + " (" + newUpgrade.Cost + ")";
                    if (!AllUpgrades.ContainsKey(upgradeKey))
                    {
                        AllUpgrades.Add(upgradeKey, type.ToString());
                    }
                    results.Add(upgradeKey);
                }
            }
        }

        return(results);
    }
Exemplo n.º 4
0
 private void TryBuyUpgrade(Upgrade.UpgradeType upgradeType)
 {
     if (shopCustomer.TrySpendMoneyAmount(Upgrade.getCost(upgradeType)))
     {
         shopCustomer.BoughtUpgrade(upgradeType);
     }
 }
Exemplo n.º 5
0
 public static bool shouldCollapse(BuildingType bt, Upgrade.UpgradeType ut, Soil.SoilType st, float distance, float magnitude)
 {
     if (bt == BuildingType.StoneHouse && st == Soil.SoilType.Clay)
     {
         return(true);
     }
     return(false);
 }
Exemplo n.º 6
0
        public void AddSlot(Upgrade.UpgradeType type, bool isPrinted = false)
        {
            UpgradeSlot slot = new UpgradeSlot(type);

            UpgradeSlots.Add(slot);
            if (isPrinted)
            {
                PrintedUpgradeSlots.Add(slot);
            }
        }
Exemplo n.º 7
0
 protected void AddUpgradeSlot(Upgrade.UpgradeType slot)
 {
     if (!BuiltInSlots.ContainsKey(slot))
     {
         BuiltInSlots.Add(slot, 1);
     }
     else
     {
         BuiltInSlots[slot]++;
     }
 }
Exemplo n.º 8
0
 public void ApplyUpgrade(Upgrade.UpgradeType type)
 {
     foreach (NodeTree <Upgrade.UpgradeType> t in upgradeTreePos.Children)
     {
         if (t.Data == type)
         {
             upgradeTreePos = t;
             return;
         }
     }
 }
Exemplo n.º 9
0
 public void undo(Upgrade.UpgradeType ut)
 {
     // for each buttons, if it equal bt then increment
     for (int i = 0; i < upgradeItems.Count; i++)
     {
         if (ut.Equals(upgradeItems[i].prefab.type))
         {
             amountTexts[i].text = (int.Parse(amountTexts[i].text) + 1) + "";
             return;
         }
     }
 }
Exemplo n.º 10
0
        public void InstallUpgrade(string upgradeName)
        {
            Upgrade.GenericUpgrade newUpgrade = (Upgrade.GenericUpgrade)System.Activator.CreateInstance(System.Type.GetType(upgradeName));

            Upgrade.UpgradeType slot = newUpgrade.Type;
            if (HasFreeUpgradeSlot(slot))
            {
                newUpgrade.AttachToShip(this);
                InstalledUpgrades.Add(new KeyValuePair <Upgrade.UpgradeType, Upgrade.GenericUpgrade>(newUpgrade.Type, newUpgrade));
                Roster.OrganizeRosters();
            }
        }
Exemplo n.º 11
0
    public int GetUpgradeLevel(Upgrade.UpgradeType type)
    {
        var upgrades = Main.instance.score.playerData.currentUpgrades;

        foreach (UpgradeVO currentUpgrade in upgrades)
        {
            if (currentUpgrade.type == type)
            {
                return(currentUpgrade.level);
            }
        }
        return(0);
    }
Exemplo n.º 12
0
    public double GetTotalUpgrades(Upgrade.UpgradeType type)
    {
        double multSum = 1;

        foreach (Upgrade u in upgrades)
        {
            if (u.GetUpType() == type)
            {
                multSum += u.GetAmount();
            }
        }

        return(multSum);
    }
Exemplo n.º 13
0
    private static void UpdateUpgradePanels(PlayerNo playerNo, GameObject panel)
    {
        string pilotName = panel.transform.Find("GroupShip/DropdownPilot").GetComponent <Dropdown>().captionText.text;
        string pilotId   = AllPilots[pilotName];

        Ship.GenericShip ship = (Ship.GenericShip)Activator.CreateInstance(Type.GetType(pilotId));

        foreach (var slot in ship.BuiltInSlots)
        {
            if (panel.transform.Find("GroupUpgrades/Upgrade" + slot.Key.ToString() + "Line") == null)
            {
                AddUpgradeLine(playerNo, panel, slot.Key.ToString());
            }
        }

        List <GameObject> toRemove = new List <GameObject>();
        Dictionary <Upgrade.UpgradeType, int> existingUpgradeSlots = new Dictionary <Upgrade.UpgradeType, int>();

        foreach (Transform group in panel.transform.Find("GroupUpgrades"))
        {
            Type   type      = typeof(Upgrade.UpgradeType);
            string upgradeId = group.GetComponent <Dropdown>().options[0].text;
            upgradeId = upgradeId.Substring(upgradeId.IndexOf(':') + 2);
            Upgrade.UpgradeType slot = (Upgrade.UpgradeType)Enum.Parse(type, upgradeId);

            if (existingUpgradeSlots.ContainsKey(slot))
            {
                existingUpgradeSlots[slot]++;
            }
            else
            {
                existingUpgradeSlots.Add(slot, 1);
            }

            if (!ship.BuiltInSlots.ContainsKey(slot))
            {
                toRemove.Add(group.gameObject);
            }
            else if (ship.BuiltInSlots[slot] < existingUpgradeSlots[slot])
            {
                toRemove.Add(group.gameObject);
            }
        }
        foreach (var group in toRemove)
        {
            MonoBehaviour.DestroyImmediate(group);
            OrganizeUpgradeLines(panel);
        }
    }
Exemplo n.º 14
0
    private void createUpgradeButton(Upgrade.UpgradeType upgradeType, Sprite upgradeSprite, string upgradeName, int upgradeCost, int positionIndex)
    {
        Transform     shopUpgradeTransform     = Instantiate(shopUpgradeTemplate, container);
        RectTransform shopUpgradeRectTransform = shopUpgradeTransform.GetComponent <RectTransform>();

        float shopUpgradeHeight = 80f;

        shopUpgradeRectTransform.anchoredPosition = new Vector2(0, (-shopUpgradeHeight * positionIndex) + 200);

        shopUpgradeTransform.Find("nameText").GetComponent <TextMeshProUGUI>().SetText(upgradeName);


        shopUpgradeTransform.Find("costText").GetComponent <TextMeshProUGUI>().SetText(upgradeCost.ToString());

        shopUpgradeTransform.Find("itemImage").GetComponent <Image>().sprite = upgradeSprite;

        shopUpgradeTransform.GetComponent <Button_UI>().ClickFunc = () =>
        {
            TryBuyUpgrade(upgradeType);
        };
    }
Exemplo n.º 15
0
        private bool HasFreeUpgradeSlot(Upgrade.UpgradeType slot)
        {
            bool result = false;

            if (BuiltInSlots.ContainsKey(slot))
            {
                int slotsAvailabe = BuiltInSlots[slot];
                foreach (var upgrade in InstalledUpgrades)
                {
                    if (upgrade.Key == slot)
                    {
                        slotsAvailabe--;
                    }
                }

                if (slotsAvailabe > 0)
                {
                    result = true;
                }
            }
            return(result);
        }
Exemplo n.º 16
0
    public bool hasPassed()
    {
        foreach (SolutionItem si in solutions)
        {
            Upgrade.UpgradeType uType = Upgrade.UpgradeType.None;
            if (si.platform.upgrade != null)
            {
                uType = si.platform.upgrade.type;
            }
            Building.BuildingType bType = Building.BuildingType.None;
            if (si.platform.building != null)
            {
                bType = si.platform.building.type;
            }

            if (!(si.upgrade == uType && si.building == bType))
            {
                return(false);
            }
        }

        return(true);
    }
    /// <summary>
    /// Whether the building/upgrade placed here are allowed
    /// </summary>
    /// <returns></returns>
    public bool isCorrect()
    {
        Building.BuildingType thisBType = Building.BuildingType.None;
        if (building != null)
        {
            thisBType = building.type;
        }
        Upgrade.UpgradeType thisUType = Upgrade.UpgradeType.None;
        if (upgrade != null)
        {
            thisUType = upgrade.type;
        }

        foreach (AllowedPlacement ap in allowedPlacements)
        {
            if ((ap.building == thisBType || ap.building == Building.BuildingType.Any) &&
                (ap.upgrade == thisUType || ap.upgrade == Upgrade.UpgradeType.Any))
            {
                return(true);
            }
        }
        return(thisBType == Building.BuildingType.None && thisUType == Upgrade.UpgradeType.None);
    }
Exemplo n.º 18
0
 public UpgradeSlot(Upgrade.UpgradeType type)
 {
     Type = type;
 }
Exemplo n.º 19
0
 public void ApplyUpgrade(Upgrade.UpgradeType type)
 {
 }
Exemplo n.º 20
0
    //public void SetUpgrade(Upgrade.UpgradeType type)
    //{
    //    if (!upgrades.Contains(type))
    //    {
    //        upgrades.Add(type);
    //    }
    //}

    public bool HasUpgrade(Upgrade.UpgradeType type)
    {
        return(upgrades.Contains(type));
    }