Interactive Fire Emblem Heroes Combat Simulator and Damage Calculator, as seen on KageroChart. Quickly assess the strength of your build vs the entire FEH Hero Roster!
This project is gradually being open-sourced for community involvement and management. Parts of the application might be missing, or documentation may be sparse. If you have any questions while we get this rolling, please shoot me an email. [email protected]
KageroCalc is a community driven project and pull requests are welcomed and encouraged! Continued community helps ensure the battle simulations are up to date and bug free. As new mechanics are introduced to Fire Emblem Heroes, they must also be implemented in the simulator.
Huge thanks to those who have or will make code contributions!
Please be courteous to fellow contributors and follow these basic guidelines:
- DO: Comment your code sufficiently to explain what it does
- DO: Indent and space your code consistently with the rest of the project, using spaces rather than tab characters (4 spaces/1 tab)
- DO: Test your code thoroughly before submitting a pull request
- DON'T: Submit pull requests for buggy, untested or incomplete code
- DON'T: Criticize or belittle other contributors
I have provided a basic NodeJS/ExpressJS testing server to load up and render the handlebars templates and run the simulator locally, similar to KageroChart.
If you have not previously installed NodeJS and NPM, you must first do so.
After you have installed both, you can install the project dependencies (node_modules)
npm install
- Open a command prompt or terminal
- Navigate to the project root
- Start the test app
npm start
- Open a browser window and navigate to locahost:3000
- Refresh the page when you make client changes; Restart the app for changes to the views.
I have configured the damage calculator to pull data from a large number of individual files rather than a handful of huge mega-files. There is a performance cost for local testing but it hardly matters on the server, because I load it once when the server starts up.
This is a direction I think we should go moving forward, to make it easier for people to jump in and contribute.
- Find the relevant .json file(s) under /data and make your change(s) your change there.
- Stop and restart the test application
ctrl + C npm start
- Find the relevant directory under /data to add new data and create a new json file using a url slug naming convention.
- Stop and restart the test application
ctrl + C npm start
Images are currently hosted on https://kagerochart.com. There are gigs of images, so I'm keeping it out of the repository. I may setup an interface for 3rd party upload at a later time.
KageroCalc uses generated css files from scss, both of which are provided. If you would like to edit styles, you must edit the associated scss files and generate the minifed .min.css files.
For example, theme.scss will generate theme.min.css after you run your changes through a parser.
I personally use my editor ATOM + an addon to monitor for scss changes and automatically compile. I encourage you to do some googling and read about SCSS if it is new to you! Way better than manually styling everything with css alone.
KageroCalc makes use of NodeJS, ExpressJS and handlebars templates to render the calculator. If you'd like to tweak or fix something, you must update the relevant view file and refresh your browser.
KageroCalc is a mix of JQuery and native JS for legacy reasons. The code is not particularly well structured into modules or classes, so diving in will take some commitment.
If you'd like to take a crack at adding a new mechanic or otherwise updating the code, like everything else just make your changes and restart the app.
Please let me know if you have any questions or concerns, and thanks for reading!
Cheers,
@Winsomniak