{"id":13660138,"url":"https://github.com/zernie/typescript-redux-card-game","last_synced_at":"2025-04-24T19:30:43.315Z","repository":{"id":39496313,"uuid":"96636866","full_name":"zernie/typescript-redux-card-game","owner":"zernie","description":"Hearthstone-like card game built for educational purposes.","archived":false,"fork":false,"pushed_at":"2023-01-05T05:45:19.000Z","size":24821,"stargazers_count":12,"open_issues_count":17,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-10T14:42:04.782Z","etag":null,"topics":["card-game","drag-and-drop","functional-programming","hearthstone","heroes","html","immer","javascript","lodash","react","redux","semantic-ui","semantic-ui-react","turns","typescript"],"latest_commit_sha":null,"homepage":"https://zergetaev.ru/typescript-redux-card-game","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zernie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-08T18:28:43.000Z","updated_at":"2024-10-26T10:16:14.000Z","dependencies_parsed_at":"2023-02-03T14:00:39.487Z","dependency_job_id":null,"html_url":"https://github.com/zernie/typescript-redux-card-game","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zernie%2Ftypescript-redux-card-game","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zernie%2Ftypescript-redux-card-game/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zernie%2Ftypescript-redux-card-game/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zernie%2Ftypescript-redux-card-game/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zernie","download_url":"https://codeload.github.com/zernie/typescript-redux-card-game/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250693441,"owners_count":21472264,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["card-game","drag-and-drop","functional-programming","hearthstone","heroes","html","immer","javascript","lodash","react","redux","semantic-ui","semantic-ui-react","turns","typescript"],"created_at":"2024-08-02T05:01:17.237Z","updated_at":"2025-04-24T19:30:38.294Z","avatar_url":"https://github.com/zernie.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# React \u0026 Redux based Hearthstone clone\nBuilt for educational purposes only. Your contributions are welcome 😉\n\n### [PLAY DEMO](https://zernie.com/typescript-redux-card-game/)\n\n## Project structure\n* `src/models` contains game models' type declarations and some helper functions.\n* `src/redux` contains the actual game logic, decoupled from the UI rendering. It uses **Redux** state library.\n   It is highly recommended to use [redux-devtools](https://github.com/reduxjs/redux-devtools) Chrome extension for debugging.\n* `src/UI` is a **React**-based implementation of Game's UI.\n\n## Development\n    $ yarn \u0026\u0026 yarn start\n\nNow open [localhost:3000](http://localhost:3000) in your web browser :tada:\n\n## Roadmap:\n\n### Gameplay\n* [x] Stats\n  * [x] Armor\n  * [x] HP\n  * [x] Mana\n    * [ ] Overload\n* [x] Entities\n    * [x] Player\n    * [x] Hero\n    * [x] Minion\n    * [x] Weapon\n    * [ ] Hero power\n    * [ ] Spell\n        * [ ] Secret\n        * [ ] Quest\n        * [ ] Sidequest\n    * [ ] Enchantment\n        * [ ] Aura\n* [x] Zones\n    * [x] Play\n    * [x] Hand\n    * [x] Deck\n    * [ ] Graveyard\n    * [ ] Set aside\n    * [ ] Secret\n    * [ ] Removed from game            \n* [x] Turns\n  * [x] Player control switch\n  * [x] Fatigue damage\n  * [x] Card overdraw damage\n  * [ ] 🕡 Turn timer\n    (https://github.com/matpaul/redux-timer-middleware, https://stackoverflow.com/questions/3969475/javascript-pause-settimeout)\n* [x] Basic mechanics\n  * [x] Charge\n  * [x] Windfury\n  * [x] Taunt\n  * [ ] Battlecry (needs triggers)\n  * [ ] Stealth (needs targeting improvements)\n  * [ ] Poisonous\n  * [ ] Divine shield\n* [ ] Mulligan (needs spells)\n* [ ] Choosing a deck\n* [ ] Card targeting\n* [ ] Play requirements\n* [ ] Deck import/export\n\n### Visual\n* [x] Card rendering\n  * [x] Basic\n  * [ ] Use [Sunwell](https://github.com/HearthSim/Sunwell)?\n* [x] Drag \u0026 Drop cards (`react-dnd`)\n    * [x] Touch screen support\n* [ ] Fix minion death animation bug (#10)\n\n### Technical\n* [ ] Merge all game entities into `game.entities` (?)\n* [ ] Tests\n* [ ] [Sequences](https://hearthstone.gamepedia.com/Advanced_rulebook#Advanced_mechanics_101_.28READ_THIS_FIRST.29) (will require major refactoring)\n* [ ] Load cards from https://hearthstonejson.com\n* [ ] Save/Load\n  * [ ] LocalStorage\n  * [ ] File system\n* [ ] [Triggers](https://hearthstone.gamepedia.com/Triggered_effect)\n* [ ] ~~Multiplayer~~\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzernie%2Ftypescript-redux-card-game","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzernie%2Ftypescript-redux-card-game","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzernie%2Ftypescript-redux-card-game/lists"}