# sortie sortie # mission player_mission # tour player # allied [1] # axis [2] # no coal_pref for sorties ??? # sortie_aircraft.cls is sortie only # sorties_coal[x] (is player allied or axis) is mission and tour only ??? # is player allied or axis? # if it is a tour, use player.sorties.coal[x] # if it is a mission use player_mission.coal_pref == 2 # All ALLIED missions awards should have player_mission.coal_pref == 1 # All AXIS missions awards should have player_mission.coal_pref == 2 # All ALLIED tour awards should have player.sorties.coal[1] # All AXIS tour awards should have if player.coal_pref == 2 #Allied awards # 2 Allied air kills award in a mission def allied_2kills(player_mission): return player_mission.coal_pref == 1 and player_mission.ak_total >= 2 ###############GERMAN###################### ############## Sortie awards ################## #2 FAK in sorite #def g_f_s2ak(sortie): # return sortie.coalition == 2 and sortie.aircraft.cls == 'aircraft_light' and sortie.ak_total >= 2 #2 FAK in sorite def g_f_s2ak(sortie): return sortie.coalition == 2 and sortie.aircraft.cls == 'aircraft_light' and sortie.ak_total >= 2 #4 FAK in sorite def g_f_s4ak(sortie): return sortie.coalition == 2 and sortie.aircraft.cls == 'aircraft_light' and sortie.ak_total >= 4 #4 FAK 4GK in sorite def g_f_s4ak_4gk(sortie): return sortie.coalition == 2 and sortie.aircraft.cls == 'aircraft_light' and sortie.ak_total >= 4 and sortie.gk_total >=4 #5 FGK in sorite def g_f_s5gk(sortie): return sortie.coalition == 2 and sortie.aircraft.cls == 'aircraft_light' and sortie.gk_total >= 5 #5 FAK in sorite def g_f_s5ak(sortie): return sortie.coalition == 2 and sortie.aircraft.cls == 'aircraft_light' and sortie.ak_total >= 5 #20 BGK in sorite def g_b_s20gk(sortie): return (sortie.aircraft.cls == 'aircraft_medium' or sortie.aircraft.cls == 'aircraft_heavy') and sortie.coalition == 2 and sortie.gk_total >= 20 and sortie.coalition == 2 and sortie.gk_total >= 20 #2 BAK 20 BGK in sorite def g_b_s2ak_20gk(sortie): return (sortie.aircraft.cls == 'aircraft_medium' or sortie.aircraft.cls == 'aircraft_heavy') and sortie.coalition == 2 and sortie.gk_total >= 20 and sortie.ak_total>= 2 and sortie.coalition == 2 and sortie.gk_total >= 20 and sortie.ak_total>= 2 #35 BGK in sorite def g_b_s35gk(sortie): return (sortie.aircraft.cls == 'aircraft_heavy' or sortie.aircraft.cls == 'aircraft_medium') and sortie.coalition == 2 and sortie.gk_total >= 35 and sortie.coalition == 2 and sortie.gk_total >= 35 #2 BAK 35 BGK in sorite def g_b_s2ak_35gk(sortie): return (sortie.aircraft.cls == 'aircraft_heavy' or sortie.aircraft.cls == 'aircraft_medium') and sortie.coalition == 2 and sortie.gk_total >= 35 and sortie.ak_total>= 2 and sortie.coalition == 2 and sortie.gk_total >= 35 and sortie.ak_total>= 2 #50 BGK in sorite def g_b_s50gk(sortie): return (sortie.aircraft.cls == 'aircraft_heavy' or sortie.aircraft.cls == 'aircraft_medium') and sortie.coalition == 2 and sortie.gk_total >= 50 and sortie.gk_total >= 50 #wounded and landed in a sortie def black_wound_badge(sortie): return sortie.coalition == 2 and sortie.wound >= 1 and sortie.ak_total >= 1 and sortie.status == 1 ################################# MISSION AWARDS ############### # 3 AK in mission def g_m3ak(player_mission): return player_mission.coal_pref == 2 and player_mission.ak_total >= 3 # 5 AK 4 GK in mission def g_m5ak_4gk(player_mission): return player_mission.coal_pref == 2 and player_mission.ak_total >= 5 and player_mission.gk_total >= 4 # 5 AK in mission def g_m5ak(player_mission): return player_mission.coal_pref == 2 and player_mission.ak_total >= 5 # 8 AK in mission def g_m8ak(player_mission): return player_mission.coal_pref == 2 and player_mission.ak_total >= 8 # 50 GK in mission def g_m50gk(player_mission): return player_mission.coal_pref == 2 and player_mission.gk_total >= 50 # 2 AK 50 GK in mission def g_m2ak_50gk(player_mission): return player_mission.coal_pref == 2 and player_mission.gk_total >= 50 and player_mission.ak_total >= 2 # 75 GK in mission def g_m75gk(player_mission): return player_mission.coal_pref == 2 and player_mission.gk_total >= 75 # 2 AK 75 GK in mission def g_m2ak_75gk(player_mission): return player_mission.coal_pref == 2 and player_mission.gk_total >= 75 and player_mission.ak_total >= 2 # 15 AK in mission def g_m15ak(player_mission): return player_mission.coal_pref == 2 and player_mission.ak_total >= 15 # 125 GK in mission def g_m125gk(player_mission): return player_mission.coal_pref == 2 and player_mission.gk_total >= 125 ############################ TOUR AWARDS ################# # 25 AK in tour def g_t25ak(player): if player.coal_pref == 2 and player.ak_total >= 25: return True # 25 AK 25 GK in tour def g_t25ak_25gk(player): if player.coal_pref == 2 and player.gk_total >= 25 and player.ak_total >= 25: return True # 50 AK in tour def g_t50ak(player): if player.coal_pref == 2 and player.ak_total >= 50: return True # 50 AK 25 GK in tour def g_t50ak_25gk(player): if player.coal_pref == 2 and player.gk_total >= 50 and player.ak_total >= 50: return True # 150 GK in tour def g_t150gk(player): if player.coal_pref == 2 and player.gk_total >= 150: return True # 5 AK 150 GK in tour def g_t5ak_150gk(player): if player.coal_pref == 2 and player.ak_total >= 5 and player.gk_total >= 150: return True # 200 GK in tour def g_t200gk(player): if player.coal_pref == 2 and player.gk_total >= 200: return True # 5 ak 200 GK in tour def g_t5ak_200gk(player): if player.coal_pref == 2 and player.ak_total >= 5 and player.gk_total >= 200: return True # 100 AK in tour def g_t100ak(player): if player.coal_pref == 2 and player.ak_total >= 100: return True # 300 GK in tour def g_t300gk(player): if player.coal_pref == 2 and player.gk_total >= 300: return True # 500 GK in tour def g_t500gk(player): if player.coal_pref == 2 and player.gk_total >= 500: return True ######################### VIRTUAL LIFE ######################## # 10 AK in virtual life def v_10ak(vlife): return vlife.ak_total >= 10 # 25 AK in virtual life def v_25ak(vlife): return vlife.ak_total >= 25 # 50 AK in virtual life def v_50ak(vlife): return vlife.ak_total >= 50 # 100 AK in virtual life def v_100ak(vlife): return vlife.ak_total >= 100 # 50 GK in virtual life def v_50gk(vlife): return vlife.gk_total >= 50 # 100 GK in virtual life def v_100gk(vlife): return vlife.gk_total >= 100 # 200 GK in virtual life def v_200gk(vlife): return vlife.gk_total >= 200 # 300 GK in virtual life def v_300gk(vlife): return vlife.gk_total >= 300 # 125 AK in virtual life def v_125ak(vlife): return vlife.ak_total >= 125 # 500 GK in virtual life def v_500gk(vlife): return vlife.gk_total >= 500 ####################### STREAK AWARDS ####################### # current streak 1ak in tour def st_1(player): return player.streak_current >= 1 # current streak 5ak in tour def st_5(player): return player.streak_current >= 5 # current streak 10ak in tour def st_10(player): return player.streak_current >= 10 # current streak 100ak in tour def st_100(player): return player.streak_current >= 100 # current streak 50ak in tour def st_50(player): return player.streak_current >= 50 # current streak 25ak in tour def st_100(player): return player.streak_current >= 25 # current ground streak 25gk in tour def stgk_25(player): return player.streak_ground_current >= 25 # current ground streak 50gk in tour def stgk_50(player): return player.streak_ground_current >= 50 # current ground streak 125gk in tour def stgk_125(player): return player.streak_ground_current >= 12 # current ground streak 500gk in tour def stgk_500(player): return player.streak_ground_current >= 500 # current ground streak 400gk in tour def stgk_400(player): return player.streak_ground_current >= 400 # current ground streak 250gk in tour def stgk_250(player): return player.streak_ground_current >= 250 # current ground streak 5gk in tour def stgk_5(player): return player.streak_ground_current >= 5 ###############RUSSIAN###################### ############## Sortie awards ################## #2 FAK in sorite def r_f_s2ak(sortie): return sortie.coalition == 1 and sortie.aircraft.cls == 'aircraft_light' and sortie.ak_total >= 2 #4 FAK in sorite def r_f_s4ak(sortie): return sortie.coalition == 1 and sortie.aircraft.cls == 'aircraft_light' and sortie.ak_total >= 4 #4 FAK 4GK in sorite def r_f_s4ak_4gk(sortie): return sortie.coalition == 1 and sortie.aircraft.cls == 'aircraft_light' and sortie.ak_total >= 4 and sortie.gk_total >=4 #5 FGK in sorite def r_f_s5gk(sortie): return sortie.coalition == 1 and sortie.coalition == 1 and sortie.aircraft.cls == 'aircraft_light' and sortie.gk_total >= 5 #5 FAK in sorite def r_f_s5ak(sortie): return sortie.coalition == 1 and sortie.aircraft.cls == 'aircraft_light' and sortie.ak_total >= 5 #20 BGK in sorite def r_b_s20gk(sortie): return (sortie.aircraft.cls == 'aircraft_heavy' or sortie.aircraft.cls == 'aircraft_medium') and sortie.gk_total >= 20 and sortie.coalition == 1 and sortie.gk_total >= 20 and sortie.coalition == 1 #2 BAK 20 BGK in sorite def r_b_s2ak_20gk(sortie): return (sortie.aircraft.cls == 'aircraft_medium' or sortie.aircraft.cls == 'aircraft_medium') and sortie.coalition == 1 and sortie.gk_total >= 20 and sortie.ak_total >= 2 and sortie.gk_total >= 20 and sortie.coalition == 1 and sortie.ak_total >= 2 #35 BGK in sorite def r_b_s35gk(sortie): return (sortie.aircraft.cls == 'aircraft_medium' or sortie.aircraft.cls == 'aircraft_medium') and sortie.coalition == 1 and sortie.gk_total >= 35 and sortie.coalition == 1 and sortie.gk_total >= 35 #2 BAK 35 BGK in sorite def r_b_s2ak_35gk(sortie): return (sortie.aircraft.cls == 'aircraft_medium' or sortie.aircraft.cls == 'aircraft_medium') and sortie.coalition == 1 and sortie.gk_total >= 35 and sortie.ak_total>= 2 and sortie.coalition == 1 and sortie.gk_total >= 35 and sortie.ak_total>= 2 #50 BGK in sorite def r_b_s50gk(sortie): return (sortie.aircraft.cls == 'aircraft_medium' or sortie.aircraft.cls == 'aircraft_medium') and sortie.coalition == 1 and sortie.gk_total >= 50 and sortie.coalition == 1 and sortie.gk_total >= 50 ################################# MISSION AWARDS ############### # 3 AK in mission def r_m3ak(player_mission): return player_mission.coal_pref == 1 and player_mission.ak_total >= 3 # 5 AK 4 GK in mission def r_m5ak_4gk(player_mission): return player_mission.coal_pref == 1 and player_mission.ak_total >= 5 and player_mission.gk_total >= 4 # 5 AK in mission def r_m5ak(player_mission): return player_mission.coal_pref == 1 and player_mission.ak_total >= 5 # 8 AK in mission def r_m8ak(player_mission): return player_mission.coal_pref == 1 and player_mission.ak_total >= 8 # 50 GK in mission def r_m50gk(player_mission): return player_mission.coal_pref == 1 and player_mission.gk_total >= 50 # 2 AK 50 GK in mission def r_m2ak_50gk(player_mission): return player_mission.coal_pref == 1 and player_mission.gk_total >= 50 and player_mission.ak_total >= 2 # 75 GK in mission def r_m75gk(player_mission): return player_mission.coal_pref == 1 and player_mission.gk_total >= 75 # 2 AK 75 GK in mission def r_m2ak_75gk(player_mission): return player_mission.coal_pref == 1 and player_mission.gk_total >= 75 and player_mission.ak_total >= 2 # 15 AK in mission def r_m15ak(player_mission): return player_mission.coal_pref == 1 and player_mission.ak_total >= 15 # 125 GK in mission def r_m125gk(player_mission): return player_mission.coal_pref == 1 and player_mission.gk_total >= 125 ############################ TOUR AWARDS ################# # 25 AK in tour def r_t25ak(player): if player.coal_pref == 1 and player.ak_total >= 25: return True # 25 AK 25 GK in tour def r_t25ak_25gk(player): if player.coal_pref == 1 and player.gk_total >= 25 and player.ak_total >= 25: return True # 50 AK in tour def r_t50ak(player): if player.coal_pref == 1 and player.ak_total >= 50: return True # 50 AK 25 GK in tour def r_t50ak_25gk(player): if player.coal_pref == 1 and player.gk_total >= 50 and player.ak_total >= 50: return True # 150 GK in tour def r_t150gk(player): if player.coal_pref == 1 and player.gk_total >= 150: return True # 5 AK 150 GK in tour def r_t5ak_150gk(player): if player.coal_pref == 1 and player.ak_total >= 5 and player.gk_total >= 150: return True # 200 GK in tour def r_t200gk(player): if player.coal_pref == 1 and player.gk_total >= 200: return True # 5 ak 200 GK in tour def r_t5ak_200gk(player): if player.coal_pref == 1 and player.ak_total >= 5 and player.gk_total >= 200: return True # 100 AK in tour def r_t100ak(player): if player.coal_pref == 1 and player.ak_total >= 100: return True # 300 GK in tour def r_t300gk(player): if player.coal_pref == 1 and player.gk_total >= 300: return True ######################### VIRTUAL LIFE ######################## # 125 AK in virtual life def v_125ak(vlife): return vlife.ak_total >= 125 # 500 GK in virtual life def v_500gk(vlife): return vlife.gk_total >= 500 ####################### STREAK AWARDS ####################### # current streak 1ak in tour def st_1(player): return player.streak_current >= 1 # current streak 10ak in tour def st_10(player): return player.streak_current >= 10 # current streak 100ak in tour def st_100(player): return player.streak_current >= 100 # current streak 50ak in tour def st_50(player): return player.streak_current >= 50 # current streak 25ak in tour def st_100(player): return player.streak_current >= 25 # current ground streak 500gk in tour def stgk_500(player): return player.streak_ground_current >= 500 # current ground streak 400gk in tour def stgk_400(player): return player.streak_ground_current >= 400 # current ground streak 250gk in tour def stgk_250(player): return player.streak_ground_current >= 250 # current ground streak 5gk in tour def stgk_5(player): return player.streak_ground_current >= 5 ######################### Squad Officers ################## # Commanding officer def co(sortie): return sortie.profile_id == 2 # Executive officer def xo(sortie): return sortie.profile_id == 4 # training officer def to(sortie): return sortie.profile_id == 31 # goober def goober(sortie): return sortie.profile_id == 2000 #################### 2019 Merit Awards ################### #20yr sr def yrsr20(sortie): return sortie.profile_id == 14 #10yr sr def yrsr10(sortie): return sortie.profile_id == 259 #staff sr 1 def staffsr1(sortie): return sortie.profile_id == 2 #staff sr 2 def staffsr2(sortie): return sortie.profile_id == 4 or sortie.profile_id == 14 or sortie.profile_id == 269 or sortie.profile_id == 31 #event creator def eventsr1(sortie): return (sortie.profile_id == 1 or sortie.profile_id == 2) and (sortie.tour_id >= 1 and sortie.tour_id <= 12) #event host def eventsr2(sortie): return sortie.profile_id == 1 #training def training(sortie): return sortie.profile_id == 14 #communitysm def communitysm(sortie): return sortie.profile_id == 14 or sortie.profile_id == 269 or sortie.profile_id == 4 or sortie.profile_id == 386 or sortie.profile_id == 31 or sortie.profile_id == 44 or sortie.profile_id == 2 #contributionsm def contributionsm(sortie): return sortie.profile_id == 269 or sortie.profile_id == 14 #goldcr def goldcr(sortie): return sortie.profile_id == 31 or sortie.profile_id == 44 or sortie.profile_id == 475 #redcr def redcr(sortie): return sortie.profile_id == 14 or sortie.profile_id == 269 or sortie.profile_id == 4 #bluecr def bluecr(sortie): return sortie.profile_id == 1 #bridges def bridges(sortie): return sortie.profile_id == 4