public void initUpgrades(UpgradeTypes upgradeTypes)
 {
     foreach (UpgradeTypes.UpgradeEnum upgradeEnum in Enum.GetValues(typeof(UpgradeTypes.UpgradeEnum)))
     {
         gameData.upgradeGameData.upgradePool.Add(upgradeTypes.getUpgradeFromEnum(upgradeEnum));
     }
 }
示例#2
0
        /// <summary>
        /// Является ли указанный уровень последним
        /// </summary>
        /// <param name="type">Тип улучшения</param>
        /// <param name="lvl">Уровень улучшения, который надо проверить</param>
        public static bool IsLastLvl(UpgradeTypes type, int lvl)
        {
            if (m_UpgradesData.ContainsKey(type))
            {
                return(m_UpgradesData[type].IsLastLvl(lvl));
            }

            return(true);
        }
示例#3
0
        /// <summary>
        /// Получить параметр улучшения для указанного уровня (для слотов - кол-во слотов)
        /// </summary>
        /// <param name="type">Тип улучшения</param>
        /// <param name="lvl">Уровень, </param>
        public static int GetValueForLevel(UpgradeTypes type, int lvl)
        {
            if (m_UpgradesData.ContainsKey(type))
            {
                return(m_UpgradesData[type].GetValueForLevel(lvl));
            }

            return(1);
        }
示例#4
0
    private void Start()
    {
        _gameManager = GameManager.currentManager;
        //shopCustomer = _gameManager.getCustomer(shopCustomer); //registers player as shopper
        CreateItemButton(UpgradeTypes.ItemType.Nutrient, UpgradeTypes.GetSprite(UpgradeTypes.ItemType.Nutrient), "Nutrient", UpgradeTypes.GetCost(UpgradeTypes.ItemType.Nutrient), 0);
        //CreateItemButton(UpgradeTypes.ItemType.Expansion, UpgradeTypes.GetSprite(UpgradeTypes.ItemType.Expansion), "Expansion", UpgradeTypes.GetCost(UpgradeTypes.ItemType.Expansion), 2);

        Hide();
    }
    public void BuyAutoPilot(GameObject menuItem)
    {
        UpgradeTypes itemType = menuItem.GetComponent <GUIMenuItem> ().type;

        if (instance.allUpgrades.ContainsKey(itemType))
        {
            Upgrade upgrade = instance.allUpgrades[itemType];
            instance.speed.autoPilotTimeLeft += upgrade.baseValue;
            instance.speed.points            -= upgrade.GetCost();
            instance.AutoPilotText.UpdateText();
        }
    }
示例#6
0
 private void TryBuyItems(UpgradeTypes.ItemType itemType)
 {
     if (NutrientManager.currentNutrientManager.TrySpendSugarAmount(UpgradeTypes.GetCost(itemType)))
     {
         shopCustomer.BoughtItem(itemType);
     }
     else
     {
         Debug.Log("cannot afford upgrade");
         //add warning if can't afford
     }
 }
示例#7
0
        private Action CreateUpgradeButtonAction(UpgradeTypes upgradeType, int upgradeCost)
        {
            Action buttonAction = () =>
            {
                if (UpgradeInfoInstance.PulseAnimation.IsPlaying())
                {
                    UpgradeInfoInstance.PulseAnimation.Stop();
                }
                OnUpgradeAction(structureShown, upgradeType, upgradeCost);
            };

            return(buttonAction);
        }
示例#8
0
    public void startNewRun(UpgradeTypes upgradeTypes, CardTypes cardTypes)
    {
        deckService.initDeck(cardTypes);
        playerService.initialize();
        upgradeService.initUpgrades(upgradeTypes);
        enemyManagerService.initializeFights();

        EventTypes eventTypes = new EventTypes(eventManagerService, playerService);

        eventManagerService.initializeEvents(eventTypes);

        startFight();
    }
