mirror of
https://github.com/smogon/pokemon-showdown-client.git
synced 2026-03-22 01:55:56 -05:00
We now just use JSON.parse and JSON.stringify - it's supported by all browsers supported by the client. Tools.safeJSON has also been moved to Storage.safeJSON, since it's not used in replays at all.
156 lines
7.0 KiB
HTML
156 lines
7.0 KiB
HTML
<!DOCTYPE html>
|
|
<!--
|
|
.............
|
|
,...................
|
|
,..................========
|
|
....~=##############=======+
|
|
...##################=======.
|
|
..=######+..., +##=======,..
|
|
..=###### ., ..... +=====+,....
|
|
###########~,.. ======
|
|
.....##############~=====+....., pokemonshowdown.com
|
|
..........###########====......
|
|
............#######,==......
|
|
=###.,........+#####+ .......
|
|
####################~......,
|
|
#################+======,
|
|
++++++++++++ =======+
|
|
|
|
Viewing source? We're open source! Check us out on GitHub!
|
|
https://github.com/Zarel/Pokemon-Showdown
|
|
https://github.com/Zarel/Pokemon-Showdown-Client (you are here)
|
|
|
|
Also visit us in the Dev chatroom:
|
|
https://psim.us/dev
|
|
|
|
-->
|
|
<meta charset="utf-8" />
|
|
<meta id="viewport" name="viewport" content="width=device-width" />
|
|
<title>Showdown!</title>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
|
|
<link rel="shortcut icon" href="//play.pokemonshowdown.com/favicon.ico" id="dynamic-favicon" />
|
|
<link rel="icon" sizes="128x128" href="//play.pokemonshowdown.com/favicon-128.png" />
|
|
<link rel="stylesheet" href="//play.pokemonshowdown.com/style/client.css?" />
|
|
<link rel="stylesheet" href="//play.pokemonshowdown.com/style/sim-types.css?" />
|
|
<link rel="stylesheet" href="//play.pokemonshowdown.com/style/battle.css?" />
|
|
<link rel="stylesheet" href="//play.pokemonshowdown.com/style/utilichart.css?" />
|
|
<link rel="stylesheet" href="//play.pokemonshowdown.com/style/font-awesome.css?" />
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
<link rel="manifest" href="/manifest.json" />
|
|
<meta name="google-signin-client_id" content="912270888098-jjnre816lsuhc5clj3vbcn4o2q7p4qvk.apps.googleusercontent.com">
|
|
<script>var Config = {};</script>
|
|
<!--[if lte IE 8]><script>document.location.replace('http://pokemonshowdown.com/autodownload/win');</script><![endif]-->
|
|
<!-- Google Analytics -->
|
|
<script>
|
|
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
|
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
|
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
|
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
|
|
|
if (!(/^(.*)\.psim\.us$/i.test(document.location.hostname))) {
|
|
ga('create', 'UA-26211653-1', 'pokemonshowdown.com');
|
|
} else {
|
|
ga('create', 'UA-26211653-2', 'psim.us');
|
|
}
|
|
ga('send', 'pageview');
|
|
|
|
</script>
|
|
<!-- End Google Analytics -->
|
|
<script>
|
|
window.onerror = function(err, uri, line) {
|
|
var msg = uri + ':' + line + ': ' + err;
|
|
if ('ga' in window) {
|
|
ga('send', 'event', 'Client error', msg);
|
|
} else {
|
|
alert('ERROR: ' + msg);
|
|
}
|
|
return false;
|
|
};
|
|
</script>
|
|
|
|
<div id="header" class="header">
|
|
<img class="logo" src="//play.pokemonshowdown.com/pokemonshowdownbeta.png" srcset="//play.pokemonshowdown.com/pokemonshowdownbeta@2x.png 2x" alt="Pokémon Showdown! (beta)" width="146" height="44" /><div class="maintabbarbottom"></div>
|
|
</div>
|
|
<div class="ps-room scrollable" id="mainmenu"><div class="mainmenuwrapper">
|
|
<div class="leftmenu">
|
|
<div class="activitymenu">
|
|
<div class="pmbox">
|
|
<div class="pm-window news-embed" data-newsid="<!-- newsid -->">
|
|
<h3><button class="closebutton" tabindex="-1"><i class="fa fa-times-circle"></i></button><button class="minimizebutton" tabindex="-1"><i class="fa fa-minus-circle"></i></button>News</h3>
|
|
<div class="pm-log" style="max-height:none">
|
|
<!-- news -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="mainmenu">
|
|
<div id="loading-message" class="mainmessage">Initializing... <noscript>FAILED<br /><br />Pokémon Showdown requires JavaScript.</noscript></div>
|
|
</div>
|
|
</div>
|
|
<div class="rightmenu">
|
|
</div>
|
|
<div class="mainmenufooter">
|
|
<div class="bgcredit"></div>
|
|
<small><a href="//dex.pokemonshowdown.com/" target="_blank">Pokédex</a> | <a href="//replay.pokemonshowdown.com/" target="_blank">Replays</a> | <a href="//pokemonshowdown.com/rules" target="_blank">Rules</a> | <a href="//pokemonshowdown.com/credits" target="_blank">Credits</a> | <a href="http://smogon.com/forums/" target="_blank">Forum</a></small>
|
|
</div>
|
|
</div></div>
|
|
<script>
|
|
var LM = document.getElementById('loading-message');
|
|
LM.innerHTML += ' DONE<br />Loading libraries...';
|
|
</script>
|
|
<script src="//play.pokemonshowdown.com/js/lib/jquery-2.1.4.min.js"></script>
|
|
<script src="//play.pokemonshowdown.com/js/lib/jquery-cookie.js"></script>
|
|
<script src="//play.pokemonshowdown.com/js/lib/autoresize.jquery.min.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/js/lib/soundmanager2-nodebug-jsmin.js?"></script>
|
|
<script>
|
|
soundManager.setup({url: '//play.pokemonshowdown.com/swf/'});
|
|
</script>
|
|
<script src="//play.pokemonshowdown.com/js/lib/html-css-sanitizer-minified.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/js/lib/lodash.core.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/js/lib/backbone.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/js/lib/d3.v3.min.js"></script>
|
|
|
|
<script>
|
|
LM.innerHTML += ' DONE<br />Loading data...';
|
|
</script>
|
|
|
|
<script src="//play.pokemonshowdown.com/config/config.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/js/battledata.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/js/storage.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/data/pokedex-mini.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/data/typechart.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/js/battle.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/js/lib/sockjs-1.1.1-nwjsfix.min.js"></script>
|
|
<script src="//play.pokemonshowdown.com/js/lib/color-thief.min.js"></script>
|
|
|
|
<script>
|
|
LM.innerHTML += ' DONE<br />Loading client...';
|
|
</script>
|
|
|
|
<script src="//play.pokemonshowdown.com/js/client.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/js/client-topbar.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/js/client-mainmenu.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/js/client-teambuilder.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/js/client-ladder.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/js/client-chat.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/js/client-chat-tournament.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/js/client-battle-tooltips.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/js/client-battle.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/js/client-rooms.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/data/graphics.js?"></script>
|
|
|
|
<script>
|
|
var app = new App();
|
|
</script>
|
|
|
|
<script src="//play.pokemonshowdown.com/data/pokedex.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/data/moves.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/data/items.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/data/abilities.js?"></script>
|
|
|
|
<script src="//play.pokemonshowdown.com/data/search-index.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/data/teambuilder-tables.js?"></script>
|
|
<script src="//play.pokemonshowdown.com/js/search.js?"></script>
|
|
|
|
<script src="//play.pokemonshowdown.com/data/aliases.js?" async="async"></script>
|