def sabotage_check(gc, args): targets_ids = args['targets'] user = gc.player_by_token(args['token']) cards = gc.cards_by_ids(args['use']) checking.only_one_target(targets_ids) target = gc.player_by_id(targets_ids[0]) checking.valid_target(user, target, 'sabotage') checking.forbid_target_self(user, target) checking.forbid_target_no_card(target, gc) gc.use_cards_for_players(user, targets_ids, args['action'], cards) hint = { 'regions': target.all_regions(gc) } gc.push_frame(frames.AcceptMessage(gc, [user], 'region', hint, lambda a: on_region(gc, target, a))) return { 'code': ret_code.OK }
def sabotage(game_control, args): targets_ids = args['targets'] user = game_control.player_by_token(args['token']) cards = game_control.cards_by_ids(args['use']) checking.only_one_target(targets_ids) target = game_control.player_by_id(targets_ids[0]) checking.only_one_card_named_as(cards, 'sabotage') checking.forbid_target_self(user, target) checking.forbid_target_no_card(target, game_control) game_control.use_cards_for_players(user, targets_ids, args['action'], cards) on_result = lambda gc, a: None game_control.push_frame( frames.AcceptMessage(game_control, [user], lambda a: on_message(game_control, target, a), on_result)) return { 'code': ret_code.OK }
def sabotage(game_control, args): targets_ids = args['targets'] user = game_control.player_by_token(args['token']) cards = game_control.cards_by_ids(args['use']) checking.only_one_target(targets_ids) target = game_control.player_by_id(targets_ids[0]) checking.only_one_card_named_as(cards, 'sabotage') checking.forbid_target_self(user, target) checking.forbid_target_no_card(target, game_control) game_control.use_cards_for_players(user, targets_ids, args['action'], cards) on_result = lambda gc, a: None game_control.push_frame( frames.AcceptMessage(game_control, [user], lambda a: on_message(game_control, target, a), on_result)) return {'code': ret_code.OK}