From ed924b99572464df6fce4bf8f11239f91e5c9eab Mon Sep 17 00:00:00 2001
From: Deukhoofd
Date: Sat, 20 Feb 2016 15:18:22 +0100
Subject: [PATCH] Removed alt button, set level to max level for generation on
team creation as to prevent confusion. Feature Complete for 1.0 beta.
---
client/app/js/helpers/challenge_pane.coffee | 374 +++++++++---------
.../teambuilder/pokemon_edit_view.coffee | 9 +-
client/views/new_battle.jade | 12 -
public/js/app.js | 14 +-
public/js/templates.js | 2 +-
5 files changed, 207 insertions(+), 204 deletions(-)
diff --git a/client/app/js/helpers/challenge_pane.coffee b/client/app/js/helpers/challenge_pane.coffee
index 1f34028..4e1f459 100644
--- a/client/app/js/helpers/challenge_pane.coffee
+++ b/client/app/js/helpers/challenge_pane.coffee
@@ -1,189 +1,189 @@
-# eventName should be one of "challenge" or "find battle"
-# opts may include whether to enable clauses, for example
-@challengePaneArray = []
-
-class @challengePaneObject
- constructor: (@object) ->
- @event = @object.eventName
- @button = @object.button
- @populate = @object.populate
- @clauses = @object.defaultClauses
- @blockedClauses = @object.blockedClauses
-
-@SelectedTeamID = null
-@SelectedFormat = null
-
-@ChallengePaneOpts =
- SelectedTeamID : null
- SelectedFormat : null
- SelectedAlt : null
-
-@createChallengeButton = (opts) ->
- $button = opts.button
- $eventName = opts.eventName
- $clauses = opts.clauses
- capitalizedEventName = "#{$eventName[0].toUpperCase()}#{$eventName.substr(1)}"
- acceptEventName = "accept#{capitalizedEventName}"
- rejectEventName = "reject#{capitalizedEventName}"
- cancelEventName = "cancel#{capitalizedEventName}"
-
-
- getSelectedTeam = ->
- PokeBattle.TeamStore.get(@ChallengePaneOpts.SelectedTeamID) || PokeBattle.TeamStore.at(0)
-
- cancelChallenge = ->
- #enableButtons()
- format = getChallengeOpts().SelectedFormat
- PokeBattle.primus.send(cancelEventName, format)
- $button.trigger('cancelChallenge')
-
- getChallengeOpts = ->
- return @ChallengePaneOpts
-
-
- disableButtons = ->
- $('.select').addClass('disabled')
- #$buttons.addClass('disabled')
-
- defaultformat = ->
- return @DEFAULT_FORMAT
-
- $button.on 'click.challenge', ->
- # Start requesting for notify permission here
- PokeBattle.requestNotifyPermission()
- options = getChallengeOpts()
- if options.SelectedFormat != null
- format = options.SelectedFormat
- else
- format = defaultformat()
- # Toggle state when you press the button.
- if !$button.hasClass('disabled')
- team = getSelectedTeam()
- unless team
- alert("You need to create a team using the Teambuilder before you can battle.")
- PokeBattle.navigation.showTeambuilder()
- return
- disableButtons()
- teamJSON = team.toNonNullJSON().pokemon
- # Send the event
- PokeBattle.primus.send($eventName, format, teamJSON, options.selectedAlt)
- $button.addClass('disabled').trigger('challenge')
- else
- cancelChallenge()
-
-
-@createChallengePaneNew = (opts) ->
- $wrapper = opts.populate
- $accept = opts.acceptButton || $()
- $reject = opts.rejectButton || $()
- generation = opts.generation
- getSelectedTeam = ->
- PokeBattle.TeamStore.get(@ChallengePaneOpts.SelectedTeamID) || PokeBattle.TeamStore.at(0)
-
- renderCurrentTeam = ($context) ->
- $selectTeam = $context.find('.select-team')
- if PokeBattle.TeamStore.length > 0
- currentTeam = getSelectedTeam()
- html = JST['team_dropdown'](window: window, team: currentTeam)
- $selectTeam.html(html)
- else
- $selectTeam.html("You have no teams!")
-
- disableButtons = ->
- $('.select').addClass('disabled')
-
- $wrapper.html(JST['new_battle']({window}))
- $selectFormat = $wrapper.find(".select-format")
-
- # Clicking the alts dropdown brings down an alt selection dropdown menu
- $wrapper.find('.select-alt').click (e) ->
- html = JST['alt_dropdown'](alts: PokeBattle.alts.list, username: PokeBattle.username)
- $wrapper.find('.alt-dropdown').html(html)
-
- setAlt = (altname) ->
- @ChallengePaneOpts.SelectedAlt = altname
-
- # Selecting an alt from the dropdown
- $wrapper.find('.alt-dropdown').on 'click', '.select-alt-dropdown-item', (e) ->
- setAlt($(this).data('alt-name'))
- $wrapper.find('.select-alt').html($(this).html())
-
- # When add alt is clicked, show the alt input form
- $wrapper.find('.alt-dropdown').on 'click', '.add-alt-dropdown-item', (e) ->
- toggleAltInput(true)
-
- # Clicking the Add Alt Button
- $wrapper.find('.alt-input .add-button').click (e) ->
- altName = $wrapper.find('.alt-input input').val().trim()
- PokeBattle.alts.createAlt(altName)
-
- # Clicking the Cancel Add Alt Button
- $wrapper.find('.alt-input .cancel-button').click (e) ->
- toggleAltInput(false)
-
- # Clicking the team dropdown brings down a team selection menu.
- # Also updates the allTeams collection
- $wrapper.find('.select-team').click (e) ->
- allTeams = PokeBattle.TeamStore.models || []
- html = JST['team_dropdown'](window: window, teams: allTeams)
- $wrapper.find('.team-dropdown').html(html)
-
- setTeam = (slot) ->
- @ChallengePaneOpts.SelectedTeamID = PokeBattle.TeamStore.at(slot).id
-
- # Selecting a team from the menu
- $wrapper.find('.team-dropdown').on 'click', '.select-team-dropdown-item', (e) ->
- slot = $(e.currentTarget).data('slot')
- setTeam(slot)
- renderCurrentTeam($wrapper)
-
- # Selecting build team from the menu
- $wrapper.find('.team-dropdown').on 'click', '.build-team-option', (e) ->
- PokeBattle.navigation.showTeambuilder()
-
- setFormat = (format) ->
- @ChallengePaneOpts.SelectedFormat = format
-
- # Selecting the format changes the dropdown.
- $wrapper.find('.format-dropdown').on 'click', '.select-format-dropdown-item', (e) ->
- $target = $(e.currentTarget)
- format = $target.data('format')
- $selectFormat.text($target.text())
- setFormat(format)
- $selectFormat.data('format', format)
-
- # Select non-alt option
- $wrapper.find('.select-alt').html(JST['alt_dropdown'](alt: null, username: PokeBattle.username))
-
- # Auto-select format.
- if generation
- # If a generation is passed, auto-select it.
- $format = $wrapper.find(".format-dropdown a[data-format='#{generation}']")
- $format.first().click()
- $wrapper.find('.select-format').addClass('disabled')
- else
- # Auto-select first available format.
- $wrapper.find('.format-dropdown a').first().click()
-
- isAttachedToDom = ->
- $.contains(document, $wrapper.get(0))
-
-
- renderCurrentTeam($wrapper)
-
- # Called when a team has been updated
- teamUpdated = ->
- # If this challenge panel no longer exists, remove the callback
- if not isAttachedToDom()
- PokeBattle.TeamStore.off 'add remove reset saved', teamUpdated
- return
-
- # Rerender the current team
- renderCurrentTeam($wrapper)
-
- # Start listening for team updated events
- PokeBattle.TeamStore.on 'add remove reset saved', teamUpdated
-
+# eventName should be one of "challenge" or "find battle"
+# opts may include whether to enable clauses, for example
+@challengePaneArray = []
+
+class @challengePaneObject
+ constructor: (@object) ->
+ @event = @object.eventName
+ @button = @object.button
+ @populate = @object.populate
+ @clauses = @object.defaultClauses
+ @blockedClauses = @object.blockedClauses
+
+@SelectedTeamID = null
+@SelectedFormat = null
+
+@ChallengePaneOpts =
+ SelectedTeamID : null
+ SelectedFormat : null
+ SelectedAlt : null
+
+@createChallengeButton = (opts) ->
+ $button = opts.button
+ $eventName = opts.eventName
+ $clauses = opts.clauses
+ capitalizedEventName = "#{$eventName[0].toUpperCase()}#{$eventName.substr(1)}"
+ acceptEventName = "accept#{capitalizedEventName}"
+ rejectEventName = "reject#{capitalizedEventName}"
+ cancelEventName = "cancel#{capitalizedEventName}"
+
+
+ getSelectedTeam = ->
+ PokeBattle.TeamStore.get(@ChallengePaneOpts.SelectedTeamID) || PokeBattle.TeamStore.at(0)
+
+ cancelChallenge = ->
+ #enableButtons()
+ format = getChallengeOpts().SelectedFormat
+ PokeBattle.primus.send(cancelEventName, format)
+ $button.trigger('cancelChallenge')
+
+ getChallengeOpts = ->
+ return @ChallengePaneOpts
+
+
+ disableButtons = ->
+ $('.select').addClass('disabled')
+ #$buttons.addClass('disabled')
+
+ defaultformat = ->
+ return @DEFAULT_FORMAT
+
+ $button.on 'click.challenge', ->
+ # Start requesting for notify permission here
+ PokeBattle.requestNotifyPermission()
+ options = getChallengeOpts()
+ if options.SelectedFormat != null
+ format = options.SelectedFormat
+ else
+ format = defaultformat()
+ # Toggle state when you press the button.
+ if !$button.hasClass('disabled')
+ team = getSelectedTeam()
+ unless team
+ alert("You need to create a team using the Teambuilder before you can battle.")
+ PokeBattle.navigation.showTeambuilder()
+ return
+ disableButtons()
+ teamJSON = team.toNonNullJSON().pokemon
+ # Send the event
+ PokeBattle.primus.send($eventName, format, teamJSON, options.selectedAlt)
+ $button.addClass('disabled').trigger('challenge')
+ else
+ cancelChallenge()
+
+
+@createChallengePaneNew = (opts) ->
+ $wrapper = opts.populate
+ $accept = opts.acceptButton || $()
+ $reject = opts.rejectButton || $()
+ generation = opts.generation
+ getSelectedTeam = ->
+ PokeBattle.TeamStore.get(@ChallengePaneOpts.SelectedTeamID) || PokeBattle.TeamStore.at(0)
+
+ renderCurrentTeam = ($context) ->
+ $selectTeam = $context.find('.select-team')
+ if PokeBattle.TeamStore.length > 0
+ currentTeam = getSelectedTeam()
+ html = JST['team_dropdown'](window: window, team: currentTeam)
+ $selectTeam.html(html)
+ else
+ $selectTeam.html("You have no teams!")
+
+ disableButtons = ->
+ $('.select').addClass('disabled')
+
+ $wrapper.html(JST['new_battle']({window}))
+ $selectFormat = $wrapper.find(".select-format")
+
+ # Clicking the alts dropdown brings down an alt selection dropdown menu
+ $wrapper.find('.select-alt').click (e) ->
+ html = JST['alt_dropdown'](alts: PokeBattle.alts.list, username: PokeBattle.username)
+ $wrapper.find('.alt-dropdown').html(html)
+
+ setAlt = (altname) ->
+ @ChallengePaneOpts.SelectedAlt = altname
+
+ # Selecting an alt from the dropdown
+ $wrapper.find('.alt-dropdown').on 'click', '.select-alt-dropdown-item', (e) ->
+ setAlt($(this).data('alt-name'))
+ $wrapper.find('.select-alt').html($(this).html())
+
+ # When add alt is clicked, show the alt input form
+ $wrapper.find('.alt-dropdown').on 'click', '.add-alt-dropdown-item', (e) ->
+ toggleAltInput(true)
+
+ # Clicking the Add Alt Button
+ $wrapper.find('.alt-input .add-button').click (e) ->
+ altName = $wrapper.find('.alt-input input').val().trim()
+ PokeBattle.alts.createAlt(altName)
+
+ # Clicking the Cancel Add Alt Button
+ $wrapper.find('.alt-input .cancel-button').click (e) ->
+ toggleAltInput(false)
+
+ # Clicking the team dropdown brings down a team selection menu.
+ # Also updates the allTeams collection
+ $wrapper.find('.select-team').click (e) ->
+ allTeams = PokeBattle.TeamStore.models || []
+ html = JST['team_dropdown'](window: window, teams: allTeams)
+ $wrapper.find('.team-dropdown').html(html)
+
+ setTeam = (slot) ->
+ @ChallengePaneOpts.SelectedTeamID = PokeBattle.TeamStore.at(slot).id
+
+ # Selecting a team from the menu
+ $wrapper.find('.team-dropdown').on 'click', '.select-team-dropdown-item', (e) ->
+ slot = $(e.currentTarget).data('slot')
+ setTeam(slot)
+ renderCurrentTeam($wrapper)
+
+ # Selecting build team from the menu
+ $wrapper.find('.team-dropdown').on 'click', '.build-team-option', (e) ->
+ PokeBattle.navigation.showTeambuilder()
+
+ setFormat = (format) ->
+ @ChallengePaneOpts.SelectedFormat = format
+
+ # Selecting the format changes the dropdown.
+ $wrapper.find('.format-dropdown').on 'click', '.select-format-dropdown-item', (e) ->
+ $target = $(e.currentTarget)
+ format = $target.data('format')
+ $selectFormat.text($target.text())
+ setFormat(format)
+ $selectFormat.data('format', format)
+
+ # Select non-alt option
+ $wrapper.find('.select-alt').html(JST['alt_dropdown'](alt: null, username: PokeBattle.username))
+
+ # Auto-select format.
+ if generation
+ # If a generation is passed, auto-select it.
+ $format = $wrapper.find(".format-dropdown a[data-format='#{generation}']")
+ $format.first().click()
+ $wrapper.find('.select-format').addClass('disabled')
+ else
+ # Auto-select first available format.
+ $wrapper.find('.format-dropdown a').first().click()
+
+ isAttachedToDom = ->
+ $.contains(document, $wrapper.get(0))
+
+
+ renderCurrentTeam($wrapper)
+
+ # Called when a team has been updated
+ teamUpdated = ->
+ # If this challenge panel no longer exists, remove the callback
+ if not isAttachedToDom()
+ PokeBattle.TeamStore.off 'add remove reset saved', teamUpdated
+ return
+
+ # Rerender the current team
+ renderCurrentTeam($wrapper)
+
+ # Start listening for team updated events
+ PokeBattle.TeamStore.on 'add remove reset saved', teamUpdated
+
@createChallengePane = (opts) ->
$wrapper = opts.populate
$button = opts.button
@@ -373,4 +373,4 @@ class @challengePaneObject
renderCurrentTeam($wrapper)
# Start listening for team updated events
- PokeBattle.TeamStore.on 'add remove reset saved', teamUpdated
+ PokeBattle.TeamStore.on 'add remove reset saved', teamUpdated
\ No newline at end of file
diff --git a/client/app/js/views/teambuilder/pokemon_edit_view.coffee b/client/app/js/views/teambuilder/pokemon_edit_view.coffee
index 20713e2..0f2c223 100644
--- a/client/app/js/views/teambuilder/pokemon_edit_view.coffee
+++ b/client/app/js/views/teambuilder/pokemon_edit_view.coffee
@@ -183,8 +183,12 @@ class @PokemonEditView extends Backbone.View
value = parseInt($input.val(), 10)
value = @generation.maxLevel if isNaN(value) || value > @generation.maxLevel
value = 1 if value < 1
- $input.val(value)
- @pokemon.set("level", value)
+ @changeLevel2(value)
+
+ changeLevel2: (level) =>
+ $levelBox = $(".selected_level")
+ $levelBox.val(level)
+ @pokemon.set("level", level)
changeIv: (e) =>
# todo: make changeIv and changeEv DRY
@@ -391,6 +395,7 @@ class @PokemonEditView extends Backbone.View
@renderStats()
@renderMoves()
@renderFormat()
+ @changeLevel2(@generation.maxLevel) if typeof @pokemon.get("level") == "undefined"
# Disable entering values if this is a NullPokemon
$elements = @$el.find("input, select").not(".species input, .species select")
diff --git a/client/views/new_battle.jade b/client/views/new_battle.jade
index 60b73f1..de8ee20 100644
--- a/client/views/new_battle.jade
+++ b/client/views/new_battle.jade
@@ -1,15 +1,3 @@
-p
- strong In-battle display name:
-.alt-input.clearfix.hidden
- .input-wrapper
- input(type="text")
- .buttons-wrapper
- button.button.add-button Add
- button.button.cancel-button Cancel
-.alt-dropdown-section.dropdown
- .select.select-alt(data-toggle="dropdown")
- ul.dropdown-menu.alt-dropdown(role = "menu")
-
p
strong Format:
.dropdown
diff --git a/public/js/app.js b/public/js/app.js
index fee5660..863baba 100644
--- a/public/js/app.js
+++ b/public/js/app.js
@@ -5496,6 +5496,7 @@
this.changeEv = __bind(this.changeEv, this);
this.focusEv = __bind(this.focusEv, this);
this.changeIv = __bind(this.changeIv, this);
+ this.changeLevel2 = __bind(this.changeLevel2, this);
this.changeLevel = __bind(this.changeLevel, this);
this.changeGender = __bind(this.changeGender, this);
this.changeItem = __bind(this.changeItem, this);
@@ -5750,8 +5751,14 @@
if (value < 1) {
value = 1;
}
- $input.val(value);
- return this.pokemon.set("level", value);
+ return this.changeLevel2(value);
+ };
+
+ PokemonEditView.prototype.changeLevel2 = function(level) {
+ var $levelBox;
+ $levelBox = $(".selected_level");
+ $levelBox.val(level);
+ return this.pokemon.set("level", level);
};
PokemonEditView.prototype.changeIv = function(e) {
@@ -6031,6 +6038,9 @@
this.renderStats();
this.renderMoves();
this.renderFormat();
+ if (typeof this.pokemon.get("level") === "undefined") {
+ this.changeLevel2(this.generation.maxLevel);
+ }
$elements = this.$el.find("input, select").not(".species input, .species select");
$elements.prop("disabled", this.pokemon.isNull);
setSelectizeDisabled($elements, this.pokemon.isNull);
diff --git a/public/js/templates.js b/public/js/templates.js
index bbdec8e..8a53582 100644
--- a/public/js/templates.js
+++ b/public/js/templates.js
@@ -626,7 +626,7 @@ buf.push("Chat
Format: