1
0
mirror of https://gitlab.com/Deukhoofd/BattleSim.git synced 2025-10-28 02:00:04 +00:00

Lots of stuff

This commit is contained in:
Deukhoofd
2016-02-01 23:19:30 +01:00
commit d7316d5799
6681 changed files with 527969 additions and 0 deletions

10
client/views/adsense.html Normal file
View File

@@ -0,0 +1,10 @@
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- Battle sim -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-5523648469234842"
data-ad-slot="5196342215"
data-ad-format="auto"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

View File

@@ -0,0 +1,21 @@
if alts
li
a.select-alt-dropdown-item
div
= username
span.no-alt-label (none)
each alt in alts
li
a.select-alt-dropdown-item(data-alt-name=alt)
div= alt
if alts.length < 5
li
a.add-alt-dropdown-item
div + Add Alt
else
if alt
div= alt
else
div
= username
span.no-alt-label (none)

9
client/views/battle.jade Normal file
View File

@@ -0,0 +1,9 @@
- for (var i = 0; i < 2; i++)
- var pokemonClass = (i === yourIndex ? " bottom" : " top")
- var team = (i === yourIndex ? yourTeam : opponentTeam).get('pokemon')
- for (var j = 0, len = team.length; j < len; j++)
.pokemon.hidden(class = pokemonClass, data-team = i, data-slot = j)
if (team.at(j).attributes.species == 'Zoroark' || team.at(j).attributes.species == 'Zorua') && team.at(j).attributes.percent == 100
!= window.JST['battle_pokemon']({pokemon: team.at(team.length - 1)})
else
!= window.JST['battle_pokemon']({pokemon: team.at(j)})

View File

@@ -0,0 +1,63 @@
mixin moveButton(forPokemon, i)
- var moveName = forPokemon.get('moves')[i]
- var origName = moveName
- var moveType = forPokemon.get('moveTypes')[i].toLowerCase()
- var pp = forPokemon.get('pp')[i]
- var maxPP = forPokemon.get('maxPP')[i]
- var isEnabled = validMoves.indexOf(moveName) !== -1
- var disabledClass = (!isEnabled ? ' disabled' : '')
- var bigClass = (validMoves.length === 1 ? ' big' : '')
- var spanClass = (validMoves.length === 1 ? 'span12' : 'span6')
if moveName === 'Hidden Power'
- moveType = window.HiddenPower.BW.type(forPokemon.get('ivs'))
- moveName += ' (' + moveType + ')'
- moveType = moveType.toLowerCase()
- var moveClass = moveType + disabledClass + bigClass
div(class = spanClass)
.move.button(class = moveClass, data-move-id = origName)
.main_text= moveName
.meta_info
= pp
small /#{maxPP}
- var validMoves = validActions.moves || []
- var validSwitches = validActions.switches || []
.moves.span8
h2 Moves
- var pokemon = yourTeam.at(0)
- var numMoves = pokemon.get('moves').length
if validMoves.length === 1
//- Display any moves not part of the Pokemon's moveset specially. This
//- includes no PP and automatically considered normal-type, e.g. Struggle.
- var moveIndex = pokemon.get('moves').indexOf(validMoves[0])
.row-fluid
if moveIndex === -1
.span12
.move.button.normal.big(data-move-id = validMoves[0])
.main_text= validMoves[0]
else
+moveButton(pokemon, moveIndex)
else
- for (var i = 0; i < numMoves; i += 2)
.row-fluid
+moveButton(pokemon, i)
if i + 1 < numMoves
+moveButton(pokemon, i + 1)
.mega-evolve.button.hidden Mega Evolve
.switches.span4
h2 Pokemon
- var teamPokemon = yourTeam.get('pokemon')
- for (var j = 0, len = teamPokemon.length; j < len; j += 3)
.row-fluid
- for (var i = j; i < j + 3; i++)
- var pokemon = teamPokemon.at(i)
- var isEnabled = validSwitches.indexOf(i) !== -1
- var disabledClass = (!isEnabled ? 'disabled' : '')
if pokemon
.span4
.switch.button(class = disabledClass, data-slot = i)
.pokemon_icon(style = window.PokemonIconBackground(pokemon))
.show_spinner.flex-center.fill.bg-faded-white.hidden
!= window.JST['spinner']()

View File

