coder / coder/balatrobot

feat!(lua): add support for tags in the gamestate

Open
#143 0 comments 0 reactions 1 assignee Claimed by @S1M0N38 View on GitHub
completed-in-dev
Dominant language
Python
Stars
72
Forks
18
PR merge metrics
No merged PRs in 30d

Description

Right now, the only tags information that we have is in the blind section.

```lua
---@class Blind
---@field type Blind.Type Type of the blind
---@field status Blind.Status Status of the bilnd
---@field name string Name of the blind (e.g., "Small", "Big" or the Boss name)
---@field effect string Description of the blind's effect
---@field score integer Score requirement to beat this blind
---@field tag_name string? Name of the tag associated with this blind (Small/Big only)
---@field tag_effect string? Description of the tag's effect (Small/Big only)
```

If we want to support the tags even more, we need to add a new field in the gamestate.
For example, we do not return the accumulated tags when skipping blinds.

Maybe the tag is something that we can treat like `Card`, and we can define a `Tag` type with its own attributes (and removing the keys `tag_name` and `tag_effect`). The new blind object will become

```lua
---@class Blind
---@field type Blind.Type Type of the blind
---@field status Blind.Status Status of the bilnd
---@field name string Name of the blind (e.g., "Small", "Big" or the Boss name)
---@field effect string Description of the blind's effect
---@field score integer Score requirement to beat this blind
---@field tag Tag? Tag collected if this blind is skipped
```

This issue requires planning.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.