Skip to content

Instantly share code, notes, and snippets.

View Pinacolada64's full-sized avatar

Ryan Sherwood Pinacolada64

View GitHub Profile
@Pinacolada64
Pinacolada64 / submenus.py
Last active March 26, 2025 02:36
Options in sub-menus. A bit buggy.
import logging
from dataclasses import dataclass, field
from typing import List, Optional, Callable
from flags import Player, PlayerFlags, PlayerStat
def edit_string(prompt: str, data: str) -> str:
user_input = input(f"Edit {prompt}: ")
if user_input is None or user_input == data:
@Pinacolada64
Pinacolada64 / items.py
Created January 9, 2025 22:46
Trying out some Item classes and functions
from dataclasses import dataclass
from enum import StrEnum
from typing import Optional
# from flags import Size
@dataclass
class Item(object):
@Pinacolada64
Pinacolada64 / terminal_settings.py
Last active December 24, 2024 20:33
A better attempt at terminal settings
import logging
import textwrap
from dataclasses import asdict, dataclass, is_dataclass, field
from enum import Enum
"""
Goal: to display a settings menu. The way I think it should work:
- Enumerate through Player atributes, get a key (LINE_ENDING)
- Get a key name common to both SettingString.LINE_ENDING (to display in the menu item) and SettingValue.LINE_ENDING
@Pinacolada64
Pinacolada64 / scratch_3.py
Created December 6, 2024 00:07
Terminal settings attempt
import random
from dataclasses import dataclass, field
from enum import Enum
class ClientSettingsNames(str, Enum):
NAME = "Name"
ROWS = "Screen rows"
COLUMNS = "Screen columns"
RETURN_KEY = "Return key"
@Pinacolada64
Pinacolada64 / macro-preprocessor.py
Last active May 10, 2024 06:34
experiment to create a macro system for c64list
import re
import logging
import doctest
import tempfile
def process_macros(code: list):
"""
This function processes macro definitions and stores them in a dictionary.
@Pinacolada64
Pinacolada64 / convert-c64list-to-vice.py
Created May 4, 2024 16:21
Convert c64list symbol files to VICE label files
"""
convert C64List symbols file...
chrout = $ffd2
llen = $0ca4
ones_digit = $0ca3
...to Vice label file:
# al $addr .label
al $ffd2 .chrout
al $0c04 .llen
@Pinacolada64
Pinacolada64 / shop.py
Created May 3, 2024 02:28
Shop routine, maintain shop and player inventory (with item quantities)
import logging
from dataclasses import dataclass, field
@dataclass
class ShopItem:
name: str
quantity: int
price: int
@Pinacolada64
Pinacolada64 / flag_enum_operations.py
Last active May 14, 2024 13:38
Flag operations using Enum
import logging
from enum import Enum
from dataclasses import dataclass, field
from typing import Tuple
import doctest
@dataclass
class PlayerFlagTypes(str, Enum):
YESNO: str = "yes/no"
@Pinacolada64
Pinacolada64 / new_parser.py
Last active February 23, 2024 02:47
New parser with individual functions per command
# https://gist.github.com/anoryx/c34380a0a3ef4031f41c9ed8035e305b
# https://stackoverflow.com/questions/51575931/class-inheritance-in-python-3-7-dataclasses/53085935#53085935
# combat considerations:
# https://codereview.stackexchange.com/questions/139121/my-implementation-of-item-objects-in-a-text-adventure
# thanks, volca & google gemini (née bard)
import doctest
@Pinacolada64
Pinacolada64 / output.py
Created November 17, 2023 20:19
Output various player character information using a Character subclass
import logging
from dataclasses import dataclass, field
import datetime
import doctest
from typing import Optional
# Totally Awesome Dungeon Adventure modules:
from server import Player, Room