Skip to content

chaodhib/league-sim

Repository files navigation

League Sim

A simulator for League of Legends champion abilities and item combinations, focusing on optimizing damage output. Currently supports Kha'Zix with plans to expand to other champions.

Features

  • Item Optimizer: Find the best item combinations for maximum damage output
  • Combo Optimizer: Discover optimal ability sequences for your chosen items
  • Single Simulation: Test specific item and ability combinations
  • Detailed Configuration:
    • Champion settings (level, health, champion specific configs)
    • Target settings (armor, magic resistance, health)
    • Rune settings
    • Game state settings (crit handling, game time)
    • Item-specific configurations

Project Structure

  • league-sim-frontend/: Vue.js frontend application.
  • league-sim-backend/: Simulation code written in Rust which gets compiled into WebAssembly.
  • game-data-parser/: Tool for parsing League of Legends game data. The output is then used by the backend simulation code.
  • shared-structs/: Shared data structures between the data parser and the simulation backend.

Getting Started

Prerequisites

  • Node.js and npm for the frontend
  • Rust and Cargo for the backend
  • League of Legends game files for data parsing (optional, only needed if you want to update game data)

Installation

  1. Clone the repository:
git clone https://github.com/chaodhib/league-sim.git
cd league-sim
  1. Compile the WebAssembly package:
cd league-sim-backend
wasm-pack build
  1. Set up the frontend:
cd league-sim-frontend
npm install

Running the Application

  1. Start the frontend development server:
cd league-sim-frontend
npm run dev

Contributing

Contributions are welcome! Here's how you can help:

  1. Report Bugs: Open an issue describing the bug and how to reproduce it
  2. Suggest Features: Open an issue describing your feature idea
  3. Submit Pull Requests: Fork the repo and create a pull request with your changes
  4. Add Champion Support: Help expand the simulator to support more champions
  5. Improve Documentation: Help make our docs better and more comprehensive

Development Guidelines

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Code Style

  • Frontend: Follow Vue.js style guide
  • Backend: Follow Rust style guidelines
  • Use meaningful variable names and add comments for complex logic
  • Write tests for new features

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

A big thanks to:

  • The Meraki project (from which we pull most of our game data) and its contributors.
  • The Cdragon project (from which we pull game data) and its contributors.
  • The League of Legends Wiki (from which Meraki pull its data) and all its contributors.
  • The community and project contributors.

Contact

Project Link: https://github.com/chaodhib/league-sim

Feel free to reach out if you have questions or want to contribute!

About

Damage simulator for League of Legends

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages