コード例 #1
0
ファイル: TowerDetails.cs プロジェクト: balazon/BalaTD
    string GetStringTowerDetails(ETower type, int level, bool ignoreFirstRow = false)
    {
        TowerLevelAttributes attr = Configurations.Instance.GetTowerLevels(type)[level - 1];
        var bulletAttr            = attr.bulletAttributes;

        var sb = new System.Text.StringBuilder();


        if (!ignoreFirstRow)
        {
            sb.AppendFormat("{0} Tower Lvl {1}\n", Configurations.TowerNameFromType(type), level);
        }


        sb.AppendFormat("AttackRate: {0}\nDmg: {1}", attr.attackRate, bulletAttr.baseDamage);
        if (bulletAttr.dotDps > 0)
        {
            sb.AppendFormat(" + {0} over {1}s", bulletAttr.dotDps, bulletAttr.dotDuration);
        }
        if (bulletAttr.slowRate > 0.0f)
        {
            sb.AppendFormat("\nSlows: {0:0.#}% for {1:0.#}s", 100.0f - 100.0f / (1.0f + bulletAttr.slowRate), bulletAttr.slowDuration);
        }

        if (bulletAttr.splash)
        {
            sb.Append("\nSplash");
        }

        return(sb.ToString());
    }
コード例 #2
0
ファイル: GuiHandler.cs プロジェクト: balazon/BalaTD
    public void BuildTowerString(string nameOfType)
    {
        if (GameManager.ThePlayer.Paused)
        {
            return;
        }
        PointerOverObjectName = "";
        ETower type = ETower.Venom;

        if (Configurations.TowerTypeFromName(nameOfType, ref type))
        {
            var towerPlace = GameManager.ThePlayerController.selected.GetComponent <TowerPlaceSelection>();
            int i, j;
            i = towerPlace.i;
            j = towerPlace.j;
            int cost = 0;
            if (BuildingManager.Instance.CanBuildAt(i, j) && GameManager.ThePlayer.canAffordOption(nameOfType, ref cost))
            {
                GameManager.ThePlayer.IncreaseMoney(-cost);
                var tower = BuildingManager.Instance.buildTower(type, i, j);
                GameManager.ThePlayerController.SetNewSelected(tower.gameObject);
            }
        }
        EventPlayerControllerClicked();
    }
コード例 #3
0
    public void SetInventoryImages(ETower tower, int inventoryLoc)
    {
        switch (tower)
        {
        case ETower.Freeze:
            _inventoryImages[inventoryLoc].sprite = _towerSprites[0];
            break;

        case ETower.StandardCannon:
            _inventoryImages[inventoryLoc].sprite = _towerSprites[1];
            break;

        case ETower.StaticCannon:
            _inventoryImages[inventoryLoc].sprite = _towerSprites[2];
            break;

        case ETower.Reverse:
            _inventoryImages[inventoryLoc].sprite = _towerSprites[3];
            break;

        case ETower.NULL:
            _inventoryImages[inventoryLoc].sprite = _towerSprites[4];
            break;
        }
    }
コード例 #4
0
    public int getSellingPriceOfTower(ETower type, int level)
    {
        int sum = 0;

        for (int i = 1; i <= level; i++)
        {
            sum += getCostOfTower(type, i);
        }

        return((int)(sum * refundRate));
    }
