예제 #1
0
            public AirCorpsFighterPower CalcFighterPower()
            {
                var reconPlaneBonus = Planes.Aggregate(new AirCorpsFighterPower.Pair(), (max, plane) =>
                {
                    var bonus = plane.Slot.Spec.ReconPlaneAirBaseBonus;
                    return(AirCorpsFighterPower.Pair.Max(max, bonus));
                });
                var range = (Planes.Aggregate(new AirCorpsFighterPower.Range(), (previous, plane) =>
                {
                    if (plane.State != 1)
                    {
                        return(previous);
                    }
                    var current = plane.Slot.CalcFighterPowerInBase(plane.Count);
                    return(previous + current);
                }) * reconPlaneBonus).Floor();

                return(new AirCorpsFighterPower(range));
            }