Bard patch 0.9 for Nethack 3.4.3
André Bertelli Araújo email@example.com
Download patch. Apply with
patch p1 < /path/to/bard09.patch inside the sources directory.
Please note that this code probably have lots of bugs and isn’t finished yet.
Bards have a skill called ‘musicalize spell’ with which they’re able to ‘cast’ enchantment spells in the form of songs, playing the spell as music. Spells used this way work as area-of-effect spells. The higher the charisma is, the higher the chance of influencing a monster.
Some ideas were taken from Dungeon & Dragons’ Bard, some from other RPGs, some from greek mythology (Orpheus). I’m no specialist in any of those topics, so I used what I thought would work better in Nethack context.
- Since magical songs are basically equal to their spell counterparts but affect several monsters at the same time (they affect all monsters in the area around the player), there must be some kind of limitation or catch. A limitation is needed to avoid songs being too overpowered; for example, the player could just keep playing the sleep song over and over (think a magic flute with infinite charges).
- One possible limitation is making songs cost mana. I don’t like this solution because it makes songs too much like spells, but it’s a possible solution.
- Another possible limitation is to make the songs’ area of effect very small. This also could make songs so undesirable that casting the original spells would be better. Think of letting several monsters get very close to you so you can play a sleep song, versus just zapping some monsters in a row with a sleep ray. Other ways of avoiding overpowered songs are decreasing songs’ chance of success or effectiveness, which also could make songs too undesirable.
- Another: songs take several turns to play and the monsters only are affected if the song is played until the end. But the number of ways the player can be interrupted can thus make songs useless.
- A better solution: make songs have less effect than their spell counterparts. The sleep song can put several monsters to sleep at the same time, while the sleep spell can affect just one monster per cast (more if they’re on the same line, actually), but the song will put them to sleep for fewer turns.
The adopted solution was this last one. Magic songs are like their enchantment spells counterparts, but cost no mana and affect several monsters around the player. But the following limitations apply:
- Songs take several turns to be played
- Each turn a song is being played, a small part of the effect is applied
- The effects are temporary and last shorter than the original spells
- While playing a song, the player can be interrupted as with any other activity that takes several turns
- Songs have a failure chance much like spells (based on dexterity and skill), but even if successfully played, can still be resisted
- Monsters resistance to songs depend on several factors (more about this below)
- With musicalize at unskilled or basic, there is a chance your pets are affected too. For example, the sleep song can make your pets sleep as well as monsters (but pets will sleep for a shorter time).
Bards can advance the ‘musicalize spell’ skill up to expert, Tourists up to skilled, and Monks and Priests up to basic. In order to play a song, there are two requirements:
- First, one needs to know the spell upon which the song is based, so they can musicalize it. Bards are exempt of this rule.
- Second, one must have a suitable instrument to play that song. For example, one can’t play a song to make others sleep using a drum, or cause fear using a harp. Songs can always be played by two different instruments, and one of them always has a better performance (harder for monsters to resist).
Magical instruments work as before. Classes without the musicalize spell skill also use normal instruments as before. When a class with the musicalize skill applies an instrument, a menu is shown with the applicable songs, plus the option ‘improvise’ that uses the instrument as before, and the option ‘a sequence of notes’, to try opening the drawbridge.
The Bard class
The bard is a wanderer, one that plays music at taverns to earn money, win friends and influence people. His wanderings gave him some basic knowledge on several different abilities and some knowledge on ancient legends, myths, magic, and legendary items.
The bard class starts the game with all musical instruments already identified. He also knows all the enchantment spellbooks, since they’re the base for his magic songs (he doesn’t know the spells though), and knows several random magic objects that he heard in legends.
The bonus spell is sleep. Bards gain spell resistance at level 5 and stealth at 10.
The radius of the area around you where the monsters can be influenced by you songs grows with your experience level and musicalize skill.
|Lullaby||Sleep||4||wooden flute||wooden harp|
|Cacophony||Confuse Monster||5||tooled horn||leather drum|
|Drowsiness||Slow Monster||5||wooden harp||wooden flute|
|Despair||Cause Fear||6||leather drum||tooled horn|
|Friendship||Charm Monster||6||wooden flute||wooden harp|
|Inspire Courage||Cause Fear||6||leather drum||bugle|
The above table summarizes the songs. The effects are similar to the original spell effects, with a couple differences: the Friendship song causes temporary tameness, and the Inspire Courage song, which causes pets to be more aggressive and do more damage.
Every song can be played by two different instruments, but the ‘preferred’ one can play it better (less chance of monsters resisting it). With the ‘musicalize spell’ skill at unskilled or basic, songs can affect you pets too, usually by a smalled amount. At skilled and expert your pets aren’t affected anymore. The exception is of course the Inspire Courage song, which affects exclusively pets. Some small side effects can apply for some songs.
- Wooden harp or wooden flute (50% chance each)
- +1 leather cloak
- 3 apples
- 3 oranges
- 2d5 potions of booze
- tin whistle (85% chance) or a bell (15%)
Supposedly the bard brought the booze from the last tavern he visited before the dungeon, and some fruits to eat along the way.
Maximum skill levels are listed below. Bards start with basic skill in musicalize spells and bare handed combat.
- Short sword
- Escape spells
- Enchantment spells
- Dart (much time spent in taverns)
- Bare handed combat (same as above 🙂 )
- Musicalize spells
If played normally as any other Nethack class, the bard feels like a weaker tourist. He can do combat and even some magic, but his starting attributes make this a little difficult. Also, he can reach basic and skilled in a couple weapon skills, but that isn’t enough. That said, one thing you can do from the start is collecting daggers, wielding one as a weapon and throwing the others. And, obviously, practice your musicalize skill at every opportunity; try to get it up to skilled the faster you can.
Just because you have a 0% failure chance of playing a song, it doesn’t mean that every monster in range will be affected by it! Different monsters can respond differently to the same music. Some cannot be affected at all by certain musics, some have a higher or lower resistance to certain types of music, and even to the instrument being used.
Other nice options for weapons include short swords and unicorn horns (up to basic only). Note that the bard can reach skilled or expert in some throwing skills, so that can also help surviving.
The bard starts the game with several potions of booze. The experienced Nethacker will notice those potions will be useful for an unarmed low level dungeoneer. Similarly, the starting whistle or bell may have other uses besides calling pets.
S P O I L E R S
Spoilers below, proceed at your discretion.
|Lullaby||Sleep||4||sleep||+3, pets+2||+6||+9||wooden flute||wooden harp|
|Cacophony||Confuse Monster||5||confuse||pets too||monsters||monsters||tooled horn||leather drum|
|Drowsiness||Slow Monster||5||movement||-6||-9||-11||wooden harp||wooden flute|
|Despair||Cause Fear||6||monflee||+3||+6||+9||leather drum||tooled horn|
|Friendship||Charm Monster||6||temp.tame||+2||+4||+6||wooden flute||wooden harp|
|Inspire Courage||Cause Fear||6||pet courage||+1, mflee/2||+2, mflee/4||+3, mflee=0||leather drum||bugle|
The above table summarizes the songs and their effects. The numbers show, for every turn the song is being played, the amount of effect applied to monsters, depend on the musicalize skill. Also, every song can be played by two different instruments, but the ‘preferred’ one can play it better (less chance of monsters resisting it).
The numbers for the songs Lullaby, Despair, and Friendship mean how much more turns the effect will persist for each turn of played song (including the same turn). The Confusion song just confuses monsters the usual way. Drowsiness decreases the monster’s movement counter by the number (a full movement is 12, the normal monster speed). The Inspire Courage song increases a pet counter that’s used to calculate the chance a pet will attack or not a monster, thus making it more likely to ignore level difference or low hp. Also if the pet is fleeing this song decreases the fleeing time by the indicated value.
The chance of playing succesfully a music depends on just a few factors, and gets higher as you gets more skilled in musicalize. However, in order to the music to actually influence monsters, it must overcome the monsters ability to resist its effects. This resistance is calculated in a more complex way than the normal resistance to magic spells, and there are several factores involved.
To see exactly what are the factors involved and how they’re calculated, the best reference is the source code itself; check the function resist_song() in music.c. What follows is a resumed list of all the relevant factors and their effects, without the math details.
- The base chance your music will affect a monster is calculated on your musicalize skill, dexterity and charisma. Charisma weighs far more than dexterity here.
- Blessed instruments have a small bonus while cursed ones a small penalty, but very small. A blessed instrument may be more useful in lower levels than in the endgame.
- If you can’t sing (polymorphed in a monster that can’t speak), your base chance is halved.
- The base chance a monster will resist is based on its level. Golems start with a very high chance of resisting.
- The sleep and tame songs are considered ‘peaceful’ songs, and the following bonus and penalties apply:
- Very small bonus if monster is a beast (animal) or domestic. Reasoning: music calm the beasts.
- Small bonus if the race is considered peaceful or the same race as you. Reasoning: they’re easier to influence.
- Small penalty if monster is mindless or likes magic.
- Undead don’t care about ‘peaceful’ melodies and so receive a high resistance bonus. Demons also receive a resistance bonus for same reason.
- Small penalty if monster race is considered hostile.
- Rodents will resist less if you’r playing a flute. Reasoning: the Pied Piper of Hamelin.
- Snakes and nagas will resist less if you’r playing a flute. Reasoning: snake enchanters use flutes.
- Angels will resist less if you’re playing an harp. (I doubt this will have any use, but still.)
- Anyone will resist less if you’re using the artifact Lyre of Orpheus, based on your musicalize skill.
- Injured monsters will resist more to peaceful songs. The lower their hp, the more they will resist.
- Fear and confusion songs receive these bonus and penalties:
- Your chance to scare/confuse is halved if you’re playing the Lyre of Orpheus.
- Undeads and demons like scary/dissonant music, demons even more so.
- If a monster can’t see you it will be scared/confused easier
- But if it do see you, it will be harder to confuse it (not scare)
- The ‘encourage pets’ song receives the following bonus:
- If the pet is of a hostile race, or always hostile
- If it is considered ‘mercenary’
- The more you’re injured, the higher your chance to influence your pets with this song
- After these calculations, the monster’s chance to resist is adjusted to 1 if it became less than 1
- And your chance to affect it is halved if you are not using the preferred instrument for the song
If the final chance of affecting the monster is greater than or equal to the monster’s chance of resisting, then the song effects are applied. Messages indicating the monster was or not affected can be displayed; some of these messages may not be always displayed for every monster to avoid spamming, even when the monster is affected.
Other song effects
Besides the normal effects, the following side effects can occur:
- Fear song
- Undeads and demons affected by the fear song have a chance of being pacified (based on the value returned by resist_song()). Otherwise, they will just pause for the duration of the music, to hear it.
- But demon lords will get angry.
Quest & Artifact
Your quest leader is Pindar, renowed bard and leader of the Conservatorium, where young bards study. You must get the Lyre of Orpheus back from a siren named Aglaope, who lives in the island of Anthemoessa.
Aglaope, a nymph.
- Level: 17
- Speed: 9
- AC: -4
- MR: 90
- Attacks: cast spell, steal, cast spell
The Lyre of Orpheus (neutral wooden harp)
- Carried: magic resistance
- Applied: works as a normal wooden harp, but has a bonus success chance when playing the sleep or tame monster songs. It is also able to play any magic song, even the ones that aren’t playable by a harp (but with a penalty for the fear, confusion, and inspire courage songs).
- Invoked: tame monsters as if reading an uncursed scroll of taming.
A new type of shop was created, the music shop. 3% of the generated shops will be of this type. It sells wooden flutes, wooden harps, leather drums, and with a very small chance, magic harps and magic flutes. Shopkeeper names for this shop are common brazilian names.
Orcs can be generated carrying a leather drum; orc captains have a higher chance. Elven kings and elven lords have a chance of being generated with a wooden flute or a wooden harp.
Monsters that are temporarily tame by the Friendship song are described as ‘friendly’ instead of ‘tame’ when examined with the command ‘;’.
Ideas that didn’t make the cut
Songs based on spells from schools other than enchantment, such as Shatter Objects based on Force Bolt, or songs not based on spells, like Shout, Silence and Ventriloquism. These were inspired by the D&D Bard. Including them in the patch would IMO change the game too much. I tried to keep the original idea of the bard being a class that can inspire others through music, and music being another way to cast spells, so the enchantment spells were a good fit for this. The other spell schools could give some very cool effects but would change the game too much.
The musicalize spell skill allowing for magic instruments to be used in different ways than the original. For example, using the fire horn to summon a fire elemental, at the cost of one charge. IMO this sounds a bit too overpowered. Leave the magic instruments the way they are.
The bard quest artifact would warn of pets. This way you would always see where your pets are on the map. This is feasible but at the cost of a kludge in the already existing code, and I’m avoiding unnecessary kludges.