Skip to content

Commit 18f36f3

Browse files
committed
bind additional stuff from objclass
1 parent dc4d5ff commit 18f36f3

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

win/rl/pynethack.cc

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -787,6 +787,45 @@ PYBIND11_MODULE(_pynethack, m)
787787
.def_readonly(
788788
"oc_descr_idx",
789789
&objclass::oc_descr_idx) /* description when name unknown */
790+
.def_readonly(
791+
"oc_uname",
792+
&objclass::oc_uname) /* called by user */
793+
.def_property_readonly("oc_name_known",
794+
[](const objclass &o) { return o.oc_name_known != 0; }) /* discovered */
795+
.def_property_readonly("oc_merge",
796+
[](const objclass &o) { return o.oc_merge != 0; }) /* merge otherwise equal objects */
797+
.def_property_readonly("oc_uses_known",
798+
[](const objclass &o) { return o.oc_uses_known != 0; }) /* obj->known affects full description;
799+
otherwise, obj->dknown and obj->bknown
800+
tell all, and obj->known should always
801+
be set for proper merging behavior. */
802+
.def_property_readonly("oc_pre_discovered",
803+
[](const objclass &o) { return o.oc_pre_discovered != 0; }) /* Already known at start of game;
804+
won't be listed as a discovery. */
805+
.def_property_readonly("oc_magic",
806+
[](const objclass &o) { return o.oc_magic != 0; }) /* inherently magical object */
807+
.def_property_readonly("oc_charged",
808+
[](const objclass &o) { return o.oc_charged != 0; }) /* may have +n or (n) charges */
809+
.def_property_readonly("oc_unique",
810+
[](const objclass &o) { return o.oc_unique != 0; }) /* special one-of-a-kind object */
811+
.def_property_readonly("oc_nowish",
812+
[](const objclass &o) { return o.oc_nowish != 0; }) /* cannot wish for this object */
813+
.def_property_readonly("oc_bimanual",
814+
[](const objclass &o) { return o.oc_big != 0; }) /* for weapons & tools used as weapons */
815+
.def_property_readonly("oc_bulky",
816+
[](const objclass &o) { return o.oc_big != 0; }) /* for armor */
817+
.def_property_readonly("oc_tough",
818+
[](const objclass &o) { return o.oc_tough != 0; }) /* hard gems/rings */
819+
.def_property_readonly("oc_dir",
820+
[](const objclass &o) { return o.oc_dir != 0; })
821+
.def_property_readonly("oc_material",
822+
[](const objclass &o) { return o.oc_material != 0; }) /* one of obj_material_types */
823+
.def_readonly(
824+
"oc_skill",
825+
&objclass::oc_subtyp) /* Skills of weapons, spellbooks, tools, gems */
826+
.def_readonly(
827+
"oc_armcat",
828+
&objclass::oc_subtyp) /* for armor (enum obj_armor_types) */
790829
.def_readonly(
791830
"oc_oprop",
792831
&objclass::oc_oprop) /* property (invis, &c.) conveyed */
@@ -804,6 +843,13 @@ PYBIND11_MODULE(_pynethack, m)
804843
.def_readonly("oc_weight",
805844
&objclass::oc_weight) /* encumbrance (1 cn = 0.1 lb.) */
806845
.def_readonly("oc_cost", &objclass::oc_cost) /* base cost in shops */
846+
.def_readonly("oc_wsdam", &objclass::oc_wsdam) /* max small monster damage */
847+
.def_readonly("oc_wldam", &objclass::oc_wldam) /* max large monster damage */
848+
.def_readonly("oc_hitbon", &objclass::oc_oc1) /* weapons: "to hit" bonus */
849+
.def_readonly("a_ac", &objclass::oc_oc1) /* armor class, used in ARM_BONUS in do.c */
850+
.def_readonly("a_can", &objclass::oc_oc2) /* armor: used in mhitu.c */
851+
.def_readonly("oc_level", &objclass::oc_oc2) /* books: spell level */
852+
.def_readonly("oc_nutrition", &objclass::oc_nutrition) /* food value */
807853
/* And much more, see objclass.h. */;
808854

809855
mn.def("OBJ_NAME", [](const objclass &obj) { return OBJ_NAME(obj); });

0 commit comments

Comments
 (0)