def print_brawler_list(file_list, select_l, header_l): """ brawler_list output In the form of name, weight, BV, damage, heat, movement, weapon details sorted by damage, descending """ # Add brawler selector # - Walk 4 or Jump 4 # - At least 10 damage at range 15 # - BF armor value at least 4 # - Do more damage at range 15 than range 18 spd = 4 # Minimum speed arm = 105 # Minimum armor dam = 10 # Minimum damage rng = 15 # Selected range select_l.append(lambda x, y: (max(x.get_walk(), y.get_jump()) >= spd)) header_l.append("with at least speed %d" % spd) select_l.append(lambda x, y: (x.armor.total.arm >= arm)) header_l.append(("with at least armor %d" % arm)) select_l.append(lambda x, y: (y.gear.weaponlist.count_damage(rng) >= dam)) header_l.append(("with at least damage %d at range %d" % (dam, rng))) select_l.append(lambda x, y: ((y.gear.weaponlist.count_damage(rng) > y.gear.weaponlist.count_damage(rng + 3)))) header_l.append(("does more damage at range %d than range %d" % (rng, rng + 3))) # select_l.append(lambda x, y: (x.is_brawler(y))) # Build list unit_list = create_unit_list(file_list, select_l, create_std_list_item, rng) # Sort by damage unit_list.sort(key=itemgetter(3), reverse=True) print_std_list("List of 'Brawlers' (Alpha)", header_l, unit_list)
def print_missile_boat_list(file_list, select_l, header_l): """ missile_boat_list output In the form of name, weight, BV, damage, heat, movement, weapon details sorted by damage, descending """ # Add missile boat selector # - At least 20 lrm tubes # - No non-missile long-range weapons lrms = 20 # LRM tubes rng = 21 # Selected range select_l.append(lambda x, y: (y.gear.weaponlist.lrms >= lrms)) header_l.append(("with at least %d lrm tubes" % lrms)) select_l.append(lambda x, y: (y.gear.weaponlist.snipe == False)) header_l.append("with no non-missile long-range weapon") # select_l.append(lambda x, y: (x.is_missile_boat(y))) # Build list unit_list = create_unit_list(file_list, select_l, create_std_list_item, rng) # Sort by damage unit_list.sort(key=itemgetter(3), reverse=True) print_std_list("List of 'Missile Boats' (Alpha)", header_l, unit_list)
def print_skirmisher_list(file_list, select_l, header_l): """ skirmisher_list output In the form of name, weight, BV, damage, heat, movement, weapon details sorted by damage, descending """ # Add skirimisher selector # - Walk 5 or Jump 5 # - At least 1 damage at range 18 # - BF armor value at least 3 spd = 5 # Minimum speed arm = 75 # Minimum armor dam = 1 # Minimum damage rng = 18 # Selected range select_l.append(lambda x, y: (max(x.get_walk(), y.get_jump()) >= spd)) header_l.append("with at least speed %d" % spd) select_l.append(lambda x, y: (x.armor.total.arm >= arm)) header_l.append(("with at least armor %d" % arm)) select_l.append(lambda x, y: (y.gear.weaponlist.count_damage(rng) >= dam)) header_l.append(("with at least damage %d at range %d" % (dam, rng))) # select_l.append(lambda x, y: (x.is_skirmisher(y))) # Build list unit_list = create_unit_list(file_list, select_l, create_std_list_item, rng) # Sort by damage unit_list.sort(key=itemgetter(3), reverse=True) print_std_list("List of 'Skirmishers' (Alpha)", header_l, unit_list)
def print_snipe_list(file_list, select_l, header_l): """ snipe_list output In the form of name, weight, BV, damage, heat, movement, weapon details sorted by damage, descending """ # Add sniper selector # - At least 10 damage at range 18 # - At least one non-missile long-range weapon dam = 10 # Minimum damage rng = 18 # Selected range select_l.append(lambda x, y: (y.gear.weaponlist.count_damage(rng) >= dam)) header_l.append(("with at least damage %d at range %d" % (dam, rng))) select_l.append(lambda x, y: (y.gear.weaponlist.snipe == True)) header_l.append("with at least one non-missile long-range weapon") # select_l.append(lambda x, y: (x.is_sniper(y))) # Build list unit_list = create_unit_list(file_list, select_l, create_std_list_item, rng) # Sort by damage unit_list.sort(key=itemgetter(3), reverse=True) print_std_list("List of 'Snipers' (Alpha)", header_l, unit_list)
def print_juggernaut_list(file_list, select_l, header_l): """ juggernaut_list output In the form of name, weight, BV, damage, heat, movement, weapon details sorted by damage, descending """ # Add juggernaut selector # - At least 30 damage at range 6 # - BF armor at least 5 arm = 135 # Minimum armor dam = 30 # Minimum damage rng = 6 # Selected range select_l.append(lambda x, y: (x.armor.total.arm >= arm)) header_l.append(("with at least armor %d" % arm)) select_l.append(lambda x, y: (y.gear.weaponlist.count_damage(rng) >= dam)) header_l.append(("with at least damage %d at range %d" % (dam, rng))) # select_l.append(lambda x, y: (x.is_juggernaut(y))) # Build list unit_list = create_unit_list(file_list, select_l, create_std_list_item, rng) # Sort by damage unit_list.sort(key=itemgetter(3), reverse=True) print_std_list("List of 'Juggernauts' (Alpha)", header_l, unit_list)
def print_range_list(file_list, select_l, header_l, rng): """ range_list output In the form of name, weight, BV, damage, heat, movement, weapon details sorted by damage, descending """ # Build list unit_list = create_unit_list(file_list, select_l, create_std_list_item, rng) # Sort by damage unit_list.sort(key=itemgetter(3), reverse=True) print_std_list(("List of Damage at Range %d" % (rng)), header_l, unit_list)
def print_scout_list(file_list, select_l, header_l): """ scout_list output In the form of name, weight, BV, damage, heat, movement, weapon details sorted by damage, descending """ # Add scout selector # - Walk 6 or Jump 6 spd = 6 # Minimum speed rng = 3 # Selected range select_l.append(lambda x, y: (max(x.get_walk(), y.get_jump()) >= spd)) header_l.append("with at least speed %d" % spd) # select_l.append(lambda x, y: (x.is_scout(y))) # Build list unit_list = create_unit_list(file_list, select_l, create_std_list_item, rng) # Sort by damage unit_list.sort(key=itemgetter(3), reverse=True) print_std_list("List of 'Scouts' (Alpha)", header_l, unit_list)