Beispiel #1
0
def track_move(move_serial, move_num, team, team_num, score, win_amount, dead_move, force_color, music_speed):
    #proc = psutil.Process(os.getpid())
    #proc.nice(3)
    #explosion = Audio('audio/Joust/sounds/Explosion34.wav')
    #explosion.start_effect()
    
    move_last_value = None
    move = common.get_move(move_serial, move_num)
    team_colors = common.generate_colors(team_num)
    werewolf = False
    flash_time = time.time()
    
    #keep on looping while move is not dead
    while True:
        if sum(force_color) != 0:
            time.sleep(0.01)
            move.set_leds(*force_color)
            move.update_leds()
            if werewolf:
                move.set_rumble(80)
        elif dead_move.value == 1:  
            if move.poll():
                ax, ay, az = move.get_accelerometer_frame(psmove.Frame_SecondHalf)
                total = sum([ax, ay, az])
                if move_last_value is not None:
                    change = abs(move_last_value - total)
                    speed_percent = (music_speed.value - SLOW_MUSIC_SPEED)/(FAST_MUSIC_SPEED - SLOW_MUSIC_SPEED)
                    warning = common.lerp(SLOW_WARNING, FAST_WARNING, speed_percent)
                    threshold = common.lerp(SLOW_MAX, FAST_MAX, speed_percent)

                    if change > threshold:
                        move.set_leds(0,0,0)
                        move.set_rumble(90)
                        score.value = -1
                        dead_move.value = 0

                    elif change > warning:
                        move.set_leds(20,50,100)
                        move.set_rumble(110)

                    else:
                        if score.value >= 1:
                            if time.time() > flash_time:
                                vall = calculate_flash_time(team_colors[team][0],team_colors[team][1],team_colors[team][2],score.value, win_amount)
                                #print vall
                                move.set_leds(*vall)
                                #flash_time = time.time() + calculate_flash_time(score.value, win_amount)
                        else:
                            move.set_leds(*team_colors[team])
                        move.set_rumble(0)
                        
                move_last_value = total
            move.update_leds()
            
        elif dead_move.value == 0:
            if move.poll():
                move_button = move.get_buttons()
                if score.value >= 0 and move_button == common.Buttons.middle:
                    dead_move.value = 1
                    move_last_value = None