@@ -0,0 +1,19 @@
.row-fluid
.span4
h2 Battle speed
each speed, name in speeds
label.block
input.battle-speed(type = "radio", name = "battle_speed", checked = (speed === currentSpeed), value = speed)
| #{name}
//-
.span8
h2 Controls
span.button.button-reset To beginning
span.button.button-pause Pause
span.button.button-play Play
span.button.button-skip Skip turn
label
input(type = "checkbox")
| Disable spectators

View File

@@ -0,0 +1,8 @@
.button.big.save-replay.block.relative
| Save replay
.show_spinner.flex-center.fill.bg-faded-white.hidden
!= window.JST['spinner']()
.row-fluid
.button.save-log.block.span6.center Save log
.button.return-to-lobby.block.span6.center Return to lobby

View File

@@ -0,0 +1,31 @@
p
strong HP:
| #{pokemon.getPercentHP()}%
if pokemon.has('hp')
| (#{pokemon.get('hp')}/#{pokemon.get('maxHP')})
br
if pokemon.has('ability')
strong Ability:
| #{pokemon.get('ability')}
else
strong Possible abilities:
| #{pokemon.getAbilities().join(', ')}
br
strong Status:
| #{pokemon.getStatus()}
if pokemon.has('moves')
.hover_info_moves
each moveName, i in pokemon.get('moves')
- var moveClass = pokemon.get('moveTypes')[i].toLowerCase()
- var pp = pokemon.get('pp')[i]
- var maxPP = pokemon.get('maxPP')[i]
.button.hover_info(class = moveClass)
.main_text= moveName
.meta_info
= pp
small /#{maxPP}

View File

@@ -0,0 +1,15 @@
.battle-list
h2 Battle List (#{battles.length} battles)
.battle-list-collection
if battles.length == 0
p.empty There are no active battles happening at this time.
each battle in battles
.battle-list-item-wrapper
.battle-list-item.spectate.clearfix(data-battle-id=battle[0])
.left
span.player= battle[1]
span.vs VS
span.player= battle[2]
.right
span.fake_link.elapsed-time(data-time-start=Date.now() - battle[3])

View File

@@ -0,0 +1,20 @@
- var percent = pokemon.getPercentHP()
- var color = ((percent <= 25) ? "#f00" : (percent <= 50) ? "#ff0" : "#0f0")
- var style = "width: " + percent + "%"
- var greenStyle = style + "; background-color: " + color
a.sprite.preload(href=pokemon.getPokedexUrl(), target='_blank', data-species = pokemon.get('species'), data-forme = pokemon.get('forme'), data-shiny = (pokemon.get('shiny') ? "true" : "false"))
.pokemon-info
span.pokemon-meta
span.pokemon-name= pokemon.get('name')
if pokemon.get('gender') === 'F'
span.gender.gender_female &#9792;
else if pokemon.get('gender') === 'M'
span.gender.gender_male &#9794;
if pokemon.get('level') != 120
span.pokemon-level
span.pokemon-level-text Lv.
= pokemon.get('level')
.hp-text #{percent}%
.hp(style = greenStyle)
.hp-gradient
.pokemon-effects

View File

@@ -0,0 +1,49 @@
mixin displayOtherTeam(team, text)
- var teamvisible = team.collection.parents[0].get('visibleteam')
- var isdef = typeof teamvisible
if isdef != 'undefined' && teamvisible
section.battle_team_preview
p= text
ul.row-fluid.unstyled
- team.get('pokemon').each(function(pokemon) {
li.px_40
+displayPokemon(pokemon)
- })
mixin displayYourTeam(team, text)
section.battle_team_preview
p= text
ul.row-fluid.unstyled
- for (var i = 0; i < battle.numActive; i++)
li.px_40.lead_text
if battle.numActive > 1
| Lead #{i + 1}
else
| Lead
ul.arrange_team.row-fluid.unstyled
- yourTeam.get('pokemon').each(function(pokemon, i) {
li.px_40.img-polaroid.arrange_pokemon
+displayPokemon(pokemon, i)
- })
.button.submit_arrangement Start battle
mixin displayPokemon(pokemon, i)
.team_pokemon
- var style = window.PokemonIconBackground(pokemon)
.pokemon_icon(data-index = i, style = style)
if pokemon.get('gender') === 'F'
.gender.gender_female &#9792;
else if pokemon.get('gender') === 'M'
.gender.gender_male &#9794;
if pokemon.get('level') != 100
.level Lv.#{pokemon.get('level')}
.battle_teams
- var theirTeam = battle.getOpponentTeam()
- var yourTeam = battle.getTeam()
+displayOtherTeam(theirTeam, theirTeam.get('owner') + "'s team:")
if !battle.get('spectating')
+displayYourTeam(yourTeam, "Click Pokemon to switch them around:")
else
+displayOtherTeam(yourTeam, yourTeam.get('owner') + "'s team:")

View File

@@ -0,0 +1,25 @@
each team in [ yourTeam, opponentTeam ]
- var leftOrRight = (team === yourTeam ? 'left' : 'right')
- var teamIndex = (team === yourTeam ? yourIndex : 1 - yourIndex)
.bg-faded-blue(class = 'fill-' + leftOrRight)
div(class = leftOrRight)
.owner_name= team.get('owner')
.battle-timer.frozen-timer.hidden
.battle-timer.remaining-timer
.pokemon_icons
- var teamvisible = team.collection.parents[0].get('visibleteam')
- var isdef = typeof teamvisible
if isdef != 'undefined' && teamvisible
- var orig = team.get('pokemon')
- var teamPokemon = team.getRandomOrder()
- for (var i = 0, len = teamPokemon.length; i < len; i += 1)
- var pokemon = teamPokemon[i]
if pokemon
.icon_wrapper
- var origpkmn = orig.findWhere({species: pokemon.species});
- var faintClass = (origpkmn.isFainted() ? 'fainted' : '')
- var style = window.PokemonIconBackground(origpkmn)
a.pokemon_icon(href=window.PokemonIconBackground(origpkmn), target="_blank", class = faintClass, style = style, data-team = teamIndex, data-slot = i)
if !origpkmn.isFainted()
.pokemon_hp_background
.pokemon_hp(style="height: " + (origpkmn.getSpecies().id) + "%", class=origpkmn.getHPColor())

View File

@@ -0,0 +1,13 @@
.window.battle_window(data-battle-id = battle.id)
.battle
- var numBackgrounds = 6
- var backgroundNumber = parseInt(battle.id.substr(0, 6), 16)
- backgroundNumber = (backgroundNumber % numBackgrounds)
.battle_container(class = 'battle_bg_' + backgroundNumber)
.battle_user_info
.battle_pane.clearfix
.battle_summary
.battle_overlays
.battle_actions.row-fluid.relative
.battle-controls
.chat.without_spectators.without_chat_input!= window.JST['chat']()

View File

@@ -0,0 +1,11 @@
.challenge_data
.challenge_buttons
.is_challenger.hidden
.accept_challenge.button.button_blue Accept
.reject_challenge.button.button_red Reject
.is_not_challenger
.send_challenge.button.button_blue
span.icon.icon-spinner.spinner-anim.hidden
|
span.challenge_text Challenge
.cancel_challenge.button Close

10
client/views/chat.jade Normal file
View File

@@ -0,0 +1,10 @@
.user_list
p
strong.user_count
ul.users
.message_pane
.messages
.chat_input_pane
input.chat_input_send(type = 'button', value = 'Send')
.chat_input_wrapper
input.chat_input(type = 'text')

View File

@@ -0,0 +1,11 @@
#achievements-modal.modal.hide
.modal-header
button.close(type="button", data-dismiss="modal", aria-hidden="true") ×
h3 Achievements Earned
.modal-body
for achievement in achievements
.achievement.clearfix
img(src=window.AchievementSprite(achievement))
.achievement-info
h2= achievement.name
p= achievement.condition

View File

@@ -0,0 +1,23 @@
#credits-modal.modal.hide
.modal-header
button.close(type="button", data-dismiss="modal", aria-hidden="true") ×
h3 PokeBattle Credits
.modal-body
ul
li
| Pokémon is © 1995-2016 Nintendo. All Pokemon names and sprites are
| owned by them.
li
| Huge thanks to PokeBattle.com for developing this awesome engine
| You can find their engine at <a href="http://github.com/sarenji/pokebattle-sim">this GitHub repo!</a>
li
| Big thanks to Suzey and the rest of the devteam of Insurgence for
| creating Insurgence
li
| Major thanks to my faithful testers who helped me make sure this thing
| actually worked
li
| And of course thanks to you, the user, for actually using this thing,
| we love you
.modal-footer
button.button(data-dismiss="modal", aria-hidden="true") Wow, these people rule!

View File

@@ -0,0 +1,7 @@
#errors-modal.modal.hide
.modal-header
button.close(type="button", data-dismiss="modal", aria-hidden="true") ×
h3= title
.modal-body!= body
.modal-footer
button.button(data-dismiss="modal", aria-hidden="true") Back

View File

@@ -0,0 +1,10 @@
#export-team-modal.modal.hide
.modal-header
button.close(type="button", data-dismiss="modal", aria-hidden="true") ×
h3 Your exported team
.modal-body
form.form-horizontal
.control-group
textarea.exported-team.textarea_modal
.modal-footer
button.button(data-dismiss="modal", aria-hidden="true") Close

View File

@@ -0,0 +1,12 @@
#import-team-modal.modal.hide
.modal-header
button.close(type="button", data-dismiss="modal", aria-hidden="true") ×
h3 Import a team from PS/PO
.modal-body
.form-errors.alert.alert-error.hidden
form.form-horizontal
.control-group
textarea.imported-team.textarea_modal(placeholder = "Paste your team here")
.modal-footer
button.button.button_blue.import-team-submit Import
button.button(data-dismiss="modal", aria-hidden="true") Close

View File

@@ -0,0 +1,13 @@
#new_client.modal.hide
.modal-header
button.close(type="button", data-dismiss="modal", aria-hidden="true") ×
h3 A new client appeared!
.modal-body
p
strong Your client is outdated!
| Please refresh to upgrade to the latest version of the client. If you
| choose not to refresh, you may see odd behavior. If you were editing
| a team, you should save the team first, then manually refresh.
.modal-footer
button.button.button_blue.button_refresh Refresh
button.button(data-dismiss="modal", aria-hidden="true") I'll refresh later

View File

@@ -0,0 +1,14 @@
.teams-differ-modal.modal.hide
.modal-header
button.close(type="button", data-dismiss="modal", aria-hidden="true") ×
h3 Our teams differ!
.modal-body
p
strong Your copy of this team differs from ours!
p
| Perhaps you edited this team on a different computer? Or disconnected
| during a save? Either way, this is the team we have:
textarea.remote-team.textarea_modal= teamText
.modal-footer
button.button.button_blue(data-dismiss="modal", aria-hidden="true") Keep local changes
button.button.button_override Use remote version

0
client/views/modify.jade Normal file
View File

View File

@@ -0,0 +1,23 @@
p
strong Base Power:
if move.power == 0
| &mdash;
else
| #{move.power}
p
strong Accuracy:
if move.accuracy == 0
| &mdash;
else
| #{move.accuracy}%
if move.priority != 0
p
strong Priority:
if move.priority > 0
| +#{move.priority}
else
| #{move.priority}
p
strong Description:
| #{move.description}

View File

@@ -0,0 +1,20 @@
p.logo
h2 Chat
ul.nav.nav_rooms
li.nav_item.fake_link Lobby
h2 Other links
ul.nav
li.nav_item.fake_link.nav_teambuilder Teambuilder
li.nav_item.fake_link.nav_battle_list Battle List
a(href="/replays", target="_blank").nav_item Your Replays
a(href="/leaderboard/", target="_blank").nav_item Leaderboard
a(href="//bitbucket.org/PInsurgence/battle-simulator/issues?status=new&status=open", target="_blank").nav_item Bug Reports
a(href="//91.121.152.74/c/battle-simulator/feature-requests", target="_blank").nav_item Feature Requests
ul.nav.nav_battles.hidden
h2.header_messages.hidden Messages
ul.nav.nav_messages.hidden

View File

@@ -0,0 +1,41 @@
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
.select.select-format(data-toggle = "dropdown")
ul.dropdown-menu.format-dropdown(role = "menu")
li
a.select-format-dropdown-item(data-format="insur1000") 1000 PBV Insurgence
li
a.select-format-dropdown-item(data-format="xy1000") 1000 PBV XY
li
a.select-format-dropdown-item(data-format="xy500") 500 PBV XY
p
strong Select a team:
.dropdown
.select.select-team.rounded(data-toggle = "dropdown")
strong Your team
ul.dropdown-menu.team-dropdown(role = "menu")
p
strong Clauses:
ul.challenge_clauses.well
for value in window.SelectableConditions
- var checked = (defaultClauses.indexOf(value) >= 0)
- var clause = window._.invert(window.Conditions)[value]
li
label
input(type = "checkbox", value = value, checked = checked, data-clause = value)
| #{window.HumanizedConditions['en'][clause]}

View File

@@ -0,0 +1,18 @@
.popup(data-user-id=id)
.title
.title_name
span.icon.icon-bubbles
| #{title}
.title_buttons
.title_button.title_minimize
.icon.icon-minus
.title_button.title_close
.icon.icon-close
.popup_body
.popup_menu.clearfix
.popup_menu_button.challenge_button Challenge
.challenge.hidden
.popup_messages
.chat_input_pane
.chat_input_wrapper
input.chat_input(type = 'text', placeholder = "Send a message...")

12
client/views/replay.jade Normal file
View File

@@ -0,0 +1,12 @@
.span4.p2.mb1.clickable-box.relative
a(href = replay.url())
strong.block= replay.get('name')
= replay.getFormat()
span.block.align-right.tiny-type.mt1.grey
span.left= replay.getCreatedAt()
span.fake_link.delete-replay(data-replay-id = replay.id, data-cid = replay.cid)
span.icon-remove
| Delete
.show_spinner.flex-center.fill.bg-faded-white.hidden
!= window.JST['spinner']()

16
client/views/spinner.jade Normal file
View File

@@ -0,0 +1,16 @@
.spinner
.spinner-container.container1
.circle1
.circle2
.circle3
.circle4
.spinner-container.container2
.circle1
.circle2
.circle3
.circle4
.spinner-container.container3
.circle1
.circle2
.circle3
.circle4

View File

@@ -0,0 +1,11 @@
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})
li
a.build-team-option Build a Team

