示例#1
0
    public void PlaceTower(Tile tile, TowerSaveData saveData = null)
    {
        CurrentTile         = tile;
        m_renderer.material = m_towerMaterial;

        MermanLib.UnityManipulator.DestroyAndClearList(ref m_abilityInstances);

        for (var i = 0; i < m_data.Abilities.Count; i++)
        {
            var abilityInstance = Instantiate(m_abilityInstancePrefab, transform).GetComponent <AbilityInstance>();
            m_abilityInstances.Add(abilityInstance);
            abilityInstance.Init(m_data.Abilities[i], Attack);
        }

        SelectAbility();

        if (saveData != null)
        {
            m_saveData = saveData;
        }
        else
        {
            m_saveData = new TowerSaveData()
            {
                id = m_creatureData.Id
            };
        }
        m_data.Stats.Init(m_saveData.level);
    }
示例#2
0
    public void AssignTowerData(Tower tower)
    {
        gameObject.SetActive(tower != null);

        m_tower = tower;
        TowerSaveData saveData = tower.GetSaveData();
        TowerStats    stats    = tower.GetData().Stats;
        var           data     = tower.GetCreatureData();

        m_towerImage.sprite = data.TowerData.TowerSprite;
        m_towerName.text    = data.TowerData.name;

        var abilities = tower.GetEquippedAbilities();

        m_ability1Panel.AssignData(abilities[0]);
        m_ability2Panel.AssignData(abilities.Count > 1 ? abilities[1] : null);
        SelectAbility(tower.CurrentAbilityIndex);

        m_xpImage.fillAmount      = GameManager.Instance.GetNextLevelXpPercentage(saveData.xp, saveData.level);
        m_levelTMPro.text         = LEVEL_BASE_TEXT + saveData.level;
        m_attackValueTMPro.text   = "+" + stats.GetStat(EStat.AttackBuff).ToString("F0") + "%";
        m_hasteValueTMPro.text    = "+" + stats.GetStat(EStat.Haste).ToString("F0") + "%";
        m_rangeValueTMPro.text    = "+" + stats.GetStat(EStat.Range).ToString("F0") + "%";
        m_presenceValueTMPro.text = "+" + stats.GetStat(EStat.Presence).ToString("F0") + "%";
        m_type1Icon.AssignType(data.CreaturePrimaryType);
        m_type2Icon.AssignType(data.CreatureSecondaryType);
    }