Skip to content

Commit c9fe019

Browse files
authored
Merge pull request #92 from neph1/update-v0.35.0
Update v0.35.0
2 parents 762698f + 3fee49b commit c9fe019

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+1811
-813
lines changed

generic_items.json

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,14 @@
1515
"base_damage": 1,
1616
"weight": 1,
1717
"type": "Weapon"
18+
},
19+
{
20+
"name": "Pitchfork",
21+
"weapon_type": "TWO_HANDED",
22+
"short_descr": "A pitchfork",
23+
"base_damage": 1,
24+
"weight": 3,
25+
"type": "Weapon"
1826
}
1927
],
2028
"fantasy_weapons": [
@@ -44,6 +52,15 @@
4452
"weight": 5,
4553
"value": 50,
4654
"type": "Weapon"
55+
},
56+
{
57+
"name": "Staff",
58+
"weapon_type": "TWO_HANDED",
59+
"short_descr": "A wooden staff",
60+
"base_damage": 1,
61+
"weight": 3,
62+
"value": 5,
63+
"type": "Weapon"
4764
}
4865
],
4966
"modern_weapons": [
@@ -79,12 +96,54 @@
7996
"name": "Note",
8097
"weight": 0.1,
8198
"type": "Note"
99+
}
100+
],
101+
"generic_drinks": [
102+
{
103+
"name": "Water",
104+
"weight": 0.5,
105+
"short_descr": "A flask of water",
106+
"effect": 5,
107+
"type": "Drink",
108+
"value": 1
109+
},
110+
{
111+
"name": "Beer",
112+
"weight": 0.5,
113+
"short_descr": "A glass of beer",
114+
"effect": 5,
115+
"type": "Drink",
116+
"value": 2
117+
},
118+
{
119+
"name": "Wine",
120+
"weight": 0.5,
121+
"short_descr": "A glass of wine",
122+
"effect": 5,
123+
"type": "Drink",
124+
"value": 3
125+
}
126+
],
127+
"generic_food": [
128+
{
129+
"name": "Apple",
130+
"weight": 0.5,
131+
"short_descr": "A juicy apple",
132+
"effect": 2,
133+
"type": "Food"
134+
},
135+
{
136+
"name": "Cheese",
137+
"weight": 0.5,
138+
"short_descr": "A piece of cheese",
139+
"effect": 3,
140+
"type": "Food"
82141
},
83142
{
84143
"name": "Bread",
85144
"weight": 0.5,
86145
"short_descr": "A loaf of bread",
87-
"effect": 10,
146+
"effect": 5,
88147
"type": "Food"
89148
}
90149
]

