aarushgupta's picture
Deploy FATHOM-DM Space bundle
2803d7e verified
# object
type o : t {
predicates {
combines_with(o, o, o);
fresh(o);
stored_item(o);
}
rules {
combine :: $at(P, r) & in(o, I) & in(o', I) & combines_with(o, o', o'') & fresh(o'') -> in(o'', I);
}
reverse_rules {
combine :: combine;
}
constraints {
obj1 :: in(o, I) & in(o, c) -> fail();
obj2 :: in(o, I) & on(o, s) -> fail();
obj3 :: in(o, I) & at(o, r) -> fail();
obj4 :: in(o, c) & on(o, s) -> fail();
obj5 :: in(o, c) & at(o, r) -> fail();
obj6 :: on(o, s) & at(o, r) -> fail();
obj7 :: at(o, r) & at(o, r') -> fail();
obj8 :: in(o, c) & in(o, c') -> fail();
obj9 :: on(o, s) & on(o, s') -> fail();
}
inform7 {
type {
kind :: "object-like";
definition :: "object-like is portable.";
}
predicates {
combines_with(o, o', o'') :: "";
fresh(o) :: "";
stored_item(o) :: "";
}
commands {
combine :: "combine {o} with {o'}" :: "unlocking the {o'} with the {o}";
}
code :: """
Understand "combine [something] with [something]" as unlocking it with.
""";
}
}