├── .editorconfig ├── .gitignore ├── LICENSE ├── Procfile ├── README.MD ├── brunch-config.js ├── main.js ├── package.json ├── server.js ├── src ├── assets │ ├── Resources │ │ ├── Audio │ │ │ ├── BGM │ │ │ │ ├── 021-Field04.ogg │ │ │ │ ├── begin.ogg │ │ │ │ ├── route.ogg │ │ │ │ └── title_origin.ogg │ │ │ └── BGS │ │ │ │ ├── Battle Open.ogg │ │ │ │ ├── Choose.ogg │ │ │ │ ├── Door.ogg │ │ │ │ ├── Flee.ogg │ │ │ │ ├── Open Pokeball.ogg │ │ │ │ └── Select.ogg │ │ ├── Fonts │ │ │ ├── pkmndp-demo.html │ │ │ ├── pkmndp-webfont.woff │ │ │ ├── pkmndp-webfont.woff2 │ │ │ ├── pkmndpb-demo.html │ │ │ ├── pkmndpb-webfont.woff │ │ │ ├── pkmndpb-webfont.woff2 │ │ │ ├── pkmnem-demo.html │ │ │ ├── pkmnem-webfont.woff │ │ │ ├── pkmnem-webfont.woff2 │ │ │ ├── pkmnemn-demo.html │ │ │ ├── pkmnemn-webfont.woff │ │ │ ├── pkmnemn-webfont.woff2 │ │ │ ├── pkmnems-demo.html │ │ │ ├── pkmnems-webfont.woff │ │ │ ├── pkmnems-webfont.woff2 │ │ │ ├── pkmnfl-demo.html │ │ │ ├── pkmnfl-webfont.woff │ │ │ ├── pkmnfl-webfont.woff2 │ │ │ ├── pkmnrs-demo.html │ │ │ ├── pkmnrs-webfont.woff │ │ │ ├── pkmnrs-webfont.woff2 │ │ │ ├── pkmnrsi-demo.html │ │ │ ├── pkmnrsi-webfont.woff │ │ │ ├── pkmnrsi-webfont.woff2 │ │ │ └── stylesheet.css │ │ ├── Graphics │ │ │ ├── Animations │ │ │ │ └── DustandGrass.png │ │ │ ├── Autotiles │ │ │ │ ├── Flowers1.png │ │ │ │ ├── Flowers2.png │ │ │ │ ├── Water current east.png │ │ │ │ ├── Water current north.png │ │ │ │ ├── Water current south.png │ │ │ │ └── Water current west.png │ │ │ ├── Battlebacks │ │ │ │ ├── Animation │ │ │ │ │ ├── eff1City.png │ │ │ │ │ ├── eff1Field.png │ │ │ │ │ ├── eff1IndoorA.png │ │ │ │ │ ├── eff1Water.png │ │ │ │ │ ├── eff2City.png │ │ │ │ │ ├── eff2Field.png │ │ │ │ │ ├── eff2IndoorA.png │ │ │ │ │ ├── eff2Water.png │ │ │ │ │ ├── eff3City.png │ │ │ │ │ ├── eff3Field.png │ │ │ │ │ ├── eff3IndoorA.png │ │ │ │ │ └── eff3Water.png │ │ │ │ ├── battlebgCave.png │ │ │ │ ├── battlebgCaveDark.png │ │ │ │ ├── battlebgCity.png │ │ │ │ ├── battlebgField.png │ │ │ │ ├── battlebgForest.png │ │ │ │ ├── battlebgIndoorA.png │ │ │ │ ├── battlebgIndoorC.png │ │ │ │ ├── battlebgMountain.png │ │ │ │ ├── battlebgWater.png │ │ │ │ ├── bg-meadow.jpg │ │ │ │ ├── enemybaseCave.png │ │ │ │ ├── enemybaseCity.png │ │ │ │ ├── enemybaseCityConcrete.png │ │ │ │ ├── enemybaseCityDirt.png │ │ │ │ ├── enemybaseCityGrass.png │ │ │ │ ├── enemybaseCitySand.png │ │ │ │ ├── enemybaseCityWater.png │ │ │ │ ├── enemybaseField.png │ │ │ │ ├── enemybaseFieldConcrete.png │ │ │ │ ├── enemybaseFieldDirt.png │ │ │ │ ├── enemybaseFieldGrass.png │ │ │ │ ├── enemybaseFieldSand.png │ │ │ │ ├── enemybaseFieldWater.png │ │ │ │ ├── enemybaseForest.png │ │ │ │ ├── enemybaseForestGrass.png │ │ │ │ ├── enemybaseIndoorA.png │ │ │ │ ├── enemybaseIndoorC.png │ │ │ │ ├── enemybaseWater.png │ │ │ │ ├── playerbaseCave.png │ │ │ │ ├── playerbaseCity.png │ │ │ │ ├── playerbaseCityConcrete.png │ │ │ │ ├── playerbaseCityDirt.png │ │ │ │ ├── playerbaseCityGrass.png │ │ │ │ ├── playerbaseCitySand.png │ │ │ │ ├── playerbaseCityWater.png │ │ │ │ ├── playerbaseField.png │ │ │ │ ├── playerbaseFieldConcrete.png │ │ │ │ ├── playerbaseFieldDirt.png │ │ │ │ ├── playerbaseFieldGrass.png │ │ │ │ ├── playerbaseFieldSand.png │ │ │ │ ├── playerbaseFieldWater.png │ │ │ │ ├── playerbaseForest.png │ │ │ │ ├── playerbaseForestGrass.png │ │ │ │ ├── playerbaseIndoorA.png │ │ │ │ ├── playerbaseIndoorC.png │ │ │ │ └── playerbaseWater.png │ │ │ ├── Battlers │ │ │ │ ├── 383.png │ │ │ │ ├── 460_1.png │ │ │ │ ├── 460b_1.png │ │ │ │ ├── 504.png │ │ │ │ ├── 727.png │ │ │ │ └── pikachu.png │ │ │ ├── Characters │ │ │ │ ├── boy_run.png │ │ │ │ ├── doors5.png │ │ │ │ ├── girl_run.png │ │ │ │ ├── trchar000.png │ │ │ │ └── trchar001.png │ │ │ ├── Pictures │ │ │ │ ├── battle │ │ │ │ │ ├── cmd_buttons.png │ │ │ │ │ ├── command_menu.png │ │ │ │ │ ├── exp_bar.png │ │ │ │ │ ├── exp_bar_bg.png │ │ │ │ │ ├── foe_hp_bar.png │ │ │ │ │ ├── foe_hp_bar_bg.png │ │ │ │ │ ├── hp_bar.png │ │ │ │ │ ├── hp_bar_bg.png │ │ │ │ │ ├── partyBar.png │ │ │ │ │ └── partyIndicators.png │ │ │ │ ├── bg.png │ │ │ │ ├── bg1.png │ │ │ │ ├── category.png │ │ │ │ ├── gender_symbol.png │ │ │ │ ├── introBoy.png │ │ │ │ ├── introGirl.png │ │ │ │ ├── introOak.png │ │ │ │ ├── introProf.png │ │ │ │ ├── introbase.png │ │ │ │ ├── introbg.png │ │ │ │ ├── load_button.png │ │ │ │ ├── loadbg.png │ │ │ │ ├── loading.png │ │ │ │ ├── moving_bg.png │ │ │ │ ├── newBattleMessageBox.png │ │ │ │ ├── selarrow.png │ │ │ │ ├── shadeFull.png │ │ │ │ ├── statuses.PNG │ │ │ │ └── white_bg.png │ │ │ ├── Tilesets │ │ │ │ ├── Interior_general.png │ │ │ │ ├── Outside.png │ │ │ │ └── movement_permissions.png │ │ │ ├── Titles │ │ │ │ ├── custom_background.png │ │ │ │ ├── custom_bars.png │ │ │ │ ├── custom_bars_shine.png │ │ │ │ ├── custom_clouds_1.png │ │ │ │ ├── custom_clouds_2.png │ │ │ │ ├── custom_effect.png │ │ │ │ ├── custom_plane.png │ │ │ │ ├── custom_pokelogo.png │ │ │ │ ├── custom_pokelogo_shine.png │ │ │ │ ├── gen_5_bg.png │ │ │ │ ├── gen_6_effect2.png │ │ │ │ ├── gen_6_particle.png │ │ │ │ ├── gen_6_particle2.png │ │ │ │ ├── gen_6_shine.png │ │ │ │ ├── pokelogo.png │ │ │ │ ├── pokemonjs.png │ │ │ │ └── pokestart.png │ │ │ └── Windowskins │ │ │ │ ├── 001-Blue01.png │ │ │ │ ├── SignShow2To.png │ │ │ │ ├── SpeechShow.png │ │ │ │ ├── Window.png │ │ │ │ ├── Windowskin.PNG │ │ │ │ ├── choice 1.png │ │ │ │ ├── choice 10.png │ │ │ │ ├── choice 11.png │ │ │ │ ├── choice 12.png │ │ │ │ ├── choice 13.png │ │ │ │ ├── choice 14.png │ │ │ │ ├── choice 15.png │ │ │ │ ├── choice 16.png │ │ │ │ ├── choice 17.png │ │ │ │ ├── choice 18.png │ │ │ │ ├── choice 19.png │ │ │ │ ├── choice 2.png │ │ │ │ ├── choice 20.png │ │ │ │ ├── choice 21.png │ │ │ │ ├── choice 22.png │ │ │ │ ├── choice 23.png │ │ │ │ ├── choice 24.png │ │ │ │ ├── choice 25.png │ │ │ │ ├── choice 26.png │ │ │ │ ├── choice 27.png │ │ │ │ ├── choice 28.png │ │ │ │ ├── choice 3.png │ │ │ │ ├── choice 4.png │ │ │ │ ├── choice 5.png │ │ │ │ ├── choice 6.png │ │ │ │ ├── choice 7.png │ │ │ │ ├── choice 8.png │ │ │ │ ├── choice 9.png │ │ │ │ ├── choice dp.png │ │ │ │ ├── choice ug.png │ │ │ │ ├── goldskin.png │ │ │ │ ├── sign hgss 1.png │ │ │ │ ├── sign hgss 2.png │ │ │ │ ├── signskin.png │ │ │ │ ├── speech dp 1.png │ │ │ │ ├── speech dp 10.png │ │ │ │ ├── speech dp 11.png │ │ │ │ ├── speech dp 12.png │ │ │ │ ├── speech dp 13.png │ │ │ │ ├── speech dp 14.png │ │ │ │ ├── speech dp 15.png │ │ │ │ ├── speech dp 16.png │ │ │ │ ├── speech dp 17.png │ │ │ │ ├── speech dp 18.png │ │ │ │ ├── speech dp 19.png │ │ │ │ ├── speech dp 2.png │ │ │ │ ├── speech dp 20.png │ │ │ │ ├── speech dp 3.png │ │ │ │ ├── speech dp 4.png │ │ │ │ ├── speech dp 5.png │ │ │ │ ├── speech dp 6.png │ │ │ │ ├── speech dp 7.png │ │ │ │ ├── speech dp 8.png │ │ │ │ ├── speech dp 9.png │ │ │ │ ├── speech em.png │ │ │ │ ├── speech frlg.png │ │ │ │ ├── speech hgss 1.png │ │ │ │ ├── speech hgss 10.png │ │ │ │ ├── speech hgss 11.png │ │ │ │ ├── speech hgss 12.png │ │ │ │ ├── speech hgss 13.png │ │ │ │ ├── speech hgss 14.png │ │ │ │ ├── speech hgss 15.png │ │ │ │ ├── speech hgss 16.png │ │ │ │ ├── speech hgss 17.png │ │ │ │ ├── speech hgss 18.png │ │ │ │ ├── speech hgss 19.png │ │ │ │ ├── speech hgss 2.png │ │ │ │ ├── speech hgss 20.png │ │ │ │ ├── speech hgss 3.png │ │ │ │ ├── speech hgss 4.png │ │ │ │ ├── speech hgss 5.png │ │ │ │ ├── speech hgss 6.png │ │ │ │ ├── speech hgss 7.png │ │ │ │ ├── speech hgss 8.png │ │ │ │ ├── speech hgss 9.png │ │ │ │ ├── speech pl 1.png │ │ │ │ ├── speech pl 10.png │ │ │ │ ├── speech pl 11.png │ │ │ │ ├── speech pl 12.png │ │ │ │ ├── speech pl 13.png │ │ │ │ ├── speech pl 14.png │ │ │ │ ├── speech pl 15.png │ │ │ │ ├── speech pl 16.png │ │ │ │ ├── speech pl 17.png │ │ │ │ ├── speech pl 18.png │ │ │ │ ├── speech pl 19.png │ │ │ │ ├── speech pl 2.png │ │ │ │ ├── speech pl 20.png │ │ │ │ ├── speech pl 3.png │ │ │ │ ├── speech pl 4.png │ │ │ │ ├── speech pl 5.png │ │ │ │ ├── speech pl 6.png │ │ │ │ ├── speech pl 7.png │ │ │ │ ├── speech pl 8.png │ │ │ │ ├── speech pl 9.png │ │ │ │ ├── speech rs.png │ │ │ │ ├── speech ug 1.png │ │ │ │ └── speech ug 2.png │ │ └── Maps │ │ │ ├── Pallet_Town │ │ │ ├── pallet_town_01.json │ │ │ ├── pallet_town_02.json │ │ │ └── rules.txt │ │ │ ├── Route_1 │ │ │ ├── route_1.json │ │ │ └── rules.txt │ │ │ ├── rules.tmx │ │ │ └── rules.txt │ ├── index.html │ └── style.css └── core │ ├── Data.js │ ├── DebugGUI.js │ ├── Events.js │ ├── Game.js │ ├── GameObjects │ ├── BattleMenu.js │ ├── Choice.js │ ├── Menu.js │ ├── Message.js │ ├── NPC.js │ ├── NameScreen.js │ └── Player.js │ ├── Pkmn.js │ ├── States │ ├── Battle.js │ ├── Bootstrap.js │ ├── Intro.js │ ├── Load.js │ ├── Overworld.js │ ├── Preload.js │ └── Title.js │ ├── config.js │ ├── main.js │ └── utils.js └── vendor └── libs ├── HealthBar.standalone.js ├── nine-patch-phaser-plugin.min.js └── phaser-input.min.js /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | indent_size = 2 9 | indent_style = space 10 | insert_final_newline = true 11 | trim_trailing_whitespace = true 12 | 13 | [*.md] 14 | trim_trailing_whitespace = false 15 | 16 | [*.py] 17 | indent_size = 4 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Numerous always-ignore extensions 2 | *.diff 3 | *.err 4 | *.orig 5 | *.log 6 | *.rej 7 | *.swo 8 | *.swp 9 | *.vi 10 | *~ 11 | *.sass-cache 12 | 13 | # OS or Editor folders 14 | .DS_Store 15 | .cache 16 | .project 17 | .settings 18 | .tmproj 19 | nbproject 20 | Thumbs.db 21 | 22 | # NPM packages folder. 23 | node_modules/ 24 | 25 | # Brunch folder for temporary files. 26 | tmp/ 27 | 28 | # Brunch output folder. 29 | build/ 30 | 31 | # Bower stuff. 32 | bower_components/ 33 | 34 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Adrian Manjarres 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: node server.js 2 | -------------------------------------------------------------------------------- /README.MD: -------------------------------------------------------------------------------- 1 | ![Pokemon JS logo](src/assets/Resources/Graphics/Titles/pokemonjs.png) 2 | 3 | A third generation Pokemon game written in Javascript using [phaser.io](http://phaser.io/) and [Electron](https://electron.atom.io/). Inspired by [Pokemon essentials](http://pokemonessentials.wikia.com/wiki/Pok%C3%A9mon_Essentials_Wiki) and this project aims to be another tool alternive to fans to make pokemon fan games. 4 | 5 | ## Getting Started 6 | 7 | These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. 8 | 9 | ### Prerequisites 10 | 11 | * Node js and npm (download [here](https://nodejs.org/en/download/)) 12 | * Git (download [here](https://git-scm.com/downloads)) 13 | 14 | 15 | ### Installing 16 | 17 | A step by step series of examples that tell you have to get a development env of Pokmeonjs running 18 | 19 | First copy the ropository to your machine. 20 | 21 | ``` 22 | git clone https://github.com/andarms/PokemonJS.git 23 | ``` 24 | 25 | Then enter in the project directory and intall the nmp dependencies 26 | 27 | ``` 28 | cd PokemonJs 29 | npm install 30 | ``` 31 | When all the pakages are installed you can run PokemonJS 32 | 33 | ``` 34 | npm run dev 35 | ``` 36 | 37 | ## Authors 38 | 39 | * **Adrian Manjarres** 40 | 41 | ## License 42 | 43 | This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details 44 | 45 | ## Acknowledgments 46 | 47 | * [@maruno42](https://twitter.com/maruno42), the the guy in charge of the RMXP mod Pokémon Essentials. Most graphics are taken from the pokemon essentials project. 48 | * [@LukaSJ0](https://twitter.com/LukaSJ0), his work on the Elite Battle Add on has inspired me. 49 | -------------------------------------------------------------------------------- /brunch-config.js: -------------------------------------------------------------------------------- 1 | // See http://brunch.io for documentation. 2 | 3 | module.exports = { 4 | files: { 5 | javascripts: { 6 | joinTo: { 7 | 'game.js': /^src\/core/, 8 | 'modules.js': /(^bower_components|node_modules)\//, 9 | 'vendor.js': /^vendor\/libs/ 10 | } 11 | } 12 | }, 13 | npm: { 14 | static: [ 15 | 'node_modules/dat.gui/build/dat.gui.js', 16 | 'node_modules/phaser-ce/build/phaser.js' 17 | ] 18 | }, 19 | paths: { 20 | public: 'build', 21 | watched: ['src', 'vendor'] 22 | }, 23 | plugins: { 24 | babel: { 25 | ignore: /^(bower_components|node_modules|vendor)/ 26 | } 27 | } 28 | }; 29 | -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | const {app, BrowserWindow} = require('electron') 2 | const path = require('path') 3 | const url = require('url') 4 | 5 | // Keep a global reference of the window object, if you don't, the window will 6 | // be closed automatically when the JavaScript object is garbage collected. 7 | let win 8 | 9 | function createWindow () { 10 | // Create the browser window. 11 | win = new BrowserWindow({width: 512, height: 432, resizable: true}) 12 | 13 | // and load the index.html of the app. 14 | win.loadURL(url.format({ 15 | pathname: path.join(`${__dirname}/build/index.html`), 16 | protocol: 'file:', 17 | slashes: true 18 | })) 19 | 20 | // Emitted when the window is closed. 21 | win.on('closed', () => { 22 | // Dereference the window object, usually you would store windows 23 | // in an array if your app supports multi windows, this is the time 24 | // when you should delete the corresponding element. 25 | win = null 26 | }) 27 | } 28 | 29 | // This method will be called when Electron has finished 30 | // initialization and is ready to create browser windows. 31 | // Some APIs can only be used after this event occurs. 32 | app.on('ready', createWindow) 33 | 34 | // Quit when all windows are closed. 35 | app.on('window-all-closed', () => { 36 | // On macOS it is common for applications and their menu bar 37 | // to stay active until the user quits explicitly with Cmd + Q 38 | if (process.platform !== 'darwin') { 39 | app.quit() 40 | } 41 | }) 42 | 43 | app.on('activate', () => { 44 | // On macOS it's common to re-create a window in the app when the 45 | // dock icon is clicked and there are no other windows open. 46 | if (win === null) { 47 | createWindow() 48 | } 49 | }) 50 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pkmnjs", 3 | "version": "0.0.1", 4 | "description": "Javascript Pokemon Game", 5 | "main": "main.js", 6 | "scripts": { 7 | "dev": "concurrently --kill-others \"brunch watch\" \"electron . \"", 8 | "electron": "electron .", 9 | "watch": "brunch watch", 10 | "postinstall": "brunch build -p" 11 | }, 12 | "dependencies": { 13 | "babel-brunch": "^6.0.6", 14 | "brunch": "^2.0.0", 15 | "dat.gui": "^0.6.1", 16 | "javascript-brunch": "^2.0.0", 17 | "phaser-ce": "^2.7.1", 18 | "statik": "^1.4.6", 19 | "uglify-js-brunch": "^2.0.0" 20 | }, 21 | "devDependencies": { 22 | "auto-reload-brunch": "^2.0.0", 23 | "clean-css-brunch": "^2.0.0", 24 | "concurrently": "^3.4.0", 25 | "css-brunch": "^2.0.0", 26 | "electron": "^1.6.2" 27 | }, 28 | "author": "Adrian Manjarres", 29 | "license": "MIT" 30 | } 31 | -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | var statik = require('statik'); 2 | statik({ 3 | port: process.env.PORT || 3333, 4 | root: './build' 5 | }); 6 | -------------------------------------------------------------------------------- /src/assets/Resources/Audio/BGM/021-Field04.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Audio/BGM/021-Field04.ogg -------------------------------------------------------------------------------- /src/assets/Resources/Audio/BGM/begin.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Audio/BGM/begin.ogg -------------------------------------------------------------------------------- /src/assets/Resources/Audio/BGM/route.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Audio/BGM/route.ogg -------------------------------------------------------------------------------- /src/assets/Resources/Audio/BGM/title_origin.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Audio/BGM/title_origin.ogg -------------------------------------------------------------------------------- /src/assets/Resources/Audio/BGS/Battle Open.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Audio/BGS/Battle Open.ogg -------------------------------------------------------------------------------- /src/assets/Resources/Audio/BGS/Choose.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Audio/BGS/Choose.ogg -------------------------------------------------------------------------------- /src/assets/Resources/Audio/BGS/Door.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Audio/BGS/Door.ogg -------------------------------------------------------------------------------- /src/assets/Resources/Audio/BGS/Flee.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Audio/BGS/Flee.ogg -------------------------------------------------------------------------------- /src/assets/Resources/Audio/BGS/Open Pokeball.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Audio/BGS/Open Pokeball.ogg -------------------------------------------------------------------------------- /src/assets/Resources/Audio/BGS/Select.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Audio/BGS/Select.ogg -------------------------------------------------------------------------------- /src/assets/Resources/Fonts/pkmndp-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Fonts/pkmndp-webfont.woff -------------------------------------------------------------------------------- /src/assets/Resources/Fonts/pkmndp-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Fonts/pkmndp-webfont.woff2 -------------------------------------------------------------------------------- /src/assets/Resources/Fonts/pkmndpb-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Fonts/pkmndpb-webfont.woff -------------------------------------------------------------------------------- /src/assets/Resources/Fonts/pkmndpb-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Fonts/pkmndpb-webfont.woff2 -------------------------------------------------------------------------------- /src/assets/Resources/Fonts/pkmnem-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Fonts/pkmnem-webfont.woff -------------------------------------------------------------------------------- /src/assets/Resources/Fonts/pkmnem-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Fonts/pkmnem-webfont.woff2 -------------------------------------------------------------------------------- /src/assets/Resources/Fonts/pkmnemn-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Fonts/pkmnemn-webfont.woff -------------------------------------------------------------------------------- /src/assets/Resources/Fonts/pkmnemn-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Fonts/pkmnemn-webfont.woff2 -------------------------------------------------------------------------------- /src/assets/Resources/Fonts/pkmnems-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Fonts/pkmnems-webfont.woff -------------------------------------------------------------------------------- /src/assets/Resources/Fonts/pkmnems-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Fonts/pkmnems-webfont.woff2 -------------------------------------------------------------------------------- /src/assets/Resources/Fonts/pkmnfl-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Fonts/pkmnfl-webfont.woff -------------------------------------------------------------------------------- /src/assets/Resources/Fonts/pkmnfl-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Fonts/pkmnfl-webfont.woff2 -------------------------------------------------------------------------------- /src/assets/Resources/Fonts/pkmnrs-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Fonts/pkmnrs-webfont.woff -------------------------------------------------------------------------------- /src/assets/Resources/Fonts/pkmnrs-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Fonts/pkmnrs-webfont.woff2 -------------------------------------------------------------------------------- /src/assets/Resources/Fonts/pkmnrsi-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Fonts/pkmnrsi-webfont.woff -------------------------------------------------------------------------------- /src/assets/Resources/Fonts/pkmnrsi-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Fonts/pkmnrsi-webfont.woff2 -------------------------------------------------------------------------------- /src/assets/Resources/Fonts/stylesheet.css: -------------------------------------------------------------------------------- 1 | /*! Generated by Font Squirrel (https://www.fontsquirrel.com) on April 12, 2017 */ 2 | 3 | 4 | 5 | @font-face { 6 | font-family: 'power_clearregular'; 7 | src: url('pkmndp-webfont.woff2') format('woff2'), 8 | url('pkmndp-webfont.woff') format('woff'); 9 | font-weight: normal; 10 | font-style: normal; 11 | 12 | } 13 | 14 | 15 | 16 | 17 | @font-face { 18 | font-family: 'power_greenregular'; 19 | src: url('pkmnem-webfont.woff2') format('woff2'), 20 | url('pkmnem-webfont.woff') format('woff'); 21 | font-weight: normal; 22 | font-style: normal; 23 | 24 | } 25 | 26 | 27 | 28 | 29 | @font-face { 30 | font-family: 'power_clearbold'; 31 | src: url('pkmndpb-webfont.woff2') format('woff2'), 32 | url('pkmndpb-webfont.woff') format('woff'); 33 | font-weight: normal; 34 | font-style: normal; 35 | 36 | } 37 | 38 | 39 | 40 | 41 | @font-face { 42 | font-family: 'power_green_narrowregular'; 43 | src: url('pkmnemn-webfont.woff2') format('woff2'), 44 | url('pkmnemn-webfont.woff') format('woff'); 45 | font-weight: normal; 46 | font-style: normal; 47 | 48 | } 49 | 50 | 51 | 52 | 53 | @font-face { 54 | font-family: 'power_green_smallregular'; 55 | src: url('pkmnems-webfont.woff2') format('woff2'), 56 | url('pkmnems-webfont.woff') format('woff'); 57 | font-weight: normal; 58 | font-style: normal; 59 | 60 | } 61 | 62 | 63 | 64 | 65 | @font-face { 66 | font-family: 'power_red_and_greenregular'; 67 | src: url('pkmnfl-webfont.woff2') format('woff2'), 68 | url('pkmnfl-webfont.woff') format('woff'); 69 | font-weight: normal; 70 | font-style: normal; 71 | 72 | } 73 | 74 | 75 | 76 | 77 | @font-face { 78 | font-family: 'power_red_and_blueregular'; 79 | src: url('pkmnrs-webfont.woff2') format('woff2'), 80 | url('pkmnrs-webfont.woff') format('woff'); 81 | font-weight: normal; 82 | font-style: normal; 83 | 84 | } 85 | 86 | 87 | 88 | 89 | @font-face { 90 | font-family: 'power_red_and_blue_intlRg'; 91 | src: url('pkmnrsi-webfont.woff2') format('woff2'), 92 | url('pkmnrsi-webfont.woff') format('woff'); 93 | font-weight: normal; 94 | font-style: normal; 95 | 96 | } -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Animations/DustandGrass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Animations/DustandGrass.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Autotiles/Flowers1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Autotiles/Flowers1.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Autotiles/Flowers2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Autotiles/Flowers2.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Autotiles/Water current east.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Autotiles/Water current east.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Autotiles/Water current north.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Autotiles/Water current north.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Autotiles/Water current south.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Autotiles/Water current south.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Autotiles/Water current west.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Autotiles/Water current west.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/Animation/eff1City.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/Animation/eff1City.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/Animation/eff1Field.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/Animation/eff1Field.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/Animation/eff1IndoorA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/Animation/eff1IndoorA.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/Animation/eff1Water.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/Animation/eff1Water.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/Animation/eff2City.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/Animation/eff2City.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/Animation/eff2Field.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/Animation/eff2Field.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/Animation/eff2IndoorA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/Animation/eff2IndoorA.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/Animation/eff2Water.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/Animation/eff2Water.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/Animation/eff3City.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/Animation/eff3City.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/Animation/eff3Field.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/Animation/eff3Field.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/Animation/eff3IndoorA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/Animation/eff3IndoorA.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/Animation/eff3Water.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/Animation/eff3Water.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/battlebgCave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/battlebgCave.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/battlebgCaveDark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/battlebgCaveDark.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/battlebgCity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/battlebgCity.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/battlebgField.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/battlebgField.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/battlebgForest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/battlebgForest.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/battlebgIndoorA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/battlebgIndoorA.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/battlebgIndoorC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/battlebgIndoorC.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/battlebgMountain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/battlebgMountain.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/battlebgWater.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/battlebgWater.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/bg-meadow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/bg-meadow.jpg -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/enemybaseCave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/enemybaseCave.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/enemybaseCity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/enemybaseCity.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/enemybaseCityConcrete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/enemybaseCityConcrete.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/enemybaseCityDirt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/enemybaseCityDirt.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/enemybaseCityGrass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/enemybaseCityGrass.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/enemybaseCitySand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/enemybaseCitySand.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/enemybaseCityWater.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/enemybaseCityWater.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/enemybaseField.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/enemybaseField.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/enemybaseFieldConcrete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/enemybaseFieldConcrete.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/enemybaseFieldDirt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/enemybaseFieldDirt.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/enemybaseFieldGrass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/enemybaseFieldGrass.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/enemybaseFieldSand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/enemybaseFieldSand.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/enemybaseFieldWater.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/enemybaseFieldWater.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/enemybaseForest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/enemybaseForest.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/enemybaseForestGrass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/enemybaseForestGrass.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/enemybaseIndoorA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/enemybaseIndoorA.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/enemybaseIndoorC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/enemybaseIndoorC.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/enemybaseWater.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/enemybaseWater.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/playerbaseCave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/playerbaseCave.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/playerbaseCity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/playerbaseCity.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/playerbaseCityConcrete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/playerbaseCityConcrete.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/playerbaseCityDirt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/playerbaseCityDirt.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/playerbaseCityGrass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/playerbaseCityGrass.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/playerbaseCitySand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/playerbaseCitySand.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/playerbaseCityWater.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/playerbaseCityWater.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/playerbaseField.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/playerbaseField.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/playerbaseFieldConcrete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/playerbaseFieldConcrete.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/playerbaseFieldDirt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/playerbaseFieldDirt.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/playerbaseFieldGrass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/playerbaseFieldGrass.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/playerbaseFieldSand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/playerbaseFieldSand.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/playerbaseFieldWater.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/playerbaseFieldWater.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/playerbaseForest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/playerbaseForest.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/playerbaseForestGrass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/playerbaseForestGrass.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/playerbaseIndoorA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/playerbaseIndoorA.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/playerbaseIndoorC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/playerbaseIndoorC.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlebacks/playerbaseWater.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlebacks/playerbaseWater.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlers/383.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlers/383.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlers/460_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlers/460_1.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlers/460b_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlers/460b_1.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlers/504.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlers/504.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlers/727.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlers/727.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Battlers/pikachu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Battlers/pikachu.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Characters/boy_run.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Characters/boy_run.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Characters/doors5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Characters/doors5.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Characters/girl_run.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Characters/girl_run.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Characters/trchar000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Characters/trchar000.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Characters/trchar001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Characters/trchar001.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/battle/cmd_buttons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/battle/cmd_buttons.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/battle/command_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/battle/command_menu.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/battle/exp_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/battle/exp_bar.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/battle/exp_bar_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/battle/exp_bar_bg.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/battle/foe_hp_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/battle/foe_hp_bar.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/battle/foe_hp_bar_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/battle/foe_hp_bar_bg.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/battle/hp_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/battle/hp_bar.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/battle/hp_bar_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/battle/hp_bar_bg.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/battle/partyBar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/battle/partyBar.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/battle/partyIndicators.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/battle/partyIndicators.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/bg.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/bg1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/bg1.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/category.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/category.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/gender_symbol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/gender_symbol.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/introBoy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/introBoy.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/introGirl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/introGirl.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/introOak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/introOak.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/introProf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/introProf.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/introbase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/introbase.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/introbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/introbg.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/load_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/load_button.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/loadbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/loadbg.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/loading.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/moving_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/moving_bg.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/newBattleMessageBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/newBattleMessageBox.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/selarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/selarrow.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/shadeFull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/shadeFull.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/statuses.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/statuses.PNG -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Pictures/white_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Pictures/white_bg.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Tilesets/Interior_general.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Tilesets/Interior_general.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Tilesets/Outside.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Tilesets/Outside.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Tilesets/movement_permissions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Tilesets/movement_permissions.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Titles/custom_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Titles/custom_background.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Titles/custom_bars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Titles/custom_bars.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Titles/custom_bars_shine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Titles/custom_bars_shine.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Titles/custom_clouds_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Titles/custom_clouds_1.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Titles/custom_clouds_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Titles/custom_clouds_2.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Titles/custom_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Titles/custom_effect.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Titles/custom_plane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Titles/custom_plane.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Titles/custom_pokelogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Titles/custom_pokelogo.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Titles/custom_pokelogo_shine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Titles/custom_pokelogo_shine.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Titles/gen_5_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Titles/gen_5_bg.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Titles/gen_6_effect2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Titles/gen_6_effect2.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Titles/gen_6_particle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Titles/gen_6_particle.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Titles/gen_6_particle2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Titles/gen_6_particle2.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Titles/gen_6_shine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Titles/gen_6_shine.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Titles/pokelogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Titles/pokelogo.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Titles/pokemonjs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Titles/pokemonjs.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Titles/pokestart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Titles/pokestart.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/001-Blue01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/001-Blue01.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/SignShow2To.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/SignShow2To.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/SpeechShow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/SpeechShow.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/Window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/Window.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/Windowskin.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/Windowskin.PNG -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 1.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 10.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 11.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 12.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 13.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 14.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 15.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 16.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 17.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 18.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 19.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 2.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 20.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 21.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 22.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 23.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 24.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 25.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 26.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 27.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 28.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 3.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 4.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 5.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 6.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 7.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 8.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice 9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice 9.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice dp.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/choice ug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/choice ug.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/goldskin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/goldskin.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/sign hgss 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/sign hgss 1.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/sign hgss 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/sign hgss 2.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/signskin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/signskin.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 1.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 10.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 11.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 12.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 13.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 14.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 15.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 16.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 17.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 18.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 19.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 2.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 20.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 3.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 4.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 5.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 6.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 7.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 8.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech dp 9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech dp 9.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech em.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech em.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech frlg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech frlg.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 1.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 10.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 11.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 12.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 13.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 14.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 15.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 16.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 17.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 18.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 19.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 2.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 20.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 3.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 4.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 5.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 6.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 7.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 8.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech hgss 9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech hgss 9.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 1.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 10.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 11.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 12.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 13.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 14.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 15.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 16.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 17.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 18.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 19.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 2.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 20.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 3.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 4.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 5.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 6.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 7.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 8.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech pl 9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech pl 9.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech rs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech rs.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech ug 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech ug 1.png -------------------------------------------------------------------------------- /src/assets/Resources/Graphics/Windowskins/speech ug 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andarms/PokemonJS/3e1857f68eaefbc170e9fcda62bb4dae9609d004/src/assets/Resources/Graphics/Windowskins/speech ug 2.png -------------------------------------------------------------------------------- /src/assets/Resources/Maps/Pallet_Town/pallet_town_02.json: -------------------------------------------------------------------------------- 1 | { "height":12, 2 | "layers":[ 3 | { 4 | "data":[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4018, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4018, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 5 | "height":12, 6 | "name":"Collisions", 7 | "opacity":1, 8 | "type":"tilelayer", 9 | "visible":true, 10 | "width":16, 11 | "x":0, 12 | "y":0 13 | }, 14 | { 15 | "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4073, 4073, 4073, 4073, 4073, 4073, 4073, 4073, 4073, 4073, 4073, 4073, 0, 0, 0, 0, 4081, 4081, 4081, 4081, 4081, 4081, 4081, 4081, 4081, 4081, 4081, 4081, 0, 0, 0, 0, 4466, 4466, 4466, 4466, 4466, 4466, 4466, 4466, 4466, 4466, 4466, 4466, 0, 0, 0, 0, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 0, 0, 0, 0, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 0, 0, 0, 0, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 0, 0, 0, 0, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 0, 0, 0, 0, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 16 | "height":12, 17 | "name":"1", 18 | "opacity":1, 19 | "type":"tilelayer", 20 | "visible":true, 21 | "width":16, 22 | "x":0, 23 | "y":0 24 | }, 25 | { 26 | "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4987, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4993, 4994, 4995, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5001, 5002, 5003, 0, 0, 0, 0, 5565, 5566, 5567, 0, 0, 0, 0, 0, 0, 5009, 5010, 5011, 0, 0, 0, 0, 5573, 5574, 5575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4902, 4903, 4904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4910, 4911, 4912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 27 | "height":12, 28 | "name":"2", 29 | "opacity":1, 30 | "type":"tilelayer", 31 | "visible":true, 32 | "width":16, 33 | "x":0, 34 | "y":0 35 | }, 36 | { 37 | "draworder":"topdown", 38 | "height":24, 39 | "name":"Events", 40 | "objects":[ 41 | { 42 | "height":32, 43 | "id":6, 44 | "name":"", 45 | "properties": 46 | { 47 | "frame":"0", 48 | "map":"Pallet_Town\/pallet_town_01", 49 | "x":"8", 50 | "y":"10" 51 | }, 52 | "rotation":0, 53 | "type":"Warp", 54 | "visible":true, 55 | "width":32, 56 | "x":256, 57 | "y":320 58 | }], 59 | "opacity":1, 60 | "type":"objectgroup", 61 | "visible":true, 62 | "width":30, 63 | "x":0, 64 | "y":0 65 | }, 66 | { 67 | "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 68 | "height":12, 69 | "name":"3", 70 | "opacity":1, 71 | "type":"tilelayer", 72 | "visible":true, 73 | "width":16, 74 | "x":0, 75 | "y":0 76 | }], 77 | "nextobjectid":12, 78 | "orientation":"orthogonal", 79 | "properties": 80 | { 81 | 82 | }, 83 | "renderorder":"right-down", 84 | "tileheight":32, 85 | "tilesets":[ 86 | { 87 | "columns":8, 88 | "firstgid":1, 89 | "image":"..\/..\/Graphics\/Tilesets\/Outside.png", 90 | "imageheight":16064, 91 | "imagewidth":256, 92 | "margin":0, 93 | "name":"Outside", 94 | "properties": 95 | { 96 | 97 | }, 98 | "spacing":0, 99 | "tilecount":4016, 100 | "tileheight":32, 101 | "tileproperties": 102 | { 103 | "0": 104 | { 105 | "collide":"true" 106 | } 107 | }, 108 | "tilewidth":32 109 | }, 110 | { 111 | "columns":12, 112 | "firstgid":4017, 113 | "image":"..\/..\/Graphics\/Tilesets\/movement_permissions.png", 114 | "imageheight":64, 115 | "imagewidth":384, 116 | "margin":0, 117 | "name":"movement_permissions", 118 | "properties": 119 | { 120 | 121 | }, 122 | "spacing":0, 123 | "tilecount":24, 124 | "tileheight":32, 125 | "tileproperties": 126 | { 127 | "0": 128 | { 129 | "collide":"true" 130 | }, 131 | "9": 132 | { 133 | "warp":"true" 134 | } 135 | }, 136 | "tilewidth":32 137 | }, 138 | { 139 | "columns":8, 140 | "firstgid":4041, 141 | "image":"..\/..\/Graphics\/Tilesets\/interior_general.PNG", 142 | "imageheight":8032, 143 | "imagewidth":256, 144 | "margin":0, 145 | "name":"interior_general", 146 | "properties": 147 | { 148 | 149 | }, 150 | "spacing":0, 151 | "tilecount":2008, 152 | "tileheight":32, 153 | "tilewidth":32 154 | }], 155 | "tilewidth":32, 156 | "version":1, 157 | "width":16 158 | } -------------------------------------------------------------------------------- /src/assets/Resources/Maps/Pallet_Town/rules.txt: -------------------------------------------------------------------------------- 1 | ../rules.tmx -------------------------------------------------------------------------------- /src/assets/Resources/Maps/Route_1/rules.txt: -------------------------------------------------------------------------------- 1 | ../rules.tmx -------------------------------------------------------------------------------- /src/assets/Resources/Maps/rules.tmx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 15 | 0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 16 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 17 | 0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 18 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 19 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 20 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 21 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 22 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 23 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 24 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 25 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 26 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 27 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 28 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 29 | 30 | 31 | 32 | 33 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 34 | 0,7,0,957,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 35 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 36 | 0,714,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 37 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 38 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 39 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 40 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 41 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 42 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 43 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 44 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 45 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 46 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 47 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /src/assets/Resources/Maps/rules.txt: -------------------------------------------------------------------------------- 1 | rules.tmx -------------------------------------------------------------------------------- /src/assets/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Pokemon Js 8 | 9 | 10 | 11 | 12 | 13 |