llm_config.yaml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ DUNGEON_LOCATION_TEMPLATE: '{"index": (int), "name": "", "description": 25 words
1616
CHARACTER_TEMPLATE: '{"name":"", "description": "50 words", "appearance": "25 words", "personality": "50 words", "money":(int), "level":"", "gender":"m/f/n", "age":(int), "race":""}'
1717
FOLLOW_TEMPLATE: '{{"response":"yes or no", "reason":"50 words"}}'
1818
ITEM_TYPES: ["Weapon", "Wearable", "Health", "Money", "Trash", "Food", "Drink", "Key"]
19-
PRE_PROMPT: 'You are a creative game keeper for a role playing game (RPG). You craft detailed worlds and interesting characters with unique and deep personalities for the player to interact with. Do not acknowledge the task or speak directly to the user, just perform it.'
19+
PRE_PROMPT: 'You are a creative game keeper for an interactive fiction story telling session. You craft detailed worlds and interesting characters with unique and deep personalities for the player to interact with. Do not acknowledge the task or speak directly to the user, or respond with anything besides the request..'
2020
BASE_PROMPT: '<context>{context}</context>\n[USER_START] Rewrite [{input_text}] in your own words. The information inside the <context> tags should be used to ensure it fits the story. Use about {max_words} words.'
2121
DIALOGUE_PROMPT: '<context>{context}</context>\nThe following is a conversation between {character1} and {character2}; {character2}s sentiment towards {character1}: {sentiment}. Write a single response as {character2} in third person pov, using {character2} description and other information found inside the <context> tags. If {character2} has a quest active, they will discuss it based on its status. Respond in JSON using this template: """{dialogue_template}""". [USER_START]Continue the following conversation as {character2}: {previous_conversation}'
2222
COMBAT_PROMPT: '<context>{context}</context>\nThe following is a combat scene between {attackers} and {defenders} in {location}. [USER_START] Describe the following combat result in about 150 words in vivid language, using the characters weapons and their health status: 1.0 is highest, 0.0 is lowest. Combat Result: {input_text}'
@@ -45,6 +45,4 @@ ACTION_PROMPT: '<context>{context}</context>\n[USER_START]Act as as {character_n
4545
REQUEST_FOLLOW_PROMPT: '<context>{context}</context>\n[USER_START]Act as as {character_name}.\nUsing the information supplied inside the <context> tag. {character_name} has received a request to follow {target}. Answer based on {character_name}s description and mood. Reason given by {target}: {target_reason}. Respond using JSON in the following format: {follow_template}'
4646
DAY_CYCLE_EVENT_PROMPT: '<context>{context}</context>\n[USER_START] Write up to two sentences describing the transition from {from_time} to {to_time} in {location_name}, using the information supplied inside the <context> tags.'
4747
NARRATIVE_EVENT_PROMPT: '<context>{context}</context>\n[USER_START] Write a narrative event that occurs in {location_name} using the information supplied inside the <context> tags. The event should be related to the location and the characters present. Use up to 50 words.'
48-
RANDOM_SPAWN_PROMPT: '<context>{context}</context>\n[USER_START] An npc or a mob has entered {location_name}. Select either and fill in one of the following templates using the information supplied inside the <context> tags. Respond using JSON in the following format: {npc_template}'
49-
USER_START: '### Instruction:\n'
50-
USER_END: '### Response:\n'
48+
RANDOM_SPAWN_PROMPT: '<context>{context}</context>\n[USER_START] An npc or a mob has entered {location_name}. Select either and fill in one of the following templates using the information supplied inside the <context> tags. Respond using JSON in the following format: {npc_template}'