示例#9
0
        /// <summary>
        /// Получить количество шагов до следующего уровня улучшения
        /// </summary>
        /// <param name="type">Тип улучшения</param>
        /// <param name="curLvl">Текущий уровень улучшения</param>
        public static int GetStepsToNext(UpgradeTypes type, int curLvl)
        {
            if (m_UpgradesData.ContainsKey(type))
            {
                Upgrade upgrade = m_UpgradesData[type];
                if (!upgrade.IsLastLvl(curLvl))
                {
                    return(upgrade.GetStepsToNext(curLvl));
                }
            }

            return(0);
        }
 void UpdateAutoPilotItems()
 {
     foreach (GameObject menuItem in menuItems)
     {
         UpgradeTypes itemType = menuItem.GetComponent <GUIMenuItem> ().type;;
         Upgrade      upgrade  = allUpgrades[itemType];
         Text[]       comps    = menuItem.GetComponentsInChildren <Text>();
         Text         txt      = comps[2];
         txt.color = Color.magenta;
         double cost = upgrade.GetCost();
         string unit = "";
         UnitsConverter.Convert(ref cost, ref unit);
         txt.text = "$ " + cost.ToString("f" + priceDecimals) + unit;
         txt      = comps[3];
     }
 }
示例#11
0
            public TavernUpgrade(Buildings.Tavern target, UpgradeTypes upgrade, Check OverrideTimeToBuild = null)
            {
                TargetTavern = target;
                MyType       = upgrade;

                if (OverrideTimeToBuild == null)
                {
                    TimeToBuild = new Check(TimeKeeper.Phase.Morning);
                }
                else
                {
                    TimeToBuild = OverrideTimeToBuild;
                }

                Start(TimeToBuild, target);
            }
示例#12
0
 public void PurchaseUpgrade(UpgradeTypes _upgradeType, int _price)
 {
     Game.GameCoins -= _price;
     audioSource.Play ();
     switch (_upgradeType) {
         case UpgradeTypes.TURN:
             Game.GetSelf().UpgradeTurn();
             break;
         case UpgradeTypes.FOOD:
             Game.GetSelf().UpgradeFood();
             break;
         case UpgradeTypes.COINS:
             Game.GetSelf().UpgradeCoin();
             break;
     }
     Game.Save ();
 }
 void CheckIfCanBuy()
 {
     foreach (GameObject menuItem in menuItems)
     {
         UpgradeTypes itemType = menuItem.GetComponent <GUIMenuItem> ().type;
         if (ownedUpgrades.ContainsKey(itemType))
         {
             if (ownedUpgrades [itemType].GetCost() <= speed.points)
             {
                 //enable in list
                 if (!menuItem.GetComponent <Selectable> ().IsInteractable())
                 {
                     menuItem.GetComponent <Selectable> ().interactable = true;
                 }
             }
             else
             {
                 //disable in list
                 if (menuItem.GetComponent <Selectable> ().IsInteractable())
                 {
                     menuItem.GetComponent <Selectable> ().interactable = false;
                 }
             }
         }
         else
         {
             if (allUpgrades [itemType].GetCost() <= speed.points)
             {
                 //enable in list
                 if (!menuItem.GetComponent <Selectable> ().IsInteractable())
                 {
                     menuItem.GetComponent <Selectable> ().interactable = true;
                 }
             }
             else
             {
                 //disable in list
                 if (menuItem.GetComponent <Selectable> ().IsInteractable())
                 {
                     menuItem.GetComponent <Selectable> ().interactable = false;
                 }
             }
         }
     }
 }