View File

@@ -0,0 +1,11 @@
if team.hasPBV()
.team-pbv PBV:
if team.getPBV() <= team.getMaxPBV()
= team.getPBV()
else
span.red= team.getPBV()
| /#{team.getMaxPBV()}
.team_icons.clearfix
each pokemon, i in team.get('pokemon').models
- var style = window.PokemonIconBackground(pokemon)
.left.pokemon_icon(data-index = i, style = style)

View File

@@ -0,0 +1,21 @@
.teambuilder
.display_pokemon
.team_meta.clearfix
.team_name(contenteditable="true")
.team_meta_buttons
.dropdown.change-format-dropdown.left
.current-format.button.dropdown-toggle(data-toggle="dropdown")
ul.dropdown-menu(role="menu")
li
a(href="#", data-format="insur1000") 1000 PBV Insurgence
li
a(href="#", data-format="xy1000") 1000 PBV XY
li
a(href="#", data-format="xy500") 500 PBV XY
.button.button_blue.save_team.disabled Save
.button.go_back Back
.navigation
ul.pokemon_list.clearfix
.nav-button.add_pokemon + Add Pokemon
.pokemon_edit
.display_teams

View File

@@ -0,0 +1,39 @@
.selected_moves
.header.clearfix
.moves-label.left Moves:
a.dex-link.right(href=pokemon.getPokedexUrl(), target='_blank')
="View " + pokemon.get('species') + " Movesets"
.row-fluid
.span3
input(type="text", value=pokemon.get("moves")[0])
.span3
input(type="text", value=pokemon.get("moves")[1])
.span3
input(type="text", value=pokemon.get("moves")[2])
.span3
input(type="text", value=pokemon.get("moves")[3])
table.table.table-hover.table-moves
thead
tr
th Name
th Type
th Cat.
th Power
th.acc Acc.
th.pp PP
th.description Description
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
img(src=window.TypeSprite(move.type), alt=move.type)
td
- var damageFriendly = move.damage[0].toUpperCase() + move.damage.substr(1)
img(src=window.CategorySprite(move.damage), alt=damageFriendly)
td= (move.power == 0) ? "-" : move.power
td.acc= (move.accuracy == 0) ? "-" : move.accuracy + '%'
td.pp= move.pp
td.description= move.description

