-
Notifications
You must be signed in to change notification settings - Fork 14
/
HilariousDeathArtist.txt
650 lines (568 loc) · 18.9 KB
/
HilariousDeathArtist.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
# Got suggestions/improvements?
# https://github.com/HilariousDeathArtist/DCSSConfigFile
# or find me on crawl.s-z.org
# I will try to keep my rc files up to date on CSZO and CAO
# If you are playing on these servers you can include this file in your config with the following line
# include += HilariousDeathArtist.rc
# SUCH EXCITEMENT!!!
# language = !!!
# To override this setting, add the following line after include += HilariousDeathArtist.rc
# language = en
# To override other settings you don't like, you may redefine them after the include like the language setting
# Logs chat messages into the notes
# Set this to false before including my rcfile to disable
note_chat_messages = true
# Picks up all ego weapons if you worship Beogh
# Set this to false before including my rcfile to disable
beogh_autopickup = you.god():find("Beogh")
<
function ready()
AnnounceDamage()
--SpoilerAlert()
OpenSkills()
end
>
####################
# Included RcFiles #
####################
# Just Message colors
# include += HDAMessageColors.rc
# Just Item colors
# include += HDAItemColors.rc
# Monster warning messages -- disabled by default
# Uncomment the next line and the call to SpoilerAlert() in the ready function to use it
# include += SpoilerAlert.rc
# The damage announcement messages
include += HDamage.rc
# Force More prompts
include += HDAForceMore.rc
# Message and Item colors
include += HDAColors.rc
# The ===HDAtravel autotravel replacement macro
include += HDAtravel.rc
message_colour += mute:you're not good enough to have a special ability
message_colour += mute:@corpse
####################
# Opens skill menu #
####################
<
local need_skills_opened = true
function OpenSkills()
if you.turns() == 0 and need_skills_opened then
need_skills_opened = false
sendkeys("m")
end
end
>
#############
# Autofight #
#############
# Do/don't throw stuff when autofighting
autofight_throw = true
autofight_throw_nomove = true
# If true. items are autofired stopping at the monsters feet (same as firing using .)
autofight_fire_stop = true
fire_order = launcher, return
fire_order += rock, javelin, tomahawk, stone
# Prevent me from tab-fighting to death by keeping this high
autofight_stop = 60
# Enables automagic attacks
automagic_enable = false
automagic_slot = a
# Percentage of MP to stop automagic at
automagic_stop = 50
# If set to true, resort to melee when automagic_stop is active
automagic_fight = true
##############
# Autopickup #
##############
# Used
# $ = gold
# ? = scroll
# ! = potion
# : = book
# " = jewellery
# / = wand
# % = food
# } = miscellaneous
# \ = rods
# | = staves
: if (you.god():find("Trog")) then
autopickup += $?!:"/%}\
: else
autopickup += $?!:"/%}\|
: end
# Unused
# ) = weapon
# ( = missiles
# [ = armour
# X = corpses
# Allows easily dropping multiple items
drop_mode += multi
# Always show the full list of items when you pick up a stack
pickup_mode += multi
# Allows followers to pick up ANYTHING (take care not to lose artefacts)
default_friendly_pickup += all
# Set Alias for Autopickup Exceptions
ae := autopickup_exceptions
ae += useless_item, dangerous_item, evil_item
# Don't pick up potion(s) of [coagulated] blood if you are not a vampire
: if you.race() ~= "Vampire" then
ae += potions? of.*blood
: end
# Autopickup artefacts
ae += <artefact
# Armour/Weapon autopickup by rwbarton, enhanced by HDA with fixes from Bloaxor
{
add_autopickup_func(function(it, name)
if name:find("curare") then return true end
if name:find("dispersal") and (name:find("dart") or name:find("tomahawk")) then return true end
if name:find("throwing net") then return true end
local class = it.class(true)
local armour_slots = {cloak="Cloak", helmet="Helmet", gloves="Gloves", boots="Boots", body="Armour", shield="Shield"}
if (class == "armour") then
if it.is_useless then return false end
sub_type = it.subtype()
equipped_item = items.equipped_at(armour_slots[sub_type])
if (sub_type == "cloak") or (sub_type == "helmet") or (sub_type == "gloves") or (sub_type == "boots") then
if not equipped_item then
return true
else
return it.artefact or it.branded or it.ego
end
end
if (sub_type == "body") then
if equipped_item then
local armourname = equipped_item.name()
if equipped_item.artefact or equipped_item.branded or equipped_item.ego or (equipped_item.plus > 2) or armourname:find("dragon") or armourname:find("troll") then
return it.artefact
else
return it.artefact or it.branded or it.ego
end
end
return true
end
if (sub_type == "shield") then
if equipped_item then
return it.artefact or it.branded or it.ego
end
end
end
if (class == "weapon") then
if it.is_useless then return false end
if (you.xl() < 12) or (you.god():find("Nemelex")
or (you.god():find("Yred"))
or (beogh_autopickup)) then
if it.branded and not (it.name() == "club") then
return false
end
end
local weapon = items.equipped_at("Weapon")
if weapon then
if (weapon.branded or weapon.artefact) then return false
else
local weapon_name = weapon.name()
local sb = you.skill("Short Blades")
local lb = you.skill("Long Blades")
local axe = you.skill("Axes")
local mf = you.skill("Maces & Flails")
local pole = you.skill("Polearms")
local staff = you.skill("Staves")
if sb > 6 then
if name:find("quick blade") then return true end
end
if lb > 8 then
if name:find("demon blade") then return true end
if name:find("bastard sword") then return true end
if name:find("double sword") then return true end
end
if lb > 14 then
if name:find("claymore") then return true end
if name:find("triple sword") then return true end
end
if axe > 8 and mf <= 8 then
if name:find("battleaxe") then return true end
if name:find("broad axe") then return true end
if name:find("war axe") then return true end
if name:find("executioner") then return true end
end
if axe > 18 then
if name:find("executioner") then return true end
end
if mf > 8 and staff <= 8 and axe <= 8 then
if name:find("eveningstar") then return true end
if name:find("demon whip") then return true end
if name:find("sacred scourge") then return true end
if name:find("dire flail") then return true end
end
if mf > 14 and staff <= 14 and axe <= 14 then
if name:find("great mace") then return true end
end
if pole > 8 and staff <= 8 then
if name:find("trident") then return true end
if name:find("demon trident") then return true end
if name:find("trishula") then return true end
end
if pole > 14 and staff <= 14 then
if name:find("glaive") then return true end
if name:find("bardiche") then return true end
end
if staff > 8 then
if name:find("lajatang") then return true end
end
end
elseif (you.skill("Unarmed Combat") < 3) then
return true
end
end
end)
}
###############
# Spell slots #
###############
# Set Alias for Spell Slots
slot := spell_slot
# Try to keep in alphabetic order (by keybind)
slot += Freeze:a
slot += Shroud:a
slot += Blink:b
slot += Call Canine Familiar:c
slot += Call Imp:c
slot += Confuse:c
slot += Conjure Flame:c
slot += Control Undead:c
slot += Freezing Aura:c
slot += Petrify:c
slot += Spider Form:c
slot += Deflect Missiles:d
slot += Lethal Infusion:d
slot += Repel Missiles:d
slot += Fire Brand:f
slot += Fireball:f
slot += Apportation:g
slot += Haste:h
slot += Sublimation of Blood:m
slot += Abjuration:q
slot += Recall:r
slot += Regeneration:r
slot += Condensation Shield:s
slot += Shroud of Golubria:s
slot += Slow:s
slot += Sticks to Snakes:s
slot += Sticky Flame:s
slot += Stoneskin:s
slot += Swiftness:s
slot += Passwall:w
slot += Corona:v
slot += Blade Hands:x
slot += Iskenderun's Mystic Blast:x
slot += Lightning Bolt:x
slot += Mephitic Cloud:x
slot += Stone Arrow:x
slot += Throw Flame:x
slot += Throw Frost:x
slot += Throw Icicle:x
slot += Vampiric Draining:x
slot += Iskenderun's Battlesphere:z
slot += Lee's Rapid Deconstruction:z
slot += Spectral Weapon:z
slot += Animate Dead:A
slot += Animate Skeleton:A
slot += Ozocubu's Armour:A
slot += Controlled Blink:B
slot += Summon Butterflies:B
slot += Control Teleport:C
slot += Death's Door:D
slot += Flight:F
slot += Cure Poison:P
slot += Borgnjor's Revivification:R
slot += Phase Shift:S
slot += Song of Slaying:S
################
# Auto Exclude #
################
## dangerous monsters ##
auto_exclude += ancient lich, death drake, hydra, ice statue, jelly, orb of fire
## paralysing monsters and uniques ##
auto_exclude += [^c] wizard, ancient lich, Ereshkigal, Erolcha, eyeball, Grinder, Jory, lich
auto_exclude += Norris, ogre-mage, orb of eyes, orc sorcerer, Rupert, sphinx, vampire knight
## other uniques and unique followers ##
auto_exclude += Agnes, Aizul, Arachne, Asterion, Blork, Boris, Crazy Yiuf, Donald, Dowan
auto_exclude += Duvessa, Edmund, Erica, Eustachio, Fannar, Frances, Frederick, Gastronok
auto_exclude += Grum, Harold, Ijyb, Jessica, Jorgrun, Joseph, Kirke, Louise, Mara, Maud
auto_exclude += Maurice, Menkaure, Mennas, Natasha, Nergalle, Nessos, Nikola, Pikel
auto_exclude += Polyphemus, Prince Ribbit, Psyche, Roxanne, Saint Roka, Sigmund, Snorg
auto_exclude += Sojobo, Sonja, Terence, Urug, Wiglaf, Xtahua, hog, slave
###############
# Auto Travel #
###############
# Set travel delay to -1 for instant-travel, set to 1 to see travel paths
travel_delay = -1
explore_stop = glowing_items,artefacts,greedy_pickup_smart
explore_stop += greedy_visited_item_stack,stairs,shops
explore_stop += altars,portals,branches,runed_doors,greedy_sacrificeable
# Adjusts how much autoexplore favours attempting to discover room perimeters and corners.
# At values higher than 0, autoexplore will more heavily favour visiting squares that are next to walls
# reasonable values range from 0 to 10 maybe?
explore_wall_bias = 3
# Make auto travel sacrifice corpses
sacrifice_before_explore = true
auto_sacrifice = true
# Disables key press from stopping autoexplore
travel_key_stop = false
runrest_ignore_poison = 3:30
runrest_ignore_monster += butterfly:1
trapwalk_safe_hp = dart:15,needle:25,arrow:25,bolt:30,spear:20,axe:40,blade:50
# Only stop resting when both HP/MP are full
rest_wait_both = true
# Set Alias'
stop := runrest_stop_message
ignore := runrest_ignore_message
ignore += You regained.*mp
# Annoyances -- Don't stop autotravel for these events
ignore += A.*toadstool withers and dies
ignore += disappears in a puff of smoke
ignore += engulfed in a cloud of smoke
ignore += engulfed in white fluffiness
ignore += grinding sound
ignore += in your inventory.*rotted away
ignore += safely over a trap
ignore += standing in the rain
ignore += toadstools? grow
ignore += You feel.*sick
ignore += You walk carefully through the
# Jiyva Messages
ignore += Jiyva appreciates your sacrifice
ignore += Jiyva gurgles merrily
ignore += Jiyva says: Divide and consume
ignore += You hear.*splatter
# Qazlal
ignore += The plant is engulfed
ignore += You destroy the (bush|fungus|plant)
ignore += You displace your
# Bad things -- Stop autotravel for these events (duplicates some of HDAForceMore)
stop += (blundered into a|invokes the power of) Zot
stop += (devoid of blood|starving)
stop += A huge blade swings out and slices into you[^r]
stop += An alarm trap emits a blaring wail
stop += flesh start
stop += found a zot trap
stop += hear a soft click
stop += lose consciousness
stop += sense of stasis
stop += Wait a moment
stop += wrath finds you
stop += You fall through a shaft
# Expiring spells effects -- Stop to allow recasts (duplicates some of HDAForceMore)
# Control Teleport
stop += you feel uncertain
# Death's Door
more += time is quickly running out
more += life is in your own
# Enslavement
more += is no longer charmed
# Flight
more += You are starting to lose your buoyancy
stop += You lose control over your flight
# Haste
more += You feel yourself slow down
# Phase Shift
more += You feel closer to the material plane
# Repel/Deflect
stop += missiles spell is about to expire
# Shroud of Golubria
stop += shroud begins to fray
stop += shroud unravels
more += Your shroud falls apart
# Swiftness
stop += start to feel a little slower
# Transmutations
more += Your transformation is almost over
more += You have a feeling this form
more += Your skin feels tender
more += You feel yourself come back to life
# Ghouls (Not part of HDAForceMore)
: if you.race() == "Ghoul" then
stop += smell.*(rott(ing|en)|decay)
stop += something tasty in your inventory
: end
# Good things - Bad things wearing off (Duplicates some of HDAForceMore)
stop += contamination has completely
stop += You are no longer firmly anchored in space
#Ally actions?
#ignore += pray:
#ignore += friend_spell:
#ignore += friend_enchant:
#ignore += friend_action:
#ignore += sound:
#############
# Interface #
#############
allow_self_target = prompt
sort_menus = true
#WARNING TO KEYPAD USERS: The number 7 is mapped to the letter 'y'
easy_confirm = all
confirm_butcher = never
easy_eat_chunks = true
auto_eat_chunks = true
auto_drop_chunks = yes
easy_eat_contaminated = true
equip_unequip = true
#hp_warning = 25 -- Damage Calc overrides these
#mp_warning = 25 -- Damage Calc overrides these
hp_colour = 100:green, 99:lightgrey, 75:yellow, 50:lightred, 25:red
mp_colour = 100:green, 99:lightgrey, 75:yellow, 50:lightred, 25:red
stat_colour = 3:red, 7:lightred
# Removes the more prompts when outputting more than one screen of messages
show_more = false
small_more = true
# Setting this to false changes the turn display to show player turns (used for scoring)
show_game_turns = true
msg_min_height=7
msg_max_height=10
default_manual_training = true
####################
# Autoinscriptions #
####################
# Set Alias
ai := autoinscribe
# Overwrite annoying inscriptions with your own
# Inscribe vampiric weapons if you are not a vampire
: if you.race() ~= "Vampire" then
ai += vampiric:!w
# Inscribe potions of blood if you are a vampire
: else
ai += potion.*blood:@q1
: end
# Inscribe distortion weapons if you are not worshipping Lugonu
: if you.god() ~= "Lugonu" then
ai += distortion:!w
ai += (Sonja|Psyche):!w
: end
# Misc
ai += rod of [^s][^t]:!a
ai += [Mm]anual of:!d
ai += dispersal:=f
ai += large rock:!d
ai += throwing net:=f, !d
ai += tome of destruction:!d
# Consumables
ai += (bad|dangerous)_item.*potion:!q
ai += potions? of berserk rage:!q
ai += potions? of cure mutation:!q
ai += (bad|dangerous)_item.*scroll:!r
ai += scrolls? of blinking:!r
ai += scrolls? of holy word:!r
ai += scrolls? of magic mapping:!r
ai += scrolls? of vulnerability:!r
# Body Armour
ai += fire dragon (armour|hide):rF++, rC-
ai += gold dragon (armour|hide):rC+, rF+, rPois
ai += ice dragon (armour|hide):rC++, rF-
ai += mottled dragon (armour|hide):rSticky
ai += pearl dragon (armour|hide):rN+
ai += quicksilver dragon armour:MR+
ai += shadow dragon (armour|hide):Stlth++++
ai += steam dragon (armour|hide):rSteam
ai += storm dragon (armour|hide):rElec
ai += swamp dragon (armour|hide):rPois
ai += troll (hide|leather armour):regen
# Body Armour Egos
#ai += ([^l] leather armour|mail|plate armour|robe|skin) of cold resistance:rC+
#ai += ([^l] leather armour|mail|plate armour|robe|skin) of fire resistance:rF+
#ai += (leather armour|mail|plate armour|robe) of magic resistance:MR+
#ai += (leather armour|mail|plate armour|robe) of positive energy:rN+
#ai += (leather armour|mail|plate armour) of poison resistance:rPois
#ai += plate armour of ponderousness:Speed-
#ai += robe of resistance:rC+, rF+
#ai += robe of the archmagi:Spellpower+
#ai += troll leather armour of cold resistance:, rC+
#ai += troll leather armour of fire resistance:, rF+
# Accessory Egos
#ai += (barding|boots|buckler|cloak|gloves|hat|helmet|shield) of cold resistance:rC+
#ai += (barding|boots|buckler|cloak|gloves|hat|helmet|shield) of fire resistance:rF+
#ai += (barding|boots) of flight:+Fly
#ai += (barding|boots) of stealth:Stlth+
#ai += (barding|boots) of running:Speed+
#ai += (barding|boots) of jumping:+Jump
#ai += (buckler|cloak|shield) of poison resistance:rPois
#ai += (buckler|shield) of positive energy:rN+
#ai += (buckler|shield) of protection:AC+3
#ai += (buckler|shield) of reflection:Reflect
#ai += (buckler|shield) of resistance:rC+, rF+
#ai += (cloak|hat|helmet) of magic resistance:MR+
#ai += (hat|helmet) of intelligence:Int+3
#ai += (hat|helmet) of see invisible:sInv
#ai += cloak of darkness:+Inv
#ai += gloves of strength:Str+3
#ai += gloves of dexterity:Dex+3
#ai += gloves of archery:Ranged Slay+4
#ai += hat of spirit shield:Spirit
# Amulets
ai += amulet of clarity:Clar, !d
ai += amulet of faith:Faith, !P
ai += amulet of guardian spirit:Spirit
ai += amulet of rage:+Rage, !d
ai += amulet of regeneration:+regen, !d
ai += amulet of resist corrosion:rCorr, !d
ai += amulet of resist mutation:rMut, !d
ai += amulet of stasis:Stasis, !d
ai += amulet of the gourmand:Gourm, !d
ai += amulet of warding:Ward, rN+, !d
# Rings
ai += ring of fire:rF+, rC-
ai += ring of flight:+Fly, !d
ai += ring of ice:rC+, rF-
ai += ring of invisibility:+Inv, !d
ai += ring of loudness:Stlth-
ai += ring of magical power:MP+9
ai += ring of poison resistance:rPois, !d
ai += ring of positive energy:rN+
ai += ring of protection from cold:rC+, !d
ai += ring of protection from fire:rF+, !d
ai += ring of protection from magic:MR+, !d
ai += ring of see invisible:sInv, !d
ai += ring of stealth:Stlth+
ai += ring of sustain abilities:SustAb
ai += ring of teleport control:cTele, !d
ai += ring of teleportation:+/*tele, !d
ai += ring of wizardry:Wiz+, !d
# Obsolete in 0.16
ai += ring of regeneration:regen, !d
# Staves
ai += staff of air:rElec
ai += staff of cold:rC+
ai += staff of conjuration:!a
ai += staff of death:rN+
ai += staff of energy:+MP, hungerless spells, !d!a
ai += staff of fire:rF+
ai += staff of poison:rPois
ai += staff of power:MP+17, !a
ai += staff of summoning:!a
ai += staff of wizardry:wiz+, !a
# Save fruit for abilities under Fedhas
: if you.god() == "Fedhas" then
ai += fruit:!e
: end
autoinscribe_cursed = false
show_god_gift = unident
##################
# Character Dump #
##################
dump_item_origins = all
dump_item_origin_price = 100
dump_message_count = 100
#dump_order = header,hiscore,stats,misc,mutations,skills,spells,overview,inventory
#dump_order += screenshot,monlist,messages,action_counts,vaults,notes,kills
dump_order += vaults, turns_by_place, kills_by_place
dump_book_spells = false
ood_interesting = 6
note_hp_percent = 25
note_all_skill_levels = true
note_xom_effects = true
note_items += of Zot,rod,acquirement
note_messages += Your scales start
note_messages += protects you from harm
note_messages += You fall through a shaft
note_messages += [bB]anish.*Abyss
note_monsters += orb of fire,silver star,pearl dragon,ancient lich