示例#14
0
    /// <summary>
    /// Handle for updating the ships upgrades
    /// </summary>
    /// <param name="upgradeType">The upgrade that will be updated</param>
    /// <param name="isEnabled">Should enable or disable this upgrade</param>
    /// <param name="powerLevel">The power of the upgrade to use</param>
    void HandleUpgradesUpdatedEvent(UpgradeTypes upgradeType, bool isEnabled, int powerLevel)
    {
        // Update the correct upgrade
        switch (upgradeType)
        {
        case UpgradeTypes.Health:
            ToggleHealthUpgrade(isEnabled, powerLevel);
            break;

        case UpgradeTypes.Speed:
            ToggleSpeedUpgrade(isEnabled, powerLevel);
            break;

        case UpgradeTypes.Weapons:
            ToggleWeaponsUpgrade(isEnabled, powerLevel);
            break;
        }
    }
 public void BuyAndLevelUpAllUpgrades()
 {
     foreach (GameObject menuItem in menuItems)
     {
         UpgradeTypes itemType = menuItem.GetComponent <GUIMenuItem> ().type;
         if (itemType == UpgradeTypes.AutoPilot1h || itemType == UpgradeTypes.AutoPilot6h || itemType == UpgradeTypes.AutoPilot12h || itemType == UpgradeTypes.AutoPilot3d || itemType == UpgradeTypes.AutoPilot1w)
         {
             continue;
         }
         else
         {
             for (int i = 0; i < 5; i++)
             {
                 BuyUpgrade(menuItem);
             }
         }
     }
 }
    public void RepairAll()
    {
        AudioManager.Instance.AudioSources["Tap"].Play();
        instance.totalRepairPrice = 0;
        instance.totalHealth      = 0;
        instance.totalMaxHealth   = 0;
        foreach (GameObject menuItem in instance.menuItems)
        {
            if (menuItem == null)
            {
                break;
            }

            UpgradeTypes itemType     = menuItem.GetComponent <GUIMenuItem>().type;
            Upgrade      ownedUpgrade = instance.upgrades.GetOwnedUpgrade(itemType);

            instance.speed.points -= ownedUpgrade.GetRepairCost();
            instance.upgradesController.RepairUpgrade(itemType);

            double repairCost = ownedUpgrade.GetRepairCost();
            float  health     = ownedUpgrade.health;
            float  maxHealth  = ownedUpgrade.GetCurrentLevelHealth();

            instance.totalRepairPrice += repairCost;
            instance.totalHealth      += health;
            instance.totalMaxHealth   += ownedUpgrade.GetCurrentLevelHealth();

            Text[] comps   = menuItem.GetComponentsInChildren <Text>();
            Text   txt     = comps[1];
            double hvalue  = (double)health;
            double mhvalue = (double)maxHealth;
            string hunit   = "";
            string mhunit  = "";
            UnitsConverter.Convert(ref hvalue, ref hunit);
            UnitsConverter.Convert(ref mhvalue, ref mhunit);
            txt.text = "Health: " + hvalue.ToString("f" + instance.healthDecimals) + hunit + "/" + mhvalue.ToString("f" + instance.healthDecimals) + mhunit;
            txt      = comps[2];
            string runit = "";
            UnitsConverter.Convert(ref repairCost, ref runit);
            txt.text = "Repair: $" + repairCost.ToString("f" + instance.priceDecimals) + runit;
        }
    }
示例#17
0
        private void SearchBox_TextChanged(object sender, TextChangedEventArgs e)
        {
            var upgradeTypesItem = PivotMain.Items.Cast <FilteredUpgradeDisplay>();

            if (!upgradeTypesItem.Any(x => x.Name == "Search Results"))
            {
                UpgradeTypes.Add(new UpgradeSearchResults(this.Pilot, (Template10.Common.BootStrapper.Current.SessionState["State"] as IXWingSessionState).XWingRepository));
            }
            var searchtab = UpgradeTypes.Single(x => x as UpgradeSearchResults != null) as UpgradeSearchResults;

            if (SearchBox.Text == string.Empty)
            {
                UpgradeTypes.Remove(searchtab);
            }
            else
            {
                searchtab.SetSearchQuery(SearchBox.Text);
                PivotMain.SelectedItem = searchtab;
            }
        }
    public void UpdateMenu()
    {
        foreach (GameObject menuItem in menuItems)
        {
            UpgradeTypes itemType = menuItem.GetComponent <GUIMenuItem> ().type;;
            if (ownedUpgrades.ContainsKey(itemType))
            {
                Upgrade upgrade = ownedUpgrades[itemType];
                Text[]  comps   = menuItem.GetComponentsInChildren <Text>();
                Text    txt     = comps[1];
                double  value   = upgrade.GetCurrentLevelValue();
                string  unit    = "";
                UnitsConverter.Convert(ref value, ref unit);
                txt.text  = value.ToString("f" + speedDecimals) + unit + " m/s";
                txt       = comps[2];
                txt.color = Color.magenta;
                double cost = upgrade.GetCost();
                unit = "";
                UnitsConverter.Convert(ref cost, ref unit);
                txt.text = "$ " + cost.ToString("f" + priceDecimals) + unit;
                txt      = comps[3];

                double val = upgrade.GetNextLevelValue() - value;
                unit = "";
                UnitsConverter.Convert(ref val, ref unit);
                float bonus = upgrade.percentValueIncrease * 100.0f;
                txt.text = "+ " + bonus + "%" + " " + val.ToString("f" + speedDecimals) + unit;

                txt.color = Color.cyan;
                txt       = comps[4];
                txt.text  = "Level\n" + upgrade.level;
                Selectable selectableButton = menuItem.GetComponent <Selectable>();
                ColorBlock colors           = menuItem.GetComponent <Selectable>().colors;
                colors.normalColor      = new Color(0.06f, 0.08f, 0.16f, 1.0f);
                colors.disabledColor    = new Color(0.2f, 0.2f, 0.2f, 1.0f);
                colors.highlightedColor = new Color(0.09f, 0.12f, 0.31f, 1.0f);
                selectableButton.colors = colors;
            }
        }
    }
