Checklist class for handling game "checks" and progression flags #5

Closed
opened 2026-02-09 23:42:31 +00:00 by nexustix · 6 comments
Owner
No description provided.
nexustix added this to the (deleted) project 2026-02-09 23:42:31 +00:00
Author
Owner

The class will need some way of:

  • Adding a check
  • Checking a check
  • Querying the status of a check

A check might be fine as a boolean that is being stored in a String-keyed Dictionary

There needs to be a signal for when a check becomes checked

There should be a mechanism to ensure all logic pertaining to checking a check has been run before marking a check as checked

The class will need some way of: - Adding a check - Checking a check - Querying the status of a check A check might be fine as a boolean that is being stored in a String-keyed Dictionary There needs to be a signal for when a check becomes checked There should be a mechanism to ensure all logic pertaining to checking a check has been run before marking a check as checked
Author
Owner

A check can be turned into a non-primitive; which would allow a check to simultaneously contain the checked status, as well if the check has been "collected"

class Check:
    var checked: bool = false
    var collected: bool = false
A check can be turned into a non-primitive; which would allow a check to simultaneously contain the checked status, as well if the check has been "collected" ```gd class Check: var checked: bool = false var collected: bool = false ```
Author
Owner

There will need to be a separate reward logic to actually dispense rewards that are the result of a check.
Checks and rewards are not guaranteed to be a 1:1 relationship at this level, and rewards should not be modelled as part of the Checklist.

The reward logic should hook into the Checklist signals for a check being checked, run their reward dispensary logic, and afterwards mark the check as "collected".

There will need to be a separate reward logic to actually dispense rewards that are the result of a check. **Checks and rewards are not guaranteed to be a 1:1 relationship at this level**, and rewards should not be modelled as part of the Checklist. The reward logic should hook into the Checklist signals for a check being checked, run their reward dispensary logic, and afterwards mark the check as "collected".
Author
Owner

When using a String keyed Dictionary the keys interesting_check and INTERESTING_CHECK are distinct keys, it may or may not be desired. Maybe keys should be sanitized/normalized before being used as an index.

When using a String keyed Dictionary the keys `interesting_check` and `INTERESTING_CHECK` are distinct keys, it may or may not be desired. Maybe keys should be sanitized/normalized before being used as an index.
Author
Owner

@nexustix wrote in nexustix/godot-boilerplate#5 (comment):

When using a String keyed Dictionary the keys interesting_check and INTERESTING_CHECK are distinct keys, it may or may not be desired. Maybe keys should be sanitized/normalized before being used as an index.

sanitizing and normalizing of keys will be treated as an external issue, and will not be handled in the class itself, since it would also add unneeded complexity.

@nexustix wrote in https://git.nexustix.net/nexustix/godot-boilerplate/issues/5#issuecomment-15: > When using a String keyed Dictionary the keys `interesting_check` and `INTERESTING_CHECK` are distinct keys, it may or may not be desired. Maybe keys should be sanitized/normalized before being used as an index. sanitizing and normalizing of keys will be treated as an external issue, and will not be handled in the class itself, since it would also add unneeded complexity.
Author
Owner

Preliminary implementation written, needs testing: bb10a45211

Preliminary implementation written, needs testing: bb10a45211
nexustix added this to the (deleted) project 2026-02-10 01:20:35 +00:00
nexustix removed their assignment 2026-02-16 14:03:47 +00:00
Sign in to join this conversation.
No description provided.