pokachy / openpanzer Goto Github PK
View Code? Open in Web Editor NEWThis project forked from nicupavel/openpanzer
HTML5 Panzer General 2
Home Page: http://www.linuxconsulting.ro/openpanzer/
This project forked from nicupavel/openpanzer
HTML5 Panzer General 2
Home Page: http://www.linuxconsulting.ro/openpanzer/
Open Panzer - HTML5 Panzer General 2 http://openpanzer.net http://www.linuxconsulting.ro/openpanzer/ Copyright(c) 2012-2014 Nicu Pavel <[email protected]> The code of Open Panzer is issued under the GNU General Public License (GPL), version 2 or later. By contributing code or content to the project, you agree for it to be distributed under GPL or whatever other open-source license the project maintainers choose in the future. http://www.gnu.org/licenses/old-licenses/gpl-2.0.html Supported browsers: OpenPanzer respects latest W3.org HTML5, CSS3 specs and browser specific specs are kept to a minimum -> null. Base supported javascript engine is V8 open source engine. Code should be kept to basic features of ECMAScript 5. OpenPanzer works in recent Google Chrome, Mozilla Firefox, Safari and Opera. OpenPanzer works on Android (tested on 2.2, 2.3, 4.x) and iOS devices (5.0+). Internet Explorer will probably work with version 11 but extensive code changes for IE aren't a priority. Source code structure description: . ├── css - style sheets used for ui elements │ ├── fonts.css - fonts used in game │ ├── ui-combat-info.css - animations used during combat │ ├── ui-equipment.css - equipment window style and positioning │ ├── ui-message.css - message windows style and positioning │ ├── ui-startmenu.css - main menu shown when game starts │ ├── ui-unit-info.css - unit information dialog │ └── ui.css - main window, main menu, generic dom elements ├── js │ ├── ai.js - AI engine │ ├── animation.js - draws a series of sprites in a time interval │ ├── dom.js - generic function that deal with DOM │ ├── eventhandler.js - event driven function (unused atm) │ ├── game.js - game manager │ ├── gamerules.js - attack, move, resupply, reinforce, distance rules │ ├── gamestate.js - save/load game state to HTML5 local storage │ ├── map.js - hex, map and player objects │ ├── maploader.js - loads scenarios and maps from a xml file │ ├── prototypes.js - generic definitions │ ├── render.js - canvas rendering functions │ ├── sound.js - generic unit sounds functions │ ├── style.js - canvas style for render.js │ ├── unit.js - unit and transport objects │ └── ui.js - handle mouse, builds/updates UI windows ├── resources │ ├── animations - images with 1 row of sprites for animations │ ├── campaigns - campaigns and campaignlist.js index converted with tools/campaign/campaign-convert.py │ ├── equipment - contains units equipment/properties │ ├── fonts - fonts used in OpenPanzer │ ├── maps - big images for the map background │ ├── scenarios - scenarios and scenariolist.js index converted with tools/map/mapconvert.py │ ├── sounds - sounds used for units │ ├── ui │ │ ├── buttons - generic buttons (ok/close) │ │ ├── cursors - mouse cursors used in game │ │ ├── dialogs │ │ │ ├── equipment - images for equipment buttons/dialog │ │ │ ├── startmenu - images for start menu dialog │ │ │ ├── ui-message - images for message dialog │ │ │ ├── unit-context - images for buttons that pop up on unit selections │ │ │ └── unit-info - images for unit info stats │ │ ├── flags - small (for cities) and big (for unit info) flags │ │ ├── indicators - small indicators that are drawn on the map (unit has fired) │ │ ├── menu - images used on main window text bar or main menu │ │ ├── splash - splash images used as loading screen on android/ios │ │ ├── page - images used outside main window │ └── units - 1x9 sprites with unit orientations for each unit ├── tools │ ├── campaign - converts campaigns from PG2 .cam format │ ├── equipment - converts PG2Suite exported equipment to js equipment │ ├── icons - converts SHPTool exported bmp to transparent png │ └── map - converts SCN,MAP,TXT files to OpenPanzer XML │ └── index.html - html file with basic DOM structure for openpanzer Development notes: OpenPanzer doesn't use any extra javascript libraries (like jquery, node etc), and should be kept like this. Styling DOM elements should be done in their CSS files. Adding style for static elements in the code shouldn't exist. All positioning of DOM elements should be done in CSS files. Bottom line: if something can be done in a css file then there it should go not in the javascript code. Code additions should follow the coding style used so far (for object creation etc). Main testing is done on Google Chrome and Firefox under Linux. Running the code locally in Google Chrome requires --allow-file-access-from-files option when starting Google Chrome. Graphical assets and other resources: Unit images are taken from OpenGeneral Icons project: http://opengeneral.sourceforge.net/db/icons/ This game has been built around the specification of the original game compiled by Luis Guzman: http://luis-guzman.com/links/PG2_FilesSpec.html Unit equipment is exported from PG2Suite: http://luis-guzman.com/PG2_Suite.html before being converted into a json format.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.