Beispiel #2
0
def track_move(move_serial, move_num, team, team_num, dead_move, force_color,
               music_speed, commander_intro, move_opts, power, overdrive):
    #proc = psutil.Process(os.getpid())
    #proc.nice(3)
    #explosion = Audio('audio/Joust/sounds/Explosion34.wav')
    #explosion.start_effect()

    start = False
    no_rumble = time.time() + 1
    move_last_value = None
    move = common.get_move(move_serial, move_num)
    team_colors = common.generate_colors(team_num)
    #keep on looping while move is not dead
    ready = False
    move.set_leds(0, 0, 0)
    move.update_leds()
    time.sleep(1)

    death_time = 8
    time_of_death = time.time()

    while commander_intro.value == 1:
        if move.poll():
            button = move.get_buttons()
            if button == Buttons.middle.value and move_opts[
                    Opts.holding.value] == Holding.not_holding.value:

                move_opts[Opts.selection.value] = Selections.a_button.value
                move_opts[Opts.holding.value] = Holding.holding.value
            elif button == Buttons.triangle.value and move_opts[
                    Opts.holding.value] == Holding.not_holding.value:

                move_opts[Opts.selection.value] = Selections.triangle.value
                move_opts[Opts.holding.value] = Holding.holding.value

            elif move_opts[
                    Opts.is_commander.value] == Bool.no.value and move_opts[
                        Opts.holding.value] == Holding.holding.value:
                move.set_leds(200, 200, 200)

            elif move_opts[
                    Opts.is_commander.value] == Bool.yes.value and move_opts[
                        Opts.holding.value] == Holding.holding.value:
                move.set_leds(*Current_commander_colors[team])
            else:
                #print 'boop'
                move.set_leds(*Commander_colors[team])
        move.update_leds()

    move_opts[Opts.holding.value] = Holding.not_holding.value
    move_opts[Opts.selection.value] = Selections.nothing.value

    while True:
        if sum(force_color) != 0:
            no_rumble_time = time.time() + 5
            time.sleep(0.01)
            move.set_leds(*force_color)
            move.update_leds()
            move.set_rumble(0)
            no_rumble = time.time() + 0.5
        #if we are not dead
        elif dead_move.value == 1:
            if move.poll():
                ax, ay, az = move.get_accelerometer_frame(
                    psmove.Frame_SecondHalf)
                total = sum([ax, ay, az])
                if move_last_value is not None:
                    change = abs(move_last_value - total)
                    #speed_percent = (music_speed.value - SLOW_MUSIC_SPEED)/(FAST_MUSIC_SPEED - SLOW_MUSIC_SPEED)
                    #warning = common.lerp(SLOW_WARNING, FAST_WARNING, speed_percent)
                    #threshold = common.lerp(SLOW_MAX, FAST_MAX, speed_percent)
                    if move_opts[Opts.is_commander.value] == Bool.no.value:
                        if overdrive.value == 0:
                            warning = SLOW_WARNING
                            threshold = SLOW_MAX
                        else:
                            warning = FAST_WARNING
                            threshold = FAST_MAX
                    else:
                        #if affected by overdrive, this could make the power better
                        warning = SLOW_WARNING
                        threshold = SLOW_MAX

                    if change > threshold:
                        if time.time() > no_rumble:
                            move.set_leds(0, 0, 0)
                            move.set_rumble(90)
                            dead_move.value = 0
                            time_of_death = time.time()

                    elif change > warning:
                        if time.time() > no_rumble:
                            move.set_leds(20, 50, 100)
                            move.set_rumble(110)

                    else:
                        if move_opts[Opts.is_commander.value] == Bool.no.value:
                            if overdrive.value == 0:
                                move.set_leds(*Commander_colors[team])
                            else:
                                move.set_leds(*Overdrive_colors[team])
                        else:
                            move.set_leds(*calculate_flash_time(
                                Current_commander_colors[team][0],
                                Current_commander_colors[team][1],
                                Current_commander_colors[team][2],
                                power.value))
                        move.set_rumble(0)

                    if move_opts[Opts.is_commander.value] == Bool.yes.value:
                        if (move.get_buttons() == 0
                                and move.get_trigger() < 10):
                            move_opts[
                                Opts.holding.value] = Holding.not_holding.value

                        button = move.get_buttons()
                        #print str(power.value)
                        if power.value >= 1.0:
                            #press trigger for overdrive
                            if (move_opts[Opts.holding.value]
                                    == Holding.not_holding.value
                                    and move.get_trigger() > 100):
                                move_opts[Opts.selection.
                                          value] = Selections.trigger.value
                                move_opts[
                                    Opts.holding.value] = Holding.holding.value
                            #elif (move_opts[Opts.holding.value] == Holding.not_holding.value and button == Buttons.middle.value):
                            #    move_opts[Opts.selection.value] = Selections.a_button.value
                            #    move_opts[Opts.holding.value] = Holding.holding.value
                            #elif (move_opts[Opts.holding.value] == Holding.not_holding.value and button == Buttons.triangle.value):
                            #    move_opts[Opts.selection.value] = Selections.triangle.value
                            #    move_opts[Opts.holding.value] = Holding.holding.value

                move_last_value = total
            move.update_leds()
        #if we are dead
        elif dead_move.value <= 0:
            if time.time() - time_of_death >= death_time:
                dead_move.value = 3
        elif dead_move.value == 3:
            move_last_value = None
            dead_move.value = 1
            no_rumble = time.time() + 2
            if death_time < 25:
                death_time += 2
Beispiel #3
0
import os
import psmove
import pair
import common
import joust
import time
import zombie
import commander
import random
from piaudio import Audio
from enum import Enum
from multiprocessing import Process, Value, Array

TEAM_NUM = 6
TEAM_COLORS = common.generate_colors(TEAM_NUM)

#the number of game modes
GAME_MODES = 7

class Opts(Enum):
    alive = 0
    selection = 1
    holding = 2
    team = 3
    game_mode = 4
    random_start = 5

class Alive(Enum):
    on = 0
    off = 1