コード例 #5
0
    public static object[] getTowerBuildReso(ETower type)
    {
        float   stretch = 0.0f;
        Vector2 vector  = Vector2.zero;

        switch (type)
        {
            #region ARCHITECT
        case ETower.ARCHITECT:
            stretch = PlayConfig.StretchTowerBuildArchitect;
            vector  = PlayConfig.AnchorTowerBuildArchitect;
            break;

            #endregion
            #region ROCK
        case ETower.ROCK:
            stretch = PlayConfig.StretchTowerBuildRock;
            vector  = PlayConfig.AnchorTowerBuildRock;
            break;

            #endregion
            #region ICE
        case ETower.ICE:
            stretch = PlayConfig.StretchTowerBuildIce;
            vector  = PlayConfig.AnchorTowerBuildIce;
            break;

            #endregion
            #region FIRE
        case ETower.FIRE:
            stretch = PlayConfig.StretchTowerBuildFire;
            vector  = PlayConfig.AnchorTowerBuildFire;
            break;

            #endregion
            #region GOLD
        case ETower.GOLD:
            stretch = PlayConfig.StretchTowerBuildGold;
            vector  = PlayConfig.AnchorTowerBuildGold;
            break;

            #endregion
            #region POISON
        case ETower.POISON:
            stretch = PlayConfig.StretchTowerBuildPoison;
            vector  = PlayConfig.AnchorTowerBuildPoison;
            break;
            #endregion
        }
        return(new object[] { stretch, vector });
    }
コード例 #6
0
ファイル: TowerDetails.cs プロジェクト: balazon/BalaTD
    public void UpdateTowerDetailsContent(ETower type, int level)
    {
        GameObject panel            = towerDetailsPanel;
        Image      icon             = panel.transform.Find("Icon").GetComponent <Image>();
        var        currentLevelText = panel.transform.Find("CurrentLevelText").GetComponent <Text>();
        var        NextLevelText    = panel.transform.Find("NextLevelText").GetComponent <Text>();
        var        SellText         = panel.transform.Find("SellText").GetComponent <Text>();

        icon.sprite = GuiHandler.Instance.GetIcon(type.ToString());

        var sb = new System.Text.StringBuilder();

        if (level == 0)
        {
            sb.Append(GetStringTowerDetails(type, 1));
            sb.AppendFormat("\nCost: {0}", Configurations.Instance.getCostOfTower(type, 1));
            currentLevelText.text = sb.ToString();
            NextLevelText.text    = "";
            SellText.text         = "";
            return;
        }

        sb.Append(GetStringTowerDetails(type, level));

        currentLevelText.text = sb.ToString();

        sb = new System.Text.StringBuilder();
        sb.Append("Next level\n");
        if (Configurations.Instance.getMaxLevel(type) == level)
        {
            sb.AppendFormat("Maximum lvl reached");
        }
        else
        {
            sb.Append(GetStringTowerDetails(type, level + 1, true));
            sb.AppendFormat("\nCost: {0}", Configurations.Instance.getCostOfTower(type, level + 1));
        }

        NextLevelText.text = sb.ToString();

        SellText.text = "Sell value: " + Configurations.Instance.getSellingPriceOfTower(type, level);
    }
コード例 #7
0
ファイル: TowerDetails.cs プロジェクト: balazon/BalaTD
    public void UpdateDetails()
    {
        Unregister();

        var s = GameManager.ThePlayerController.selected;

        if (s == null)
        {
            //disable tower details
            towerDetailsPanel.SetActive(false);
            return;
        }
        var towerSel = s.GetComponent <TowerPlaceSelection>();

        if (towerSel != null)
        {
            ETower type = ETower.Electro;
            if (Configurations.TowerTypeFromName(GuiHandler.Instance.PointerOverObjectName, ref type))
            {
                towerDetailsPanel.SetActive(true);
                UpdateTowerDetailsContent(type, 0);
                return;
            }
            else
            {
                towerDetailsPanel.SetActive(false);
                return;
            }
        }
        var t = s.GetComponent <Tower>();

        if (t != null)
        {
            towerDetailsPanel.SetActive(true);
            Register(t);
            UpdateTowerDetailsContent(t.type, t.level);
        }
        else
        {
            towerDetailsPanel.SetActive(false);
        }
    }
コード例 #8
0
    public static string TowerNameFromType(ETower type)
    {
        switch (type)
        {
        case ETower.Fire:
            return("Fire");

        case ETower.Venom:
            return("Venom");

        case ETower.Electro:
            return("Electro");

        case ETower.Ice:
            return("Ice");

        default:
            return("Error: tower type not recognized");
        }
    }
