Ejemplo n.º 1
0
        public int GetMaxUnitsInCamp(LogicCharacterData data)
        {
            LogicAvatar homeOwnerAvatar = this.m_parent.GetLevel().GetHomeOwnerAvatar();

            if (homeOwnerAvatar != null)
            {
                return(data.GetUnitsInCamp(homeOwnerAvatar.GetUnitUpgradeLevel(data)));
            }

            Debugger.Error("AVATAR = NULL");

            return(0);
        }
        public static float GetCharacterStrength(LogicCharacterData data, int upgLevel)
        {
            if (data.IsProductionEnabled())
            {
                float attackStrength = data.GetHitpoints(upgLevel) * 0.04f +
                                       LogicMath.Abs(data.GetAttackerItemData(upgLevel).GetDamagePerMS(0, false)) * 0.2f;

                if (data.GetUnitsInCamp(upgLevel) > 0 && data.GetUnitsInCamp(0) > 0)
                {
                    attackStrength = (float)data.GetUnitsInCamp(upgLevel) / data.GetUnitsInCamp(0) * attackStrength;
                }

                for (int i = data.GetSpecialAbilityLevel(upgLevel); i > 0; i--)
                {
                    attackStrength *= 1.1f;
                }

                return(attackStrength * 0.01f * data.GetStrengthWeight(upgLevel) / data.GetHousingSpace() * 10f);
            }

            return(0f);
        }
        /// <summary>
        ///     Gets the max unit count.
        /// </summary>
        public int GetMaxCapacity()
        {
            LogicAvatar        homeOwnerAvatar = this._parent.GetLevel().GetHomeOwnerAvatar();
            LogicCharacterData characterData   = (LogicCharacterData)this._unit.GetData();

            if (homeOwnerAvatar != null)
            {
                return(characterData.GetUnitsInCamp(homeOwnerAvatar.GetUnitUpgradeLevel(characterData)));
            }

            Debugger.Error("AVATAR = NULL");

            return(0);
        }