Beispiel #4
0
def track_move(move_serial, move_num, team, team_num, dead_move, force_color,
               music_speed, commander_intro, move_opts, power, overdrive):
    #proc = psutil.Process(os.getpid())
    #proc.nice(3)

    start = False
    no_rumble = time.time() + 1
    move_last_value = None
    move = common.get_move(move_serial, move_num)
    team_colors = common.generate_colors(team_num)
    #keep on looping while move is not dead
    ready = False
    move.set_leds(0, 0, 0)
    move.update_leds()
    time.sleep(1)
    vibrate = False
    vibration_time = time.time() + 1
    flash_lights = True
    flash_lights_timer = 0

    death_time = 8
    time_of_death = time.time()

    while commander_intro.value == 1:
        if move.poll():
            button = move.get_buttons()
            if button == Buttons.middle.value and move_opts[
                    Opts.holding.value] == Holding.not_holding.value:

                move_opts[Opts.selection.value] = Selections.a_button.value
                move_opts[Opts.holding.value] = Holding.holding.value
            elif button == Buttons.triangle.value and move_opts[
                    Opts.holding.value] == Holding.not_holding.value:

                move_opts[Opts.selection.value] = Selections.triangle.value
                move_opts[Opts.holding.value] = Holding.holding.value

            elif move_opts[
                    Opts.is_commander.value] == Bool.no.value and move_opts[
                        Opts.holding.value] == Holding.holding.value:
                move.set_leds(200, 200, 200)

            elif move_opts[
                    Opts.is_commander.value] == Bool.yes.value and move_opts[
                        Opts.holding.value] == Holding.holding.value:
                move.set_leds(*Current_commander_colors[team])
            else:
                move.set_leds(*Commander_colors[team])
        move.update_leds()

    move_opts[Opts.holding.value] = Holding.not_holding.value
    move_opts[Opts.selection.value] = Selections.nothing.value

    while True:
        if sum(force_color) != 0:
            no_rumble_time = time.time() + 5
            time.sleep(0.01)
            move.set_leds(*force_color)
            move.update_leds()
            move.set_rumble(0)
            no_rumble = time.time() + 0.5
        #if we are not dead
        elif dead_move.value == 1:
            if move.poll():
                ax, ay, az = move.get_accelerometer_frame(
                    psmove.Frame_SecondHalf)
                total = sum([ax, ay, az])
                if move_last_value is not None:
                    change = abs(move_last_value - total)

                    if move_opts[Opts.is_commander.value] == Bool.no.value:
                        if overdrive.value == 0:
                            warning = SLOW_WARNING
                            threshold = SLOW_MAX
                        else:
                            warning = FAST_WARNING
                            threshold = FAST_MAX
                    else:
                        #if affected by overdrive, this could make the power better
                        warning = SLOW_WARNING
                        threshold = SLOW_MAX

                    if change > threshold:
                        if time.time() > no_rumble:
                            move.set_leds(0, 0, 0)
                            move.set_rumble(90)
                            dead_move.value = 0
                            time_of_death = time.time()

                    elif change > warning and not vibrate:
                        if time.time() > no_rumble:
                            move.set_leds(20, 50, 100)
                            vibrate = True
                            vibration_time = time.time() + 0.5

                    else:
                        if move_opts[Opts.is_commander.value] == Bool.no.value:
                            if overdrive.value == 0:
                                move.set_leds(*Commander_colors[team])
                            else:
                                move.set_leds(*Overdrive_colors[team])
                        else:
                            move.set_leds(*calculate_flash_time(
                                Current_commander_colors[team][0],
                                Current_commander_colors[team][1],
                                Current_commander_colors[team][2],
                                power.value))
                        move.set_rumble(0)

                    if move_opts[Opts.is_commander.value] == Bool.yes.value:
                        if (move.get_buttons() == 0
                                and move.get_trigger() < 10):
                            move_opts[
                                Opts.holding.value] = Holding.not_holding.value

                        button = move.get_buttons()
                        #print str(power.value)
                        if power.value >= 1.0:
                            #press trigger for overdrive
                            if (move_opts[Opts.holding.value]
                                    == Holding.not_holding.value
                                    and move.get_trigger() > 100):
                                move_opts[Opts.selection.
                                          value] = Selections.trigger.value
                                move_opts[
                                    Opts.holding.value] = Holding.holding.value

                move_last_value = total
                if vibrate:
                    flash_lights_timer += 1
                    if flash_lights_timer > 7:
                        flash_lights_timer = 0
                        flash_lights = not flash_lights
                    if flash_lights:
                        move.set_leds(100, 100, 100)
                    if time.time() < vibration_time - 0.22:
                        move.set_rumble(110)
                    else:
                        move.set_rumble(0)
                    if time.time() > vibration_time:
                        vibrate = False
            move.update_leds()
        #if we are dead
        elif dead_move.value <= 0:
            if time.time() - time_of_death >= death_time:
                dead_move.value = 3
        elif dead_move.value == 3:
            move_last_value = None
            dead_move.value = 1
            no_rumble = time.time() + 2
            if death_time < 25:
                death_time += 2
