@@ -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