{"id":17897781,"url":"https://github.com/j-city/rogueliketemplate","last_synced_at":"2025-04-03T04:42:30.607Z","repository":{"id":76891627,"uuid":"572978236","full_name":"J-CITY/RoguelikeTemplate","owner":"J-CITY","description":null,"archived":false,"fork":false,"pushed_at":"2022-12-01T12:50:10.000Z","size":5,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-08T18:46:29.651Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/J-CITY.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-01T12:48:36.000Z","updated_at":"2022-12-01T12:56:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"fb642a71-60d2-4a5e-985c-fb710800e6fe","html_url":"https://github.com/J-CITY/RoguelikeTemplate","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/J-CITY%2FRoguelikeTemplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/J-CITY%2FRoguelikeTemplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/J-CITY%2FRoguelikeTemplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/J-CITY%2FRoguelikeTemplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/J-CITY","download_url":"https://codeload.github.com/J-CITY/RoguelikeTemplate/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246939184,"owners_count":20857916,"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":[],"created_at":"2024-10-28T15:15:20.733Z","updated_at":"2025-04-03T04:42:30.587Z","avatar_url":"https://github.com/J-CITY.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Игра Roguelike\n\n[Wiki](https://ru.wikipedia.org/wiki/Roguelike)\n\nТребуется реализовать игру в стиле Roguelike\n\nИспользовать псевдографику. Либы ncurses/pdcurses или что угодно, для вывода в консоль.\n\n1) Игра пошаговая. Она всегда слушает нажатие клавиши, после нажатия происходит шаг игры.\n2) В игре есть игрок, мы им управляем. Он может атаковать кинжалом (ближний бой) и луком дальний бой.\n3) В игре есть враги нескольких видов. Ближний бой, дальний бой, танк (много здоровья, делает ход раз в 2 шага игры). Они ходят рандомно, но если игрок в радиусе R начинают бежать на него или атаковать дальним боем. Враг не может встать на блок, если там уже кто-то стоит.\n4) В игре есть карта, по которой ходит игрок, она хардкодится и состоит из нескольких локаций.\n5) Есть блоки из которых состоит карта. Это:\n    - Стена - игроки и враги не могут ходить сквозь стены\n    - Трава - по ней ходят игрок и враги\n    - Спавнер - (игроки и враги не могут ходить сквозь спавнер) спавнит врагов раз в N ходов определенного типа в радиусе R от спавнера. (Если врагов этого типа больше K на карте, то не спавнит) По визуалу спавнера можно понять какой тип врагов он генерит.\n    - Оружее меч - может подбирать игрок. Дает усиленный ближний урон на N ходов.\n    - Оружее свиток файеробол - дает на N ходов усиленный дальний урон в радиусе R (визуально видно, в какой области произошел удар)\n    - Хилка - восстанавливает N очков здоровья\n    - Дверь - переход на другую локацию\n    - Бомба - если на неё наступает игрок или враг - наносит урон в радиусе R\n6) После подбора какого-либо итема происходит спавн итема этого типа где-нибудь на карте.\n7) Итем не может заспавнится в блоке, если там уже что-то есть, кроме травы.\n8) У игрока есть здоровье, Очки за убийство монстров, Снаряды ближнего/дальнего боя. Эта информация показывается в 0 строке терминала\n9) В последней строке отображается инфо, что произошло на ходу.\n - игрок нанес урон (сколько)\n - игрок получил урон (сколько)\n - игрок подобрал что-то (что)\n - игрок получил очки (сколько)\n10) Все итемы можно вынести в отдельную иерархию сущностей, а можно, чтоб они были блоками как и стена например\n11) При старте игры по центру экрана написано название игры, по пробелу она начинается\n12) При проигрыше, по центру экрана пишется Game Over и сколько ходов прожил и сколько очков заработал игрок\n13) Весь баланс в отдельном классе, чтобы можно было легко его поменять (Радиус действия, Здоровье врагов, Сколько очков дают итд)\n14) Сбоку экрана отображается легенда, какой символ что означает\n\nВозможные допы:\n- Генератор карт\n- Редактор уровней\n- Разрушаемые блоки, который потом можно ставить на карте\n- Бесконечная карта (двери тогда не нужны?)\n- Область видимости врагов и игрока\n- Добавить визуал через SFML\n- Сохранение и система рекордов\n- Добавить кооператив с помощью SFML\n- Добавить FPS режим\n- ...\n\nВ репе лишь пример иерархии классов. Можете менять, что хотите.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fj-city%2Frogueliketemplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fj-city%2Frogueliketemplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fj-city%2Frogueliketemplate/lists"}