Beispiel #5
0
def track_move(
    move_serial,
    move_num,
    team,
    team_num,
    dead_move,
    force_color,
    music_speed,
    commander_intro,
    move_opts,
    power,
    overdrive,
):
    # proc = psutil.Process(os.getpid())
    # proc.nice(3)
    # explosion = Audio('audio/Joust/sounds/Explosion34.wav')
    # explosion.start_effect()

    start = False
    no_rumble = time.time() + 1
    move_last_value = None
    move = common.get_move(move_serial, move_num)
    team_colors = common.generate_colors(team_num)
    # keep on looping while move is not dead
    ready = False
    move.set_leds(0, 0, 0)
    move.update_leds()
    time.sleep(1)

    death_time = 8
    time_of_death = time.time()

    while commander_intro.value == 1:
        if move.poll():
            button = move.get_buttons()
            if button == Buttons.middle.value and move_opts[Opts.holding.value] == Holding.not_holding.value:

                move_opts[Opts.selection.value] = Selections.a_button.value
                move_opts[Opts.holding.value] = Holding.holding.value
            elif button == Buttons.triangle.value and move_opts[Opts.holding.value] == Holding.not_holding.value:

                move_opts[Opts.selection.value] = Selections.triangle.value
                move_opts[Opts.holding.value] = Holding.holding.value

            elif (
                move_opts[Opts.is_commander.value] == Bool.no.value
                and move_opts[Opts.holding.value] == Holding.holding.value
            ):
                move.set_leds(200, 200, 200)

            elif (
                move_opts[Opts.is_commander.value] == Bool.yes.value
                and move_opts[Opts.holding.value] == Holding.holding.value
            ):
                move.set_leds(*Current_commander_colors[team])
            else:
                # print 'boop'
                move.set_leds(*Commander_colors[team])
        move.update_leds()

    move_opts[Opts.holding.value] = Holding.not_holding.value
    move_opts[Opts.selection.value] = Selections.nothing.value

    while True:
        if sum(force_color) != 0:
            no_rumble_time = time.time() + 5
            time.sleep(0.01)
            move.set_leds(*force_color)
            move.update_leds()
            move.set_rumble(0)
            no_rumble = time.time() + 0.5
        # if we are not dead
        elif dead_move.value == 1:
            if move.poll():
                ax, ay, az = move.get_accelerometer_frame(psmove.Frame_SecondHalf)
                total = sum([ax, ay, az])
                if move_last_value is not None:
                    change = abs(move_last_value - total)
                    # speed_percent = (music_speed.value - SLOW_MUSIC_SPEED)/(FAST_MUSIC_SPEED - SLOW_MUSIC_SPEED)
                    # warning = common.lerp(SLOW_WARNING, FAST_WARNING, speed_percent)
                    # threshold = common.lerp(SLOW_MAX, FAST_MAX, speed_percent)
                    if move_opts[Opts.is_commander.value] == Bool.no.value:
                        if overdrive.value == 0:
                            warning = SLOW_WARNING
                            threshold = SLOW_MAX
                        else:
                            warning = FAST_WARNING
                            threshold = FAST_MAX
                    else:
                        # if affected by overdrive, this could make the power better
                        warning = SLOW_WARNING
                        threshold = SLOW_MAX

                    if change > threshold:
                        if time.time() > no_rumble:
                            move.set_leds(0, 0, 0)
                            move.set_rumble(90)
                            dead_move.value = 0
                            time_of_death = time.time()

                    elif change > warning:
                        if time.time() > no_rumble:
                            move.set_leds(20, 50, 100)
                            move.set_rumble(110)

                    else:
                        if move_opts[Opts.is_commander.value] == Bool.no.value:
                            if overdrive.value == 0:
                                move.set_leds(*Commander_colors[team])
                            else:
                                move.set_leds(*Overdrive_colors[team])
                        else:
                            move.set_leds(
                                *calculate_flash_time(
                                    Current_commander_colors[team][0],
                                    Current_commander_colors[team][1],
                                    Current_commander_colors[team][2],
                                    power.value,
                                )
                            )
                        move.set_rumble(0)

                    if move_opts[Opts.is_commander.value] == Bool.yes.value:
                        if move.get_buttons() == 0 and move.get_trigger() < 10:
                            move_opts[Opts.holding.value] = Holding.not_holding.value

                        button = move.get_buttons()
                        # print str(power.value)
                        if power.value >= 1.0:
                            # press trigger for overdrive
                            if move_opts[Opts.holding.value] == Holding.not_holding.value and move.get_trigger() > 100:
                                move_opts[Opts.selection.value] = Selections.trigger.value
                                move_opts[Opts.holding.value] = Holding.holding.value
                            # elif (move_opts[Opts.holding.value] == Holding.not_holding.value and button == Buttons.middle.value):
                            #    move_opts[Opts.selection.value] = Selections.a_button.value
                            #    move_opts[Opts.holding.value] = Holding.holding.value
                            # elif (move_opts[Opts.holding.value] == Holding.not_holding.value and button == Buttons.triangle.value):
                            #    move_opts[Opts.selection.value] = Selections.triangle.value
                            #    move_opts[Opts.holding.value] = Holding.holding.value

                move_last_value = total
            move.update_leds()
        # if we are dead
        elif dead_move.value <= 0:
            if time.time() - time_of_death >= death_time:
                dead_move.value = 3
        elif dead_move.value == 3:
            move_last_value = None
            dead_move.value = 1
            no_rumble = time.time() + 2
            if death_time < 25:
                death_time += 2
