From f83c2724ab91c5573b7d3f586bdb6c17464f163f Mon Sep 17 00:00:00 2001 From: Carlos Fernandez <cfern1990@gmail.com> Date: Mon, 18 Aug 2014 15:28:40 -0700 Subject: [PATCH 01/11] Client: Some work related to the teambuilder These were done on a plane on a computer, so I didn't bother separating - Added Move description - Fixed team select dropdown not updating when last team is removed - Added "Build a Team" to dropdown - Highlight selected move rows --- client/app/css/teambuilder.styl | 12 +++++++-- client/app/js/helpers/challenge_pane.coffee | 13 +++++++--- client/app/js/models/battles/pokemon.coffee | 3 +++ .../teambuilder/pokemon_edit_view.coffee | 26 ++++++++++++++----- client/views/team_dropdown.jade | 10 ++++--- client/views/teambuilder/moves.jade | 4 +-- 6 files changed, 50 insertions(+), 18 deletions(-) diff --git a/client/app/css/teambuilder.styl b/client/app/css/teambuilder.styl index bc3c51eb..ce0e2a36 100644 --- a/client/app/css/teambuilder.styl +++ b/client/app/css/teambuilder.styl @@ -313,9 +313,8 @@ $pokemon-list-height = 50px opacity .8 font-weight bold -.teambuilder .table-moves +.table-moves border-collapse separate - margin-top 8px border solid 1px #DDD thead th background whitesmoke @@ -328,8 +327,17 @@ $pokemon-list-height = 50px background #f0f0f9 &:first-child text-decoration underline + &.selected td + background #f0f0f9 + &:first-child + font-weight bold img margin-bottom 3px + .name + white-space nowrap + +.teambuilder .table-moves + margin-top 8px .teambuilder .display_teams position absolute diff --git a/client/app/js/helpers/challenge_pane.coffee b/client/app/js/helpers/challenge_pane.coffee index 3cb7ad2e..d1680029 100644 --- a/client/app/js/helpers/challenge_pane.coffee +++ b/client/app/js/helpers/challenge_pane.coffee @@ -67,12 +67,14 @@ $wrapper.html(JST['new_battle']({window, defaultClauses})) $selectFormat = $wrapper.find(".select-format") + # Implement finding battle/challenging $button.on 'click.challenge', -> # Start requesting for notify permission here PokeBattle.requestNotifyPermission() format = $selectFormat.data('format') + # Toggle state when you press the button. if !$button.hasClass('disabled') team = getSelectedTeam() @@ -136,10 +138,9 @@ # 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 - if allTeams && allTeams.length > 0 - html = JST['team_dropdown'](window: window, teams: allTeams) - $wrapper.find('.team-dropdown').html(html) + allTeams = PokeBattle.TeamStore.models || [] + html = JST['team_dropdown'](window: window, teams: allTeams) + $wrapper.find('.team-dropdown').html(html) # Selecting a team from the menu $wrapper.find('.team-dropdown').on 'click', '.select-team-dropdown-item', (e) -> @@ -147,6 +148,10 @@ selectedTeamId = PokeBattle.TeamStore.at(slot).id renderCurrentTeam($wrapper) + # Selecting build team from the menu + $wrapper.find('.team-dropdown').on 'click', '.build-team-option', (e) -> + PokeBattle.navigation.showTeambuilder() + # Selecting the format changes the dropdown. $wrapper.find('.format-dropdown').on 'click', '.select-format-dropdown-item', (e) -> $target = $(e.currentTarget) diff --git a/client/app/js/models/battles/pokemon.coffee b/client/app/js/models/battles/pokemon.coffee index 8e1ce503..552fff24 100644 --- a/client/app/js/models/battles/pokemon.coffee +++ b/client/app/js/models/battles/pokemon.coffee @@ -120,6 +120,9 @@ class @Pokemon extends Backbone.Model genders.push("M", "F") genders + hasSelectedMove: (moveName) -> + moveName && moveName in @moves + getMovepool: -> {SpeciesData, MoveData} = @getGeneration() generation = GENERATION_TO_INT[@collection?.generation || DEFAULT_GENERATION] diff --git a/client/app/js/views/teambuilder/pokemon_edit_view.coffee b/client/app/js/views/teambuilder/pokemon_edit_view.coffee index 3ad8d595..c40fea68 100644 --- a/client/app/js/views/teambuilder/pokemon_edit_view.coffee +++ b/client/app/js/views/teambuilder/pokemon_edit_view.coffee @@ -180,6 +180,8 @@ class @PokemonEditView extends Backbone.View blurMoves: (e) => $input = $(e.currentTarget) + + # If preventBlur is set, then perform a refocus (undo the blur) if @_preventBlur previousScrollPosition = @$el.scrollTop() $input.focus() @@ -192,7 +194,7 @@ class @PokemonEditView extends Backbone.View # Remove filtering and row selection @filterMovesBy("") - $(".table-moves .active").removeClass("active") + @$(".table-moves .active").removeClass("active") if $input.val().length == 0 @recordMoves() @@ -222,14 +224,19 @@ class @PokemonEditView extends Backbone.View @$el.scrollTop(0) @recordMoves() - recordMoves: => + # Returns the moves currently selected in the teambuilder (Not the Pokemon) + getSelectedMoves: => movesArray = [] $moves = @$el.find('.selected_moves') $moves.find('.move-button').each -> moveName = $(this).find("span").text().trim() if moveName != "" movesArray.push(moveName) - @pokemon.set("moves", movesArray) + movesArray + + recordMoves: => + @updateSelectedMoveStyles() + @pokemon.set("moves", @getSelectedMoves()) $selectedMove: => $table = @$el.find('.table-moves') @@ -256,11 +263,11 @@ class @PokemonEditView extends Backbone.View buttonify: ($input, moveName) => return false if moveName not of @moveData - # The blur event may have been cancelled, so when removing the input also - # remove the filter + # The blur event may have been prevented by preventBlurMoves + # so when removing the input also remove the filter if $input.is(":focus") @filterMovesBy("") - $(".table-moves .active").removeClass("active") + @$(".table-moves .active").removeClass("active") type = @moveData[moveName].type.toLowerCase() $input.replaceWith(""" @@ -445,3 +452,10 @@ class @PokemonEditView extends Backbone.View $this = $(el) moveName = $this.val() @buttonify($this, moveName) + + @updateSelectedMoveStyles() + + updateSelectedMoveStyles: => + @$(".table-moves .selected").removeClass("selected") + for move in @getSelectedMoves() + @$(".table-moves tr[data-move-id='#{move}']").addClass("selected") \ No newline at end of file diff --git a/client/views/team_dropdown.jade b/client/views/team_dropdown.jade index 54815db9..939d00ad 100644 --- a/client/views/team_dropdown.jade +++ b/client/views/team_dropdown.jade @@ -1,9 +1,11 @@ -if teams +if team + div= team.getName() + != window.JST['team_small']({team: team, window: window}) +else each team, i in teams li a.select-team-dropdown-item(data-slot = i) div= team.getName() != window.JST['team_small']({team: team, window: window}) -else - div= team.getName() - != window.JST['team_small']({team: team, window: window}) + li + a.build-team-option Build a Team diff --git a/client/views/teambuilder/moves.jade b/client/views/teambuilder/moves.jade index 4f7df0a0..71b3eee2 100644 --- a/client/views/teambuilder/moves.jade +++ b/client/views/teambuilder/moves.jade @@ -27,7 +27,7 @@ table.table.table-hover.table-moves tbody each move in pokemon.getMovepool() tr(data-move-id=move.name, data-move-search-id=move.name.replace(/\s+|-/g, "")) - td= move.name + td.name= move.name td img(src=window.TypeSprite(move.type), alt=move.type) td @@ -36,4 +36,4 @@ table.table.table-hover.table-moves td= (move.power == 0) ? "-" : move.power td.acc= (move.accuracy == 0) ? "-" : move.accuracy + '%' td.pp= move.pp - td.description Description will go here + td.description= move.description From 1a0f6c9e64bccab07cdd524e935b139f4e747f0c Mon Sep 17 00:00:00 2001 From: Carlos Fernandez <cfern1990@gmail.com> Date: Wed, 20 Aug 2014 17:34:39 -0400 Subject: [PATCH 02/11] Teambuilder: Minor refactor - introduced reverseButtonify --- .../teambuilder/pokemon_edit_view.coffee | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/client/app/js/views/teambuilder/pokemon_edit_view.coffee b/client/app/js/views/teambuilder/pokemon_edit_view.coffee index c40fea68..95fc3886 100644 --- a/client/app/js/views/teambuilder/pokemon_edit_view.coffee +++ b/client/app/js/views/teambuilder/pokemon_edit_view.coffee @@ -245,26 +245,22 @@ class @PokemonEditView extends Backbone.View clickSelectedMove: (e) => $this = $(e.currentTarget) - moveName = $this.find('span').text() - $input = $("<input type='text' value='#{moveName}'/>") - $this.replaceWith($input) - $input.focus().select() + moveName = @reverseButtonify($this).focus().select().val() # Set the current move row to active $(".table-moves tr[data-move-id='#{moveName}']").addClass("active") removeSelectedMove: (e) => $this = $(e.currentTarget).parent() - $input = $("<input type='text'/>") - $this.replaceWith($input) - $input.focus() + @reverseButtonify($this).val('').focus() e.stopPropagation() buttonify: ($input, moveName) => return false if moveName not of @moveData - # The blur event may have been prevented by preventBlurMoves - # so when removing the input also remove the filter + # When removing the input also remove the filter + # Normally this is done by blurMoves, + # but the blur event may have been prevented by preventBlurMoves if $input.is(":focus") @filterMovesBy("") @$(".table-moves .active").removeClass("active") @@ -275,6 +271,12 @@ class @PokemonEditView extends Backbone.View """) return true + reverseButtonify: ($button) => + moveName = $button.find('span').text() + $input = $("<input type='text' value='#{moveName}'/>") + $button.replaceWith($input) + $input + keydownMoves: (e) => $input = $(e.currentTarget) $table = @$el.find('.table-moves') From a50780e964081c5c18003e3adfc74764023eb6b1 Mon Sep 17 00:00:00 2001 From: Carlos Fernandez <cfern1990@gmail.com> Date: Wed, 20 Aug 2014 17:53:00 -0400 Subject: [PATCH 03/11] Teambuilder: Update selected moves style based on buttonify --- client/app/js/views/teambuilder/pokemon_edit_view.coffee | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/client/app/js/views/teambuilder/pokemon_edit_view.coffee b/client/app/js/views/teambuilder/pokemon_edit_view.coffee index 95fc3886..509c4aa3 100644 --- a/client/app/js/views/teambuilder/pokemon_edit_view.coffee +++ b/client/app/js/views/teambuilder/pokemon_edit_view.coffee @@ -235,7 +235,6 @@ class @PokemonEditView extends Backbone.View movesArray recordMoves: => - @updateSelectedMoveStyles() @pokemon.set("moves", @getSelectedMoves()) $selectedMove: => @@ -269,12 +268,16 @@ class @PokemonEditView extends Backbone.View $input.replaceWith(""" <div class="button move-button #{type}"><span>#{moveName}</span><div class='close'>×</div></div> """) + + @updateSelectedMoveStyles() + return true reverseButtonify: ($button) => moveName = $button.find('span').text() $input = $("<input type='text' value='#{moveName}'/>") $button.replaceWith($input) + @updateSelectedMoveStyles() $input keydownMoves: (e) => @@ -455,8 +458,6 @@ class @PokemonEditView extends Backbone.View moveName = $this.val() @buttonify($this, moveName) - @updateSelectedMoveStyles() - updateSelectedMoveStyles: => @$(".table-moves .selected").removeClass("selected") for move in @getSelectedMoves() From 71e16253bf7b040302bc45cd0f9f12bbae1c8f00 Mon Sep 17 00:00:00 2001 From: Carlos Fernandez <cfern1990@gmail.com> Date: Sat, 23 Aug 2014 20:12:41 -0400 Subject: [PATCH 04/11] Teambuilder: Mega Forme dropdown for attaching the item --- client/app/js/models/battles/pokemon.coffee | 13 +++++++++++++ .../views/teambuilder/pokemon_edit_view.coffee | 18 ++++++++++++++++++ client/views/teambuilder/species.jade | 11 +++++++++++ 3 files changed, 42 insertions(+) diff --git a/client/app/js/models/battles/pokemon.coffee b/client/app/js/models/battles/pokemon.coffee index 552fff24..8118ac43 100644 --- a/client/app/js/models/battles/pokemon.coffee +++ b/client/app/js/models/battles/pokemon.coffee @@ -100,6 +100,10 @@ class @Pokemon extends Backbone.Model getSelectableFormes: -> _(@getFormes()).reject((forme) => @getForme(forme).isBattleOnly) + # Returns all mega formes + getMegaFormes: -> + _(@getFormes()).reject((forme) => forme.indexOf('mega') != 0) + getAbilities: -> forme = @getForme() abilities = _.clone(forme.abilities) @@ -233,12 +237,21 @@ class @Pokemon extends Backbone.Model "Healthy" canMegaEvolve: -> + # TODO: Refactor this to use getPossibleMegaForme() + # I didn't feel like making the change and testing it while implementing getPossibleMegaForme() item = @getItem() return false if item.type != 'megastone' [ species, forme ] = item.mega return false if @get('species') != species || @get('forme') != 'default' return true + getPossibleMegaForme: -> + item = @getItem() + return null if item?.type != 'megastone' + [ species, forme ] = item.mega + return forme if @get('species') == species && @get('forme') == 'default' + return null + # Returns the complete web address to the pokedex link for this pokemon. # For this project, this leads to our website at http://www.pokebattle.com, # but if you want it to lead somewhere else, edit this function. diff --git a/client/app/js/views/teambuilder/pokemon_edit_view.coffee b/client/app/js/views/teambuilder/pokemon_edit_view.coffee index 509c4aa3..752c8523 100644 --- a/client/app/js/views/teambuilder/pokemon_edit_view.coffee +++ b/client/app/js/views/teambuilder/pokemon_edit_view.coffee @@ -33,6 +33,7 @@ class @PokemonEditView extends Backbone.View 'click .selected_shininess': 'changeShiny' 'click .selected_happiness': 'changeHappiness' 'change .selected-forme': 'changeForme' + 'change .selected-mega': 'changeMega' 'change .selected_nature': 'changeNature' 'change .selected_ability': 'changeAbility' 'change .selected_item': 'changeItem' @@ -114,6 +115,23 @@ class @PokemonEditView extends Backbone.View # Forme changes may have different abilities, so we have to change this. @pokemon.set('ability', @pokemon.getAbilities()[0]) + changeMega: (e) => + mega = $(e.currentTarget).val() + if mega + for itemName, data of @generation.ItemData + if data.mega && data.mega[0] == @pokemon.get('species') && data.mega[1] == mega + @pokemon.set('item', itemName) + console.log(itemName) + break + else + # Converting to non-mega. Remove the megastone if any + item = @generation.ItemData[@pokemon.get('item')] + if item?.mega?[0] == @pokemon.get('species') + @pokemon.set('item', null) + + # update the item dropdown (note: somewhat inefficient as it updates multiple dropdowns) + @renderNonStats() + changeNature: (e) => $list = $(e.currentTarget) @pokemon.set("nature", $list.val()) diff --git a/client/views/teambuilder/species.jade b/client/views/teambuilder/species.jade index a29497f2..d8298c8b 100644 --- a/client/views/teambuilder/species.jade +++ b/client/views/teambuilder/species.jade @@ -18,3 +18,14 @@ if formes.length > 1 - var displayedForme = forme[0].toUpperCase() + forme.substr(1) - var selected = (forme === pokemon.get('forme')) option(value=forme, selected=selected)= displayedForme + +- var megaFormes = pokemon.getMegaFormes() +if megaFormes.length > 0 + .teambuilder_row + .teambuilder_col Mega Forme: + select.teambuilder_col.selected-mega + option(value="", selected=(pokemon.getPossibleMegaForme() == null)) None + each forme in megaFormes + - var displayedForme = forme[0].toUpperCase() + forme.substr(1) + - var selected = (forme === pokemon.getPossibleMegaForme()) + option(value=forme, selected=selected)= displayedForme \ No newline at end of file From adbccc6ac671fe456c1622a7846eb4ea021465bc Mon Sep 17 00:00:00 2001 From: Carlos Fernandez <cfern1990@gmail.com> Date: Mon, 25 Aug 2014 18:37:41 -0400 Subject: [PATCH 05/11] Teambuilder: Re-implement EV locking. --- .../views/teambuilder/pokemon_edit_view.coffee | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/client/app/js/views/teambuilder/pokemon_edit_view.coffee b/client/app/js/views/teambuilder/pokemon_edit_view.coffee index 752c8523..f7538e71 100644 --- a/client/app/js/views/teambuilder/pokemon_edit_view.coffee +++ b/client/app/js/views/teambuilder/pokemon_edit_view.coffee @@ -43,7 +43,8 @@ class @PokemonEditView extends Backbone.View 'focus .ev-entry': 'focusEv' 'blur .ev-entry': 'changeEv' 'change .ev-entry': 'changeEv' - 'input .ev-entry[type=range]': 'changeEv' # fix for firefox + 'input .ev-entry[type=range]': 'changeEv' + 'mouseup .ev-entry[type=range]': 'mouseupEVSlider' 'change .select-hidden-power': 'changeHiddenPower' 'keydown .selected_moves input': 'keydownMoves' 'blur .selected_moves input': 'blurMoves' @@ -87,6 +88,10 @@ class @PokemonEditView extends Backbone.View setTeamPBV: (pbv) => @teamPBV = pbv + # Returns true if Evs are locked to 510 maximum + isEVLocked: => + true + changeSpecies: (e) => return if not @onPokemonChange species = $(e.currentTarget).val() @@ -180,9 +185,18 @@ class @PokemonEditView extends Backbone.View value = 252 if value > 252 value = 0 if isNaN(value) || value < 0 + if @isEVLocked() + availableEVs = 510 - @pokemon.getTotalEVs(exclude: stat) + value = availableEVs if value > availableEVs + value = @pokemon.setEv(stat, value) $input.val(value) if not $input.is("[type=range]") + mouseupEVSlider: (e) => + $slider = $(e.currentTarget) + $input = @$(".ev-entry[data-stat=#{$slider.data('stat')}]").not($slider) + $slider.val $input.val() + changeHiddenPower: (e) => $input = $(e.currentTarget) type = $input.val() From 74bfad03c32b27e7645e392ec703c2cdfcf3b087 Mon Sep 17 00:00:00 2001 From: Carlos Fernandez <cfern1990@gmail.com> Date: Mon, 25 Aug 2014 19:50:08 -0400 Subject: [PATCH 06/11] Teambuilder: Implement EV lock toggling --- .../app/js/views/teambuilder/pokemon_edit_view.coffee | 10 +++++++--- client/views/teambuilder/pokemon.jade | 3 +++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/client/app/js/views/teambuilder/pokemon_edit_view.coffee b/client/app/js/views/teambuilder/pokemon_edit_view.coffee index f7538e71..e2b89bbf 100644 --- a/client/app/js/views/teambuilder/pokemon_edit_view.coffee +++ b/client/app/js/views/teambuilder/pokemon_edit_view.coffee @@ -45,6 +45,7 @@ class @PokemonEditView extends Backbone.View 'change .ev-entry': 'changeEv' 'input .ev-entry[type=range]': 'changeEv' 'mouseup .ev-entry[type=range]': 'mouseupEVSlider' + 'click .ev-lock': 'toggleEVLocked' 'change .select-hidden-power': 'changeHiddenPower' 'keydown .selected_moves input': 'keydownMoves' 'blur .selected_moves input': 'blurMoves' @@ -90,7 +91,10 @@ class @PokemonEditView extends Backbone.View # Returns true if Evs are locked to 510 maximum isEVLocked: => - true + $('.ev-lock span:visible').data('locked') + + toggleEVLocked: => + $('.ev-lock span').toggle() changeSpecies: (e) => return if not @onPokemonChange @@ -178,17 +182,17 @@ class @PokemonEditView extends Backbone.View $input.val("") if value == 0 changeEv: (e) => - # todo: make changeIv and changeEv DRY $input = $(e.currentTarget) stat = $input.data("stat") value = parseInt($input.val(), 10) + value = 0 if isNaN(value) value = 252 if value > 252 - value = 0 if isNaN(value) || value < 0 if @isEVLocked() availableEVs = 510 - @pokemon.getTotalEVs(exclude: stat) value = availableEVs if value > availableEVs + value = 0 if value < 0 value = @pokemon.setEv(stat, value) $input.val(value) if not $input.is("[type=range]") diff --git a/client/views/teambuilder/pokemon.jade b/client/views/teambuilder/pokemon.jade index 976d9ce2..3a2b8256 100644 --- a/client/views/teambuilder/pokemon.jade +++ b/client/views/teambuilder/pokemon.jade @@ -75,6 +75,9 @@ mixin printStat(statName, keyName) +printStat("Speed", "speed") tr td + .ev-lock + span(data-locked='false').hidden Unlocked + span(data-locked='true') Locked td(colspan="5") .remaining-evs | Remaining EVs: From afa1201fdf6876f785fa9f17c9ed6c11e60d797f Mon Sep 17 00:00:00 2001 From: Carlos Fernandez <cfern1990@gmail.com> Date: Tue, 26 Aug 2014 21:42:33 -0400 Subject: [PATCH 07/11] Added lock/unlock icons, used for EV lock --- client/app/css/teambuilder.styl | 7 +++ client/vendor/css/icomoon.css | 22 +++++--- client/views/teambuilder/pokemon.jade | 4 +- icomoon-selection.json | 78 +++++++++++++++++--------- public/fonts/icomoon.eot | Bin 4144 -> 4956 bytes public/fonts/icomoon.svg | 42 +++++++------- public/fonts/icomoon.ttf | Bin 3980 -> 4792 bytes public/fonts/icomoon.woff | Bin 3204 -> 3328 bytes 8 files changed, 97 insertions(+), 56 deletions(-) diff --git a/client/app/css/teambuilder.styl b/client/app/css/teambuilder.styl index ce0e2a36..5dc709f0 100644 --- a/client/app/css/teambuilder.styl +++ b/client/app/css/teambuilder.styl @@ -256,6 +256,13 @@ $pokemon-list-height = 50px .hidden-power float right + .ev-lock + cursor pointer + .icon-lock + color #444 + .icon-unlocked + color #888 + .remaining-evs-amount.over-limit color $negative-color font-weight bold diff --git a/client/vendor/css/icomoon.css b/client/vendor/css/icomoon.css index 86eb8f29..9080d390 100644 --- a/client/vendor/css/icomoon.css +++ b/client/vendor/css/icomoon.css @@ -1,12 +1,12 @@ @font-face { - font-family: 'icomoon'; - src:url('../fonts/icomoon.eot'); - src:url('../fonts/icomoon.eot?#iefix') format('embedded-opentype'), - url('../fonts/icomoon.ttf') format('truetype'), - url('../fonts/icomoon.woff') format('woff'), - url('../fonts/icomoon.svg#icomoon') format('svg'); - font-weight: normal; - font-style: normal; + font-family: 'icomoon'; + src:url('../fonts/icomoon.eot?-lv7lfm'); + src:url('../fonts/icomoon.eot?#iefix-lv7lfm') format('embedded-opentype'), + url('../fonts/icomoon.woff?-lv7lfm') format('woff'), + url('../fonts/icomoon.ttf?-lv7lfm') format('truetype'), + url('../fonts/icomoon.svg?-lv7lfm#icomoon') format('svg'); + font-weight: normal; + font-style: normal; } [class^="icon-"], [class*=" icon-"] { @@ -24,6 +24,12 @@ -moz-osx-font-smoothing: grayscale; } +.icon-lock:before { + content: "\e60e"; +} +.icon-unlocked:before { + content: "\e60f"; +} .icon-home:before { content: "\e600"; } diff --git a/client/views/teambuilder/pokemon.jade b/client/views/teambuilder/pokemon.jade index 3a2b8256..dd8ee4e3 100644 --- a/client/views/teambuilder/pokemon.jade +++ b/client/views/teambuilder/pokemon.jade @@ -76,8 +76,8 @@ mixin printStat(statName, keyName) tr td .ev-lock - span(data-locked='false').hidden Unlocked - span(data-locked='true') Locked + span(data-locked='true').icon-lock + span(data-locked='false').icon-unlocked.hidden td(colspan="5") .remaining-evs | Remaining EVs: diff --git a/icomoon-selection.json b/icomoon-selection.json index 2ffb9fb5..385d1928 100644 --- a/icomoon-selection.json +++ b/icomoon-selection.json @@ -1,6 +1,52 @@ { "IcoMoonType": "selection", "icons": [ + { + "icon": { + "paths": [ + "M592 448h-16v-192c0-105.87-86.13-192-192-192h-128c-105.87 0-192 86.13-192 192v192h-16c-26.4 0-48 21.6-48 48v480c0 26.4 21.6 48 48 48h544c26.4 0 48-21.6 48-48v-480c0-26.4-21.6-48-48-48zM384 896h-128l27.84-139.2c-16.808-11.532-27.84-30.874-27.84-52.8 0-35.346 28.654-64 64-64 35.346 0 64 28.654 64 64 0 21.926-11.032 41.268-27.84 52.8l27.84 139.2zM448 448h-256v-192c0-35.29 28.71-64 64-64h128c35.29 0 64 28.71 64 64v192z" + ], + "tags": [ + "lock", + "secure", + "private", + "encrypted" + ], + "grid": 16 + }, + "properties": { + "id": 137, + "order": 2, + "prevSize": 32, + "code": 58894, + "name": "lock", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 137 + }, + { + "icon": { + "paths": [ + "M768 64h-128c-105.87 0-192 86.13-192 192v192h-400c-26.4 0-48 21.6-48 48v480c0 26.4 21.6 48 48 48h544c26.4 0 48-21.6 48-48v-480c0-26.4-21.6-48-48-48h-16v-192c0-35.29 28.71-64 64-64h128c35.29 0 64 28.71 64 64v192h128v-192c0-105.87-86.13-192-192-192zM384 896h-128l27.84-139.2c-16.808-11.532-27.84-30.874-27.84-52.8 0-35.346 28.654-64 64-64 35.346 0 64 28.654 64 64 0 21.926-11.032 41.268-27.84 52.8l27.84 139.2z" + ], + "tags": [ + "unlocked", + "lock" + ], + "grid": 16 + }, + "properties": { + "id": 138, + "order": 1, + "prevSize": 32, + "code": 58895, + "name": "unlocked", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 138 + }, { "icon": { "paths": [ @@ -400,42 +446,22 @@ "name": "icomoon" }, "preferences": { + "showGlyphs": true, + "showQuickUse": true, "fontPref": { "prefix": "icon-", "metadata": { "fontFamily": "icomoon" }, - "showGlyphs": true, "metrics": { - "emSize": 1024, + "emSize": 512, "baseline": 6.25, "whitespace": 50 - }, - "resetPoint": 58880, - "showQuickUse": true, - "quickUsageToken": false, - "showMetrics": true, - "showMetadata": false, - "autoHost": true - }, - "imagePref": { - "color": 0, - "height": 32, - "columns": 16, - "margin": 16, - "png": false, - "sprites": true + } }, + "imagePref": {}, "historySize": 100, "showCodes": true, - "gridSize": 16, - "showLiga": false, - "showGrid": true, - "showGlyphs": true, - "showQuickUse": true, - "search": "", - "quickUsageToken": { - "UntitledProject1": "NDU4Yzk3NTA5NzFlOTk2YzgyMDViMDY1ZTlkM2FhNjcjMiMxNDAwNTgyMTM2IyMj" - } + "search": "" } } \ No newline at end of file diff --git a/public/fonts/icomoon.eot b/public/fonts/icomoon.eot index 14a147eff20caea3beaaa619791e1e3f112dbe44..c1cf462ac3a2cf5b0a113d192367cd3169506aa0 100644 GIT binary patch literal 4956 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 K-+3gkd;2dn`DJtf literal 4144 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 diff --git a/public/fonts/icomoon.svg b/public/fonts/icomoon.svg index b85c686f..a152b8a4 100644 --- a/public/fonts/icomoon.svg +++ b/public/fonts/icomoon.svg @@ -3,24 +3,26 @@ <svg xmlns="http://www.w3.org/2000/svg"> <metadata>Generated by IcoMoon</metadata> <defs> -<font id="icomoon" horiz-adv-x="1024"> -<font-face units-per-em="1024" ascent="960" descent="-64" /> -<missing-glyph horiz-adv-x="1024" /> -<glyph unicode=" " d="" horiz-adv-x="512" /> -<glyph unicode="" d="M1024 352l-192 192v288h-128v-160l-192 192-512-512v-32h128v-320h320v192h128v-192h320v320h128z" /> -<glyph unicode="" d="M384 320l128 64 448 448-64 64-448-448-64-128zM289.3 92.902c-31.632 66.728-65.666 100.762-132.396 132.394l99.096 272.792 128 77.912 384 384h-192l-384-384-192-640 640 192 384 384v192l-384-384-77.912-128z" /> -<glyph unicode="" d="M64 768h896v-192h-896zM64 512h896v-192h-896zM64 256h896v-192h-896z" /> -<glyph unicode="" d="M874.040 810.038c96.702-96.704 149.96-225.28 149.96-362.040s-53.258-265.334-149.96-362.038c-96.706-96.702-225.28-149.96-362.040-149.96-136.76 0-265.334 53.258-362.040 149.96-96.702 96.704-149.96 225.278-149.96 362.038 0 136.76 53.254 265.336 149.96 362.040 96.706 96.704 225.28 149.962 362.040 149.962 136.76 0 265.334-53.258 362.040-149.962zM828.784 131.214c63.058 63.060 104.986 141.608 122.272 227.062-13.474-19.836-26.362-27.194-34.344 17.206-8.22 72.39-74.708 26.148-116.516 51.86-44.004-29.658-142.906 57.662-126.098-40.824 25.934-44.422 140.008 59.45 83.148-34.542-36.274-65.616-132.642-210.932-120.106-286.258 1.582-109.744-112.134-22.884-151.314 13.52-26.356 72.92-8.982 200.374-77.898 236.086-74.802 3.248-139.004 10.046-167.994 93.67-17.446 59.828 18.564 148.894 82.678 162.644 93.85 58.966 127.374-69.054 215.39-71.434 27.328 28.594 101.816 37.686 107.992 69.75-57.75 10.19 73.268 48.558-5.528 70.382-43.47-5.112-71.478-45.074-48.368-78.958-84.238-19.642-86.936 121.904-167.91 77.258-2.058-70.59-132.222-22.886-45.036-8.572 29.956 13.088-48.86 51.016-6.28 44.124 20.916 1.136 91.332 25.812 72.276 42.402 39.21 24.34 72.16-58.29 110.538 1.882 27.708 46.266-11.62 54.808-46.35 31.356-19.58 21.924 34.57 69.276 82.332 89.738 15.918 6.82 31.122 10.536 42.746 9.484 24.058-27.792 68.55-32.606 70.878 3.342-59.582 28.534-125.276 43.608-193.292 43.608-97.622 0-190.47-31.024-267.308-88.39 20.65-9.46 32.372-21.238 12.478-36.296-15.456-46.054-78.17-107.876-133.224-99.124-28.586-49.296-47.412-103.606-55.46-160.528 46.112-15.256 56.744-45.45 46.836-55.55-23.496-20.488-37.936-49.53-45.376-81.322 15.010-91.836 58.172-176.476 125.27-243.576 84.616-84.614 197.118-131.214 316.784-131.214 119.664 0 232.168 46.6 316.784 131.214z" /> -<glyph unicode="" d="M839.322 663.584c77.644-55.030 141.37-129.092 184.678-215.584-95.122-189.958-288.686-320-512-320-62.566 0-122.792 10.212-179.178 29.084l77.956 77.956c33.058-7.3 66.972-11.040 101.222-11.040 89.558 0 176.854 25.486 252.446 73.704 60.162 38.376 111.144 89.776 149.436 150.298-37.052 58.566-86.014 108.55-143.65 146.494l69.090 69.088zM512 262c-22.724 0-44.752 2.976-65.728 8.534l313.186 313.184c5.562-20.972 8.542-42.994 8.542-65.718 0-141.384-114.616-256-256-256zM960 960h-53.738l-219.612-219.612c-55.076 17.924-113.754 27.612-174.65 27.612-223.318 0-416.882-130.042-512-320 42.658-85.192 105.128-158.308 181.194-213.068l-181.194-181.194v-53.738h53.738l906.262 906.262v53.738zM416 646c48.044 0 87.846-35.294 94.892-81.37l-109.524-109.524c-46.074 7.048-81.368 46.85-81.368 94.894 0 53.020 42.98 96 96 96zM110.116 448c38.292 60.524 89.274 111.924 149.434 150.296 3.918 2.5 7.876 4.922 11.858 7.3-9.958-27.328-15.408-56.822-15.408-87.596 0-58.524 19.65-112.448 52.698-155.562l-58.55-58.55c-56.072 37.642-103.754 86.772-140.032 144.112z" /> -<glyph unicode="" d="M1024 601.844c0-86.362-37.218-164.030-96.49-217.844h0.49l-320-320c-32-32-64-64-96-64s-64 32-96 64l-319.51 320c-59.272 53.814-96.49 131.482-96.49 217.844 0 162.458 131.698 294.156 294.156 294.156 86.362 0 164.030-37.218 217.844-96.49 53.814 59.272 131.482 96.49 217.844 96.49 162.456 0 294.156-131.698 294.156-294.156z" /> -<glyph unicode="" d="M1024 601.844c0-86.362-37.218-164.030-96.49-217.844h0.49l-320-320c-32-32-64-64-96-64s-64 32-96 64l-319.51 320c-59.272 53.814-96.49 131.482-96.49 217.844 0 162.458 131.698 294.156 294.156 294.156 55.45 0 107.302-15.364 151.572-42.036l-93.728-149.964 224-128-128-320 352 384-224 128 78.892 118.34c23.932 6.288 49.046 9.66 74.952 9.66 162.456 0 294.156-131.698 294.156-294.156z" /> -<glyph unicode="" d="M832 704h-192v64l-192 192h-448v-768h384v-256h640v576l-192 192zM832 613.49l101.49-101.49h-101.49v101.49zM448 869.49l101.49-101.49h-101.49v101.49zM64 896h320v-192h192v-448h-512v640zM960 0h-512v192h192v448h128v-192h192v-448z" /> -<glyph unicode="" d="M448 384h128v256h192l-256 256-256-256h192zM640 528v-98.712l293.066-109.288-421.066-157.018-421.066 157.018 293.066 109.288v98.712l-384-144v-256l512-192 512 192v256z" /> -<glyph unicode="" d="M992.262 88.604l-242.552 206.294c-25.074 22.566-51.89 32.926-73.552 31.926 57.256 67.068 91.842 154.078 91.842 249.176 0 212.078-171.922 384-384 384-212.076 0-384-171.922-384-384 0-212.078 171.922-384 384-384 95.098 0 182.108 34.586 249.176 91.844-1-21.662 9.36-48.478 31.926-73.552l206.294-242.552c35.322-39.246 93.022-42.554 128.22-7.356s31.892 92.898-7.354 128.22zM384 320c-141.384 0-256 114.616-256 256s114.616 256 256 256 256-114.616 256-256-114.614-256-256-256z" /> -<glyph unicode="" d="M800 832h-576c-53.020 0-96-42.98-96-96v-32h768v32c0 53.020-42.98 96-96 96zM632.32 896l14.116-101h-268.872l14.114 101h240.642zM640 960h-256c-26.4 0-50.99-21.392-54.642-47.538l-18.714-133.924c-3.654-26.146 14.956-47.538 41.356-47.538h320c26.4 0 45.010 21.392 41.358 47.538l-18.714 133.924c-3.654 26.146-28.244 47.538-54.644 47.538v0zM816 640h-608c-35.2 0-61.392-28.682-58.206-63.738l52.412-576.526c3.186-35.054 34.594-63.736 69.794-63.736h480c35.2 0 66.608 28.682 69.794 63.736l52.41 576.526c3.188 35.056-23.004 63.738-58.204 63.738zM384 64h-96l-32 448h128v-448zM576 64h-128v448h128v-448zM736 64h-96v448h128l-32-448z" /> -<glyph unicode="" d="M512 864c-111.118 0-215.584-43.272-294.156-121.844s-121.844-183.038-121.844-294.156c0-111.118 43.272-215.584 121.844-294.156 78.572-78.572 183.038-121.844 294.156-121.844 111.118 0 215.584 43.272 294.156 121.844 78.572 78.572 121.844 183.038 121.844 294.156 0 111.118-43.272 215.584-121.844 294.156-78.572 78.572-183.038 121.844-294.156 121.844zM512 960v0c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512 0 282.77 229.23 512 512 512zM448 256h128v-128h-128zM448 768h128v-384h-128z" /> -<glyph unicode="" d="M512 960c-278.748 0-505.458-222.762-511.848-499.974 5.92 241.864 189.832 435.974 415.848 435.974 229.75 0 416-200.576 416-448 0-53.020 42.98-96 96-96 53.020 0 96 42.98 96 96 0 282.77-229.23 512-512 512zM512-64c278.748 0 505.458 222.762 511.848 499.974-5.92-241.864-189.832-435.974-415.848-435.974-229.75 0-416 200.576-416 448 0 53.020-42.98 96-96 96-53.020 0-96-42.98-96-96 0-282.77 229.23-512 512-512z" /> -<glyph unicode="" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM416 128l-212 276 94 98 118-150 370 302 46-46-416-480z" /> -<glyph unicode="" d="M1014.662 137.34c-0.004 0.004-0.008 0.008-0.012 0.010l-310.644 310.65 310.644 310.65c0.004 0.004 0.008 0.006 0.012 0.010 3.344 3.346 5.762 7.254 7.312 11.416 4.246 11.376 1.824 24.682-7.324 33.83l-146.746 146.746c-9.148 9.146-22.45 11.566-33.828 7.32-4.16-1.55-8.070-3.968-11.418-7.31 0-0.004-0.004-0.006-0.008-0.010l-310.648-310.652-310.648 310.65c-0.004 0.004-0.006 0.006-0.010 0.010-3.346 3.342-7.254 5.76-11.414 7.31-11.38 4.248-24.682 1.826-33.83-7.32l-146.748-146.748c-9.148-9.148-11.568-22.452-7.322-33.828 1.552-4.16 3.97-8.072 7.312-11.416 0.004-0.002 0.006-0.006 0.010-0.010l310.65-310.648-310.65-310.652c-0.002-0.004-0.006-0.006-0.008-0.010-3.342-3.346-5.76-7.254-7.314-11.414-4.248-11.376-1.826-24.682 7.322-33.83l146.748-146.746c9.15-9.148 22.452-11.568 33.83-7.322 4.16 1.552 8.070 3.97 11.416 7.312 0.002 0.004 0.006 0.006 0.010 0.010l310.648 310.65 310.648-310.65c0.004-0.002 0.008-0.006 0.012-0.008 3.348-3.344 7.254-5.762 11.414-7.314 11.378-4.246 24.684-1.826 33.828 7.322l146.746 146.748c9.148 9.148 11.57 22.454 7.324 33.83-1.552 4.16-3.97 8.068-7.314 11.414z" /> -<glyph unicode="" d="M0 544v-192c0-17.672 14.328-32 32-32h960c17.672 0 32 14.328 32 32v192c0 17.672-14.328 32-32 32h-960c-17.672 0-32-14.328-32-32z" /> +<font id="icomoon" horiz-adv-x="512"> +<font-face units-per-em="512" ascent="480" descent="-32" /> +<missing-glyph horiz-adv-x="512" /> +<glyph unicode=" " d="" horiz-adv-x="256" /> +<glyph unicode="" d="M512 176l-96 96v144h-64v-80l-96 96-256-256v-16h64v-160h160v96h64v-96h160v160h64z" /> +<glyph unicode="" d="M192 160l64 32 224 224-32 32-224-224-32-64zM144.65 46.451c-15.816 33.364-32.833 50.381-66.198 66.197l49.548 136.396 64 38.956 192 192h-96l-192-192-96-320 320 96 192 192v96l-192-192-38.956-64z" /> +<glyph unicode="" d="M32 384h448v-96h-448zM32 256h448v-96h-448zM32 128h448v-96h-448z" /> +<glyph unicode="" d="M437.020 405.019c48.351-48.352 74.98-112.64 74.98-181.020s-26.629-132.667-74.98-181.019c-48.353-48.351-112.64-74.98-181.020-74.98s-132.667 26.629-181.020 74.98c-48.351 48.352-74.98 112.639-74.98 181.019s26.627 132.668 74.98 181.020c48.353 48.352 112.64 74.981 181.020 74.981s132.667-26.629 181.020-74.981zM414.392 65.607c31.529 31.53 52.493 70.804 61.136 113.531-6.737-9.918-13.181-13.597-17.172 8.603-4.11 36.195-37.354 13.074-58.258 25.93-22.002-14.829-71.453 28.831-63.049-20.412 12.967-22.211 70.004 29.725 41.574-17.271-18.137-32.808-66.321-105.466-60.053-143.129 0.791-54.872-56.067-11.442-75.657 6.76-13.178 36.46-4.491 100.187-38.949 118.043-37.401 1.624-69.502 5.023-83.997 46.835-8.723 29.914 9.282 74.447 41.339 81.322 46.925 29.483 63.687-34.527 107.695-35.717 13.664 14.297 50.908 18.843 53.996 34.875-28.875 5.095 36.634 24.279-2.764 35.191-21.735-2.556-35.739-22.537-24.184-39.479-42.119-9.821-43.468 60.952-83.955 38.629-1.029-35.295-66.111-11.443-22.518-4.286 14.978 6.544-24.43 25.508-3.14 22.062 10.458 0.568 45.666 12.906 36.138 21.201 19.605 12.17 36.080-29.145 55.269 0.941 13.854 23.133-5.81 27.404-23.175 15.678-9.79 10.962 17.285 34.638 41.166 44.869 7.959 3.41 15.561 5.268 21.373 4.742 12.029-13.896 34.275-16.303 35.439 1.671-29.791 14.267-62.638 21.804-96.646 21.804-48.811 0-95.235-15.512-133.654-44.195 10.325-4.73 16.186-10.619 6.239-18.148-7.728-23.027-39.085-53.938-66.612-49.562-14.293-24.648-23.706-51.803-27.73-80.264 23.056-7.628 28.372-22.725 23.418-27.775-11.748-10.244-18.968-24.765-22.688-40.661 7.505-45.918 29.086-88.238 62.635-121.788 42.308-42.307 98.559-65.607 158.392-65.607s116.084 23.3 158.392 65.607z" /> +<glyph unicode="" d="M419.661 331.792c38.822-27.515 70.685-64.546 92.339-107.792-47.561-94.979-144.343-160-256-160-31.283 0-61.396 5.106-89.589 14.542l38.978 38.978c16.529-3.65 33.486-5.52 50.611-5.52 44.779 0 88.427 12.743 126.223 36.852 30.081 19.188 55.572 44.888 74.718 75.149-18.526 29.283-43.007 54.275-71.825 73.247l34.545 34.544zM256 131c-11.362 0-22.376 1.488-32.864 4.267l156.593 156.592c2.781-10.486 4.271-21.497 4.271-32.859 0-70.692-57.308-128-128-128zM480 480h-26.869l-109.806-109.806c-27.538 8.962-56.877 13.806-87.325 13.806-111.659 0-208.441-65.021-256-160 21.329-42.596 52.564-79.154 90.597-106.534l-90.597-90.597v-26.869h26.869l453.131 453.131v26.869zM208 323c24.022 0 43.923-17.647 47.446-40.685l-54.762-54.762c-23.037 3.524-40.684 23.425-40.684 47.447 0 26.51 21.49 48 48 48zM55.058 224c19.146 30.262 44.637 55.962 74.717 75.148 1.959 1.25 3.938 2.461 5.929 3.65-4.979-13.664-7.704-28.411-7.704-43.798 0-29.262 9.825-56.224 26.349-77.781l-29.275-29.275c-28.036 18.821-51.877 43.386-70.016 72.056z" /> +<glyph unicode="" d="M512 300.922c0-43.181-18.609-82.015-48.245-108.922h0.245l-160-160c-16-16-32-32-48-32s-32 16-48 32l-159.755 160c-29.636 26.907-48.245 65.741-48.245 108.922 0 81.229 65.849 147.078 147.078 147.078 43.181 0 82.015-18.609 108.922-48.245 26.907 29.636 65.741 48.245 108.922 48.245 81.228 0 147.078-65.849 147.078-147.078z" /> +<glyph unicode="" d="M512 300.922c0-43.181-18.609-82.015-48.245-108.922h0.245l-160-160c-16-16-32-32-48-32s-32 16-48 32l-159.755 160c-29.636 26.907-48.245 65.741-48.245 108.922 0 81.229 65.849 147.078 147.078 147.078 27.725 0 53.651-7.682 75.786-21.018l-46.864-74.982 112-64-64-160 176 192-112 64 39.446 59.17c11.966 3.144 24.523 4.83 37.476 4.83 81.228 0 147.078-65.849 147.078-147.078z" /> +<glyph unicode="" d="M416 352h-96v32l-96 96h-224v-384h192v-128h320v288l-96 96zM416 306.745l50.745-50.745h-50.745v50.745zM224 434.745l50.745-50.745h-50.745v50.745zM32 448h160v-96h96v-224h-256v320zM480 0h-256v96h96v224h64v-96h96v-224z" /> +<glyph unicode="" d="M224 192h64v128h96l-128 128-128-128h96zM320 264v-49.356l146.533-54.644-210.533-78.509-210.533 78.509 146.533 54.644v49.356l-192-72v-128l256-96 256 96v128z" /> +<glyph unicode="" d="M496.131 44.302l-121.276 103.147c-12.537 11.283-25.945 16.463-36.776 15.963 28.628 33.534 45.921 77.039 45.921 124.588 0 106.039-85.961 192-192 192s-192-85.961-192-192c0-106.039 85.961-192 192-192 47.549 0 91.054 17.293 124.588 45.922-0.5-10.831 4.68-24.239 15.963-36.776l103.147-121.276c17.661-19.623 46.511-21.277 64.11-3.678s15.946 46.449-3.677 64.11zM192 160c-70.692 0-128 57.308-128 128s57.308 128 128 128 128-57.308 128-128-57.307-128-128-128z" /> +<glyph unicode="" d="M400 416h-288c-26.51 0-48-21.49-48-48v-16h384v16c0 26.51-21.49 48-48 48zM316.16 448l7.058-50.5h-134.436l7.057 50.5h120.321zM320 480h-128c-13.2 0-25.495-10.696-27.321-23.769l-9.357-66.962c-1.827-13.073 7.478-23.769 20.678-23.769h160c13.2 0 22.505 10.696 20.679 23.769l-9.357 66.962c-1.827 13.073-14.122 23.769-27.322 23.769v0zM408 320h-304c-17.6 0-30.696-14.341-29.103-31.869l26.206-288.263c1.593-17.527 17.297-31.868 34.897-31.868h240c17.6 0 33.304 14.341 34.897 31.868l26.205 288.263c1.594 17.528-11.502 31.869-29.102 31.869zM192 32h-48l-16 224h64v-224zM288 32h-64v224h64v-224zM368 32h-48v224h64l-16-224z" /> +<glyph unicode="" d="M256 432c-55.559 0-107.792-21.636-147.078-60.922s-60.922-91.519-60.922-147.078c0-55.559 21.636-107.792 60.922-147.078s91.519-60.922 147.078-60.922c55.559 0 107.792 21.636 147.078 60.922s60.922 91.519 60.922 147.078c0 55.559-21.636 107.792-60.922 147.078s-91.519 60.922-147.078 60.922zM256 480v0c141.385 0 256-114.615 256-256s-114.615-256-256-256c-141.385 0-256 114.615-256 256s114.615 256 256 256zM224 128h64v-64h-64zM224 384h64v-192h-64z" /> +<glyph unicode="" d="M256 480c-139.374 0-252.729-111.381-255.924-249.987 2.96 120.932 94.916 217.987 207.924 217.987 114.875 0 208-100.288 208-224 0-26.51 21.49-48 48-48s48 21.49 48 48c0 141.385-114.615 256-256 256zM256-32c139.374 0 252.729 111.381 255.924 249.987-2.96-120.932-94.916-217.987-207.924-217.987-114.875 0-208 100.288-208 224 0 26.51-21.49 48-48 48s-48-21.49-48-48c0-141.385 114.615-256 256-256z" /> +<glyph unicode="" d="M256 480c-141.385 0-256-114.615-256-256s114.615-256 256-256 256 114.615 256 256-114.615 256-256 256zM208 64l-106 138 47 49 59-75 185 151 23-23-208-240z" /> +<glyph unicode="" d="M296 256h-8v96c0 52.935-43.065 96-96 96h-64c-52.935 0-96-43.065-96-96v-96h-8c-13.2 0-24-10.8-24-24v-240c0-13.2 10.8-24 24-24h272c13.2 0 24 10.8 24 24v240c0 13.2-10.8 24-24 24zM192 32h-64l13.92 69.6c-8.404 5.766-13.92 15.437-13.92 26.4 0 17.673 14.327 32 32 32s32-14.327 32-32c0-10.963-5.516-20.634-13.92-26.4l13.92-69.6zM224 256h-128v96c0 17.645 14.355 32 32 32h64c17.645 0 32-14.355 32-32v-96z" /> +<glyph unicode="" d="M384 448h-64c-52.935 0-96-43.065-96-96v-96h-200c-13.2 0-24-10.8-24-24v-240c0-13.2 10.8-24 24-24h272c13.2 0 24 10.8 24 24v240c0 13.2-10.8 24-24 24h-8v96c0 17.645 14.355 32 32 32h64c17.645 0 32-14.355 32-32v-96h64v96c0 52.935-43.065 96-96 96zM192 32h-64l13.92 69.6c-8.404 5.766-13.92 15.437-13.92 26.4 0 17.673 14.327 32 32 32s32-14.327 32-32c0-10.963-5.516-20.634-13.92-26.4l13.92-69.6z" /> +<glyph unicode="" d="M507.331 68.67c-0.002 0.002-0.004 0.004-0.006 0.005l-155.322 155.325 155.322 155.325c0.002 0.002 0.004 0.003 0.006 0.005 1.672 1.673 2.881 3.627 3.656 5.708 2.123 5.688 0.912 12.341-3.662 16.915l-73.373 73.373c-4.574 4.573-11.225 5.783-16.914 3.66-2.080-0.775-4.035-1.984-5.709-3.655 0-0.002-0.002-0.003-0.004-0.005l-155.324-155.326-155.324 155.325c-0.002 0.002-0.003 0.003-0.005 0.005-1.673 1.671-3.627 2.88-5.707 3.655-5.69 2.124-12.341 0.913-16.915-3.66l-73.374-73.374c-4.574-4.574-5.784-11.226-3.661-16.914 0.776-2.080 1.985-4.036 3.656-5.708 0.002-0.001 0.003-0.003 0.005-0.005l155.325-155.324-155.325-155.326c-0.001-0.002-0.003-0.003-0.004-0.005-1.671-1.673-2.88-3.627-3.657-5.707-2.124-5.688-0.913-12.341 3.661-16.915l73.374-73.373c4.575-4.574 11.226-5.784 16.915-3.661 2.080 0.776 4.035 1.985 5.708 3.656 0.001 0.002 0.003 0.003 0.005 0.005l155.324 155.325 155.324-155.325c0.002-0.001 0.004-0.003 0.006-0.004 1.674-1.672 3.627-2.881 5.707-3.657 5.689-2.123 12.342-0.913 16.914 3.661l73.373 73.374c4.574 4.574 5.785 11.227 3.662 16.915-0.776 2.080-1.985 4.034-3.657 5.707z" /> +<glyph unicode="" d="M0 272v-96c0-8.836 7.164-16 16-16h480c8.836 0 16 7.164 16 16v96c0 8.836-7.164 16-16 16h-480c-8.836 0-16-7.164-16-16z" /> </font></defs></svg> \ No newline at end of file diff --git a/public/fonts/icomoon.ttf b/public/fonts/icomoon.ttf index c66977a2b8c12901ba4fdf0f0beb64ab05dc230c..d894544cd1f1f923ab49668e08b90a375c21c904 100644 GIT binary patch literal 4792 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 CL{udJ literal 3980 zcma(UTWlOx^_+WWcXnrYW_EUWW_H)kdUj{m>$vs$vG#7<#Lkd9HX&-_lr*9wP3^iS zu^Y$fgV6HRK`IiYNUbQ8wxS}4AH)YBQL54+82VAE60{&5LZTm$idqDGARgi;UUTm3 z+I7-4^v=$`=bU?9_ug~PodpDd1o*&V<me}d$F#3XHxcEh^e!x|EndJgKY9WHdkH^v zX7RxbG^PlDn8w(dbB}!H&~H~>Cfp|_FP&Xpyq7IRegL5Eq50-nBFL}u-xDt6DreUo zdiVgqtAu}z@cDD=ON%|Txf#O$O!(m1;=>o97k&evkqvOpFRm@m<X-p#;Ui>Y^1}Lq z50RhL^mAe!xCHnlL;%>c?3YA&qBG*(pn-A0x1*s@c}?>G-bEg4(!&EF48&e+H75iZ z^}=G7dNG>?2|iAv1~Fg|C7Sb&`p(9?xVf>pNp$k+9oWWk^X-C^H}mPPbjZ-{5RfGF z9X82UYch1<JwHAIO#;3Uo=MGc%^I2wqcqVlOGZP2zz^EsqZj@b0(34D?zDp-Ko6*q z_RWCg1KLB2mfyk}%5t68GA(qGS8)Pm^nDDxw&&fQ%=gvuOFoiPKVUSr{Uhjk;jI65 zzSfsdqH#o!H~b*v^2r7V4?G^wCUTG|(jZeZw;zxDSN-i50*{_+{2G8a$gd(dvl^2% z?w0GUR_7Dr)2ubk8)HRg^J(7Fu#UAli`JrbjM~;TTEuHxgb}m&^%H-Sn2DFb8cjy) zq>sc}&AK4hXqG^X%7T?t7jdlFs*^#oTVzqvM^bW;6F|LPB;&-$S1Wt^v)TSVmCEr` zOO3|TspFORQ-<t;q8*JWahdZ%xj&T}9n43So2#0o4h{4~urk)r6**}adK)*F6S8bo zb8cgJw4}J@9%kt|xtJ<w81L(MDt*{rik1?IR5TSU7Iazf>FLoGmMW;SQmCY(iG(7> zbC!<Q@W@!9I(O^-U2;<5v1m_q&`hLNMM_%=N-;eV<5APuop%l$J25nL;@BaF58h}E zTdUf*GdD3g<;ZcSr+Rh7cp@3sDn>$;-TWtx9qHX|WNK>f?98OfqUma%H8Jc)tyF&v z6S{6BB_nIbm~NB1?(Tf5N0l>?h@mSSW2z>{HS#-c%8__1SIEVf#862l)kG>0P1q$< zip7<v(O)!px;8LqMpG$Gilt2}=^mJx%sV4x!zhn96h1%|0Vq)^uB*_5+u$@j5=N2T zji6Td_$VAGI9e#8svBf3x|9H&W9PPPHYf)~m=RG#T_Zv=^wTIJJJcGV+chyfkgBXc z_S|v1K6JBrB$+Sd)$)P;Q@!?JwXA7QWxzVv{z*J#q+&S9Im3b3yCyJb{>i-QrXl<I zbC0c7QnmVc?~j}O(#DmvlQ;Nzqi7}df}3r>p_QwHHge99M<t5djJnsXxqTXY#vEzw zbLK7{AC}~Ve1uCJ<C)%c$Zzegl(gCQd1NFv86(s2iMwV8*voIpiYyHuzc}aYZH{Dx z#b*1pq*XM|b0hDhvu;6uEp!_hW0){4D`^eZD#k6EQ>}?2(cN1g=$=54mL^h8&^}^k zi|kIKiNTaWEx1-YNak|6WZ1O>%Ppw&`TM3yQ?1c#cC<ynee-qpX=l1QmcjNfR4bz( zDj7?~{pQG?edT@Ujt(Pg`HE>)@*3js(R2HD`Z0O~KV+L@jSlSpdSedsSB%qFd|bG4 zG@j06l#k?;95>?Mc(na<{KBK3qi|(i=P3TVbycC8A`N*claKC1tz?L&X4>uq(pxQw zYHc7DY@<OS_ky79q0jtadAaS27d<N3+;59o&Zs(Wz$P#+IJvxxu)N$u?2JlifI@J) zp8F6btAM06jt$#XaR?_OMx<&Wso5kIbOTh|C)+2f_Zi8dPxlegFD$J+|NPq0lOcyV z=}_k%`CllPhJkMCDwR`L)XO^SCP`Qbi@Xnutl63tmAESMsZ*Y1OJgp-@~?O{osmt~ zqT`!7`<0`|F0JlG+`D?|n0s*gmK?HpGX5*wsW^I4<$7x4+s#vRHN@K7spk0UgS!!T zA3QyN=NmCK#`BZ=XDaiLuk72m^7y<MRl97(#EJb=PqCz`mE4l{u1GKu?^`2)3_jiS zKCMH83=F|69EN$ggLbJzHGUVJ!8k3cW|vxxmZ0buEwV<5s{AkowmX^;L_0&3L(p0o zu>t6E+G5w}beuaIfyf^YB5}W~wg0XCBen@jnksafMUp86JtdWl5TfX5<%b)WRa=kY zII5YPidWQJMkOSs+iH7$!SMs%zr5f(+!NXyM`-qzm%Ugrt$a~QCu7?{J5Y?Ax)G>3 zLlF@31hhdxLBZ60sT^*_<N!>=0a`zxxZJvxY`Y?gZ4hTXF-m1mT)X1V4ND(ym}03e zgTeX3GrNjIeW_I6P;uAH;rYS$Q&wLQ$MeeS*68`v_`(e&wskD*loRqB9;HOv-;VD9 ziZIpnzY}Mo8jC;-577_@q=g>~Ax_H-=NYWLbm?}^ZoU8Ocbs_U{*Q@$6}u|TefSIy zj(q9GvnRiGac1`O-?>Zh3pwG|Rrs)(Zr*ght+LS5@%0)f6WFrRMh06Ov^6gL?({`` zpx$2K!S(xaHNfmWPh-8_b|_of=BvETe+G|HR_@`Waior}rsjAZDP&n$e5!2GsXX_W zHPlgKS^9Xfx9G$Y%@$E4@0hsPw&=uSjZNczoMz(`4K@DX_UrU{C@LId5`T*B;<$to z<Jf+kW;i1x9*;>+@vsUCz829xfS<Iq!prPB{x5eX-mmD!hUs>@PSJ-MrZb_t3q1*# z2RZr<4Ua=4^Aw8I7x`^MB%Y9YASdDx0bTV3#GGxyHXw9~);Rg=x9-;W{Ra}1VAS5c zeC65q#_laZ|CL1ShK=OJe-80|A{zBwO(80}>^4Mz5EGo;*V_Sa(RPmhb@NQ%VN*zN zkuv`RT*B|MPqA;Zzw&-Q&tH(nrKhF8M|vYKM&2S$;Y}9aq<SgZme(QD?KJp)*Jq?! zy5&D3c&<z51XsGSMDQJ5Sp3V-x^R>%jCElJ24IQ)AJ9<}Md<9n9i1Jxqq75dbavp5 z&JG+U*~zYKN9PLZU57P#*Wo;zfMs|99)y(;b6^zeFhbZ4o|UEbwe|J$*An4&5<CN+ rg>$e-3a$~LMK6<Tp?DD<qVZmE;2!$mbl^~^__nU`a8=zc{NUk#|Gbvz diff --git a/public/fonts/icomoon.woff b/public/fonts/icomoon.woff index 58b88033a553a93d2994dfa2e4d204ce6c443086..d43499ec9e29b339a1bc3a6147fb164b899c0deb 100644 GIT binary patch literal 3328 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 literal 3204 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 From e09cf30a677b3ea577d6746e2066a071d9c21877 Mon Sep 17 00:00:00 2001 From: Carlos Fernandez <cfern1990@gmail.com> Date: Wed, 27 Aug 2014 21:56:04 -0400 Subject: [PATCH 08/11] Teambuilder: Move EV lock location --- client/app/css/teambuilder.styl | 2 ++ client/views/teambuilder/pokemon.jade | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/client/app/css/teambuilder.styl b/client/app/css/teambuilder.styl index 5dc709f0..83f3298e 100644 --- a/client/app/css/teambuilder.styl +++ b/client/app/css/teambuilder.styl @@ -257,6 +257,8 @@ $pokemon-list-height = 50px float right .ev-lock + float left + margin-right 5px cursor pointer .icon-lock color #444 diff --git a/client/views/teambuilder/pokemon.jade b/client/views/teambuilder/pokemon.jade index dd8ee4e3..364fe4b7 100644 --- a/client/views/teambuilder/pokemon.jade +++ b/client/views/teambuilder/pokemon.jade @@ -75,11 +75,11 @@ mixin printStat(statName, keyName) +printStat("Speed", "speed") tr td - .ev-lock - span(data-locked='true').icon-lock - span(data-locked='false').icon-unlocked.hidden td(colspan="5") .remaining-evs + .ev-lock + span(data-locked='true').icon-lock + span(data-locked='false').icon-unlocked.hidden | Remaining EVs: span.remaining-evs-amount .hidden-power From e3f891752437ccef3125eabe4a3b94e12d93039b Mon Sep 17 00:00:00 2001 From: Carlos Fernandez <cfern1990@gmail.com> Date: Thu, 28 Aug 2014 21:57:17 -0400 Subject: [PATCH 09/11] Teambuilder: Clicking a selected move in the table now removes it --- .../teambuilder/pokemon_edit_view.coffee | 41 +++++++++++++------ client/views/teambuilder/moves.jade | 8 ++-- 2 files changed, 33 insertions(+), 16 deletions(-) diff --git a/client/app/js/views/teambuilder/pokemon_edit_view.coffee b/client/app/js/views/teambuilder/pokemon_edit_view.coffee index e2b89bbf..ed28be19 100644 --- a/client/app/js/views/teambuilder/pokemon_edit_view.coffee +++ b/client/app/js/views/teambuilder/pokemon_edit_view.coffee @@ -240,13 +240,19 @@ class @PokemonEditView extends Backbone.View clickMoveName: (e) => $this = $(e.currentTarget) moveName = $this.data('move-id') - $moves = @$el.find('.selected_moves') - $input = $moves.find('input:focus').first() - $input = $moves.find('input').first() if $input.length == 0 - return if $input.length == 0 - @insertMove($input, moveName) - insertMove: ($input, moveName) => + if moveName in @getSelectedMoves() + @removeMove(moveName) + else + @insertMove(moveName) + + insertMove: (moveName, $input) => + if !$input + $moves = @$el.find('.selected_moves') + $input = $moves.find('input:focus').first() + $input = $moves.find('input').first() if $input.length == 0 + return if $input.length == 0 + currentScrollPosition = @$el.scrollTop() @preventBlurMoves() @@ -260,14 +266,25 @@ class @PokemonEditView extends Backbone.View @$el.scrollTop(0) @recordMoves() + removeMove: (moveName) => + indices = (i for move, i in @getAllSelectedMoves() when move == moveName) + + for idx in indices + $input = @$('.selected_moves .move-slot').eq(idx).children() + $input = @reverseButtonify($input) if $input.is('.move-button') + $input.val("") + # Returns the moves currently selected in the teambuilder (Not the Pokemon) getSelectedMoves: => + _(@getAllSelectedMoves()).compact() + + # Returns the contents of each selected move, even if that selected move is null + getAllSelectedMoves: => movesArray = [] - $moves = @$el.find('.selected_moves') - $moves.find('.move-button').each -> - moveName = $(this).find("span").text().trim() - if moveName != "" - movesArray.push(moveName) + $moves = @$el.find('.selected_moves .move-slot') + $moves.each -> + moveName = $(this).find(".move-button span").text().trim() + movesArray.push(moveName) movesArray recordMoves: => @@ -323,7 +340,7 @@ class @PokemonEditView extends Backbone.View switch e.which when 13 # [Enter]; we're selecting the active move. $activeMove = @$selectedMove() - $activeMove.click() + @insertMove($activeMove.data('move-id')) when 38 # [Up arrow]; selects move above $activeMove = $allMoves.filter('.active').first() $prevMove = $activeMove.prevAll(":visible").first() diff --git a/client/views/teambuilder/moves.jade b/client/views/teambuilder/moves.jade index 71b3eee2..19e575f6 100644 --- a/client/views/teambuilder/moves.jade +++ b/client/views/teambuilder/moves.jade @@ -5,13 +5,13 @@ ="View " + pokemon.get('species') + " Movesets" .row-fluid - .span3 + .span3.move-slot input(type="text", value=pokemon.get("moves")[0]) - .span3 + .span3.move-slot input(type="text", value=pokemon.get("moves")[1]) - .span3 + .span3.move-slot input(type="text", value=pokemon.get("moves")[2]) - .span3 + .span3.move-slot input(type="text", value=pokemon.get("moves")[3]) table.table.table-hover.table-moves From e0585741d8604a18e91aa015092367efd9667d6a Mon Sep 17 00:00:00 2001 From: Carlos Fernandez <cfern1990@gmail.com> Date: Fri, 29 Aug 2014 20:47:03 -0400 Subject: [PATCH 10/11] Teambuilder: Collapse selected moves on insert/remove --- .../teambuilder/pokemon_edit_view.coffee | 43 ++++++++++++++++--- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/client/app/js/views/teambuilder/pokemon_edit_view.coffee b/client/app/js/views/teambuilder/pokemon_edit_view.coffee index ed28be19..da7e92db 100644 --- a/client/app/js/views/teambuilder/pokemon_edit_view.coffee +++ b/client/app/js/views/teambuilder/pokemon_edit_view.coffee @@ -264,6 +264,8 @@ class @PokemonEditView extends Backbone.View @$el.scrollTop(currentScrollPosition) else @$el.scrollTop(0) + + @collapseSelectedMoves() @recordMoves() removeMove: (moveName) => @@ -274,11 +276,14 @@ class @PokemonEditView extends Backbone.View $input = @reverseButtonify($input) if $input.is('.move-button') $input.val("") + @collapseSelectedMoves() + # Returns the moves currently selected in the teambuilder (Not the Pokemon) getSelectedMoves: => _(@getAllSelectedMoves()).compact() # Returns the contents of each selected move, even if that selected move is null + # Non-buttonified moves are considered null getAllSelectedMoves: => movesArray = [] $moves = @$el.find('.selected_moves .move-slot') @@ -305,6 +310,13 @@ class @PokemonEditView extends Backbone.View removeSelectedMove: (e) => $this = $(e.currentTarget).parent() @reverseButtonify($this).val('').focus() + + @collapseSelectedMoves() + + # Nothing selected? Focus something + if @$('.selected_moves input:focus').length == 0 + @$('.selected_moves input').first().focus() + e.stopPropagation() buttonify: ($input, moveName) => @@ -326,12 +338,14 @@ class @PokemonEditView extends Backbone.View return true - reverseButtonify: ($button) => - moveName = $button.find('span').text() - $input = $("<input type='text' value='#{moveName}'/>") - $button.replaceWith($input) - @updateSelectedMoveStyles() - $input + reverseButtonify: ($buttons) => + $inputs = $buttons.replaceWith (i, element) => + $button = $(element) + moveName = $button.find('span').text() + $("<input type='text' value='#{moveName}'/>") + + @updateSelectedMoveStyles() + $inputs keydownMoves: (e) => $input = $(e.currentTarget) @@ -511,6 +525,23 @@ class @PokemonEditView extends Backbone.View moveName = $this.val() @buttonify($this, moveName) + # Rerenders the list of selected moves without rerendering the entire moves table + collapseSelectedMoves: => + $selectedMoves = @$('.selected_moves') + + # First, check if an input is focused and empty. IF it is, we have to refocus + $focused = $selectedMoves.find('input:focus') + refocus = true if $focused.length != 0 && $focused.val() == '' + + $moveSlots = $selectedMoves.find('.move-slot') + $emptySlots = $moveSlots.filter -> + input = $(this).find('input') + input.length > 0 && input.val() == '' + + $selectedMoves.find('.row-fluid').append($emptySlots.detach()) + + $selectedMoves.find('input').first().focus() if refocus + updateSelectedMoveStyles: => @$(".table-moves .selected").removeClass("selected") for move in @getSelectedMoves() From 9f347a734f4496ee0accb2dd5576ad89b3503d8b Mon Sep 17 00:00:00 2001 From: Carlos Fernandez <cfern1990@gmail.com> Date: Fri, 29 Aug 2014 21:07:38 -0400 Subject: [PATCH 11/11] Client: Redirect to teambuilder if Find Battle is clicked with no teams --- client/app/js/helpers/challenge_pane.coffee | 2 ++ 1 file changed, 2 insertions(+) diff --git a/client/app/js/helpers/challenge_pane.coffee b/client/app/js/helpers/challenge_pane.coffee index d1680029..dd40cbae 100644 --- a/client/app/js/helpers/challenge_pane.coffee +++ b/client/app/js/helpers/challenge_pane.coffee @@ -80,6 +80,7 @@ team = getSelectedTeam() unless team alert("You need to create a team using the Teambuilder before you can battle.") + PokeBattle.navigation.showTeambuilder() return disableButtons() @@ -102,6 +103,7 @@ 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