Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Kestrel Gregorich-Trevor committed Jan 18, 2024
2 parents ba68393 + 9ef51e6 commit 6f70572
Show file tree
Hide file tree
Showing 6 changed files with 132 additions and 46 deletions.
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior, if possible.
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop:**
- OS: [e.g. Linux]
- Version:

**Port:**
- Curses, SDL, etc.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
45 changes: 45 additions & 0 deletions .github/workflows/cmake-single-platform.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# This starter workflow is for a CMake project running on a single platform. There is a different starter workflow if you need cross-platform coverage.
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-multi-platform.yml
name: Build

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Debug

jobs:
build:
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
# You can convert this to a matrix build if you need cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: true

- name: Restore artifacts or run vcpkg.
uses: lukka/[email protected]

- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake --preset=dev -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}

- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}

- name: Test
working-directory: ${{github.workspace}}/build
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest -C ${{env.BUILD_TYPE}}

19 changes: 17 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Create Release
name: Release
on:
push:
tags:
Expand All @@ -24,9 +24,23 @@ jobs:
configurePreset: 'release'
buildPreset: 'release'

- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake --preset=release -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}

- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}

- name: Test
working-directory: ${{github.workspace}}/build
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest -C ${{env.BUILD_TYPE}}

- name: Create Package
run: |
zip -rq zenzizenzizenzic-${{ runner.os }} build/zenzizenzizenzic_ncurses build/data/ README.md
zip -rq ${{github.workspace}}/zenzizenzizenzic-${{ runner.os }} ${{github.workspace}}/build/zenzizenzizenzic_ncurses ${{github.workspace}}/build/data/ ${{github.workspace}}/README.md ${{github.workspace}}/LICENSE
- name: Create Release
id: create_release
Expand All @@ -38,6 +52,7 @@ jobs:
release_name: Release ${{ github.ref }}
draft: false
prerelease: false

- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
Expand Down
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ set(PROJECT_NAME zenzizenzizenzic_ncurses)
set(PROJECT_VENDOR Kestrel Gregorich-Trevor)
set(PROJECT_DESCRIPTION A roguelike about fighting games.)
set(ZZZZZZ_DESKTOP_DIR /usr/share/applications)
set(VERSION_MAJOR 1)
set(VERSION_MINOR 0)
set(VERSION_MAJOR 0)
set(VERSION_MINOR 1)
SET(VERSION_PATCH 0)
SET(RELEASE_TYPE "alpha")

Expand Down Expand Up @@ -69,4 +69,4 @@ set(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/README.md")
set(CPACK_PACKAGE_EXECUTABLES "zenzizenzizenzic_ncurses;ZZZZZZ")
include(CPack)
include(CPack)
57 changes: 16 additions & 41 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
# Zenzizenzizenzic

![Screenshot](/img/screenshot.png)
## Overview
![Release Status](https://github.com/NullCGT/Zenzizenzizenzic-RL/actions/workflows/cmake-single-platform.yml/badge.svg)
![Release Status](https://github.com/NullCGT/Zenzizenzizenzic-RL/actions/workflows/release.yml/badge.svg?branch=main)

A traditional roguelike with mechanics that mimic those found in fighting games.

Zenzizenzizenzic is a traditional roguelike. It's still pretty early in development, so please don't
judge it too harshly yet.
![Screenshot](/img/screenshot.png)

## Command Line Options
| Syntax | Example | Purpose |
Expand All @@ -25,43 +26,17 @@ cmake --build build
The game binary and necessary data files will appear in the newly-created build
directory.

## Combat

### Attack Types

An attack can be one or more of the following types:
- Low:
- Hits standing characters.
- Blocked by crouching characters.
- Mid:
- Hits teching characters.
- Blocked by standing or crouching characters.
- Often very high accuracy.
- High:
- Hits crouching characters.
- Often low accuracy, but high damage.
- Grab:
- Hits crouching or standing characters.
- Deflected by teching characters.

### Blocking Attacks

At any time, a character can be in one of threee stances, each of which has different effects.
- Crouching:
- Automatically block low and mid attacks.
- Entered by pressing '<'
- Lasts until manually exited.
- Standing:
- Automatically block mid and high attacks.
- Entered by pressing '>'.
- Lasts until manually exited.
- Teching:
- Deflect grabs.
- Entered by pressing '.' or executing a grab attack.
- Lasts for one turn, after which the character returns to their previous stance.

When an attack is blocked, the blocker takes reduced damage. When a grab is
deflected, the blocker takes no damage and the attacker is left vulnerable.
## Combat Basics

An attack can be one or more of four types: Low, Mid, High, or Grab. Conversely, a character can be in one of three stances: Crouch, Stand, or Tech. The way an attack interacts with a target depends on the stance that the target is in, as shown in the following table.

| | Low | Mid | High | Tech |
|----------|-------|-------|-------|-------|
|**Crouch**| Block | Block | Hit | Hit |
|**Stand**| Hit | Block | Block | Hit |
|**Tech** | Hit | Hit | Hit | Block |

If an attack hits, the target takes full damage and enters a stunned state. If an attack is blocked, the target takes only partial damage and is not stunned.

## FAQ

Expand Down

0 comments on commit 6f70572

Please sign in to comment.