Beispiel #6
0
def track_move(move_serial, move_num, game_mode, team, team_num, dead_move, force_color, music_speed, werewolf_reveal):
    # proc = psutil.Process(os.getpid())
    # proc.nice(3)
    # explosion = Audio('audio/Joust/sounds/Explosion34.wav')
    # explosion.start_effect()
    start = False
    no_rumble = time.time() + 1
    move_last_value = None
    move = common.get_move(move_serial, move_num)
    team_colors = common.generate_colors(team_num)
    werewolf = False
    if team < 0:
        team = (team + 1) * -1
        werewolf = True
    # keep on looping while move is not dead
    while True:
        if sum(force_color) != 0:
            no_rumble_time = time.time() + 5
            time.sleep(0.01)
            move.set_leds(*force_color)

            if sum(force_color) > 75:
                if werewolf:
                    move.set_rumble(80)
            else:
                if sum(force_color) == 30:
                    if werewolf:
                        move.set_leds(255, 0, 0)
                    else:
                        move.set_leds(0, 0, 0)
                move.set_rumble(0)
            move.update_leds()
            no_rumble = time.time() + 0.5
        elif dead_move.value == 1 and werewolf_reveal.value > 0:
            if move.poll():
                ax, ay, az = move.get_accelerometer_frame(psmove.Frame_SecondHalf)
                total = sum([ax, ay, az])
                if move_last_value is not None:
                    change = abs(move_last_value - total)
                    speed_percent = (music_speed.value - SLOW_MUSIC_SPEED) / (FAST_MUSIC_SPEED - SLOW_MUSIC_SPEED)
                    if werewolf:
                        warning = common.lerp(WERE_SLOW_WARNING, WERE_FAST_WARNING, speed_percent)
                        threshold = common.lerp(WERE_SLOW_MAX, WERE_FAST_MAX, speed_percent)
                    else:
                        warning = common.lerp(SLOW_WARNING, FAST_WARNING, speed_percent)
                        threshold = common.lerp(SLOW_MAX, FAST_MAX, speed_percent)

                    if change > threshold:
                        if time.time() > no_rumble:
                            move.set_leds(0, 0, 0)
                            move.set_rumble(90)
                            dead_move.value = 0

                    elif change > warning:
                        if time.time() > no_rumble:
                            move.set_leds(20, 50, 100)
                            move.set_rumble(110)

                    else:
                        if game_mode == common.Games.WereJoust.value:
                            if werewolf_reveal.value == 2 and werewolf:
                                move.set_leds(255, 0, 0)
                            else:
                                move.set_leds(100, 100, 100)
                        else:
                            move.set_leds(*team_colors[team])
                        move.set_rumble(0)

                move_last_value = total
            move.update_leds()
