Esempio n. 1
0
 bool IsPerkTypeUsesRsc(_PerkType type)
 {
     if (type == _PerkType.RscCap)
     {
         return(true);
     }
     else if (type == _PerkType.RscRegen)
     {
         return(true);
     }
     else if (type == _PerkType.RscGain)
     {
         return(true);
     }
     else if (type == _PerkType.RscCreepKilledGain)
     {
         return(true);
     }
     else if (type == _PerkType.RscWaveClearedGain)
     {
         return(true);
     }
     else if (type == _PerkType.RscResourceTowerGain)
     {
         return(true);
     }
     return(false);
 }
Esempio n. 2
0
 bool IsPerkTypeUsesUnitStats(_PerkType type)
 {
     if (type == _PerkType.Tower)
     {
         return(true);
     }
     else if (type == _PerkType.TowerSpecific)
     {
         return(true);
     }
     else if (type == _PerkType.Ability)
     {
         return(true);
     }
     else if (type == _PerkType.AbilitySpecific)
     {
         return(true);
     }
     return(false);
 }
Esempio n. 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="startX"></param>
        /// <param name="startY"></param>
        /// <param name="perk"></param>
        /// <param name="level"></param>
        /// <returns></returns>
        Vector2 DrawLevelDetail(float startX, float startY, Perk perk, int level)
        {
            _PerkType perkType = perk.type;

            // cost
            cont = new GUIContent("Upgrage Cost:", "The resource required to build/upgrade to this level");
            EditorGUI.LabelField(new Rect(startX, startY += spaceY, width, height), cont);
            perk.perkLevel[level].cost = EditorGUI.IntField(new Rect(startX + 100, startY, 85, height), perk.perkLevel[level].cost);
            // stats level
            startX += 10;

            if (perkType == _PerkType.GainLife)
            {
                GUIContent cont1 = new GUIContent(" - Min value:", "Minimum value");
                GUIContent cont2 = new GUIContent(" - Max value:", "Maximum value");
                DrawValueMinMax(startX, startY, perk, level, cont1, cont2);
                startY += spaceY;
            }
            else if (perkType == _PerkType.LifeCap)
            {
                cont = new GUIContent(" - Increase Value:", "value used to modify the existing maximum life capacity");
                DrawValue(startX, startY, perk, level, cont);
            }
            else if (perkType == _PerkType.LifeRegen)
            {
                cont = new GUIContent(" - Increase Value:", "value used to modify the existing life regeneration rate");
                DrawValue(startX, startY, perk, level, cont);
            }
            else if (perkType == _PerkType.LifeWaveClearedBonus)
            {
                GUIContent cont1 = new GUIContent(" - Min value:", "Minimum value");
                GUIContent cont2 = new GUIContent(" - Max value:", "Maximum value");
                DrawValueMinMax(startX, startY, perk, level, cont1, cont2);
                startY += spaceY;
            }
            else if (IsPerkTypeUsesRsc(perkType))
            {
                if (perkType == _PerkType.RscCap)
                {
                    cont = new GUIContent(" - Gain:", "The resource to be gain upon purchasing this perk");
                }
                else if (perkType == _PerkType.RscRegen)
                {
                    cont = new GUIContent(" - Rate modifier:", "The resource to be gain upon purchasing this perk");
                }
                else if (perkType == _PerkType.RscGain)
                {
                    cont = new GUIContent(" - Gain multiplier:", "The resource to be gain upon purchasing this perk");
                }
                else if (perkType == _PerkType.RscCreepKilledGain)
                {
                    cont = new GUIContent(" - Gain multiplier:", "The resource to be gain upon purchasing this perk");
                }
                else if (perkType == _PerkType.RscWaveClearedGain)
                {
                    cont = new GUIContent(" - Gain multiplier:", "The resource to be gain upon purchasing this perk");
                }
                else if (perkType == _PerkType.RscResourceTowerGain)
                {
                    cont = new GUIContent(" - Gain multiplier:", "The resource to be gain upon purchasing this perk");
                }

                //cont=new GUIContent("Gain:", "The resource to be gain upon purchasing this perk");
                EditorGUI.LabelField(new Rect(startX, startY += spaceY, width, height), cont);
                startY += spaceY; float cachedX = startX;

                EditorUtilities.DrawSprite(new Rect(startX + 15, startY - 1, 20, 20), EditorDBManager.iconRsc);
                perk.perkLevel[level].valueRsc = EditorGUI.FloatField(new Rect(startX + 35, startY, 40, height), perk.perkLevel[level].valueRsc);

                startX = cachedX; startY += 5;
            }

            //~ if(IsPerkTypeUsesUnitStats(perkType)){
            if (perkType == _PerkType.Tower || perkType == _PerkType.TowerSpecific)
            {
                Vector2 v2;
                v2 = DrawTowerStat(startX, startY, perk, level); startY = v2.y;
            }

            if (perkType == _PerkType.Ability || perkType == _PerkType.AbilitySpecific)
            {
                Vector2 v2 = DrawAbilityStat(startX, startY, perk, level); startY = v2.y;
            }

            else if (perkType == _PerkType.EnergyRegen)
            {
                cont = new GUIContent(" - Increase Value:", "value used to modify the existing energy regeneration rate");
                DrawValue(startX, startY, perk, level, cont);
            }
            else if (perkType == _PerkType.EnergyIncreaseCap)
            {
                cont = new GUIContent(" - Increase Value:", "value used to modify the existing maximum energy capacity");
                DrawValue(startX, startY, perk, level, cont);
            }
            else if (perkType == _PerkType.EnergyCreepKilledBonus)
            {
                GUIContent cont1 = new GUIContent(" - Min value:", "Minimum value");
                GUIContent cont2 = new GUIContent(" - Max value:", "Maximum value");
                DrawValueMinMax(startX, startY, perk, level, cont1, cont2);
                startY += spaceY;
            }
            else if (perkType == _PerkType.EnergyWaveClearedBonus)
            {
                GUIContent cont1 = new GUIContent(" - Min value:", "Minimum value");
                GUIContent cont2 = new GUIContent(" - Max value:", "Maximum value");
                DrawValueMinMax(startX, startY, perk, level, cont1, cont2);
                startY += spaceY;
            }
            // des level

            startY += spaceY;
            GUIStyle style = new GUIStyle("TextArea");

            style.wordWrap = true;
            cont           = new GUIContent("Level Description:", "Level Description");
            EditorGUI.LabelField(new Rect(startX, startY += spaceY, width, height), cont);
            perk.perkLevel[level].desp = EditorGUI.TextArea(new Rect(startX, startY + spaceY - 3, 175, 75), perk.perkLevel[level].desp, style);
            startY += 75;
            //
            return(new Vector2(startX, startY));
        }
