Beyond_Beyaan.TechnologyManager.GetChanceForDiscovery C# (CSharp) Метод

GetChanceForDiscovery() приватный Метод

private GetChanceForDiscovery ( TechField whichField ) : int
whichField TechField
Результат int
        private int GetChanceForDiscovery(TechField whichField)
        {
            //Only items being currently researched have a chance of being discovered
            switch (whichField)
            {
                case TechField.COMPUTER:
                {
                    if (ComputerPercentage > 0 && WhichComputerBeingResearched != null)
                    {
                        int researchPointsRequired = (int)(WhichComputerBeingResearched.ResearchPoints * COST_MODIFIER * RaceModifiers[TechField.COMPUTER]);
                        if (ComputerResearchAmount > researchPointsRequired) //We now have a chance of discovering it
                        {
                            return (int)(((ComputerResearchAmount - researchPointsRequired) / (researchPointsRequired * 2)) * 100);
                        }
                    }
                } break;
                case TechField.CONSTRUCTION:
                    {
                        if (ConstructionPercentage > 0 && WhichConstructionBeingResearched != null)
                        {
                            int researchPointsRequired = (int)(WhichConstructionBeingResearched.ResearchPoints * COST_MODIFIER * RaceModifiers[TechField.CONSTRUCTION]);
                            if (ConstructionResearchAmount > researchPointsRequired) //We now have a chance of discovering it
                            {
                                return (int)(((ConstructionResearchAmount - researchPointsRequired) / (researchPointsRequired * 2)) * 100);
                            }
                        }
                    } break;
                case TechField.FORCE_FIELD:
                    {
                        if (ForceFieldPercentage > 0 && WhichForceFieldBeingResearched != null)
                        {
                            int researchPointsRequired = (int)(WhichForceFieldBeingResearched.ResearchPoints * COST_MODIFIER * RaceModifiers[TechField.FORCE_FIELD]);
                            if (ForceFieldResearchAmount > researchPointsRequired) //We now have a chance of discovering it
                            {
                                return (int)(((ForceFieldResearchAmount - researchPointsRequired) / (researchPointsRequired * 2)) * 100);
                            }
                        }
                    } break;
                case TechField.PLANETOLOGY:
                    {
                        if (PlanetologyPercentage > 0 && WhichPlanetologyBeingResearched != null)
                        {
                            int researchPointsRequired = (int)(WhichPlanetologyBeingResearched.ResearchPoints * COST_MODIFIER * RaceModifiers[TechField.PLANETOLOGY]);
                            if (PlanetologyResearchAmount > researchPointsRequired) //We now have a chance of discovering it
                            {
                                return (int)(((PlanetologyResearchAmount - researchPointsRequired) / (researchPointsRequired * 2)) * 100);
                            }
                        }
                    } break;
                case TechField.PROPULSION:
                    {
                        if (PropulsionPercentage > 0 && WhichPropulsionBeingResearched != null)
                        {
                            int researchPointsRequired = (int)(WhichPropulsionBeingResearched.ResearchPoints * COST_MODIFIER * RaceModifiers[TechField.PROPULSION]);
                            if (PropulsionResearchAmount > researchPointsRequired) //We now have a chance of discovering it
                            {
                                return (int)(((PropulsionResearchAmount - researchPointsRequired) / (researchPointsRequired * 2)) * 100);
                            }
                        }
                    } break;
                case TechField.WEAPON:
                    {
                        if (WeaponPercentage > 0 && WhichWeaponBeingResearched != null)
                        {
                            int researchPointsRequired = (int)(WhichWeaponBeingResearched.ResearchPoints * COST_MODIFIER * RaceModifiers[TechField.WEAPON]);
                            if (WeaponResearchAmount > researchPointsRequired) //We now have a chance of discovering it
                            {
                                return (int)(((WeaponResearchAmount - researchPointsRequired) / (researchPointsRequired * 2)) * 100);
                            }
                        }
                    } break;
            }
            return 0;
        }