Esempio n. 1
0
        internal bool CanStartUpgrading(Combat_Item data)
        {
            var result = false;

            if (Unit == null)
            {
                if (Parent.ClassId == 0)
                {
                    var b  = (Building)Parent;
                    var ca = Parent.Level.Avatar;
                    var cm = Parent.Level.GetComponentManager();
                    var maxProductionBuildingLevel = data.GetCombatItemType() == 1
                        ? cm.GetMaxSpellForgeLevel()
                        : cm.GetMaxBarrackLevel();
                    if (ca.GetUnitUpgradeLevel(data) < data.GetUpgradeLevelCount() - 1)
                    {
                        if (maxProductionBuildingLevel >= data.GetRequiredProductionHouseLevel() - 1)
                        {
                            result = b.GetUpgradeLevel >=
                                     data.GetRequiredLaboratoryLevel(ca.GetUnitUpgradeLevel(data) + 1) - 1;
                        }
                    }
                }
                else if (Parent.ClassId == 7)
                {
                    var b  = (Builder_Building)Parent;
                    var ca = Parent.Level.Avatar;
                    var cm = Parent.Level.GetComponentManager();
                    var maxProductionBuildingLevel = data.GetCombatItemType() == 1
                        ? cm.GetMaxSpellForgeLevel()
                        : cm.GetMaxBarrackLevel();
                    if (ca.GetUnitUpgradeLevel(data) < data.GetUpgradeLevelCount() - 1)
                    {
                        if (maxProductionBuildingLevel >= data.GetRequiredProductionHouseLevel() - 1)
                        {
                            result = b.GetUpgradeLevel >=
                                     data.GetRequiredLaboratoryLevel(ca.GetUnitUpgradeLevel(data) + 1) - 1;
                        }
                    }
                }
            }
            return(result);
        }