示例#19
0
        private void SetSingleUpgradeButtonFor(UpgradeTypes upgrade1, int upgradeCost, bool canAffordUpgrade)
        {
            UpgradeInfoInstance.OnUpgradeButton1Click = canAffordUpgrade ? CreateUpgradeButtonAction(upgrade1, upgradeCost) : null;

            switch (upgrade1)
            {
            case UpgradeTypes.Range:
                UpgradeInfoInstance.CurrentOptionOneChoiceState = UpgradeInfoRuntime.OptionOneChoice.UpgradeRange;
                break;

            case UpgradeTypes.Speed:
                UpgradeInfoInstance.CurrentOptionOneChoiceState = UpgradeInfoRuntime.OptionOneChoice.UpgradeSpeed;
                break;

            case UpgradeTypes.Damage:
                UpgradeInfoInstance.CurrentOptionOneChoiceState = UpgradeInfoRuntime.OptionOneChoice.UpgradeDamage;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(upgrade1), upgrade1, null);
            }
        }
    public void AddItem(UpgradeTypes itemType)
    {
        GameObject menuItem     = GameObject.Instantiate(Resources.Load("Prefabs/RepairMenuItem")) as GameObject;
        Upgrade    ownedUpgrade = upgrades.GetOwnedUpgrade(itemType);

        menuItem.GetComponentInChildren <UpdateItemHealthBar> ().SetItemUpgrade(ownedUpgrade);

        double health     = (double)ownedUpgrade.health;
        string name       = ownedUpgrade.type.ToString();
        double repaircost = ownedUpgrade.GetRepairCost();

        Text[] comps = menuItem.GetComponentsInChildren <Text>();
        Text   txt   = comps[0];

        txt.text = name.ToUpper();
        txt      = comps[1];
        string hunit = "";

        UnitsConverter.Convert(ref health, ref hunit);
        txt.text = "Health: " + health.ToString("f" + healthDecimals) + hunit;
        txt      = comps[2];
        string runit = "";

        UnitsConverter.Convert(ref repaircost, ref runit);
        txt.text = "Repair: $" + repaircost.ToString("f" + priceDecimals) + runit;
        menuItem.GetComponent <GUIMenuItem> ().type = itemType;

        menuItem.transform.SetParent(transform, false);

        //as soon i make it inot the dictionary we can use add
        for (int i = 0; i < menuItems.Length; i++)
        {
            if (menuItems[i] == null)
            {
                menuItems[i] = menuItem;
                break;
            }
        }
    }