View File

@@ -0,0 +1,95 @@
mixin printStat(statName, keyName)
tr
td.stat-label
strong #{statName}:
td.ev-range-cell
input(type="range", min="0", max="252", step="4", data-stat=keyName).ev-entry
td.ev-cell
input(type="text", data-stat=keyName).ev-entry
td.iv-cell
input(type="text", data-stat=keyName).iv-entry
td.base-stat(data-stat=keyName)
td.stat-total(data-stat=keyName)
.meta-info.clearfix
.left-side
.species
select.sortSpecies
option=""
option="Sort by Dexnumber"
option="Invert by Dexnumber"
option="Sort Alphabetically"
option="Invert Alphabetically"
select.species_list
option
each species in speciesList
option(value=species)= species
.species-info
.non-stats
.teambuilder_row.pbv-row
.teambuilder_col.non-stat-label PBV:
.teambuilder_col
span.individual-pbv
.right
span.total-pbv
/
span.max-pbv
.teambuilder_row
.teambuilder_col.non-stat-label Nickname:
.teambuilder_col
input.selected_nickname(type="text")
.teambuilder_row
.teambuilder_col.non-stat-label Ability:
.teambuilder_col
select.selected_ability
.teambuilder_row
.teambuilder_col.non-stat-label Nature:
.teambuilder_col
select.selected_nature
.teambuilder_row
.teambuilder_col.non-stat-label Item:
.teambuilder_col
select.selected_item
option(value="")
each itemName in itemList
option(value=itemName)= itemName
.teambuilder_row
.teambuilder_col.non-stat-label Gender:
.teambuilder_col
select.selected_gender
.teambuilder_row
.teambuilder_col.non-stat-label Level:
.teambuilder_col
input.selected_level(type="text")
.right-side
table.stats
thead
th
th.ev-range-cell
th.ev-cell EV
th.iv-cell IV
th Base
th Stat
tbody
+printStat("HP", "hp")
+printStat("Attack", "attack")
+printStat("Defense", "defense")
+printStat("Sp. Attack", "specialAttack")
+printStat("Sp. Defense", "specialDefense")
+printStat("Speed", "speed")
tr
td
td(colspan="5")
.remaining-evs
| Remaining EVs:
span.remaining-evs-amount
.hidden-power
| Hidden Power:
select.select-hidden-power
each value, type in window.HiddenPower.BW.ivs
- var displayType = type[0].toUpperCase() + type.substr(1)
option(value=type)= displayType
.moves-section.clearfix