コード例 #9
0
ファイル: Player.cs プロジェクト: balazon/BalaTD
    public bool canAffordOption(string name, ref int cost)
    {
        ETower type = ETower.Electro;

        if (Configurations.TowerTypeFromName(name, ref type))
        {
            cost = Configurations.Instance.getCostOfTower(type, 1);
            return(cost <= CurrentMoney);
        }
        else if (name == "Upgrade")
        {
            Tower t = GameManager.ThePlayerController.GetSelectedTower();
            if (t != null && Configurations.Instance.getMaxLevel(t.type) > t.level)
            {
                cost = Configurations.Instance.getCostOfTower(t.type, t.level + 1);
                return(cost <= CurrentMoney);
            }
            return(false);
        }
        return(true);
    }
コード例 #10
0
    public static bool TowerTypeFromName(string name, ref ETower type)
    {
        switch (name)
        {
        case "Fire":
            type = ETower.Fire;
            return(true);

        case "Venom":
            type = ETower.Venom;
            return(true);

        case "Electro":
            type = ETower.Electro;
            return(true);

        case "Ice":
            type = ETower.Ice;
            return(true);

        default:
            return(false);
        }
    }
コード例 #11
0
 public STowerID(ETower type, int level)
 {
     Type = type;
     Level = level;
 }
コード例 #12
0
	public static object[] getTowerBuildReso(ETower type)
	{
		float stretch = 0.0f;
		Vector2 vector = Vector2.zero;
		switch (type)
		{
			#region ARCHITECT
		case ETower.ARCHITECT:
				stretch = PlayConfig.StretchTowerBuildArchitect;
				vector = PlayConfig.AnchorTowerBuildArchitect;
				break;
			#endregion
			#region ROCK
		case ETower.ROCK:
			stretch = PlayConfig.StretchTowerBuildRock;
			vector = PlayConfig.AnchorTowerBuildRock;
			break;
			#endregion
			#region ICE
		case ETower.ICE:
			stretch = PlayConfig.StretchTowerBuildIce;
			vector = PlayConfig.AnchorTowerBuildIce;
				break;
			#endregion
			#region FIRE
		case ETower.FIRE:
			stretch = PlayConfig.StretchTowerBuildFire;
			vector = PlayConfig.AnchorTowerBuildFire;
				break;
            #endregion
            #region GOLD
        case ETower.GOLD:
                stretch = PlayConfig.StretchTowerBuildGold;
                vector = PlayConfig.AnchorTowerBuildGold;
                break;
			#endregion
            #region POISON
        case ETower.POISON:
                stretch = PlayConfig.StretchTowerBuildPoison;
                vector = PlayConfig.AnchorTowerBuildPoison;
                break;
            #endregion
		}
		return new object[] {stretch, vector};
	}
コード例 #13
0
 public STowerID(ETower type, int level)
 {
     Type  = type;
     Level = level;
 }
コード例 #14
0
ファイル: BuildingManager.cs プロジェクト: balazon/BalaTD
 public Tower buildTower(ETower type, int i, int j)
 {
     return(buildTowerAt(i, j, Configurations.Instance.GetBaseTowerPrefab(type), Configurations.Instance.GetTowerLevels(type)));
 }
コード例 #15
0
 public int getMaxLevel(ETower type)
 {
     return(towerLevels[type].Length);
 }
コード例 #16
0
 public GameObject GetBaseTowerPrefab(ETower towertype)
 {
     return(towerPrefabs[towertype]);
 }
コード例 #17
0
 public int getCostOfTower(ETower towertype, int level)
 {
     return(towerLevels[towertype][level - 1].cost);
 }
コード例 #18
0
 public TowerLevelAttributes[] GetTowerLevels(ETower type)
 {
     return(towerLevels[type]);
 }