示例#21
0
    public void ActivateUpgrade(int indexKey, UpgradeTypes upgradeType, int upgradeValue)
    {
        population[indexKey].transform.FindChild("ActivateButton").GetComponent <Button>().interactable = false;
        switch (upgradeType)
        {
        case UpgradeTypes.ACCELERATION:
            shipScript.acceleration += upgradeValue;
            break;

        case UpgradeTypes.BRAKES:
            shipScript.deceleration += upgradeValue;
            break;

        case UpgradeTypes.MAXBLACKOUT:
            shipScript.MAX_BLACKOUT += upgradeValue;
            break;

        case UpgradeTypes.MAXSPEED:
            shipScript.MAX_SPEED += upgradeValue;
            break;
        }
    }
示例#22
0
 public Upgrade GetOwnedUpgrade(UpgradeTypes upgrade)
 {
     return(ownedUpgrades[upgrade]);
 }
示例#23
0
    void OnGUI()
    {
        minSize   = new Vector2(250, 200);
        offsetX   = 5f;
        offsetY   = 5f;
        GUI.color = Color.white;

        windowDisplay = new Rect(offsetX, offsetY, 200f, DISPLAY_HEIGHT);
        offsetY      += DISPLAY_DIF * 2;
        EditorGUI.LabelField(windowDisplay, "New Upgrade Creator");

        windowDisplay = new Rect(offsetX, offsetY, 120f, DISPLAY_HEIGHT);
        offsetX      += 120f;
        EditorGUI.LabelField(windowDisplay, "Upgrade Type");
        windowDisplay = new Rect(offsetX, offsetY, 120f, DISPLAY_HEIGHT);
        offsetY      += DISPLAY_DIF;
        offsetX       = 5f;
        upgradeType   = (UpgradeTypes)EditorGUI.EnumPopup(windowDisplay, upgradeType);

        windowDisplay = new Rect(offsetX, offsetY, 120f, DISPLAY_HEIGHT);
        offsetX      += 120f;
        EditorGUI.LabelField(windowDisplay, "Upgrade Amount");
        windowDisplay = new Rect(offsetX, offsetY, 120f, DISPLAY_HEIGHT);
        offsetX       = 5f;
        offsetY      += DISPLAY_DIF;
        upgradeValue  = EditorGUI.FloatField(windowDisplay, upgradeValue);

        windowDisplay = new Rect(offsetX, offsetY, 120f, DISPLAY_HEIGHT);
        offsetX      += 120f;
        EditorGUI.LabelField(windowDisplay, "Upgrade Cost");
        windowDisplay = new Rect(offsetX, offsetY, 120f, DISPLAY_HEIGHT);
        offsetX       = 5f;
        offsetY      += DISPLAY_DIF * 2;
        upgradeCost   = EditorGUI.IntField(windowDisplay, upgradeCost);

        windowDisplay = new Rect(offsetX, offsetY, 240f, DISPLAY_HEIGHT);
        offsetY      += DISPLAY_DIF;
        EditorGUI.LabelField(windowDisplay, outputMessage);

        windowDisplay = new Rect(offsetX, offsetY, 240f, DISPLAY_HEIGHT);
        if (GUI.Button(windowDisplay, "Create Upgrade"))
        {
            if (upgradeCost > 0 && upgradeValue > 0)
            {
                try
                {
                    bool temp = false;
                    contentString = upgradeType.ToString() + "," + upgradeValue.ToString() + "," + upgradeCost.ToString() + "," + temp.ToString() + "\n";
                    File.AppendAllText(datapath, contentString);
                    outputMessage = "Upgrade Created";
                    AssetDatabase.Refresh();
                }
                catch (UnityException e)
                {
                    Debug.LogError(e);
                }
            }
            else if (upgradeValue <= 0)
            {
                outputMessage = "Value must be greater than 0";
            }
            else if (upgradeCost <= 0)
            {
                outputMessage = "Cost must be greater than 0";
            }
        }

        //EditorGUILayout.LabelField("This is an upgrade window");
        //upgradeName = EditorGUILayout.TextField(upgradeName, "Upgrade Name");
        //upgradeType = (UpgradeTypes)EditorGUILayout.EnumPopup(upgradeType, "Upgrade Type");
        //upgradeValue = EditorGUILayout.FloatField(upgradeValue, "Upgrade Value");
        //if(GUILayout.Button("Build Text"))
        //{
        //    //contentString = (upgradeType.ToString() + "," + upgradeValue.ToString() + "," + upgradeCost.ToString();
        //    Debug.Log("Building Upgrade");
        //    //System.IO.File.WriteAllText(datapath + "/" + upgradeName +".txt", upgradeName + "," + upgradeType + "," + upgradeValue);
        //    //File.AppendAllText(datapath, contentString);
        //}
    }
 /// <summary>
 /// Returns true if the owner of this player has upgraded the given upgrade type, and this unit is affected by this upgrade. 
 /// </summary>
 /// <param name="upgradeType"></param>
 /// <returns></returns>
 public int GetUpgradeLevel(UpgradeTypes upgradeType) {
     return this.BwapiObject.getUpgradeLevel(new SWIG.BWAPI.UpgradeType((int)upgradeType));
 }
    void Start()
    {
        //Get references to GameObjects from scene
        takeObjectsFromScene();

        //prefabs. no dependencies.
        GameObject upgradePrefab      = Resources.Load(FilePathUtils.prefabPath + "upgradeObject") as GameObject;
        GameObject cardPrefab         = Resources.Load(FilePathUtils.prefabPath + "cardObject") as GameObject;
        GameObject campContractPrefab = Resources.Load(FilePathUtils.prefabPath + "campContractObject") as GameObject;
        GameObject healthBarPrefab    = Resources.Load(FilePathUtils.prefabPath + "healthBarObject") as GameObject;
        GameObject enemyPrefab        = Resources.Load(FilePathUtils.prefabPath + "enemyObject") as GameObject;
        GameObject eventButtonPrefab  = Resources.Load(FilePathUtils.prefabPath + "eventButtonObject") as GameObject;

        //Data classes. no dependencies
        GameData gameData = new GameData();

        GameData.setInstance(gameData);

        //Ui manager, only dependencies are GameObjects
        CardUiManager cardUiManager = new CardUiManager(
            cardPrefab,
            playerHandObject,
            cardListGrid,
            cardListScene,
            cardSelectUi
            );
        SceneUiManager sceneUiManager = new SceneUiManager(
            startScene,
            gameOverScene,
            victoryScene,
            cardListScene,
            fightSceneObject,
            campScene,
            eventScene
            );
        UpgradeUiManager upgradeUiManager = new UpgradeUiManager(
            upgradeSelect,
            upgradePrefab,
            upgradeList
            );
        CampContractUiManager campContractUiManager = new CampContractUiManager(
            campContractPrefab,
            campContracts
            );

        //Types
        StatusTypes statusTypes = new StatusTypes();
        EnemyTypes  enemyTypes  = new EnemyTypes(enemyPrefab);
        CardTypes   cardTypes   = new CardTypes();

        cardTypes.initialize(statusTypes);

        //GameObjects
        PlayerGameObject playerGameObject = playerObject.GetComponent <PlayerGameObject>();

        playerGameObject.initalize(playerObject);
        gameData.playerGameObject = playerGameObject;

        FightSceneGameObject fightSceneGameObject = fightSceneObject.GetComponent <FightSceneGameObject>();

        fightSceneGameObject.initalize(fightSceneObject);

        //Services
        UpgradeService   upgradeService   = new UpgradeService();
        EnemyTurnService enemyTurnService = new EnemyTurnService();
        StatusService    statusService    = new StatusService(statusTypes);

        EnemyService         enemyService         = new EnemyService(enemyTurnService, statusService);
        CardGeneratorService cardGeneratorService = new CardGeneratorService(cardTypes);

        PlayerService       playerService       = new PlayerService(sceneUiManager, statusService, playerGameObject);
        DeckService         deckService         = new DeckService(cardUiManager, playerService);
        CampContractService campContractService = new CampContractService(campContractUiManager);
        EnemyManagerService enemyManagerService = new EnemyManagerService(
            enemyPrefab,
            enemyContainer,
            playerService,
            enemyService,
            enemyTurnService,
            statusService,
            deckService,
            enemyTypes,
            cardUiManager,
            cardGeneratorService,
            sceneUiManager,
            upgradeUiManager,
            upgradeService
            );
        CardService        cardService        = new CardService(enemyManagerService, playerService, new AudioState(), deckService, enemyService);
        CampService        campService        = new CampService(campScene, campSelectionScene, campContractService, cardTypes);
        CardActionsService cardActionsService = new CardActionsService(deckService, playerService, cardService);

        EnemyManagerService.setInstance(enemyManagerService);

        UpgradeTypes upgradeTypes = new UpgradeTypes(playerService);

        EventManagerService eventManagerService = new EventManagerService(
            eventBoard,
            eventBoardButtons,
            eventButtonPrefab,
            campTitleText,
            campText
            );
        FightManagerService fightManagerService = new FightManagerService(
            sceneUiManager,
            cardUiManager,
            playerService,
            upgradeUiManager,
            deckService,
            campService,
            upgradeService,
            enemyManagerService,
            eventManagerService
            );

        eventManagerService.setFightService(fightManagerService);
        cardUiManager.initialize(cardActionsService);
        upgradeUiManager.initialize(upgradeService);
        deckService.initialize(enemyManagerService);

        //Initialize game data class
        gameData.deckService    = deckService;
        gameData.playerService  = playerService;
        gameData.upgradeService = upgradeService;
        gameData.enemyTypes     = enemyTypes;


        //init scene buttons + add click events
        startNewRunButton.onClick.AddListener(() => fightManagerService.startNewRun(upgradeTypes, cardTypes));
        runItBackButton.onClick.AddListener(() => fightManagerService.startNewRun(upgradeTypes, cardTypes));
        nextFightButton.onClick.AddListener(fightManagerService.startFight);
        closeCardListButton.onClick.AddListener(cardUiManager.hideCardPile);
        closeCampListButton.onClick.AddListener(() => campService.hideCampFightList());
        leaveCampButton.onClick.AddListener(() => fightManagerService.confirmCampEvents());

        DeckData deckData = gameData.deckData;

        addEventTrigger(showDeckObject).callback.AddListener((data) => cardUiManager.showCardPile(deckData.deckCards));
        addEventTrigger(showDiscardObject).callback.AddListener((data) => cardUiManager.showCardPile(deckData.discardCards));
        addEventTrigger(showTrashObject).callback.AddListener((data) => cardUiManager.showCardPile(deckData.trash));
        addEventTrigger(endTurnObject).callback.AddListener((data) => fightManagerService.endTurn());
        addEventTrigger(extraDrawObject).callback.AddListener((data) => deckService.extraDraw());

        addEventTrigger(wellGameObject).callback.AddListener((data) => campService.showCampFightList());
        addEventTrigger(shopGameObject).callback.AddListener((data) => campService.showCampFightList());

        //hide well/shop buttons
        wellGameObject.SetActive(false);
        shopGameObject.SetActive(false);
    }
