Magic Mapping, and Identify. [*]
This leaves six spells in the Divinations school, of which Forescry and See Invisible could easily be moved to other schools; Detect Secret Doors could be removed; and Detect Traps/Items/Creatures should be moved to some kind of misc. item with charges (whether rechargeable or not). I didn't want to remove those until the replacement code is in.
I added a hack to make sure the probabilities of Xom "casting" magic mapping remain the same. That will have to be repaired later, preferrably by handling it together with Detect Items/Creatures as a separate Xom effect.
Shifts spells in saves and bones files.
*) This is different from the recent addition of the scroll of silence in that these four spells pose no risk whatsoever and can be spammed safely, making even the food and magic costs negligible.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10542 c06c8d41-db1a-0410-9941-cceddc491573
UWYK2M6I6P6EFAVHLWQGDK77STFO3SPO5SVOF5WZTOKUH2O6BBHQC
QSPLWL6QWR5RGGORC4XJ3ICIII5JY6MLQFSD7JOI2QL664KNK5VQC
QEPTJOPJFKTXH27KOHY7DMQSMTXWAM57OPL3Y7WYE4X2OFMZE5IAC
QK7YLIH7SWBSL3OEBQJYVFNTW4XT5FF6U3GPKW7PEGHBLPV3TVQAC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
XYQFJLTMLSU7LC7VODUJVN5F2P47STH2KVSP7Q3BSCUUDRHROW7QC
V25XPIUUPVMKRK663D33PWE3GFQR47XZAV642T2NYGRFWZR5LT6AC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
CHO4U5JC3RNTLXVIDXXJYZMOBZJ4VXW2GVJWDOTBRKK3AJ36LDLQC
SUWIERONPDATHPDMZRYO6GYIXSW6XIS5V5MK5IV23DWQH2LL7VIAC
ZEFGFQHN6J2S6EIPX7EPDG22C5YXTI6DMKQHHRCLWN5MQC44KY3AC
NQMXQ6OQVUSC7Y7F7IL252QW4A5JED224EECNHWAM4ZZYVNY745AC
DDU4A3JGN5IUIPP5IASOODKPR2WBHSDSV4FITZ6HNXNSXXQACWAQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
PR2XIEELO6UJWT3EXDHWCJZGIZCCF3D6KF6LC67R6RWWAVNWEHWAC
LS3DAZVRDCXVN2BKBC6RGCKO3R43Z7HKG4GXJWLBK4AKBL2G6QDQC
7BREK7U6OWZ6YU3JDSJSH4CMNNULDYABCKCAUHGZIUJZBIRJS5WQC
3WAR2UAC4C4D2GOK4AUV4JITGFSBO3NIBAXGQZXSMFUTNTCLTU4AC
KATZLWENEIQMKKWIV4ZLXJ5HFUW6SU5K4ZU6NENBOL4XAAVTDUKAC
TGJZXTUIAKCFZQJ54ZQEBGFBVZSJCAX6AWDRSH3TP7UJRLGUM5SAC
25VJTGR3AWZJ7OHKYWS53VJ6TVMMU6UT7BA6V3QVVWDGI6FYKD7QC
FY7SUVHPQO6D6EXYPZAZCNSBP53AOE32EL7HQHPN2J2CM3GDZ26QC
OG5QJYVF3IPLPQR7ZASAIWQLAQLGVXTI7GIIVOUN2ZAXFPVFYUXAC
CCDQMJMMVC6MIZRZ6JSKKCMEDPUGEVVSFPJUOC5WP63J6SX35MXAC
N7CKO4LATD44HNNA6747FY7M4BA4UKTMSJRL7KXONYADP5VMHROAC
LFJAIJGMBJHZQIYSLDJ57N56WFUY67LVM3GRWOPIDIVNELEQU5EAC
T35GO7UD2HKES4FLJWS3VPJ2AIM5JE7ROGY6EUH6CKPG7WUBNG5QC
I7QLYOTE6DLQZM7YWUWYLKHRJRB2A3STQ42ALSRGQICEWKD2QTEQC
RKBFYX6A3ORSXOVFPBGZFHL25AMX754YAT6M23FNGYXBXZ4DSFAAC
QG7MKYZECIRDJJZKVRFI6XTCH42GTKA55BFIWPJBQZ27CZVLUJDQC
NHCEH7ZFP3IFRMZMC25ZA2X5ZSS3MOCHCYLVCSVY7RTY62WX7UAQC
XGJNTDXOS4YOCBVTZSNS2KDRH6IHSZVPGHCDI4NMQYLDM2QGNTKAC
// Handle magic mapping specially, now it's no longer a spell.
if (spell == FAKE_SPELL_MAGIC_MAPPING)
{
if (you.level_type == LEVEL_PANDEMONIUM)
return (false);
god_speaks(GOD_XOM, _get_xom_speech("spell effect").c_str());
#if defined(DEBUG_DIAGNOSTICS) || defined(DEBUG_RELIGION) || defined(DEBUG_XOM)
mprf(MSGCH_DIAGNOSTICS,
"_xom_makes_you_cast_random_spell(); spell: %d, spellenum: %d",
spell, spellenum);
#endif
take_note(Note(NOTE_XOM_EFFECT, you.piety, tension, "magic mapping"),
true);
const int power = stepdown_value( sever, 10, 10, 40, 45 );
magic_mapping( 5 + power, 50 + random2avg( power * 2, 2 ), false );
return (true);
}
{
SPELL_IDENTIFY, "Identify",
SPTYP_DIVINATION,
SPFLAG_NONE,
6,
0,
-1, -1,
0,
NULL,
false,
true
},
},
{
SPELL_REMOVE_CURSE, "Remove Curse",
SPTYP_ENCHANTMENT,
SPFLAG_NONE,
5,
0,
-1, -1,
0,
NULL,
false,
true
},
{
SPELL_DETECT_CURSE, "Detect Curse",
SPTYP_DIVINATION,
SPFLAG_NONE,
3,
0,
-1, -1,
0,
NULL,
false,
true
SPELL_MAGIC_MAPPING, "Magic Mapping",
SPTYP_DIVINATION | SPTYP_EARTH,
SPFLAG_MAPPING,
4,
45,
-1, -1,
0,
NULL,
false,
true
},
{
case SPELL_DETECT_CURSE:
detect_curse(false);
break;
case SPELL_REMOVE_CURSE:
remove_curse(false);
break;
case SPELL_IDENTIFY:
identify(powc);
break;
case SPELL_MAGIC_MAPPING:
if (you.level_type == LEVEL_PANDEMONIUM)
mpr("Your Earth magic cannot map Pandemonium.");
else
{
powc = stepdown_value( powc, 10, 10, 40, 45 );
magic_mapping( 5 + powc, 50 + random2avg( powc * 2, 2 ), false );
}
break;
0,
-1, -1,
0,
NULL,
false,
true
},
{
SPELL_IDENTIFY, "Identify",
SPTYP_DIVINATION,
SPFLAG_NONE,
6,
0,
-1, -1,
0,
NULL,
false,
true
},
{
SPELL_REMOVE_CURSE, "Remove Curse",
SPTYP_ENCHANTMENT,
SPFLAG_NONE,
5,
0,
-1, -1,
0,
NULL,
false,
true
},
{
SPELL_DETECT_CURSE, "Detect Curse",
SPTYP_DIVINATION,
SPFLAG_NONE,
3,
Detect Curse
This spell alerts the caster to the presence of curses on his or her possessions.
%%%%
Identify
This spell allows the caster to determine the properties of an otherwise inscrutable magic item.
%%%%
Magic Mapping
This spell reveals details about the caster's surroundings.
%%%%
Remove Curse
This spell removes curses from any items which are being used by the caster.
%%%%