Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Filter raids by Pokemon (raid boss) #2230

Open
wants to merge 9 commits into
base: develop
Choose a base branch
from
4 changes: 4 additions & 0 deletions static/js/map.common.js
Original file line number Diff line number Diff line change
Expand Up @@ -882,6 +882,10 @@ var StoreOptions = {
default: 5,
type: StoreTypes.Number
},
'showRaidPokemon': {
default: 0,
type: StoreTypes.Number
},
'showGyms': {
default: false,
type: StoreTypes.Boolean
Expand Down
28 changes: 27 additions & 1 deletion static/js/map.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ var $switchOpenGymsOnly
var $switchActiveRaidGymsOnly
var $switchRaidMinLevel
var $switchRaidMaxLevel
var $switchRaidPokemon
var $selectTeamGymsOnly
var $selectLastUpdateGymsOnly
var $selectMinGymLevel
Expand Down Expand Up @@ -407,6 +408,7 @@ function initSidebar() {
$('#raid-active-gym-switch').prop('checked', Store.get('showActiveRaidsOnly'))
$('#raid-min-level-only-switch').val(Store.get('showRaidMinLevel'))
$('#raid-max-level-only-switch').val(Store.get('showRaidMaxLevel'))
$('#raid-pokemon-only-switch').val(Store.get('showRaidPokemon'))
$('#raids-filter-wrapper').toggle(Store.get('showRaids'))
$('#open-gyms-only-switch').prop('checked', Store.get('showOpenGymsOnly'))
$('#min-level-gyms-filter-switch').val(Store.get('minGymLevel'))
Expand Down Expand Up @@ -927,7 +929,13 @@ function getRaidLevel(raid) {
return raid['level']
}
}

function getRaidPokemon(raid) {
if (raid === null) {
return 0
} else {
return raid['pokemon_id']
}
}
function lpad(str, len, padstr) {
return Array(Math.max(len - String(str).length + 1, 0)).join(padstr) + str
}
Expand Down Expand Up @@ -1666,6 +1674,7 @@ function updatePokestops() {
function processGym(i, item) {
var gymLevel = getGymLevel(item)
var raidLevel = getRaidLevel(item.raid)
var raidPokemon = getRaidPokemon(item.raid)

if (!Store.get('showGyms') && !Store.get('showRaids')) {
return false // in case the checkbox was unchecked in the meantime.
Expand Down Expand Up @@ -1701,6 +1710,11 @@ function processGym(i, item) {
}
}

if (Store.get('showRaidPokemon') > 0 && raidPokemon !== Store.get('showRaidPokemon')) {
removeGymFromMap(item['gym_id'])
return true
}

if (raidLevel > Store.get('showRaidMaxLevel') || raidLevel < Store.get('showRaidMinLevel')) {
removeGymFromMap(item['gym_id'])
return true
Expand Down Expand Up @@ -2407,6 +2421,18 @@ $(function () {
updateMap()
})

$switchRaidPokemon = $('#raid-pokemon-only-switch')

$switchRaidPokemon.select2({
placeholder: 'Raid Pokemon',
minimumResultsForSearch: Infinity
})

$switchRaidPokemon.on('change', function () {
Store.set('showRaidPokemon', this.value)
lastgyms = false
updateMap()
})

$selectTeamGymsOnly = $('#team-gyms-only-switch')

Expand Down
36 changes: 36 additions & 0 deletions templates/map.html
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,42 @@ <h3>Maximum Raid Level</h3>
<option value="5">Level 5</option>
</select>
</div>
<div class="form-control switch-container" id="max-pokemon-only-wrapper">
<h3>Show only one raid boss:</h3>
<select name="raid-pokemon-only-switch" id="raid-pokemon-only-switch">
<option value="0">Show all</option>
<option value="244">Entei</option>
<option value="245">Suicune</option>
<option value="243">Raikou</option>
<option value="249">Lugia</option>
<option value="146">Moltres</option>
<option value="145">Zapdos</option>
<option value="144">Articuno</option>
<option value="248">Tyranitar</option>
<option value="143">Snorlax</option>
<option value="131">Lapras</option>
<option value="112">Rhydon</option>
<option value="9">Blastoise</option>
<option value="6">Charizard</option>
<option value="3">Venusaur</option>
<option value="136">Flareon</option>
<option value="135">Jolteon</option>
<option value="134">Vaporeon</option>
<option value="94">Gengar</option>
<option value="68">Machamp</option>
<option value="65">Alakazam</option>
<option value="59">Arcanine</option>
<option value="126">Magmar</option>
<option value="125">Electabuzz</option>
<option value="89">Muk</option>
<option value="110">Weezing</option>
<option value="103">Exeggutor</option>
<option value="159">Croconaw</option>
<option value="156">Quilava</option>
<option value="153">Bayleef</option>
<option value="129">Magikarp</option>
</select>
</div>
</div>
{% endif %}
{% if show.gyms %}
Expand Down