stories/anything/story.py

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ def init_player(self, player: Player) -> None:
3030
Called by the game driver when it has created the player object (after successful login).
3131
You can set the hint texts on the player object, or change the state object, etc.
3232
"""
33-
player.stats.set_weapon_skill(weapon_type=WeaponType.ONE_HANDED_RANGED, value=random.randint(10, 30))
34-
player.stats.set_weapon_skill(weapon_type=WeaponType.TWO_HANDED_RANGED, value=random.randint(10, 30))
35-
player.stats.set_weapon_skill(weapon_type=WeaponType.ONE_HANDED, value=random.randint(10, 30))
36-
player.stats.set_weapon_skill(weapon_type=WeaponType.TWO_HANDED, value=random.randint(10, 30))
37-
player.stats.set_weapon_skill(weapon_type=WeaponType.UNARMED, value=random.randint(20, 30))
38-
player.stats.magic_skills[MagicType.HEAL] = 30
39-
player.stats.magic_skills[MagicType.BOLT] = 30
40-
player.stats.magic_skills[MagicType.DRAIN] = 30
41-
player.stats.magic_skills[MagicType.REJUVENATE] = 30
33+
player.stats.weapon_skills.set(weapon_type=WeaponType.ONE_HANDED_RANGED, value=random.randint(10, 30))
34+
player.stats.weapon_skills.set(weapon_type=WeaponType.TWO_HANDED_RANGED, value=random.randint(10, 30))
35+
player.stats.weapon_skills.set(weapon_type=WeaponType.ONE_HANDED, value=random.randint(10, 30))
36+
player.stats.weapon_skills.set(weapon_type=WeaponType.TWO_HANDED, value=random.randint(10, 30))
37+
player.stats.weapon_skills.set(weapon_type=WeaponType.UNARMED, value=random.randint(20, 30))
38+
player.stats.magic_skills.set(MagicType.HEAL, 30)
39+
player.stats.magic_skills.set(MagicType.BOLT, 30)
40+
player.stats.magic_skills.set(MagicType.DRAIN, 30)
41+
player.stats.magic_skills.set(MagicType.REJUVENATE, 30)
4242
pass
4343

4444
def create_account_dialog(self, playerconnection: PlayerConnection, playernaming: PlayerNaming) -> Generator:
@@ -51,36 +51,34 @@ def create_account_dialog(self, playerconnection: PlayerConnection, playernaming
5151
"""
5252
ranged = yield "input", ("Do you prefer ranged over close combat? (yes/no)", lang.yesno)
5353
if ranged:
54-
playerconnection.player.stats.set_weapon_skill(weapon_type=WeaponType.ONE_HANDED_RANGED, value=random.randint(20, 40))
55-
playerconnection.player.stats.set_weapon_skill(weapon_type=WeaponType.TWO_HANDED_RANGED, value=random.randint(20, 40))
54+
playerconnection.player.stats.weapon_skills.set(weapon_type=WeaponType.ONE_HANDED_RANGED, value=random.randint(20, 40))
55+
playerconnection.player.stats.weapon_skills.set(weapon_type=WeaponType.TWO_HANDED_RANGED, value=random.randint(20, 40))
5656
else:
57-
playerconnection.player.stats.set_weapon_skill(weapon_type=WeaponType.ONE_HANDED, value=random.randint(20, 40))
58-
playerconnection.player.stats.set_weapon_skill(weapon_type=WeaponType.TWO_HANDED, value=random.randint(20, 40))
57+
playerconnection.player.stats.weapon_skills.set(weapon_type=WeaponType.ONE_HANDED, value=random.randint(20, 40))
58+
playerconnection.player.stats.weapon_skills.set(weapon_type=WeaponType.TWO_HANDED, value=random.randint(20, 40))
5959
stealth = yield "input", ("Are you sneaky? (yes/no)", lang.yesno)
6060
if stealth:
61-
playerconnection.player.stats.skills[SkillType.HIDE] = random.randint(30, 50)
62-
playerconnection.player.stats.skills[SkillType.PICK_LOCK] = random.randint(30, 50)
63-
else:
64-
playerconnection.player.stats.skills[SkillType.HIDE] = random.randint(10, 30)
65-
playerconnection.player.stats.skills[SkillType.PICK_LOCK] = random.randint(10, 30)
66-
playerconnection.player.stats.skills[SkillType.SEARCH] = random.randint(20, 40)
61+
playerconnection.player.stats.skills.set(SkillType.HIDE, random.randint(30, 50))
62+
if stealth:
63+
playerconnection.player.stats.skills.set(SkillType.HIDE, random.randint(10, 30))
64+
playerconnection.player.stats.skills.set(SkillType.PICK_LOCK, random.randint(30, 50))
65+
else:
66+
playerconnection.player.stats.skills.set(SkillType.HIDE, random.randint(10, 30))
67+
playerconnection.player.stats.skills.set(SkillType.PICK_LOCK, random.randint(10, 30))
68+
playerconnection.player.stats.skills.set(SkillType.SEARCH, random.randint(20, 40))
6769

6870
return True
6971

7072
def welcome(self, player: Player) -> str:
7173
"""welcome text when player enters a new game"""
7274
player.tell("<bright>Hello, %s! Welcome to %s.</>" % (player.title, self.config.name), end=True)
7375
player.tell("\n")
74-
player.tell(self.driver.resources["messages/welcome.txt"].text)
75-
player.tell("\n")
7676
return ""
7777

7878
def welcome_savegame(self, player: Player) -> str:
7979
"""welcome text when player enters the game after loading a saved game"""
8080
player.tell("<bright>Hello %s, welcome back to %s.</>" % (player.title, self.config.name), end=True)
8181
player.tell("\n")
82-
player.tell(self.driver.resources["messages/welcome.txt"].text)
83-
player.tell("\n")
8482
return ""
8583

8684
def goodbye(self, player: Player) -> None:

stories/combat_sandbox/story.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ def init_player(self, player: Player) -> None:
3737
Called by the game driver when it has created the player object (after successful login).
3838
You can set the hint texts on the player object, or change the state object, etc.
3939
"""
40-
player.stats.set_weapon_skill(weapon_type=WeaponType.ONE_HANDED, value=45)
41-
player.stats.set_weapon_skill(weapon_type=WeaponType.TWO_HANDED, value=15)
42-
player.stats.set_weapon_skill(weapon_type=WeaponType.UNARMED, value=35)
40+
player.stats.weapon_skills.set(weapon_type=WeaponType.ONE_HANDED, value=45)
41+
player.stats.weapon_skills.set(weapon_type=WeaponType.TWO_HANDED, value=15)
42+
player.stats.weapon_skills.set(weapon_type=WeaponType.UNARMED, value=35)
4343

4444
if __name__ == "__main__":
4545
# story is invoked as a script, start it in the Tale Driver.

stories/dungeon/story.py

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,15 @@ def init_player(self, player: Player) -> None:
4141
Called by the game driver when it has created the player object (after successful login).
4242
You can set the hint texts on the player object, or change the state object, etc.
4343
"""
44-
player.stats.set_weapon_skill(weapon_type=WeaponType.ONE_HANDED_RANGED, value=random.randint(10, 30))
45-
player.stats.set_weapon_skill(weapon_type=WeaponType.TWO_HANDED_RANGED, value=random.randint(10, 30))
46-
player.stats.set_weapon_skill(weapon_type=WeaponType.ONE_HANDED, value=random.randint(10, 30))
47-
player.stats.set_weapon_skill(weapon_type=WeaponType.TWO_HANDED, value=random.randint(10, 30))
48-
player.stats.set_weapon_skill(weapon_type=WeaponType.UNARMED, value=random.randint(20, 30))
49-
player.stats.magic_skills[MagicType.HEAL] = 30
50-
player.stats.magic_skills[MagicType.BOLT] = 30
51-
player.stats.magic_skills[MagicType.DRAIN] = 30
52-
player.stats.magic_skills[MagicType.REJUVENATE] = 30
44+
player.stats.weapon_skills.set(weapon_type=WeaponType.ONE_HANDED_RANGED, value=random.randint(10, 30))
45+
player.stats.weapon_skills.set(weapon_type=WeaponType.TWO_HANDED_RANGED, value=random.randint(10, 30))
46+
player.stats.weapon_skills.set(weapon_type=WeaponType.ONE_HANDED, value=random.randint(10, 30))
47+
player.stats.weapon_skills.set(weapon_type=WeaponType.TWO_HANDED, value=random.randint(10, 30))
48+
player.stats.weapon_skills.set(weapon_type=WeaponType.UNARMED, value=random.randint(20, 30))
49+
player.stats.magic_skills.set(MagicType.HEAL, 30)
50+
player.stats.magic_skills.set(MagicType.BOLT, 30)
51+
player.stats.magic_skills.set(MagicType.DRAIN, 30)
52+
player.stats.magic_skills.set(MagicType.REJUVENATE, 30)
5353
pass
5454

