1
0
mirror of https://gitlab.com/Deukhoofd/BattleSim.git synced 2025-10-27 18:00:03 +00:00

Added sort by tier and filter to current tier

This commit is contained in:
Deukhoofd
2016-02-28 19:37:16 +01:00
parent f737f48545
commit b9c2d479b7
6 changed files with 166 additions and 29 deletions

View File

@@ -21,6 +21,9 @@ $pokemon-list-height = 50px
margin-bottom 0!important
width 100%
.filter-tier-box
width 25px
.teambuilder .meta-info
max-width 1368px

View File

@@ -26,9 +26,11 @@ class @PokemonEditView extends Backbone.View
speciesTemplate: JST['teambuilder/species']
nonStatsTemplate: JST['teambuilder/non_stats']
movesTemplate: JST['teambuilder/moves']
tierFilterBool: true
events:
'change .sortSpecies': 'changeSort'
'change .filter-tier': 'filterTier'
'change .species_list': 'changeSpecies'
'change .selected_nickname': 'changeNickname'
'click .selected_shininess': 'changeShiny'
@@ -61,10 +63,41 @@ class @PokemonEditView extends Backbone.View
@setGeneration(format.generation)
# TODO: Set PBV limit based on conditions
filterTier:(e) =>
thistier = @pokemon.getTeam().getTier().tierRank
{SpeciesData, FormeData} = @generation
if e.target.checked
arr = @objectToArr(SpeciesData)
console.log(thistier)
for obj in arr
obj.tier = window.PokeBattle.Tier.Tiers[FormeData[obj.pokename].default.tier[0]].tierRank
console.log(arr)
arr = _.filter arr, (thing) -> thing.tier is thistier
obj = @arrToObject(arr)
@speciesList = (species for species, data of obj)
@render()
else
@speciesList = (species for species, data of SpeciesData)
@render()
objectToArr: (data) =>
arr = []
for key, val of data
val.pokename = key
arr.push(val)
return arr
arrToObject: (arr) =>
obj = {}
for thing in arr
obj[thing.pokename] = thing
return obj
changeSort:(e) =>
sort = $(e.currentTarget).val()
if sort =="Default Sort"
@sortSpecieslist("Default")
if sort == "Sort"
@sortSpecieslist("tier", false)
else if sort == "Sort by Dexnumber"
@sortSpecieslist("id", false)
else if sort == "Invert by Dexnumber"
@@ -73,7 +106,10 @@ class @PokemonEditView extends Backbone.View
@sortSpecieslist("pokename", false)
else if sort == "Invert Alphabetically"
@sortSpecieslist("pokename", true)
else if sort == "Sort by Tier"
@sortSpecieslist("tier", false)
else if sort == "Invert by Tier"
@sortSpecieslist("tier", true)
sortSpecieslist: (option, reverse) =>
{MoveData, SpeciesData, ItemData} = @generation
@@ -85,17 +121,18 @@ class @PokemonEditView extends Backbone.View
@render()
sortObject: (data, option, reverse) ->
arr = []
for key, val of data
val.pokename = key
arr.push(val)
arr = _.sortBy(arr, option)
arr = @objectToArr(data)
if option != 'tier'
arr = _.sortBy(arr, option)
else
{FormeData} = @generation
for obj in arr
obj.tier = window.PokeBattle.Tier.Tiers[FormeData[obj.pokename].default.tier[0]].tierRank
arr = _.sortBy(arr, 'tier')
if reverse == true
arr.reverse()
newobj = {}
for thing in arr
newobj[thing.pokename] = thing
finished = newobj
obj = @arrToObject(arr)
finished = obj
setGeneration: (generation) =>
@generation = window.Generations[generation.toUpperCase()]
@@ -387,6 +424,13 @@ class @PokemonEditView extends Backbone.View
return "<div class='clearfix'>#{item.text}<div class='tier'>#{tier.humanName}</div></div>"
)
attachSelectize(@$el.find(".selected_item"))
filtertierbox = @$el.find(".filter-tier-box")[0]
if @tierFilterBool is false
filtertierbox.checked = true
@tierFilterBool = true
else if @tierFilterBool is true
filtertierbox.checked = false
@tierFilterBool = false
return this
renderPokemon: =>

View File

@@ -14,12 +14,17 @@ mixin printStat(statName, keyName)
.meta-info.clearfix
.left-side
.species
label.filter-tier
input.filter-tier-box(type='checkbox')
| Filter to Current Tier
select.sortSpecies
option=""
option="Sort"
option="Sort by Dexnumber"
option="Invert by Dexnumber"
option="Sort Alphabetically"
option="Invert Alphabetically"
option="Sort by Tier"
option="Invert by Tier"
select.species_list
option
each species in speciesList