Conversation
… and actions into robotouille json, added corresponding gameplay instructions, added new objects into appropriate enums class, cannot draw condiment and condiment logic work in progress
…dded condiment problem jsons, need to add proper assets that correspond to hot dog with added condiments
chalo2000
left a comment
There was a problem hiding this comment.
Nice job with this PR! I've left some comments mainly to remove the hasketchupmustard predicate (see comments for a cleaner alternative) and how to remove the dependency on isgrilled from the condiments so we can reuse this for other ingredients.
domain/robotouille.json
Outdated
| "param_types": ["item"] | ||
| }, | ||
| { | ||
| "name": "has_ketchup_mustard", |
There was a problem hiding this comment.
if an item has both ketchup and mustard it should have the has_ketchup and has_mustard predicates.
domain/robotouille.json
Outdated
| "is_true": true | ||
| }, | ||
| { | ||
| "predicate": "isgrilled", |
There was a problem hiding this comment.
i see what you did here for the hotdog task but this would limit ketchup to being added to items that can only be grilled (what about adding ketchup or mustard to a cooked patty). however, you also don't want ketchup or mustard to be applied on a raw hotdog sausage. @lsuyean has dealt with this in the past for any fried goods by creating a predicate, fryableifcut. discuss with him about the possibility of creating a condimentifgrilled predicate
domain/robotouille.json
Outdated
| ], | ||
| "fx": [ | ||
| { | ||
| "predicate": "has_ketchup_mustard", |
There was a problem hiding this comment.
no need for this complex sfx for this predicate
domain/robotouille.json
Outdated
| ], | ||
| "fx": [ | ||
| { | ||
| "predicate": "has_ketchup_mustard", |
| "goal description": "Cook a hot dog and add ketchup and mustard on it.", | ||
| "goal": [ | ||
| { | ||
| "predicate": "has_ketchup_mustard", |
There was a problem hiding this comment.
no need to check for this predicate, simply check if it has_ketchup and also has_mustard
There was a problem hiding this comment.
replaced with those two predicates
| "direction": [-1, 0] | ||
| } | ||
| ], | ||
| "goal description": "Make a hot dog and add ketchup and mustard on it.", |
| "direction": [-1, 0] | ||
| } | ||
| ], | ||
| "goal": [ |
There was a problem hiding this comment.
missing goal description. toast 2 buns
| class Condiment(Enum): | ||
| KETCHUP = "ketchupbottle" | ||
| MUSTARD = "mustardbottle" | ||
| TYPES = {"item": Item, "player": Player, "station": Station, "container": Container, "meal": Meal, "condiment": Condiment} |
| }, | ||
| "has_ketchup_mustard": { | ||
| "asset": "ketchup_mustard_hotdog.png", | ||
| "predicates": ["has_ketchup_mustard"] |
There was a problem hiding this comment.
if you put ["has_ketchup", "has_mustard"], it will have the same effect as ["has_ketchup_mustard"]. you can remove this predicate altogether
renderer/canvas.py
Outdated
| elif matches == max_matches: | ||
| chosen_asset = asset_config["default"] | ||
|
|
||
| if asset == "grilled": |
There was a problem hiding this comment.
originally, you could only add condiments to grilled items, so the condiment assets were under the grill items. The purpose of this block was a brute force method to pick the correct item asset, and there was no need to check for multiple matches since each asset only had one predicate. with the new predicates, there's no need for this block, so I removed it now.
…p_mustard predicate, removed conditional effects for add condiment actions, added conditional effects for grill action, renamed problem jsons to correspond to specific goal descriptions, updated goal descriptions in problem jsons
Overview
In this PR, I integrated a hot dog task into Robotouille by implementing new items, new object types, new actions and assets into the game.
Changes Made
Changes for implementing new features into Robotouille
Changes for new object type
Test Coverage
Manual testing using new test files
Screenshots