Skip to content

PhoenixForever1023/Call_of_Cthulhu_Keeper_Assistant-English

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Call of Cthulhu Keeper Assistant (English)

A command-line Keeper (Game Master) assistant for Call of Cthulhu 7th Edition, developed as a course project.
It provides tools for managing investigators(players) and NPCs, handling skill checks, sanity (SAN) system, combat simulation, and multi-day adventure tracking.


Project Background

This project was developed as part of an undergraduate coursework (INFOSCI102) assignment.
Its primary objective is to demonstrate the practical application of object-oriented programming, state management, and algorithmic thinking using Python.

The project intentionally avoids external libraries and graphical interfaces in order to:

  • Emphasize Python fundamentals
  • Maintain clear and readable class design
  • Faithfully translate tabletop game rules into executable logic

Features

Character Management

  • Create and manage Investigators and NPCs
  • Maintain complete character sheets (attributes, skills, HP, SAN)
  • Modify character states dynamically during gameplay

Skill Check System

  • Automated percentile dice (d100) rolls
  • Standard Call of Cthulhu success levels:
    • Critical Success
    • Extreme Success
    • Hard Success
    • Success
    • Failure
    • Fumble
  • Batch skill checks for multiple characters

Sanity (SAN) System

  • SAN value tracking and loss calculation
  • Temporary and permanent insanity rules
  • Randomized madness effects with durations
  • Daily sanity loss tracking

Combat Simulation

  • Turn-based combat system
  • Initiative based on Dexterity (DEX)
  • Multiple NPC combat behavior patterns
  • Damage calculation with critical hits and fumbles
  • Handling of unconsciousness and death

Adventure Management

  • Multi-day adventure structure
  • Daily event progression
  • Character recovery between days

Requirements

  • Python 3.6 or higher
  • No third-party libraries required

Installation

git clone https://github.com/PhoenixForever1023/Call_of_Cthulhu_Keeper_Assistant-English.git
cd Call_of_Cthulhu_Keeper_Assistant-English
python CALL_OF_CTHULHU_TRPG_KEEPER_ASSISTANT.py

Usage Example

Main Menu

Welcome Keeper, to a new adventure of Call of Cthulhu.
-------------Menu-------------
1. Initialize NPCs before start playing.
2. Initialize the investigators before start playing.
3. Start the first day of the adventure.
------------------------------

Skill Check

Which Skill Faces the Unknown? listen

Asano Izumi listen: 60
Opps, a dice rolls 73, listen gets Failure....

Combat

Reality tears as violence erupts...
Roll for Initiative, investigators!
First move goes to Evans Jones!

Project Structure

Call_of_Cthulhu_Keeper_Assistant-English/
├── CALL_OF_CTHULHU_TRPG_KEEPER_ASSISTANT.py
├── README.md
├── README-zh.md
└── .gitignore

Code Organization

The program is implemented in a single Python file but logically divided into sections:

  • Dice and utility functions
  • Character class hierarchy (Person, Character, NPC)
  • Manager classes (NPCManager, InvestigatorManager)
  • Main game loop and menu system

Core Classes

Class Description
Person Base class with combat-related attributes
Character Investigator with skills and sanity mechanics
NPC Non-player character with combat behavior
NPCManager Handles NPC creation and management
InvestigatorManager Manages investigator characters

Implemented Game Rules

Based on Call of Cthulhu 7th Edition core mechanics.

Skill Checks

  • Quick check for Library Use, Listen and Spot Hidden
  • Percentile-based system (1–100)
  • Critical success on 01
  • Fumbles on 96–00 when a roll fails

Sanity

  • SAN loss on failed sanity checks
  • Temporary insanity at 5+ SAN loss in one day
  • Permanent insanity at 0 SAN
  • Random madness effects

Combat

  • Initiative determined by DEX
  • Available actions: Brawl, Shoot, Dodge
  • Weapon-based damage system
  • Major wound and unconsciousness handling

Learning Outcomes

This project demonstrates:

  • Object-oriented programming in Python
  • Robust input validation and error handling
  • Multi-day game state management
  • Rule-based system design derived from tabletop mechanics

Limitations and Future Work

As a course project, this tool prioritizes clarity and correctness over completeness.

Potential extensions include:

  • Graphical user interface
  • Save/load functionality
  • Expanded NPC behavior logic
  • Additional Call of Cthulhu subsystems (magic, chases, etc.)

License

This project is licensed under the MIT License.
See the LICENSE file for details.


Acknowledgments

  • Call of Cthulhu TRPG by Chaosium Inc.
  • INFOSCI 102 instructors for guidance and feedback
  • Deepseek and ChatGPT for polishing Algorithm and README
  • My Friend Irie who assisted with testing

Contact

PhoenixForever1023: https://github.com/PhoenixForever1023

Repository: https://github.com/PhoenixForever1023/Call_of_Cthulhu_Keeper_Assistant-English

About

A command-line Keeper (Game Master) assistant for Call of Cthulhu 7th Edition, developed as a course project. It provides tools for managing investigators(players) and NPCs, handling skill checks, sanity (SAN) system, combat simulation, and multi-day adventure tracking.

Topics

Resources

Stars

Watchers

Forks

Releases

Contributors

Languages