Force to load the Fonts

14 | 15 | 20 | 21 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/assets/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | } 4 | 5 | html { 6 | width: 100%; 7 | height: 100%; 8 | margin: 0px; 9 | padding: 0px; 10 | } 11 | 12 | body { 13 | height: 100%; 14 | width: 100%; 15 | margin: 0px; 16 | display: flex; 17 | align-items: center; 18 | justify-content: center; 19 | background: #37474F; 20 | image-rendering: optimizeSpeed; 21 | image-rendering: -moz-crisp-edges; 22 | image-rendering: -webkit-optimize-contrast; 23 | image-rendering: -o-crisp-edges; 24 | image-rendering: optimize-contrast; 25 | -ms-interpolation-mode: nearest-neighbor; 26 | font-family: "power_clearregular"; 27 | } 28 | 29 | canvas{ 30 | image-rendering: optimizeSpeed; 31 | image-rendering: -moz-crisp-edges; 32 | image-rendering: -webkit-optimize-contrast; 33 | image-rendering: optimize-contrast; 34 | -ms-interpolation-mode: nearest-neighbor; 35 | } 36 | 37 | .github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out} 38 | @keyframes octocat-wave{ 39 | 0%,100%{transform:rotate(0)} 40 | 20%,60%{transform:rotate(-25deg)} 41 | 40%,80%{transform:rotate(10deg)} 42 | } 43 | @media (max-width:760px){ 44 | .github-corner{ 45 | display: none; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/core/Data.js: -------------------------------------------------------------------------------- 1 | const DATA = { 2 | FLAGS: {}, // Rom Hacking like vars to control events 3 | VARS: {}, // Rom Hacking like vars to control events 4 | defaultName: { 5 | 0: "And", 6 | 1: "Lou" 7 | }, 8 | start: { 9 | map: 'Pallet_Town/pallet_town_01', 10 | x: 8, 11 | y: 10 12 | }, 13 | map: {}, 14 | debug: { 15 | skipTitle: false 16 | } 17 | } 18 | export default DATA; 19 | -------------------------------------------------------------------------------- /src/core/DebugGUI.js: -------------------------------------------------------------------------------- 1 | class DebugGUI extends dat.GUI { 2 | constructor() { 3 | super(); 4 | this.value = 0; 5 | this.listen = 0; 6 | } 7 | 8 | setupGUI(debug, game) { 9 | this.remember(debug); 10 | this.debugFolder = this.addFolder('Debug'); 11 | this.musicFolder = this.addFolder('Music'); 12 | 13 | this.debugFolder.add(debug, 'skipTitle').name('Skip Title Screen'); 14 | 15 | this.remember(game.sound); 16 | this.musicFolder.add(game.sound, 'mute').name('Mute'); 17 | this.musicFolder.add(game.sound, 'volume', 0, 1).name('Volumen'); 18 | this.close(); 19 | } 20 | } 21 | 22 | export default DebugGUI; 23 | -------------------------------------------------------------------------------- /src/core/Events.js: -------------------------------------------------------------------------------- 1 | import DATA from './Data'; 2 | import { 3 | PKMN 4 | } from './main'; 5 | 6 | const EVENTS = { 7 | 'test': () => { 8 | PKMN.start(this); 9 | PKMN.msgbox("You can run holding press the Z key"); 10 | PKMN.release(); 11 | PKMN.end(); 12 | }, 13 | 'test2': () => { 14 | PKMN.start(this); 15 | PKMN.msgbox("Example of action Event"); 16 | PKMN.release(); 17 | PKMN.end(); 18 | }, 19 | 'npctest': () => { 20 | PKMN.start(this); 21 | PKMN.faceplayer("0"); 22 | PKMN.msgbox("No one is looking!"); 23 | PKMN.release(); 24 | PKMN.end(); 25 | }, 26 | 'playerhouse': () => { 27 | PKMN.start(this); 28 | PKMN.msgbox("[PLAYER]'s house"); 29 | PKMN.release(); 30 | PKMN.end(); 31 | }, 32 | } 33 | export default EVENTS; 34 | -------------------------------------------------------------------------------- /src/core/Game.js: -------------------------------------------------------------------------------- 1 | import CONFIG from './config'; 2 | import Battle from './States/Battle'; 3 | import Bootstrap from './States/Bootstrap'; 4 | import Intro from './States/Intro'; 5 | import Load from './States/Load'; 6 | import Overworld from './States/Overworld'; 7 | import Preload from './States/Preload'; 8 | import Title from './States/Title'; 9 | 10 | class Game extends Phaser.Game { 11 | constructor() { 12 | super(CONFIG.WIDTH, CONFIG.HEIGTH, Phaser.AUTO, null, null, false, false); 13 | 14 | this.state.add('Battle', Battle); 15 | this.state.add('Bootstrap', Bootstrap); 16 | this.state.add('Intro', Intro); 17 | this.state.add('Load', Load); 18 | this.state.add('Overworld', Overworld); 19 | this.state.add('Preload', Preload); 20 | this.state.add('Title', Title); 21 | 22 | // alias to the current game object that has control of the keyboard 23 | this.cgo = null; 24 | 25 | this.eventEndSignal = new Phaser.Signal(); 26 | this.eventQueue = []; 27 | 28 | this.state.start('Bootstrap'); 29 | } 30 | 31 | setCgo(gameObject) { 32 | this.cgo = gameObject; 33 | } 34 | 35 | releaseCgo() { 36 | this.cgo = null; 37 | } 38 | } 39 | 40 | export default Game; 41 | -------------------------------------------------------------------------------- /src/core/GameObjects/BattleMenu.js: -------------------------------------------------------------------------------- 1 | import CONFIG from '../config'; 2 | import DATA from '../Data'; 3 | import { 4 | GFX 5 | } from '../main'; 6 | 7 | class BattleMenu extends Phaser.Group { 8 | constructor(game, pokemon) { 9 | super(game); 10 | 11 | let cmd_bg = this.game.add.sprite(0, 384, 'command_menu'); 12 | cmd_bg.anchor.set(0, 1); 13 | this.add(cmd_bg); 14 | let pokename = this.game.add.text(8, 344, `What will ${pokemon.name} do?`, CONFIG.FONT.WHITE_SM) 15 | this.add(pokename); 16 | 17 | let x = (this.game.width - 16) - 96; 18 | let y = this.game.height - 96; 19 | this.opts = [{ 20 | name: 'FIGTH', 21 | activeFrame: 0, 22 | frame: 1, 23 | x: x, 24 | y: y, 25 | action: this.fight 26 | }, 27 | { 28 | name: 'PARTY', 29 | activeFrame: 2, 30 | frame: 3, 31 | x: x + 96, 32 | y: y, 33 | action: this.test 34 | }, 35 | { 36 | name: 'BAG', 37 | activeFrame: 4, 38 | frame: 5, 39 | x: x, 40 | y: y + 48, 41 | action: this.test 42 | }, 43 | { 44 | name: 'RUN', 45 | activeFrame: 6, 46 | frame: 7, 47 | x: x + 96, 48 | y: y + 48, 49 | action: this.run 50 | }, 51 | ]; 52 | this.optInx = 0; 53 | 54 | for (var o of this.opts) { 55 | o.btn = this.game.add.sprite(o.x, o.y, 'cmd_buttons', o.frame); 56 | o.btn.anchor.set(1, .5); 57 | o.text = this.game.add.text(o.btn.centerX, o.btn.centerY, o.name, CONFIG.FONT.WHITE_XS); 58 | o.text.anchor.set(.5, .4) 59 | this.add(o.btn); 60 | this.add(o.text); 61 | } 62 | 63 | this.opts[this.optInx].btn.frame = this.opts[this.optInx].activeFrame; 64 | 65 | } 66 | 67 | onkeydown() {} 68 | onkeyup(key) { 69 | if (key == Phaser.Keyboard.RIGHT) { 70 | this.opts[this.optInx].btn.frame = this.opts[this.optInx].frame; 71 | this.optInx++; 72 | if (this.optInx == this.opts.length) { 73 | this.optInx = 0; 74 | } 75 | this.opts[this.optInx].btn.frame = this.opts[this.optInx].activeFrame; 76 | GFX.select.play(); 77 | } 78 | if (key == Phaser.Keyboard.LEFT) { 79 | this.opts[this.optInx].btn.frame = this.opts[this.optInx].frame; 80 | this.optInx--; 81 | if (this.optInx < 0) { 82 | this.optInx = this.opts.length - 1; 83 | } 84 | this.opts[this.optInx].btn.frame = this.opts[this.optInx].activeFrame; 85 | GFX.select.play(); 86 | } 87 | if (key == Phaser.Keyboard.DOWN) { 88 | this.opts[this.optInx].btn.frame = this.opts[this.optInx].frame; 89 | this.optInx += 2; 90 | if (this.optInx >= this.opts.length) { 91 | this.optInx = Math.abs(this.opts.length - this.optInx); 92 | } 93 | this.opts[this.optInx].btn.frame = this.opts[this.optInx].activeFrame; 94 | GFX.select.play(); 95 | } 96 | if (key == Phaser.Keyboard.UP) { 97 | this.opts[this.optInx].btn.frame = this.opts[this.optInx].frame; 98 | this.optInx -= 2; 99 | if (this.optInx < 0) { 100 | this.optInx = this.opts.length - Math.abs(this.optInx); 101 | } 102 | this.opts[this.optInx].btn.frame = this.opts[this.optInx].activeFrame; 103 | GFX.select.play(); 104 | } 105 | if (key == Phaser.Keyboard.ENTER) { 106 | this.opts[this.optInx].action.apply(this); 107 | } 108 | } 109 | 110 | fight() { 111 | this.game.add.tween(this).to({ 112 | alpha: 0, 113 | y: 120 114 | }, 300, Phaser.Easing.Linear.None, true); 115 | } 116 | 117 | test() { 118 | console.log("not yet") 119 | } 120 | 121 | run() { 122 | this.game.state.start('Overworld', true, false, DATA.mapFilename, DATA.player.data.currTile.x, DATA.player.data.currTile.y) 123 | } 124 | 125 | } 126 | export default BattleMenu; 127 | -------------------------------------------------------------------------------- /src/core/GameObjects/Choice.js: -------------------------------------------------------------------------------- 1 | import CONFIG from '../config'; 2 | import DATA from '../Data'; 3 | 4 | import Message from './Message'; 5 | 6 | class Choice extends Phaser.Group { 7 | constructor(game, x, y, text, flag, options, defaultOption, optionsCtx) { 8 | super(game); 9 | 10 | this.menu = new Phaser.Group(game); 11 | this.message = new Message(this.game, text, true); 12 | this.add(this.message); 13 | 14 | var windowSkin = new Phaser.NinePatchImage(this.game, x, y, 'choice_1'); 15 | windowSkin.targetWidth = 48; 16 | windowSkin.targetHeight = 32; 17 | this.menu.add(windowSkin); 18 | 19 | this.selarrow = this.menu.add(this.game.add.sprite(x, y, 'selarrow')); 20 | this.selarrow.anchor.set(1, 0); 21 | 22 | let paddingTop = 16; 23 | let paddingLeft = 32; 24 | let maxLength = 0; 25 | for (let o of options) { 26 | o.x = x + paddingLeft 27 | o.y = y + paddingTop 28 | let line = this.game.add.text(o.x, o.y, o.text, CONFIG.FONT.BLACK); 29 | y += line.height 30 | if (o.text.length > maxLength) maxLength = o.text.length 31 | windowSkin.targetHeight += line.height; 32 | this.menu.add(line) 33 | } 34 | windowSkin.targetWidth += maxLength * 16 35 | 36 | this.menu.x = game.world.width - windowSkin.targetWidth; 37 | this.menu.y = this.message.roof - windowSkin.targetHeight; 38 | 39 | this.options = options; 40 | this.optionsCtx = optionsCtx; 41 | this.optionsIndex = 0; 42 | this.selarrow.x = this.options[this.optionsIndex].x - 2; 43 | this.selarrow.y = this.options[this.optionsIndex].y + 2; 44 | 45 | this.defaultOption = defaultOption; 46 | this.flag = flag; 47 | 48 | this.add(this.menu); 49 | this.menu.visible = false; 50 | 51 | } 52 | 53 | onkeydown() {} 54 | onkeyup(key) { 55 | if (!this.alive) return; 56 | if (this.message.alive) { 57 | this.message.onkeyup(key); 58 | if (!this.message.alive) { 59 | this.menu.visible = true; 60 | } 61 | return; 62 | } 63 | if (key == Phaser.Keyboard.UP) { 64 | this.optionsIndex--; 65 | if (this.optionsIndex < 0) { 66 | this.optionsIndex = this.options.length - 1; 67 | } 68 | this.selarrow.x = this.options[this.optionsIndex].x - 2; 69 | this.selarrow.y = this.options[this.optionsIndex].y + 2; 70 | } 71 | if (key == Phaser.Keyboard.DOWN) { 72 | this.optionsIndex++; 73 | if (this.optionsIndex == this.options.length) { 74 | this.optionsIndex = 0; 75 | } 76 | this.selarrow.x = this.options[this.optionsIndex].x - 2; 77 | this.selarrow.y = this.options[this.optionsIndex].y + 2; 78 | } 79 | if (key == Phaser.Keyboard.X || key == Phaser.Keyboard.ENTER) { 80 | DATA.FLAGS[this.flag] = this.options[this.optionsIndex].value != null ? this.options[this.optionsIndex].value : this.optionsIndex + 1; 81 | this.options[this.optionsIndex].action.apply(this.optionsCtx); 82 | this.game.eventEndSignal.dispatch(); 83 | this.alive = false; 84 | this.destroy(); 85 | } 86 | 87 | // Select the deafult option based on this.defaultOption 88 | // (or 0 if the player can't cancel or -1 to don't choice any) 89 | // this.defaultOption is in length language and dont in array index language 90 | if (key == Phaser.Keyboard.Z) { 91 | if (this.defaultOption != 0 && this.defaultOption != -1) { 92 | DATA.FLAGS[this.flag] = this.options[this.defaultOption - 1] != null ? this.options[this.defaultOption - 1].value : this.defaultOption; 93 | this.options[this.defaultOption - 1].action.apply(this.optionsCtx); 94 | this.game.eventEndSignal.dispatch(); 95 | this.alive = false; 96 | this.destroy(); 97 | } else if (this.defaultOption == -1) { 98 | DATA.FLAGS[this.flag] = this.defaultOption; 99 | this.game.eventEndSignal.dispatch(); 100 | this.alive = false; 101 | this.destroy(); 102 | } 103 | } 104 | } 105 | 106 | update() {} 107 | } 108 | export default Choice; 109 | -------------------------------------------------------------------------------- /src/core/GameObjects/Menu.js: -------------------------------------------------------------------------------- 1 | import CONFIG from '../config'; 2 | import DATA from '../Data'; 3 | import { 4 | GFX, 5 | PKMN 6 | } from '../main'; 7 | import Message from './Message'; 8 | 9 | class Menu extends Phaser.Group { 10 | constructor(game) { 11 | super(game); 12 | let x = this.game.camera.view.x; 13 | let y = this.game.camera.view.y; 14 | let options = [{ 15 | text: 'Pokédex', 16 | action: this.pokedex 17 | }, 18 | { 19 | text: 'Pokémon', 20 | action: this.pokemons 21 | }, 22 | { 23 | text: 'Bag', 24 | action: this.bag 25 | }, 26 | { 27 | text: DATA.player.data.name, 28 | action: this.playerInfo 29 | }, 30 | { 31 | text: 'Save', 32 | action: this.save 33 | }, 34 | { 35 | text: 'Options', 36 | action: this.options 37 | }, 38 | { 39 | text: 'Exit', 40 | action: this.exit 41 | }, 42 | ]; 43 | 44 | this.menu = new Phaser.Group(game); 45 | 46 | var windowSkin = new Phaser.NinePatchImage(this.game, x, y, 'choice_1'); 47 | windowSkin.targetWidth = 48; 48 | windowSkin.targetHeight = 32; 49 | this.menu.add(windowSkin); 50 | 51 | this.selarrow = this.menu.add(this.game.add.sprite(x, y, 'selarrow')); 52 | this.selarrow.anchor.set(1, 0); 53 | 54 | 55 | 56 | 57 | let paddingTop = 16; 58 | let paddingLeft = 32; 59 | let maxLength = 0; 60 | for (let o of options) { 61 | o.x = x + paddingLeft 62 | o.y = y + paddingTop 63 | let line = this.game.add.text(o.x, o.y, o.text, CONFIG.FONT.BLACK_SM); 64 | y += line.height 65 | if (o.text.length > maxLength) maxLength = o.text.length 66 | windowSkin.targetHeight += line.height; 67 | this.menu.add(line) 68 | } 69 | windowSkin.targetWidth += maxLength * 16 70 | 71 | 72 | this.menu.x += this.game.width - windowSkin.targetWidth; 73 | 74 | this.options = options; 75 | this.optionsIndex = 0; 76 | this.selarrow.x = this.options[this.optionsIndex].x - 2; 77 | this.selarrow.y = this.options[this.optionsIndex].y + 2; 78 | this.add(this.menu); 79 | 80 | } 81 | 82 | onkeydown() {} 83 | onkeyup(key) { 84 | if (!this.alive) return; 85 | if (key == Phaser.Keyboard.UP) { 86 | this.optionsIndex--; 87 | if (this.optionsIndex < 0) { 88 | this.optionsIndex = this.options.length - 1; 89 | } 90 | this.selarrow.x = this.options[this.optionsIndex].x - 2; 91 | this.selarrow.y = this.options[this.optionsIndex].y + 2; 92 | GFX.choose.play(); 93 | } 94 | if (key == Phaser.Keyboard.DOWN) { 95 | this.optionsIndex++; 96 | if (this.optionsIndex == this.options.length) { 97 | this.optionsIndex = 0; 98 | } 99 | this.selarrow.x = this.options[this.optionsIndex].x - 2; 100 | this.selarrow.y = this.options[this.optionsIndex].y + 2; 101 | GFX.choose.play(); 102 | } 103 | if (key == Phaser.Keyboard.X || key == Phaser.Keyboard.ENTER) { 104 | this.options[this.optionsIndex].action.apply(this); 105 | this.game.eventEndSignal.dispatch(); 106 | this.alive = false; 107 | this.destroy(); 108 | } 109 | if (key == Phaser.Keyboard.Z) { 110 | PKMN.release(); 111 | this.game.eventEndSignal.dispatch(); 112 | this.alive = false; 113 | this.destroy(); 114 | } 115 | } 116 | 117 | pokedex() { 118 | PKMN.release(); 119 | } 120 | pokemons() { 121 | PKMN.release(); 122 | } 123 | bag() { 124 | PKMN.release(); 125 | } 126 | /** 127 | * @function save 128 | * save the game DATA intolocalStorage, 129 | * to avoid circularity don't copy the Player Sprite 130 | * and the maps objects. 131 | */ 132 | save() { 133 | let map = DATA.map; 134 | let player = DATA.player; 135 | DATA.map = {}; 136 | DATA.player = null; 137 | localStorage.setItem('PLAYER_DATA', JSON.stringify(player.data)); 138 | localStorage.setItem('DATA', JSON.stringify(DATA)); 139 | DATA.player = player; 140 | DATA.map = map; 141 | PKMN.release(); 142 | } 143 | playerInfo() { 144 | PKMN.release(); 145 | } 146 | options() { 147 | PKMN.release(); 148 | } 149 | exit() { 150 | PKMN.release(); 151 | } 152 | } 153 | 154 | export default Menu; 155 | -------------------------------------------------------------------------------- /src/core/GameObjects/Message.js: -------------------------------------------------------------------------------- 1 | import CONFIG from '../config'; 2 | import DATA from '../Data'; 3 | import { 4 | GFX 5 | } from '../main'; 6 | 7 | class Message extends Phaser.Group { 8 | constructor(game, text, keep) { 9 | super(game); 10 | let y = this.game.camera.view.y + 288 11 | let x = this.game.camera.view.x 12 | let paddingTop = 10; 13 | let paddingLeft = 25; 14 | this.roof = y; 15 | 16 | // set the messagebox at the top when overloap the player. 17 | if (DATA.player && y - DATA.player.y < 64) y = this.game.camera.view.y; 18 | 19 | var windowSkin = new Phaser.NinePatchImage(this.game, x, y, 'speech_hgss_1'); 20 | windowSkin.targetWidth = 512; 21 | windowSkin.targetHeight = 96; 22 | text = this.format(text); 23 | this.paragraphs = this.generateLines(text); 24 | this.paragraphsIndex = 0; 25 | this.linesIndex = 0; 26 | 27 | this.line1 = this.game.add.text(x + paddingLeft, y + paddingTop, "", CONFIG.FONT.BLACK); 28 | this.line2 = this.game.add.text(x + paddingLeft, y + paddingTop + 40, "", CONFIG.FONT.BLACK); 29 | 30 | this.keep = keep || false; 31 | // DATA.player.lock() 32 | // this.game.GFX.select.play(); 33 | 34 | this.addMultiple([windowSkin, this.line1, this.line2]) 35 | this.showNextLine() 36 | this.game.add.existing(this); 37 | } 38 | 39 | generateLines(text) { 40 | let paras = text.split('[/p]'); 41 | let paragraphs = []; 42 | let charsXLine = 35; 43 | 44 | for (var p of paras) { 45 | let paragraph = []; 46 | let lines = p.split('[/n]'); 47 | for (var line of lines) { 48 | if (line.length < charsXLine) { 49 | paragraph.push(line) 50 | continue; 51 | } 52 | let done = false; 53 | do { 54 | let found = false; 55 | for (var i = charsXLine - 1; i >= 0; i--) { 56 | if (this.checkWhitespace(line[i])) { 57 | paragraph.push(line.slice(0, i)) 58 | line = line.slice(i + 1); 59 | found = true; 60 | break; 61 | } 62 | } 63 | if (!found) { 64 | paragraph.push(line.slice(0, charsXLine)) 65 | line = line.slice(charsXLine); 66 | } 67 | if (line.length < charsXLine) { 68 | paragraph.push(line) 69 | done = true; 70 | } 71 | } while (!done); 72 | } 73 | paragraphs.push(paragraph) 74 | } 75 | return paragraphs; 76 | } 77 | 78 | checkWhitespace(char) { 79 | var whitespace = new RegExp(/^\s$/); 80 | return whitespace.test(char); 81 | } 82 | 83 | showNextLine() { 84 | if (!this.alive) return; 85 | if (this.paragraphsIndex == this.paragraphs.length) { 86 | this.alive = false; 87 | if (!this.keep) { 88 | this.game.eventEndSignal.dispatch(); 89 | this.destroy(); 90 | } 91 | return; 92 | } 93 | GFX.choose.play(); 94 | this.line1.text = this.paragraphs[this.paragraphsIndex][this.linesIndex]; 95 | this.line2.text = ""; 96 | this.linesIndex++; 97 | if (this.linesIndex < this.paragraphs[this.paragraphsIndex].length - 1) { 98 | this.line2.text = this.paragraphs[this.paragraphsIndex][this.linesIndex]; 99 | } else if (this.linesIndex < this.paragraphs[this.paragraphsIndex].length) { 100 | this.line2.text = this.paragraphs[this.paragraphsIndex][this.linesIndex]; 101 | this.linesIndex = 0; 102 | this.paragraphsIndex++; 103 | } else { 104 | this.linesIndex = 0; 105 | this.paragraphsIndex++; 106 | } 107 | } 108 | 109 | format(text) { 110 | if (DATA.player) { 111 | text = text.replace("[PLAYER]", DATA.player.data.name); 112 | } 113 | return text; 114 | } 115 | 116 | onkeydown() {} 117 | onkeyup(key) { 118 | if (key == Phaser.Keyboard.X || key == Phaser.Keyboard.Z || key == Phaser.Keyboard.ENTER) { 119 | this.showNextLine(); 120 | } 121 | } 122 | 123 | update() {} 124 | } 125 | export default Message; 126 | -------------------------------------------------------------------------------- /src/core/GameObjects/NPC.js: -------------------------------------------------------------------------------- 1 | import CONFIG from '../config'; 2 | import DATA from '../Data'; 3 | 4 | const DIRECTIONS = ["up", "right", "down", "left"] 5 | 6 | 7 | class NPC extends Phaser.Sprite { 8 | constructor(game, x, y, properties) { 9 | super(game, x, y - 16, properties.sprite); 10 | 11 | this.game.physics.arcade.enable(this); 12 | // this.body.collideWorldBounds = true; 13 | this.body.setSize(32, 32, 0, 16); 14 | this.body.immovable = true; 15 | 16 | 17 | 18 | this.oldDirection = ''; 19 | this.direction = 'down'; 20 | this.moving = false; 21 | this.changedTile = true; 22 | this.speed = 1; 23 | this.animationSpeed = 8; 24 | this.currentTile = { 25 | x: x / CONFIG.TILE_SIZE, 26 | y: y / CONFIG.TILE_SIZE 27 | }; 28 | 29 | this.timer = 0; 30 | this.waitTime = Math.random() * (150 - 50) + 50; 31 | this.lock = false; 32 | 33 | this.animations.add('down', [0, 1, 2, 3], this.animationSpeed, true); 34 | this.animations.add('left', [4, 5, 6, 7], this.animationSpeed, true); 35 | this.animations.add('right', [8, 9, 10, 11], this.animationSpeed, true); 36 | this.animations.add('up', [12, 13, 14, 15], this.animationSpeed, true); 37 | this.idleFrames = { 38 | "down": 0, 39 | "left": 4, 40 | "right": 8, 41 | "up": 12 42 | }; 43 | 44 | this.properties = properties; 45 | 46 | if (this.properties.direction) { 47 | this.direction = this.properties.direction; 48 | this.frame = this.idleFrames[this.direction]; 49 | } 50 | 51 | 52 | } 53 | 54 | release() { 55 | this.lock = false; 56 | } 57 | 58 | look(direction) { 59 | this.direction = direction; 60 | this.frame = this.idleFrames[this.direction]; 61 | setTimeout(() => { 62 | this.game.eventEndSignal.dispatch() 63 | }, 500); 64 | } 65 | 66 | faceplayer() { 67 | switch (DATA.player.direction) { 68 | case 'right': 69 | this.direction = 'left'; 70 | break; 71 | case 'left': 72 | this.direction = 'right'; 73 | break; 74 | case 'up': 75 | this.direction = 'down'; 76 | break; 77 | case 'down': 78 | this.direction = 'up'; 79 | break; 80 | } 81 | this.frame = this.idleFrames[this.direction]; 82 | this.game.eventEndSignal.dispatch(); 83 | } 84 | 85 | lookAround() { 86 | if (this.lock) return; 87 | if (this.timer > this.waitTime) { 88 | let dir = Phaser.ArrayUtils.getRandomItem(DIRECTIONS); 89 | this.direction = dir; 90 | this.frame = this.idleFrames[this.direction]; 91 | this.waitTime = Math.random() * (150 - 50) + 50; 92 | this.timer = 0; 93 | } 94 | } 95 | 96 | update() { 97 | switch (this.properties.movement) { 98 | case "0": 99 | break; // No movement 100 | case "1": 101 | this.lookAround(); 102 | break; 103 | } 104 | 105 | this.timer++; 106 | } 107 | 108 | } 109 | 110 | export default NPC; 111 | -------------------------------------------------------------------------------- /src/core/GameObjects/NameScreen.js: -------------------------------------------------------------------------------- 1 | import CONFIG from '../config'; 2 | import DATA from '../Data'; 3 | import Message from './Message'; 4 | 5 | class NameScreen extends Phaser.Group { 6 | constructor(game) { 7 | super(game); 8 | let x = 0; 9 | let y = 0; 10 | this.game = game; 11 | this.bgani = this.game.add.tileSprite(0, 0, 1024, 764, 'moving_bg'); 12 | var windowSkin = new Phaser.NinePatchImage(this.game, x, y, 'speech_hgss_1'); 13 | windowSkin.targetWidth = 512; 14 | windowSkin.targetHeight = 96; 15 | this.add(this.bgani) 16 | this.add(windowSkin) 17 | 18 | let text = this.game.add.text(x + 96, y + 10, "What's your name?", CONFIG.FONT.BLACK); 19 | 20 | let config = { 21 | font: '32px power_clearregular', 22 | fill: '#000', 23 | cursorColor: '#000', 24 | borderColor: '#f8f8f8', 25 | backgroundColor: '#f8f8f8', 26 | width: 312, 27 | borderWidth: 0, 28 | max: 10, 29 | alpha: .5 30 | } 31 | this.input = this.game.add.inputField(x + 96, y + 48, config); 32 | this.input.startFocus(); 33 | let m = new Message(this.game, "Enter text using keyboard. Press ESC to cancel or ENTER to confirm."); 34 | this.addMultiple([m, text]) 35 | 36 | } 37 | 38 | onkeydown() {} 39 | onkeyup(key) { 40 | if (key == Phaser.Keyboard.ENTER) { 41 | this.object.data.name = this.input.value; 42 | if (this.object.data.name.trim() == "") { 43 | this.getDefaultName() 44 | } 45 | this.game.eventEndSignal.dispatch(); 46 | this.input.destroy(); 47 | this.object.animations.stop(); 48 | this.object.frame = 0; 49 | this.remove(this.object); 50 | this.destroy(); 51 | } 52 | } 53 | 54 | update() { 55 | this.bgani.tilePosition.x += 0.5; 56 | // this.bgani.tilePosition.y -= 0.2; 57 | } 58 | } 59 | 60 | export class PlayerNameScreen extends NameScreen { 61 | constructor(game) { 62 | super(game); 63 | this.object = DATA.player; 64 | this.add(this.object); 65 | this.object.x = this.x + 32; 66 | this.object.y = this.y + 24; 67 | this.object.animations.play('down'); 68 | } 69 | 70 | getDefaultName() { 71 | this.object.data.name = DATA.defaultName[DATA.player.data.gender]; 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /src/core/GameObjects/Player.js: -------------------------------------------------------------------------------- 1 | import CONFIG from '../config'; 2 | import DATA from '../Data'; 3 | import EVENTS from '../Events'; 4 | import Menu from './Menu'; 5 | import { 6 | PKMN 7 | } from '../main'; 8 | 9 | let DIR_VECTORS = { 10 | "left": [-1, 0], 11 | "right": [1, 0], 12 | "up": [0, -1], 13 | "down": [0, 1] 14 | } 15 | 16 | class Player extends Phaser.Sprite { 17 | constructor(game, data) { 18 | let spritesheet = 'trchar00' + data.gender; 19 | super(game, 0, 0, spritesheet); 20 | 21 | this.data = data; 22 | 23 | this.normalSpritesheet = spritesheet; 24 | this.runSpritesheet = data.gender == 0 ? 'boy_run' : 'girl_run'; 25 | this.textureChanged = false; 26 | 27 | this.game.physics.arcade.enable(this); 28 | // this.body.collideWorldBounds = true; 29 | this.body.setSize(32, 32, 0, 16); 30 | 31 | 32 | 33 | this.oldDirection = ''; 34 | this.data.direction = this.data.direction || 'down'; 35 | this.data.gender = data.gender; 36 | this.moving = false; 37 | this.changedTile = true; 38 | this.speed = 1; 39 | this.animationSpeed = 8; 40 | this.data.currTile = this.data.currTile || { 41 | x: 0, 42 | y: 0 43 | }; 44 | 45 | 46 | 47 | 48 | if (this.data.gender == 0) { 49 | this.frontSprite = 'introBoy'; 50 | } else { 51 | this.frontSprite = 'introGirl'; 52 | } 53 | 54 | this.animations.add('down', [0, 1, 2, 3], this.animationSpeed, true); 55 | this.animations.add('left', [4, 5, 6, 7], this.animationSpeed, true); 56 | this.animations.add('right', [8, 9, 10, 11], this.animationSpeed, true); 57 | this.animations.add('up', [12, 13, 14, 15], this.animationSpeed, true); 58 | this.idleFrames = { 59 | "down": 0, 60 | "left": 4, 61 | "right": 8, 62 | "up": 12 63 | }; 64 | 65 | this.frame = this.idleFrames[this.data.direction]; 66 | 67 | 68 | } 69 | 70 | onkeydown(key) {} 71 | 72 | onkeyup(key) { 73 | if (key == Phaser.Keyboard.Z) { 74 | this.speed = 1; 75 | this.loadTexture(this.normalSpritesheet); 76 | this.textureChanged = false; 77 | } 78 | 79 | if (key == Phaser.Keyboard.ENTER && !this.moving) { 80 | //Open menu; 81 | let m = new Menu(this.game); 82 | this.game.setCgo(m); 83 | } 84 | 85 | if (key == Phaser.Keyboard.X && !this.moving) { 86 | let vector = DIR_VECTORS[this.data.direction]; 87 | let x = (this.data.currTile.x + vector[0]) * CONFIG.TILE_SIZE; 88 | let y = (this.data.currTile.y + vector[1]) * CONFIG.TILE_SIZE; 89 | this.action = this.game.add.sprite(x, y); 90 | this.game.physics.arcade.enable(this.action); 91 | this.game.physics.arcade.overlap(this.action, DATA.map.actionscripts, this.runScript, null, this); 92 | this.game.physics.arcade.overlap(this.action, DATA.map.entities, this.runScript, null, this); 93 | } 94 | } 95 | 96 | setMapPosition(x, y) { 97 | this.moving = false; 98 | this.x = CONFIG.TILE_SIZE * x; 99 | this.y = CONFIG.TILE_SIZE * y - 16; 100 | this.targetX = this.x; 101 | this.targetY = this.y + 16; 102 | this.data.currTile.x = x; 103 | this.data.currTile.y = y; 104 | } 105 | 106 | setCollisions(collisions) { 107 | DATA.map.collisions = collisions; 108 | } 109 | 110 | runScript(player, obj) { 111 | let index = obj.properties.script; 112 | let flag = obj.properties.flag; 113 | if (flag) { 114 | if (!DATA.FLAGS[flag]) { 115 | if (EVENTS[index]) { 116 | EVENTS[index](); 117 | } 118 | PKMN.setFlag(obj.properties.flag); 119 | } 120 | } else { 121 | if (EVENTS[index]) { 122 | EVENTS[index](); 123 | } 124 | } 125 | } 126 | 127 | teleport(player, warp) { 128 | this.game.state.restart(true, false, warp.properties.map, warp.properties.x, warp.properties.y) 129 | } 130 | 131 | encounter(player, grass) { 132 | grass.animations.play('rustling') 133 | // 25% Probability of wild pokemon encounter 134 | let encounterProbability = Math.random(); 135 | if (encounterProbability < 0.25) { 136 | // Worst Probability script ever. 137 | // Base in http://pokemonessentials.wikia.com/wiki/Wild_encounters 138 | // I will have 12 lines to write pokemons that can appear, 139 | // each line has a specific probability (20, 20, 10, 10, 10, 10, 5, 5, 4, 4, 1, 1) respectively 140 | let randPokemon = Math.random(); 141 | if (randPokemon < .20) { 142 | console.log('Pokemon1') 143 | } else if (randPokemon > .20 && randPokemon < .40) { 144 | console.log('Pokemon1') 145 | } else if (randPokemon > .40 && randPokemon < .50) { 146 | console.log('Pokemon1') 147 | } else if (randPokemon > .50 && randPokemon < .60) { 148 | console.log('Pokemon1') 149 | } else if (randPokemon > .60 && randPokemon < .70) { 150 | console.log('Pokemon1') 151 | } else if (randPokemon > .70 && randPokemon < .80) { 152 | console.log('Pokemon1') 153 | } else if (randPokemon > .80 && randPokemon < .85) { 154 | console.log('Pokemon1') 155 | } else if (randPokemon > .85 && randPokemon < .90) { 156 | console.log('Pokemon1') 157 | } else if (randPokemon > .90 && randPokemon < .94) { 158 | console.log('Pokemon1') 159 | } else if (randPokemon > .94 && randPokemon < .98) { 160 | console.log('Pokemon1') 161 | } else if (randPokemon > .98 && randPokemon < .99) { 162 | console.log('Pokemon1') 163 | } else if (randPokemon > .99 && randPokemon < 1) { 164 | console.log('Pokemon1') 165 | } 166 | this.game.state.start('Battle'); 167 | } 168 | 169 | } 170 | 171 | update() { 172 | // Check for collisions 173 | let vector = DIR_VECTORS[this.data.direction]; 174 | if (this.moving && this.changedTile) { 175 | let nextX = this.data.currTile.x + vector[0]; 176 | let nextY = this.data.currTile.y + vector[1]; 177 | // Keep the player in the wolrd bounds 178 | if (nextX < 0 || nextY < 0 || nextY > DATA.map.collisions.layer.data.length - 1 || nextX > DATA.map.collisions.layer.data[0].length - 1) { 179 | this.moving = false; 180 | this.targetX = this.data.currTile.x * CONFIG.TILE_SIZE; 181 | this.targetY = this.data.currTile.y * CONFIG.TILE_SIZE; 182 | this.frame = this.idleFrames[this.data.direction]; 183 | } else { 184 | let nextTile = DATA.map.collisions.layer.data[nextY][nextX]; 185 | if (nextTile.properties.collide) { 186 | this.moving = false; 187 | this.targetX = this.data.currTile.x * CONFIG.TILE_SIZE; 188 | this.targetY = this.data.currTile.y * CONFIG.TILE_SIZE; 189 | this.frame = this.idleFrames[this.data.direction]; 190 | // pLay collision sound 191 | } else { 192 | this.data.currTile.x = nextX; 193 | this.data.currTile.y = nextY; 194 | this.changedTile = false; 195 | } 196 | } 197 | } 198 | 199 | if (this.moving) { 200 | 201 | this.animations.play(this.data.direction); 202 | this.body.x += vector[0] * this.speed; 203 | this.body.y += vector[1] * this.speed; 204 | DATA.map.entities.sort('y', Phaser.Group.SORT_DECSENDING); 205 | 206 | // collision with NPCs and Objects 207 | let collide = this.game.physics.arcade.collide(this, DATA.map.entities); 208 | if (collide) { 209 | this.moving = false; 210 | this.data.currTile.x -= vector[0]; 211 | this.data.currTile.y -= vector[1]; 212 | this.targetX = this.data.currTile.x * CONFIG.TILE_SIZE; 213 | this.targetY = this.data.currTile.y * CONFIG.TILE_SIZE; 214 | this.frame = this.idleFrames[this.data.direction]; 215 | } 216 | } 217 | 218 | if (this.targetX == this.body.x && this.targetY == this.body.y && !this.changedTile) { 219 | this.moving = false; 220 | this.frame = this.idleFrames[this.data.direction]; 221 | this.changedTile = true; 222 | DATA.map.entities.sort('y', Phaser.Group.SORT_DECSENDING); 223 | this.game.physics.arcade.overlap(this, DATA.map.triggerscripts, this.runScript, null, this); 224 | this.game.physics.arcade.overlap(this, DATA.map.warps, this.teleport, null, this); 225 | this.game.physics.arcade.overlap(this, DATA.map.grass, this.encounter, null, this); 226 | } 227 | 228 | 229 | if (!this.moving && this.game.cgo == this) { 230 | if (this.game.input.keyboard.isDown(Phaser.Keyboard.UP)) { 231 | this.targetY -= CONFIG.TILE_SIZE; 232 | this.oldDirection = this.data.direction; 233 | this.data.direction = "up"; 234 | this.moving = true; 235 | } else if (this.game.input.keyboard.isDown(Phaser.Keyboard.DOWN)) { 236 | this.targetY += CONFIG.TILE_SIZE; 237 | this.oldDirection = this.data.direction; 238 | this.data.direction = "down"; 239 | this.moving = true; 240 | } else if (this.game.input.keyboard.isDown(Phaser.Keyboard.LEFT)) { 241 | this.targetX -= CONFIG.TILE_SIZE; 242 | this.oldDirection = this.data.direction; 243 | this.data.direction = "left"; 244 | this.moving = true; 245 | } else if (this.game.input.keyboard.isDown(Phaser.Keyboard.RIGHT)) { 246 | this.targetX += CONFIG.TILE_SIZE; 247 | this.oldDirection = this.data.direction; 248 | this.data.direction = "right"; 249 | this.moving = true; 250 | } 251 | 252 | if (this.game.input.keyboard.isDown(Phaser.Keyboard.Z)) { 253 | if (!this.textureChanged) { 254 | this.speed = 2; 255 | this.loadTexture(this.runSpritesheet); 256 | this.textureChanged = true; 257 | } 258 | } 259 | } 260 | 261 | if (!this.moving) { 262 | this.animations.stop(); 263 | } 264 | 265 | 266 | 267 | } 268 | 269 | } 270 | 271 | export default Player; 272 | -------------------------------------------------------------------------------- /src/core/Pkmn.js: -------------------------------------------------------------------------------- 1 | import DATA from './Data'; 2 | import Choice from './GameObjects/Choice'; 3 | import Message from './GameObjects/Message'; 4 | import { 5 | PlayerNameScreen 6 | } from './GameObjects/NameScreen'; 7 | 8 | class Pkmn { 9 | constructor(game) { 10 | this.game = game; 11 | } 12 | 13 | setFlag(flag, value) { 14 | if (value) { 15 | DATA.FLAGS[flag] = value; 16 | } else { 17 | DATA.FLAGS[flag] = true; 18 | } 19 | } 20 | 21 | msgbox(text, callback) { 22 | this.game.eventQueue.push({ 23 | func: () => { 24 | let m = new Message(this.game, text); 25 | this.game.setCgo(m); 26 | }, 27 | scope: this 28 | }); 29 | if (callback) { 30 | this.game.eventQueue.push({ 31 | func: () => { 32 | callback.apply(this.scope); 33 | }, 34 | scope: this.scope 35 | }); 36 | } 37 | } 38 | 39 | /** 40 | * @function choice 41 | * @param string text Message to show 42 | * @param string flag Flag name to store selected value e.g DATA.FLAGS[flag] 43 | * @param Array[{string text, function action, any value}] Options List of options to choice, text is the text of the choice 44 | * action is the function to execute. 45 | * @param int defaultOption Is the choice used when the player cancels 46 | * (or 0 if the player can't cancel or -1 to don't choice any) 47 | * @example 48 | * // let text = "Text to show before choice"; 49 | * // let options = [ 50 | * // {text: "choice 1", action: choice1}, 51 | * // {text: "choice 2", action: choice2} 52 | * // ]; 53 | * // PKMN.choice(text, options, 0); 54 | * // function choice1(){ 55 | * // ... 56 | * // } 57 | * // function choice2(){ 58 | * // ... 59 | * // } 60 | * @return Set them DATA.FLAGS[flag] var with the index of the selected option 61 | */ 62 | choice(text, flag, options, defaultOption) { 63 | // Posible add the value attr to the option object to set the flag with that value. 64 | this.game.eventQueue.push({ 65 | func: () => { 66 | let c = new Choice(this.game, 0, 0, text, flag, options, defaultOption, this.scope); 67 | this.game.setCgo(c); 68 | }, 69 | scope: this.scope 70 | }); 71 | } 72 | 73 | confirm(text, yes, no) { 74 | let options = [{ 75 | text: "YES", 76 | action: yes 77 | }, 78 | { 79 | text: "NO", 80 | action: no 81 | } 82 | ]; 83 | this.game.eventQueue.push({ 84 | func: () => { 85 | let c = new Choice(this.game, 0, 0, text, 'lastconfirm', options, 2, this.scope); 86 | this.game.setCgo(c); 87 | }, 88 | scope: this.scope 89 | }); 90 | this.game.eventQueue.push({ 91 | func: () => { 92 | //Hacky way to manage PKMN.continue 93 | }, 94 | scope: this 95 | }); 96 | } 97 | 98 | 99 | playername() { 100 | this.game.eventQueue.push({ 101 | func: () => { 102 | let p = new PlayerNameScreen(this.game); 103 | this.game.setCgo(p); 104 | }, 105 | scope: this 106 | }); 107 | } 108 | 109 | start(scope) { 110 | this.scope = scope; 111 | } 112 | 113 | continue () { 114 | this.game.eventEndSignal.dispatch(); 115 | } 116 | 117 | end() { 118 | this.game.eventEndSignal.dispatch(); 119 | } 120 | 121 | release() { 122 | this.game.eventQueue.push({ 123 | func: () => { 124 | this.game.setCgo(DATA.player); 125 | // Realse all npc to follow his normal behavior. 126 | for (var index in DATA.map.npcs) { 127 | DATA.map.npcs[index].release(); 128 | } 129 | }, 130 | scope: this 131 | }); 132 | } 133 | 134 | 135 | // NPCs Control funcitons 136 | // 137 | faceplayer(id) { 138 | this.game.eventQueue.push({ 139 | func: () => { 140 | DATA.map.npcs[id].lock = true; 141 | DATA.map.npcs[id].faceplayer(); 142 | }, 143 | scope: this 144 | }); 145 | } 146 | 147 | look(id, direction) { 148 | this.game.eventQueue.push({ 149 | func: () => { 150 | DATA.map.npcs[id].lock = true; 151 | DATA.map.npcs[id].look(direction); 152 | }, 153 | scope: this 154 | }); 155 | } 156 | 157 | 158 | 159 | } 160 | 161 | export default Pkmn; 162 | -------------------------------------------------------------------------------- /src/core/States/Battle.js: -------------------------------------------------------------------------------- 1 | import CONFIG from '../config'; 2 | import BattleMenu from '../GameObjects/BattleMenu'; 3 | 4 | class Battle extends Phaser.State { 5 | preload() {} 6 | 7 | create() { 8 | this.stage.backgroundColor = "#890045" 9 | 10 | // this.battleMessage = new Phaser.Group(this.game) 11 | let bg = this.game.add.sprite(this.game.camera.view.x + this.game.width / 2, this.game.camera.view.y + this.game.height / 2, 'bg-meadow'); 12 | bg.anchor.set(.5); 13 | 14 | let playerBass = this.game.add.sprite(-150, 234, 'playerbaseCityGrass') 15 | let fronBass = this.game.add.sprite(250, 260, 'enemybaseCityGrass') 16 | let back = this.game.add.sprite(100, 250, '460b_1', 0) 17 | let front = this.game.add.sprite(380, 210, '727', 0) 18 | 19 | back.scale.set(2) 20 | back.anchor.set(.5, .5) 21 | front.anchor.set(.5, 1) 22 | fronBass.anchor.set(0, 1) 23 | 24 | let frames = []; 25 | for (var i = 0; i < 71; i++) { 26 | frames.push(i); 27 | } 28 | back.animations.add('front', frames, 30, true); 29 | back.animations.play('front'); 30 | 31 | 32 | let frames2 = []; 33 | for (var i = 0; i < 39; i++) { 34 | frames2.push(i); 35 | } 36 | front.animations.add('front', frames2, 30, true); 37 | front.animations.play('front'); 38 | 39 | this.menu = new BattleMenu(this.game, { 40 | name: 'Abomasnow' 41 | }); 42 | 43 | 44 | this.a = this.game.add.sprite(16, 300, 'hp_bar_bg') 45 | this.b = this.game.add.sprite(16, 300, 'hp_bar') 46 | this.c = this.game.add.sprite(32, 312, 'exp_bar_bg') 47 | this.d = this.game.add.tileSprite(32, 312, 120, 16, 'exp_bar') 48 | this.a.anchor.set(0, .5) 49 | this.b.anchor.set(0, .5); 50 | 51 | this.b_mask = this.game.add.graphics(this.b.left, this.b.top); 52 | this.b_mask.beginFill(0xffffff); 53 | this.b_mask.drawRect(0, 0, this.b.width, this.b.height); 54 | this.b.mask = this.b_mask; 55 | 56 | 57 | this.name = this.game.add.text(32, 300, '♀ Abomasnow', CONFIG.FONT.WHITE_SM); 58 | this.hpPoint = this.game.add.text(this.a.right, this.a.bottom, '75 / 130', CONFIG.FONT.WHITE_XS); 59 | this.level = this.game.add.text(this.a.right, this.a.top, 'Lv. 55', CONFIG.FONT.WHITE_XS); 60 | 61 | this.name.anchor.set(0, .5) 62 | this.level.anchor.set(1.2, 0) 63 | this.hpPoint.anchor.set(1.2, .9) 64 | 65 | this.name.addColor('#ff3142', 0) 66 | this.name.addColor('#ffffff', 2) 67 | this.level.addColor("#ffff00", 0); 68 | this.level.addColor("#ffffff", 3); 69 | 70 | 71 | 72 | this.e = this.game.add.sprite(498, 64, 'foe_hp_bar_bg') 73 | this.f = this.game.add.sprite(498, 64, 'foe_hp_bar') 74 | this.e.anchor.set(1, .5) 75 | this.f.anchor.set(1, .5) 76 | this.foeName = this.game.add.text(this.e.left, this.e.bottom, '♂ Incineroar', CONFIG.FONT.WHITE_SM); 77 | this.foeLevel = this.game.add.text(this.e.right, this.e.bottom, 'Lv. 56', CONFIG.FONT.WHITE_XS); 78 | 79 | this.foeName.anchor.set(-.1, .9); 80 | this.foeLevel.anchor.set(1.2, .9); 81 | 82 | this.foeName.addColor('#00bdf7', 0) 83 | this.foeName.addColor('#ffffff', 2) 84 | this.foeLevel.addColor("#ffff00", 0); 85 | this.foeLevel.addColor("#ffffff", 3); 86 | 87 | 88 | 89 | 90 | this.game.setCgo(this.menu); 91 | 92 | } 93 | 94 | onkeydown() {} 95 | 96 | onkeyup(key) { 97 | if (key == Phaser.Keyboard.ENTER) { 98 | // this.game.state.start('OverWorld', true, false, DATA.mapFilename, DATA.player.data.currTile.x, DATA.player.data.currTile.y) 99 | this.game.add.tween(this.b_mask).to({ 100 | width: 50 101 | }, 1000, Phaser.Easing.Linear.None, true); 102 | this.game.add.tween(this.d).to({ 103 | width: 50 104 | }, 1000, Phaser.Easing.Linear.None, true); 105 | this.b.frame = 2; 106 | } 107 | } 108 | 109 | update() {} 110 | } 111 | 112 | export default Battle; 113 | -------------------------------------------------------------------------------- /src/core/States/Bootstrap.js: -------------------------------------------------------------------------------- 1 | import CONFIG from '../config'; 2 | import DATA from '../Data'; 3 | import DebugGUI from '../DebugGUI'; 4 | 5 | 6 | class Bootstrap extends Phaser.State { 7 | preload() { 8 | this.game.load.image('loading', 'Resources/Graphics/Pictures/loading.png') 9 | } 10 | 11 | create() { 12 | this.game.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL; 13 | this.stage.smoothed = false; 14 | this.game.antialias = false; 15 | 16 | 17 | // Force to load font 18 | var text = this.game.add.text(0, 0, "Force to load Font", CONFIG.FONT.BLACK); 19 | 20 | // This state and only this state is in charge of handling user inputs. 21 | // This way I can avoid the overload of keyboard events and make things a bit more organized. 22 | // The idea is to have an alias "this.game.cgo" (Current Game Object) 23 | // which refers to the current object that has control of the keyboard, 24 | // it can be from a state to a custom object, 25 | // the only thing they should have are the onkeydown and onkeyup methods 26 | this.game.input.keyboard.addCallbacks(this, this.onkeydown, this.onkeyup); 27 | 28 | this.game.eventEndSignal.add(this.eventEndListener, this); 29 | 30 | 31 | let debugPanel = new DebugGUI(); 32 | debugPanel.setupGUI(DATA.debug, this.game); 33 | 34 | this.state.start('Preload'); 35 | } 36 | 37 | onkeydown(event) { 38 | // Only calls the onkeyup method of the cgo when the key pressed is in the keyboard control list. 39 | if (CONFIG.KEYBAORD_CONTROLS.includes(event.keyCode)) { 40 | if (this.game.cgo) { 41 | this.game.cgo.onkeydown(event.keyCode); 42 | } 43 | } 44 | } 45 | 46 | onkeyup(event) { 47 | // Only calls the onkeyup method of the cgo when the key pressed is in the keyboard control list. 48 | if (CONFIG.KEYBAORD_CONTROLS.includes(event.keyCode)) { 49 | if (this.game.cgo) { 50 | this.game.cgo.onkeyup(event.keyCode); 51 | } 52 | } 53 | } 54 | 55 | eventEndListener() { 56 | let event = this.game.eventQueue.shift(); 57 | if (event) { 58 | event.func.apply(event.scope); 59 | } else { 60 | this.game.releaseCgo(); 61 | } 62 | } 63 | 64 | 65 | test(data) { 66 | console.log(data) 67 | } 68 | 69 | } 70 | 71 | export default Bootstrap; 72 | -------------------------------------------------------------------------------- /src/core/States/Intro.js: -------------------------------------------------------------------------------- 1 | import { 2 | PKMN 3 | } from '../main'; 4 | import DATA from '../Data'; 5 | import Player from '../GameObjects/Player'; 6 | 7 | class Intro extends Phaser.State { 8 | create() { 9 | this.game.add.sprite(0, 0, 'introbg'); 10 | this.professor = this.game.add.sprite(this.game.world.centerX, this.game.world.centerY - 30, 'introOak'); 11 | this.professor.anchor.set(.5, .5); 12 | 13 | this.theme = this.game.add.audio('begin'); 14 | this.theme.loopFull(); 15 | 16 | PKMN.start(this); 17 | PKMN.msgbox("Hello, there![/n]Glad to meet you![/p]Welcome to the world of Pokémon!"); 18 | PKMN.msgbox("My name is Oak.[/p]People affectionately refer to me as the Pokémon Professor."); 19 | PKMN.msgbox("This world…", this.intro1); 20 | PKMN.end(); 21 | } 22 | 23 | intro1() { 24 | this.pokepet = this.game.add.sprite(this.game.world.centerX, this.game.world.centerY - 30, 'pikachu') 25 | this.pokepet.scale.set(1.5); 26 | this.pokepet.anchor.set(.5, 0) 27 | let frames = []; 28 | for (var i = 0; i < 33; i++) { 29 | frames.push(i); 30 | } 31 | this.pokepet.animations.add('idle', frames, 30, true); 32 | this.pokepet.animations.play('idle'); 33 | this.pokepet.alpha = 0; 34 | 35 | let tween1 = this.game.add.tween(this.professor).to({ 36 | alpha: 0 37 | }, 500, Phaser.Easing.Linear.None, true); 38 | let tween2 = this.game.add.tween(this.pokepet).to({ 39 | alpha: 1 40 | }, 500, Phaser.Easing.Linear.None); 41 | tween1.chain(tween2); 42 | tween2.onComplete.add(() => { 43 | PKMN.msgbox("…is inhabited far and wide by creatures called Pokémon!"); 44 | PKMN.msgbox("For some people, Pokémon are pets. Other use them for battling."); 45 | PKMN.msgbox("As for myself…[/p]I study Pokémon as a profession.", this.intro2); 46 | PKMN.continue(); 47 | }); 48 | } 49 | 50 | intro2() { 51 | let tween1 = this.game.add.tween(this.pokepet).to({ 52 | alpha: 0 53 | }, 500, Phaser.Easing.Linear.None, true); 54 | let tween2 = this.game.add.tween(this.professor).to({ 55 | alpha: 1 56 | }, 500, Phaser.Easing.Linear.None); 57 | tween1.chain(tween2); 58 | tween2.onComplete.add(() => { 59 | let text = "But first, tell me a little about yourself.[/p] Now tell me. Are you a boy? Or are you a girl?"; 60 | let options = [{ 61 | text: "BOY", 62 | action: this.genderSelected, 63 | value: 0 64 | }, 65 | { 66 | text: "GIRL", 67 | action: this.genderSelected, 68 | value: 1 69 | } 70 | ]; 71 | PKMN.choice(text, 'gender', options, 0) 72 | PKMN.continue(); 73 | }); 74 | } 75 | 76 | genderSelected() { 77 | let gender = DATA.FLAGS['gender']; 78 | DATA.player = new Player(this.game, { 79 | gender: gender 80 | }); 81 | this.game.world.remove(this.professor); 82 | this.playerSprite = this.game.add.sprite(this.game.world.centerX, this.game.world.centerY - 30, DATA.player.frontSprite); 83 | this.playerSprite.anchor.set(.5, .5); 84 | PKMN.msgbox("First, what is your name?", this.naming); 85 | } 86 | 87 | naming() { 88 | PKMN.playername(); 89 | PKMN.msgbox('Right… ', this.confirmNaming); 90 | PKMN.continue(); 91 | } 92 | 93 | confirmNaming() { 94 | PKMN.confirm('So your name is [PLAYER].', this.wellcome, this.naming); 95 | PKMN.continue(); 96 | } 97 | 98 | wellcome() { 99 | PKMN.msgbox("Your very own POKéMON legend is about to unfold!"); 100 | PKMN.msgbox("A world of dreams and adventures with POKéMON awaits! Let’s go!", this.statAventure); 101 | PKMN.continue(); 102 | } 103 | 104 | statAventure() { 105 | this.theme.fadeOut(500) 106 | this.theme.onFadeComplete.add(() => { 107 | this.state.start('Overworld', true, false, DATA.start.map, DATA.start.x, DATA.start.y); 108 | }, this, 0); 109 | } 110 | 111 | } 112 | 113 | export default Intro; 114 | -------------------------------------------------------------------------------- /src/core/States/Load.js: -------------------------------------------------------------------------------- 1 | import CONFIG from '../config'; 2 | import DATA from '../Data'; 3 | import { 4 | GFX 5 | } from '../main'; 6 | import Player from '../GameObjects/Player'; 7 | 8 | class LoadState extends Phaser.State { 9 | preload() {} 10 | 11 | create() { 12 | this.game.add.sprite(0, 0, 'loadbg') 13 | 14 | this.menu = [{ 15 | name: 'New Game', 16 | action: this.newGame 17 | }, 18 | { 19 | name: 'Options', 20 | action: this.openOptions 21 | }, 22 | { 23 | name: 'Exit', 24 | action: this.openOptions 25 | } 26 | ]; 27 | 28 | // Add the load Button 29 | if (localStorage.getItem('DATA')) { 30 | this.menu.unshift({ 31 | name: 'Continue', 32 | action: this.loadGame 33 | }); 34 | } 35 | 36 | let x = 64; 37 | let y = 50; 38 | let h = 45; 39 | let paddingTop = 6; 40 | let paddingLeft = 20; 41 | let marginY = 5; 42 | for (var option of this.menu) { 43 | option.sprite = this.game.add.sprite(x, y, 'load_button') 44 | var text = this.game.add.text(x + paddingLeft, y + paddingTop, option.name, CONFIG.FONT.WHITE_SM); 45 | y += h + marginY; 46 | } 47 | 48 | 49 | this.menuIndex = 0; 50 | this.menu[this.menuIndex].sprite.frame = 1; 51 | 52 | this.game.setCgo(this); 53 | 54 | } 55 | 56 | onkeydown() {} 57 | onkeyup(key) { 58 | if (key == Phaser.Keyboard.ENTER) { 59 | this.menu[this.menuIndex].action.apply(this); 60 | } 61 | 62 | if (key == Phaser.Keyboard.UP) { 63 | this.menu[this.menuIndex].sprite.frame = 0; 64 | this.menuIndex--; 65 | GFX.choose.play(); 66 | if (this.menuIndex < 0) this.menuIndex = this.menu.length - 1; 67 | this.menu[this.menuIndex].sprite.frame = 1; 68 | } 69 | 70 | if (key == Phaser.Keyboard.DOWN) { 71 | this.menu[this.menuIndex].sprite.frame = 0; 72 | this.menuIndex++; 73 | GFX.choose.play(); 74 | if (this.menuIndex == this.menu.length) this.menuIndex = 0; 75 | this.menu[this.menuIndex].sprite.frame = 1; 76 | } 77 | } 78 | 79 | loadGame() { 80 | let a = localStorage.getItem('DATA'); 81 | let b = localStorage.getItem('PLAYER_DATA'); 82 | Object.assign(DATA, JSON.parse(a)); 83 | DATA.player = new Player(this.game, JSON.parse(b)); 84 | this.state.start('Overworld', true, false, DATA.mapFilename, DATA.player.data.currTile.x, DATA.player.data.currTile.y); 85 | } 86 | 87 | newGame() { 88 | this.state.start('Intro'); 89 | } 90 | 91 | openOptions() { 92 | console.log("Not yet") 93 | } 94 | } 95 | 96 | export default LoadState; 97 | -------------------------------------------------------------------------------- /src/core/States/Overworld.js: -------------------------------------------------------------------------------- 1 | import DATA from '../Data'; 2 | import * as utils from '../utils'; 3 | 4 | import NPC from '../GameObjects/NPC'; 5 | 6 | class Overwolrd extends Phaser.State { 7 | 8 | init(mapFilename, tileX, tileY) { 9 | this.mapFilename = mapFilename; 10 | this.tileX = parseInt(tileX); 11 | this.tileY = parseInt(tileY); 12 | } 13 | 14 | create() { 15 | this.player = DATA.player; 16 | this.game.setCgo(this.player); 17 | this.createmap(); 18 | this.player.setMapPosition(this.tileX, this.tileY); 19 | DATA.mapFilename = this.mapFilename; 20 | if (this.map.properties.bgm) { 21 | this.bgm = this.game.add.audio(this.map.properties.bgm); 22 | this.bgm.loopFull(); 23 | } 24 | } 25 | 26 | createmap() { 27 | this.map = this.game.add.tilemap(this.mapFilename, 32, 32); 28 | this.map.addTilesetImage('Outside', 'Outside'); 29 | this.map.addTilesetImage('interior_general', 'interior_general'); 30 | this.map.addTilesetImage('movement_permissions', 'movement_permissions'); 31 | 32 | this.collisions = this.map.createLayer('Collisions'); 33 | this.map.createLayer('1'); 34 | this.map.createLayer('2'); 35 | 36 | 37 | this.collisions.resizeWorld(); 38 | this.game.camera.follow(this.player); 39 | DATA.map.collisions = this.collisions; 40 | 41 | // This group is used to sort the z deep of the sprites 42 | DATA.map.entities = new Phaser.Group(this.game); 43 | DATA.map.entities.enableBody = true; 44 | 45 | // Group used to handle tall grass collisions 46 | DATA.map.grass = new Phaser.Group(this.game); 47 | 48 | DATA.map.npcs = {} 49 | 50 | 51 | 52 | let animatedTiles = utils.findObjectsByType('AnimatedTile', this.map, 'Events', true) 53 | let animatedGroup = this.game.add.group() 54 | for (var tile of animatedTiles) { 55 | animatedGroup.create(tile.x, tile.y, tile.properties.sprite) 56 | animatedGroup.callAll( 57 | 'animations.add', 58 | 'animations', 59 | 'initial', 60 | utils.range(parseInt(tile.properties.frames)), 61 | parseInt(tile.properties.fps), 62 | true); 63 | animatedGroup.callAll('animations.play', 'animations', 'initial'); 64 | } 65 | 66 | DATA.map.entities.add(this.player); 67 | 68 | let tallGrassTiles = utils.findObjectsByType('TallGrass', this.map, 'Events', true) 69 | for (var tile of tallGrassTiles) { 70 | let sprite = DATA.map.entities.create(tile.x, tile.y, 'DustandGrass') 71 | DATA.map.entities.callAll('animations.add', 'animations', 'rustling', [1, 2, 3, 0], 10, false); 72 | DATA.map.grass.add(sprite); 73 | } 74 | 75 | let npcs = utils.findObjectsByType('NPC', this.map, 'Events', true); 76 | for (var tile of npcs) { 77 | let npc = new NPC(this.game, tile.x, tile.y, tile.properties); 78 | DATA.map.entities.add(npc); 79 | DATA.map.npcs[tile.name] = npc; 80 | } 81 | 82 | 83 | this.map.createLayer('3'); 84 | 85 | // Automatics script, no action button needed 86 | DATA.map.triggerscripts = new Phaser.Group(this.game); 87 | DATA.map.triggerscripts.enableBody = true; 88 | let triggerscripts = utils.findObjectsByType('TriggerScript', this.map, 'Events'); 89 | for (var i of triggerscripts) { 90 | let s = DATA.map.triggerscripts.add(this.game.add.sprite(i.x, i.y)); 91 | s.properties = i.properties; 92 | } 93 | 94 | // 95 | DATA.map.actionscripts = new Phaser.Group(this.game); 96 | DATA.map.actionscripts.enableBody = true; 97 | let EventsTiles = utils.findObjectsByType('ActionScript', this.map, 'Events'); 98 | for (var i of EventsTiles) { 99 | let s = DATA.map.actionscripts.add(this.game.add.sprite(i.x, i.y)); 100 | s.properties = i.properties; 101 | } 102 | 103 | 104 | DATA.map.warps = new Phaser.Group(this.game); 105 | DATA.map.warps.enableBody = true; 106 | let warps = utils.findObjectsByType('Warp', this.map, 'Events'); 107 | for (var i of warps) { 108 | let s = DATA.map.warps.add(this.game.add.sprite(i.x, i.y)); 109 | s.properties = i.properties; 110 | } 111 | DATA.map.entities.sort('y', Phaser.Group.SORT_ASCENDING); 112 | } 113 | 114 | shutdown() { 115 | DATA.map.entities.remove(this.player); 116 | DATA.map.entities.destroy(true); 117 | this.bgm.stop(); 118 | } 119 | 120 | } 121 | 122 | export default Overwolrd; 123 | -------------------------------------------------------------------------------- /src/core/States/Preload.js: -------------------------------------------------------------------------------- 1 | import CONFIG from '../config'; 2 | import DATA from '../Data'; 3 | import { 4 | GFX 5 | } from '../main'; 6 | 7 | class Preload extends Phaser.State { 8 | preload() { 9 | this.loading = this.game.add.text(this.game.world.centerX, this.game.world.centerY, "Loading...", CONFIG.FONT.WHITE); 10 | this.loading.anchor.set(.5, .5); 11 | this.bar = this.game.add.sprite(16, this.game.world.centerY + 50, "loading"); 12 | this.load.setPreloadSprite(this.bar); 13 | 14 | 15 | // Trainers Sprites and Animated Tiles 16 | this.game.load.spritesheet('trchar000', 'Resources/Graphics/Characters/trchar000.png', 32, 48) 17 | this.game.load.spritesheet('trchar001', 'Resources/Graphics/Characters/trchar001.png', 32, 48) 18 | this.game.load.spritesheet('boy_run', 'Resources/Graphics/Characters/boy_run.png', 32, 48) 19 | this.game.load.spritesheet('girl_run', 'Resources/Graphics/Characters/girl_run.png', 32, 48) 20 | this.game.load.spritesheet('doors5', 'Resources/Graphics/Characters/doors5.png', 32, 32) 21 | this.game.load.spritesheet('Flowers1', 'Resources/Graphics/Autotiles/Flowers1.png', 32, 32) 22 | this.game.load.spritesheet('WaterCurrentSouth', 'Resources/Graphics/Autotiles/Water current south.png', 32, 32) 23 | this.game.load.spritesheet('DustandGrass', 'Resources/Graphics/Animations/DustandGrass.png', 32, 32) 24 | 25 | // Pokemon 3d prerendered Sprites 26 | this.game.load.spritesheet('383', 'Resources/Graphics/Battlers/383.png', 107, 94) 27 | this.game.load.spritesheet('460_1', 'Resources/Graphics/Battlers/460_1.png', 125, 110) 28 | this.game.load.spritesheet('460b_1', 'Resources/Graphics/Battlers/460b_1.png', 124, 118) 29 | this.game.load.spritesheet('504', 'Resources/Graphics/Battlers/504.png', 46, 55) 30 | this.game.load.spritesheet('727', 'Resources/Graphics/Battlers/727.png', 131, 96) 31 | this.game.load.spritesheet('pikachu', 'Resources/Graphics/Battlers/pikachu.png', 60, 60) 32 | 33 | // Tilesets 34 | this.game.load.image('Outside', 'Resources/Graphics/Tilesets/Outside.png') 35 | this.game.load.image('bg-meadow', 'Resources/Graphics/Battlebacks/bg-meadow.jpg') 36 | this.game.load.image('playerbaseCityGrass', 'Resources/Graphics/Battlebacks/playerbaseCityGrass.png') 37 | this.game.load.image('enemybaseCityGrass', 'Resources/Graphics/Battlebacks/enemybaseCityGrass.png') 38 | this.game.load.image('interior_general', 'Resources/Graphics/Tilesets/Interior_general.png') 39 | this.game.load.image('movement_permissions', 'Resources/Graphics/Tilesets/movement_permissions.png') 40 | 41 | this.game.load.image('hp_bar_bg', 'Resources/Graphics/Pictures/battle/hp_bar_bg.png') 42 | this.game.load.spritesheet('hp_bar', 'Resources/Graphics/Pictures/battle/hp_bar.png', 224, 48) 43 | this.game.load.image('foe_hp_bar_bg', 'Resources/Graphics/Pictures/battle/foe_hp_bar_bg.png') 44 | this.game.load.spritesheet('foe_hp_bar', 'Resources/Graphics/Pictures/battle/foe_hp_bar.png', 224, 32) 45 | this.game.load.image('exp_bar_bg', 'Resources/Graphics/Pictures/battle/exp_bar_bg.png') 46 | this.game.load.image('exp_bar', 'Resources/Graphics/Pictures/battle/exp_bar.png') 47 | this.game.load.image('command_menu', 'Resources/Graphics/Pictures/battle/command_menu.png'); 48 | this.game.load.spritesheet('cmd_buttons', 'Resources/Graphics/Pictures/battle/cmd_buttons.png', 96, 48) 49 | 50 | // General Pictures 51 | this.game.load.spritesheet('gender_symbol', 'Resources/Graphics/Pictures/gender_symbol.png', 16, 16) 52 | this.game.load.image('shadeFull', 'Resources/Graphics/Pictures/shadeFull.png') 53 | this.game.load.image('newBattleMessageBox', 'Resources/Graphics/Pictures/newBattleMessageBox.png') 54 | this.game.load.image('loadbg', 'Resources/Graphics/Pictures/loadbg.png') 55 | this.game.load.image('bg', 'Resources/Graphics/Pictures/bg.png') 56 | this.game.load.image('bg1', 'Resources/Graphics/Pictures/bg1.png') 57 | this.game.load.image('white_bg', 'Resources/Graphics/Pictures/white_bg.png') 58 | this.game.load.image('moving_bg', 'Resources/Graphics/Pictures/moving_bg.png') 59 | this.game.load.image('introbg', 'Resources/Graphics/Pictures/introbg.png') 60 | this.game.load.image('introBoy', 'Resources/Graphics/Pictures/introBoy.png') 61 | this.game.load.image('introGirl', 'Resources/Graphics/Pictures/introGirl.png') 62 | this.game.load.image('introOak', 'Resources/Graphics/Pictures/introOak.png') 63 | this.game.load.image('introProf', 'Resources/Graphics/Pictures/introProf.png') 64 | this.game.load.image('introbase', 'Resources/Graphics/Pictures/introbase.png') 65 | this.game.load.image('selarrow', 'Resources/Graphics/Pictures/selarrow.png') 66 | this.game.load.spritesheet('load_button', 'Resources/Graphics/Pictures/load_button.png', 384, 45) 67 | 68 | // Title assets 69 | this.game.load.image('pokestart', 'Resources/Graphics/Titles/pokestart.png') 70 | this.game.load.image('custom_background', 'Resources/Graphics/Titles/custom_background.png') 71 | this.game.load.image('custom_clouds_1', 'Resources/Graphics/Titles/custom_clouds_1.png') 72 | this.game.load.image('custom_clouds_2', 'Resources/Graphics/Titles/custom_clouds_2.png') 73 | this.game.load.image('custom_effect', 'Resources/Graphics/Titles/custom_effect.png') 74 | this.game.load.image('custom_plane', 'Resources/Graphics/Titles/custom_plane.png') 75 | this.game.load.image('custom_bars', 'Resources/Graphics/Titles/custom_bars.png') 76 | this.game.load.image('custom_bars_shine', 'Resources/Graphics/Titles/custom_bars_shine.png') 77 | this.game.load.image('gen_6_shine', 'Resources/Graphics/Titles/gen_6_shine.png') 78 | this.game.load.image('gen_6_effect2', 'Resources/Graphics/Titles/gen_6_effect2.png') 79 | this.game.load.image('pokemonjs', 'Resources/Graphics/Titles/pokemonjs.png') 80 | this.game.load.image('custom_pokelogo', 'Resources/Graphics/Titles/custom_pokelogo.png') 81 | this.game.load.image('custom_pokelogo_shine', 'Resources/Graphics/Titles/custom_pokelogo_shine.png') 82 | this.game.load.image('gen_5_bg', 'Resources/Graphics/Titles/gen_5_bg.png') 83 | this.game.load.image('gen_6_particle', 'Resources/Graphics/Titles/gen_6_particle.png') 84 | this.game.load.image('gen_6_particle', 'Resources/Graphics/Titles/gen_6_particle.png') 85 | this.game.load.image('gen_6_particle2', 'Resources/Graphics/Titles/gen_6_particle2.png') 86 | 87 | 88 | 89 | this.game.load.image('choice_1', 'Resources/Graphics/Windowskins/choice 1.png') 90 | this.game.load.image('speech_hgss_1', 'Resources/Graphics/Windowskins/speech hgss 1.png') 91 | 92 | 93 | 94 | this.game.load.audio('title_origin', 'Resources/Audio/BGM/title_origin.ogg'); 95 | this.game.load.audio('begin', 'Resources/Audio/BGM/begin.ogg'); 96 | this.game.load.audio('021-Field04', 'Resources/Audio/BGM/021-Field04.ogg'); 97 | this.game.load.audio('route', 'Resources/Audio/BGM/route.ogg'); 98 | this.game.load.audio('select', 'Resources/Audio/BGS/select.ogg'); 99 | this.game.load.audio('Choose', 'Resources/Audio/BGS/Choose.ogg'); 100 | 101 | this.game.load.tilemap('Pallet_Town/pallet_town_01', 'Resources/Maps/Pallet_Town/pallet_town_01.json', null, Phaser.Tilemap.TILED_JSON) 102 | this.game.load.tilemap('Pallet_Town/pallet_town_02', 'Resources/Maps/Pallet_Town/pallet_town_02.json', null, Phaser.Tilemap.TILED_JSON) 103 | this.game.load.tilemap('Route_1/route_1', 'Resources/Maps/Route_1/route_1.json', null, Phaser.Tilemap.TILED_JSON) 104 | 105 | 106 | } 107 | 108 | create() { 109 | this.game.add.plugin(PhaserInput.Plugin); 110 | 111 | GFX.choose = this.game.add.audio('Choose'); 112 | GFX.select = this.game.add.audio('select'); 113 | 114 | //Windows skins 115 | this.game.cache.addNinePatch('choice_1', 'choice_1', null, 16, 16, 16, 16) 116 | this.game.cache.addNinePatch('speech_hgss_1', 'speech_hgss_1', null, 32, 48, 16, 16) 117 | if (DATA.debug.skipTitle) { 118 | this.state.start('Load'); 119 | } else { 120 | this.state.start('Title'); 121 | } 122 | } 123 | } 124 | export default Preload; 125 | -------------------------------------------------------------------------------- /src/core/States/Title.js: -------------------------------------------------------------------------------- 1 | class Title extends Phaser.State { 2 | preload() {} 3 | 4 | create() { 5 | // Step of the current Title screen 6 | this.step = 0; 7 | 8 | this.theme = this.game.add.audio('title_origin'); 9 | this.theme.loopFull(); 10 | 11 | this.masks = {}; 12 | this.pokelogoIntro = this.game.add.sprite(this.game.world.centerX, this.game.world.centerY, 'custom_pokelogo_shine'); 13 | this.pokelogoIntro.anchor.set(0.5, 0.5) 14 | this.masks.pokelogoIntro = this.game.add.graphics(0, 0); 15 | this.masks.pokelogoIntro.beginFill(0xffff00); 16 | this.masks.pokelogoIntro.drawRect(0, this.game.world.height / 2 + 100, this.game.world.width, 16); 17 | this.pokelogoIntro.mask = this.masks.pokelogoIntro; 18 | this.pokelogoIntroY = this.game.world.height; 19 | 20 | this.timer = 64; 21 | 22 | this.barsIntro = this.game.add.sprite(0, 0, 'custom_bars_shine'); 23 | this.masks.barsIntro = this.game.add.graphics(0, 0); 24 | this.masks.barsIntro.beginFill(0xffff00); 25 | this.masks.barsIntro.drawRect(-128, 0, 128, this.game.world.height); 26 | this.barsIntro.mask = this.masks.barsIntro; 27 | this.barsIntroUpx = 0; 28 | this.barsIntroDownx = this.game.world.width; 29 | this.linesShined = false; 30 | } 31 | 32 | 33 | create2() { 34 | 35 | let bg = this.game.add.sprite(0, 0, 'custom_background'); 36 | this.logo2 = this.game.add.sprite(this.game.world.centerX, this.game.world.centerY, 'custom_pokelogo'); 37 | let bars = this.game.add.sprite(0, 0, 'custom_bars'); 38 | bg.alpha = 0; 39 | this.logo2.alpha = 0; 40 | bars.alpha = 0; 41 | this.logo2.anchor.set(0.5, 0.5) 42 | 43 | let bgTween = this.game.add.tween(bg).to({ 44 | alpha: 1 45 | }, 3000, "Linear", true); 46 | this.game.add.tween(this.logo2).to({ 47 | alpha: 1 48 | }, 2000, "Linear", true); 49 | this.game.add.tween(bars).to({ 50 | alpha: 1 51 | }, 1000, "Linear", true); 52 | 53 | bgTween.onComplete.add(this.create3, this); 54 | 55 | } 56 | 57 | create3() { 58 | this.game.camera.flash(); 59 | this.game.world.remove(this.logo2) 60 | this.bacground = this.game.add.tileSprite(0, 0, 512, 384, 'custom_plane'); 61 | this.effects = this.game.add.sprite(this.game.world.centerX, this.game.world.centerY + 102, 'custom_effect'); 62 | this.effects2 = this.game.add.sprite(this.game.world.centerX, this.game.world.centerY + 102, 'gen_6_shine'); 63 | this.effects3 = this.game.add.sprite(this.game.world.centerX, this.game.world.centerY + 102, 'gen_6_effect2'); 64 | this.game.add.sprite(0, 0, 'custom_clouds_2'); 65 | this.emitter = this.game.add.emitter(this.game.world.centerX, this.game.world.centerY + 102, 5); 66 | let pokelogo = this.game.add.sprite(this.game.world.centerX, this.game.world.centerY - 50, 'pokemonjs'); 67 | this.game.add.sprite(0, 0, 'custom_clouds_1'); 68 | this.game.add.sprite(0, 0, 'custom_bars'); 69 | 70 | this.effects.anchor.set(0.5, 0.5) 71 | this.effects2.anchor.set(0.5, 0.5) 72 | this.effects3.anchor.set(0.5, 0.5) 73 | 74 | pokelogo.anchor.set(0.5, 0.5) 75 | let logoTween = this.game.add.tween(pokelogo).from({ 76 | y: this.game.world.centerY 77 | }, 1000, "Linear", true); 78 | 79 | // Start Blink 80 | let startBlink = this.game.add.sprite(this.game.world.centerX, 368, 'pokestart') 81 | startBlink.anchor.set(0.5, 0.5) 82 | startBlink.alpha = 0; 83 | let tween = this.game.add.tween(startBlink).to({ 84 | alpha: 1 85 | }, 1000, "Linear", true, 0, -1, true); 86 | tween.yoyoDelay(1000); 87 | logoTween.chain(tween) 88 | 89 | 90 | this.emitter.makeParticles(['gen_6_particle', 'gen_6_particle2']); 91 | this.emitter.minParticleSpeed.setTo(-200, -200); 92 | this.emitter.maxParticleSpeed.setTo(200, 200); 93 | this.emitter.gravity.set(0, 0); 94 | this.emitter.start(false, 1600, 5, 0); 95 | 96 | this.step = 3; 97 | this.game.setCgo(this); 98 | } 99 | 100 | onkeydown() {} 101 | onkeyup(key) { 102 | if (key == Phaser.Keyboard.ENTER) { 103 | this.theme.fadeOut(500) 104 | this.camera.fade() 105 | this.theme.onFadeComplete.add(() => { 106 | this.state.start('Intro') 107 | }, this, 0); 108 | } 109 | } 110 | 111 | 112 | update() { 113 | 114 | if (this.step == 0) { 115 | this.masks.pokelogoIntro.y -= 4; 116 | this.timer--; 117 | if (this.timer < 0) { 118 | this.game.world.remove(this.pokelogoIntro) 119 | this.step = 1; 120 | this.timer = 60; 121 | } 122 | } 123 | 124 | if (this.step == 1) { 125 | this.masks.barsIntro.x += 16; 126 | this.timer--; 127 | if (this.barsIntroDownx < 0) { 128 | this.game.world.remove(this.barsIntro) 129 | } 130 | if (this.timer < 0) { 131 | this.step = 2; 132 | this.create2() 133 | } 134 | } 135 | 136 | if (this.step == 3) { 137 | this.bacground.tilePosition.x -= 0.5; 138 | this.effects.angle += 1; 139 | this.effects3.angle += 0.2; 140 | } 141 | 142 | } 143 | } 144 | 145 | export default Title; 146 | -------------------------------------------------------------------------------- /src/core/config.js: -------------------------------------------------------------------------------- 1 | const CONFIG = { 2 | WIDTH: 512, 3 | HEIGTH: 384, 4 | TILE_SIZE: 32, 5 | KEYBAORD_CONTROLS: [ 6 | Phaser.Keyboard.Z, 7 | Phaser.Keyboard.X, 8 | Phaser.Keyboard.ENTER, 9 | Phaser.Keyboard.UP, 10 | Phaser.Keyboard.RIGHT, 11 | Phaser.Keyboard.DOWN, 12 | Phaser.Keyboard.LEFT, 13 | ], 14 | FONT: { 15 | BLACK: { 16 | font: "32px power_clearregular", 17 | fill: "#000" 18 | }, 19 | WHITE: { 20 | font: "32px power_clearregular", 21 | fill: "#fff", 22 | strokeThickness: 3, 23 | stoke: "#000" 24 | }, 25 | BLACK_SM: { 26 | font: "24px power_clearregular", 27 | fill: "#000" 28 | }, 29 | WHITE_SM: { 30 | font: "24px power_clearregular", 31 | fill: "#fff", 32 | strokeThickness: 3, 33 | stoke: "#000" 34 | }, 35 | BLACK_XS: { 36 | font: "18px power_clearregular", 37 | fill: "#000" 38 | }, 39 | WHITE_XS: { 40 | font: "18px power_clearregular", 41 | fill: "#fff", 42 | strokeThickness: 3, 43 | stoke: "#000" 44 | }, 45 | } 46 | }; 47 | export default CONFIG; 48 | -------------------------------------------------------------------------------- /src/core/main.js: -------------------------------------------------------------------------------- 1 | import Game from './Game'; 2 | import Pkmn from './Pkmn'; 3 | 4 | let g = new Game(); 5 | export const PKMN = new Pkmn(g); 6 | export const GFX = {}; 7 | 8 | 9 | ///Electron Config 10 | 11 | if (window.NodeRequire) { 12 | const { 13 | remote 14 | } = window.NodeRequire('electron'); 15 | const { 16 | Menu, 17 | MenuItem 18 | } = remote; 19 | const win = remote.getCurrentWindow(); 20 | let template = [{ 21 | label: "Options", 22 | submenu: [{ 23 | label: "Video", 24 | submenu: [{ 25 | label: "x1", 26 | type: 'radio', 27 | checked: true, 28 | click: () => { 29 | win.setSize(512, 432); 30 | win.setFullScreen(false); 31 | } 32 | }, 33 | { 34 | label: "x1.5", 35 | type: 'radio', 36 | click: () => { 37 | win.setSize(768, 624); 38 | win.setFullScreen(false); 39 | } 40 | }, 41 | { 42 | label: "x2", 43 | type: 'radio', 44 | click: () => { 45 | win.setSize(1024, 816); 46 | win.setFullScreen(false); 47 | } 48 | }, 49 | { 50 | label: "Fullscreen", 51 | type: 'radio', 52 | click: () => { 53 | win.setFullScreen(true); 54 | } 55 | } 56 | ] 57 | }], 58 | }, 59 | { 60 | label: 'debug', 61 | submenu: [{ 62 | label: 'Show Console', 63 | type: 'checkbox', 64 | click: () => { 65 | win.toggleDevTools(); 66 | } 67 | }] 68 | } 69 | ]; 70 | var menu = Menu.buildFromTemplate(template); 71 | Menu.setApplicationMenu(menu); 72 | } 73 | -------------------------------------------------------------------------------- /src/core/utils.js: -------------------------------------------------------------------------------- 1 | export function findObjectsByType(type, map, layer, yOffset) { 2 | var result = new Array(); 3 | map.objects[layer].forEach(function (element) { 4 | if (element.type == type) { 5 | if (yOffset) element.y -= map.tileHeight; 6 | result.push(element); 7 | } 8 | }); 9 | return result; 10 | } 11 | 12 | 13 | export function range(n) { 14 | let array = []; 15 | for (var i = 0; i < n; i++) { 16 | array.push(i) 17 | } 18 | return array; 19 | } 20 | -------------------------------------------------------------------------------- /vendor/libs/HealthBar.standalone.js: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2015 Belahcen Marwane (b.marwane@gmail.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in all 12 | copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 20 | SOFTWARE. 21 | */ 22 | 23 | var HealthBar = function(game, providedConfig) { 24 | this.game = game; 25 | 26 | this.setupConfiguration(providedConfig); 27 | this.setPosition(this.config.x, this.config.y); 28 | this.drawBackground(); 29 | this.drawHealthBar(); 30 | this.setFixedToCamera(this.config.isFixedToCamera); 31 | }; 32 | HealthBar.prototype.constructor = HealthBar; 33 | 34 | HealthBar.prototype.setupConfiguration = function (providedConfig) { 35 | this.config = this.mergeWithDefaultConfiguration(providedConfig); 36 | this.flipped = this.config.flipped; 37 | }; 38 | 39 | HealthBar.prototype.mergeWithDefaultConfiguration = function(newConfig) { 40 | var defaultConfig= { 41 | width: 250, 42 | height: 40, 43 | x: 0, 44 | y: 0, 45 | bg: { 46 | color: '#651828' 47 | }, 48 | bar: { 49 | color: '#FEFF03' 50 | }, 51 | animationDuration: 200, 52 | flipped: false, 53 | isFixedToCamera: false 54 | }; 55 | 56 | return mergeObjetcs(defaultConfig, newConfig); 57 | }; 58 | 59 | function mergeObjetcs(targetObj, newObj) { 60 | for (var p in newObj) { 61 | try { 62 | targetObj[p] = newObj[p].constructor==Object ? mergeObjetcs(targetObj[p], newObj[p]) : newObj[p]; 63 | } catch(e) { 64 | targetObj[p] = newObj[p]; 65 | } 66 | } 67 | return targetObj; 68 | } 69 | 70 | HealthBar.prototype.drawBackground = function() { 71 | var bmd = this.game.add.bitmapData(this.config.width, this.config.height); 72 | bmd.ctx.fillStyle = this.config.bg.color; 73 | bmd.ctx.beginPath(); 74 | bmd.ctx.rect(0, 0, this.config.width, this.config.height); 75 | bmd.ctx.fill(); 76 | 77 | this.bgSprite = this.game.add.sprite(this.x, this.y, bmd); 78 | this.bgSprite.anchor.set(0.5); 79 | }; 80 | 81 | HealthBar.prototype.drawHealthBar = function() { 82 | this.barBitmap = this.game.add.bitmapData(this.config.width, this.config.height); 83 | this.barBitmap.ctx.fillStyle = this.config.bar.color; 84 | this.barBitmap.ctx.beginPath(); 85 | this.barBitmap.ctx.rect(0, 0, this.config.width, this.config.height); 86 | this.barBitmap.ctx.fill(); 87 | 88 | this.barSprite = this.game.add.sprite(this.x - this.bgSprite.width/2, this.y, this.barBitmap); 89 | this.barSprite.anchor.y = 0.5; 90 | if (this.flipped){ 91 | this.barSprite.anchor.x = 1; 92 | this.barSprite.position.x = this.bgSprite.position.x + this.config.width * this.bgSprite.anchor.x; 93 | } 94 | }; 95 | 96 | HealthBar.prototype.setPosition = function (x, y) { 97 | this.x = x; 98 | this.y = y; 99 | 100 | if(this.bgSprite !== undefined && this.barSprite !== undefined){ 101 | this.bgSprite.position.x = x; 102 | this.bgSprite.position.y = y; 103 | 104 | this.barSprite.position.x = this.bgSprite.position.x - this.config.width * this.bgSprite.anchor.x; 105 | this.barSprite.position.y = y; 106 | if (this.flipped){ 107 | this.barSprite.position.x = this.bgSprite.position.x; 108 | } 109 | } 110 | }; 111 | 112 | 113 | HealthBar.prototype.setPercent = function(newValue){ 114 | if(newValue < 0) newValue = 0; 115 | if(newValue > 100) newValue = 100; 116 | 117 | var newWidth = (newValue * this.config.width) / 100; 118 | 119 | this.setWidth(newWidth); 120 | }; 121 | 122 | HealthBar.prototype.setWidth = function(newWidth){ 123 | this.game.add.tween(this.barSprite).to( { width: newWidth }, this.config.animationDuration, Phaser.Easing.Linear.None, true); 124 | }; 125 | 126 | HealthBar.prototype.setFixedToCamera = function(fixedToCamera) { 127 | this.bgSprite.fixedToCamera = fixedToCamera; 128 | this.barSprite.fixedToCamera = fixedToCamera; 129 | }; 130 | 131 | HealthBar.prototype.setAnchor = function(xAnchor, yAnchor) { 132 | this.bgSprite.anchor.set(xAnchor, yAnchor); 133 | this.barSprite.position.x = this.bgSprite.position.x - this.config.width * this.bgSprite.anchor.x; 134 | this.barSprite.anchor.y = yAnchor; 135 | if (this.flipped){ 136 | this.barSprite.anchor.x = 1; 137 | this.barSprite.position.x = this.bgSprite.position.x; 138 | } 139 | }; 140 | 141 | HealthBar.prototype.setBarColor = function(color) { 142 | this.barBitmap.ctx.fillColor = 0x5B5B5B; 143 | }; 144 | 145 | HealthBar.prototype.kill = function() { 146 | this.bgSprite.kill(); 147 | this.barSprite.kill(); 148 | }; 149 | 150 | -------------------------------------------------------------------------------- /vendor/libs/nine-patch-phaser-plugin.min.js: -------------------------------------------------------------------------------- 1 | !function e(t,r,i){function a(h,s){if(!r[h]){if(!t[h]){var o="function"==typeof require&&require;if(!s&&o)return o(h,!0);if(n)return n(h,!0);var u=new Error("Cannot find module '"+h+"'");throw u.code="MODULE_NOT_FOUND",u}var c=r[h]={exports:{}};t[h][0].call(c.exports,function(e){var r=t[h][1][e];return a(r?r:e)},c,c.exports,e,t,r,i)}return r[h].exports}for(var n="function"==typeof require&&require,h=0;h=0;r--)for(var i=2;i>=0;i--){var a=t[r][i];a.x+=this.x,a.y+=this.y}for(var r=0;3>r;r++)for(var i=0;3>i;i++)this.textures[r][i]=new PIXI.Texture(e,t[r][i])}},{key:"CreateDimensionMap",value:function(){for(var e=arguments.length<=0||void 0===arguments[0]?this.width:arguments[0],t=arguments.length<=1||void 0===arguments[1]?this.height:arguments[1],r=this.left,i=this.right,a=this.top,n=this.bottom,h=e-r-i,s=t-a-n,o=[[],[],[]],u=2;u>=0;u--)for(var c=2;c>=0;c--){var f=o[u][c]={};switch(u){case 0:f.height=a,f.y=0;break;case 1:f.height=s,f.y=a;break;case 2:f.height=n,f.y=a+s}switch(c){case 0:f.width=r,f.x=0;break;case 1:f.width=h,f.x=r;break;case 2:f.width=i,f.x=r+h}}return o}},{key:"CreateImages",value:function(e){for(var t=this.textures,r=[[],[],[]],i=0;3>i;i++)for(var a=0;3>a;a++){var n=r[i][a]=this.game.add.image(0,0,t[i][a]);e&&(e.add?e.add(n):e.addChild&&e.addChild(n))}return r}}]),e}();r["default"]=n,t.exports=r["default"]},{}],2:[function(e,t,r){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(r,"__esModule",{value:!0});var n=function(){function e(e,t){for(var r=0;ro;o++)for(var u=0;3>u;u++){var c=i[o][u],f=n[o][u];c.x=f.x-h,c.y=f.y-s,c.width=f.width,c.height=f.height}}},{key:"targetWidth",get:function(){return this.currentWidth},set:function(e){this.currentWidth=e,this.UpdateImageSizes()}},{key:"targetHeight",get:function(){return this.currentHeight},set:function(e){this.currentHeight=e,this.UpdateImageSizes()}}]),t}(Phaser.Image);r["default"]=s,t.exports=r["default"]},{}],3:[function(e,t,r){var i=e("./NinePatchCache");Phaser.Cache.prototype.addNinePatch=function(e,t,r,a,n,h,s){var o=this._ninePatches=this._ninePatches||{};o[e]=new i(this.game,t,r,a,n,h,s),console.log(o)},Phaser.Cache.prototype.getNinePatch=function(e){var t=this._ninePatches=this._ninePatches||{};return t[e]},Phaser.NinePatchImage=e("./NinePatchImage")},{"./NinePatchCache":1,"./NinePatchImage":2}]},{},[3]); -------------------------------------------------------------------------------- /vendor/libs/phaser-input.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * phaser-input - version 2.0.2 3 | * Adds input boxes to Phaser like CanvasInput, but also works for WebGL and Mobile, made for Phaser only. 4 | * 5 | * OrangeGames 6 | * Build at 27-01-2017 7 | * Released under MIT License 8 | */ 9 | 10 | var __extends=this&&this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)},PhaserInput;!function(a){var b;!function(a){a[a.text=0]="text",a[a.password=1]="password",a[a.number=2]="number"}(b=a.InputType||(a.InputType={}));var c=function(){function a(a,c,d,e){void 0===d&&(d=b.text),void 0===e&&(e="");var f=this;this.focusIn=new Phaser.Signal,this.focusOut=new Phaser.Signal,this.id=c,this.type=d,this.game=a;var g=this.game.canvas.getBoundingClientRect().top+document.body.scrollTop;this.element=document.createElement("input"),this.element.id=c,this.element.style.position="absolute",this.element.style.top=g+"px",this.element.style.left=(-40).toString()+"px",this.element.style.width=10..toString()+"px",this.element.style.height=10..toString()+"px",this.element.style.border="0px",this.element.value=this.value,this.element.type=b[d],this.element.addEventListener("focusin",function(){f.focusIn.dispatch()}),this.element.addEventListener("focusout",function(){f.focusOut.dispatch()}),document.body.appendChild(this.element)}return a.prototype.addKeyUpListener=function(a){this.callback=a,document.addEventListener("keyup",this.callback)},a.prototype.blockKeyDownEvents=function(){document.addEventListener("keydown",this.preventKeyPropagation)},a.prototype.preventKeyPropagation=function(a){a.stopPropagation?a.stopPropagation():event.cancelBubble=!0},a.prototype.unblockKeyDownEvents=function(){document.removeEventListener("keydown",this.preventKeyPropagation)},a.prototype.removeEventListener=function(){document.removeEventListener("keyup",this.callback)},a.prototype.destroy=function(){document.body.removeChild(this.element)},a.prototype.setMax=function(a,c){if(void 0!==a)if(this.type===b.text||this.type===b.password)this.element.maxLength=parseInt(a,10);else if(this.type===b.number){if(this.element.max=a,void 0===c)return;this.element.min=c}},Object.defineProperty(a.prototype,"value",{get:function(){return this.element.value},set:function(a){this.element.value=a},enumerable:!0,configurable:!0}),a.prototype.focus=function(){var a=this;if(this.element.focus(),!this.game.device.desktop&&this.game.device.chrome)var b=window.innerWidth,c=window.innerHeight,d=!1,e=setInterval(function(){(b>window.innerWidth||c>window.innerHeight)&&(d=!0),d&&b===window.innerWidth&&c===window.innerHeight&&(a.focusOut.dispatch(),clearInterval(e))},50)},a.prototype.blur=function(){this.element.blur()},Object.defineProperty(a.prototype,"hasSelection",{get:function(){return this.type===b.number?!1:this.element.selectionStart!==this.element.selectionEnd},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"caretStart",{get:function(){return this.element.selectionEnd},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"caretEnd",{get:function(){return this.element.selectionStart},enumerable:!0,configurable:!0}),a.prototype.getCaretPosition=function(){return this.type===b.number?-1:this.element.selectionStart},a.prototype.setCaretPosition=function(a){this.type!==b.number&&this.element.setSelectionRange(a,a)},a}();a.InputElement=c}(PhaserInput||(PhaserInput={}));var PhaserInput;!function(a){var b=function(b){function c(c,d,e,f){void 0===f&&(f={});var g=b.call(this,c,d,e)||this;return g.focusOutOnEnter=!0,g.placeHolder=null,g.box=null,g.focus=!1,g.value="",g.windowScale=1,g.blockInput=!0,g.blink=!0,g.cnt=0,g.inputOptions=f,g.inputOptions.width="number"==typeof f.width?f.width:150,g.inputOptions.padding="number"==typeof f.padding?f.padding:0,g.inputOptions.textAlign=f.textAlign||"left",g.inputOptions.type=f.type||a.InputType.text,g.inputOptions.borderRadius="number"==typeof f.borderRadius?f.borderRadius:0,g.inputOptions.height="number"==typeof f.height?f.height:14,g.inputOptions.fillAlpha=void 0===f.fillAlpha?1:f.fillAlpha,g.inputOptions.selectionColor=f.selectionColor||"rgba(179, 212, 253, 0.8)",g.inputOptions.zoom=c.device.desktop?!1:f.zoom||!1,g.box=new a.InputBox(g.game,f),g.setTexture(g.box.generateTexture()),g.textMask=new a.TextMask(g.game,f),g.addChild(g.textMask),g.domElement=new a.InputElement(g.game,"phaser-input-"+(1e4*Math.random()|0).toString(),g.inputOptions.type,g.value),g.domElement.setMax(g.inputOptions.max,g.inputOptions.min),g.selection=new a.SelectionHighlight(g.game,g.inputOptions),g.selection.mask=g.textMask,g.addChild(g.selection),f.placeHolder&&f.placeHolder.length>0&&(g.placeHolder=new Phaser.Text(c,g.inputOptions.padding,g.inputOptions.padding,f.placeHolder,{font:f.font||"14px Arial",fontWeight:f.fontWeight||"normal",fill:f.placeHolderColor||"#bfbebd"}),g.placeHolder.mask=g.textMask,g.addChild(g.placeHolder)),g.cursor=new Phaser.Text(c,g.inputOptions.padding,g.inputOptions.padding-2,"|",{font:f.font||"14px Arial",fontWeight:f.fontWeight||"normal",fill:f.cursorColor||"#000000"}),g.cursor.visible=!1,g.addChild(g.cursor),g.text=new Phaser.Text(c,g.inputOptions.padding,g.inputOptions.padding,"",{font:f.font||"14px Arial",fontWeight:f.fontWeight||"normal",fill:f.fill||"#000000"}),g.text.mask=g.textMask,g.addChild(g.text),g.offscreenText=new Phaser.Text(c,g.inputOptions.padding,g.inputOptions.padding,"",{font:f.font||"14px Arial",fontWeight:f.fontWeight||"normal",fill:f.fill||"#000000"}),g.updateTextAlignment(),g.inputEnabled=!0,g.input.useHandCursor=!0,g.game.input.onDown.add(g.checkDown,g),g.domElement.focusOut.add(function(){a.KeyboardOpen&&(g.endFocus(),g.inputOptions.zoom&&g.zoomOut())}),g}return __extends(c,b),Object.defineProperty(c.prototype,"width",{get:function(){return this.inputOptions.width},set:function(a){this.inputOptions.width=a,this.box.resize(a),this.textMask.resize(a),this.updateTextAlignment()},enumerable:!0,configurable:!0}),c.prototype.updateTextAlignment=function(){switch(this.inputOptions.textAlign){case"left":this.text.anchor.set(0,0),this.text.x=this.inputOptions.padding,null!==this.placeHolder&&this.placeHolder.anchor.set(0,0),this.cursor.x=this.inputOptions.padding+this.getCaretPosition();break;case"center":this.text.anchor.set(.5,0),this.text.x=this.inputOptions.padding+this.inputOptions.width/2,null!==this.placeHolder&&(this.placeHolder.anchor.set(.5,0),this.placeHolder.x=this.inputOptions.padding+this.inputOptions.width/2),this.cursor.x=this.inputOptions.padding+this.inputOptions.width/2-this.text.width/2+this.getCaretPosition();break;case"right":this.text.anchor.set(1,0),this.text.x=this.inputOptions.padding+this.inputOptions.width,null!==this.placeHolder&&(this.placeHolder.anchor.set(1,0),this.placeHolder.x=this.inputOptions.padding+this.inputOptions.width),this.cursor.x=this.inputOptions.padding+this.inputOptions.width}},c.prototype.checkDown=function(b){if(this.value||this.resetText(),this.input.checkPointerOver(b)){if(this.focus)return void this.setCaretOnclick(b);this.inputOptions.zoom&&!a.Zoomed&&this.zoomIn(),this.startFocus()}else this.focus===!0&&(this.endFocus(),this.inputOptions.zoom&&this.zoomOut())},c.prototype.update=function(){if(this.focus){if(30!==this.cnt)return this.cnt++;this.cursor.visible=this.blink,this.blink=!this.blink,this.cnt=0}},c.prototype.endFocus=function(){var b=this;this.focus&&(this.domElement.removeEventListener(),this.blockInput===!0&&this.domElement.unblockKeyDownEvents(),this.focus=!1,0===this.value.length&&null!==this.placeHolder&&(this.placeHolder.visible=!0),this.cursor.visible=!1,this.game.device.desktop?setTimeout(function(){b.domElement.blur()},0):this.domElement.blur(),this.game.device.desktop||(a.KeyboardOpen=!1,a.onKeyboardClose.dispatch()))},c.prototype.startFocus=function(){var b=this;this.focus=!0,null!==this.placeHolder&&(this.placeHolder.visible=!1),this.game.device.desktop?setTimeout(function(){b.keyUpProcessor()},0):this.keyUpProcessor(),this.game.device.desktop||(a.KeyboardOpen=!0,a.onKeyboardOpen.dispatch())},c.prototype.keyUpProcessor=function(){this.domElement.addKeyUpListener(this.keyListener.bind(this)),this.domElement.focus(),this.blockInput===!0&&this.domElement.blockKeyDownEvents()},c.prototype.updateText=function(){var b="";if(this.inputOptions.type===a.InputType.password)for(var c=0;cparseInt(this.inputOptions.max)?this.value=this.domElement.value=this.inputOptions.max:this.value}else b=this.value;if(this.text.setText(b),this.text.width>this.inputOptions.width)this.text.anchor.x=1,this.text.x=this.inputOptions.padding+this.inputOptions.width;else switch(this.inputOptions.textAlign){case"left":this.text.anchor.set(0,0),this.text.x=this.inputOptions.padding;break;case"center":this.text.anchor.set(.5,0),this.text.x=this.inputOptions.padding+this.inputOptions.width/2;break;case"right":this.text.anchor.set(1,0),this.text.x=this.inputOptions.padding+this.inputOptions.width}},c.prototype.updateCursor=function(){if(this.text.width>this.inputOptions.width||"right"===this.inputOptions.textAlign)this.cursor.x=this.inputOptions.padding+this.inputOptions.width;else switch(this.inputOptions.textAlign){case"left":this.cursor.x=this.inputOptions.padding+this.getCaretPosition();break;case"center":this.cursor.x=this.inputOptions.padding+this.inputOptions.width/2-this.text.width/2+this.getCaretPosition()}},c.prototype.getCaretPosition=function(){var b=this.domElement.getCaretPosition();if(-1===b)return this.text.width;var c=this.value;if(this.inputOptions.type===a.InputType.password){c="";for(var d=0;d=e*c&&(e+1)*c>=b){d=e;break}b>(this.value.length-1)*c&&(d=this.value.length),this.startFocus(),this.domElement.setCaretPosition(d),this.updateCursor()},c.prototype.updateSelection=function(){if(this.domElement.hasSelection){var b=this.value;if(this.inputOptions.type===a.InputType.password){b="";for(var c=0;cwindow.innerWidth?this.windowScale=this.game.width/(1.5*b.width):this.windowScale=this.game.width/2/(1.5*b.width);var c=(this.game.width-1.5*b.width)/2/this.windowScale;this.game.world.scale.set(this.game.world.scale.x*this.windowScale,this.game.world.scale.y*this.windowScale),this.game.world.pivot.set(b.x-c,b.y-2*this.inputOptions.padding),a.Zoomed=!0}},c.prototype.zoomOut=function(){a.Zoomed&&(this.game.world.scale.set(this.game.world.scale.x/this.windowScale,this.game.world.scale.y/this.windowScale),this.game.world.pivot.set(0,0),a.Zoomed=!1)},c.prototype.keyListener=function(a){return this.value=this.domElement.value,13===a.keyCode?void(this.focusOutOnEnter&&this.endFocus()):(this.updateText(),this.updateCursor(),this.updateSelection(),void a.preventDefault())},c.prototype.destroy=function(a){this.game.input.onDown.remove(this.checkDown,this),this.domElement.focusIn.removeAll(),this.domElement.focusOut.removeAll(),this.domElement.destroy(),b.prototype.destroy.call(this,a)},c.prototype.resetText=function(){this.setText()},c.prototype.setText=function(a){void 0===a&&(a=""),null!==this.placeHolder&&(a.length>0?this.placeHolder.visible=!1:this.placeHolder.visible=!0),this.value=a,this.domElement.value=this.value,this.updateText(),this.updateCursor(),this.endFocus()},c}(Phaser.Sprite);a.InputField=b}(PhaserInput||(PhaserInput={}));var PhaserInput;!function(a){var b=function(a){function b(b,c){var d=a.call(this,b,0,0)||this;d.bgColor=c.backgroundColor?parseInt(c.backgroundColor.slice(1),16):16777215,d.borderRadius=c.borderRadius||0,d.borderWidth=c.borderWidth||1,d.borderColor=c.borderColor?parseInt(c.borderColor.slice(1),16):9803157,d.boxAlpha=c.fillAlpha,d.padding=c.padding;var e,e=c.height,f=c.width;c.font&&(e=Math.max(parseInt(c.font.substr(0,c.font.indexOf("px")),10),e)),d.boxHeight=2*d.padding+e;var f=c.width;return d.boxWidth=2*d.padding+f,d.drawBox(),d}return __extends(b,a),b.prototype.resize=function(a){this.boxWidth=2*this.padding+a,this.drawBox()},b.prototype.drawBox=function(){this.clear().beginFill(this.bgColor,this.boxAlpha).lineStyle(this.borderWidth,this.borderColor,this.boxAlpha),this.borderRadius>0?this.drawRoundedRect(0,0,this.boxWidth,this.boxHeight,this.borderRadius):this.drawRect(0,0,this.boxWidth,this.boxHeight)},b}(Phaser.Graphics);a.InputBox=b}(PhaserInput||(PhaserInput={}));var PhaserInput;!function(a){var b=function(a){function b(b,c){var d=a.call(this,b,c.padding,c.padding)||this;return d.inputOptions=c,d}return __extends(b,a),b.prototype.updateSelection=function(a){var c=Phaser.Color.webToColor(this.inputOptions.selectionColor);this.clear(),this.beginFill(b.rgb2hex(c),c.a),this.drawRect(a.x,a.y,a.width,a.height-this.inputOptions.padding)},b.rgb2hex=function(a){return parseInt(("0"+a.r.toString(16)).slice(-2)+("0"+a.g.toString(16)).slice(-2)+("0"+a.b.toString(16)).slice(-2),16)},b}(Phaser.Graphics);a.SelectionHighlight=b}(PhaserInput||(PhaserInput={}));var PhaserInput;!function(a){var b=function(a){function b(b,c){var d=a.call(this,b,c.padding,c.padding)||this,e=c.height;return c.font&&(e=Math.max(parseInt(c.font.substr(0,c.font.indexOf("px")),10),e)),d.maskWidth=c.width,d.maskHeight=1.3*e,d.drawMask(),d}return __extends(b,a),b.prototype.resize=function(a){this.maskWidth=a,this.drawMask()},b.prototype.drawMask=function(){this.clear().beginFill(0).drawRect(0,0,this.maskWidth,this.maskHeight).endFill()},b}(Phaser.Graphics);a.TextMask=b}(PhaserInput||(PhaserInput={}));var PhaserInput;!function(a){a.Zoomed=!1,a.KeyboardOpen=!1,a.onKeyboardOpen=new Phaser.Signal,a.onKeyboardClose=new Phaser.Signal;var b=function(b){function c(a,c){var d=b.call(this,a,c)||this;return d.addInputFieldFactory(),d}return __extends(c,b),c.prototype.addInputFieldFactory=function(){Phaser.GameObjectFactory.prototype.inputField=function(b,c,d,e){void 0===e&&(e=this.world);var f=new a.InputField(this.game,b,c,d);return e.add(f)},Phaser.GameObjectCreator.prototype.inputField=function(b,c,d){return new a.InputField(this.game,b,c,d)}},c}(Phaser.Plugin);b.Zoomed=!1,b.KeyboardOpen=!1,b.onKeyboardOpen=new Phaser.Signal,b.onKeyboardClose=new Phaser.Signal,a.Plugin=b}(PhaserInput||(PhaserInput={})); --------------------------------------------------------------------------------