Hi all,
I'm a long-time player of Angband (about 7 years now), and have always been thinking about implementing a few changes that I'd like. The problem is, I have NO idea how to go about writing a variant. I've coded quite a bit in C and C++ before, but mostly on Unix, and never really looked at the Angband code.
What I'm wondering is this: Is there a Quick-start guide to writing variants somewhere out there? I.e. Overview of how maps are generated, how monsters are generated, etc. Variable names, player stats, etc. Common coding pitfalls, and mega-hacks we should be aware of, etc.
In particular, I'm looking to make a variant based on Hengband. Suggestions on what improvements people would like to see are welcome! (Email me at dzhang@dna.caltech.edu).
A brief list of ideas:
2 new schools of Magic: Order and Wild.
Order magic has NO variability in the spell effect (i.e. fixed duration, fixed damage, etc), and furthermore, failed castings do not consume SP.
Wild magic, on the other hand, has maximum variance (always 1dN, damage/duration). Furthermore, the SP cost of casting Wild Magic varies randomly between 1 and X, the listed price for casting (so listed SP costs will be roughly double). And Wild Magic will have a fail rate modified by 0.05 + 0.9*Y, where Y is the fail rate as computed by INT and level.
Items:
New weapon Ego: (Crystalline)
Weapon always rolls max damage on dice. Weapon never deals crits. Grants Resist Chaos.
New ring: Ring of Evocation (+X).
Spell damage is multiplied by (1+X/20). These will have the same rarity and p-val distribution as Rings of Speed. Furthermore, they will only function on the right Finger.
New ego ring: Ring of Evocation of the Gish (+X).
Increase spell damage as in Ring of Evocation. Furthermore, it acts as a Ring of Damage (+X) by increasing melee damage of every attack by +X.
Monsters:
Change HP to be represented by longs. Come on, we're not lacking memory in this day and age. Increase HP of bosses as necessary.
Mutations:
Max (x/10) mutations, where x is character level. For Beastmen, this is doubled to (x/5). Shop that removes mutations will be closed. Mutations from Chaos attacks will not replace existing mutations, but !oPolymorph and Polymorph Self (spell) will.
More nasty mutations:
Slurred speech: Your spell fail rates increase by 2%, and your minimum spell failure rate increases by 2%.
Frozen breath: You have a 2% chance of ruining potions. Breath cold. Counters fiery breath.
Fiery breath: You have a 2% chance of ruining scrolls. Breath fire. Counters frozen breath.
Uncontrollable spending: You have a 20% chance every time you visit a store of buying a random item.
Lost in thought. You have a 1 in 10,000 chance every round of being paralyzed for 1d13 rounds. If you have FA, this is reduced to 1d3 rounds. If you make a saving throw vs. DC 125, you are not paralyzed.
Classes:
Wrestler: Uses techniques to throw monsters around while damaging them.
Gish: 4 max blows, 1 school of magic (cannot change). Can achieve 0% fail, access all spells from school. Pick from Sorcery, Order, Wild, Craft, Life, and Death.
Mindbender: Unique class with spell-like abilities that Stun, Sleep, Confuse, Charm monsters powerfully, so that even high level uniques have chance of being affected.
Dungeon depth:
I'm also thinking of making the dungeon deeper, with more than one "bosses that need to be killed to go any lower." Chronicles of Amber provide many more possible uniques, like Random (new king of Amber), Merlin (new king of Chaos), etc.
Thoughts? Chris, Elliott, Victor? Come on, I know you guys visit these forums occasionally ;-)
I'm a long-time player of Angband (about 7 years now), and have always been thinking about implementing a few changes that I'd like. The problem is, I have NO idea how to go about writing a variant. I've coded quite a bit in C and C++ before, but mostly on Unix, and never really looked at the Angband code.
What I'm wondering is this: Is there a Quick-start guide to writing variants somewhere out there? I.e. Overview of how maps are generated, how monsters are generated, etc. Variable names, player stats, etc. Common coding pitfalls, and mega-hacks we should be aware of, etc.
In particular, I'm looking to make a variant based on Hengband. Suggestions on what improvements people would like to see are welcome! (Email me at dzhang@dna.caltech.edu).
A brief list of ideas:
2 new schools of Magic: Order and Wild.
Order magic has NO variability in the spell effect (i.e. fixed duration, fixed damage, etc), and furthermore, failed castings do not consume SP.
Wild magic, on the other hand, has maximum variance (always 1dN, damage/duration). Furthermore, the SP cost of casting Wild Magic varies randomly between 1 and X, the listed price for casting (so listed SP costs will be roughly double). And Wild Magic will have a fail rate modified by 0.05 + 0.9*Y, where Y is the fail rate as computed by INT and level.
Items:
New weapon Ego: (Crystalline)
Weapon always rolls max damage on dice. Weapon never deals crits. Grants Resist Chaos.
New ring: Ring of Evocation (+X).
Spell damage is multiplied by (1+X/20). These will have the same rarity and p-val distribution as Rings of Speed. Furthermore, they will only function on the right Finger.
New ego ring: Ring of Evocation of the Gish (+X).
Increase spell damage as in Ring of Evocation. Furthermore, it acts as a Ring of Damage (+X) by increasing melee damage of every attack by +X.
Monsters:
Change HP to be represented by longs. Come on, we're not lacking memory in this day and age. Increase HP of bosses as necessary.
Mutations:
Max (x/10) mutations, where x is character level. For Beastmen, this is doubled to (x/5). Shop that removes mutations will be closed. Mutations from Chaos attacks will not replace existing mutations, but !oPolymorph and Polymorph Self (spell) will.
More nasty mutations:
Slurred speech: Your spell fail rates increase by 2%, and your minimum spell failure rate increases by 2%.
Frozen breath: You have a 2% chance of ruining potions. Breath cold. Counters fiery breath.
Fiery breath: You have a 2% chance of ruining scrolls. Breath fire. Counters frozen breath.
Uncontrollable spending: You have a 20% chance every time you visit a store of buying a random item.
Lost in thought. You have a 1 in 10,000 chance every round of being paralyzed for 1d13 rounds. If you have FA, this is reduced to 1d3 rounds. If you make a saving throw vs. DC 125, you are not paralyzed.
Classes:
Wrestler: Uses techniques to throw monsters around while damaging them.
Gish: 4 max blows, 1 school of magic (cannot change). Can achieve 0% fail, access all spells from school. Pick from Sorcery, Order, Wild, Craft, Life, and Death.
Mindbender: Unique class with spell-like abilities that Stun, Sleep, Confuse, Charm monsters powerfully, so that even high level uniques have chance of being affected.
Dungeon depth:
I'm also thinking of making the dungeon deeper, with more than one "bosses that need to be killed to go any lower." Chronicles of Amber provide many more possible uniques, like Random (new king of Amber), Merlin (new king of Chaos), etc.
Thoughts? Chris, Elliott, Victor? Come on, I know you guys visit these forums occasionally ;-)
Comment