Built for educational purposes only. Your contributions are welcome 😉
src/models
contains game models' type declarations and some helper functions.src/redux
contains the actual game logic, decoupled from the UI rendering. It uses Redux state library. It is highly recommended to use redux-devtools Chrome extension for debugging.src/UI
is a React-based implementation of Game's UI.
$ yarn && yarn start
Now open localhost:3000 in your web browser 🎉
- Stats
- Armor
- HP
- Mana
- Overload
- Entities
- Player
- Hero
- Minion
- Weapon
- Hero power
- Spell
- Secret
- Quest
- Sidequest
- Enchantment
- Aura
- Zones
- Play
- Hand
- Deck
- Graveyard
- Set aside
- Secret
- Removed from game
- Turns
- Player control switch
- Fatigue damage
- Card overdraw damage
- 🕡 Turn timer (https://github.com/matpaul/redux-timer-middleware, https://stackoverflow.com/questions/3969475/javascript-pause-settimeout)
- Basic mechanics
- Charge
- Windfury
- Taunt
- Battlecry (needs triggers)
- Stealth (needs targeting improvements)
- Poisonous
- Divine shield
- Mulligan (needs spells)
- Choosing a deck
- Card targeting
- Play requirements
- Deck import/export
- Card rendering
- Basic
- Use Sunwell?
- Drag & Drop cards (
react-dnd
)- Touch screen support
- Fix minion death animation bug (#10)
- Merge all game entities into
game.entities
(?) - Tests
- Sequences (will require major refactoring)
- Load cards from https://hearthstonejson.com
- Save/Load
- LocalStorage
- File system
- Triggers
-
Multiplayer