#####################################
#get_player_faction
#input: arg1=player id
#output: reg0=player's color faction, returns -1 if no faction
#####################################
("get_player_color_faction",
[
(store_script_param_1, ":player_no"),
(player_get_agent_id, ":agent_no", ":player_no"),
(assign, reg0, -1)
(try_begin), #RED TEAM
(this_or_next|agent_has_item_equipped,":agent_no","itm_tunic_redx"),
(this_or_next|agent_has_item_equipped,":agent_no","itm_gambeson_redx"),
(this_or_next|agent_has_item_equipped,":agent_no","itm_mail1_redx"),
(this_or_next|agent_has_item_equipped,":agent_no","itm_mail2_rex"),
(agent_has_item_equipped,":agent_no","itm_mail3_redx"),
(assign, reg0, fac_red),
(else_try), #WHITE TEAM
(this_or_next|agent_has_item_equipped,":agent_no","itm_tunic_whitex"),
(this_or_next|agent_has_item_equipped,":agent_no","itm_gambeson_whitex"),
(this_or_next|agent_has_item_equipped,":agent_no","itm_mail1_whitex"),
(this_or_next|agent_has_item_equipped,":agent_no","itm_mail2_whitex"),
(agent_has_item_equipped,":agent_no","itm_mail3_whitex"),
(assign, reg0, fac_white),
(else_try), #BLUE TEAM
(this_or_next|agent_has_item_equipped,":agent_no","itm_tunic_bluex"),
(this_or_next|agent_has_item_equipped,":agent_no","itm_gambeson_bluex"),
(this_or_next|agent_has_item_equipped,":agent_no","itm_mail1_bluex"),
(this_or_next|agent_has_item_equipped,":agent_no","itm_mail2_bluex"),
(agent_has_item_equipped,":agent_no","itm_mail3_bluex"),
(assign, reg0, fac_blue),
(else_try), #GREEN TEAM
(this_or_next|agent_has_item_equipped,":agent_no","itm_tunic_greenx"),
(this_or_next|agent_has_item_equipped,":agent_no","itm_gambeson_greenx"),
(this_or_next|agent_has_item_equipped,":agent_no","itm_mail1_greenx"),
(this_or_next|agent_has_item_equipped,":agent_no","itm_mail2_greenx"),
(agent_has_item_equipped,":agent_no","itm_mail3_greenx"),
(assign, reg0, fac_green),
(else_try), #GOLD TEAM
(this_or_next|agent_has_item_equipped,":agent_no","itm_tunic_goldx"),
(this_or_next|agent_has_item_equipped,":agent_no","itm_gambeson_goldx"),
(this_or_next|agent_has_item_equipped,":agent_no","itm_mail1_goldx"),
(this_or_next|agent_has_item_equipped,":agent_no","itm_mail2_goldx"),
(agent_has_item_equipped,":agent_no","itm_mail3_goldx"),
(assign, reg0, fac_gold),
(try_end),
]),