示例#26
0
 public Upgrade(UpgradeTypes type, int value)
 {
     upgradeType  = type;
     upgradeValue = value;
     isActive     = false;
 }
示例#27
0
 public double GetUpgradeValue(UpgradeTypes upgrade)
 {
     return(ownedUpgrades[upgrade].GetCurrentValue());
 }
 /// <summary>
 /// Returns true if there is enough resources required to upgrade the given tech type.
 /// </summary>
 /// <param name="upgradeType"></param>
 /// <returns></returns>
 public static bool CanUpgrade(UpgradeTypes upgradeType) {
     return SWIG.BWAPI.bwapi.Broodwar.canUpgrade(null, new SWIG.BWAPI.UpgradeType((int)upgradeType));
 }
    public void BuyUpgrade(GameObject menuItem)
    {
        AudioManager.Instance.AudioSources["Tap"].Play();
        UpgradeTypes itemType = menuItem.GetComponent <GUIMenuItem> ().type;

        if (instance.ownedUpgrades.ContainsKey(itemType))
        {
            Upgrade upgrade = instance.ownedUpgrades[itemType];
            SpawnText(menuItem, upgrade);

            instance.speed.points -= upgrade.GetCost();
            instance.upgradesController.LevelUpUpgrade(itemType);
        }
        else
        {
            Upgrade upgrade = instance.allUpgrades[itemType];
            SpawnText(menuItem, upgrade);
            instance.speed.points -= upgrade.GetCost();
            instance.upgradesController.AddUpgrade(itemType);
            instance.upgradesController.LevelUpUpgrade(itemType);

            Text[] comps = menuItem.GetComponentsInChildren <Text>();
            Text   txt   = comps[2];
            txt.color = Color.magenta;
            txt       = comps[3];
            txt.color = Color.cyan;

            Selectable selectableButton = menuItem.GetComponent <Selectable>();
            ColorBlock colors           = menuItem.GetComponent <Selectable>().colors;
            colors.normalColor      = new Color(0.06f, 0.08f, 0.16f, 1.0f);
            colors.disabledColor    = new Color(0.2f, 0.2f, 0.2f, 1.0f);
            colors.highlightedColor = new Color(0.09f, 0.12f, 0.31f, 1.0f);
            selectableButton.colors = colors;

            RepairsMenuManager.Instance.AddItem(itemType);
        }

        Upgrade ownedUpgrade = instance.ownedUpgrades [itemType];

        Text[] texts = menuItem.GetComponentsInChildren <Text>();
        Text   txtx  = texts[1];
        double value = ownedUpgrade.GetCurrentLevelValue();
        string unit  = "";

        UnitsConverter.Convert(ref value, ref unit);
        txtx.text = value.ToString("f" + instance.speedDecimals) + unit + " m/s";
        txtx      = texts[2];
        double cost = ownedUpgrade.GetCost();

        unit = "";
        UnitsConverter.Convert(ref cost, ref unit);
        txtx.text = "$ " + cost.ToString("f" + instance.priceDecimals) + unit;

        txtx = texts[3];
        double val = ownedUpgrade.GetNextLevelValue() - value;

        unit = "";
        UnitsConverter.Convert(ref val, ref unit);
        float bonus = ownedUpgrade.percentValueIncrease * 100.0f;

        txtx.text = "+ " + bonus + "%" + " " + val.ToString("f" + speedDecimals) + unit;

        txtx      = texts[4];
        txtx.text = "Level\n" + ownedUpgrade.level;
    }
 /// <summary>
 /// Orders the unit to upgrade the given upgrade type. 
 /// See also: UpgradeResearching, UpgradeResearchTimer, IsUpgrading.
 /// </summary>
 /// <param name="upgradeType"></param>
 /// <returns></returns>
 public bool DoUpgrade(UpgradeTypes upgradeType) {
     return this.BwapiObject.upgrade(new SWIG.BWAPI.UpgradeType((int)upgradeType));
 }