Beispiel #7
0
def track_move(move_serial, move_num, game_mode, team, team_num, dead_move, force_color, music_speed, werewolf_reveal):
    #proc = psutil.Process(os.getpid())
    #proc.nice(3)
    #explosion = Audio('audio/Joust/sounds/Explosion34.wav')
    #explosion.start_effect()
    start = False
    no_rumble = time.time() + 1
    move_last_value = None
    move = common.get_move(move_serial, move_num)
    team_colors = common.generate_colors(team_num)
    werewolf = False
    if team < 0:
        team = (team + 1) * -1
        werewolf = True
    #keep on looping while move is not dead
    while True:
        if sum(force_color) != 0:
            no_rumble_time = time.time() + 5
            time.sleep(0.01)
            move.set_leds(*force_color)

            if sum(force_color) > 75:
                if werewolf:
                    move.set_rumble(80)
            else:
                if sum(force_color) == 30:
                    if werewolf:
                        move.set_leds(255, 0, 0)
                    else:
                        move.set_leds(0, 0, 0)
                move.set_rumble(0)
            move.update_leds()
            no_rumble = time.time() + 0.5
        elif dead_move.value == 1 and werewolf_reveal.value > 0:   
            if move.poll():
                ax, ay, az = move.get_accelerometer_frame(psmove.Frame_SecondHalf)
                total = sum([ax, ay, az])
                if move_last_value is not None:
                    change = abs(move_last_value - total)
                    speed_percent = (music_speed.value - SLOW_MUSIC_SPEED)/(FAST_MUSIC_SPEED - SLOW_MUSIC_SPEED)
                    if werewolf:
                        warning = common.lerp(WERE_SLOW_WARNING, WERE_FAST_WARNING, speed_percent)
                        threshold = common.lerp(WERE_SLOW_MAX, WERE_FAST_MAX, speed_percent) 
                    else:
                        warning = common.lerp(SLOW_WARNING, FAST_WARNING, speed_percent)
                        threshold = common.lerp(SLOW_MAX, FAST_MAX, speed_percent)

                    if change > threshold:
                        if time.time() > no_rumble:
                            move.set_leds(0,0,0)
                            move.set_rumble(90)
                            dead_move.value = 0

                    elif change > warning:
                        if time.time() > no_rumble:
                            move.set_leds(20,50,100)
                            move.set_rumble(110)

                    else:
                        if game_mode == common.Games.WereJoust.value:
                            if werewolf_reveal.value == 2 and werewolf:
                                move.set_leds(255,0,0)
                            else:
                                move.set_leds(100,100,100)
                        else:
                            move.set_leds(*team_colors[team])
                        move.set_rumble(0)
                        
                move_last_value = total
            move.update_leds()
Beispiel #8
0
def track_move(move_serial, move_num, team, team_num, score, win_amount,
               dead_move, force_color, music_speed):
    #proc = psutil.Process(os.getpid())
    #proc.nice(3)
    #explosion = Audio('audio/Joust/sounds/Explosion34.wav')
    #explosion.start_effect()

    move_last_value = None
    move = common.get_move(move_serial, move_num)
    team_colors = common.generate_colors(team_num)
    werewolf = False
    flash_time = time.time()

    #keep on looping while move is not dead
    while True:
        if sum(force_color) != 0:
            time.sleep(0.01)
            move.set_leds(*force_color)
            move.update_leds()
            if werewolf:
                move.set_rumble(80)
        elif dead_move.value == 1:
            if move.poll():
                ax, ay, az = move.get_accelerometer_frame(
                    psmove.Frame_SecondHalf)
                total = sum([ax, ay, az])
                if move_last_value is not None:
                    change = abs(move_last_value - total)
                    speed_percent = (music_speed.value - SLOW_MUSIC_SPEED) / (
                        FAST_MUSIC_SPEED - SLOW_MUSIC_SPEED)
                    warning = common.lerp(SLOW_WARNING, FAST_WARNING,
                                          speed_percent)
                    threshold = common.lerp(SLOW_MAX, FAST_MAX, speed_percent)

                    if change > threshold:
                        move.set_leds(0, 0, 0)
                        move.set_rumble(90)
                        score.value = -1
                        dead_move.value = 0

                    elif change > warning:
                        move.set_leds(20, 50, 100)
                        move.set_rumble(110)

                    else:
                        if score.value >= 1:
                            if time.time() > flash_time:
                                vall = calculate_flash_time(
                                    team_colors[team][0], team_colors[team][1],
                                    team_colors[team][2], score.value,
                                    win_amount)
                                #print vall
                                move.set_leds(*vall)
                                #flash_time = time.time() + calculate_flash_time(score.value, win_amount)
                        else:
                            move.set_leds(*team_colors[team])
                        move.set_rumble(0)

                move_last_value = total
            move.update_leds()

        elif dead_move.value == 0:
            if move.poll():
                move_button = move.get_buttons()
                if score.value >= 0 and move_button == common.Buttons.middle:
                    dead_move.value = 1
                    move_last_value = None
Beispiel #9
0
import common
import joust
import time
import zombie
import commander
import ninja
import swapper
import speed_bomb
import random
import kingofthehill
from piaudio import Audio
from enum import Enum
from multiprocessing import Process, Value, Array

TEAM_NUM = 6
TEAM_COLORS = common.generate_colors(TEAM_NUM)

