Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
x = 0.5 - (x/2)
if ai_state.cursor_y < target_y:
y = (y/2) + 0.5
else:
y = 0.5 - (y/2)
controller.tilt_analog(enums.Button.BUTTON_MAIN, x, y)
return
#We want to get to a state where the cursor is NOT over the character,
# but it's selected. Thus ensuring the token is on the character
isOverCharacter = abs(ai_state.cursor_x - target_x) < wiggleroom and \
abs(ai_state.cursor_y - target_y) < wiggleroom
#Don't hold down on B, since we'll quit the menu if we do
if controller.prev.button[enums.Button.BUTTON_B] == True:
controller.release_button(enums.Button.BUTTON_B)
return
#If character is selected, and we're in of the area, and coin is down, then we're good
if (ai_state.character == character) and ai_state.coin_down:
if start and gamestate.ready_to_start and \
controller.prev.button[enums.Button.BUTTON_START] == False:
controller.press_button(enums.Button.BUTTON_START)
return
else:
controller.empty_input()
return
#release start in addition to anything else
controller.release_button(enums.Button.BUTTON_START)
#If we're in the right area, select the character
def multishine(ai_state, controller):
#If standing, shine
if ai_state.action == enums.Action.STANDING:
controller.press_button(enums.Button.BUTTON_B)
controller.tilt_analog(enums.Button.BUTTON_MAIN, .5, 0)
return
#Shine on frame 3 of knee bend, else nothing
if ai_state.action == enums.Action.KNEE_BEND:
if ai_state.action_frame == 3:
controller.press_button(enums.Button.BUTTON_B)
controller.tilt_analog(enums.Button.BUTTON_MAIN, .5, 0)
return
else:
controller.empty_input()
return
isInShineStart = (ai_state.action == enums.Action.DOWN_B_STUN or
ai_state.action == enums.Action.DOWN_B_GROUND_START)
#Jump out of shine
if isInShineStart and ai_state.action_frame >= 4 and ai_state.on_ground:
controller.press_button(enums.Button.BUTTON_Y)
return
if ai_state.action == enums.Action.DOWN_B_GROUND:
controller.press_button(enums.Button.BUTTON_Y)
return
else:
controller.empty_input()
return
#release start in addition to anything else
controller.release_button(enums.Button.BUTTON_START)
#If we're in the right area, select the character
if isOverCharacter:
#If we're over the character, but it isn't selected,
# then the coin must be somewhere else.
# Press B to reclaim the coin
controller.tilt_analog(enums.Button.BUTTON_MAIN, .5, .5)
if (ai_state.character != character) and (ai_state.coin_down):
controller.press_button(enums.Button.BUTTON_B)
return
#Press A to select our character
else:
if controller.prev.button[enums.Button.BUTTON_A] == False:
controller.press_button(enums.Button.BUTTON_A)
return
else:
controller.release_button(enums.Button.BUTTON_A)
return
else:
#Move in
controller.release_button(enums.Button.BUTTON_A)
#Move up if we're too low
if ai_state.cursor_y < target_y - wiggleroom:
controller.tilt_analog(enums.Button.BUTTON_MAIN, .5, 1)
return
else:
x = 0.5 - (x/2)
if ai_state.cursor_y < target_y:
y = (y/2) + 0.5
else:
y = 0.5 - (y/2)
controller.tilt_analog(enums.Button.BUTTON_MAIN, x, y)
return
#We want to get to a state where the cursor is NOT over the character,
# but it's selected. Thus ensuring the token is on the character
isOverCharacter = abs(ai_state.cursor_x - target_x) < wiggleroom and \
abs(ai_state.cursor_y - target_y) < wiggleroom
#Don't hold down on B, since we'll quit the menu if we do
if controller.prev.button[enums.Button.BUTTON_B] == True:
controller.release_button(enums.Button.BUTTON_B)
return
#If character is selected, and we're in of the area, and coin is down, then we're good
if (ai_state.character == character) and ai_state.coin_down:
if start and gamestate.ready_to_start and \
controller.prev.button[enums.Button.BUTTON_START] == False:
controller.press_button(enums.Button.BUTTON_START)
return
else:
controller.empty_input()
return
#release start in addition to anything else
controller.release_button(enums.Button.BUTTON_START)
command += "RELEASE Y" + "\n"
command += "RELEASE Z" + "\n"
command += "RELEASE L" + "\n"
command += "RELEASE R" + "\n"
command += "RELEASE START" + "\n"
command += "RELEASE D_UP" + "\n"
command += "RELEASE D_DOWN" + "\n"
command += "RELEASE D_LEFT" + "\n"
command += "RELEASE D_RIGHT" + "\n"
command += "SET MAIN .5 .5" + "\n"
command += "SET C .5 .5" + "\n"
command += "SET L 0" + "\n"
command += "SET R 0" + "\n"
#Set the internal state back to neutral
self.current.button[enums.Button.BUTTON_A] = False
self.current.button[enums.Button.BUTTON_B] = False
self.current.button[enums.Button.BUTTON_X] = False
self.current.button[enums.Button.BUTTON_Y] = False
self.current.button[enums.Button.BUTTON_Z] = False
self.current.button[enums.Button.BUTTON_L] = False
self.current.button[enums.Button.BUTTON_R] = False
self.current.button[enums.Button.BUTTON_START] = False
self.current.button[enums.Button.BUTTON_D_UP] = False
self.current.button[enums.Button.BUTTON_D_DOWN] = False
self.current.button[enums.Button.BUTTON_D_LEFT] = False
self.current.button[enums.Button.BUTTON_D_RIGHT] = False
self.current.main_stick = (.5, .5)
self.current.c_stick = (.5, .5)
self.current.l_shoulder = 0
self.current.r_shoulder = 0
#Send the presses to dolphin
self.pipe.write(command)