{"id":28224296,"url":"https://github.com/devbigode/cli-role-playing-game","last_synced_at":"2025-06-14T12:05:03.889Z","repository":{"id":244418216,"uuid":"815184397","full_name":"devbigode/cli-role-playing-game","owner":"devbigode","description":"Este é um jogo de batalha simples onde um jogador enfrenta uma série de Bots em combates de turnos. O jogador pode escolher entre dois estilos de luta e usar habilidades especiais durante a batalha.","archived":false,"fork":false,"pushed_at":"2024-06-19T02:50:52.000Z","size":6,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-12T07:43:26.322Z","etag":null,"topics":["cli","command-line-interface","python","rpg","rpg-game"],"latest_commit_sha":null,"homepage":"","language":"Python","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/devbigode.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,"zenodo":null}},"created_at":"2024-06-14T14:32:02.000Z","updated_at":"2025-05-28T03:04:02.000Z","dependencies_parsed_at":"2024-06-14T16:14:20.494Z","dependency_job_id":"bf0f2f4e-0af4-4098-87c7-26321c36af6b","html_url":"https://github.com/devbigode/cli-role-playing-game","commit_stats":null,"previous_names":["devbigode/cli-role-playing-game"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/devbigode/cli-role-playing-game","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devbigode%2Fcli-role-playing-game","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devbigode%2Fcli-role-playing-game/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devbigode%2Fcli-role-playing-game/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devbigode%2Fcli-role-playing-game/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devbigode","download_url":"https://codeload.github.com/devbigode/cli-role-playing-game/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devbigode%2Fcli-role-playing-game/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259812972,"owners_count":22915195,"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":["cli","command-line-interface","python","rpg","rpg-game"],"created_at":"2025-05-18T09:11:17.910Z","updated_at":"2025-06-14T12:05:03.864Z","avatar_url":"https://github.com/devbigode.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jogo de Batalha RPG\n\nBem-vindo ao repositório do Jogo de Batalha RPG! Este é um jogo de batalha simples onde um jogador enfrenta uma série de NPCs (Bots) em combates de turnos. O jogador pode escolher entre dois estilos de luta e usar habilidades especiais durante a batalha.\n\n## Como Jogar\n\n#### 1. Escolha do Jogador:\n\nO jogo começa solicitando o nome do jogador.\n\nEm seguida, o jogador escolhe entre dois estilos de luta: Conservador (dano menor, vida maior) ou Agressivo (dano maior, vida menor).\n\n#### 2. Batalhas:\n\nO jogador enfrenta 5 NPCs em sequência.\n\nCada batalha é dividida em rounds, onde o jogador e o NPC atacam alternadamente.\n\nO jogador pode usar habilidades especiais durante a batalha, que têm diferentes efeitos dependendo do estilo de luta escolhido.\n\n#### 3. Progresso:\n\nApós cada batalha, o jogador ganha experiência (XP) e pode subir de nível, melhorando suas habilidades e atributos.\n\nO objetivo é vencer todos os 5 NPCs.\n\n## Requisitos\n\nPython 3\n\nNenhuma biblioteca externa é necessária além da biblioteca padrão do Python.\n\n## Como Executar\n\n1. Clone o repositório para sua máquina local:\n\n  git clone https://github.com/seu-usuario/cli-role-playing-game.git\n\n2. Navegue até o diretório do projeto:\n\n  cd cli-role-playing-game\n\n3. Execute o jogo:\n\n  python main.py\n\n## Código Fonte\n\n### Construção do Jogador\n\n    from random import randint\n\n    def build_player():\n        name = input(\"Quem jogará hoje? \")\n        print(\"\\nLogo abaixo, decida entre o combatente conservador ou o combatente agressivo.\\n\")\n    \n        while True:\n            melee_weapon = int(input(\"[1] para Conservador ou [2] para Agressivo: \"))\n            if melee_weapon == 1:\n                damage = 22\n                life = 115\n                break\n            elif melee_weapon == 2:\n                damage = 34\n                life = 90\n                break\n            else:\n                print(\"Informe um valor válido.\\n\")\n    \n    player = {\"nome\": name, \"nível\": 1, \"estilo_luta\": melee_weapon, \"habilidade\": 1, \"dano\": damage, \"xp\": 0, \"xp_max\": 50, \"hp\": life, \"hp_max\": life}\n    return player\n\n### Criação dos NPCs\n\n    def create_npcs(level):\n        npc = {\"nome\": f\"Bot {level}\", \"nível\": level, \"dano\": 9 * level, \"hp\": 54 * level, \"hp_max\": 54 * level, \"xp\": 20 * level}\n        return npc\n\n    def make_npcs(n):\n        npcs = []\n        for i in range(1, n + 1):\n            npc = create_npcs(i)\n            npcs.append(npc)\n        return npcs\n\n### Mecânica de Batalha\n\n    def attack_npc():\n        npc['hp'] -= player['dano']\n\n    def attack_player():\n        player['hp'] -= npc['dano']\n\n    def special():\n        special = input(\"\\nPressione [S] para usar a habilidade especial. Ou Enter para continuar...\")\n        spec = special.lower()\n        if spec == \"s\":\n            dice = randint(0, 3)\n            if dice == 0:\n                player['habilidade'] -= 1\n                print(f\"\\n{player['nome']} falhou em usar a habilidade especial. n° de habilidades restante: {player['habilidade']}\")\n            else:\n                player['habilidade'] -= 1\n                if player['estilo_luta'] == 1:\n                    shield()\n                else:\n                    sword()\n    def sword():\n        npc['hp'] -= player['dano']\n\n    def shield():\n        player['hp'] += npc['dano'] * 1.75\n\n### Informações e Progresso\n\n    def info_before_battle():\n        print(f\"\\n{player['nome']} - Vida atual: {player['hp']} | Dano: {player['dano']} | n° de habilidade(s): {player['habilidade']}\")\n        print(f\"{npc['nome']} - Vida: {npc['hp']} | Dano: {npc['dano']}\")\n\n    def info_round():\n        print(f\"\\nSua vida: {player['hp']}/{player['hp_max']}\")\n        print(f\"Vida atual de {npc['nome']}: {npc['hp']}/{npc['hp_max']}\")\n\n    def info_player():\n        print(f\"\\n+ {npc['xp']} pontos de experiência. Nível: {player['nível']} - {player['xp']}/{player['xp_max']}\")\n\n    def level_up():\n        if player['xp'] \u003e= player['xp_max']:\n            player['nível'] += 1\n            player['xp_max'] *= 2\n            player['habilidade'] += 1\n\n    def xp_get():\n        player['xp'] += npc['xp']\n\n    def upgrade():\n        player['dano'] += 2 * npc['nível']\n        player['hp_max'] += 5 * npc['nível']\n\n    def winner():\n        if player[\"hp\"] \u003e 0:\n            print(f\"\\n{player['nome']} saiu como vencedor!\")\n            xp_get()\n            level_up()\n            upgrade()\n            info_player()\n        else:\n            print(f\"\\n{player['nome']} perdeu!\")\n\n    def reset():\n        npc['hp'] = npc['hp_max']\n        player['hp'] = player['hp_max']\n\n    def division():\n        print(f\"\\n----------\\n{npc['nível']}ª batalha\\n----------\")\n\n    def init(player, npc):\n        r = []\n        division()\n        info_before_battle()\n        while npc['hp'] \u003e 0 and player['hp'] \u003e 0:\n            r.append(1)\n            print(f\"\\n*Round: {sum(r)}\")\n            attack_npc()\n            if player['habilidade'] \u003e 0:\n                special()\n            if npc['hp'] \u003e 0:\n                attack_player()\n            info_round()\n        winner()\n        reset()\n\n### Inicialização do Jogo\n\n    player = build_player()\n    npcs = make_npcs(5)\n\n    for x in range(5):\n        npc = npcs[x]\n        init(player, npc)\n\n### Contribuição\n\nSinta-se à vontade para fazer fork deste repositório e enviar pull requests. Feedbacks e sugestões são bem-vindos!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevbigode%2Fcli-role-playing-game","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevbigode%2Fcli-role-playing-game","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevbigode%2Fcli-role-playing-game/lists"}