mirror of
https://github.com/Team254/cheesy-arena-lite.git
synced 2026-03-09 13:46:44 -04:00
Update event settings for 2016.
This commit is contained in:
@@ -154,7 +154,7 @@ func TestArenaMatchFlow(t *testing.T) {
|
||||
// Check endgame and match end.
|
||||
mainArena.matchStartTime = time.Now().
|
||||
Add(-time.Duration(mainArena.matchTiming.AutoDurationSec+mainArena.matchTiming.PauseDurationSec+
|
||||
mainArena.matchTiming.TeleopDurationSec-mainArena.matchTiming.EndgameTimeLeftSec) * time.Second)
|
||||
mainArena.matchTiming.TeleopDurationSec-mainArena.matchTiming.EndgameTimeLeftSec) * time.Second)
|
||||
mainArena.Update()
|
||||
assert.Equal(t, ENDGAME_PERIOD, mainArena.MatchState)
|
||||
assert.Equal(t, false, mainArena.AllianceStations["B3"].DsConn.Auto)
|
||||
|
||||
@@ -8,8 +8,6 @@ CREATE TABLE event_settings (
|
||||
selectionround2order VARCHAR(1),
|
||||
selectionround3order VARCHAR(1),
|
||||
teaminfodownloadenabled bool,
|
||||
redgoallightsaddress VARCHAR(255),
|
||||
bluegoallightsaddress VARCHAR(255),
|
||||
tbapublishingenabled bool,
|
||||
tbaeventcode VARCHAR(16),
|
||||
tbasecretid VARCHAR(255),
|
||||
@@ -23,7 +21,12 @@ CREATE TABLE event_settings (
|
||||
bandwidthmonitoringenabled bool,
|
||||
tbadownloadenabled bool,
|
||||
adminpassword VARCHAR(255),
|
||||
readerpassword VARCHAR(255)
|
||||
readerpassword VARCHAR(255),
|
||||
redgoallightsaddress VARCHAR(255),
|
||||
reddefenselightsaddress VARCHAR(255),
|
||||
bluegoallightsaddress VARCHAR(255),
|
||||
bluedefenselightsaddress VARCHAR(255),
|
||||
initialtowerstrength int
|
||||
);
|
||||
|
||||
-- +goose Down
|
||||
|
||||
@@ -14,8 +14,6 @@ type EventSettings struct {
|
||||
SelectionRound2Order string
|
||||
SelectionRound3Order string
|
||||
TBADownloadEnabled bool
|
||||
RedGoalLightsAddress string
|
||||
BlueGoalLightsAddress string
|
||||
TbaPublishingEnabled bool
|
||||
TbaEventCode string
|
||||
TbaSecretId string
|
||||
@@ -29,6 +27,11 @@ type EventSettings struct {
|
||||
BandwidthMonitoringEnabled bool
|
||||
AdminPassword string
|
||||
ReaderPassword string
|
||||
RedGoalLightsAddress string
|
||||
RedDefenseLightsAddress string
|
||||
BlueGoalLightsAddress string
|
||||
BlueDefenseLightsAddress string
|
||||
InitialTowerStrength int
|
||||
}
|
||||
|
||||
const eventSettingsId = 0
|
||||
@@ -45,6 +48,10 @@ func (database *Database) GetEventSettings() (*EventSettings, error) {
|
||||
eventSettings.SelectionRound2Order = "L"
|
||||
eventSettings.SelectionRound3Order = ""
|
||||
eventSettings.TBADownloadEnabled = true
|
||||
|
||||
// Game-specific default settings.
|
||||
eventSettings.InitialTowerStrength = 10
|
||||
|
||||
err = database.eventSettingsMap.Insert(eventSettings)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -18,8 +18,8 @@ func TestEventSettingsReadWrite(t *testing.T) {
|
||||
eventSettings, err := db.GetEventSettings()
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, EventSettings{Id: 0, Name: "Untitled Event", Code: "UE", DisplayBackgroundColor: "#00ff00",
|
||||
NumElimAlliances: 8, SelectionRound2Order: "L", SelectionRound3Order: "",
|
||||
TBADownloadEnabled: true}, *eventSettings)
|
||||
NumElimAlliances: 8, SelectionRound2Order: "L", SelectionRound3Order: "", TBADownloadEnabled: true,
|
||||
InitialTowerStrength: 10}, *eventSettings)
|
||||
|
||||
eventSettings.Name = "Chezy Champs"
|
||||
eventSettings.Code = "cc"
|
||||
|
||||
@@ -51,8 +51,6 @@ func SettingsPostHandler(w http.ResponseWriter, r *http.Request) {
|
||||
eventSettings.SelectionRound2Order = r.PostFormValue("selectionRound2Order")
|
||||
eventSettings.SelectionRound3Order = r.PostFormValue("selectionRound3Order")
|
||||
eventSettings.TBADownloadEnabled = r.PostFormValue("TBADownloadEnabled") == "on"
|
||||
eventSettings.RedGoalLightsAddress = r.PostFormValue("redGoalLightsAddress")
|
||||
eventSettings.BlueGoalLightsAddress = r.PostFormValue("blueGoalLightsAddress")
|
||||
eventSettings.TbaPublishingEnabled = r.PostFormValue("tbaPublishingEnabled") == "on"
|
||||
eventSettings.TbaEventCode = r.PostFormValue("tbaEventCode")
|
||||
eventSettings.TbaSecretId = r.PostFormValue("tbaSecretId")
|
||||
@@ -66,6 +64,18 @@ func SettingsPostHandler(w http.ResponseWriter, r *http.Request) {
|
||||
eventSettings.BandwidthMonitoringEnabled = r.PostFormValue("bandwidthMonitoringEnabled") == "on"
|
||||
eventSettings.AdminPassword = r.PostFormValue("adminPassword")
|
||||
eventSettings.ReaderPassword = r.PostFormValue("readerPassword")
|
||||
eventSettings.RedGoalLightsAddress = r.PostFormValue("redGoalLightsAddress")
|
||||
eventSettings.RedDefenseLightsAddress = r.PostFormValue("redDefenseLightsAddress")
|
||||
eventSettings.BlueGoalLightsAddress = r.PostFormValue("blueGoalLightsAddress")
|
||||
eventSettings.BlueDefenseLightsAddress = r.PostFormValue("blueDefenseLightsAddress")
|
||||
|
||||
initialTowerStrength, _ := strconv.Atoi(r.PostFormValue("initialTowerStrength"))
|
||||
if initialTowerStrength < 1 {
|
||||
renderSettings(w, r, "Initial tower strength must be at least 1.")
|
||||
return
|
||||
}
|
||||
eventSettings.InitialTowerStrength = initialTowerStrength
|
||||
|
||||
err := db.SaveEventSettings(eventSettings)
|
||||
if err != nil {
|
||||
handleWebErr(w, err)
|
||||
|
||||
@@ -33,7 +33,8 @@ func TestSetupSettings(t *testing.T) {
|
||||
|
||||
// Change the settings and check the response.
|
||||
recorder = postHttpResponse("/setup/settings", "name=Chezy Champs&code=CC&displayBackgroundColor=#ff00ff&"+
|
||||
"numElimAlliances=16&tbaPublishingEnabled=on&tbaEventCode=2014cc&tbaSecretId=secretId&tbaSecret=tbasec")
|
||||
"numElimAlliances=16&tbaPublishingEnabled=on&tbaEventCode=2014cc&tbaSecretId=secretId&tbaSecret=tbasec&"+
|
||||
"initialTowerStrength=9001")
|
||||
assert.Equal(t, 302, recorder.Code)
|
||||
recorder = getHttpResponse("/setup/settings")
|
||||
assert.Contains(t, recorder.Body.String(), "Chezy Champs")
|
||||
@@ -44,6 +45,7 @@ func TestSetupSettings(t *testing.T) {
|
||||
assert.Contains(t, recorder.Body.String(), "2014cc")
|
||||
assert.Contains(t, recorder.Body.String(), "secretId")
|
||||
assert.Contains(t, recorder.Body.String(), "tbasec")
|
||||
assert.Contains(t, recorder.Body.String(), "9001")
|
||||
}
|
||||
|
||||
func TestSetupSettingsInvalidValues(t *testing.T) {
|
||||
|
||||
@@ -146,19 +146,6 @@
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Field I/O</legend>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-5 control-label">Red goal LED controller address/port</label>
|
||||
<div class="col-lg-7">
|
||||
<input type="text" class="form-control" name="redGoalLightsAddress" value="{{.RedGoalLightsAddress}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-5 control-label">Blue goal LED controller address/port</label>
|
||||
<div class="col-lg-7">
|
||||
<input type="text" class="form-control" name="blueGoalLightsAddress" value="{{.BlueGoalLightsAddress}}">
|
||||
</div>
|
||||
</div>
|
||||
<legend>Networking</legend>
|
||||
<p>Enable this setting if you have a Cisco Aironet AP1252AG access point and Catalyst 3500-series
|
||||
switch available, for isolating each team to its own SSID and VLAN.</p>
|
||||
@@ -205,6 +192,42 @@
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>LED Controllers</legend>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-5 control-label">Red goal address/port</label>
|
||||
<div class="col-lg-7">
|
||||
<input type="text" class="form-control" name="redGoalLightsAddress" value="{{.RedGoalLightsAddress}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-5 control-label">Red defense address/port</label>
|
||||
<div class="col-lg-7">
|
||||
<input type="text" class="form-control" name="redDefenseLightsAddress" value="{{.RedDefenseLightsAddress}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-5 control-label">Blue goal address/port</label>
|
||||
<div class="col-lg-7">
|
||||
<input type="text" class="form-control" name="blueGoalLightsAddress" value="{{.BlueGoalLightsAddress}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-5 control-label">Blue defense address/port</label>
|
||||
<div class="col-lg-7">
|
||||
<input type="text" class="form-control" name="blueDefenseLightsAddress" value="{{.BlueDefenseLightsAddress}}">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>2016 Game Rules</legend>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-5 control-label">Initial tower strength</label>
|
||||
<div class="col-lg-7">
|
||||
<input type="text" class="form-control" name="initialTowerStrength" value="{{.InitialTowerStrength}}">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="form-group">
|
||||
<div class="col-lg-7 col-lg-offset-5">
|
||||
<button type="submit" class="btn btn-info">Save</button>
|
||||
|
||||
Reference in New Issue
Block a user