View File

@@ -0,0 +1,12 @@
each pokemon, i in pokemonList
li(data-pokemon-index=i, data-pokemon-cid=pokemon.cid)
- var style = window.PokemonIconBackground(pokemon)
.pokemon_icon(style=style)
.pokemon-middle
if pokemon.isNull
em.name Empty
else
.name= pokemon.get("species")
.pokemon-pbv
| PBV:
span.pbv-value= pokemon.getPBV()

View File

@@ -0,0 +1,20 @@
.forme-sprite-box
- var url = window.PokemonSprite(pokemon)
img.forme-sprite(src=url, alt="")
.species-types
.shiny-switch.selected_shininess(class=(pokemon.get("shiny") ? "selected" : ""))
.top
.bottom
each type in pokemon.getForme().types
img(src=window.TypeSprite(type), alt=type)
.happiness-switch.selected_happiness
- var formes = pokemon.getSelectableFormes()
if formes.length > 1
.teambuilder_row
.teambuilder_col Forme:
select.teambuilder_col.selected-forme
each forme in formes
- var displayedForme = forme[0].toUpperCase() + forme.substr(1)
- var selected = (forme === pokemon.get('forme'))
option(value=forme, selected=selected)= displayedForme

View File

@@ -0,0 +1,17 @@
.left.select-team.clickable-box.p1.mt1.ml1.relative(data-id=team.id, data-cid=team.cid)
h2.go-to-team.fake_link= team.getName()
!= window.JST['team_small']({team: team, window: window})
.team-meta
span.fake_link.export-team
span.icon-upload
| Export
| |
span.fake_link.clone-team
span.icon-copy
| Clone
| |
span.fake_link.delete-team
span.icon-remove
| Delete
.show_spinner.flex-center.fill.bg-faded-white.rounded.hidden
!= window.JST['spinner']()

View File

@@ -0,0 +1,6 @@
h2 Your teams
.teambuilder_teams.clearfix
each team in teams
!= window.JST['teambuilder/team']({team: team, window: window})
.button.button_blue.add-new-team Add new team
.button.import-team Import

View File

@@ -0,0 +1,5 @@
for user in userList
if user.isAlt()
li= user.getDisplayName()
else
li.fake_link.open_pm(data-user-id=user.id)= user.getDisplayName()