diff --git a/js/client-battle.js b/js/client-battle.js index 5549e52a1..2de868c64 100644 --- a/js/client-battle.js +++ b/js/client-battle.js @@ -1378,43 +1378,12 @@ this.battle.ignoreNicks = !!e.currentTarget.checked; Tools.prefs('ignorenicks', this.battle.ignoreNicks); this.battle.add('Nicknames ' + (this.battle.ignoreNicks ? '' : 'no longer ') + 'ignored.'); - this.toggleNicknames(this.battle.mySide); - this.toggleNicknames(this.battle.yourSide); - - var $log = $('.battle-log .inner'); - var $message = $('.battle .message'); - if (this.battle.ignoreNicks) { - $log.addClass('hidenicks'); - $message.addClass('hidenicks'); - } else { - $log.removeClass('hidenicks'); - $message.removeClass('hidenicks'); - } + this.battle.resetToCurrentTurn(); }, toggleIgnoreOpponent: function (e) { this.battle.ignoreOpponent = !!e.currentTarget.checked; this.battle.add('Opponent ' + (this.battle.ignoreOpponent ? '' : 'no longer ') + 'ignored.'); - var $log = $('.battle-log .inner'); - var $message = $('.battle .message'); - var $messages = $log.find('.chatmessage-' + this.battle.yourSide.id); - if (!$messages.length) return; - if (this.battle.ignoreOpponent) { - $messages.hide(); - $log.addClass('hidenicks'); - $message.addClass('hidenicks'); - } else { - $messages.show(); - $log.removeClass('hidenicks'); - $message.removeClass('hidenicks'); - } - }, - toggleNicknames: function (side) { - for (var i = 0; i < side.active.length; i++) { - if (!side.active[i]) continue; - side.active[i].statbarElem.html(side.getStatbarHTML(side.active[i], true)); - side.updateStatbar(side.active[i], true, true); - } - side.updateSidebar(); + this.battle.resetToCurrentTurn(); }, toggleRightPanelBattles: function (e) { Tools.prefs('rightpanelbattles', !!e.currentTarget.checked); diff --git a/src/battle-animations.ts b/src/battle-animations.ts index 7320f1fe2..f0c82b890 100644 --- a/src/battle-animations.ts +++ b/src/battle-animations.ts @@ -163,6 +163,17 @@ class BattleScene { $frame.addClass('battle'); this.$frame = $frame; this.log = new BattleLog($logFrame[0] as HTMLDivElement, this); + this.log.battleParser!.pokemonName = (pokemonId: string) => { + if (!pokemonId) return ''; + if (battle.ignoreNicks || battle.ignoreOpponent) { + const pokemon = battle.getPokemon(pokemonId); + if (pokemon) return pokemon.species; + } + if (!pokemonId.startsWith('p1') && !pokemonId.startsWith('p2')) return '???pokemon:' + pokemonId + '???'; + if (pokemonId.charAt(3) === ':') return pokemonId.slice(4).trim(); + else if (pokemonId.charAt(2) === ':') return pokemonId.slice(3).trim(); + return '???pokemon:' + pokemonId + '???'; + }; let numericId = 0; if (battle.id) { @@ -234,12 +245,6 @@ class BattleScene { this.$battle.append(this.$delay); this.$battle.append(this.$hiddenMessage); - if (this.battle.ignoreNicks) { - this.log.setHideNicks(true); - this.$messagebar.addClass('hidenicks'); - this.$hiddenMessage.addClass('hidenicks'); - } - if (!this.animating) { this.$battle.append('
seeking...
'); } diff --git a/src/battle-log.ts b/src/battle-log.ts index 004cefeec..632667329 100644 --- a/src/battle-log.ts +++ b/src/battle-log.ts @@ -60,9 +60,6 @@ class BattleLog { destroy() { this.elem.onscroll = null; } - setHideNicks(hideNicks: boolean) { - this.elem.className = this.className + (hideNicks ? ' hidenicks' : ''); - } add(args: Args, kwArgs?: KWArgs, preempt?: boolean) { if (kwArgs && kwArgs.silent) return; let divClass = 'chat'; diff --git a/src/battle-text-parser.ts b/src/battle-text-parser.ts index 391171ddf..114e09ead 100644 --- a/src/battle-text-parser.ts +++ b/src/battle-text-parser.ts @@ -43,38 +43,29 @@ class BattleTextParser { return input.replace(/[\\^$.*+?()[\]{}|]/g, '\\$&'); } + pokemonName = (pokemon: string) => { + if (!pokemon) return ''; + if (!pokemon.startsWith('p1') && !pokemon.startsWith('p2')) return '???pokemon:' + pokemon + '???'; + if (pokemon.charAt(3) === ':') return pokemon.slice(4).trim(); + else if (pokemon.charAt(2) === ':') return pokemon.slice(3).trim(); + return '???pokemon:' + pokemon + '???'; + }; + pokemon(pokemon: string) { if (!pokemon) return ''; let side; if (pokemon.startsWith('p1')) side = 0; else if (pokemon.startsWith('p2')) side = 1; else return '???pokemon:' + pokemon + '???'; - if (pokemon.charAt(3) === ':') pokemon = pokemon.slice(4).trim(); - else if (pokemon.charAt(2) === ':') pokemon = pokemon.slice(3).trim(); - else return '???pokemon:' + pokemon + '???'; + const name = this.pokemonName(pokemon); let template = BattleText.default[side === this.perspective ? 'pokemon' : 'opposingPokemon']; - return template.replace('[NICKNAME]', pokemon); - } - - pokemonName(pokemon: string) { - if (!pokemon) return ''; - if (!pokemon.startsWith('p1') && !pokemon.startsWith('p2')) return '???pokemon:' + pokemon + '???'; - if (pokemon.charAt(3) === ':') pokemon = pokemon.slice(4).trim(); - else if (pokemon.charAt(2) === ':') pokemon = pokemon.slice(3).trim(); - else return '???pokemon:' + pokemon + '???'; - return pokemon; + return template.replace('[NICKNAME]', name); } pokemonFull(pokemon: string, details: string) { - if (pokemon.startsWith('p1')) {} - else if (pokemon.startsWith('p2')) {} - else return '???pokemon:' + pokemon + '???'; - let nickname; - if (pokemon.charAt(3) === ':') nickname = pokemon.slice(4).trim(); - else if (pokemon.charAt(2) === ':') nickname = pokemon.slice(3).trim(); - else return '???pokemon:' + pokemon + '???'; + const nickname = this.pokemonName(pokemon); - let species = details.split(',')[0]; + const species = details.split(',')[0]; if (nickname === species) return [pokemon.slice(0, 2), `**${species}**`]; return [pokemon.slice(0, 2), `${nickname} (**${species}**)`]; } diff --git a/src/battle.ts b/src/battle.ts index 4c4e245aa..f612f93c9 100644 --- a/src/battle.ts +++ b/src/battle.ts @@ -1033,15 +1033,13 @@ class Battle { this.scene.log.add(args, kwArgs, preempt); } - switchSides(replay?: boolean) { + resetToCurrentTurn() { if (this.ended) { - this.setSidesSwitched(!this.sidesSwitched); this.reset(true); this.fastForwardTo(-1); } else { let turn = this.turn; let paused = this.paused; - this.setSidesSwitched(!this.sidesSwitched); this.reset(true); this.paused = paused; if (turn) this.fastForwardTo(turn); @@ -1052,6 +1050,10 @@ class Battle { } } } + switchSides() { + this.setSidesSwitched(!this.sidesSwitched); + this.resetToCurrentTurn(); + } setSidesSwitched(sidesSwitched: boolean) { this.sidesSwitched = sidesSwitched; if (this.sidesSwitched) { diff --git a/style/battle.css b/style/battle.css index e5f63b267..ba03df766 100644 --- a/style/battle.css +++ b/style/battle.css @@ -952,12 +952,3 @@ button.subtle { button.subtle:hover { text-decoration: underline; } -.hidenicks span.battle-nickname, -.hidenicks span.battle-nickname-foe { - font-size: 0; -} -.hidenicks span.battle-nickname::before, -.hidenicks span.battle-nickname-foe::before{ - content: attr(title); - font-size: 9pt; -}