#the number of game modes
GAME_MODES = 10

SENSITIVITY_MODES = 3

class Opts(Enum):
    alive = 0
    selection = 1
    holding = 2
    team = 3
    game_mode = 4
    random_start = 5

class Alive(Enum):
Beispiel #10
0
def track_move(move_serial, move_num, team, team_num, dead_move, force_color, music_speed, show_team_colors, invincibility):
    #proc = psutil.Process(os.getpid())
    #proc.nice(3)
    #explosion = Audio('audio/Joust/sounds/Explosion34.wav')
    #explosion.start_effect()
    start = False
    no_rumble = time.time() + 1
    move_last_value = None
    move = common.get_move(move_serial, move_num)
    team_colors = common.generate_colors(team_num)
    vibrate = False
    vibration_time = time.time() + 1
    flash_lights = True
    flash_lights_timer = 0
    start_inv = False
    change_arr = [0,0,0]

    #keep on looping while move is not dead
    while True:
        if show_team_colors.value == 1:
            if team.value != -1:
                move.set_leds(*team_colors[team.value])
            else:
                move.set_leds(100,100,100)
            move.update_leds()
        elif sum(force_color) != 0:
            no_rumble_time = time.time() + 5
            time.sleep(0.01)
            move.set_leds(*force_color)
            if sum(force_color) == 30:
                move.set_leds(0, 0, 0)
            move.set_rumble(0)
            move.update_leds()
            no_rumble = time.time() + 0.5
        elif dead_move.value == 1 and team.value != -1:   
            if move.poll():
                ax, ay, az = move.get_accelerometer_frame(psmove.Frame_SecondHalf)
                total = sum([ax, ay, az])
                if move_last_value is not None:
                    change_real = abs(move_last_value - total)
                    change_arr[0] = change_arr[1]
                    change_arr[1] = change_arr[2]
                    change_arr[2] = change_real
                    change = (change_arr[0] + change_arr[1]+change_arr[2])/3
                    speed_percent = (music_speed.value - SLOW_MUSIC_SPEED)/(FAST_MUSIC_SPEED - SLOW_MUSIC_SPEED)
                    warning = common.lerp(SLOW_WARNING, FAST_WARNING, speed_percent)
                    threshold = common.lerp(SLOW_MAX, FAST_MAX, speed_percent)
                    if not start_inv and invincibility.value == 1:
                        start_inv = True
                        vibrate = True
                        vibration_time = time.time() + 3
                        

                    if vibrate:
                        flash_lights_timer += 1
                        if flash_lights_timer > 7:
                            flash_lights_timer = 0
                            flash_lights = not flash_lights
                        if flash_lights:
                            move.set_leds(100,100,100)
                        else:
                            if team.value != -1:
                                move.set_leds(*team_colors[team.value])
                            else:
                                move.set_leds(100,100,100)
                        if time.time() < vibration_time - 0.22:
                            move.set_rumble(110)
                        else:
                            move.set_rumble(0)
                        if time.time() > vibration_time:
                            vibrate = False
                            start_inv = False
                            invincibility.value = 0
                    else:
                        if team.value != -1:
                            move.set_leds(*team_colors[team.value])
                        else:
                            move.set_leds(100,100,100)
                            
                    if invincibility.value == 0:
                        if change > threshold:
                            if time.time() > no_rumble:
                                move.set_leds(0,0,0)
                                move.set_rumble(90)
                                dead_move.value = 0

                        elif change > warning and not vibrate:
                            if time.time() > no_rumble:
                                vibrate = True
                                vibration_time = time.time() + 0.5
                                move.set_leds(20,50,100)


                        
                move_last_value = total
            move.update_leds()
        else:
            if dead_move.value < 1:
                move.set_leds(0,0,0)
            elif team.value == -1:
                move.set_leds(100,100,100)
            move.update_leds()
                
            time.sleep(0.5)
            move.set_rumble(0)
