{{ message }}

Color lock and other options added to web settings, currently non-fun…

`…ctional`
CelestialQwert committed Oct 5, 2017
1 parent 3e78818 commit 9f7d40cab79969425eaa537f3e2fc9d27a0c53cf
Showing with 179 additions and 78 deletions.
1. +0 −8 color_tests/color_combo_test.py
2. +14 −10 color_tests/colortest.py
3. +1 −0 colors.py
4. +11 −2 common.py
5. +26 −22 joust.py
6. +11 −3 piparty.py
7. +52 −17 templates/settings.html
8. +51 −16 webui.py
9. +13 −0 webui.sh
 @@ -1,4 +1,3 @@ <<<<<<< Updated upstream from enum import Enum class Colors(Enum): @@ -35,11 +34,4 @@ class Colors(Enum): bad = True if not bad: print(quad) ======= import common for t in [2,3,17]: for i in range(20): teams = common.generate_team_colors(t) print([x.name for x in teams]) >>>>>>> Stashed changes
 @@ -1,6 +1,7 @@ import psmove import colorsys import time from math import sqrt def hsv2rgb(h, s, v): return tuple(int(color * 255) for color in colorsys.hsv_to_rgb(h, s, v)) @@ -78,17 +79,20 @@ def hsv2rgb(h, s, v): '653700'] #BROWN = def colorhex(hex): r = int(hex[0:2],16) g = int(hex[2:4],16) b = int(hex[4:6],16) return (r,g,b) r = int(hex[0:2],16) g = int(hex[2:4],16) b = int(hex[4:6],16) return (r,g,b) s=0 while True: for i,move in enumerate(moves): color = colorhex(joustwheel[(s+i)%12]) move.set_leds(*color) move.update_leds() time.sleep(0.01) #s += 1 for i,move in enumerate(moves): color = colorhex(joustwheel[(s+i)%12]) move.set_leds(*color) move.update_leds() move.poll() ax,ay,az = tuple(move.get_accelerometer_frame(psmove.Frame_SecondHalf)) print('%+1.1f %+1.1f %+1.1f %+1.1f' % (ax,ay,az,sqrt(sum([ax**2, ay**2, az**2])))) #time.sleep(.1) #s += 1
 @@ -72,6 +72,7 @@ class Colors(Enum): White = (255,255,255) White80 = (200,200,200) White60 = (150,150,150) White40 = (100,100,100) White20 = (50,50,50) Red = (255,0,0) Red60 = (150,0,0)
 @@ -7,10 +7,15 @@ #Human speeds[slow, mid, fast] SLOW_WARNING = [0.1, 0.15, 0.28] SLOW_MAX = [0.5, 0.8, 1] SLOW_MAX = [0.25, 0.8, 1] FAST_WARNING = [0.5, 0.6, 0.8] FAST_MAX = [1, 1.4, 1.8] #SLOW_WARNING = [0.1, 0.15, 0.28] #SLOW_MAX = [0.5, 0.8, 1] #FAST_WARNING = [0.5, 0.6, 0.8] #FAST_MAX = [1, 1.4, 1.8] WERE_SLOW_WARNING = [0.2, 0.3, 0.4] WERE_SLOW_MAX = [0.7, 0.9, 1.1] WERE_FAST_WARNING = [0.6, 0.7, 0.9] @@ -122,5 +127,9 @@ def rgb_bytes(self): 'enforce_minimum', 'sensitivity', 'play_instructions', 'random_modes' 'random_modes', 'color_lock', 'color_lock_choices', 'red_on_kill', 'random_teams' ]
 @@ -93,8 +93,8 @@ def track_move(move_serial, move_num, game_mode, team, team_color_enum, dead_mov elif dead_move.value == 1 and werewolf_reveal.value > 0: if move.poll(): ax, ay, az = move.get_accelerometer_frame(psmove.Frame_SecondHalf) #total = sqrt(sum([ax**2, ay**2, az**2])) total = sum([ax, ay, az]) total = sqrt(sum([ax**2, ay**2, az**2])) #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] @@ -285,26 +285,30 @@ def choose_werewolf(self, were_num): self.teams[werewolf] = (self.teams[werewolf] * -1) - 1 def generate_random_teams(self, num_teams): team_pick = list(range(num_teams)) print (str(team_pick)) traitor_pick = True copy_serials = self.move_serials[:] while len(copy_serials) >= 1: #for serial in self.move_serials: serial = random.choice(copy_serials) copy_serials.remove(serial) random_choice = random.choice(team_pick) if self.game_mode == common.Games.Traitor and traitor_pick: self.teams[serial] = (random_choice * -1) - 1 else: self.teams[serial] = random_choice ## print("doing random choice") ## print(random_choice) team_pick.remove(random_choice) if not team_pick: traitor_pick = False team_pick = list(range(num_teams)) #in FFA, each player is a different team so no need to randomize if num_teams == len(self.move_serials): for i,move in enumerate(self.move_serials): self.teams[serial] = i else: team_pick = list(range(num_teams)) traitor_pick = True copy_serials = self.move_serials[:] while len(copy_serials) >= 1: #for serial in self.move_serials: serial = random.choice(copy_serials) copy_serials.remove(serial) random_choice = random.choice(team_pick) if self.game_mode == common.Games.Traitor and traitor_pick: self.teams[serial] = (random_choice * -1) - 1 else: self.teams[serial] = random_choice ## print("doing random choice") ## print(random_choice) team_pick.remove(random_choice) if not team_pick: traitor_pick = False team_pick = list(range(num_teams)) def track_moves(self): for move_num, move_serial in enumerate(self.move_serials):
 @@ -508,7 +508,15 @@ def initialize_settings(self): 'random_modes': [common.Games.JoustFFA.pretty_name], 'play_audio': True, 'move_can_be_admin': True, 'enforce_minimum': True 'enforce_minimum': True, 'red_on_kill': True, 'random_teams': True, 'color_lock': False, 'color_lock_choices':{ 2: ['Magenta','Green'], 3: ['Orange','Turquoise','Purple'], 4: ['Yellow','Green','Blue','Purple'] } }) try: #catch either file opening or yaml loading failing @@ -517,8 +525,8 @@ def initialize_settings(self): except: pass for setting in common.REQUIRED_SETTINGS: if setting not in temp_settings.keys(): for setting in temp_settings.keys(): if setting not in common.REQUIRED_SETTINGS: temp_settings.pop(setting) #random mode games can't be empty if temp_settings['random_modes'] == []:
 @@ -1,32 +1,43 @@ {% extends "basic.html" %} {% block header %} {% endblock %} @@ -55,15 +66,39 @@

{{ form.play_audio(checked=settings.play_audio) }} {{form.play_audio.label}}

{{ form.random_teams(checked=settings.random_teams) }} {{form.random_teams.label}}

{{ form.color_lock(checked=settings.color_lock) }} {{form.color_lock.label}}

{{ form.red_on_kill }} {{form.red_on_kill.label}}

{{ form.sensitivity }} {{form.sensitivity.label}}

Random Mode Game Selection

Random Mode Game Selection
{% for item in form.random_modes %} {{ item(checked=item.data in settings.random_modes) }} {{ item.label }}
{% endfor %}

Color Lock Selection
Dual Teams
{% for i in range(2) %}{{ form.color_lock_choices[i](class_="rand2") }} {% endfor %}

Tri Teams
{% for i in range(2,5) %}{{ form.color_lock_choices[i](class_="rand3") }} {% endfor %}