Esempio n. 4
0
        Vector2 DrawPerkType(float startX, float startY, Perk perk)
        {
            // type
            int type = (int)perk.type;

            cont = new GUIContent("Perk Type:", "What the perk does");
            EditorGUI.LabelField(new Rect(startX, startY += spaceY, width, height), cont);
            contL = new GUIContent[perkTypeLabel.Length];
            for (int i = 0; i < contL.Length; i++)
            {
                contL[i] = new GUIContent(perkTypeLabel[i], perkTypeTooltip[i]);
            }
            type      = EditorGUI.Popup(new Rect(startX + spaceX - 20, startY, width, 15), new GUIContent(""), type, contL);
            perk.type = (_PerkType)type;
            _PerkType perkType = perk.type;
            Vector2   v2;

            if (perkType == _PerkType.TowerSpecific)
            {
                v2 = DrawItemIDTower(startX, startY, perk, 3); startY = v2.y;
            }
            if (perkType == _PerkType.AbilitySpecific)
            {
                DrawItemIDAbility(startX, startY, perk); startY += spaceY;
            }
            // level
            perk.level = Mathf.Clamp(perk.level, 0, perk.perkLevel.Count - 1);
            int level = perk.level;

            cont = new GUIContent("Perk Level:", "Level of perk");
            EditorGUI.LabelField(new Rect(startX, startY += spaceY, width, height), cont);
            contL = new GUIContent[perk.perkLevel.Count];
            for (int i = 0; i < contL.Length; i++)
            {
                contL[i] = new GUIContent((i + 1).ToString(), "");
            }
            level      = EditorGUI.Popup(new Rect(startX + spaceX - 20, startY, 50, 15), new GUIContent(""), level, contL);
            perk.level = level;
            if (GUI.Button(new Rect(startX + spaceX + 40, startY, 40, 15), "-1"))
            {
                if (perk.perkLevel.Count > 1)
                {
                    perk.perkLevel.RemoveAt(perk.perkLevel.Count - 1);
                }
            }
            if (GUI.Button(new Rect(startX + spaceX + 90, startY, 40, 15), "+1"))
            {
                perk.perkLevel.Add(perk.perkLevel[perk.perkLevel.Count - 1].Clone());
            }

            // Detail level

            startY      += spaceY * 2;
            minimiseStat = EditorGUI.Foldout(new Rect(startX, startY, width, height), minimiseStat, "Show Stats");

            float offsetDetail = 220;
            float maxHeight    = startY;
            float maxWidth     = startX + offsetDetail * (perk.perkLevel.Count - 1);

            if (!minimiseStat)
            {
                startY += spaceY;
                startX += 15;
                for (int i = 0; i < perk.perkLevel.Count; i++)
                {
                    EditorGUI.LabelField(new Rect(startX + offsetDetail * i, startY, width, height), "Level " + (i + 1) + " Stats");
                    float _height = DrawLevelDetail(startX + offsetDetail * i, startY, perk, i).y;
                    if (_height > maxHeight)
                    {
                        maxHeight = _height;
                    }
                }
            }

            return(new Vector2(maxWidth, maxHeight));
        }
		bool IsPerkTypeUsesUnitStats(_PerkType type){
			if(type==_PerkType.Tower) return true;
			else if(type==_PerkType.TowerSpecific) return true;
			else if(type==_PerkType.Ability) return true;
			else if(type==_PerkType.AbilitySpecific) return true;
			else if(type==_PerkType.FPSWeapon) return true;
			else if(type==_PerkType.FPSWeaponSpecific) return true;
			return false;
		}
		bool IsPerkTypeUsesRsc(_PerkType type){
			if(type==_PerkType.GainRsc) return true;
			else if(type==_PerkType.RscRegen) return true;
			else if(type==_PerkType.RscGain) return true;
			else if(type==_PerkType.RscCreepKilledGain) return true;
			else if(type==_PerkType.RscWaveClearedGain) return true;
			else if(type==_PerkType.RscResourceTowerGain) return true;
			return false;
		}