How kolasak/jakir works
JAKIR is a pygame roguelike. Its visible runtime starts by loading a map and questions, then displays the world and accepts keyboard movement; movement can trigger field or token interactions, including battles, chests, and dialogue. The graph includes the documented-by-code game domains and UI layers. The README provides no feature details, and unsampled modules are represented only where the tree or SOURCE INDEX supports them; some subsystem links are therefore omitted.
Main entry points: Field.py Map fields · configuration.py Game configuration · Token.py World tokens · CharacterController.py Movement and inventory
Components 25
World and map
- Game configuration
configuration.py - Map generation
map_generator/MapGenerator.py - Map fields
fields/Field.py - Terrain types
fields - World tokens
tokens/Token.py
Player and items
- Character state
character/CharacterInfo.py - Movement and inventory
character/CharacterController.py - Items and keys
character/items
Encounters and questions
- Monster encounters
tokens/MonsterToken.py - Chest encounters
tokens/ChestToken.py - NPC dialogue
tokens/NpcToken.py - Battle controller
controllers/BattleController.py - Chest controller
controllers/ChestController.py - Dialogue controller
controllers/DialogController.py - Question data
gameplay/Question.py - Question collection
gameplay/QuestionContainer.py
Rendering and input
- Game entry
main.py - Game screen
graphics/Screen.py - Character view
graphics/views/CharacterInfoView.py - Battle view
graphics/views/BattleView.py - Chest view
graphics/views/ChestView.py - Dialogue view
graphics/views/DialogView.py - Question view
graphics/views/QuestionView.py - Text rendering
graphics/TextUtil.py
Other components
- Player
Connections 29
- Player → Game entry: starts game
- Game entry → Game configuration: loads map and questions
main.py - Game entry → Game screen: creates screen
main.py - Game entry → Character state: creates character
main.py - Game configuration → Map fields: configures fields
configuration.py - Game configuration → Question data: loads questions
configuration.py - Game configuration → Question collection: loads question collection
configuration.py - Game configuration → World tokens: configures tokens
configuration.py - Map generation → Map fields: creates fields
map_generator/MapGenerator.py - Terrain types → Map fields: extends field
fields/GateField.py - Game screen → Movement and inventory: dispatches key input
graphics/Screen.py - Movement and inventory → Map fields: checks and interacts
character/CharacterController.py - Movement and inventory → Character view: updates display
character/CharacterController.py - Movement and inventory → Items and keys: manages inventory
character/CharacterController.py - Map fields → World tokens: invokes interaction
fields/Field.py - World tokens → Monster encounters: specializes token
tokens/MonsterToken.py - World tokens → Chest encounters: specializes token
tokens/ChestToken.py - World tokens → NPC dialogue: specializes token
tokens/NpcToken.py - Monster encounters → Battle controller: starts battle
tokens/MonsterToken.py - Chest encounters → Chest controller: starts chest interaction
tokens/ChestToken.py - NPC dialogue → Dialogue controller: starts dialogue
tokens/NpcToken.py - Battle controller → Battle view: displays battle
controllers/BattleController.py - Battle controller → Question view: creates question view
controllers/BattleController.py - Chest controller → Chest view: displays chest
controllers/ChestController.py - Chest controller → Question view: asks question
controllers/ChestController.py - Dialogue controller → Dialogue view: uses dialogue view
controllers/DialogController.py - Question view → Question data: displays question data
graphics/views/QuestionView.py - Question view → Text rendering: renders text
graphics/views/QuestionView.py - Game screen → Map fields: draws map
graphics/Screen.py