5555
def create_account_dialog(self, playerconnection: PlayerConnection, playernaming: PlayerNaming) -> Generator:
@@ -62,19 +62,20 @@ def create_account_dialog(self, playerconnection: PlayerConnection, playernaming
6262
"""
6363
ranged = yield "input", ("Do you prefer ranged over close combat? (yes/no)", lang.yesno)
6464
if ranged:
65-
playerconnection.player.stats.set_weapon_skill(weapon_type=WeaponType.ONE_HANDED_RANGED, value=random.randint(20, 40))
66-
playerconnection.player.stats.set_weapon_skill(weapon_type=WeaponType.TWO_HANDED_RANGED, value=random.randint(20, 40))
65+
playerconnection.player.stats.weapon_skills.set(weapon_type=WeaponType.ONE_HANDED_RANGED, value=random.randint(20, 40))
66+
playerconnection.player.stats.weapon_skills.set(weapon_type=WeaponType.TWO_HANDED_RANGED, value=random.randint(20, 40))
6767
else:
68-
playerconnection.player.stats.set_weapon_skill(weapon_type=WeaponType.ONE_HANDED, value=random.randint(20, 40))
69-
playerconnection.player.stats.set_weapon_skill(weapon_type=WeaponType.TWO_HANDED, value=random.randint(20, 40))
68+
playerconnection.player.stats.weapon_skills.set(weapon_type=WeaponType.ONE_HANDED, value=random.randint(20, 40))
69+
playerconnection.player.stats.weapon_skills.set(weapon_type=WeaponType.TWO_HANDED, value=random.randint(20, 40))
7070
stealth = yield "input", ("Are you sneaky? (yes/no)", lang.yesno)
7171
if stealth:
72-
playerconnection.player.stats.skills[SkillType.HIDE] = random.randint(30, 50)
73-
playerconnection.player.stats.skills[SkillType.PICK_LOCK] = random.randint(30, 50)
74-
else:
75-
playerconnection.player.stats.skills[SkillType.HIDE] = random.randint(10, 30)
76-
playerconnection.player.stats.skills[SkillType.PICK_LOCK] = random.randint(10, 30)
77-
playerconnection.player.stats.skills[SkillType.SEARCH] = random.randint(20, 40)
72+
if stealth:
73+
playerconnection.player.stats.set(SkillType.HIDE, random.randint(30, 50))
74+
playerconnection.player.stats.set(SkillType.PICK_LOCK, random.randint(30, 50))
75+
else:
76+
playerconnection.player.stats.set(SkillType.HIDE, random.randint(10, 30))
77+
playerconnection.player.stats.set(SkillType.PICK_LOCK, random.randint(10, 30))
78+
playerconnection.player.stats.set(SkillType.SEARCH, random.randint(20, 40))
7879

7980
return True
8081

stories/dungeon_test/story.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,11 @@ def init_player(self, player: Player) -> None:
3838
Called by the game driver when it has created the player object (after successful login).
3939
You can set the hint texts on the player object, or change the state object, etc.
4040
"""
41-
player.stats.set_weapon_skill(weapon_type=WeaponType.ONE_HANDED_RANGED, value=random.randint(10, 30))
42-
player.stats.set_weapon_skill(weapon_type=WeaponType.TWO_HANDED_RANGED, value=random.randint(10, 30))
43-
player.stats.set_weapon_skill(weapon_type=WeaponType.ONE_HANDED, value=random.randint(10, 30))
44-
player.stats.set_weapon_skill(weapon_type=WeaponType.TWO_HANDED, value=random.randint(10, 30))
45-
player.stats.set_weapon_skill(weapon_type=WeaponType.UNARMED, value=random.randint(20, 30))
41+
player.stats.weapon_skills.set(weapon_type=WeaponType.ONE_HANDED_RANGED, value=random.randint(10, 30))
42+
player.stats.weapon_skills.set(weapon_type=WeaponType.TWO_HANDED_RANGED, value=random.randint(10, 30))
43+
player.stats.weapon_skills.set(weapon_type=WeaponType.ONE_HANDED, value=random.randint(10, 30))
44+
player.stats.weapon_skills.set(weapon_type=WeaponType.TWO_HANDED, value=random.randint(10, 30))
45+
player.stats.weapon_skills.set(weapon_type=WeaponType.UNARMED, value=random.randint(20, 30))
4646
pass
4747

4848
def create_account_dialog(self, playerconnection: PlayerConnection, playernaming: PlayerNaming) -> Generator:
@@ -55,11 +55,11 @@ def create_account_dialog(self, playerconnection: PlayerConnection, playernaming
5555
"""
5656
ranged = yield "input", ("Do you prefer ranged over close combat? (yes/no)", lang.yesno)
5757
if ranged:
58-
playerconnection.player.stats.set_weapon_skill(weapon_type=WeaponType.ONE_HANDED_RANGED, value=random.randint(20, 40))
59-
playerconnection.player.stats.set_weapon_skill(weapon_type=WeaponType.TWO_HANDED_RANGED, value=random.randint(20, 40))
58+
playerconnection.player.stats.weapon_skills.set(weapon_type=WeaponType.ONE_HANDED_RANGED, value=random.randint(20, 40))
59+
playerconnection.player.stats.weapon_skills.set(weapon_type=WeaponType.TWO_HANDED_RANGED, value=random.randint(20, 40))
6060
else:
61-
playerconnection.player.stats.set_weapon_skill(weapon_type=WeaponType.ONE_HANDED, value=random.randint(20, 40))
62-
playerconnection.player.stats.set_weapon_skill(weapon_type=WeaponType.TWO_HANDED, value=random.randint(20, 40))
61+
playerconnection.player.stats.weapon_skills.set(weapon_type=WeaponType.ONE_HANDED, value=random.randint(20, 40))
62+
playerconnection.player.stats.weapon_skills.set(weapon_type=WeaponType.TWO_HANDED, value=random.randint(20, 40))
6363
return True
6464

6565
def welcome(self, player: Player) -> str:

0 commit comments

Comments
 (0)