mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-04-04 19:40:02 +03:00
617 lines
26 KiB
Python
617 lines
26 KiB
Python
"""
|
||
Static data.
|
||
|
||
For easy reference any variable should be prefixed with the name of the file it
|
||
was either in originally, or where the primary code utilising it is.
|
||
"""
|
||
|
||
# Map numeric 'demand/supply brackets' to the names as shown in-game.
|
||
commodity_bracketmap = {
|
||
0: '',
|
||
1: 'Low',
|
||
2: 'Med',
|
||
3: 'High',
|
||
}
|
||
|
||
# Map values reported by the Companion interface to names displayed in-game.
|
||
# May be imported by plugins.
|
||
companion_category_map = {
|
||
'Narcotics': 'Legal Drugs',
|
||
'Slaves': 'Slavery',
|
||
'Waste ': 'Waste',
|
||
'NonMarketable': False, # Don't appear in the in-game market so don't report
|
||
}
|
||
|
||
# Map suit symbol names to English localised names
|
||
companion_suit_type_map = {
|
||
'TacticalSuit_Class1': 'Dominator Suit',
|
||
}
|
||
|
||
# Map Coriolis's names to names displayed in the in-game shipyard.
|
||
coriolis_ship_map = {
|
||
'Cobra Mk III': 'Cobra MkIII',
|
||
'Cobra Mk IV': 'Cobra MkIV',
|
||
'Krait Mk II': 'Krait MkII',
|
||
'Viper': 'Viper MkIII',
|
||
'Viper Mk IV': 'Viper MkIV',
|
||
}
|
||
|
||
# Map API slot names to E:D Shipyard slot names
|
||
edshipyard_slot_map = {
|
||
'hugehardpoint': 'H',
|
||
'largehardpoint': 'L',
|
||
'mediumhardpoint': 'M',
|
||
'smallhardpoint': 'S',
|
||
'tinyhardpoint': 'U',
|
||
'armour': 'BH',
|
||
'powerplant': 'RB',
|
||
'mainengines': 'TM',
|
||
'frameshiftdrive': 'FH',
|
||
'lifesupport': 'EC',
|
||
'powerdistributor': 'PC',
|
||
'radar': 'SS',
|
||
'fueltank': 'FS',
|
||
'military': 'MC',
|
||
}
|
||
|
||
# Map API module names to in-game names
|
||
|
||
outfitting_armour_map = {
|
||
'grade1': 'Lightweight Alloy',
|
||
'grade2': 'Reinforced Alloy',
|
||
'grade3': 'Military Grade Composite',
|
||
'mirrored': 'Mirrored Surface Composite',
|
||
'reactive': 'Reactive Surface Composite',
|
||
}
|
||
|
||
|
||
outfitting_weapon_map = {
|
||
'advancedtorppylon': 'Torpedo Pylon',
|
||
'atdumbfiremissile': 'AX Missile Rack',
|
||
'atmulticannon': 'AX Multi-Cannon',
|
||
('atmulticannon', 'v2'): 'Enhanced AX Multi-Cannon',
|
||
('atdumbfiremissile', 'v2'): 'Enhanced AX Missile Rack',
|
||
'basicmissilerack': 'Seeker Missile Rack',
|
||
'beamlaser': 'Beam Laser',
|
||
('beamlaser', 'heat'): 'Retributor Beam Laser',
|
||
'cannon': 'Cannon',
|
||
'causticmissile': 'Enzyme Missile Rack',
|
||
'drunkmissilerack': 'Pack-Hound Missile Rack',
|
||
'dumbfiremissilerack': 'Missile Rack',
|
||
('dumbfiremissilerack', 'advanced'): 'Advanced Missile Rack',
|
||
('dumbfiremissilerack', 'lasso'): 'Rocket Propelled FSD Disruptor',
|
||
'flakmortar': 'Remote Release Flak Launcher',
|
||
'flechettelauncher': 'Remote Release Flechette Launcher',
|
||
'guardian_gausscannon': 'Guardian Gauss Cannon',
|
||
'guardian_plasmalauncher': 'Guardian Plasma Charger',
|
||
'guardian_shardcannon': 'Guardian Shard Cannon',
|
||
'minelauncher': 'Mine Launcher',
|
||
('minelauncher', 'impulse'): 'Shock Mine Launcher',
|
||
'mining_abrblstr': 'Abrasion Blaster',
|
||
'mining_seismchrgwarhd': 'Seismic Charge Launcher',
|
||
'mining_subsurfdispmisle': 'Sub-Surface Displacement Missile',
|
||
'human_extraction': 'Sub-Surface Extraction Missile',
|
||
'atventdisruptorpylon': 'Guardian Nanite Torpedo Pylon',
|
||
'mininglaser': 'Mining Laser',
|
||
('mininglaser', 'advanced'): 'Mining Lance Beam Laser',
|
||
'multicannon': 'Multi-Cannon',
|
||
('multicannon', 'advanced'): 'Advanced Multi-Cannon',
|
||
('multicannon', 'strong'): 'Enforcer Cannon',
|
||
'plasmaaccelerator': 'Plasma Accelerator',
|
||
('plasmaaccelerator', 'advanced'): 'Advanced Plasma Accelerator',
|
||
'plasmashockcannon': 'Shock Cannon',
|
||
'pulselaser': 'Pulse Laser',
|
||
('pulselaser', 'disruptor'): 'Pulse Disruptor Laser',
|
||
'pulselaserburst': 'Burst Laser',
|
||
('pulselaserburst', 'scatter'): 'Cytoscrambler Burst Laser',
|
||
'railgun': 'Rail Gun',
|
||
('railgun', 'burst'): 'Imperial Hammer Rail Gun',
|
||
'slugshot': 'Fragment Cannon',
|
||
('slugshot', 'range'): 'Pacifier Frag-Cannon',
|
||
}
|
||
|
||
outfitting_missiletype_map = {
|
||
'advancedtorppylon': 'Seeker',
|
||
'atdumbfiremissile': 'Dumbfire',
|
||
'basicmissilerack': 'Seeker',
|
||
'causticmissile': 'Dumbfire',
|
||
'drunkmissilerack': 'Swarm',
|
||
'dumbfiremissilerack': 'Dumbfire',
|
||
'mining_subsurfdispmisle': 'Seeker',
|
||
'mining_seismchrgwarhd': 'Seeker',
|
||
}
|
||
|
||
outfitting_weaponmount_map = {
|
||
'basic': 'Utility',
|
||
'fixed': 'Fixed',
|
||
'gimbal': 'Gimballed',
|
||
'turret': 'Turreted',
|
||
}
|
||
|
||
outfitting_weaponclass_map = {
|
||
'tiny': '0',
|
||
'small': '1',
|
||
'smallfree': '1',
|
||
'medium': '2',
|
||
'large': '3',
|
||
'huge': '4',
|
||
}
|
||
|
||
# There's no discernable pattern for weapon ratings, so here's a lookup table
|
||
outfitting_weaponrating_map = {
|
||
'hpt_advancedtorppylon_fixed_small': 'I',
|
||
'hpt_advancedtorppylon_fixed_medium': 'I',
|
||
'hpt_advancedtorppylon_fixed_large': 'I',
|
||
'hpt_atdumbfiremissile_fixed_medium': 'B',
|
||
'hpt_atdumbfiremissile_fixed_large': 'A',
|
||
'hpt_atdumbfiremissile_turret_medium': 'B',
|
||
'hpt_atdumbfiremissile_turret_large': 'A',
|
||
'hpt_atmulticannon_fixed_medium': 'E',
|
||
'hpt_atmulticannon_fixed_large': 'C',
|
||
'hpt_atmulticannon_turret_medium': 'F',
|
||
'hpt_atmulticannon_turret_large': 'E',
|
||
'hpt_basicmissilerack_fixed_small': 'B',
|
||
'hpt_basicmissilerack_fixed_medium': 'B',
|
||
'hpt_basicmissilerack_fixed_large': 'A',
|
||
'hpt_beamlaser_fixed_small': 'E',
|
||
'hpt_beamlaser_fixed_medium': 'D',
|
||
'hpt_beamlaser_fixed_large': 'C',
|
||
'hpt_beamlaser_fixed_huge': 'A',
|
||
'hpt_beamlaser_gimbal_small': 'E',
|
||
'hpt_beamlaser_gimbal_medium': 'D',
|
||
'hpt_beamlaser_gimbal_large': 'C',
|
||
'hpt_beamlaser_gimbal_huge': 'A',
|
||
'hpt_beamlaser_turret_small': 'F',
|
||
'hpt_beamlaser_turret_medium': 'E',
|
||
'hpt_beamlaser_turret_large': 'D',
|
||
'hpt_cannon_fixed_small': 'D',
|
||
'hpt_cannon_fixed_medium': 'D',
|
||
'hpt_cannon_fixed_large': 'C',
|
||
'hpt_cannon_fixed_huge': 'B',
|
||
'hpt_cannon_gimbal_small': 'E',
|
||
'hpt_cannon_gimbal_medium': 'D',
|
||
'hpt_cannon_gimbal_large': 'C',
|
||
'hpt_cannon_gimbal_huge': 'B',
|
||
'hpt_cannon_turret_small': 'F',
|
||
'hpt_cannon_turret_medium': 'E',
|
||
'hpt_cannon_turret_large': 'D',
|
||
'hpt_causticmissile_fixed_medium': 'B',
|
||
'hpt_drunkmissilerack_fixed_medium': 'B',
|
||
'hpt_dumbfiremissilerack_fixed_small': 'B',
|
||
'hpt_dumbfiremissilerack_fixed_medium': 'B',
|
||
'hpt_dumbfiremissilerack_fixed_large': 'A',
|
||
'hpt_flakmortar_fixed_medium': 'B',
|
||
'hpt_flakmortar_turret_medium': 'B',
|
||
'hpt_flechettelauncher_fixed_medium': 'B',
|
||
'hpt_flechettelauncher_turret_medium': 'B',
|
||
'hpt_guardian_gausscannon_fixed_small': 'D',
|
||
'hpt_guardian_gausscannon_fixed_medium': 'B',
|
||
'hpt_guardian_plasmalauncher_fixed_small': 'D',
|
||
'hpt_guardian_plasmalauncher_fixed_medium': 'B',
|
||
'hpt_guardian_plasmalauncher_fixed_large': 'C',
|
||
'hpt_guardian_plasmalauncher_turret_small': 'F',
|
||
'hpt_guardian_plasmalauncher_turret_medium': 'E',
|
||
'hpt_guardian_plasmalauncher_turret_large': 'D',
|
||
'hpt_guardian_shardcannon_fixed_small': 'D',
|
||
'hpt_guardian_shardcannon_fixed_medium': 'A',
|
||
'hpt_guardian_shardcannon_fixed_large': 'C',
|
||
'hpt_guardian_shardcannon_turret_small': 'F',
|
||
'hpt_guardian_shardcannon_turret_medium': 'D',
|
||
'hpt_guardian_shardcannon_turret_large': 'D',
|
||
'hpt_minelauncher_fixed_small': 'I',
|
||
'hpt_minelauncher_fixed_medium': 'I',
|
||
'hpt_mining_abrblstr_fixed_small': 'D',
|
||
'hpt_mining_abrblstr_turret_small': 'D',
|
||
'hpt_mining_seismchrgwarhd_fixed_medium': 'B',
|
||
'hpt_mining_seismchrgwarhd_turret_medium': 'B',
|
||
'hpt_mining_subsurfdispmisle_fixed_small': 'B',
|
||
'hpt_mining_subsurfdispmisle_fixed_medium': 'B',
|
||
'hpt_mining_subsurfdispmisle_turret_small': 'B',
|
||
'hpt_mining_subsurfdispmisle_turret_medium': 'B',
|
||
'hpt_mininglaser_fixed_small': 'D',
|
||
'hpt_mininglaser_fixed_medium': 'D',
|
||
'hpt_mininglaser_turret_small': 'D',
|
||
'hpt_mininglaser_turret_medium': 'D',
|
||
'hpt_multicannon_fixed_small': 'F',
|
||
'hpt_multicannon_fixed_small_advanced': 'F',
|
||
'hpt_multicannon_fixed_medium': 'E',
|
||
'hpt_multicannon_fixed_medium_advanced': 'E',
|
||
'hpt_multicannon_fixed_large': 'C',
|
||
'hpt_multicannon_fixed_huge': 'A',
|
||
'hpt_multicannon_gimbal_small': 'G',
|
||
'hpt_multicannon_gimbal_medium': 'F',
|
||
'hpt_multicannon_gimbal_large': 'C',
|
||
'hpt_multicannon_gimbal_huge': 'A',
|
||
'hpt_multicannon_turret_small': 'G',
|
||
'hpt_multicannon_turret_medium': 'F',
|
||
'hpt_multicannon_turret_large': 'E',
|
||
'hpt_plasmaaccelerator_fixed_medium': 'C',
|
||
'hpt_plasmaaccelerator_fixed_large': 'B',
|
||
'hpt_plasmaaccelerator_fixed_huge': 'A',
|
||
'hpt_plasmashockcannon_fixed_small': 'D',
|
||
'hpt_plasmashockcannon_fixed_medium': 'D',
|
||
'hpt_plasmashockcannon_fixed_large': 'C',
|
||
'hpt_plasmashockcannon_gimbal_small': 'E',
|
||
'hpt_plasmashockcannon_gimbal_medium': 'D',
|
||
'hpt_plasmashockcannon_gimbal_large': 'C',
|
||
'hpt_plasmashockcannon_turret_small': 'F',
|
||
'hpt_plasmashockcannon_turret_medium': 'E',
|
||
'hpt_plasmashockcannon_turret_large': 'D',
|
||
'hpt_pulselaser_fixed_small': 'F',
|
||
'hpt_pulselaser_fixed_smallfree': 'F',
|
||
'hpt_pulselaser_fixed_medium': 'E',
|
||
'hpt_pulselaser_fixed_large': 'D',
|
||
'hpt_pulselaser_fixed_huge': 'A',
|
||
'hpt_pulselaser_gimbal_small': 'G',
|
||
'hpt_pulselaser_gimbal_medium': 'F',
|
||
'hpt_pulselaser_gimbal_large': 'E',
|
||
'hpt_pulselaser_gimbal_huge': 'A',
|
||
'hpt_pulselaser_turret_small': 'G',
|
||
'hpt_pulselaser_turret_medium': 'F',
|
||
'hpt_pulselaser_turret_large': 'F',
|
||
'hpt_pulselaserburst_fixed_small': 'F',
|
||
'hpt_pulselaserburst_fixed_medium': 'E',
|
||
'hpt_pulselaserburst_fixed_large': 'D',
|
||
'hpt_pulselaserburst_fixed_huge': 'E',
|
||
'hpt_pulselaserburst_gimbal_small': 'G',
|
||
'hpt_pulselaserburst_gimbal_medium': 'F',
|
||
'hpt_pulselaserburst_gimbal_large': 'E',
|
||
'hpt_pulselaserburst_gimbal_huge': 'E',
|
||
'hpt_pulselaserburst_turret_small': 'G',
|
||
'hpt_pulselaserburst_turret_medium': 'F',
|
||
'hpt_pulselaserburst_turret_large': 'E',
|
||
'hpt_railgun_fixed_small': 'D',
|
||
'hpt_railgun_fixed_medium': 'B',
|
||
'hpt_slugshot_fixed_small': 'E',
|
||
'hpt_slugshot_fixed_medium': 'A',
|
||
'hpt_slugshot_fixed_large': 'C',
|
||
'hpt_slugshot_gimbal_small': 'E',
|
||
'hpt_slugshot_gimbal_medium': 'D',
|
||
'hpt_slugshot_gimbal_large': 'C',
|
||
'hpt_slugshot_turret_small': 'E',
|
||
'hpt_slugshot_turret_medium': 'D',
|
||
'hpt_slugshot_turret_large': 'C',
|
||
'hpt_xenoscannermk2_basic_tiny': '?',
|
||
'hpt_atmulticannon_gimbal_large': 'C',
|
||
'hpt_atmulticannon_gimbal_medium': 'E',
|
||
'hpt_human_extraction_fixed_medium': 'B',
|
||
'hpt_atventdisruptorpylon_fixed_medium': 'I',
|
||
'hpt_atventdisruptorpylon_fixed_large': 'I',
|
||
}
|
||
|
||
# Old standard weapon variants
|
||
outfitting_weaponoldvariant_map = {
|
||
'f': 'Focussed',
|
||
'hi': 'High Impact',
|
||
'lh': 'Low Heat',
|
||
'oc': 'Overcharged',
|
||
'ss': 'Scatter Spray',
|
||
}
|
||
|
||
outfitting_countermeasure_map = {
|
||
'antiunknownshutdown': ('Shutdown Field Neutraliser', 'F'),
|
||
('antiunknownshutdown', 'v2'): ('Thargoid Pulse Neutraliser', 'E'),
|
||
'chafflauncher': ('Chaff Launcher', 'I'),
|
||
'electroniccountermeasure': ('Electronic Countermeasure', 'F'),
|
||
'heatsinklauncher': ('Heat Sink Launcher', 'I'),
|
||
'plasmapointdefence': ('Point Defence', 'I'),
|
||
'xenoscanner': ('Xeno Scanner', 'E'),
|
||
'xenoscannermk2': ('Unknown Xeno Scanner Mk II', '?'),
|
||
}
|
||
|
||
outfitting_utility_map = {
|
||
'cargoscanner': 'Cargo Scanner',
|
||
'cloudscanner': 'Frame Shift Wake Scanner',
|
||
'crimescanner': 'Kill Warrant Scanner',
|
||
'mrascanner': 'Pulse Wave Analyser',
|
||
'shieldbooster': 'Shield Booster',
|
||
}
|
||
|
||
outfitting_cabin_map = {
|
||
'0': 'Prisoner Cells',
|
||
'1': 'Economy Class Passenger Cabin',
|
||
'2': 'Business Class Passenger Cabin',
|
||
'3': 'First Class Passenger Cabin',
|
||
'4': 'Luxury Class Passenger Cabin',
|
||
'5': 'Passenger Cabin', # not seen
|
||
}
|
||
|
||
outfitting_rating_map = {
|
||
'1': 'E',
|
||
'2': 'D',
|
||
'3': 'C',
|
||
'4': 'B',
|
||
'5': 'A',
|
||
}
|
||
|
||
# Ratings are weird for the following
|
||
|
||
outfitting_corrosion_rating_map = {
|
||
'1': 'E',
|
||
'2': 'F',
|
||
}
|
||
|
||
outfitting_planet_rating_map = {
|
||
'1': 'H',
|
||
'2': 'G',
|
||
}
|
||
|
||
outfitting_fighter_rating_map = {
|
||
'1': 'D',
|
||
}
|
||
|
||
outfitting_misc_internal_map = {
|
||
('detailedsurfacescanner', 'tiny'): ('Detailed Surface Scanner', 'I'),
|
||
('dockingcomputer', 'advanced'): ('Advanced Docking Computer', 'E'),
|
||
('dockingcomputer', 'standard'): ('Standard Docking Computer', 'E'),
|
||
'planetapproachsuite': ('Planetary Approach Suite', 'I'),
|
||
('stellarbodydiscoveryscanner', 'standard'): ('Basic Discovery Scanner', 'E'),
|
||
('stellarbodydiscoveryscanner', 'intermediate'): ('Intermediate Discovery Scanner', 'D'),
|
||
('stellarbodydiscoveryscanner', 'advanced'): ('Advanced Discovery Scanner', 'C'),
|
||
'supercruiseassist': ('Supercruise Assist', 'E'),
|
||
}
|
||
|
||
outfitting_standard_map = {
|
||
# 'armour': handled separately
|
||
'engine': 'Thrusters',
|
||
('engine', 'fast'): 'Enhanced Performance Thrusters',
|
||
'fueltank': 'Fuel Tank',
|
||
'guardianpowerdistributor': 'Guardian Hybrid Power Distributor',
|
||
'guardianpowerplant': 'Guardian Hybrid Power Plant',
|
||
'hyperdrive': 'Frame Shift Drive',
|
||
('hyperdrive', 'overcharge'): 'Frame Shift Drive (SCO)',
|
||
'lifesupport': 'Life Support',
|
||
# 'planetapproachsuite': handled separately
|
||
'powerdistributor': 'Power Distributor',
|
||
'powerplant': 'Power Plant',
|
||
'sensors': 'Sensors',
|
||
}
|
||
|
||
outfitting_internal_map = {
|
||
'buggybay': 'Planetary Vehicle Hangar',
|
||
'cargorack': 'Cargo Rack',
|
||
'collection': 'Collector Limpet Controller',
|
||
'corrosionproofcargorack': 'Corrosion Resistant Cargo Rack',
|
||
'decontamination': 'Decontamination Limpet Controller',
|
||
'fighterbay': 'Fighter Hangar',
|
||
'fsdinterdictor': 'Frame Shift Drive Interdictor',
|
||
'fuelscoop': 'Fuel Scoop',
|
||
'fueltransfer': 'Fuel Transfer Limpet Controller',
|
||
'guardianfsdbooster': 'Guardian FSD Booster',
|
||
'guardianhullreinforcement': 'Guardian Hull Reinforcement',
|
||
'guardianmodulereinforcement': 'Guardian Module Reinforcement',
|
||
'guardianshieldreinforcement': 'Guardian Shield Reinforcement',
|
||
'hullreinforcement': 'Hull Reinforcement Package',
|
||
'metaalloyhullreinforcement': 'Meta Alloy Hull Reinforcement',
|
||
'modulereinforcement': 'Module Reinforcement Package',
|
||
'passengercabin': 'Passenger Cabin',
|
||
'prospector': 'Prospector Limpet Controller',
|
||
'refinery': 'Refinery',
|
||
'recon': 'Recon Limpet Controller',
|
||
'repair': 'Repair Limpet Controller',
|
||
'rescue': 'Rescue Limpet Controller',
|
||
'mining': 'Mining Multi Limpet Controller',
|
||
'xeno': 'Xeno Multi Limpet Controller',
|
||
'operations': 'Operations Multi Limpet Controller',
|
||
'universal': 'Universal Multi Limpet Controller',
|
||
'repairer': 'Auto Field-Maintenance Unit',
|
||
'resourcesiphon': 'Hatch Breaker Limpet Controller',
|
||
'shieldcellbank': 'Shield Cell Bank',
|
||
'shieldgenerator': 'Shield Generator',
|
||
('shieldgenerator', 'fast'): 'Bi-Weave Shield Generator',
|
||
('shieldgenerator', 'strong'): 'Prismatic Shield Generator',
|
||
'unkvesselresearch': 'Research Limpet Controller',
|
||
'expmodulestabiliser': 'Experimental Weapon Stabiliser',
|
||
}
|
||
|
||
# Dashboard Flags constants
|
||
FlagsDocked = 1 << 0 # on a landing pad
|
||
FlagsLanded = 1 << 1 # on planet surface
|
||
FlagsLandingGearDown = 1 << 2
|
||
FlagsShieldsUp = 1 << 3
|
||
FlagsSupercruise = 1 << 4
|
||
FlagsFlightAssistOff = 1 << 5
|
||
FlagsHardpointsDeployed = 1 << 6
|
||
FlagsInWing = 1 << 7
|
||
FlagsLightsOn = 1 << 8
|
||
FlagsCargoScoopDeployed = 1 << 9
|
||
FlagsSilentRunning = 1 << 10
|
||
FlagsScoopingFuel = 1 << 11
|
||
FlagsSrvHandbrake = 1 << 12
|
||
FlagsSrvTurret = 1 << 13 # using turret view
|
||
FlagsSrvUnderShip = 1 << 14 # turret retracted
|
||
FlagsSrvDriveAssist = 1 << 15
|
||
FlagsFsdMassLocked = 1 << 16
|
||
FlagsFsdCharging = 1 << 17
|
||
FlagsFsdCooldown = 1 << 18
|
||
FlagsLowFuel = 1 << 19 # < 25%
|
||
FlagsOverHeating = 1 << 20 # > 100%, or is this 80% now ?
|
||
FlagsHasLatLong = 1 << 21
|
||
FlagsIsInDanger = 1 << 22
|
||
FlagsBeingInterdicted = 1 << 23
|
||
FlagsInMainShip = 1 << 24
|
||
FlagsInFighter = 1 << 25
|
||
FlagsInSRV = 1 << 26
|
||
FlagsAnalysisMode = 1 << 27 # Hud in Analysis mode
|
||
FlagsNightVision = 1 << 28
|
||
FlagsAverageAltitude = 1 << 29 # Altitude from Average radius
|
||
FlagsFsdJump = 1 << 30
|
||
FlagsSrvHighBeam = 1 << 31
|
||
|
||
# Status.json / Dashboard flags2
|
||
Flags2OnFoot = 1 << 0
|
||
Flags2InTaxi = 1 << 1 # (or dropship/shuttle)
|
||
Flags2InMulticrew = 1 << 2 # (ie in someone else’s ship)
|
||
Flags2OnFootInStation = 1 << 3
|
||
Flags2OnFootOnPlanet = 1 << 4
|
||
Flags2AimDownSight = 1 << 5
|
||
Flags2LowOxygen = 1 << 6
|
||
Flags2LowHealth = 1 << 7
|
||
Flags2Cold = 1 << 8
|
||
Flags2Hot = 1 << 9
|
||
Flags2VeryCold = 1 << 10
|
||
Flags2VeryHot = 1 << 11
|
||
Flags2GlideMode = 1 << 12
|
||
Flags2OnFootInHangar = 1 << 13
|
||
Flags2OnFootSocialSpace = 1 << 14
|
||
Flags2OnFootExterior = 1 << 15
|
||
Flags2BreathableAtmosphere = 1 << 16
|
||
|
||
# Dashboard GuiFocus constants
|
||
GuiFocusNoFocus = 0
|
||
GuiFocusInternalPanel = 1 # right hand side
|
||
GuiFocusExternalPanel = 2 # left hand side
|
||
GuiFocusCommsPanel = 3 # top
|
||
GuiFocusRolePanel = 4 # bottom
|
||
GuiFocusStationServices = 5
|
||
GuiFocusGalaxyMap = 6
|
||
GuiFocusSystemMap = 7
|
||
GuiFocusOrrery = 8
|
||
GuiFocusFSS = 9
|
||
GuiFocusSAA = 10
|
||
GuiFocusCodex = 11
|
||
|
||
ship_name_map = {
|
||
'adder': 'Adder',
|
||
'anaconda': 'Anaconda',
|
||
'asp': 'Asp Explorer',
|
||
'asp_scout': 'Asp Scout',
|
||
'belugaliner': 'Beluga Liner',
|
||
'cobramkiii': 'Cobra MkIII',
|
||
'cobramkiv': 'Cobra MkIV',
|
||
'cobramkv': 'Cobra MkV',
|
||
'clipper': 'Panther Clipper',
|
||
'cutter': 'Imperial Cutter',
|
||
'diamondback': 'Diamondback Scout',
|
||
'diamondbackxl': 'Diamondback Explorer',
|
||
'dolphin': 'Dolphin',
|
||
'eagle': 'Eagle',
|
||
'empire_courier': 'Imperial Courier',
|
||
'empire_eagle': 'Imperial Eagle',
|
||
'empire_fighter': 'Imperial Fighter',
|
||
'empire_trader': 'Imperial Clipper',
|
||
'federation_corvette': 'Federal Corvette',
|
||
'federation_dropship': 'Federal Dropship',
|
||
'federation_dropship_mkii': 'Federal Assault Ship',
|
||
'federation_gunship': 'Federal Gunship',
|
||
'federation_fighter': 'F63 Condor',
|
||
'ferdelance': 'Fer-de-Lance',
|
||
'hauler': 'Hauler',
|
||
'independant_trader': 'Keelback',
|
||
'independent_fighter': 'Taipan Fighter',
|
||
'krait_mkii': 'Krait MkII',
|
||
'krait_light': 'Krait Phantom',
|
||
'mamba': 'Mamba',
|
||
'mandalay': 'Mandalay',
|
||
'orca': 'Orca',
|
||
'python': 'Python',
|
||
'python_nx': 'Python Mk II',
|
||
'scout': 'Taipan Fighter',
|
||
'sidewinder': 'Sidewinder',
|
||
'testbuggy': 'Scarab',
|
||
'type6': 'Type-6 Transporter',
|
||
'type7': 'Type-7 Transporter',
|
||
'type8': 'Type-8 Transporter',
|
||
'type9': 'Type-9 Heavy',
|
||
'type9_military': 'Type-10 Defender',
|
||
'typex': 'Alliance Chieftain',
|
||
'typex_2': 'Alliance Crusader',
|
||
'typex_3': 'Alliance Challenger',
|
||
'viper': 'Viper MkIII',
|
||
'viper_mkiv': 'Viper MkIV',
|
||
'vulture': 'Vulture',
|
||
}
|
||
|
||
# Odyssey Suit Names
|
||
edmc_suit_shortnames = {
|
||
'Flight Suit': 'Flight', # EN
|
||
'Artemis Suit': 'Artemis', # EN
|
||
'Dominator Suit': 'Dominator', # EN
|
||
'Maverick Suit': 'Maverick', # EN
|
||
|
||
'Flug-Anzug': 'Flug', # DE
|
||
'Artemis-Anzug': 'Artemis', # DE
|
||
'Dominator-Anzug': 'Dominator', # DE
|
||
'Maverick-Anzug': 'Maverick', # DE
|
||
|
||
'Traje de vuelo': 'de vuelo', # ES
|
||
'Traje Artemis': 'Artemis', # ES
|
||
'Traje Dominator': 'Dominator', # ES
|
||
'Traje Maverick': 'Maverick', # ES
|
||
|
||
'Combinaison de vol': 'de vol', # FR
|
||
'Combinaison Artemis': 'Artemis', # FR
|
||
'Combinaison Dominator': 'Dominator', # FR
|
||
'Combinaison Maverick': 'Maverick', # FR
|
||
|
||
'Traje voador': 'voador', # PT-BR
|
||
# These are duplicates of the ES ones, but kept here for clarity
|
||
# 'Traje Artemis': 'Artemis', # PT-BR
|
||
# 'Traje Dominator': 'Dominator', # PT-BR
|
||
# 'Traje Maverick': 'Maverick', # PT-BR
|
||
|
||
'Летный комбинезон': 'Летный', # RU
|
||
'Комбинезон Artemis': 'Artemis', # RU
|
||
'Комбинезон Dominator': 'Dominator', # RU
|
||
'Комбинезон Maverick': 'Maverick', # RU
|
||
}
|
||
|
||
edmc_suit_symbol_localised = {
|
||
# The key here should match what's seen in Fileheader 'language', but with
|
||
# any in-file `\\` already unescaped to a single `\`.
|
||
r'English\UK': {
|
||
'flightsuit': 'Flight Suit',
|
||
'explorationsuit': 'Artemis Suit',
|
||
'tacticalsuit': 'Dominator Suit',
|
||
'utilitysuit': 'Maverick Suit',
|
||
},
|
||
r'German\DE': {
|
||
'flightsuit': 'Flug-Anzug',
|
||
'explorationsuit': 'Artemis-Anzug',
|
||
'tacticalsuit': 'Dominator-Anzug',
|
||
'utilitysuit': 'Maverick-Anzug',
|
||
},
|
||
r'French\FR': {
|
||
'flightsuit': 'Combinaison de vol',
|
||
'explorationsuit': 'Combinaison Artemis',
|
||
'tacticalsuit': 'Combinaison Dominator',
|
||
'utilitysuit': 'Combinaison Maverick',
|
||
},
|
||
r'Portuguese\BR': {
|
||
'flightsuit': 'Traje voador',
|
||
'explorationsuit': 'Traje Artemis',
|
||
'tacticalsuit': 'Traje Dominator',
|
||
'utilitysuit': 'Traje Maverick',
|
||
},
|
||
r'Russian\RU': {
|
||
'flightsuit': 'Летный комбинезон',
|
||
'explorationsuit': 'Комбинезон Artemis',
|
||
'tacticalsuit': 'Комбинезон Dominator',
|
||
'utilitysuit': 'Комбинезон Maverick',
|
||
},
|
||
r'Spanish\ES': {
|
||
'flightsuit': 'Traje de vuelo',
|
||
'explorationsuit': 'Traje Artemis',
|
||
'tacticalsuit': 'Traje Dominator',
|
||
'utilitysuit': 'Traje Maverick',
|
||
},
|
||
}
|
||
|
||
# WORKAROUND 2021-07-03 | 4.0.0.600 Update 5: duplicates of `fileheader` keys in `LoadGame`,
|
||
# but the GameLanguage in the latter has doubled up the `\`, so cater for either here.
|
||
# This is sourced from what the game is passed by the launcher, caveat emptor. It was mentioned that / is also
|
||
# an option
|
||
# This is only run once when this file is imported by something, no runtime cost or repeated expansions will occur
|
||
__keys = list(edmc_suit_symbol_localised.keys())
|
||
for lang in __keys:
|
||
new_lang = lang.replace('\\', r'\\')
|
||
new_lang_2 = lang.replace('\\', '/')
|
||
|
||
edmc_suit_symbol_localised[new_lang] = edmc_suit_symbol_localised[lang]
|
||
edmc_suit_symbol_localised[new_lang_2] = edmc_suit_symbol_localised[lang]
|
||
|
||
|
||
# Local webserver for debugging. See implementation in debug_webserver.py
|
||
DEBUG_WEBSERVER_HOST = '127.0.0.1'
|
||
DEBUG_WEBSERVER_PORT = 9090
|