Skip to content

Commit

Permalink
Adds triggers to game state
Browse files Browse the repository at this point in the history
  • Loading branch information
maebert committed May 1, 2019
1 parent 9b2ba02 commit 3716d3e
Show file tree
Hide file tree
Showing 8 changed files with 101 additions and 81 deletions.
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 0.9.10
current_version = 0.10.0
commit = False
allow_dirty = True
tag = False
Expand Down
2 changes: 1 addition & 1 deletion src/shellcraft/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@

__author__ = 'Manuel Ebert'
__email__ = 'manuel@1450.me'
__version__ = '0.9.10'
__version__ = '0.10.0'
19 changes: 14 additions & 5 deletions src/shellcraft/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,10 +142,11 @@ def from_dict(cls, name, data):
item.prerequisites = data.get("prerequisites", {})
item.prerequisites['items'] = to_list(item.prerequisites.get('items'))
item.prerequisites['research'] = to_list(item.prerequisites.get('research'))
item.prerequisites['triggers'] = to_list(item.prerequisites.get('triggers'))
item.cost = data.get("cost", {})
item.strings = data.get("strings", {})
item.effects = data.get("effects", {})
for effect in ('enable_commands', 'enable_items', 'enable_resources', 'events'):
for effect in ('enable_commands', 'enable_items', 'enable_resources', 'events', 'triggers'):
item.effects[effect] = to_list(item.effects.get(effect))
return item

Expand Down Expand Up @@ -249,10 +250,15 @@ def apply_effects(self, item_name):
self.game.state.tools_enabled.append(item_name)

# Enable research
for item_name in item.effects.get('enable_research', []):
if item_name not in self.game.state.research_enabled:
self.game.alert("You can now research @{}@.", item_name)
self.game.state.research_enabled.append(item_name)
for research in item.effects.get('enable_research', []):
if research not in self.game.state.research_enabled:
self.game.alert("You can now research @{}@.", research)
self.game.state.research_enabled.append(research)

# Trigger flags
for trigger in item.effects.get('triggers', []):
if trigger not in self.game.state.triggers:
self.game.state.triggers.append(trigger)

# Grant resources
for resource in RESOURCES:
Expand Down Expand Up @@ -289,4 +295,7 @@ def is_available(self, item_name):
for research in item.prerequisites['research']:
if research not in self.game.state.research_completed:
return False
for trigger in item.prerequisites['triggers']:
if trigger not in self.game.state.triggers:
return False
return True
14 changes: 8 additions & 6 deletions src/shellcraft/data/game_state.proto
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,15 @@ message GameState {
repeated string commands_enabled = 8;
repeated string research_enabled = 9;
repeated string research_completed = 10;
repeated string triggers = 11;

Resources mining_difficulty = 11;
Resources mining_difficulty_increment = 12;
Resources mining_difficulty = 12;
Resources mining_difficulty_increment = 13;

float trade_reputation = 13;
int32 tutorial_step = 14;
float trade_reputation = 14;
int32 tutorial_step = 15;

Stats stats = 16;
repeated Fraction fractions = 17;

Stats stats = 15;
repeated Fraction fractions = 16;
}
2 changes: 2 additions & 0 deletions src/shellcraft/data/research.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,5 @@ dynamite:
automata:
description: Machines that can be animated with names
difficulty: 1200
prerequisites:
triggers: nomenclator
6 changes: 3 additions & 3 deletions src/shellcraft/data/tutorials.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -159,15 +159,15 @@
>
> Assistant to Undersecretary Pierce
effects:
enable_research: automata
triggers: nomenclator
clay: -50
prerequisites:
clay: 70
clay: 150

13:
description: >
You completed your first automaton!
prerequisites:
autoamta: crawler
items: crawler
effects:
enable_commands: automata
129 changes: 68 additions & 61 deletions src/shellcraft/game_state_pb2.py

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions src/shellcraft/shellcraft.py
Original file line number Diff line number Diff line change
Expand Up @@ -164,10 +164,10 @@ def _unlock_items(self):
self.alert("You can now craft {}.", item)
self.state.tools_enabled.append(item.name)

for item in self.lab.available_items:
if item.name not in self.state.research_enabled:
self.alert("You can now research %{}%.", item.name)
self.state.research_enabled.append(item.name)
for research in self.lab.available_items:
if research.name not in self.state.research_enabled:
self.alert("You can now research %{}%.", research.name)
self.state.research_enabled.append(research.name)

def _act(self, task, target, duration):
if self.is_busy:
Expand Down

0 comments on commit 3716d3e

Please sign in to comment.