Compare commits
8 Commits
419b729672
...
83ba1fb7fa
Author | SHA1 | Date | |
---|---|---|---|
83ba1fb7fa | |||
14f115649e | |||
285c4e5fdc | |||
ad58ddf721 | |||
17595a2750 | |||
89f599e710 | |||
cfd7d244ca | |||
8a085910fb |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -2,4 +2,4 @@
|
|||||||
nimcache/
|
nimcache/
|
||||||
nimblecache/
|
nimblecache/
|
||||||
htmldocs/
|
htmldocs/
|
||||||
geedren-mansion
|
geedren_mansion
|
||||||
|
@@ -6,7 +6,7 @@ description = "Mystery game in haunted mansion"
|
|||||||
license = "MIT"
|
license = "MIT"
|
||||||
srcDir = "src"
|
srcDir = "src"
|
||||||
installExt = @["nim"]
|
installExt = @["nim"]
|
||||||
bin = @["geedren-mansion"]
|
bin = @["geedren_mansion"]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,67 +1,29 @@
|
|||||||
# This is just an example to get you started. A typical hybrid package
|
# This is just an example to get you started. A typical hybrid package
|
||||||
# uses this file as the main entry point of the application.
|
# uses this file as the main entry point of the application.
|
||||||
|
|
||||||
import geedren_mansionpkg/objects
|
import
|
||||||
import strformat
|
# package imports
|
||||||
|
geedren_mansionpkg/objects,
|
||||||
|
geedren_mansionpkg/rooms,
|
||||||
|
geedren_mansionpkg/items,
|
||||||
|
geedren_mansionpkg/characters,
|
||||||
|
# Language imports
|
||||||
|
strformat
|
||||||
|
|
||||||
when isMainModule:
|
when isMainModule:
|
||||||
|
title_screen()
|
||||||
var phone = Item(
|
|
||||||
name: "Phone",
|
|
||||||
description: "Communication device/ pocket computer"
|
|
||||||
)
|
|
||||||
|
|
||||||
var player = Character(
|
|
||||||
name: "Sam",
|
|
||||||
backpack: @[phone]
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Room 1 of mansion
|
|
||||||
|
|
||||||
proc foyer_room() =
|
|
||||||
|
|
||||||
var foyer = Room(
|
|
||||||
name: "Foyer",
|
|
||||||
description: "Entrance Hall of the Geedren Mansion",
|
|
||||||
text: """
|
|
||||||
zdsfgzdfg
|
|
||||||
""",
|
|
||||||
secrets: 2
|
|
||||||
)
|
|
||||||
|
|
||||||
var desk = Item(
|
|
||||||
name: "Desk",
|
|
||||||
description: "A small wooden desk",
|
|
||||||
contents: "key"
|
|
||||||
)
|
|
||||||
|
|
||||||
echo foyer.text
|
|
||||||
|
|
||||||
proc title_screen() =
|
|
||||||
echo fmt"""
|
|
||||||
Welcome to Geedren Mansion. You are {player.name}, a capable 24 year old adventurer.
|
|
||||||
Your uncle Rob has been missing for 10 years. He went hunting for the secrets and treasure rumored to
|
|
||||||
be hidden deep within the walls of the mysterious Geedren Mansion. Now that you are of age and have
|
|
||||||
trained in adventuring, you have decided to find your uncle. Your mission is dangerous as many men
|
|
||||||
have gone missing with the mansion being their last known whereabouts. The door is unlocked and you
|
|
||||||
walk right in the doors of the massive mansion.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
stdout.write("Press 1 to contnue: ")
|
|
||||||
var choice = stdin.readLine()
|
|
||||||
|
|
||||||
if choice == "1":
|
|
||||||
foyer_room(foyer)
|
|
||||||
else:
|
|
||||||
echo "You pressed the wrong key!"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
title_screen()
|
|
||||||
|
18
src/geedren_mansionpkg/characters.nim
Normal file
18
src/geedren_mansionpkg/characters.nim
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import
|
||||||
|
objects,
|
||||||
|
items
|
||||||
|
|
||||||
|
|
||||||
|
var curDirect*: Direct
|
||||||
|
curDirect = up
|
||||||
|
|
||||||
|
var
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
player* = Character(
|
||||||
|
name: "Sam",
|
||||||
|
backpack: @[phone],
|
||||||
|
placesVisited: @[],
|
||||||
|
currentDirection: curDirect
|
||||||
|
)
|
28
src/geedren_mansionpkg/items.nim
Normal file
28
src/geedren_mansionpkg/items.nim
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
import
|
||||||
|
objects
|
||||||
|
|
||||||
|
|
||||||
|
var
|
||||||
|
phone* = Item(
|
||||||
|
name: "Phone",
|
||||||
|
description: "Communication device"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
foyer* = Room(
|
||||||
|
name: "Foyer",
|
||||||
|
description: "Entrance Hall of the Geedren Mansion",
|
||||||
|
text: "",
|
||||||
|
secrets: 2
|
||||||
|
)
|
||||||
|
|
||||||
|
cathDoorKey* = Item(
|
||||||
|
name: "Cathedral Door Key",
|
||||||
|
description: "This key opens the door to the cathedral"
|
||||||
|
)
|
||||||
|
|
||||||
|
desk* = Container(
|
||||||
|
name: "Desk",
|
||||||
|
description: "A small wooden desk",
|
||||||
|
contents: @[cathDoorKey]
|
||||||
|
)
|
@@ -1,22 +1,41 @@
|
|||||||
type
|
type
|
||||||
|
|
||||||
|
Direct* = enum
|
||||||
|
up, down, left, right
|
||||||
|
|
||||||
Item* = object
|
Item* = object
|
||||||
name*: string
|
name*: string
|
||||||
description*: string
|
description*: string
|
||||||
contents*: string
|
|
||||||
|
|
||||||
Character* = object
|
Character* = object
|
||||||
name*: string
|
name*: string
|
||||||
backpack*: seq[Item]
|
backpack*: seq[Item]
|
||||||
|
placesVisited*: seq[string]
|
||||||
|
currentDirection*: Direct
|
||||||
|
|
||||||
Secret* = object
|
Secret* = object
|
||||||
|
name*: string
|
||||||
description*: string
|
description*: string
|
||||||
found*: bool
|
found*: bool
|
||||||
|
|
||||||
|
|
||||||
|
Dialog* = object
|
||||||
|
text*: string
|
||||||
|
priority*: int
|
||||||
|
kind*: string
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Room* = object
|
Room* = object
|
||||||
name*: string
|
name*: string
|
||||||
description*: string
|
description*: string
|
||||||
text*: string
|
text*: string
|
||||||
secrets*: int
|
secrets*: int
|
||||||
|
|
||||||
|
Container* = object
|
||||||
|
name*: string
|
||||||
|
description*: string
|
||||||
|
contents*: seq[Item]
|
||||||
|
|
||||||
|
|
||||||
|
|
41
src/geedren_mansionpkg/rooms.nim
Normal file
41
src/geedren_mansionpkg/rooms.nim
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
import
|
||||||
|
objects,
|
||||||
|
characters,
|
||||||
|
items,
|
||||||
|
procs,
|
||||||
|
strformat
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
proc foyer_room*(player: Character) =
|
||||||
|
|
||||||
|
var
|
||||||
|
player = player
|
||||||
|
#[
|
||||||
|
player.placesVisited.add(foyer.name)
|
||||||
|
|
||||||
|
player.backpack.add(desk.contents)
|
||||||
|
|
||||||
|
for backpack in player.backpack:
|
||||||
|
echo(fmt"{backpack.name}: {backpack.description}")
|
||||||
|
]#
|
||||||
|
|
||||||
|
discard addToBackpack(player, desk)
|
||||||
|
|
||||||
|
proc title_screen*() =
|
||||||
|
echo fmt"""
|
||||||
|
Welcome to Geedren Mansion. You are {player.name}, a capable 24 year old adventurer.
|
||||||
|
Your uncle Rob has been missing for 10 years. He went hunting for the secrets and treasure rumored to
|
||||||
|
be hidden deep within the walls of the mysterious Geedren Mansion. Now that you are of age and have
|
||||||
|
trained in adventuring, you have decided to find your uncle. Your mission is dangerous as many men
|
||||||
|
have gone missing with the mansion being their last known whereabouts. The door is unlocked and you
|
||||||
|
walk right in the doors of the massive mansion.
|
||||||
|
|
||||||
|
"""
|
||||||
|
stdout.write("Press 1 to contnue: ")
|
||||||
|
var choice = stdin.readLine()
|
||||||
|
|
||||||
|
if choice == "1":
|
||||||
|
foyer_room(player)
|
||||||
|
else:
|
||||||
|
echo "You pressed the wrong key!"
|
Reference in New Issue
Block a user