summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/edit/e_info.txt12
-rw-r--r--lib/edit/k_info.txt182
-rw-r--r--lib/edit/p_info.txt13
-rw-r--r--lib/edit/s_info.txt8
-rw-r--r--lib/help/birth.txt3
-rw-r--r--lib/help/c_geoman.txt1
-rw-r--r--lib/help/c_mage.txt1
-rw-r--r--lib/help/c_necro.txt1
-rw-r--r--lib/help/c_runecr.txt110
-rw-r--r--lib/help/c_sorcer.txt1
-rw-r--r--lib/help/c_thaum.txt1
-rw-r--r--lib/help/c_warper.txt1
-rw-r--r--lib/help/index.txt5
-rw-r--r--lib/help/magic.txt5
-rw-r--r--lib/help/skills.txt12
-rw-r--r--lib/help/tome_faq.txt7
-rw-r--r--lib/mods/theme/edit/e_info.txt12
-rw-r--r--lib/mods/theme/edit/k_info.txt220
-rw-r--r--lib/mods/theme/edit/p_info.txt15
-rw-r--r--lib/mods/theme/edit/s_info.txt8
-rw-r--r--lib/mods/theme/edit/st_info.txt13
-rw-r--r--lib/mods/theme/edit/t_edoras.txt7
-rw-r--r--lib/mods/theme/edit/t_pelar.txt7
-rw-r--r--lib/mods/theme/help/birth.txt5
-rw-r--r--lib/mods/theme/help/c_geoman.txt1
-rw-r--r--lib/mods/theme/help/c_mage.txt1
-rw-r--r--lib/mods/theme/help/c_necro.txt1
-rw-r--r--lib/mods/theme/help/c_runecr.txt110
-rw-r--r--lib/mods/theme/help/c_sorcer.txt1
-rw-r--r--lib/mods/theme/help/c_thaum.txt1
-rw-r--r--lib/mods/theme/help/c_warper.txt1
-rw-r--r--lib/mods/theme/help/index.txt6
-rw-r--r--lib/mods/theme/help/magic.txt5
-rw-r--r--lib/mods/theme/help/skills.txt12
-rw-r--r--lib/mods/theme/help/tome_faq.txt7
-rw-r--r--src/cmd6.cc106
-rw-r--r--src/cmd7.cc1027
-rw-r--r--src/cmd7.hpp3
-rw-r--r--src/defines.h17
-rw-r--r--src/dungeon.cc10
-rw-r--r--src/help.cc41
-rw-r--r--src/loadsave.cc12
-rw-r--r--src/object1.cc65
-rw-r--r--src/object1.hpp2
-rw-r--r--src/object2.cc61
-rw-r--r--src/player_type.hpp6
-rw-r--r--src/q_fireprof.cc32
-rw-r--r--src/rune_spell.hpp15
-rw-r--r--src/rune_spell_fwd.hpp3
-rw-r--r--src/skills.cc3
-rw-r--r--src/skills_defs.hpp1
-rw-r--r--src/store.cc10
-rw-r--r--src/tables.cc10
53 files changed, 46 insertions, 2174 deletions
diff --git a/lib/edit/e_info.txt b/lib/edit/e_info.txt
index 8174e41b..165d4771 100644
--- a/lib/edit/e_info.txt
+++ b/lib/edit/e_info.txt
@@ -98,18 +98,6 @@ F:SPELL
R:50
F:PVAL_M2
-N:4:of Spell
-T:6:0:255
-X:A:24:60
-W:0:2:8:40000
-C:0:0:0:0
-R:100
-F:ACTIVATE
-F:IGNORE_ACID
-F:IGNORE_COLD
-F:IGNORE_ELEC
-F:IGNORE_FIRE
-
### Body Armor ###
N:5:of Resist Acid
diff --git a/lib/edit/k_info.txt b/lib/edit/k_info.txt
index 8a3a37c7..1f97827b 100644
--- a/lib/edit/k_info.txt
+++ b/lib/edit/k_info.txt
@@ -5580,175 +5580,6 @@ A:30/1:45/1:55/1
D:This scroll is inscribed with a ritual which allows you to discern what fate holds in store for
D:you.
-### Here comes the Runes ###
-
-N:679:Self
-G:?:b
-I:105:0:0
-W:3:5:2:40
-A:3/1
-P:0:1d1:0:0:0
-
-N:680:Ray
-G:?:b
-I:105:2:0
-W:10:5:2:300
-A:10/1
-P:0:1d1:0:0:0
-F:IGNORE_COLD
-F:IGNORE_ELEC
-
-N:681:Sphere
-G:?:b
-I:105:3:0
-W:15:5:2:1000
-A:15/1
-P:0:1d1:0:0:0
-F:IGNORE_COLD
-F:IGNORE_ELEC
-F:IGNORE_FIRE
-
-N:682:Knowledge
-G:?:b
-I:104:91:0
-W:6:5:2:200
-A:6/1
-P:0:1d1:0:0:0
-
-N:683:Life
-G:?:D
-I:104:53:0
-W:3:5:2:200
-A:3/1
-P:0:1d1:0:0:0
-
-N:684:Fire
-G:?:r
-I:104:5:0
-W:10:5:2:300
-A:10/1
-P:0:1d1:0:0:0
-F:IGNORE_FIRE
-
-N:685:Cold
-G:?:b
-I:104:4:0
-W:12:5:2:300
-A:12/1
-P:0:1d1:0:0:0
-F:IGNORE_COLD
-
-N:686:Lightning
-G:?:W
-I:104:1:0
-W:13:5:2:300
-A:13/1
-P:0:1d1:0:0:0
-F:IGNORE_ELEC
-
-N:687:Acid
-G:?:B
-I:104:3:0
-W:16:5:2:300
-A:16/1
-P:0:1d1:0:0:0
-F:IGNORE_ACID
-
-N:688:Element
-G:?:g
-I:104:10:0
-W:23:5:2:1000
-A:23/1
-P:0:1d1:0:0:0
-F:IGNORE_ACID
-F:IGNORE_COLD
-F:IGNORE_ELEC
-F:IGNORE_FIRE
-
-N:689:Chaos
-G:?:v
-I:104:30:0
-W:26:5:2:2000
-A:26/1
-P:0:1d1:0:0:0
-F:ATTR_MULTI
-F:IGNORE_ACID
-F:IGNORE_COLD
-F:IGNORE_ELEC
-F:IGNORE_FIRE
-
-N:690:Mind
-G:?:D
-I:104:85:0
-W:19:5:2:3000
-A:19/1
-P:0:1d1:0:0:0
-F:IGNORE_ELEC
-
-N:691:Holding
-G:?:B
-I:104:75:0
-W:5:5:2:500
-A:5/1
-P:0:1d1:0:0:0
-F:IGNORE_ACID
-
-N:692:Arrow
-G:?:b
-I:105:1:0
-W:6:5:2:100
-A:6/1
-P:0:1d1:0:0:0
-F:IGNORE_ELEC
-
-N:693:Power Surge
-G:?:b
-I:105:4:0
-W:50:5:2:5000
-A:50/1
-P:0:1d1:0:0:0
-F:IGNORE_ACID
-F:IGNORE_COLD
-F:IGNORE_ELEC
-F:IGNORE_FIRE
-
-N:694:Armageddon
-G:?:b
-I:105:5:0
-W:30:5:2:4000
-A:30/1
-P:0:1d1:0:0:0
-F:IGNORE_ACID
-F:IGNORE_COLD
-F:IGNORE_ELEC
-F:IGNORE_FIRE
-
-N:695:Gravity
-G:?:G
-I:104:35:0
-W:16:5:2:300
-A:16/1
-P:0:1d1:0:0:0
-F:IGNORE_ACID
-
-# Now, the rest of the runes...
-
-N:697:Undeath
-G:?:G
-I:104:92:0
-W:35:5:2:1000
-A:35/1
-P:0:1d1:0:0:0
-F:IGNORE_ACID
-
-N:698:Protection
-G:?:G
-I:104:74:0
-W:45:5:2:1500
-A:45/1
-P:0:1d1:0:0:0
-F:IGNORE_ACID
-
# XXX
# The Ring of Precognition (now a k_info.txt artifact)
@@ -6431,19 +6262,6 @@ F:SLAY_ANIMAL
D:A huge axe, the sort used for slaughtering animals, this weapon is unusually deadly against
D:natural creatures.
-N:806:& Runestone~
-G:?:v
-I:105:255:0
-W:10:5:2:300
-A:10/3:20/2:30/1:60/1
-P:0:1d1:0:0:0
-F:IGNORE_ACID
-F:IGNORE_COLD
-F:IGNORE_ELEC
-F:IGNORE_FIRE
-D:A small oval stone. One surface is flat, as if something ought to be scratched or inscribed into
-D:it.
-
N:807:& Fortune cookie~
G:,:U
I:80:42:500
diff --git a/lib/edit/p_info.txt b/lib/edit/p_info.txt
index dd78db25..2846854f 100644
--- a/lib/edit/p_info.txt
+++ b/lib/edit/p_info.txt
@@ -207,7 +207,6 @@ C:k:+0:+700:Nature
C:k:+0:+700:Meta
C:k:+0:+700:Mind
C:k:+0:+700:Necromancy
-C:k:+0:+700:Runecraft
C:k:+0:+700:Thaumaturgy
C:k:+1000:+550:Spirituality
C:k:+1000:+200:Combat
@@ -284,7 +283,6 @@ C:a:k:+0:+300:Divination
C:a:k:+0:+300:Meta
C:a:k:+0:+300:Mind
C:a:k:+0:+200:Necromancy
-C:a:k:+0:+200:Runecraft
C:a:k:+0:+200:Thaumaturgy
C:a:O:36:2:1d1
C:a:O:111:50:1d1
@@ -306,17 +304,6 @@ C:a:O:23:4:1d1
C:a:O:111:50:1d1
C:a:b:25:Undead Form
-C:a:N:Runecrafter
-C:a:D:Runecrafters use the runes found in Middle-earth to create
-C:a:D:finely tuned spells for each specific situation.
-C:a:k:+1000:+50:Magic
-C:a:k:+1000:+300:Runecraft
-C:a:k:+0:-100:Weaponmastery
-C:a:O:111:50:1d1
-C:a:O:105:1:1d1
-C:a:O:104:5:1d1
-C:a:O:23:4:1d1
-
C:a:N:Thaumaturgist
C:a:D:Thaumaturgy spells come from within and are different for each character.
C:a:D:Since attack is the best defence, all their spells are offensive.
diff --git a/lib/edit/s_info.txt b/lib/edit/s_info.txt
index d708f177..9ad2eee7 100644
--- a/lib/edit/s_info.txt
+++ b/lib/edit/s_info.txt
@@ -112,11 +112,6 @@ A:7:Use Necromancy
F:RANDOM_GAIN
G:60
-N:34:Runecraft
-D:Ability to combine magic runes to create your own spells
-D:Runespells use the dexterity stat
-A:9:Use Runespells
-
N:43:Thaumaturgy
D:Ability to gain and cast innate spells
D:Spells use the intelligence stat
@@ -159,7 +154,6 @@ f:Mind:Magic%10
f:Udun:Magic%10
f:Demonology:Magic%10
f:Necromancy:Magic%4
-f:Runecraft:Magic%12
f:Thaumaturgy:Magic%6
@@ -328,7 +322,6 @@ E:Nature:Antimagic
E:Udun:Antimagic
E:Sorcery:Antimagic
E:Demonology:Antimagic
-E:Runecraft:Antimagic
E:Necromancy:Antimagic
E:Mindcraft:Antimagic
E:Music:Antimagic
@@ -435,7 +428,6 @@ T:Magic:Nature
T:Magic:Udun
T:Magic:Demonology
T:Magic:Necromancy
-T:Magic:Runecraft
T:Magic:Thaumaturgy
T:Geomancy:Fire
diff --git a/lib/help/birth.txt b/lib/help/birth.txt
index 990b5eba..89b04d53 100644
--- a/lib/help/birth.txt
+++ b/lib/help/birth.txt
@@ -241,7 +241,7 @@ or rogue. Spell casting generally requires a more experienced player that is
familiar with survival techniques.
*****c_mage.txt*0[Mage] *****c_rogue.txt*0[Rogue]
- *****c_archer.txt*0[Archer] *****c_mimic.txt*0[Mimic] *****c_runecr.txt*0[Runecrafter]
+ *****c_archer.txt*0[Archer] *****c_mimic.txt*0[Mimic]
*****c_assass.txt*0[Assassin] *****c_mindcr.txt*0[Mindcrafter] *****c_sorcer.txt*0[Sorceror]
*****c_axemas.txt*0[Axemaster] *****c_monk.txt*0[Monk] *****c_summon.txt*0[Summoner]
*****c_bard.txt*0[Bard] *****c_necro.txt*0[Necromancer] *****c_swordm.txt*0[Swordmaster]
@@ -507,7 +507,6 @@ are listed in the following table.
Geomancer -5 +3 0 +1 -2 +1
Mage -5 +3 0 +1 -2 +1
Necromancer -5 +3 0 +1 -2 +1
- Runecrafter -5 +3 0 +1 -2 +1
Sorceror -5 +3 0 +1 -2 +1
Thaumaturgist -5 +3 0 +1 -2 +1
Warper -5 +3 0 +1 -2 +1
diff --git a/lib/help/c_geoman.txt b/lib/help/c_geoman.txt
index 47855875..ba8eaa66 100644
--- a/lib/help/c_geoman.txt
+++ b/lib/help/c_geoman.txt
@@ -43,7 +43,6 @@ Magic 1.000 [0.900]
Mind 0.000 [0.700]
Nature 0.000 [0.700]
Necromancy 0.000 [0.700]
- Runecraft 0.000 [0.700]
Thaumaturgy 0.000 [0.700]
Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
diff --git a/lib/help/c_mage.txt b/lib/help/c_mage.txt
index 949d3bcc..9bfd6a3c 100644
--- a/lib/help/c_mage.txt
+++ b/lib/help/c_mage.txt
@@ -48,7 +48,6 @@ Magic 1.000 [0.900]
Mind 0.000 [0.900]
Nature 0.000 [0.900]
Necromancy 0.000 [0.700]
- Runecraft 0.000 [0.700]
Thaumaturgy 0.000 [0.700]
Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
diff --git a/lib/help/c_necro.txt b/lib/help/c_necro.txt
index f3a5ad2c..c4b05e3c 100644
--- a/lib/help/c_necro.txt
+++ b/lib/help/c_necro.txt
@@ -42,7 +42,6 @@ Magic 1.000 [0.900]
Mind 0.000 [0.900]
Nature 0.000 [0.500]
Necromancy 1.000 [1.000]
- Runecraft 0.000 [0.700]
Thaumaturgy 0.000 [0.700]
Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
diff --git a/lib/help/c_runecr.txt b/lib/help/c_runecr.txt
deleted file mode 100644
index 8388eff9..00000000
--- a/lib/help/c_runecr.txt
+++ /dev/null
@@ -1,110 +0,0 @@
-~~~~~01|Runecrafter
-~~~~~02|Classes|Runecrafter
-#####R=== Runecrafters ===
-
-#####GDescription
-Instead of using spellbooks like the other spellcasters they instead
-use mystic runes. To cast a spell they select a primary rune of the
-elements (fire, cold, etc.) and they also choose a set of secondary runes,
-which shape the effect of the first one. The secondary runes include
-Self, Arrow, Ray, ... and Armageddon. After that they chose the amount
-of mana to use and the spell is cast! But the more secondary runes they
-chose the more mana is used to cast the spell. They also are bad
-fighters, but if they concentrate all their mana in one spell
-(especially with a mage staff of mana) they could kill nearly anything.
-
-#####GStarting Stat Modifiers
-Strength -5
-Intelligence +3
-Wisdom +0
-Dexterity +1
-Constitution -2
-Charisma +1
-Hit Die +d0
-Spell Points +50%
-Exp Penalty 30%
-
-#####GStarting Skills:
-#####BSkill Start Level Skill Point Gains
-Combat 1.000 [0.200]
- Weaponmastery 0.700 [0.400]
-Sneakiness 1.000 [0.900]
- Stealth 0.000 [0.400]
-Magic 2.000 [0.950]
- Magic-Device 1.000 [1.200]
- Spell-power 0.000 [0.600]
- Mana 1.000 [0.600]
- Geomancy
- Fire 0.000 [0.700]
- Water 0.000 [0.700]
- Air 0.000 [0.700]
- Earth 0.000 [0.700]
- Meta 0.000 [0.700]
- Conveyance 0.000 [0.700]
- Divination 0.000 [0.700]
- Temporal 0.000 [0.700]
- Mind 0.000 [0.700]
- Nature 0.000 [0.700]
- Necromancy 0.000 [0.700]
- Runecraft 1.000 [1.000]
- Thaumaturgy 0.000 [0.700]
-Spirituality 1.000 [0.550]
- Prayer 0.000 [0.500]
-Monster-lore 0.000 [0.500]
-
-*A Runecrafter cannot learn the Geomancy skill, but it is shown in his skill
-screen because the elemental schools are sub-skills of it.
-
-#####GInnate Abilities:
-#####BAbility Character level
-Perfect casting 1
-
-~~~~~03|Runecrafter|Runecrafter powers
-~~~~~04|Skills|Runecrafting - Runecrafter powers
-#####GRune Magic
-Runecrafters combine runes using the 'm' command. They first select a
-rune that controls magic type, then apply one or more runes to fine-tune
-effects, (pressing ESC when done), and then input the amount of mana
-they wish to expend on the spell.
-
-Runecrafters can cast the spells from their runes in several ways:
-1. On-the-fly by combining runes when they need them.
-2. Memorise rune combinations for quick use when needed (and they don't
- need to be able to see then!), and then later cast from memory.
-3. Carving them into a Runestone, then using the Runestone later (takes
- less mana, but they have to be able to see).
-
-[[[[[BSpell Types:]
-(Some kinds are not listed, and are left for the reader to discover...)
- Knowledge: Identify all objects in affected grids, Self-knowledge
- if Self rune is used.
- Life: Heals monsters in affected grids, heals player if Self rune
- is used.
- Fire, Cold, Lightning, Acid: Casts magics of that element.
- Elements: Irresistible damage.
- Mind: A mind blast that badly effects intelligent monsters.
- Temporary ESP if Self rune is used.
- Gravity: A gravity spell that both does damage and whisks affected
- creatures around.
-
-[[[[[BSpell Effects] (all are listed):
- Self: Effects the caster. This rune can be used with any other;
- if used alone, only the caster's grid is affected.
- Arrow: Spell will include a bolt effect. This allows aiming.
- Ray: Spell will include a beam effect. This allows aiming.
- Increases difficulty slightly.
- Sphere: Spell will end with a circular explosion. Increases
- difficulty a bit. Can be used alone, or with Self, Arrow, or
- Ray.
- Power Surge: Not currently recommended for use. Increases
- difficulty a lot.
- Armageddon: Hurls down meteors of the magical type in the vicinity
- of the caster. Increases difficulty noticeably, but can do a
- great deal of damage.
-
-#####GStarting Equipment
-A Runecrafter begins the game with:
- a Rune [Fire]
- a Rune [Arrow]
- a Dagger
-
diff --git a/lib/help/c_sorcer.txt b/lib/help/c_sorcer.txt
index 8a33184f..c2fbdbb0 100644
--- a/lib/help/c_sorcer.txt
+++ b/lib/help/c_sorcer.txt
@@ -48,7 +48,6 @@ Magic 1.000 [1.000]
Mind 0.000 [1.000]
Nature 0.000 [1.000]
Necromancy 0.000 [1.000]
- Runecraft 0.000 [0.900]
Thaumaturgy 0.000 [0.900]
Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
diff --git a/lib/help/c_thaum.txt b/lib/help/c_thaum.txt
index 653e84fa..2680a1c4 100644
--- a/lib/help/c_thaum.txt
+++ b/lib/help/c_thaum.txt
@@ -46,7 +46,6 @@ Magic 3.000 [0.950]
Mind 0.000 [0.700]
Nature 0.000 [0.700]
Necromancy 0.000 [0.700]
- Runecraft 0.000 [0.700]
Thaumaturgy 1.000 [1.000]
Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
diff --git a/lib/help/c_warper.txt b/lib/help/c_warper.txt
index 55d16be5..1c461049 100644
--- a/lib/help/c_warper.txt
+++ b/lib/help/c_warper.txt
@@ -41,7 +41,6 @@ Magic 1.000 [0.900]
Mind 0.000 [0.700]
Nature 0.000 [0.800]
Necromancy 0.000 [0.700]
- Runecraft 0.000 [0.700]
Thaumaturgy 0.000 [0.700]
Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
diff --git a/lib/help/index.txt b/lib/help/index.txt
index 5bf20d66..a22e26d5 100644
--- a/lib/help/index.txt
+++ b/lib/help/index.txt
@@ -106,7 +106,6 @@ Don't forget you can browse the help from the *****help.hlp*02[Main menu].
*****c_pr_man.txt*02[Priest - Manwe]
*****c_ranger.txt*02[Ranger]
*****c_rogue.txt*02[Rogue]
- *****c_runecr.txt*02[Runecrafter]
*****c_sorcer.txt*02[Sorceror]
*****birth.txt*77[Stat Bonuses]
*****c_summon.txt*02[Summoners]
@@ -399,8 +398,6 @@ Don't forget you can browse the help from the *****help.hlp*02[Main menu].
*****c_ranger.txt*01[Ranger]
*****c_rogue.txt*01[Rogue]
*****r_rohank.txt*01[RohanKnight]
- *****c_runecr.txt*01[Runecrafter]
- *****c_runecr.txt*03[Runecrafter powers]
*****tome_faq.txt*11[Runes]
~~~~~83
*****/Sindex.txt*83[S]
@@ -467,8 +464,6 @@ Don't forget you can browse the help from the *****help.hlp*02[Main menu].
*****skills.txt*45[Possession]
*****c_posses.txt*04[Possession - Possessor powers ]
*****skills.txt*39[Prayer]
- *****skills.txt*36[Runecraft]
- *****c_runecr.txt*04[Runecrafting - Runecrafter powers]
*****skills.txt*56[Screen]
*****skills.txt*09[Sling-mastery]
*****skills.txt*14[Sneakiness]
diff --git a/lib/help/magic.txt b/lib/help/magic.txt
index 14fa6570..1811be84 100644
--- a/lib/help/magic.txt
+++ b/lib/help/magic.txt
@@ -23,14 +23,13 @@ schools:
Other magical skills, generally being used primarily by characters of a
specific class, are:
- *****m_demono.txt*0[Demonology] *****m_necrom.txt*0[Necromancy] *****skills.txt*36[Runecraft]
+ *****m_demono.txt*0[Demonology] *****m_necrom.txt*0[Necromancy]
*****m_thaum.txt*0[Thaumaturgy] *****m_geoman.txt*0[Geomancy]
The *****m_demono.txt*0[Demonology] skill is primarily used by *****c_demono.txt*0[Demonologists] for their special
spells, whereas the *****m_necrom.txt*0[Necromancy] skill is used by *****c_necro.txt*0[Necromancers] for their own set
of special spells.
-The same goes for *****skills.txt*36[Runecraft], which is used by *****c_runecr.txt*0[Runecrafters] to allow use of more
-difficult runes or rune-combinations. *****m_thaum.txt*0[Thaumaturgy] gives you randomly chosen
+*****m_thaum.txt*0[Thaumaturgy] gives you randomly chosen
attack spells, and as such each game with it will be different. *****c_geoman.txt*0[Geomancers]
harness the powers of the elements using *****m_geoman.txt*0[Geomancy].
diff --git a/lib/help/skills.txt b/lib/help/skills.txt
index 32e9df04..a7d1ed36 100644
--- a/lib/help/skills.txt
+++ b/lib/help/skills.txt
@@ -63,8 +63,7 @@ gets the free points). For example, a skill point put into Weaponmastery
raises Combat by 0.5 skill points. This is actually multiplied by the skill
modifier that your character has in the Combat skill. For example, a
Swordmaster investing a skill point into Weaponmastery would have his Combat
-skill raised by 0.5 * [0.900] while a Runecrafter would have his Combat
-skill raised by 0.5 * [0.200].
+skill raised by 0.5 * [0.900].
As well as this, skills are grouped together in similar types. Looking under
the Combat skill, there are subtypes of Weaponmastery, Archery and Antimagic.
@@ -117,7 +116,7 @@ The skills are:
*****skills.txt*21[Magic] *****skills.txt*54[Magic-device] *****skills.txt*24[Mana] *****skills.txt*29[Meta]
*****skills.txt*47[Mimicry] *****skills.txt*33[Mind] *****skills.txt*41[Mindcraft] *****skills.txt*42[Monster-lore]
*****skills.txt*59[Music] *****skills.txt*34[Nature] *****skills.txt*35[Necromancy] *****skills.txt*07[Polearm-mastery]
- *****skills.txt*45[Possession] *****skills.txt*39[Prayer] *****skills.txt*36[Runecraft] *****skills.txt*09[Sling-mastery]
+ *****skills.txt*45[Possession] *****skills.txt*39[Prayer] *****skills.txt*09[Sling-mastery]
*****skills.txt*22[Spell-power] *****skills.txt*38[Spirituality] *****skills.txt*23[Sorcery] *****skills.txt*19[Stealing]
*****skills.txt*15[Stealth] *****skills.txt*53[Stunning-blows] *****skills.txt*43[Summoning] *****skills.txt*03[Sword-mastery]
*****skills.txt*46[Symbiosis] *****skills.txt*32[Temporal] *****skills.txt*37[Thaumaturgy] *****skills.txt*48[Udun]
@@ -305,7 +304,7 @@ ability.
Sub-skills include: Magic-device, Spell-power, Sorcery, Mana, Fire, Water, Air,
Earth, Meta, Conveyance, Divination, Temporal, Mind, Nature, Udun, Demonology,
-Necromancy, Runecraft, and Thaumaturgy.
+Necromancy, and Thaumaturgy.
~~~~~54|Skills|Magic-device
[[[[[BMagic-device]
This skill is a sub-skill of the Magic skill. It eases the use of magical
@@ -446,11 +445,6 @@ point on your Necromancy skill adds 0.04 bonus skill points to your Magic skill.
Investing in the Necromancy skill? You might be interested in the
*****ability.txt*08[Touch of Death] and *****ability.txt*12[Undead Form] abilities.
-~~~~~36|Skills|Runecraft
-[[[[[BRunecraft]
-This skill is a sub-skill of the Magic skill. This is the base skill of the
-Runecrafter class. Spending 1 skill point on your Runecraft skill adds 0.12
-bonus skill points to your Magic skill.
~~~~~37|Skills|Thaumaturgy
[[[[[BThaumaturgy]
This skill is a sub-skill of the Magic skill. Each level of *****m_thaum.txt*0[thaumaturgy] gives
diff --git a/lib/help/tome_faq.txt b/lib/help/tome_faq.txt
index 171b74d4..f8f03c36 100644
--- a/lib/help/tome_faq.txt
+++ b/lib/help/tome_faq.txt
@@ -101,13 +101,6 @@ activation can be something very nasty....
To activate it, use the normal Activation command, but when prompted for which
item to activate change to the backpack instead of wielded equipment.
-~~~~~11|Runes
-#####G------------------------------------------------------------------------------
-#####GQ: I keep coming across "runes". What are they?
-
-Runes are used to cast and store spells of varying types. *****c_runecr.txt*0[Runecrafters] are the
-class who are most proficient at using these. You can only use them if you
-have access to the *****skills.txt*36[Runecrafting] skill.
~~~~~12|Homes
#####G------------------------------------------------------------------------------
#####GQ: Where can I store all my equipment? Theere's not enough room in my
diff --git a/lib/mods/theme/edit/e_info.txt b/lib/mods/theme/edit/e_info.txt
index 6361c33e..03671cf8 100644
--- a/lib/mods/theme/edit/e_info.txt
+++ b/lib/mods/theme/edit/e_info.txt
@@ -98,18 +98,6 @@ F:SPELL
R:50
F:PVAL_M2
-N:4:of Spell
-T:6:0:99
-X:A:24:60
-W:0:2:8:40000
-C:0:0:0:0
-R:100
-F:ACTIVATE
-F:IGNORE_ACID
-F:IGNORE_COLD
-F:IGNORE_ELEC
-F:IGNORE_FIRE
-
### Body Armor ###
N:5:of Resist Acid
diff --git a/lib/mods/theme/edit/k_info.txt b/lib/mods/theme/edit/k_info.txt
index c15808dc..6cfe4dee 100644
--- a/lib/mods/theme/edit/k_info.txt
+++ b/lib/mods/theme/edit/k_info.txt
@@ -5694,213 +5694,6 @@ A:30/1:45/1:55/1
D:This scroll is inscribed with a ritual which allows you to discern what fate holds in store for
D:you.
-### Here comes the Runes ###
-
-N:679:Self
-G:?:b
-I:105:0:0
-W:3:5:2:40
-A:3/1
-P:0:1d1:0:0:0
-F:EASY_KNOW
-D:A rune signifying the caster.
-
-N:680:Ray
-G:?:b
-I:105:2:0
-W:10:5:2:300
-A:10/1
-P:0:1d1:0:0:0
-F:EASY_KNOW
-F:IGNORE_COLD
-F:IGNORE_ELEC
-D:A rune signifying a beam or ray.
-
-N:681:Sphere
-G:?:b
-I:105:3:0
-W:15:5:2:1000
-A:15/1
-P:0:1d1:0:0:0
-F:EASY_KNOW
-F:IGNORE_COLD
-F:IGNORE_ELEC
-F:IGNORE_FIRE
-D:A rune signifying a ball or sphere.
-
-N:682:Knowledge
-G:?:b
-I:104:91:0
-W:6:5:2:200
-A:6/1
-P:0:1d1:0:0:0
-F:EASY_KNOW
-D:A rune signifying knowledge.
-
-N:683:Life
-G:?:D
-I:104:53:0
-W:3:5:2:200
-A:3/1
-P:0:1d1:0:0:0
-F:EASY_KNOW
-D:A rune signifying life.
-
-N:684:Fire
-G:?:r
-I:104:5:0
-W:10:5:2:300
-A:10/1
-P:0:1d1:0:0:0
-F:EASY_KNOW
-F:IGNORE_FIRE
-D:A rune signifying flame.
-
-N:685:Cold
-G:?:b
-I:104:4:0
-W:12:5:2:300
-A:12/1
-P:0:1d1:0:0:0
-F:EASY_KNOW
-F:IGNORE_COLD
-D:A rune signifying cold.
-
-N:686:Lightning
-G:?:W
-I:104:1:0
-W:13:5:2:300
-A:13/1
-P:0:1d1:0:0:0
-F:EASY_KNOW
-F:IGNORE_ELEC
-D:A rune signifying a lightning beam.
-
-N:687:Acid
-G:?:B
-I:104:3:0
-W:16:5:2:300
-A:16/1
-P:0:1d1:0:0:0
-F:EASY_KNOW
-F:IGNORE_ACID
-D:A rune signifying acid.
-
-N:688:Element
-G:?:g
-I:104:10:0
-W:23:5:2:1000
-A:23/1
-P:0:1d1:0:0:0
-F:EASY_KNOW
-F:IGNORE_ACID
-F:IGNORE_COLD
-F:IGNORE_ELEC
-F:IGNORE_FIRE
-D:A rune signifying an element.
-
-N:689:Chaos
-G:?:v
-I:104:30:0
-W:26:5:2:2000
-A:26/1
-P:0:1d1:0:0:0
-F:ATTR_MULTI
-F:EASY_KNOW
-F:IGNORE_ACID
-F:IGNORE_COLD
-F:IGNORE_ELEC
-F:IGNORE_FIRE
-D:A rune signifying raw chaos.
-
-N:690:Mind
-G:?:D
-I:104:85:0
-W:19:5:2:3000
-A:19/1
-P:0:1d1:0:0:0
-F:EASY_KNOW
-F:IGNORE_ELEC
-D:A rune signifying the mind.
-
-N:691:Holding
-G:?:B
-I:104:75:0
-W:5:5:2:500
-A:5/1
-P:0:1d1:0:0:0
-F:EASY_KNOW
-F:IGNORE_ACID
-D:A rune signifying the action of holding, or sleep.
-
-N:692:Arrow
-G:?:b
-I:105:1:0
-W:6:5:2:100
-A:6/1
-P:0:1d1:0:0:0
-F:EASY_KNOW
-F:IGNORE_ELEC
-D:A rune signifying an arrow.
-
-N:693:Power Surge
-G:?:b
-I:105:4:0
-W:50:5:2:5000
-A:50/1
-P:0:1d1:0:0:0
-F:EASY_KNOW
-F:IGNORE_ACID
-F:IGNORE_COLD
-F:IGNORE_ELEC
-F:IGNORE_FIRE
-D:A rune signifying a powerful surge.
-
-N:694:Armageddon
-G:?:b
-I:105:5:0
-W:30:5:2:4000
-A:30/1
-P:0:1d1:0:0:0
-F:EASY_KNOW
-F:IGNORE_ACID
-F:IGNORE_COLD
-F:IGNORE_ELEC
-F:IGNORE_FIRE
-D:A rune signifying a powerful blast.
-
-N:695:Gravity
-G:?:G
-I:104:35:0
-W:16:5:2:300
-A:16/1
-P:0:1d1:0:0:0
-F:EASY_KNOW
-F:IGNORE_ACID
-D:A rune signifying the forces of gravity.
-
-# XXX
-
-N:697:Undeath
-G:?:G
-I:104:92:0
-W:35:5:2:1000
-A:35/1
-P:0:1d1:0:0:0
-F:EASY_KNOW
-F:IGNORE_ACID
-D:A rune signifying undeath.
-
-N:698:Protection
-G:?:G
-I:104:74:0
-W:45:5:2:1500
-A:45/1
-P:0:1d1:0:0:0
-F:EASY_KNOW
-F:IGNORE_ACID
-D:A rune signifying protection.
-
# XXX
# The Ring of Precognition (now a k_info.txt artifact)
@@ -6572,19 +6365,6 @@ F:SLAY_ANIMAL
D:A huge axe, the sort used for slaughtering animals, this weapon is unusually deadly against
D:natural creatures.
-N:806:& Runestone~
-G:?:v
-I:105:255:0
-W:10:5:2:300
-A:10/3:20/2:30/1:60/1
-P:0:1d1:0:0:0
-F:IGNORE_ACID
-F:IGNORE_COLD
-F:IGNORE_ELEC
-F:IGNORE_FIRE
-D:A small oval stone. One surface is flat, as if something ought to be scratched or inscribed into
-D:it.
-
N:807:& Fortune cookie~
G:,:U
I:80:42:500
diff --git a/lib/mods/theme/edit/p_info.txt b/lib/mods/theme/edit/p_info.txt
index dca8ff4b..18e638d3 100644
--- a/lib/mods/theme/edit/p_info.txt
+++ b/lib/mods/theme/edit/p_info.txt
@@ -232,7 +232,6 @@ C:k:+0:+700:Nature
C:k:+0:+700:Meta
C:k:+0:+700:Mind
C:k:+0:+700:Necromancy
-C:k:+0:+700:Runecraft
C:k:+0:+700:Thaumaturgy
C:k:+1000:+550:Spirituality
C:k:+1000:+200:Combat
@@ -309,7 +308,6 @@ C:a:k:+0:+300:Divination
C:a:k:+0:+300:Meta
C:a:k:+0:+300:Mind
C:a:k:+0:+200:Necromancy
-C:a:k:+0:+200:Runecraft
C:a:k:+0:+200:Thaumaturgy
C:a:O:36:2:1d1
C:a:O:111:50:1d1
@@ -331,17 +329,6 @@ C:a:O:23:4:1d1
C:a:O:111:50:1d1
C:a:b:25:Undead Form
-C:a:N:Runecrafter
-C:a:D:Runecrafters use the runes found in Middle-earth to create
-C:a:D:finely tuned spells for each specific situation.
-C:a:k:+1000:+50:Magic
-C:a:k:+1000:+300:Runecraft
-C:a:k:+0:-100:Weaponmastery
-C:a:O:111:50:1d1
-C:a:O:105:1:1d1
-C:a:O:104:5:1d1
-C:a:O:23:4:1d1
-
C:a:N:Thaumaturgist
C:a:D:Thaumaturgy spells come from within and are different for each character.
C:a:D:Since attack is the best defence, all their spells are offensive.
@@ -359,7 +346,6 @@ C:a:k:=0:=0:Nature
C:a:k:=0:=0:Meta
C:a:k:=0:=0:Mind
C:a:k:=0:=0:Necromancy
-C:a:k:=0:=0:Runecraft
C:a:k:+1000:+300:Thaumaturgy
C:a:k:+0:-100:Weaponmastery
C:a:k:+0:-150:Magic-Device
@@ -381,7 +367,6 @@ C:a:k:=0:=0:Nature
C:a:k:=0:=0:Temporal
C:a:k:=0:=0:Meta
C:a:k:=0:=0:Necromancy
-C:a:k:=0:=0:Runecraft
C:a:k:=0:=0:Thaumaturgy
C:a:k:+1000:+300:Divination
C:a:k:+1000:+300:Mind
diff --git a/lib/mods/theme/edit/s_info.txt b/lib/mods/theme/edit/s_info.txt
index b40e20b5..0384f153 100644
--- a/lib/mods/theme/edit/s_info.txt
+++ b/lib/mods/theme/edit/s_info.txt
@@ -113,11 +113,6 @@ A:7:Use Necromancy
F:RANDOM_GAIN
G:60
-N:34:Runecraft
-D:Ability to combine magic runes to create your own spells
-D:Runespells use the dexterity stat
-A:9:Use Runespells
-
N:43:Thaumaturgy
D:Ability to gain and cast innate spells
D:Spells use the intelligence stat
@@ -160,7 +155,6 @@ f:Mind:Magic%10
f:Udun:Magic%10
f:Demonology:Magic%10
f:Necromancy:Magic%4
-f:Runecraft:Magic%12
f:Thaumaturgy:Magic%6
@@ -330,7 +324,6 @@ E:Nature:Antimagic
E:Udun:Antimagic
E:Sorcery:Antimagic
E:Demonology:Antimagic
-E:Runecraft:Antimagic
E:Necromancy:Antimagic
E:Mindcraft:Antimagic
E:Music:Antimagic
@@ -437,7 +430,6 @@ T:Magic:Nature
T:Magic:Udun
T:Magic:Demonology
T:Magic:Necromancy
-T:Magic:Runecraft
T:Magic:Thaumaturgy
T:Geomancy:Fire
diff --git a/lib/mods/theme/edit/st_info.txt b/lib/mods/theme/edit/st_info.txt
index 6f8514b1..88303fff 100644
--- a/lib/mods/theme/edit/st_info.txt
+++ b/lib/mods/theme/edit/st_info.txt
@@ -897,19 +897,6 @@ O:186:187:188:189
G:*:w
W:24
-# Rune Shop
-N:62:Runic Magic Shop
-T:100:104:256
-T:100:104:256
-T:100:104:256
-T:50:105:256
-T:50:105:256
-T:50:105:256
-A:0:0:1:2:3:4
-O:190:191:192:193
-G:6:w
-W:24
-
# based on Mining Supply store in Khazad-Dum
N:63:Construction Supply Store
T:100:20:256
diff --git a/lib/mods/theme/edit/t_edoras.txt b/lib/mods/theme/edit/t_edoras.txt
index 9ab17db6..aa0b9641 100644
--- a/lib/mods/theme/edit/t_edoras.txt
+++ b/lib/mods/theme/edit/t_edoras.txt
@@ -28,9 +28,6 @@ F:c:74:3:0:0:0:0:64
#The Library
F:g:74:3:0:0:0:0:13
-#Rune shop
-F:r:74:3:0:0:0:0:62
-
#The Beastmaster
F:b:74:3:0:0:0:0:16
@@ -74,7 +71,7 @@ D:#--------------------------------------------###-----------OOO--------O-------
D:#-------------------------------------------###-----------OOO----------O-----------###----------OO-----------------OOOO##-----------OO--OO-######----##------------,---------------------------------#
D:#-------------------------------------------##-----------OOO-OOOOOOOOOOOOO--------##------------OO-------------------OOO##----#####aOOO--O-######----##------------,---------------------------------#
D:#------------------------------------------##-----------OOO--O###########O------###-------------OO---------------------OO##---######--OOOOOOO---------##-----------,---------------------------------#
-D:#------------------------------------------##----------OOOOOOOr#########rO-----##---------------OO----------------------OO##--######---#c##g#---------##-----------,---------------------------------#
+D:#------------------------------------------##----------OOOOOOO###########O-----##---------------OO----------------------OO##--######---#c##g#---------##-----------,---------------------------------#
D:#------------------------------------------##----------OOO---O###########O----###---------------OO#########--------------OO##----------######---------##-----------,---------------------------------#
D:#------------------------------------------##----------OOO---OOOOOOOOOOOOO---###----------------OO-----######-------------OO##---------######----------##----------,,--------------------------------#
D:#------------------------------------------##---------OOOO-------------------##-----------------OO---------####------------OO##------------------------##-----------,--------------------------------#
@@ -114,4 +111,4 @@ D:#-----------------------------------------------------------------------#####-
D:#--------------------------------------------------------------------------######--------------------------------#########---------------------------------------------------------------------------#
D:#-----------------------------------------------------------------------------###########----------------############--------------------------------------------------------------------------------#
D:#-----------------------------------------------------------------------------------########################-----------------------------------------------------------------------------------------#
-D:###################################################################################################################################################################################################### \ No newline at end of file
+D:######################################################################################################################################################################################################
diff --git a/lib/mods/theme/edit/t_pelar.txt b/lib/mods/theme/edit/t_pelar.txt
index fcc31244..08e9d7d2 100644
--- a/lib/mods/theme/edit/t_pelar.txt
+++ b/lib/mods/theme/edit/t_pelar.txt
@@ -22,9 +22,6 @@ F:c:74:3:0:0:0:0:86
# Music store
F:d:74:3:0:0:0:0:64
-# Rune Shop
-F:e:74:3:0:0:0:0:62
-
# Hunting Store
F:f:74:3:0:0:0:0:61
@@ -73,7 +70,7 @@ D:#-------------------------------------------------OVVVVVVVVVVVVVVVVVVVVVVVVVVV
D:#-------------------------------------------------OVVVVVVVVVVVVVVVVVVVVVVVVVVV.......########................OOOO6###########9OOOOOOOOO#,,,,,,,,#####VVV@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#
D:#-------------------------------------------------@VVVVVVVVVVVVVVVVVVVVVVVVVVV.........#cc#...............#####,O#############O,,,,,,#####,,,#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#
D:#-------------------------------------------------@VVVVV@#######################.......................####,,,,,,O,,#######,OO,,,,,,,,,,,,#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#
-D:#-------------------------------------------------@VVVVV@####,,,,,,,,,,,,OOOOO##....................#####,,,,,,,,,O,###e###O,,,,,,,,,,,#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#
+D:#-------------------------------------------------@VVVVV@####,,,,,,,,,,,,OOOOO##....................#####,,,,,,,,,O,#######O,,,,,,,,,,,#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#
D:#-------------------------------------------------@VVVVV@####,,#####,,,,O,,,,,##..................###,,,,,,,,,,,,,,OOOOOOOO,,,,,,,,#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#
D:#-------------------------------------------------@VVVVV@####,,####bOO,O,,,,,,##.................###,,,,,#######,,,,,,,,,,,,,,,,#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#
D:#-------------------------------------------------@VVVVV@####,,#####,,O,,####,##................aaa##,,,,#######,,,,,,,,,,,,,#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#
@@ -102,4 +99,4 @@ D:#-------------------------------------------------@VVVVV@##########aaaaaaaaaaa
D:#-------------------------------------------------@VVVVV@#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#
D:#-------------------------------------------------@VVVVV@####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#
D:#-------------------------------------------------@VVVVV@##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#
-D:###################################################################################################################################################################################################### \ No newline at end of file
+D:######################################################################################################################################################################################################
diff --git a/lib/mods/theme/help/birth.txt b/lib/mods/theme/help/birth.txt
index 9e7da8dd..28685c7d 100644
--- a/lib/mods/theme/help/birth.txt
+++ b/lib/mods/theme/help/birth.txt
@@ -260,7 +260,7 @@ or rogue. Spell casting generally requires a more experienced player that is
familiar with survival techniques.
*****c_archer.txt*0[Archer] *****c_mimic.txt*0[Mimic] *****c_rogue.txt*0[Rogue]
- *****c_ascet.txt*0[Ascetic] *****c_mindcr.txt*0[Mindcrafter] *****c_runecr.txt*0[Runecrafter]
+ *****c_ascet.txt*0[Ascetic] *****c_mindcr.txt*0[Mindcrafter]
*****c_assass.txt*0[Assassin] *****c_monk.txt*0[Monk] *****c_sorcer.txt*0[Sorceror]
*****c_axemas.txt*0[Axemaster] *****c_necro.txt*0[Necromancer] *****c_stonewr.txt*0[Stonewright]
*****c_bard.txt*0[Bard] *****c_palad.txt*0[Paladin] *****c_swordm.txt*0[Swordmaster]
@@ -558,7 +558,6 @@ are listed in the following table.
Geomancer -5 +3 0 +1 -2 +1
Mage -5 +3 0 +1 -2 +1
Necromancer -5 +3 0 +1 -2 +1
- Runecrafter -5 +3 0 +1 -2 +1
Sorceror -5 +3 0 +1 -2 +1
Thaumaturgist -5 +3 0 +1 -2 +1
Warper -5 +3 0 +1 -2 +1
@@ -656,4 +655,4 @@ are listed in the following table.
(Lygrog) +5 +5 +5 +10 +5 +50 +0 +0 +30 feet
(Limrog) +2 +2 +2 +2 +2 +30 +0 +0 +20 feet
(Rawrog) +0 +0 +4 -3 +0 +10 +10 +10 +0 feet
- (Adanrog) +1 +1 +1 +1 +1 +20 +15 +10 +20 feet \ No newline at end of file
+ (Adanrog) +1 +1 +1 +1 +1 +20 +15 +10 +20 feet
diff --git a/lib/mods/theme/help/c_geoman.txt b/lib/mods/theme/help/c_geoman.txt
index 47855875..ba8eaa66 100644
--- a/lib/mods/theme/help/c_geoman.txt
+++ b/lib/mods/theme/help/c_geoman.txt
@@ -43,7 +43,6 @@ Magic 1.000 [0.900]
Mind 0.000 [0.700]
Nature 0.000 [0.700]
Necromancy 0.000 [0.700]
- Runecraft 0.000 [0.700]
Thaumaturgy 0.000 [0.700]
Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
diff --git a/lib/mods/theme/help/c_mage.txt b/lib/mods/theme/help/c_mage.txt
index 949d3bcc..9bfd6a3c 100644
--- a/lib/mods/theme/help/c_mage.txt
+++ b/lib/mods/theme/help/c_mage.txt
@@ -48,7 +48,6 @@ Magic 1.000 [0.900]
Mind 0.000 [0.900]
Nature 0.000 [0.900]
Necromancy 0.000 [0.700]
- Runecraft 0.000 [0.700]
Thaumaturgy 0.000 [0.700]
Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
diff --git a/lib/mods/theme/help/c_necro.txt b/lib/mods/theme/help/c_necro.txt
index f3a5ad2c..c4b05e3c 100644
--- a/lib/mods/theme/help/c_necro.txt
+++ b/lib/mods/theme/help/c_necro.txt
@@ -42,7 +42,6 @@ Magic 1.000 [0.900]
Mind 0.000 [0.900]
Nature 0.000 [0.500]
Necromancy 1.000 [1.000]
- Runecraft 0.000 [0.700]
Thaumaturgy 0.000 [0.700]
Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
diff --git a/lib/mods/theme/help/c_runecr.txt b/lib/mods/theme/help/c_runecr.txt
deleted file mode 100644
index 8388eff9..00000000
--- a/lib/mods/theme/help/c_runecr.txt
+++ /dev/null
@@ -1,110 +0,0 @@
-~~~~~01|Runecrafter
-~~~~~02|Classes|Runecrafter
-#####R=== Runecrafters ===
-
-#####GDescription
-Instead of using spellbooks like the other spellcasters they instead
-use mystic runes. To cast a spell they select a primary rune of the
-elements (fire, cold, etc.) and they also choose a set of secondary runes,
-which shape the effect of the first one. The secondary runes include
-Self, Arrow, Ray, ... and Armageddon. After that they chose the amount
-of mana to use and the spell is cast! But the more secondary runes they
-chose the more mana is used to cast the spell. They also are bad
-fighters, but if they concentrate all their mana in one spell
-(especially with a mage staff of mana) they could kill nearly anything.
-
-#####GStarting Stat Modifiers
-Strength -5
-Intelligence +3
-Wisdom +0
-Dexterity +1
-Constitution -2
-Charisma +1
-Hit Die +d0
-Spell Points +50%
-Exp Penalty 30%
-
-#####GStarting Skills:
-#####BSkill Start Level Skill Point Gains
-Combat 1.000 [0.200]
- Weaponmastery 0.700 [0.400]
-Sneakiness 1.000 [0.900]
- Stealth 0.000 [0.400]
-Magic 2.000 [0.950]
- Magic-Device 1.000 [1.200]
- Spell-power 0.000 [0.600]
- Mana 1.000 [0.600]
- Geomancy
- Fire 0.000 [0.700]
- Water 0.000 [0.700]
- Air 0.000 [0.700]
- Earth 0.000 [0.700]
- Meta 0.000 [0.700]
- Conveyance 0.000 [0.700]
- Divination 0.000 [0.700]
- Temporal 0.000 [0.700]
- Mind 0.000 [0.700]
- Nature 0.000 [0.700]
- Necromancy 0.000 [0.700]
- Runecraft 1.000 [1.000]
- Thaumaturgy 0.000 [0.700]
-Spirituality 1.000 [0.550]
- Prayer 0.000 [0.500]
-Monster-lore 0.000 [0.500]
-
-*A Runecrafter cannot learn the Geomancy skill, but it is shown in his skill
-screen because the elemental schools are sub-skills of it.
-
-#####GInnate Abilities:
-#####BAbility Character level
-Perfect casting 1
-
-~~~~~03|Runecrafter|Runecrafter powers
-~~~~~04|Skills|Runecrafting - Runecrafter powers
-#####GRune Magic
-Runecrafters combine runes using the 'm' command. They first select a
-rune that controls magic type, then apply one or more runes to fine-tune
-effects, (pressing ESC when done), and then input the amount of mana
-they wish to expend on the spell.
-
-Runecrafters can cast the spells from their runes in several ways:
-1. On-the-fly by combining runes when they need them.
-2. Memorise rune combinations for quick use when needed (and they don't
- need to be able to see then!), and then later cast from memory.
-3. Carving them into a Runestone, then using the Runestone later (takes
- less mana, but they have to be able to see).
-
-[[[[[BSpell Types:]
-(Some kinds are not listed, and are left for the reader to discover...)
- Knowledge: Identify all objects in affected grids, Self-knowledge
- if Self rune is used.
- Life: Heals monsters in affected grids, heals player if Self rune
- is used.
- Fire, Cold, Lightning, Acid: Casts magics of that element.
- Elements: Irresistible damage.
- Mind: A mind blast that badly effects intelligent monsters.
- Temporary ESP if Self rune is used.
- Gravity: A gravity spell that both does damage and whisks affected
- creatures around.
-
-[[[[[BSpell Effects] (all are listed):
- Self: Effects the caster. This rune can be used with any other;
- if used alone, only the caster's grid is affected.
- Arrow: Spell will include a bolt effect. This allows aiming.
- Ray: Spell will include a beam effect. This allows aiming.
- Increases difficulty slightly.
- Sphere: Spell will end with a circular explosion. Increases
- difficulty a bit. Can be used alone, or with Self, Arrow, or
- Ray.
- Power Surge: Not currently recommended for use. Increases
- difficulty a lot.
- Armageddon: Hurls down meteors of the magical type in the vicinity
- of the caster. Increases difficulty noticeably, but can do a
- great deal of damage.
-
-#####GStarting Equipment
-A Runecrafter begins the game with:
- a Rune [Fire]
- a Rune [Arrow]
- a Dagger
-
diff --git a/lib/mods/theme/help/c_sorcer.txt b/lib/mods/theme/help/c_sorcer.txt
index 8a33184f..c2fbdbb0 100644
--- a/lib/mods/theme/help/c_sorcer.txt
+++ b/lib/mods/theme/help/c_sorcer.txt
@@ -48,7 +48,6 @@ Magic 1.000 [1.000]
Mind 0.000 [1.000]
Nature 0.000 [1.000]
Necromancy 0.000 [1.000]
- Runecraft 0.000 [0.900]
Thaumaturgy 0.000 [0.900]
Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
diff --git a/lib/mods/theme/help/c_thaum.txt b/lib/mods/theme/help/c_thaum.txt
index 653e84fa..2680a1c4 100644
--- a/lib/mods/theme/help/c_thaum.txt
+++ b/lib/mods/theme/help/c_thaum.txt
@@ -46,7 +46,6 @@ Magic 3.000 [0.950]
Mind 0.000 [0.700]
Nature 0.000 [0.700]
Necromancy 0.000 [0.700]
- Runecraft 0.000 [0.700]
Thaumaturgy 1.000 [1.000]
Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
diff --git a/lib/mods/theme/help/c_warper.txt b/lib/mods/theme/help/c_warper.txt
index 55d16be5..1c461049 100644
--- a/lib/mods/theme/help/c_warper.txt
+++ b/lib/mods/theme/help/c_warper.txt
@@ -41,7 +41,6 @@ Magic 1.000 [0.900]
Mind 0.000 [0.700]
Nature 0.000 [0.800]
Necromancy 0.000 [0.700]
- Runecraft 0.000 [0.700]
Thaumaturgy 0.000 [0.700]
Spirituality 1.000 [0.550]
Prayer 0.000 [0.500]
diff --git a/lib/mods/theme/help/index.txt b/lib/mods/theme/help/index.txt
index c0d874ef..84bef517 100644
--- a/lib/mods/theme/help/index.txt
+++ b/lib/mods/theme/help/index.txt
@@ -116,7 +116,6 @@ Don't forget you can browse the help from the *****help.hlp*02[Main menu].
*****c_pr_varda.txt*02[Priest - Varda]
*****c_ranger.txt*02[Ranger]
*****c_rogue.txt*02[Rogue]
- *****c_runecr.txt*02[Runecrafter]
*****c_sorcer.txt*02[Sorceror]
*****c_sniper.txt*02[Sniper]
*****birth.txt*77[Stat Bonuses]
@@ -447,9 +446,6 @@ Don't forget you can browse the help from the *****help.hlp*02[Main menu].
*****c_ranger.txt*01[Ranger]
*****c_rogue.txt*01[Rogue]
*****r_rohank.txt*01[RohanKnight]
- *****c_runecr.txt*01[Runecrafter]
- *****c_runecr.txt*03[Runecrafter powers]
- *****tome_faq.txt*11[Runes]
~~~~~83
*****/Sindex.txt*83[S]
*****command.txt*125[Saving and Exiting]
@@ -516,8 +512,6 @@ Don't forget you can browse the help from the *****help.hlp*02[Main menu].
*****skills.txt*45[Possession]
*****c_posses.txt*04[Possession - Possessor powers ]
*****skills.txt*39[Prayer]
- *****skills.txt*36[Runecraft]
- *****c_runecr.txt*04[Runecrafting - Runecrafter powers]
*****skills.txt*56[Screen]
*****skills.txt*09[Sling-mastery]
*****skills.txt*14[Sneakiness]
diff --git a/lib/mods/theme/help/magic.txt b/lib/mods/theme/help/magic.txt
index 14fa6570..1811be84 100644
--- a/lib/mods/theme/help/magic.txt
+++ b/lib/mods/theme/help/magic.txt
@@ -23,14 +23,13 @@ schools:
Other magical skills, generally being used primarily by characters of a
specific class, are:
- *****m_demono.txt*0[Demonology] *****m_necrom.txt*0[Necromancy] *****skills.txt*36[Runecraft]
+ *****m_demono.txt*0[Demonology] *****m_necrom.txt*0[Necromancy]
*****m_thaum.txt*0[Thaumaturgy] *****m_geoman.txt*0[Geomancy]
The *****m_demono.txt*0[Demonology] skill is primarily used by *****c_demono.txt*0[Demonologists] for their special
spells, whereas the *****m_necrom.txt*0[Necromancy] skill is used by *****c_necro.txt*0[Necromancers] for their own set
of special spells.
-The same goes for *****skills.txt*36[Runecraft], which is used by *****c_runecr.txt*0[Runecrafters] to allow use of more
-difficult runes or rune-combinations. *****m_thaum.txt*0[Thaumaturgy] gives you randomly chosen
+*****m_thaum.txt*0[Thaumaturgy] gives you randomly chosen
attack spells, and as such each game with it will be different. *****c_geoman.txt*0[Geomancers]
harness the powers of the elements using *****m_geoman.txt*0[Geomancy].
diff --git a/lib/mods/theme/help/skills.txt b/lib/mods/theme/help/skills.txt
index 32e9df04..6d6638d6 100644
--- a/lib/mods/theme/help/skills.txt
+++ b/lib/mods/theme/help/skills.txt
@@ -63,8 +63,7 @@ gets the free points). For example, a skill point put into Weaponmastery
raises Combat by 0.5 skill points. This is actually multiplied by the skill
modifier that your character has in the Combat skill. For example, a
Swordmaster investing a skill point into Weaponmastery would have his Combat
-skill raised by 0.5 * [0.900] while a Runecrafter would have his Combat
-skill raised by 0.5 * [0.200].
+skill raised by 0.5 * [0.900].
As well as this, skills are grouped together in similar types. Looking under
the Combat skill, there are subtypes of Weaponmastery, Archery and Antimagic.
@@ -117,7 +116,7 @@ The skills are:
*****skills.txt*21[Magic] *****skills.txt*54[Magic-device] *****skills.txt*24[Mana] *****skills.txt*29[Meta]
*****skills.txt*47[Mimicry] *****skills.txt*33[Mind] *****skills.txt*41[Mindcraft] *****skills.txt*42[Monster-lore]
*****skills.txt*59[Music] *****skills.txt*34[Nature] *****skills.txt*35[Necromancy] *****skills.txt*07[Polearm-mastery]
- *****skills.txt*45[Possession] *****skills.txt*39[Prayer] *****skills.txt*36[Runecraft] *****skills.txt*09[Sling-mastery]
+ *****skills.txt*45[Possession] *****skills.txt*39[Prayer] *****skills.txt*09[Sling-mastery]
*****skills.txt*22[Spell-power] *****skills.txt*38[Spirituality] *****skills.txt*23[Sorcery] *****skills.txt*19[Stealing]
*****skills.txt*15[Stealth] *****skills.txt*53[Stunning-blows] *****skills.txt*43[Summoning] *****skills.txt*03[Sword-mastery]
*****skills.txt*46[Symbiosis] *****skills.txt*32[Temporal] *****skills.txt*37[Thaumaturgy] *****skills.txt*48[Udun]
@@ -305,7 +304,7 @@ ability.
Sub-skills include: Magic-device, Spell-power, Sorcery, Mana, Fire, Water, Air,
Earth, Meta, Conveyance, Divination, Temporal, Mind, Nature, Udun, Demonology,
-Necromancy, Runecraft, and Thaumaturgy.
+Necromancy, and Thaumaturgy.
~~~~~54|Skills|Magic-device
[[[[[BMagic-device]
This skill is a sub-skill of the Magic skill. It eases the use of magical
@@ -446,11 +445,6 @@ point on your Necromancy skill adds 0.04 bonus skill points to your Magic skill.
Investing in the Necromancy skill? You might be interested in the
*****ability.txt*08[Touch of Death] and *****ability.txt*12[Undead Form] abilities.
-~~~~~36|Skills|Runecraft
-[[[[[BRunecraft]
-This skill is a sub-skill of the Magic skill. This is the base skill of the
-Runecrafter class. Spending 1 skill point on your Runecraft skill adds 0.12
-bonus skill points to your Magic skill.
~~~~~37|Skills|Thaumaturgy
[[[[[BThaumaturgy]
This skill is a sub-skill of the Magic skill. Each level of *****m_thaum.txt*0[thaumaturgy] gives
diff --git a/lib/mods/theme/help/tome_faq.txt b/lib/mods/theme/help/tome_faq.txt
index 55f6375b..d321a28a 100644
--- a/lib/mods/theme/help/tome_faq.txt
+++ b/lib/mods/theme/help/tome_faq.txt
@@ -101,13 +101,6 @@ activation can be something very nasty....
To activate it, use the normal Activation command, but when prompted for which
item to activate change to the backpack instead of wielded equipment.
-~~~~~11|Runes
-#####G------------------------------------------------------------------------------
-#####GQ: I keep coming across "runes". What are they?
-
-Runes are used to cast and store spells of varying types. *****c_runecr.txt*0[Runecrafters] are the
-class who are most proficient at using these. You can only use them if you
-have access to the *****skills.txt*36[Runecrafting] skill.
~~~~~12|Homes
#####G------------------------------------------------------------------------------
#####GQ: Where can I store all my equipment? Theere's not enough room in my
diff --git a/src/cmd6.cc b/src/cmd6.cc
index f7261a96..80a033eb 100644
--- a/src/cmd6.cc
+++ b/src/cmd6.cc
@@ -61,12 +61,6 @@
using boost::algorithm::iequals;
/*
- * Forward declare
- */
-static bool_ activate_spell(object_type * o_ptr, byte choice);
-
-
-/*
* General function to find an item by its name
*/
static select_by_name_t select_object_by_name(std::string const &prompt)
@@ -4807,8 +4801,6 @@ void do_cmd_activate(void)
int item, lev, chance;
- char ch, spell_choice;
-
/* Get an item */
command_wrk = USE_EQUIP;
if (!get_item(&item,
@@ -4892,15 +4884,8 @@ void do_cmd_activate(void)
/* Check the recharge */
if (o_ptr->timeout)
{
- /* Mage Staff of Spells -- Have another timeout in xtra2 */
- if (is_ego_p(o_ptr, EGO_MSTAFF_SPELL) && o_ptr->xtra2)
- {
- msg_print("It whines, glows and fades...");
- return;
- }
-
/* Monster eggs */
- else if (o_ptr->tval == TV_EGG)
+ if (o_ptr->tval == TV_EGG)
{
msg_print("You resume the development of the egg.");
o_ptr->timeout = 0;
@@ -4936,61 +4921,6 @@ void do_cmd_activate(void)
return;
}
- /* Mage Staff of Spells */
- if (is_ego_p(o_ptr, EGO_MSTAFF_SPELL))
- {
- while (TRUE)
- {
- if (!get_com("Use Spell [1] or [2]?", &ch))
- {
- return;
- }
-
- if (ch == '1')
- {
- spell_choice = 1;
- break;
- }
-
- if (ch == '2')
- {
- spell_choice = 2;
- break;
- }
- }
-
- if (spell_choice == 1)
- {
- /* Still need to check timeouts because there is another counter */
- if (o_ptr->timeout)
- {
- msg_print("The first spell is still charging!");
- return;
- }
-
- /* Cast spell 1 */
- activate_spell(o_ptr, spell_choice);
- }
- else if (spell_choice == 2)
- {
- /* Still need to check timeouts because there is another counter */
- if (o_ptr->xtra2)
- {
- msg_print("The second spell is still charging!");
- return;
- }
-
- /* Cast spell 2 */
- activate_spell(o_ptr, spell_choice);
- }
-
- /* Window stuff */
- p_ptr->window |= (PW_INVEN | PW_EQUIP);
-
- /* Success */
- return;
- }
-
/* Monster eggs */
if (o_ptr->tval == TV_EGG)
{
@@ -7751,37 +7681,3 @@ const char *activation_aux(object_type * o_ptr, bool_ doit, int item)
return NULL;
}
-
-
-static bool_ activate_spell(object_type * o_ptr, byte choice)
-{
- int mana = 0, gf = 0, mod = 0;
-
- rune_spell s_ptr;
-
-
- if (choice == 1)
- {
- gf = o_ptr->pval & 0xFFFF;
- mod = o_ptr->pval3 & 0xFFFF;
- mana = o_ptr->pval2 & 0xFF;
- }
- else if (choice == 2)
- {
- gf = o_ptr->pval >> 16;
- mod = o_ptr->pval3 >> 16;
- mana = o_ptr->pval2 >> 8;
- }
-
- s_ptr.type = gf;
- s_ptr.rune2 = 1 << mod;
- s_ptr.mana = mana;
-
- /* Execute */
- rune_exec(&s_ptr, 0);
-
- if (choice == 1) o_ptr->timeout = mana * 5;
- if (choice == 2) o_ptr->xtra2 = mana * 5;
-
- return (TRUE);
-}
diff --git a/src/cmd7.cc b/src/cmd7.cc
index 48747cfb..4d491416 100644
--- a/src/cmd7.cc
+++ b/src/cmd7.cc
@@ -2421,23 +2421,6 @@ void do_cmd_necromancer(void)
}
/*
- * Hook to determine if an object is "runestone"
- */
-static bool item_tester_hook_runestone(object_type const *o_ptr)
-{
- return ((o_ptr->tval == TV_RUNE2) &&
- (o_ptr->sval == RUNE_STONE) &&
- (o_ptr->pval == 0));
-}
-
-static bool item_tester_hook_runestone_full(object_type const *o_ptr)
-{
- return ((o_ptr->tval == TV_RUNE2) &&
- (o_ptr->sval == RUNE_STONE) &&
- (o_ptr->pval != 0));
-}
-
-/*
* math.h(sqrt) is banned of angband so ... :)
*/
s32b sroot(s32b n)
@@ -2459,1016 +2442,6 @@ s32b sroot(s32b n)
}
-/*
- * Damage formula, for runes
- */
-void rune_calc_power(s32b *power, s32b *powerdiv)
-{
- /* Not too weak power(paranoia) */
- *power = (*power < 1) ? 1 : *power;
- *power += 3;
-
- *power = 37 * sroot(*power) / 10;
-
- /* To reduce the high level power, while increasing the low levels */
- *powerdiv = *power / 3;
- if (*powerdiv < 1) *powerdiv = 1;
-
- /* Use the spell multiplicator */
- *power *= (p_ptr->to_s / 2) ? (p_ptr->to_s / 2) : 1;
-}
-
-
-/*
- * Return percentage chance of runespell failure.
- */
-int spell_chance_rune(rune_spell* spell)
-{
- int chance, minfail;
-
- s32b power = spell->mana, power_rune = 0, powerdiv = 0;
-
-
- if (spell->rune2 & RUNE_POWER_SURGE)
- {
- power_rune += 4;
- }
- if (spell->rune2 & RUNE_ARMAGEDDON)
- {
- power_rune += 3;
- }
- if (spell->rune2 & RUNE_SPHERE)
- {
- power_rune += 2;
- }
- if (spell->rune2 & RUNE_RAY)
- {
- power_rune += 1;
- }
-
- rune_calc_power(&power, &powerdiv);
-
- chance = (5 * power_rune) + (power);
-
- /* Reduce failure rate by INT/WIS adjustment */
- chance -= 3 * (adj_mag_stat[p_ptr->stat_ind[A_DEX]] - 1);
-
- /* Extract the minimum failure rate */
- minfail = adj_mag_fail[p_ptr->stat_ind[A_DEX]];
-
- /* Return the chance */
- return clamp_failure_chance(chance, minfail);
-}
-
-
-/*
- * Combine the Runes
- */
-int rune_exec(rune_spell *spell, int cost)
-{
- int dir, power_rune = 0, mana_used, plev = get_skill(SKILL_RUNECRAFT);
-
- int chance;
-
- s32b power, powerdiv;
-
- int rad = 0, ty = -1, tx = -1, dam = 0, flg = 0;
-
-
- if (spell->rune2 & RUNE_POWER_SURGE)
- {
- power_rune += 4;
- }
- if (spell->rune2 & RUNE_ARMAGEDDON)
- {
- power_rune += 3;
- }
- if (spell->rune2 & RUNE_SPHERE)
- {
- power_rune += 2;
- }
- if (spell->rune2 & RUNE_RAY)
- {
- power_rune += 1;
- }
-
-
- power = spell->mana;
-
- if (cost && ((power * cost / 100) > p_ptr->csp - (power_rune * (plev / 5))))
- {
- power = p_ptr->csp - (power_rune * (plev / 5));
- mana_used = power + (power_rune * (plev / 5));
- }
- else
- {
- mana_used = (power * cost / 100) + (power_rune * (plev / 5));
- }
-
- rune_calc_power(&power, &powerdiv);
-
- dam = damroll(powerdiv, power);
-
- if (wizard) msg_format("Rune %dd%d = dam %d", powerdiv, power, dam);
-
- /* Extract the base spell failure rate */
- chance = spell_chance_rune(spell);
-
- /* Failure ? */
- if (rand_int(100) < chance)
- {
- int insanity = (p_ptr->msane - p_ptr->csane) * 100 / p_ptr->msane;
- char sfail[80];
-
- /* Flush input if told so */
- flush_on_failure();
-
- /* Insane players can see something strange */
- if (rand_int(100) < insanity)
- {
- get_rnd_line("sfail.txt", sfail);
- msg_format("A cloud of %s appears above you.", sfail);
- }
-
- /* Normal failure messages */
- else
- {
- msg_print("You failed to get the spell off!");
- }
-
- if (is_magestaff()) energy_use = 80;
- else energy_use = 100;
-
- /* Window stuff */
- p_ptr->window |= (PW_PLAYER);
- p_ptr->redraw |= (PR_FRAME);
- return (mana_used);
- }
-
- if (spell->rune2 & RUNE_POWER_SURGE)
- {
- flg |= (PROJECT_VIEWABLE);
- ty = p_ptr->py;
- tx = p_ptr->px;
- }
-
- if (spell->rune2 & RUNE_ARMAGEDDON)
- {
- flg |= (PROJECT_THRU);
- flg |= (PROJECT_KILL);
- flg |= (PROJECT_ITEM);
- flg |= (PROJECT_GRID);
- flg |= (PROJECT_METEOR_SHOWER);
- rad = (power / 8 == 0) ? 1 : power / 8;
- rad = (rad > 10) ? 10 : rad;
- ty = p_ptr->py;
- tx = p_ptr->px;
- }
-
- if (spell->rune2 & RUNE_SPHERE)
- {
- flg |= (PROJECT_THRU);
- flg |= (PROJECT_KILL);
- flg |= (PROJECT_ITEM);
- flg |= (PROJECT_GRID);
- rad = (power / 8 == 0) ? 1 : power / 8;
- rad = (rad > 10) ? 10 : rad;
- ty = p_ptr->py;
- tx = p_ptr->px;
- }
-
- if (spell->rune2 & RUNE_RAY)
- {
- flg |= (PROJECT_THRU);
- flg |= (PROJECT_KILL);
- flg |= (PROJECT_BEAM);
- ty = -1;
- tx = -1;
- }
- if (spell->rune2 & RUNE_ARROW)
- {
- flg |= (PROJECT_THRU);
- flg |= (PROJECT_STOP);
- flg |= (PROJECT_KILL);
- ty = -1;
- tx = -1;
- }
- if (spell->rune2 & RUNE_SELF)
- {
- flg |= (PROJECT_THRU);
- flg |= (PROJECT_STOP);
- flg |= (PROJECT_KILL);
- ty = p_ptr->py;
- tx = p_ptr->px;
- unsafe = TRUE;
- }
-
- if ((ty == -1) && (tx == -1))
- {
- if (!get_aim_dir(&dir)) return (mana_used);
-
- /* Use the given direction */
- tx = p_ptr->px + ddx[dir];
- ty = p_ptr->py + ddy[dir];
-
- /* Hack -- Use an actual "target" */
- if ((dir == 5) && target_okay())
- {
- tx = target_col;
- ty = target_row;
- }
- }
-
- if (flg & PROJECT_VIEWABLE)
- {
- project_hack(spell->type, dam);
- }
- else if (flg & PROJECT_METEOR_SHOWER)
- {
- project_meteor(rad, spell->type, dam, flg);
- }
- else project(0, rad, ty, tx, dam, spell->type, flg);
-
- if (unsafe) unsafe = FALSE;
-
- /* Window stuff */
- p_ptr->window |= (PW_PLAYER);
- p_ptr->redraw |= (PR_FRAME);
-
- return (mana_used);
-}
-
-
-/*
- * Test if all runes needed at in the player p_ptr->inventory
- */
-bool_ test_runespell(rune_spell *spell)
-{
- int i;
-
- object_type *o_ptr;
-
- bool_ typeok = FALSE;
-
- int rune2 = 0;
-
-
- for (i = 0; i < INVEN_WIELD; i++)
- {
- o_ptr = &p_ptr->inventory[i];
-
- if (!o_ptr->k_idx) continue;
-
- /* Does the rune1(type) match ? */
- if ((o_ptr->tval == TV_RUNE1) && (o_ptr->sval == spell->type))
- {
- typeok = TRUE;
- }
-
- if ((o_ptr->tval == TV_RUNE2) && (o_ptr->sval != RUNE_STONE))
- {
- /* Add it to the list */
- rune2 |= 1 << o_ptr->sval;
- }
- }
-
- /* Need all runes to be present */
- return (typeok && ((rune2 & spell->rune2) == spell->rune2));
-}
-
-
-/*
- * Ask for rune, rune2 and mana
- */
-bool_ get_runespell(rune_spell *spell)
-{
- s32b rune_combine = 0;
-
- /* Lambda to use for selecting the secondary rune(s) */
- auto rune2_filter = [&](object_type const *o_ptr) -> bool {
- return ((o_ptr->tval == TV_RUNE2) &&
- (o_ptr->sval != RUNE_STONE) &&
- (!(rune_combine & BIT(o_ptr->sval))));
- };
-
- /* Prompt */
- const char *const q = "Use which rune? ";
- const char *const s = "You have no rune to use.";
-
- /* Extract first rune for the base effect */
- int type = 0;
- {
- int item;
- if (!get_item(&item, q, s, (USE_INVEN | USE_FLOOR), object_filter::TVal(TV_RUNE1)))
- {
- return FALSE;
- }
-
- object_type *o_ptr = get_object(item);
- type = o_ptr->sval;
- }
-
- /* Choose secondary rune(s) */
- int rune2 = 0;
- while (1)
- {
- int item;
- if (!get_item(&item, q, nullptr, (USE_INVEN | USE_FLOOR), rune2_filter))
- {
- break;
- }
-
- object_type *o_ptr = get_object(item);
-
- rune_combine |= 1 << o_ptr->sval;
- rune2 |= 1 << o_ptr->sval;
- }
-
- if (!rune2)
- {
- msg_print("You have not selected a second rune!");
- return (FALSE);
- }
-
- int power_rune = 0;
- int plev = get_skill(SKILL_RUNECRAFT);
- s32b power = get_quantity("Which amount of Mana? ",
- p_ptr->csp - (power_rune * (plev / 5)));
- if (power < 1)
- {
- power = 1;
- }
-
- spell->mana = power;
- spell->type = type;
- spell->rune2 = rune2;
-
- return (TRUE);
-}
-
-
-void do_cmd_rune(void)
-{
- rune_spell spell;
-
-
- /* Require some mana */
- if (p_ptr->csp <= 0)
- {
- msg_print("You have no mana!");
- return;
- }
-
- /* Require lite */
- if (p_ptr->blind || no_lite())
- {
- msg_print("You cannot see!");
- return;
- }
-
- /* Not when confused */
- if (p_ptr->confused)
- {
- msg_print("You are too confused!");
- return;
- }
-
- if (!get_runespell(&spell)) return;
-
- /* Execute at normal mana cost */
- p_ptr->csp -= rune_exec(&spell, 100);
-
- /* Safety :) */
- if (p_ptr->csp < 0) p_ptr->csp = 0;
-
- /* Take a turn */
- if (is_magestaff()) energy_use = 80;
- else energy_use = 100;
-
- /* Window stuff */
- p_ptr->window |= (PW_PLAYER);
- p_ptr->redraw |= (PR_FRAME);
-}
-
-
-/*
- * Print a batch of runespells.
- */
-static void print_runespell_batch(std::size_t batch, int max)
-{
- prt(format(" %-30s Fail Mana Power", "Name"), 1, 20);
-
- int i;
- for (i = 0; i < max; i++)
- {
- auto spell = &p_ptr->rune_spells[batch * 10 + i];
-
- int power = spell->mana;
- s32b powerdiv;
- rune_calc_power(&power, &powerdiv);
-
- int const p = power;
- int const dp = powerdiv;
-
- char buff[80];
- strnfmt(buff, 80, " %c) %-30s %4d%% %4d %dd%d ", I2A(i), spell->name,
- spell_chance_rune(spell), spell->mana, dp, p);
-
- prt(buff, 2 + i, 20);
- }
- prt("", 2 + i, 20);
-}
-
-
-
-/*
- * List ten random spells and ask to pick one.
- */
-
-static rune_spell* select_runespell_from_batch(std::size_t batch, int *s_idx)
-{
- auto &rune_spells = p_ptr->rune_spells;
-
- character_icky = TRUE;
-
- int const mut_max = (rune_spells.size() < (batch + 1) * 10)
- ? rune_spells.size() - batch * 10
- : 10;
-
- char tmp[160];
- strnfmt(tmp, 160, "(a-%c, / to rename, - to comment) Select a power: ",
- I2A(mut_max - 1));
- prt(tmp, 0, 0);
-
- rune_spell *ret = nullptr;
-
- while (1)
- {
- Term_save();
-
- print_runespell_batch(batch, mut_max);
-
- char which = inkey();
-
- Term_load();
-
- if (which == ESCAPE)
- {
- *s_idx = -1;
- ret = NULL;
- break;
- }
- else if ((which == '*') || (which == '?') || (which == ' '))
- {
- print_runespell_batch(batch, mut_max);
- }
- else if ((which == '\r') && (mut_max == 1))
- {
- *s_idx = batch * 10;
- ret = &rune_spells[batch * 10];
- break;
- }
- else if (which == '/')
- {
- prt("Rename which power: ", 0, 0);
- which = tolower(inkey());
-
- if (isalpha(which) && (A2I(which) <= mut_max))
- {
- char out_val[30] = { '\0' };
- strcpy(out_val, rune_spells[batch*10 + A2I(which)].name);
- if (get_string("Name this power: ", out_val, 29))
- {
- strcpy(rune_spells[batch*10 + A2I(which)].name, out_val);
- }
- prt(tmp, 0, 0);
- }
- else
- {
- bell();
- prt(tmp, 0, 0);
- }
- }
- else
- {
- which = tolower(which);
- if (isalpha(which) && (A2I(which) < mut_max))
- {
- *s_idx = batch * 10 + A2I(which);
- ret = &rune_spells[batch * 10 + A2I(which)];
- break;
- }
- else
- {
- bell();
- }
- }
- }
-
- character_icky = FALSE;
-
- return (ret);
-}
-
-
-/*
- * Pick a random spell from a menu
- */
-static rune_spell* select_runespell(int *s_idx)
-{
- auto const &rune_spells = p_ptr->rune_spells;
-
- char which;
-
- if (rune_spells.empty())
- {
- msg_print("There are no runespells you can cast.");
- return (NULL);
- }
-
- std::size_t batch_max = (rune_spells.size() - 1) / 10;
-
- character_icky = TRUE;
- Term_save();
-
- {
- char tmp[160];
- strnfmt(tmp, 160, "(a-%c) Select batch of powers: ", I2A(batch_max));
- prt(tmp, 0, 0);
- }
-
- while (1)
- {
- which = inkey();
-
- if (which == ESCAPE)
- {
- Term_load();
- character_icky = FALSE;
- return (NULL);
- }
- else if ((which == '\r') && (batch_max == 0))
- {
- Term_load();
- character_icky = FALSE;
- return (select_runespell_from_batch(0, s_idx));
-
- }
- else
- {
- which = tolower(which);
- if (isalpha(which) && (static_cast<size_t>(A2I(which)) <= batch_max))
- {
- Term_load();
- character_icky = FALSE;
- return (select_runespell_from_batch(A2I(which), s_idx));
- }
- else
- {
- bell();
- }
- }
- }
-}
-
-
-/*
- * Cast a memorized runespell
- * Note that the only limits are antimagic & conf, NOT blind
- */
-static void do_cmd_rune_cast()
-{
- /* Require some mana */
- if (p_ptr->csp <= 0)
- {
- msg_print("You have no mana!");
- return;
- }
-
- /* No magic */
- if (p_ptr->antimagic)
- {
- msg_print("Your anti-magic field disrupts any magic attempts.");
- return;
- }
-
- /* No magic */
- if (p_ptr->anti_magic)
- {
- msg_print("Your anti-magic shell disrupts any magic attempts.");
- return;
- }
-
- /* Not when confused */
- if (p_ptr->confused)
- {
- msg_print("You are too confused!");
- return;
- }
-
- int s_idx;
- rune_spell *s_ptr;
- s_ptr = select_runespell(&s_idx);
-
- if (s_ptr == NULL) return;
-
- /* Need the runes */
- if (!test_runespell(s_ptr))
- {
- msg_print("You lack some essential rune(s) for this runespell!");
- return;
- }
-
- /* Execute at normal mana cost */
- p_ptr->csp -= rune_exec(s_ptr, 100);
-
- /* Safety :) */
- if (p_ptr->csp < 0) p_ptr->csp = 0;
-
- /* Take a turn */
- if (is_magestaff()) energy_use = 80;
- else energy_use = 100;
-
- /* Window stuff */
- p_ptr->window |= (PW_PLAYER);
- p_ptr->redraw |= (PR_FRAME);
-}
-
-
-/*
- * Cast a runespell from a carved runestone
- */
-void do_cmd_runestone()
-{
- rune_spell s_ptr;
-
- int item;
-
-
- /* Require some mana */
- if (p_ptr->csp <= 0)
- {
- msg_print("You have no mana!");
- return;
- }
-
- /* Require lite */
- if (p_ptr->blind || no_lite())
- {
- msg_print("You cannot see!");
- return;
- }
-
- /* Not when confused */
- if (p_ptr->confused)
- {
- msg_print("You are too confused!");
- return;
- }
-
- /* No magic */
- if (p_ptr->antimagic)
- {
- msg_print("Your anti-magic field disrupts any magic attempts.");
- return;
- }
-
- /* No magic */
- if (p_ptr->anti_magic)
- {
- msg_print("Your anti-magic shell disrupts any magic attempts.");
- return;
- }
-
- /* Get an item */
- if (!get_item(&item,
- "Cast from which runestone? ",
- "You have no runestone to cast from.",
- (USE_INVEN | USE_FLOOR),
- item_tester_hook_runestone_full))
- {
- return;
- }
-
- /* Get the item */
- object_type *o_ptr = get_object(item);
-
- s_ptr.type = o_ptr->pval;
- s_ptr.rune2 = o_ptr->pval2;
- s_ptr.mana = o_ptr->pval3;
-
- /* Execute less mana */
- p_ptr->csp -= rune_exec(&s_ptr, 75);
-
- /* Safety :) */
- if (p_ptr->csp < 0) p_ptr->csp = 0;
-
- /* Take a turn */
- energy_use = 100;
-
- /* Window stuff */
- p_ptr->window |= (PW_PLAYER);
- p_ptr->redraw |= (PR_FRAME);
-}
-
-
-/*
- * Add a runespell to the list
- */
-void do_cmd_rune_add_mem()
-{
- auto &rune_spells = p_ptr->rune_spells;
-
- if (p_ptr->confused)
- {
- msg_print("You are too confused!");
- return;
- }
-
- if (rune_spells.size() >= MAX_RUNES)
- {
- msg_print("You have already learned the maximum number of runespells!");
- return;
- }
-
- rune_spell s_ptr;
- if (!get_runespell(&s_ptr)) return;
-
- // Create the new rune spell
- rune_spell ds;
- ds.type = s_ptr.type;
- ds.rune2 = s_ptr.rune2;
- ds.mana = s_ptr.mana;
- strcpy(ds.name, "Unnamed Runespell");
-
- get_string("Name this runespell: ", ds.name, 29);
-
- // Add to list
- rune_spells.emplace_back(ds);
-
- /* Take a turn */
- energy_use = 100;
-
- /* Window stuff */
- p_ptr->window |= (PW_PLAYER);
- p_ptr->redraw |= (PR_FRAME);
-}
-
-
-/*
- * Carve a runespell onto a Runestone
- */
-void do_cmd_rune_carve()
-{
- /* Not when confused */
- if (p_ptr->confused)
- {
- msg_print("You are too confused!");
- return;
- }
-
- /* Require lite */
- if (p_ptr->blind || no_lite())
- {
- msg_print("You cannot see!");
- return;
- }
-
- if (!get_check("Beware, this will destroy the involved runes, continue?"))
- {
- return;
- }
-
- rune_spell s_ptr;
- if (!get_runespell(&s_ptr))
- {
- return;
- }
-
- /* Get an item */
- int item;
- if (!get_item(&item,
- "Use which runestone? ",
- "You have no runestone to use.",
- (USE_INVEN | USE_FLOOR),
- item_tester_hook_runestone))
- {
- return;
- }
-
- /* Get the item */
- object_type *o_ptr = get_object(item);
-
- o_ptr->pval = s_ptr.type;
- o_ptr->pval2 = s_ptr.rune2;
- o_ptr->pval3 = s_ptr.mana;
-
- /* Start with old inscription */
- char out_val[80];
- strcpy(out_val, o_ptr->inscription.c_str());
-
- /* Get a new inscription (possibly empty) */
- if (get_string("Name this runestone: ", out_val, 80))
- {
- /* Save the inscription */
- o_ptr->inscription = out_val;
-
- /* Combine the pack */
- p_ptr->notice |= (PN_COMBINE);
-
- /* Window stuff */
- p_ptr->window |= (PW_INVEN | PW_EQUIP);
- }
-
- /* Delete the runes */
- for (int i = 0; i < INVEN_WIELD; i++)
- {
- o_ptr = &p_ptr->inventory[i];
-
- if (o_ptr->k_idx)
- {
- bool_ do_del = FALSE;
-
- if ((o_ptr->tval == TV_RUNE1) && (o_ptr->sval == s_ptr.type)) do_del = TRUE;
- if ((o_ptr->tval == TV_RUNE2) && (BIT(o_ptr->sval) & s_ptr.rune2)) do_del = TRUE;
-
- if (do_del)
- {
- inc_stack_size_ex(i, -1, OPTIMIZE, NO_DESCRIBE);
- }
- }
- }
-
- /* Take a turn -- Carving takes a LONG time */
- energy_use = 400;
-
- /* Window stuff */
- p_ptr->window |= (PW_PLAYER);
- p_ptr->redraw |= (PR_FRAME);
-}
-
-
-/*
- * Remove a runespell
- */
-void do_cmd_rune_del()
-{
- auto &rune_spells = p_ptr->rune_spells;
-
- if (p_ptr->confused)
- {
- msg_print("You are too confused!");
- return;
- }
-
- rune_spell *s_ptr;
- int s_idx;
- s_ptr = select_runespell(&s_idx);
-
- if (s_ptr == NULL) return;
-
- /* Delete */
- rune_spells.erase(rune_spells.begin() + s_idx);
-
- /* Take a turn */
- energy_use = 100;
-
- /* Window stuff */
- p_ptr->window |= (PW_PLAYER);
- p_ptr->redraw |= (PR_FRAME);
-}
-
-
-void do_cmd_rune_add()
-{
- int ext = 0;
-
- char ch;
-
-
- /* Select what to do */
- while (TRUE)
- {
- if (!get_com("Add to [M]emory(need runes to cast) or "
- "Carve a [R]unestone(less mana to cast)", &ch))
- {
- ext = 0;
- break;
- }
- if ((ch == 'M') || (ch == 'm'))
- {
- ext = 1;
- break;
- }
- if ((ch == 'R') || (ch == 'r'))
- {
- ext = 2;
- break;
- }
- }
-
- switch (ext)
- {
- /* Create a Spell in memory */
- case 1:
- {
- do_cmd_rune_add_mem();
- break;
- }
-
- /* Carve a Runestone */
- case 2:
- {
- do_cmd_rune_carve();
- break;
- }
- }
-}
-
-
-void do_cmd_runecrafter()
-{
- int ext = 0;
-
- char ch;
-
-
- /* Select what to do */
- while (TRUE)
- {
- if (!get_com("Rune Spell:[C]reate, [D]elete, C[a]st, D[i]rectly Cast "
- "or Use [R]unestone", &ch))
- {
- ext = 0;
- break;
- }
- if ((ch == 'C') || (ch == 'c'))
- {
- ext = 1;
- break;
- }
- if ((ch == 'D') || (ch == 'd'))
- {
- ext = 2;
- break;
- }
- if ((ch == 'A') || (ch == 'a'))
- {
- ext = 3;
- break;
- }
- if ((ch == 'I') || (ch == 'i'))
- {
- ext = 4;
- break;
- }
- if ((ch == 'R') || (ch == 'r'))
- {
- ext = 5;
- break;
- }
- }
-
- switch (ext)
- {
- /* Create a Spell */
- case 1:
- {
- do_cmd_rune_add();
- break;
- }
-
- /* Delete a Spell */
- case 2:
- {
- do_cmd_rune_del();
- break;
- }
-
- /* Cast a Spell */
- case 3:
- {
- do_cmd_rune_cast();
- break;
- }
-
- /* Directly Cast a Spell */
- case 4:
- {
- do_cmd_rune();
- break;
- }
-
- /* Cast a Runestone */
- case 5:
- {
- do_cmd_runestone();
- break;
- }
- }
-}
-
-
void do_cmd_unbeliever_antimagic()
{
if (get_skill(SKILL_ANTIMAGIC) < 20)
diff --git a/src/cmd7.hpp b/src/cmd7.hpp
index 162e5461..0c650210 100644
--- a/src/cmd7.hpp
+++ b/src/cmd7.hpp
@@ -1,12 +1,10 @@
#pragma once
#include "h-basic.h"
-#include "rune_spell_fwd.hpp"
#include "object_type_fwd.hpp"
extern void do_cmd_pray(void);
extern void do_cmd_create_boulder(void);
-extern int rune_exec(rune_spell *spell, int cost);
extern void necro_info(char *p, int power);
extern void mindcraft_info(char *p, int power);
extern void symbiotic_info(char *p, int power);
@@ -22,7 +20,6 @@ extern void do_cmd_archer(void);
extern void do_cmd_set_piercing(void);
extern void do_cmd_necromancer(void);
extern void do_cmd_unbeliever(void);
-extern void do_cmd_runecrafter(void);
extern void do_cmd_symbiotic(void);
extern s32b sroot(s32b n);
extern int clamp_failure_chance(int chance, int minfail);
diff --git a/src/defines.h b/src/defines.h
index 7f43e7f4..fe690e2b 100644
--- a/src/defines.h
+++ b/src/defines.h
@@ -381,7 +381,6 @@
#define MKEY_MIMIC 6
#define MKEY_NECRO 7
#define MKEY_POWER_MAGE 8
-#define MKEY_RUNE 9
#define MKEY_FORGING 10
#define MKEY_INCARNATION 11
#define MKEY_SUMMON 13
@@ -654,7 +653,6 @@
#define EGO_MANA 1
#define EGO_POWER 2
#define EGO_MANA_POWER 3
-#define EGO_MSTAFF_SPELL 4
#define EGO_BRAND_POIS 77
#define EGO_BRAND_ELEC 74
#define EGO_BRAND_FIRE 75
@@ -972,8 +970,6 @@
#define TV_HYPNOS 99 /* To wield monsters !:) */
#define TV_GOLD 100 /* Gold can only be picked up by players */
#define TV_RANDART 102 /* Random Artifacts */
-#define TV_RUNE1 104 /* Base runes */
-#define TV_RUNE2 105 /* Modifier runes */
#define TV_BOOK 111
#define TV_SYMBIOTIC_BOOK 112
@@ -2173,19 +2169,6 @@
#define FATE_DIE 6
/*
- * Runes definition
- */
-#define RUNE_SELF 0x00000001
-#define RUNE_ARROW 0x00000002
-#define RUNE_RAY 0x00000004
-#define RUNE_SPHERE 0x00000008
-#define RUNE_POWER_SURGE 0x00000010
-#define RUNE_ARMAGEDDON 0x00000020
-#define RUNE_MOD_MAX 6
-#define RUNE_STONE 0x000000FF
-
-
-/*
* Defines of the different dungeon types
*/
#define DUNGEON_WILDERNESS 0
diff --git a/src/dungeon.cc b/src/dungeon.cc
index e4946959..c1170c93 100644
--- a/src/dungeon.cc
+++ b/src/dungeon.cc
@@ -2815,16 +2815,6 @@ static void process_world(void)
j++;
}
}
-
- /* Recharge second spell in Mage Staffs of Spells */
- if (is_ego_p(o_ptr, EGO_MSTAFF_SPELL) && (o_ptr->xtra2 > 0))
- {
- /* Recharge */
- o_ptr->xtra2--;
-
- /* Notice changes */
- if (o_ptr->xtra2 == 0) j++;
- }
}
/* Notice changes */
diff --git a/src/help.cc b/src/help.cc
index 2c5da549..43d4873f 100644
--- a/src/help.cc
+++ b/src/help.cc
@@ -24,25 +24,24 @@
#include "variable.hpp"
#define DESC_MAX 14
-#define TRIGGERED_HELP_MAX 17
+#define TRIGGERED_HELP_MAX 16
#define HELP_VOID_JUMPGATE 0
#define HELP_FOUNTAIN 1
#define HELP_FOUND_OBJECT 2
#define HELP_FOUND_ALTAR 3
#define HELP_FOUND_STAIR 4
-#define HELP_GET_RUNE 5
-#define HELP_GET_ROD 6
-#define HELP_GET_ROD_TIP 7
-#define HELP_GET_DEVICE 8
-#define HELP_WILDERNESS 9
-#define HELP_GAME_TOME 10
-#define HELP_GAME_THEME 11
-#define HELP_1ST_LEVEL 12
-#define HELP_20TH_LEVEL 13
-#define HELP_ID_SPELL_ITM 14
-#define HELP_MELEE_SKILLS 15
-#define HELP_MON_ASK_HELP 16
+#define HELP_GET_ROD 5
+#define HELP_GET_ROD_TIP 6
+#define HELP_GET_DEVICE 7
+#define HELP_WILDERNESS 8
+#define HELP_GAME_TOME 9
+#define HELP_GAME_THEME 10
+#define HELP_1ST_LEVEL 11
+#define HELP_20TH_LEVEL 12
+#define HELP_ID_SPELL_ITM 13
+#define HELP_MELEE_SKILLS 14
+#define HELP_MON_ASK_HELP 15
/**
* Game started?
@@ -179,7 +178,6 @@ context_help_type class_table[] =
{ "Priest(Manwe)", "c_pr_man.txt", 0 },
{ "Ranger", "c_ranger.txt", 0 },
{ "Rogue", "c_rogue.txt", 0 },
- { "Runecrafter", "c_runecr.txt", 0 },
{ "Sorceror", "c_sorcer.txt", 0 },
{ "Summoner", "c_summon.txt", 0 },
{ "Swordmaster", "c_swordm.txt", 0 },
@@ -267,7 +265,6 @@ context_help_type skill_table[] =
{ "Polearm-mastery", "skills.txt", 7 },
{ "Possession", "skills.txt", 45 },
{ "Prayer", "skills.txt", 39 },
- { "Runecraft", "skills.txt", 36 },
{ "Sling-mastery", "skills.txt", 9 },
{ "Sneakiness", "skills.txt", 14 },
{ "Spell-power", "skills.txt", 22 },
@@ -333,12 +330,6 @@ static bool_ trigger_found_stairs(void *in, void *out) {
return (cave[p->y][p->x].feat == FEAT_MORE);
}
-static bool_ trigger_get_rune(void *in, void *out) {
- hook_get_in *g = (hook_get_in *) in;
- return ((g->o_ptr->tval == TV_RUNE1) ||
- (g->o_ptr->tval == TV_RUNE2));
-}
-
static bool_ trigger_get_rod(void *in, void *out) {
hook_get_in *g = (hook_get_in *) in;
return (g->o_ptr->tval == TV_ROD_MAIN);
@@ -444,14 +435,6 @@ static triggered_help_type triggered_help[TRIGGERED_HELP_MAX] =
"But be ready to fight what lies within, for it might not be too friendly.",
NULL }
},
- { HELP_GET_RUNE,
- HOOK_GET,
- trigger_get_rune,
- { "Ah, a rune! Runes are used with the Runecraft skill to allow you to",
- "create spells on your own.",
- NULL
- }
- },
{ HELP_GET_ROD,
HOOK_GET,
trigger_get_rod,
diff --git a/src/loadsave.cc b/src/loadsave.cc
index e91e8993..731efab2 100644
--- a/src/loadsave.cc
+++ b/src/loadsave.cc
@@ -493,15 +493,6 @@ static void do_random_spell(random_spell *s_ptr, ls_flag_t flag)
do_std_bool(&s_ptr->untried, flag);
}
-static void do_rune_spell(rune_spell *s_ptr, ls_flag_t flag)
-{
- do_string(s_ptr->name, 30, flag);
- do_s16b(&s_ptr->type, flag);
- do_s16b(&s_ptr->rune2, flag);
- do_s16b(&s_ptr->mana, flag);
-}
-
-
/*
* Show information on the screen, one line at a time.
*
@@ -900,9 +891,6 @@ static bool_ do_extra(ls_flag_t flag)
/* Random spells */
do_vector(flag, p_ptr->random_spells, do_random_spell);
- /* Rune spells */
- do_vector(flag, p_ptr->rune_spells, do_rune_spell);
-
/* Random seed for object flavors. */
do_seed(&seed_flavor(), flag);
diff --git a/src/object1.cc b/src/object1.cc
index 4c065b24..8d2a2bb0 100644
--- a/src/object1.cc
+++ b/src/object1.cc
@@ -1358,23 +1358,6 @@ static std::string object_desc_aux(object_type const *o_ptr, int pref, int mode)
break;
}
- case TV_RUNE2:
- {
- if (o_ptr->sval != RUNE_STONE)
- {
- modstr = basenm;
- basenm = "& Rune~ [#]";
- }
- break;
- }
-
- case TV_RUNE1:
- {
- modstr = basenm;
- basenm = "& Rune~ [#]";
- break;
- }
-
case TV_DAEMON_BOOK:
case TV_BOOK:
{
@@ -1980,16 +1963,6 @@ static std::string object_desc_aux(object_type const *o_ptr, int pref, int mode)
}
}
- /* Indicate "charging" Mage Staffs XXX XXX XXX */
- if (known && o_ptr->timeout && (is_ego_p(o_ptr, EGO_MSTAFF_SPELL)))
- {
- t += " (charging spell1)";
- }
- if (known && o_ptr->xtra2 && (is_ego_p(o_ptr, EGO_MSTAFF_SPELL)))
- {
- t += " (charging spell2)";
- }
-
/* No more details wanted */
if (mode < 3)
@@ -2111,15 +2084,11 @@ void object_desc_store(char *buf, object_type *o_ptr, int pref, int mode)
* Determine the "Activation" (if any) for an artifact
* Return a string, or NULL for "no activation"
*/
-cptr item_activation(object_type *o_ptr, byte num)
+cptr item_activation(object_type *o_ptr)
{
- auto const &k_info = game->edit_data.k_info;
auto const &a_info = game->edit_data.a_info;
auto const &e_info = game->edit_data.e_info;
- /* Needed hacks */
- static char rspell[2][80];
-
/* Extract the flags */
auto const flags = object_flags(o_ptr);
@@ -2134,29 +2103,6 @@ cptr item_activation(object_type *o_ptr, byte num)
* for art_name
*/
- if (is_ego_p(o_ptr, EGO_MSTAFF_SPELL))
- {
- int gf, mod, mana;
-
- if (!num)
- {
- gf = o_ptr->pval & 0xFFFF;
- mod = o_ptr->pval3 & 0xFFFF;
- mana = o_ptr->pval2 & 0xFF;
- }
- else
- {
- gf = o_ptr->pval >> 16;
- mod = o_ptr->pval3 >> 16;
- mana = o_ptr->pval2 >> 8;
- }
- sprintf(rspell[num], "runespell(%s, %s, %d) every %d turns",
- k_info[lookup_kind(TV_RUNE1, gf)].name,
- k_info[lookup_kind(TV_RUNE2, mod)].name,
- mana, mana * 5);
- return rspell[num];
- }
-
if (o_ptr->tval == TV_EGG)
{
return "stop or resume the egg development";
@@ -2589,14 +2535,7 @@ bool_ object_out_desc(object_type *o_ptr, FILE *fff, bool_ trim_down, bool_ wait
if (flags & TR_ACTIVATE)
{
text_out("It can be activated for ");
- if (is_ego_p(o_ptr, EGO_MSTAFF_SPELL))
- {
- text_out(item_activation(o_ptr, 0));
- text_out(" and ");
- text_out(item_activation(o_ptr, 1));
- }
- else
- text_out(item_activation(o_ptr, 0));
+ text_out(item_activation(o_ptr));
/* Mega-hack -- get rid of useless line for e.g. randarts */
if (flags & TR_ACTIVATE_NO_WIELD)
diff --git a/src/object1.hpp b/src/object1.hpp
index af055985..f585b013 100644
--- a/src/object1.hpp
+++ b/src/object1.hpp
@@ -36,7 +36,7 @@ extern void show_inven_full();
extern void show_equip_full();
extern void toggle_inven_equip(void);
extern bool_ get_item(int *cp, cptr pmt, cptr str, int mode, object_filter_t const &filter = object_filter::True(), select_by_name_t const &select_by_name = select_by_name_t());
-extern cptr item_activation(object_type *o_ptr,byte num);
+extern cptr item_activation(object_type *o_ptr);
extern void py_pickup_floor(int pickup);
extern void object_gain_level(object_type *o_ptr);
extern byte object_attr(object_type const *o_ptr);
diff --git a/src/object2.cc b/src/object2.cc
index 95fcf041..51fdcb95 100644
--- a/src/object2.cc
+++ b/src/object2.cc
@@ -1505,17 +1505,6 @@ bool_ object_similar(object_type const *o_ptr, object_type const *j_ptr)
return FALSE;
}
- case TV_RUNE1:
- {
- return TRUE;
- }
-
- case TV_RUNE2:
- {
- if ((o_ptr->sval == RUNE_STONE) || (j_ptr->sval == RUNE_STONE)) return FALSE;
- else return TRUE;
- }
-
case TV_INSTRUMENT:
{
return FALSE;
@@ -2559,29 +2548,7 @@ static void a_m_aux_1(object_type *o_ptr, int level, int power)
{
case TV_MSTAFF:
{
- if (is_ego_p(o_ptr, EGO_MSTAFF_SPELL))
- {
- int gf[2], i;
-
- for (i = 0; i < 2; i++)
- {
- int k = 0;
-
- gf[i] = 0;
- while (!k)
- {
- k = lookup_kind(TV_RUNE1, (gf[i] = rand_int(MAX_GF)));
- }
- }
-
- o_ptr->pval = gf[0] + (gf[1] << 16);
- o_ptr->pval3 = rand_int(RUNE_MOD_MAX) + (rand_int(RUNE_MOD_MAX) << 16);
- o_ptr->pval2 = randint(70) + (randint(70) << 8);
- }
- else
- {
- o_ptr->art_flags |= (TR_SPELL_CONTAIN | TR_WIELD_CAST);
- }
+ o_ptr->art_flags |= (TR_SPELL_CONTAIN | TR_WIELD_CAST);
break;
}
case TV_BOLT:
@@ -4212,15 +4179,7 @@ try_an_other_ego:
/* Spell in it ? No! */
if (flags & TR_SPELL_CONTAIN)
{
- /* Mega hack, mage staves of spell cannot SPELL_CONTAIN */
- if (is_ego_p(o_ptr, EGO_MSTAFF_SPELL))
- {
- o_ptr->art_flags &= ~TR_SPELL_CONTAIN;
- }
- else
- {
- o_ptr->pval2 = -1;
- }
+ o_ptr->pval2 = -1;
}
/* Cheat -- describe the item */
@@ -4251,15 +4210,7 @@ try_an_other_ego:
/* Spell in it ? No! */
if (flags & TR_SPELL_CONTAIN)
{
- /* Mega hack, mage staves of spell cannot SPELL_CONTAIN */
- if (is_ego_p(o_ptr, EGO_MSTAFF_SPELL))
- {
- o_ptr->art_flags &= ~TR_SPELL_CONTAIN;
- }
- else
- {
- o_ptr->pval2 = -1;
- }
+ o_ptr->pval2 = -1;
}
/* Hacccccccckkkkk attack ! :) -- To prevent som ugly crashs */
@@ -4439,12 +4390,6 @@ static bool kind_is_theme(obj_theme const *theme, int k_idx)
case TV_RANDART:
prob = theme->magic;
break;
- case TV_RUNE1:
- prob = theme->magic;
- break;
- case TV_RUNE2:
- prob = theme->magic;
- break;
case TV_BOOK:
prob = theme->magic;
break;
diff --git a/src/player_type.hpp b/src/player_type.hpp
index 0015eaef..9b7ac21d 100644
--- a/src/player_type.hpp
+++ b/src/player_type.hpp
@@ -8,7 +8,6 @@
#include "object_type.hpp"
#include "powers.hpp"
#include "random_spell.hpp"
-#include "rune_spell.hpp"
#include "spellbinder.hpp"
#include <array>
@@ -412,11 +411,6 @@ struct player_type
std::vector<random_spell> random_spells;
/**
- * Runecrafter's selfmade spells.
- */
- std::vector<rune_spell> rune_spells;
-
- /**
* Does the player have the given ability?
*/
bool has_ability(u16b ability_idx) const;
diff --git a/src/q_fireprof.cc b/src/q_fireprof.cc
index 693248e3..9e36ce5c 100644
--- a/src/q_fireprof.cc
+++ b/src/q_fireprof.cc
@@ -29,16 +29,16 @@ typedef struct fireproof_settings fireproof_settings;
struct fireproof_settings
{
byte tval; /* tval of object to use. */
+ byte sval; /* sval of object to use. */
cptr tval_name; /* descriptive name of tval */
cptr tval_name_plural; /* descriptive name of tval (plural) */
- byte sval_max; /* max sval of object to use; sval will be 1<=X<=sval_max. */
s32b total_points; /* total number of points awarded */
};
static fireproof_settings const *fireproof_get_settings()
{
static fireproof_settings fireproof_settings =
- { TV_RUNE2, "rune", "runes", 5, 24 };
+ { TV_SCROLL, SV_SCROLL_FIRE, "scroll", "scrolls", 24 };
return &fireproof_settings;
}
@@ -61,22 +61,13 @@ static void set_item_points_remaining(s32b v)
cquest.data[0] = settings->total_points - v;
}
-static void fireproof_set_sval(int sval_max)
-{
- cquest.data[1] = sval_max;
-}
-
-static int fireproof_get_sval()
-{
- return cquest.data[1];
-}
-
static bool item_tester_hook_eligible(object_type const *o_ptr)
{
+ fireproof_settings const *settings = fireproof_get_settings();
/* check it's the 'marked' item */
- return ((o_ptr->tval == fireproof_get_settings()->tval) &&
- (o_ptr->sval == fireproof_get_sval()) &&
- (o_ptr->pval2 == fireproof_get_sval()));
+ return ((o_ptr->tval == settings->tval) &&
+ (o_ptr->sval == settings->sval) &&
+ (o_ptr->pval2 == settings->sval));
}
static object_filter_t const &item_tester_hook_proofable()
@@ -378,7 +369,7 @@ static bool_ fireproof_get_hook(void *, void *in_, void *)
* generated via random object placement */
if ((p_ptr->inside_quest == QUEST_FIREPROOF) &&
(cquest.status != QUEST_STATUS_COMPLETED) &&
- (o_ptr->pval2 == fireproof_get_sval()))
+ (o_ptr->pval2 == fireproof_get_settings()->sval))
{
/* ok mark the quest 'completed' */
cquest.status = QUEST_STATUS_COMPLETED;
@@ -489,16 +480,13 @@ static bool_ fireproof_gen_hook(void *, void *, void *)
/* no teleport */
dungeon_flags = DF_NO_TELEPORT;
- /* determine type of item */
- fireproof_set_sval(randint(settings->sval_max));
-
- /* create essence */
+ /* create quest item */
{
object_type forge;
- object_prep(&forge, lookup_kind(settings->tval, fireproof_get_sval()));
+ object_prep(&forge, lookup_kind(settings->tval, settings->sval));
/* mark item */
- forge.pval2 = fireproof_get_sval();
+ forge.pval2 = settings->sval;
forge.inscription = "quest";
/* roll for co-ordinates in top half of map */
diff --git a/src/rune_spell.hpp b/src/rune_spell.hpp
deleted file mode 100644
index e1e8d190..00000000
--- a/src/rune_spell.hpp
+++ /dev/null
@@ -1,15 +0,0 @@
-#pragma once
-
-#include "h-basic.h"
-
-/**
- * Runecrafter prefered spells
- */
-struct rune_spell
-{
- char name[30] { '\0' }; /* name */
-
- s16b type = 0; /* Type of the spell(GF) */
- s16b rune2 = 0; /* Modifiers */
- s16b mana = 0; /* Mana involved */
-};
diff --git a/src/rune_spell_fwd.hpp b/src/rune_spell_fwd.hpp
deleted file mode 100644
index eb540a2a..00000000
--- a/src/rune_spell_fwd.hpp
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-struct rune_spell;
diff --git a/src/skills.cc b/src/skills.cc
index 652f925e..8572d07f 100644
--- a/src/skills.cc
+++ b/src/skills.cc
@@ -1127,9 +1127,6 @@ void do_cmd_activate_skill()
case MKEY_POWER_MAGE:
do_cmd_powermage();
break;
- case MKEY_RUNE:
- do_cmd_runecrafter();
- break;
case MKEY_FORGING:
do_cmd_archer();
break;
diff --git a/src/skills_defs.hpp b/src/skills_defs.hpp
index b21ea0fb..9bf3c9ce 100644
--- a/src/skills_defs.hpp
+++ b/src/skills_defs.hpp
@@ -36,7 +36,6 @@
#define SKILL_NECROMANCY 31
#define SKILL_MIMICRY 32
#define SKILL_ANTIMAGIC 33
-#define SKILL_RUNECRAFT 34
/* XXX */
#define SKILL_STEALTH 36
/* XXX */
diff --git a/src/store.cc b/src/store.cc
index 8771fcd4..9d4e7f81 100644
--- a/src/store.cc
+++ b/src/store.cc
@@ -55,7 +55,6 @@
#define STORE_BOOKS "Book Store"
#define STORE_PETS "Pet Shop"
#define STORE_HUNTING_SUPPLIES "Hunting Supply Store"
-#define STORE_RUNIC_MAGIC "Runic Magic Shop"
#define STORE_CONSTRUCTION_SUPPLIES "Construction Supply Store"
#define STORE_MUSIC "Music Store"
@@ -819,15 +818,6 @@ static bool store_will_buy(object_type const *o_ptr)
return true;
}
}
- else if ((store_name == STORE_RUNIC_MAGIC))
- {
- switch (o_ptr->tval)
- {
- case TV_RUNE1:
- case TV_RUNE2:
- return true;
- }
- }
else if ((store_name == STORE_CONSTRUCTION_SUPPLIES))
{
switch (o_ptr->tval)
diff --git a/src/tables.cc b/src/tables.cc
index f87db29c..22e9a98b 100644
--- a/src/tables.cc
+++ b/src/tables.cc
@@ -3724,8 +3724,6 @@ tval_desc tvals[] =
{ TV_MSTAFF, "Mage Staff" },
{ TV_PARCHMENT, "Parchment" },
{ TV_INSTRUMENT, "Musical Instrument" },
- { TV_RUNE1, "Rune 1" },
- { TV_RUNE2, "Rune 2" },
{ TV_JUNK, "Junk" },
{ 0, NULL }
};
@@ -3886,14 +3884,6 @@ tval_desc tval_descs[] =
"they can be activated for great or strange effects..."
},
{
- TV_RUNE1,
- "Runes are used with the Runecraft skill to create brand new spells."
- },
- {
- TV_RUNE2,
- "Runes are used with the Runecraft skill to create brand new spells."
- },
- {
TV_JUNK,
"Junk is usually worthless, though experienced archers can "
"create ammo with them."