diff --git a/autopickup.rc b/autopickup.rc index 15c9946..a072419 100644 --- a/autopickup.rc +++ b/autopickup.rc @@ -1,4 +1,28 @@ -OPTIONS=autopickup,pickup_types:$ -OPTIONS=pickup_burden=B -autopickup_exception=">.*iron chain.*" -autopickup_exception=">.*heavy iron ball.*" +{% if comments %} +# autopickup: automatically pick up certain things when you move onto them +{% endif %} +OPTIONS=autopickup + +{% if comments %} +# pickup_types: object types to be picked up when autopickup is on +{% endif %} +OPTIONS=pickup_types:$_ + +{% if comments %} +# pickup_burden: prompt for confirmation when picking up items that will push the character's encumbrance past the specified level +{% endif %} +OPTIONS=pickup_burden:burdened + +{% if comments %} +# pickup_thrown: if set and autopickup is on, try to pick up things that you threw +{% endif %} +OPTIONS=pickup_thrown + +{% if comments %} +# autopickup_exception: allow specifying regex matches for more nuanced autopickup +# lines starting with < will pick up matches +# lines starting with > will ignore matches +# only the latest line matching is processed, and if no line matches then pickup_types is looked at +{% endif %} +AUTOPICKUP_EXCEPTION=">.*iron chain.*" +AUTOPICKUP_EXCEPTION=">.*heavy iron ball.*" diff --git a/curses.rc b/curses.rc new file mode 100644 index 0000000..86c1d55 --- /dev/null +++ b/curses.rc @@ -0,0 +1,38 @@ +{% if comments %} +# windowtype: window interface to use, such as 'tty' or 'curses' (available options depend on build-time settings) +{% endif %} +OPTIONS=windowtype:curses + +{% if comments %} +# perm_invent: display your current inventory in a permanent window (only applicable in window interfaces that implement it) +{% endif %} +OPTIONS=!perm_invent + +{% if comments %} +# perminv_mode: determines what items to show in perm_invent window +# none: behave as if perm_invent is false +# all: show all inventory except for gold +# full: show full inventory including gold +# in-use: only show items which are in use (worn, wielded, quivered, lit lamp) +{% endif %} +OPTIONS=perminv_mode:none + +{% if comments %} +# align_message: where to place the message window (top, bottom, left, or right) +{% endif %} +OPTIONS=align_message:top + +{% if comments %} +# align_status: where to place the status window (top, bottom, left, or right) +{% endif %} +OPTIONS=align_status:top + +{% if comments %} +# windowborders: whether to draw boxes around the map, status area, message area, and persistant inventory window +# 0: off, never show borders +# 1: on, always show borders +# 2: auto, on if display is at least (24+2)x(80+2) +# 3: on, execpt forced off for perm_invent +# 4: auto, execpt forced off for perm_invent +{% endif %} +OPTIONS=windowborders:0 diff --git a/main.rc b/main.rc index ea270e0..a5c71a0 100644 --- a/main.rc +++ b/main.rc @@ -2,42 +2,129 @@ # junethack {{ jnh_username }} {% endif %} + +{%- if windowtype == "curses" %} +{% include "curses.rc" %} +{% else %} +{% include "tty.rc" %} +{% endif +%} + {% include "menucolor.rc" +%} {% include "statusbar.rc" +%} {% include "msgtypes.rc" +%} +{% include "names.rc" %} +{# block for additional names to keep set of names together #} {% block names %} -OPTIONS=dogname:Athena -OPTIONS=catname:Moldorm -OPTIONS=horsename:Horse -OPTIONS=fruit:word -{% endblock names %} +{% endblock names +%} {% include "autopickup.rc" +%} -{# put curses-specific stuff in a block so it can be easily overwritten if desired per-variant #} -{% block curses %} -OPTIONS=windowtype:curses -OPTIONS=!perm_invent -OPTIONS=windowborders:0 -{% endblock curses %} - +{% if comments %} +# force_invmenu: always show a menu instead of a text query when selecting inventory items +{% endif %} OPTIONS=!force_invmenu + OPTIONS=map_mode:tiles,scroll_margin:10 -OPTIONS=hilite_pet,hilite_pile,!toptenwin -OPTIONS=time,showexp,number_pad:2,lit_corridor -OPTIONS=msg_window:reversed,sortloot:full + +{% if comments %} +# hilite_pet: visually distinguish pets from other animals +{% endif %} +OPTIONS=hilite_pet + +{% if comments %} +# hilite_pile: visually distinguish plies of objects from individual objects +{% endif %} +OPTIONS=hilite_pile + +OPTIONS=!toptenwin + +{% if comments %} +# number_pad: use digit keys instead of letters to move +# 0: move by letters; "yuhjklbn" +# 1: move by numbers; digit '5' acts as 'G' movement prefix +# 2: move by numbers; digit '5' acts as 'g' movement prefix +# 3: move by numbers using phone key layout (123 above, 789 below) +# 4: combines 3 with 2 (phone key layout plus MS-DOS compatibility) +# -1: move by letters but use 'z' to go northwest and 'y' to zap wands +{% endif %} +OPTIONS=number_pad:2 + +{% if comments %} +# lit_corridor: distinguish visually between lit and unlit corridors +{% endif %} +OPTIONS=lit_corridor + +{% if comments %} +# msg_window: controls how to show messages recalled with ^P +# single: show single message at a time +# combination: show two messages as single, then as full +# full: full window, oldest message first +# reversed: full window, newest message first +{% endif %} +OPTIONS=msg_window:reversed + +{% if comments %} +# sortloot: controls sorting behavior of item-choosing lists +# full: always sort lists by item name +# loot: sort lists that don't use inventory letters +# none: show all lists without sorting +{% endif %} +OPTIONS=sortloot:full + +{% if comments %} +# autoquiver: automatically quiver a suitable weapon when firing if your quiver empties +{% endif %} OPTIONS=autoquiver + +{% if comments %} +# cmdassist: provide additional command assistance when detecting some anticipated mistakes +{% endif %} OPTIONS=!cmdassist + +{% if comments %} +# travel: enables the travel command, bound to _ by default +{% endif %} OPTIONS=travel + OPTIONS=disclose:yi ya nv ng yc no + +{% if comments %} +# altmeta: enables extended command shortcuts using the alt key +{% endif %} OPTIONS=altmeta + +{% if comments %} +# autodig: automatically dig when wielding a digging tool moving into a place that can be dug +{% endif %} OPTIONS=autodig + +{% if comments %} +# runmode: set the screen updating interval for multi-turn actions such as running or traveling +# teleport: update the map after movement has finished +# run: update the map after every seven or so steps +# walk: update the map after every step +# crawl: update the map and pause after every step +{% endif %} OPTIONS=runmode:teleport + OPTIONS=quick_farsight + +{% if commenst %} +# whatis_coord: coordinates to display when looking around the map with the whatis or farlook commands +# c: compass ('east' or '3s' or '2n,4w') +# f: full compass ('east' or '3south' or '2north,4west') +# m: map (map column x=0 is not used) +# s: screen [row,column] (row is offset to match tty usage) +# n: none (no coordinates shown) +{% endif %} OPTIONS=whatis_coord:c + +{% if comments %} +# implicit_uncursed: omit "uncursed" from inventory lists when it is implied from other aspects of the item description +{% endif %} OPTIONS=!implicit_uncursed {# block for additional options to keep main set of options together #} {% block options %} @@ -49,7 +136,7 @@ BIND=M-m:terrain BIND=C:conduct BIND=!:annotate BIND=%:ride -{# block for additional bindings to keep main set of bindings together #} +{# block for additional bindings to keep set of bindings together #} {% block bindings %} {% endblock bindings %} diff --git a/names.rc b/names.rc new file mode 100644 index 0000000..f543652 --- /dev/null +++ b/names.rc @@ -0,0 +1,19 @@ +{% if comments %} +# fruit: set name of user-definable fruit +{% endif %} +OPTIONS=fruit:word + +{% if comments %} +# catname: set name of starting cat +{% endif %} +OPTIONS=catname:Moldorm + +{% if comments %} +# dogname: set name of starting dog +{% endif %} +OPTIONS=dogname:Athena + +{% if comments %} +# horsename: set name of starting horse +{% endif %} +OPTIONS=horsename:Horse diff --git a/pergame.rc b/pergame.rc index fa266c3..63ffd3b 100644 --- a/pergame.rc +++ b/pergame.rc @@ -1,4 +1,16 @@ -{{ "# " if not nobones }}OPTIONS=nobones -{{ "# " if not nopet }}OPTIONS=nopet +{% if comments %} +# bones: allow loading and saving bones files +{% endif %} +{{ "# " if not nobones }}OPTIONS=!bones + +{{ "# " if not nopet }}OPTIONS=!pet + +{% if comments %} +# pauper: start character with no items, skills, spells, or discoveries +{% endif %} {{ "# " if not pauper }}OPTIONS=pauper + +{% if comments %} +# nudist: start character with no armor +{% endif %} {{ "# " if not nudist }}OPTIONS=nudist diff --git a/render.py b/render.py index 7b9a18f..5c7f69e 100644 --- a/render.py +++ b/render.py @@ -50,15 +50,15 @@ if __name__ == "__main__": load_dotenv() parser = argparse.ArgumentParser() - parser.add_argument("template") - parser.add_argument("--hdf_variant", help="If specified, the variant to upload the rendered template to on hardfought.org") - parser.add_argument("--nudist", "-n", action="store_true") - parser.add_argument("--pauper", "-p", action="store_true") - parser.add_argument("--nobones", action="store_true") - parser.add_argument("--nopet", action="store_true") - parser.add_argument("--hide-comments", action="store_false", dest="comments") - parser.add_argument("--curses", action="store_const", const="curses", dest="windowtype") - parser.add_argument("--tty", action="store_const", const="tty", dest="windowtype") + parser.add_argument("template", help="template file to render") + parser.add_argument("--hdf_variant", help="if specified, the variant to upload the rendered template to on hardfought.org") + parser.add_argument("--nudist", "-n", action="store_true", help="enable nudist conduct in rcfile") + parser.add_argument("--pauper", "-p", action="store_true", help="enable pauper conduct in rcfile") + parser.add_argument("--nobones", action="store_true", help="turn off bones in rcfile") + parser.add_argument("--nopet", action="store_true", help="turn off starting pet in rcfile") + parser.add_argument("--hide-comments", action="store_false", dest="comments", help="strip out explanatory comments in output to reduce file size") + parser.add_argument("--curses", action="store_const", const="curses", dest="windowtype", help="set windowtype to curses and set appropriate options") + parser.add_argument("--tty", action="store_const", const="tty", dest="windowtype", help="set windowtype to tty and set appropriate options") args = parser.parse_args() diff --git a/statusbar.rc b/statusbar.rc index 00a60a8..7a0e025 100644 --- a/statusbar.rc +++ b/statusbar.rc @@ -1,5 +1,20 @@ OPTIONS=statuslines:3 +{% if comments %} +# time: displays elapsed game turns on the status line +{% endif %} +OPTIONS=time,showexp + +{% if comments %} +# showexp: displays exact number of experience points next to experience level on status line +{% endif %} +OPTIONS=showexp + +{% if comments %} +# showscore: displays approximate accumulated score on status line +{% endif %} +OPTIONS=showscore + # Status hilites OPTIONS=statushilites diff --git a/tty.rc b/tty.rc new file mode 100644 index 0000000..d4d7959 --- /dev/null +++ b/tty.rc @@ -0,0 +1,4 @@ +{% if comments %} +# windowtype: window interface to use, such as 'tty' or 'curses' (available options depend on build-time settings) +{% endif %} +OPTIONS=windowtype:tty