diff --git a/gen/conflictgen.py b/gen/conflictgen.py index e0bf85b2..80c8f700 100644 --- a/gen/conflictgen.py +++ b/gen/conflictgen.py @@ -18,10 +18,14 @@ from theater import * AIR_DISTANCE = 40000 +CAPTURE_AIR_ATTACKERS_DISTANCE = 25000 +CAPTURE_AIR_DEFENDERS_DISTANCE = 60000 +GROUND_INTERCEPT_SPREAD = 5000 GROUND_DISTANCE_FACTOR = 1 -GROUNDINTERCEPT_DISTANCE_FACTOR = 6 -AIR_DISTANCE = 32000 +GROUND_ATTACK_DISTANCE = 25000, 13000 + +TRANSPORT_FRONTLINE_DIST = 1800 INTERCEPT_ATTACKERS_HEADING = -45, 45 INTERCEPT_DEFENDERS_HEADING = -10, 10 @@ -34,6 +38,9 @@ NAVAL_INTERCEPT_DISTANCE_FACTOR = 0.4 NAVAL_INTERCEPT_DISTANCE_MAX = 40000 NAVAL_INTERCEPT_STEP = 5000 +FRONT_SMOKE_MIN_DISTANCE = 5000 +FRONT_SMOKE_DISTANCE_FACTOR = 0.5 + def _opposite_heading(h): return h+180 @@ -87,6 +94,12 @@ class Conflict: self.air_attackers_location = air_attackers_location self.air_defenders_location = air_defenders_location + @classmethod + def _frontline_position(cls, from_cp: ControlPoint, to_cp: ControlPoint): + distance = max(from_cp.position.distance_to_point(to_cp.position) * FRONT_SMOKE_DISTANCE_FACTOR * to_cp.base.strength, FRONT_SMOKE_MIN_DISTANCE) + heading = to_cp.position.heading_between_point(from_cp.position) + return to_cp.position.point_from_heading(heading, distance) + @classmethod def _find_ground_location(cls, initial: Point, max_distance: int, heading: int, theater: ConflictTheater) -> Point: for _ in range(0, int(max_distance), 800): @@ -172,11 +185,13 @@ class Conflict: ) @classmethod - def ground_intercept_conflict(cls, attacker: Country, defender: Country, heading: int, from_cp: ControlPoint, to_cp: ControlPoint, theater: ConflictTheater): - heading = random.choice(to_cp.radials) - initial_location = to_cp.position.point_from_heading(heading, to_cp.size * GROUNDINTERCEPT_DISTANCE_FACTOR) - max_distance = to_cp.size * GROUNDINTERCEPT_DISTANCE_FACTOR - ground_location = Conflict._find_ground_location(initial_location, max_distance, _heading_sum(heading, 180), theater) + def ground_intercept_conflict(cls, attacker: Country, defender: Country, from_cp: ControlPoint, to_cp: ControlPoint, theater: ConflictTheater): + heading = to_cp.position.heading_between_point(from_cp.position) + initial_location = cls._frontline_position(from_cp, to_cp).random_point_within(GROUND_INTERCEPT_SPREAD) + position = Conflict._find_ground_location(initial_location, GROUND_INTERCEPT_SPREAD, heading, theater) + if not position: + heading = to_cp.find_radial(to_cp.position.heading_between_point(from_cp.position)) + position = to_cp.position.point_from_heading(heading, to_cp.size * GROUND_DISTANCE_FACTOR) return cls( position=position, diff --git a/gen/visualgen.py b/gen/visualgen.py index 51c521a7..380bfda0 100644 --- a/gen/visualgen.py +++ b/gen/visualgen.py @@ -62,8 +62,6 @@ def __monkey_static_dict(self: Static): __original_static_dict = Static.dict Static.dict = __monkey_static_dict -FRONT_SMOKE_MIN_DISTANCE = 10000 -FRONT_SMOKE_DISTANCE_FACTOR = 0.5 FRONT_SMOKE_LENGTH = 80000 FRONT_SMOKE_SPACING = 600 FRONT_SMOKE_RANDOM_SPREAD = 3000 @@ -100,7 +98,6 @@ class VisualGenerator: def _generate_frontline_smokes(self): for from_cp, to_cp in self.game.theater.conflicts(): - distance = max(from_cp.position.distance_to_point(to_cp.position) * FRONT_SMOKE_DISTANCE_FACTOR * to_cp.base.strength, FRONT_SMOKE_MIN_DISTANCE) heading = to_cp.position.heading_between_point(from_cp.position) point = Conflict._frontline_position(from_cp, to_cp) plane_start = point.point_from_heading(turn_heading(heading, 90), FRONT_SMOKE_LENGTH / 2) diff --git a/resources/default_options.lua b/resources/default_options.lua new file mode 100644 index 00000000..100e5524 --- /dev/null +++ b/resources/default_options.lua @@ -0,0 +1,221 @@ +options = +{ + ["playerName"] = "PRINCE", + ["miscellaneous"] = + { + ["headmove"] = false, + ["TrackIR_external_views"] = false, + ["f5_nearest_ac"] = false, + ["f11_free_camera"] = false, + ["F2_view_effects"] = 1, + ["f10_awacs"] = true, + ["Coordinate_Display"] = "Lat Long", + ["accidental_failures"] = false, + ["autologin"] = true, + ["force_feedback_enabled"] = false, + ["collect_stat"] = true, + ["chat_window_at_start"] = true, + ["synchronize_controls"] = false, + ["show_pilot_body"] = false, + }, -- end of ["miscellaneous"] + ["difficulty"] = + { + ["padlock"] = true, + ["easyRadar"] = false, + ["geffect"] = "reduced", + ["miniHUD"] = false, + ["setGlobal"] = true, + ["birds"] = 0, + ["optionsView"] = "optview_all", + ["permitCrash"] = false, + ["immortal"] = false, + ["cockpitStatusBarAllowed"] = false, + ["cockpitVisualRM"] = false, + ["fuel"] = false, + ["reports"] = true, + ["hideStick"] = false, + ["radio"] = true, + ["map"] = true, + ["spectatorExternalViews"] = false, + ["avionicsLanguage"] = "native", + ["userSnapView"] = false, + ["tips"] = true, + ["userMarks"] = true, + ["units"] = "imperial", + ["externalViews"] = true, + ["iconsTheme"] = "nato", + ["easyFlight"] = false, + ["weapons"] = false, + ["easyCommunication"] = true, + ["labels"] = true, + }, -- end of ["difficulty"] + ["VR"] = + { + ["use_mouse"] = true, + ["hand_controllers"] = true, + ["custom_IPD"] = "63", + ["custom_IPD_enable"] = false, + ["enable"] = true, + ["prefer_built_in_audio"] = true, + ["box_mouse_cursor"] = false, + ["pixel_density"] = 1, + }, -- end of ["VR"] + ["graphics"] = + { + ["rainDroplets"] = 1, + ["preloadRadius"] = 100000, + ["heatBlr"] = 1, + ["anisotropy"] = 4, + ["water"] = 2, + ["motionBlur"] = 0, + ["outputGamma"] = 2, + ["treesVisibility"] = 5000, + ["aspect"] = 1.7777777777778, + ["lights"] = 2, + ["HDR"] = 0, + ["MSAA"] = 0, + ["SSAA"] = 0, + ["height"] = 1080, + ["forestDistanceFactor"] = 0.77, + ["cockpitGI"] = 1, + ["terrainTextures"] = "max", + ["multiMonitorSetup"] = "1camera", + ["shadowTree"] = false, + ["chimneySmokeDensity"] = 0, + ["fullScreen"] = false, + ["disableAero"] = false, + ["DOF"] = 0, + ["clouds"] = 1, + ["flatTerrainShadows"] = 2, + ["width"] = 1920, + ["shadows"] = 2, + ["textures"] = 2, + ["effects"] = 3, + ["SSAO"] = 0, + ["useDeferredShading"] = 1, + ["sync"] = false, + ["LensEffects"] = 3, + ["visibRange"] = "Low", + ["scaleGui"] = false, + ["clutterMaxDistance"] = 750, + ["civTraffic"] = "", + }, -- end of ["graphics"] + ["plugins"] = + { + ["Su-25T"] = + { + ["CPLocalList"] = "default", + }, -- end of ["Su-25T"] + ["M-2000C"] = + { + ["UNI_ALIGNED"] = true, + ["CPLocalList"] = "default", + ["PPA_TOTPAR"] = false, + ["UNI_NODRIFT"] = false, + }, -- end of ["M-2000C"] + ["A-10C"] = + { + ["CPLocalList"] = "default", + }, -- end of ["A-10C"] + ["FC3"] = + { + ["CPLocalList_Su-25"] = "default", + ["CPLocalList_Su-27"] = "default", + ["CPLocalList_A-10A"] = "default", + ["CPLocalList_Su-33"] = "default", + ["CPLocalList_MiG-29S"] = "default", + ["CPLocalList_MiG-29A"] = "default", + ["CPLocalList_J-11A"] = "default", + ["CPLocalList_MiG-29G"] = "default", + ["CPLocalList_F-15C"] = "default", + }, -- end of ["FC3"] + ["F/A-18C"] = + { + ["abDetent"] = true, + ["CPLocalList"] = "default", + }, -- end of ["F/A-18C"] + ["MiG-21Bis"] = + { + ["Pitot"] = false, + ["Engine"] = false, + ["Shake"] = 100, + ["CPLocalList"] = "Default", + ["Reticle"] = false, + ["Freeze"] = false, + }, -- end of ["MiG-21Bis"] + ["AV8BNA"] = + { + ["UNI_ALIGNED"] = false, + ["PPA_TOTPAR"] = false, + ["UNI_NODRIFT"] = false, + }, -- end of ["AV8BNA"] + ["F-5E-3"] = + { + ["JoystickMode"] = 0, + ["SightCamera"] = 0, + ["CPLocalList"] = "default", + ["aiHelper"] = false, + }, -- end of ["F-5E-3"] + ["Mi-8MTV2"] = + { + ["Mi8TrimmingMethod"] = 0, + ["Mi8RudderTrimmer"] = true, + ["Mi8AutopilotAdjustment"] = false, + ["gunCamera"] = 0, + ["Mi8CockpitShake"] = 50, + ["controlHelperMi8"] = false, + ["CPLocalList"] = "default_glass_dirt", + ["Mi8FOV"] = 120, + }, -- end of ["Mi-8MTV2"] + ["AJS37"] = + { + ["CPLocalList"] = "default", + }, -- end of ["AJS37"] + ["TF-51D"] = + { + ["assistance"] = 100, + ["CPLocalList"] = "default", + ["autoRudder"] = false, + }, -- end of ["TF-51D"] + ["UH-1H"] = + { + ["UHRudderTrimmer"] = true, + ["autoPilot"] = true, + ["UH1HCockpitShake"] = 50, + ["CPLocalList"] = "default", + ["weapTooltips"] = false, + ["UHTrimmingMethod"] = 0, + }, -- end of ["UH-1H"] + ["Ka-50"] = + { + ["Ka50TrimmingMethod"] = 0, + ["CPLocalList"] = "default", + ["Ka50RudderTrimmer"] = true, + ["helmetCircleDisplacement"] = 11, + }, -- end of ["Ka-50"] + }, -- end of ["plugins"] + ["format"] = 1, + ["sound"] = + { + ["hear_in_helmet"] = true, + ["headphones"] = 100, + ["cockpit"] = 100, + ["world"] = 5, + ["radioSpeech"] = true, + ["GBreathEffect"] = true, + ["volume"] = 21, + ["headphones_on_external_views"] = true, + ["music"] = 0, + ["subtitles"] = false, + ["gui"] = 100, + }, -- end of ["sound"] + ["views"] = + { + ["cockpit"] = + { + ["mirrors"] = false, + ["reflections"] = false, + ["avionics"] = 1, + }, -- end of ["cockpit"] + }, -- end of ["views"] +} -- end of options