Beispiel #11
0
def track_move(move_serial, move_num, team, team_num, dead_move, force_color,
               music_speed, move_opts):
    #proc = psutil.Process(os.getpid())
    #proc.nice(3)

    start = False
    no_rumble = time.time() + 1
    move_last_value = None
    move = common.get_move(move_serial, move_num)
    team_colors = common.generate_colors(team_num)
    #keep on looping while move is not dead
    ready = False
    move.set_leds(0, 0, 0)
    move.update_leds()
    time.sleep(1)
    vibrate = False
    vibration_time = time.time() + 1
    flash_lights = True
    flash_lights_timer = 0

    death_time = 2
    time_of_death = time.time()
    move_opts[Opts.holding.value] = Holding.not_holding.value
    move_opts[Opts.selection.value] = Selections.nothing.value

    while True:
        if sum(force_color) != 0:
            no_rumble_time = time.time() + 5
            time.sleep(0.01)
            move.set_leds(*force_color)
            move.update_leds()
            move.set_rumble(0)
            no_rumble = time.time() + 0.5
        #if we are not dead
        elif dead_move.value == 1:
            if move.poll():

                ax, ay, az = move.get_accelerometer_frame(
                    psmove.Frame_SecondHalf)
                total = sum([ax, ay, az])
                if move_last_value is not None:
                    change = abs(move_last_value - total)

                    warning = SLOW_WARNING
                    threshold = SLOW_MAX

                    if change > threshold:
                        if time.time() > no_rumble:
                            move.set_leds(0, 0, 0)
                            move.set_rumble(90)
                            dead_move.value = 0
                            time_of_death = time.time()

                    elif change > warning and not vibrate:
                        if time.time() > no_rumble:
                            vibrate = True
                            vibration_time = time.time() + 0.5
                            move.set_leds(20, 50, 100)
                    else:
                        move.set_rumble(0)

                    if vibrate:
                        flash_lights_timer += 1
                        if flash_lights_timer > 7:
                            flash_lights_timer = 0
                            flash_lights = not flash_lights
                        if flash_lights:
                            move.set_leds(100, 100, 100)
                        else:
                            move.set_leds(*team_colors[team.value])
                        if time.time() < vibration_time - 0.22:
                            move.set_rumble(110)
                        else:
                            move.set_rumble(0)
                        if time.time() > vibration_time:
                            vibrate = False
                    else:
                        move.set_leds(*team_colors[team.value])

                move_last_value = total
            move.update_leds()
        #if we are dead
        elif dead_move.value <= 0:
            move.set_leds(100, 100, 100)

            if time.time() - time_of_death >= death_time:
                dead_move.value = 3
        elif dead_move.value == 3:
            move_last_value = None
            dead_move.value = 1
            no_rumble = time.time() + 1
            team.value = (team.value + 1) % team_num
Beispiel #12
0
def track_move(move_serial, move_num, team, team_num, dead_move, force_color,
               music_speed, move_opts):
    #proc = psutil.Process(os.getpid())
    #proc.nice(3)

    start = False
    no_rumble = time.time() + 1
    move_last_value = None
    move = common.get_move(move_serial, move_num)
    team_colors = common.generate_colors(team_num)
    #keep on looping while move is not dead
    ready = False
    move.set_leds(0, 0, 0)
    move.update_leds()
    time.sleep(1)

    death_time = 8
    time_of_death = time.time()

    move_opts[Opts.holding.value] = Holding.not_holding.value
    move_opts[Opts.selection.value] = Selections.nothing.value

    while True:
        if sum(force_color) != 0:
            no_rumble_time = time.time() + 5
            time.sleep(0.01)
            move.set_leds(*force_color)
            move.update_leds()
            move.set_rumble(0)
            no_rumble = time.time() + 0.5
        #if we are not dead
        elif dead_move.value == 1:
            if move.poll():
                ax, ay, az = move.get_accelerometer_frame(
                    psmove.Frame_SecondHalf)
                total = sum([ax, ay, az])
                if move_last_value is not None:
                    change = abs(move_last_value - total)

                    if move_opts[Opts.is_commander.value] == Bool.no.value:
                        warning = FAST_WARNING
                        threshold = FAST_MAX
                    else:
                        #if affected by overdrive, this could make the power better
                        warning = SLOW_WARNING
                        threshold = SLOW_MAX

                    if change > threshold:
                        if time.time() > no_rumble:
                            move.set_leds(0, 0, 0)
                            move.set_rumble(90)
                            dead_move.value = 0
                            time_of_death = time.time()

                    elif change > warning:
                        if time.time() > no_rumble:
                            move.set_leds(20, 50, 100)
                            move.set_rumble(110)

                    else:
                        move.set_leds(100, 0, 100)
                        move.set_rumble(0)

                        button = move.get_buttons()

                move_last_value = total
            move.update_leds()
        #if we are dead
        elif dead_move.value <= 0:
            if time.time() - time_of_death >= death_time:
                dead_move.value = 3
        elif dead_move.value == 3:
            move_last_value = None
            dead_move.value = 1
            no_rumble = time.time() + 2
            if death_time < 25:
                death_time += 2