コード例 #1
0
        //If performance is an issue let's memoize this, reason I haven't done that off the bat is
        //there is no readily safe identifier I can use to link the same troop types.
        //and honestly I think its over-optimising anyways to even consider it, memory is enough of a problem.
        private static double getTroopXpDivisor(TroopRoster roster, FlattenedTroopRosterElement item)
        {
            int indexOfTroop = roster.FindIndexOfTroop(item.Troop);

            if (indexOfTroop == -1)
            {
                return(1);
            }
            TroopRosterElement element = roster.GetElementCopyAtIndex(indexOfTroop);

            if (element.NumberReadyToUpgrade == 0 || element.Number == 0)
            {
                return(1);
            }
            return((double)element.Number / (double)element.NumberReadyToUpgrade);
        }