Spaces:
Sleeping
Sleeping
from pysc2.maps import lib | |
import os | |
class SMACMap(lib.Map): | |
directory = os.path.join(os.path.dirname(__file__), "maps/SMAC_Maps") | |
download = "https://github.com/oxwhirl/smac#smac-maps" | |
players = 2 | |
step_mul = 8 | |
game_steps_per_episode = 0 | |
# Copied from smac/env/starcraft2/maps/smac_maps.py | |
map_param_registry = { | |
"3m": { | |
"n_agents": 3, | |
"n_enemies": 3, | |
"limit": 60, | |
"a_race": "T", | |
"b_race": "T", | |
"unit_type_bits": 0, | |
"map_type": "marines", | |
}, | |
"8m": { | |
"n_agents": 8, | |
"n_enemies": 8, | |
"limit": 120, | |
"a_race": "T", | |
"b_race": "T", | |
"unit_type_bits": 0, | |
"map_type": "marines", | |
}, | |
"25m": { | |
"n_agents": 25, | |
"n_enemies": 25, | |
"limit": 150, | |
"a_race": "T", | |
"b_race": "T", | |
"unit_type_bits": 0, | |
"map_type": "marines", | |
}, | |
"5m_vs_6m": { | |
"n_agents": 5, | |
"n_enemies": 6, | |
"limit": 70, | |
"a_race": "T", | |
"b_race": "T", | |
"unit_type_bits": 0, | |
"map_type": "marines", | |
}, | |
"8m_vs_9m": { | |
"n_agents": 8, | |
"n_enemies": 9, | |
"limit": 120, | |
"a_race": "T", | |
"b_race": "T", | |
"unit_type_bits": 0, | |
"map_type": "marines", | |
}, | |
"10m_vs_11m": { | |
"n_agents": 10, | |
"n_enemies": 11, | |
"limit": 150, | |
"a_race": "T", | |
"b_race": "T", | |
"unit_type_bits": 0, | |
"map_type": "marines", | |
}, | |
"27m_vs_30m": { | |
"n_agents": 27, | |
"n_enemies": 30, | |
"limit": 180, | |
"a_race": "T", | |
"b_race": "T", | |
"unit_type_bits": 0, | |
"map_type": "marines", | |
}, | |
"MMM": { | |
"n_agents": 10, | |
"n_enemies": 10, | |
"limit": 150, | |
"a_race": "T", | |
"b_race": "T", | |
"unit_type_bits": 3, | |
"map_type": "MMM", | |
}, | |
"MMM2": { | |
"n_agents": 10, | |
"n_enemies": 12, | |
"limit": 180, | |
"a_race": "T", | |
"b_race": "T", | |
"unit_type_bits": 3, | |
"map_type": "MMM", | |
}, | |
"2s3z": { | |
"n_agents": 5, | |
"n_enemies": 5, | |
"limit": 120, | |
"a_race": "P", | |
"b_race": "P", | |
"unit_type_bits": 2, | |
"map_type": "stalkers_and_zealots", | |
}, | |
"3s5z": { | |
"n_agents": 8, | |
"n_enemies": 8, | |
"limit": 150, | |
"a_race": "P", | |
"b_race": "P", | |
"unit_type_bits": 2, | |
"map_type": "stalkers_and_zealots", | |
}, | |
"infestor_viper": { | |
"n_agents": 2, | |
"n_enemies": 9, | |
"limit": 150, | |
"a_race": "Z", | |
"b_race": "Z", | |
"unit_type_bits": 2, | |
"map_type": "infestor_viper" | |
}, | |
"3s5z_vs_3s6z": { | |
"n_agents": 8, | |
"n_enemies": 9, | |
"limit": 170, | |
"a_race": "P", | |
"b_race": "P", | |
"unit_type_bits": 2, | |
"map_type": "stalkers_and_zealots", | |
}, | |
"3s_vs_3z": { | |
"n_agents": 3, | |
"n_enemies": 3, | |
"limit": 150, | |
"a_race": "P", | |
"b_race": "P", | |
"unit_type_bits": 0, | |
"map_type": "stalkers", | |
}, | |
"3s_vs_4z": { | |
"n_agents": 3, | |
"n_enemies": 4, | |
"limit": 200, | |
"a_race": "P", | |
"b_race": "P", | |
"unit_type_bits": 0, | |
"map_type": "stalkers", | |
}, | |
"3s_vs_5z": { | |
"n_agents": 3, | |
"n_enemies": 5, | |
"limit": 250, | |
"a_race": "P", | |
"b_race": "P", | |
"unit_type_bits": 0, | |
"map_type": "stalkers", | |
}, | |
"1c3s5z": { | |
"n_agents": 9, | |
"n_enemies": 9, | |
"limit": 180, | |
"a_race": "P", | |
"b_race": "P", | |
"unit_type_bits": 3, | |
"map_type": "colossi_stalkers_zealots", | |
}, | |
"2m_vs_1z": { | |
"n_agents": 2, | |
"n_enemies": 1, | |
"limit": 150, | |
"a_race": "T", | |
"b_race": "P", | |
"unit_type_bits": 0, | |
"map_type": "marines", | |
}, | |
"corridor": { | |
"n_agents": 6, | |
"n_enemies": 24, | |
"limit": 400, | |
"a_race": "P", | |
"b_race": "Z", | |
"unit_type_bits": 0, | |
"map_type": "zealots", | |
}, | |
"6h_vs_8z": { | |
"n_agents": 6, | |
"n_enemies": 8, | |
"limit": 150, | |
"a_race": "Z", | |
"b_race": "P", | |
"unit_type_bits": 0, | |
"map_type": "hydralisks", | |
}, | |
"2s_vs_1sc": { | |
"n_agents": 2, | |
"n_enemies": 1, | |
"limit": 300, | |
"a_race": "P", | |
"b_race": "Z", | |
"unit_type_bits": 0, | |
"map_type": "stalkers", | |
}, | |
"so_many_baneling": { | |
"n_agents": 7, | |
"n_enemies": 32, | |
"limit": 100, | |
"a_race": "P", | |
"b_race": "Z", | |
"unit_type_bits": 0, | |
"map_type": "zealots", | |
}, | |
"bane_vs_bane": { | |
"n_agents": 24, | |
"n_enemies": 24, | |
"limit": 200, | |
"a_race": "Z", | |
"b_race": "Z", | |
"unit_type_bits": 2, | |
"map_type": "bane", | |
}, | |
"2c_vs_64zg": { | |
"n_agents": 2, | |
"n_enemies": 64, | |
"limit": 400, | |
"a_race": "P", | |
"b_race": "Z", | |
"unit_type_bits": 0, | |
"map_type": "colossus", | |
}, | |
} | |
for name in map_param_registry.keys(): | |
globals()[name] = type(name, (SMACMap, ), dict(filename=name)) | |
def get_map_params(map_name): | |
return map_param_registry[map_name] | |