示例#31
0
 void AddListener(Button button, int pindexKey, UpgradeTypes pupgradeType, int pupgradeValue)
 {
     button.onClick.AddListener(() => ActivateUpgrade(pindexKey, pupgradeType, pupgradeValue));
 }
示例#32
0
 public bool HasType(UpgradeType upgradeType)
 {
     return(UpgradeTypes.Contains(upgradeType));
 }
示例#33
0
 public Upgrade GetAvaiableUpgrade(UpgradeTypes upgrade)
 {
     return(allUpgrades[upgrade]);
 }
 /// <summary>
 /// Returns true if the given unit can upgrade the given upgrade type and there is enough resources required to upgrade.
 /// </summary>
 /// <param name="unitWhereToUpgrade"></param>
 /// <param name="upgradeType"></param>
 /// <returns></returns>
 public static bool CanUpgrade(Unit unitWhereToUpgrade, UpgradeTypes upgradeType) {
     return SWIG.BWAPI.bwapi.Broodwar.canUpgrade(unitWhereToUpgrade.BwapiObject, new SWIG.BWAPI.UpgradeType((int) upgradeType));
 }
示例#35
0
 public void SetUpgradeHealth(UpgradeTypes upgrade, float health)
 {
     upgrades.GetOwnedUpgrade(upgrade).SetHealth(health);
     upgrades.UpdateBaseSpeed();
 }