nixos/home/components/nethack.nix

267 lines
9.6 KiB
Nix

{ ... }:
{
programs.nethack = {
enable = true;
nethack_options = {
windowtype = "curses";
align_message = "bottom";
msg_window = "reverse";
msghistory = 1000;
statuslines = 3;
hitpointbar = true;
perm_invent = true;
showscore = true;
showrace = true;
showexp = true;
time = true;
hilite_pet = true;
statushilites = true;
lit_corridor = true;
use_darkgray = true;
menucolors = true;
autopickup = true;
pickup_burden = "B";
disclose = "+iagcvo";
sortloot = "full";
runmode = "crawl";
boulder = "0";
gender = "male";
};
choose_options = {
wizard.nethack_options = {
race = "elf";
role = "wizard";
pickup_types = ''$!="+?'';
};
tourist.nethack_options = {
role = "tourist";
pickup_types = ''$!="+?'';
};
caveman.nethack_options = {
race = "dwarf";
role = "caveman";
pickup_types = ''$!=%"?()'';
};
};
hilite_status = {
hitpoints = {
"100%" = "grey";
"<100%" = "green";
"<66%" = "yellow";
"<50%" = "orange";
"<33%" = "red&bold";
"<15%" = "red&inverse";
};
power = {
"100%" = "grey";
"<100%" = "green";
"<66%" = "yellow";
"<50%" = "orange";
"<33%" = "red&bold";
};
cap = {
burdened = "yellow";
stressed = "orange";
strained = "red&bold";
overtaxed = "red&inverse";
overloaded = "red&inverse&blink";
};
hunger = {
satiated = "yellow";
hungry = "orange";
weak = "red&bold";
fainting = "red&inverse";
fainted = "red&inverse&blink";
};
condition = {
slime = "red&inverse";
hallu = "yellow";
conf = "orange";
stun = "red&bold";
termill = "red&inverse";
foodpois = "red&inverse";
};
characteristics = {
up = "green";
down = "red";
};
gold = {
up = "yellow";
down = "brown";
};
};
msg_types = {
stop = [
"The .* (grabs|swings itself around) you!"
"You don't feel very well."
"You are turning a little green."
"Your limbs are getting oozy."
"Your skin begins to peel away."
"You are turning into a green slime."
"You are slowing down."
"Your limbs are stiffening."
"It constricts your throat!"
"You find it hard to breathe."
"You're gasping for air."
"Your blood is having trouble reaching your brain."
"You can no longer breathe."
"You're turning blue."
"You faint from lack of food"
"Your consciousness is fading."
"You regain consciousness"
"You feel weak"
"You feel weak now"
"You are beginning to feel weak"
"You feel deathly sick"
"You feel (much|even) worse"
"You feel more confident "
"You only feel hungry now"
" needs food, badly!"
"You feel hungry"
"You are beginning to feel hungry"
"You are getting the munchies"
"You still have the munchies"
"The munchies are interfering with your motor capabilities"
"You now have a lesser case of the munchies"
];
hide = [
"You swap places with .*"
];
};
menu_colors = {
" blessed " = "green";
" holy " = "green";
" cursed " = "red";
" unholy " = "red";
" cursed .* (being (worn|wielded))" = "orange&underline";
" !C" = "white";
" !B" = "white";
" !UC" = "white";
" uncursed| UC?($| )" = "white";
" \\([-0-9]+:[-0-9]+\\)" = "white";
" [+-][0-9]" = "white";
" blessed| B($| )" = "cyan";
" cursed| C($| )" = "red";
" holy water" = "cyan&bold";
" blessed clear potion" = "cyan&bold";
" blessed potions? called water" = "cyan&bold";
" clear potions? named (holy|blessed|B)($| )" = "cyan&bold";
" potions? of water named (holy|blessed|B)($| )" = "cyan&bold";
" potions? called water named (holy|blessed|B)($| )" = "cyan&bold";
" unholy water" = "orange";
" cursed clear potion" = "orange";
" cursed potions? called water" = "orange";
" potions? called water named (unholy|cursed|C)($| )" = "orange";
"(food |cram |K-|C-)ration|gunyoki" = "green&bold";
"lembas wafer|melon|carrot|tins? .* spinach" = "green&bold";
" oranges?( named.*)?$" = "green&bold";
" pears?( named.*)?$" = "green&bold";
" (apple|banana|kelp|eucalyptus|garlic|wolfsbane)" = "green&bold";
" (slime mold|brain)" = "green&bold";
"(tins? of )?(gelatinous cube|acid blob|quivering blob)( corpse)?" = "green&bold";
"(tins? of )?(blue|spotted|ochre) jelly( corpse)?" = "green&bold";
"(tins? of )?lichen|shrieker|violet fungus|(brown|yellow|green|red) mold( corpse)?" = "green&bold";
"egg|pancake|fortune cookie|candy bar|royal jelly|cream pie|candle" = "green";
"(tin of )?brown pudding|gray ooze( corpse)?" = "green";
" bag .* holding" = "magenta";
" luck(stone)?($| )" = "magenta";
" wand .* wish(ing)?($| )" = "magenta";
" wand .* tele(port(ation)?)?($| )" = "magenta";
" wand .* polymorph" = "magenta";
" wand .* death" = "magenta";
" gain level" = "magenta";
" full healing" = "magenta";
" magic marker" = "magenta";
" magic lamp|lamp .* magic" = "magenta";
" unicorn horn[^[]*$" = "magenta";
" tinning kit" = "magenta";
" ring .* regen(eration)?($| )" = "magenta";
" ring .* conflict" = "magenta";
" ring .* (FA|free action)($| )" = "magenta";
" ring .* (TC|teleport control)($| )" = "magenta";
" ring .* lev(itation)?($| )" = "magenta";
" scrolls? .* genocide($| )" = "magenta";
" scrolls? .* charging($| )" = "magenta";
" scrolls? .* identify($| )" = "magenta";
" amulet .* (life ?saving|LS)($| )" = "magenta";
" amulet .* ref(lection)?($| )" = "magenta";
" c(o|hi)ckatrice (corpse|egg)" = "magenta";
" egg .* cockatrice" = "magenta";
" stethoscope" = "magenta";
"tooled horn|fire horn|frost horn|horn .* (tooled|fire|frost)" = "magenta";
" harp" = "magenta";
" bugle" = "magenta";
" flute" = "magenta";
"piece of cloth|opera cloak|ornamental cope|tattered cape" = "magenta";
"plumed helmet|etched helmet|crested helmet|visored helmet" = "magenta";
"(old|padded|riding|fencing) gloves" = "magenta";
"(mud|buckled|riding|snow|hiking|combat|jungle) boots" = "magenta";
" (Dragonbane|Fire Brand|Frost Brand|Ogresmasher|Trollsbane|Werebane)" = "lightgreen";
" (Demonbane|Excalibur|Grayswandir|Snickersnee|Sunsword)" = "lightgreen";
" (Orb of Detection|Sceptre of Might|Magic Mirror of Merlin|Mitre of Holiness|Tsurugi of Muramasa)" = "lightgreen";
" (Cleaver|Giantslayer|Magicbane|Mjollnir|Vorpal Blade)" = "lightgreen";
" (Heart of Ahriman|Staff of Aesculapius|Eyes of the Overworld|Platinum Yendorian Express Card|Orb of Fate|Eye of the Aethiopica)" = "lightgreen";
" (Grimtooth|Orcrist|Sting|Stormbringer)" = "lightgreen";
" (Longbow of Diana|Master Key of Thievery)" = "lightgreen";
" (Bell of Opening|silver bell|Candelabrum of Invocation|candelabrum|Book of the Dead|papyrus spellbook)" = "magenta&bold";
" Amulet of Yendor named" = "magenta&bold";
" cursed.* bag .* holding" = "red&bold";
" cursed.* luck(stone)?($| )" = "red&bold";
" cursed.* unicorn horn" = "red&bold";
" cursed.* (Bell of Opening|silver bell|Candelabrum of Invocation|candelabrum|Book of the Dead|papyrus spellbook)" = "red&bold";
"cursed tins? .* spinach|tins? .* spinach .* (cursed|C($| ))" = "red";
" load(stone)?($| )" = "red&underline";
" bag .* tricks" = "blue&underline";
" wand .*[^!]canc" = "blue&underline";
" wand .* vanish" = "blue&underline";
" gold piece" = "yellow";
" valuable" = "brown";
" gems? .* hard" = "yellow";
" ([0-9]+|an?|gems? .*) (uncursed |cursed |blessed )?(dilithium|opal|garnet|jasper|agate|jet|obsidian|jade|citrine|chrysoberyl|amber|amethyst|fluorite|turquoise)(e?s)?( stones?| gems?| crystals?)?( named .*)?$" = "brown";
" ([0-9]+|an?|gems?.*) (uncursed |cursed |blessed )?(diamond|rub(y|ies)|jacinth|sapphire|black opal|emerald|topaz|aquamarine)(e?s)?( stones?| gems?)?( named .*)?$" = "yellow";
" 0%" = "white";
" [1-9]%" = "cyan";
" [12][0-9]%" = "cyan";
" [3-6][0-9]%" = "yellow";
" 7[0-5]%" = "yellow";
" 7[6-9]%" = "orange";
" 8[0-9]%" = "orange";
" 9[0-9]%" = "red";
" 100%" = "red";
"[a-zA-Z ]+ [0-9]\\* [a-z]+ +[0-9]+%" = "magenta";
"^ +[a-z -]+ +\\[(Unskilled|Basic|Skilled|Expert|Master|Grand Master)\\]$" = "grey";
"^ *[a-z] - +[a-z -]+ +\\[(Unskilled|Basic|Skilled|Expert|Master|Grand Master)\\]$" = "white";
"^ +\\* +[a-z -]+ +\\[(Unskilled|Basic|Skilled|Expert|Master|Grand Master)\\]$" = "white";
"^ +# +[a-z -]+ +\\[(Unskilled|Basic|Skilled|Expert|Master|Grand Master)\\]$" = "grey";
" is empty. Do what?" = "grey";
"Put something into .*" = "grey";
"Take something out of .*" = "grey";
"unicorn horn.*(Unskilled|Basic|Skilled|Expert)" = "grey";
"Info on what a given key does." = "grey";
"Full list of keyboard commands." = "grey";
"altkeyhandler" = "grey";
"fruit.*\\[" = "grey";
};
};
}