diff options
-rw-r--r-- | crawl-ref/source/dat/descript/items.txt | 13 | ||||
-rw-r--r-- | crawl-ref/source/dat/descript/spells.txt | 6 | ||||
-rw-r--r-- | crawl-ref/source/enum.h | 16 | ||||
-rw-r--r-- | crawl-ref/source/item_use.cc | 7 | ||||
-rw-r--r-- | crawl-ref/source/itemname.cc | 4 | ||||
-rw-r--r-- | crawl-ref/source/main.cc | 10 | ||||
-rw-r--r-- | crawl-ref/source/newgame.cc | 40 | ||||
-rw-r--r-- | crawl-ref/source/ng-restr.cc | 8 | ||||
-rw-r--r-- | crawl-ref/source/spells2.cc | 215 | ||||
-rw-r--r-- | crawl-ref/source/spells2.h | 1 | ||||
-rw-r--r-- | crawl-ref/source/spl-book.cc | 38 | ||||
-rw-r--r-- | crawl-ref/source/spl-cast.cc | 40 | ||||
-rw-r--r-- | crawl-ref/source/spl-data.h | 106 | ||||
-rw-r--r-- | crawl-ref/source/tags.h | 2 |
14 files changed, 128 insertions, 378 deletions
diff --git a/crawl-ref/source/dat/descript/items.txt b/crawl-ref/source/dat/descript/items.txt index 4c528ae6d2..a84b67f797 100644 --- a/crawl-ref/source/dat/descript/items.txt +++ b/crawl-ref/source/dat/descript/items.txt @@ -347,17 +347,10 @@ book of wizardry A book of magic spells. %%%% -book of elemental missiles +book of brands -This book contains spells relating to ammunition and forms of ranged combat. -%%%% -book of warped missiles - -This book contains spells relating to ammunition and forms of ranged combat. -%%%% -book of devastating missiles - -This book contains spells relating to ammunition and forms of ranged combat. +This book contains magical spells related to the branding of weapons and +launchers, as well as spells that are helpful in all forms of ranged combat. %%%% bottled efreet diff --git a/crawl-ref/source/dat/descript/spells.txt b/crawl-ref/source/dat/descript/spells.txt index 1543714508..e0ff86fd3b 100644 --- a/crawl-ref/source/dat/descript/spells.txt +++ b/crawl-ref/source/dat/descript/spells.txt @@ -236,7 +236,7 @@ This spell will make ammunition held by the caster extremely unstable. With prop %%%% Fire Brand -This spell sets a weapon held by the caster ablaze. It will not affect weapons otherwise subject to special enchantments. +This spell sets a weapon or launcher held by the caster ablaze. It will not affect weapons otherwise subject to special enchantments. %%%% Fire Storm @@ -268,7 +268,7 @@ This spell freezes a creature. This may temporarily slow the metabolism of a col %%%% Freezing Aura -This spell surrounds a weapon held by the caster with an aura of freezing cold. It will not affect weapons which are otherwise subject to special enchantments. +This spell surrounds a weapon or launcher held by the caster with an aura of freezing cold. It will not affect weapons which are otherwise subject to special enchantments. %%%% Freezing Cloud @@ -422,7 +422,7 @@ This spell hurls a magical arrow coated with the most vile and noxious toxin. No %%%% Poison Weapon -This spell temporarily coats any sharp bladed weapon with poison. It will only work on weapons without an existing enchantment. +This spell temporarily coats any weapon or launcher with poison. It will only work on weapons without an existing enchantment. %%%% Poisonous Cloud diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h index 58487ff6a9..6c92000089 100644 --- a/crawl-ref/source/enum.h +++ b/crawl-ref/source/enum.h @@ -309,10 +309,8 @@ enum book_type BOOK_PARTY_TRICKS, BOOK_BEASTS, BOOK_STALKING, - BOOK_ELEMENTAL_MISSILES, - BOOK_WARPED_MISSILES, - BOOK_DEVASTATING_MISSILES, - MAX_NORMAL_BOOK = BOOK_DEVASTATING_MISSILES, + BOOK_BRANDS, + MAX_NORMAL_BOOK = BOOK_BRANDS, MIN_GOD_ONLY_BOOK, BOOK_ANNIHILATIONS = MIN_GOD_ONLY_BOOK, @@ -2813,7 +2811,6 @@ enum spell_type SPELL_DETECT_CREATURES, SPELL_CURE_POISON, SPELL_CONTROL_TELEPORT, - SPELL_POISON_AMMUNITION, SPELL_POISON_WEAPON, SPELL_RESIST_POISON, SPELL_PROJECTED_NOISE, @@ -2871,16 +2868,9 @@ enum spell_type SPELL_PORTAL_PROJECTILE, SPELL_SUMMON_UGLY_THING, SPELL_PETRIFY, - SPELL_FLAME_AMMUNITION, - SPELL_FROST_AMMUNITION, - SPELL_SHOCKING_AMMUNITION, - SPELL_WARP_AMMUNITION, - SPELL_EXPLODING_AMMUNITION, - SPELL_REAPING_AMMUNITION, - SPELL_RETURNING_AMMUNITION, // Mostly monster-only spells after this point: - SPELL_HELLFIRE_BURST = 175, + SPELL_HELLFIRE_BURST = 155, SPELL_VAMPIRE_SUMMON, SPELL_BRAIN_FEED, SPELL_FAKE_RAKSHASA_SUMMON, diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc index b755aa296e..85bd75d4db 100644 --- a/crawl-ref/source/item_use.cc +++ b/crawl-ref/source/item_use.cc @@ -4671,13 +4671,18 @@ static bool _vorpalise_weapon() mprf("%s's heaviness feels very stable.", itname.c_str()); break; + case SPWPN_FLAME: case SPWPN_FLAMING: mprf("%s is engulfed in an explosion of flames!", itname.c_str()); immolation(10, IMMOLATION_SPELL, you.pos(), true, &you); break; + case SPWPN_FROST: case SPWPN_FREEZING: - mprf("%s glows brilliantly blue for a moment.", itname.c_str()); + if (get_weapon_brand(wpn) == SPWPN_FROST) + mprf("%s is covered with a thick layer of frost!", itname.c_str()); + else + mprf("%s glows brilliantly blue for a moment.", itname.c_str()); cast_refrigeration(60); break; diff --git a/crawl-ref/source/itemname.cc b/crawl-ref/source/itemname.cc index c8ce048107..d39e16abf2 100644 --- a/crawl-ref/source/itemname.cc +++ b/crawl-ref/source/itemname.cc @@ -875,9 +875,7 @@ static const char* book_type_name(int booktype) case BOOK_CANTRIPS: return "Cantrips"; case BOOK_PARTY_TRICKS: return "Party Tricks"; case BOOK_STALKING: return "Stalking"; - case BOOK_ELEMENTAL_MISSILES: return "Elemental Missiles"; - case BOOK_WARPED_MISSILES: return "Warped Missiles"; - case BOOK_DEVASTATING_MISSILES: return "Devastating Missiles"; + case BOOK_BRANDS: return "Brands"; case BOOK_RANDART_LEVEL: return "Fixed Level"; case BOOK_RANDART_THEME: return "Fixed Theme"; default: return "Bugginess"; diff --git a/crawl-ref/source/main.cc b/crawl-ref/source/main.cc index 8b675c2770..1769997400 100644 --- a/crawl-ref/source/main.cc +++ b/crawl-ref/source/main.cc @@ -2310,12 +2310,16 @@ static void _decrement_durations() else msg += " feels lighter."; break; + case SPWPN_FLAME: case SPWPN_FLAMING: msg += " goes out."; break; case SPWPN_FREEZING: msg += " stops glowing."; break; + case SPWPN_FROST: + msg += "'s frost melts away."; + break; case SPWPN_VENOM: msg += " stops dripping with poison."; break; @@ -4629,9 +4633,9 @@ static void _compile_time_asserts() COMPILE_CHECK(SK_UNARMED_COMBAT == 18 , c1); COMPILE_CHECK(SK_EVOCATIONS == 38 , c2); COMPILE_CHECK(SP_VAMPIRE == 30 , c3); - COMPILE_CHECK(SPELL_DEBUGGING_RAY == 103 , c4); - COMPILE_CHECK(SPELL_RETURNING_AMMUNITION == 162 , c5); - COMPILE_CHECK(NUM_SPELLS == 218 , c6); + COMPILE_CHECK(SPELL_DEBUGGING_RAY == 102 , c4); + COMPILE_CHECK(SPELL_PETRIFY == 154 , c5); + COMPILE_CHECK(NUM_SPELLS == 198 , c6); //jmf: NEW ASSERTS: we ought to do a *lot* of these COMPILE_CHECK(NUM_SPECIES < SP_UNKNOWN , c7); diff --git a/crawl-ref/source/newgame.cc b/crawl-ref/source/newgame.cc index 2abb8108d0..cba6229fa1 100644 --- a/crawl-ref/source/newgame.cc +++ b/crawl-ref/source/newgame.cc @@ -4268,21 +4268,6 @@ bool _give_items_skills() switch (you.species) { - case SP_SLUDGE_ELF: - case SP_HILL_ORC: - case SP_MERFOLK: - _newgame_make_item(1, EQ_NONE, OBJ_MISSILES, MI_JAVELIN, -1, 6); - _newgame_make_item(2, EQ_NONE, OBJ_MISSILES, MI_THROWING_NET, -1, - 2); - break; - - case SP_TROLL: - case SP_OGRE: - _newgame_make_item(1, EQ_NONE, OBJ_MISSILES, MI_LARGE_ROCK, -1, 5); - _newgame_make_item(2, EQ_NONE, OBJ_MISSILES, MI_THROWING_NET, -1, - 3); - break; - case SP_HALFLING: case SP_KOBOLD: _newgame_make_item(1, EQ_NONE, OBJ_WEAPONS, WPN_SLING); @@ -4311,26 +4296,13 @@ bool _give_items_skills() break; } - if (is_range_weapon(you.inv[1])) - you.skills[range_skill(you.inv[1])] = 3; - else - you.skills[SK_THROWING] = 3; - - if (!_choose_book(3, BOOK_ELEMENTAL_MISSILES, 2)) - return (false); - - you.skills[SK_DODGING] = 2; - you.skills[SK_SPELLCASTING] = 2; + // And give them a book + _newgame_make_item(3, EQ_NONE, OBJ_BOOKS, BOOK_BRANDS); - switch (you.inv[3].sub_type) - { - case BOOK_ELEMENTAL_MISSILES: - you.skills[SK_ENCHANTMENTS] = 3; - break; - case BOOK_WARPED_MISSILES: - you.skills[SK_TRANSLOCATIONS] = 3; - break; - } + you.skills[range_skill(you.inv[1])] = 2; + you.skills[SK_DODGING] = 1; + you.skills[SK_SPELLCASTING] = 2; + you.skills[SK_ENCHANTMENTS] = 2; break; case JOB_WIZARD: diff --git a/crawl-ref/source/ng-restr.cc b/crawl-ref/source/ng-restr.cc index 5ed1caeb48..79ca0ea36d 100644 --- a/crawl-ref/source/ng-restr.cc +++ b/crawl-ref/source/ng-restr.cc @@ -380,8 +380,6 @@ char_choice_restriction class_allowed(species_type speci, case SP_HALFLING: case SP_KOBOLD: case SP_CENTAUR: - case SP_OGRE: - case SP_TROLL: case SP_MINOTAUR: case SP_KENKU: case SP_RED_DRACONIAN: @@ -390,6 +388,12 @@ char_choice_restriction class_allowed(species_type speci, case SP_GHOUL: case SP_VAMPIRE: return (CC_RESTRICTED); + case SP_OGRE: + case SP_TROLL: + // XXX: Temp at the minute. They have rubbbish apt for launchers + // and there's no point giving them large rocks and throwings nets + // and then a book with spells that are useless for them. {due} + return (CC_BANNED); default: return (CC_UNRESTRICTED); } diff --git a/crawl-ref/source/spells2.cc b/crawl-ref/source/spells2.cc index d765d4db5f..c83b90db83 100644 --- a/crawl-ref/source/spells2.cc +++ b/crawl-ref/source/spells2.cc @@ -33,6 +33,7 @@ #include "itemname.h" #include "items.h" #include "it_use2.h" +#include "makeitem.h" #include "message.h" #include "misc.h" #include "mon-behv.h" @@ -234,6 +235,54 @@ void corpse_rot() // Should make zombies decay into skeletons? } +// We need to know what brands equate with what missile brands to know if +// we should disallow temporary branding or not. +special_missile_type _convert_to_missile(brand_type which_brand) +{ + switch (which_brand) + { + case SPWPN_NORMAL: return SPMSL_NORMAL; + case SPWPN_FLAME: // deliberate fall through + case SPWPN_FLAMING: return SPMSL_FLAME; + case SPWPN_FROST: // deliberate fall through + case SPWPN_FREEZING: return SPMSL_FROST; + case SPWPN_VENOM: return SPMSL_POISONED; + case SPWPN_CHAOS: return SPMSL_CHAOS; + case SPWPN_RETURNING: return SPMSL_RETURNING; + default: return SPMSL_NORMAL; // there are no equivalents for the rest + // of the ammo brands. + } +} + +// Some launchers need to convert different brands. +brand_type _convert_to_launcher(brand_type which_brand) +{ + switch (which_brand) + { + case SPWPN_FREEZING: return SPWPN_FROST; case SPWPN_FLAMING: return SPWPN_FLAME; + default: return (which_brand); + } +} + +bool _ok_for_launchers(brand_type which_brand) +{ + switch (which_brand) + { + case SPWPN_NORMAL: + case SPWPN_FREEZING: + case SPWPN_FROST: + case SPWPN_FLAMING: + case SPWPN_FLAME: + case SPWPN_VENOM: + //case SPWPN_PAIN: -- no pain missile type yat + case SPWPN_RETURNING: + case SPWPN_CHAOS: + return (true); + default: + return (false); + } +} + bool brand_weapon(brand_type which_brand, int power) { if (!you.weapon()) @@ -242,8 +291,12 @@ bool brand_weapon(brand_type which_brand, int power) const bool temp_brand = you.duration[DUR_WEAPON_BRAND]; item_def& weapon = *you.weapon(); - // Can't brand non-weapons. - if (weapon.base_type != OBJ_WEAPONS || is_range_weapon(weapon)) + // Can't brand non-weapons, but can brand some launchers (see later). + if (weapon.base_type != OBJ_WEAPONS) + return (false); + + // But not blowguns. + if (weapon.sub_type == WPN_BLOWGUN) return (false); // Can't brand artefacts. @@ -258,6 +311,29 @@ bool brand_weapon(brand_type which_brand, int power) if (temp_brand && (get_weapon_brand(weapon) != which_brand)) return (false); + // Can only brand launchers with sensical brands + if (is_range_weapon(weapon)) + { + // If the new missile type wouldn't match the launcher, say no + missile_type missile = fires_ammo_type(weapon); + + // XXX: To deal with the fact that is_missile_brand_ok will be unhappy + // if we attempt to brand stones, tell it we're using sling bullets instead. + if (weapon.sub_type == WPN_SLING) + missile = MI_SLING_BULLET; + + if (!is_missile_brand_ok(missile, _convert_to_missile(which_brand))) + return (false); + + // If the brand isn't appropriate for that launcher, also say no. + if (!_ok_for_launchers(which_brand)) + return (false); + + // Otherwise, convert to the correct brand type, most specifically (but + // not necessarily only) flaming -> flame, freezing -> frost. + which_brand = _convert_to_launcher(which_brand); + } + std::string msg = weapon.name(DESC_CAP_YOUR); const int wpn_type = get_vorpal_type(weapon); @@ -265,11 +341,17 @@ bool brand_weapon(brand_type which_brand, int power) int duration_affected = 0; switch (which_brand) { + case SPWPN_FLAME: case SPWPN_FLAMING: msg += " bursts into flame!"; duration_affected = 7; break; + case SPWPN_FROST: + msg += " frosts over!"; + duration_affected = 7; + break; + case SPWPN_FREEZING: msg += " glows blue."; duration_affected = 7; @@ -360,135 +442,6 @@ bool brand_weapon(brand_type which_brand, int power) return (true); } -bool brand_ammo(special_missile_type which_type) -{ - const int ammo = you.equip[EQ_WEAPON]; - - if (ammo == -1 - || you.inv[ammo].base_type != OBJ_MISSILES - || get_ammo_brand(you.inv[ammo]) != SPMSL_NORMAL - || you.inv[ammo].sub_type == MI_THROWING_NET) - { - return (false); - } - - bool retval = false; - preserve_quiver_slots q; - const char *old_desc = you.inv[ammo].name(DESC_CAP_YOUR).c_str(); - - switch (which_type) - { - case SPMSL_POISONED: - if (set_item_ego_type(you.inv[ammo], OBJ_MISSILES, SPMSL_POISONED)) - { - mprf("%s %s covered in a thin film of poison.", old_desc, - (you.inv[ammo].quantity == 1) ? "is" : "are"); - - if (ammo == you.equip[EQ_WEAPON]) - you.wield_change = true; - - retval = true; - } - break; - - case SPMSL_FLAME: - if (set_item_ego_type(you.inv[ammo], OBJ_MISSILES, SPMSL_FLAME)) - { - mprf("%s %s warm to the touch.", old_desc, - (you.inv[ammo].quantity == 1) ? "feels" : "feel"); - - if (ammo == you.equip[EQ_WEAPON]) - you.wield_change = true; - - retval = true; - } - break; - - case SPMSL_FROST: - if (set_item_ego_type(you.inv[ammo], OBJ_MISSILES, SPMSL_FROST)) - { - mprf("%s %s cool to the touch.", old_desc, - (you.inv[ammo].quantity == 1) ? "feels" : "feel"); - - if (ammo == you.equip[EQ_WEAPON]) - you.wield_change = true; - - retval = true; - } - break; - - case SPMSL_DISPERSAL: - if (set_item_ego_type(you.inv[ammo], OBJ_MISSILES, SPMSL_DISPERSAL)) - { - mprf("%s %s rather jumpy.", old_desc, - (you.inv[ammo].quantity == 1) ? "seems" : "seem"); - - if (ammo == you.equip[EQ_WEAPON]) - you.wield_change = true; - - retval = true; - } - break; - - case SPMSL_ELECTRIC: - if (set_item_ego_type(you.inv[ammo], OBJ_MISSILES, SPMSL_ELECTRIC)) - { - mprf("%s %s you!", old_desc, - (you.inv[ammo].quantity == 1) ? "shocks" : "shock"); - - if (ammo == you.equip[EQ_WEAPON]) - you.wield_change = true; - - retval = true; - } - break; - - case SPMSL_EXPLODING: - if (set_item_ego_type(you.inv[ammo], OBJ_MISSILES, SPMSL_EXPLODING)) - { - mprf("%s %s unstable!", old_desc, - (you.inv[ammo].quantity == 1) ? "seems" : "seem"); - - if (ammo == you.equip[EQ_WEAPON]) - you.wield_change = true; - - retval = true; - } - break; - - case SPMSL_REAPING: - if (set_item_ego_type(you.inv[ammo], OBJ_MISSILES, SPMSL_REAPING)) - { - mprf("%s %s briefly obscured by shadows.", old_desc, - (you.inv[ammo].quantity == 1) ? "is" : "are"); - - if (ammo == you.equip[EQ_WEAPON]) - you.wield_change = true; - - retval = true; - } - break; - - case SPMSL_RETURNING: - if (set_item_ego_type(you.inv[ammo], OBJ_MISSILES, SPMSL_RETURNING)) - { - mprf("%s %s in your hand.", old_desc, - (you.inv[ammo].quantity == 1) ? "wiggles" : "wiggle"); - - if (ammo == you.equip[EQ_WEAPON]) - you.wield_change = true; - - retval = true; - } - break; - - default: - break; - } - - return (retval); -} - // Restore the stat in which_stat by the amount in stat_gain, displaying // a message if suppress_msg is false, and doing so in the recovery // channel if recovery is true. If stat_gain is 0, restore the stat diff --git a/crawl-ref/source/spells2.h b/crawl-ref/source/spells2.h index 83ba485321..a74b499899 100644 --- a/crawl-ref/source/spells2.h +++ b/crawl-ref/source/spells2.h @@ -13,7 +13,6 @@ class dist; bool brand_weapon(brand_type which_brand, int power); -bool brand_ammo(special_missile_type which_brand); bool burn_freeze(int pow, beam_type flavour, monsters *monster); void corpse_rot(); diff --git a/crawl-ref/source/spl-book.cc b/crawl-ref/source/spl-book.cc index 9509f8cba0..2c6618962d 100644 --- a/crawl-ref/source/spl-book.cc +++ b/crawl-ref/source/spl-book.cc @@ -342,7 +342,7 @@ static spell_type spellbook_template_array[][SPELLBOOK_SIZE] = // Book of Envenomations {SPELL_SPIDER_FORM, SPELL_SUMMON_SCORPIONS, - SPELL_POISON_AMMUNITION, + SPELL_POISON_WEAPON, SPELL_RESIST_POISON, SPELL_OLGREBS_TOXIC_RADIANCE, SPELL_POISONOUS_CLOUD, @@ -482,36 +482,14 @@ static spell_type spellbook_template_array[][SPELLBOOK_SIZE] = SPELL_NO_SPELL, }, - // Book of Elemental Missiles + // Book of Brands {SPELL_CORONA, SPELL_SWIFTNESS, - SPELL_REPEL_MISSILES, - SPELL_FLAME_AMMUNITION, - SPELL_FROST_AMMUNITION, - SPELL_POISON_AMMUNITION, - SPELL_NO_SPELL, - SPELL_NO_SPELL, - }, - - // Book of Warped Missiles - {SPELL_APPORTATION, - SPELL_PORTAL_PROJECTILE, - SPELL_REPEL_MISSILES, - SPELL_BLINK, - SPELL_RETURNING_AMMUNITION, - SPELL_WARP_AMMUNITION, - SPELL_NO_SPELL, + SPELL_CAUSE_FEAR, + SPELL_FIRE_BRAND, + SPELL_FREEZING_AURA, + SPELL_POISON_WEAPON, SPELL_NO_SPELL, - }, - - // Book of Devastating Missiles - {SPELL_POISON_AMMUNITION, - SPELL_WARP_AMMUNITION, - SPELL_SHOCKING_AMMUNITION, - SPELL_EXPLODING_AMMUNITION, - SPELL_HASTE, - SPELL_DEFLECT_MISSILES, - SPELL_REAPING_AMMUNITION, SPELL_NO_SPELL, }, @@ -935,8 +913,7 @@ int book_rarity(unsigned char which_book) case BOOK_YOUNG_POISONERS: case BOOK_STALKING: //jmf: added 24jun2000 case BOOK_WAR_CHANTS: - case BOOK_ELEMENTAL_MISSILES: - case BOOK_WARPED_MISSILES: + case BOOK_BRANDS: return 5; case BOOK_CLOUDS: @@ -957,7 +934,6 @@ int book_rarity(unsigned char which_book) case BOOK_UNLIFE: case BOOK_CONTROL: case BOOK_SPATIAL_TRANSLOCATIONS: - case BOOK_DEVASTATING_MISSILES: return 10; case BOOK_TEMPESTS: diff --git a/crawl-ref/source/spl-cast.cc b/crawl-ref/source/spl-cast.cc index 10c4e7cea9..93414f848f 100644 --- a/crawl-ref/source/spl-cast.cc +++ b/crawl-ref/source/spl-cast.cc @@ -1954,46 +1954,6 @@ spret_type your_spells(spell_type spell, int powc, bool allow_fail) canned_msg(MSG_SPELL_FIZZLES); break; - case SPELL_POISON_AMMUNITION: - if (!brand_ammo(SPMSL_POISONED)) - canned_msg(MSG_SPELL_FIZZLES); - break; - - case SPELL_FLAME_AMMUNITION: - if (!brand_ammo(SPMSL_FLAME)) - canned_msg(MSG_SPELL_FIZZLES); - break; - - case SPELL_FROST_AMMUNITION: - if (!brand_ammo(SPMSL_FROST)) - canned_msg(MSG_SPELL_FIZZLES); - break; - - case SPELL_WARP_AMMUNITION: - if (!brand_ammo(SPMSL_DISPERSAL)) - canned_msg(MSG_SPELL_FIZZLES); - break; - - case SPELL_SHOCKING_AMMUNITION: - if (!brand_ammo(SPMSL_ELECTRIC)) - canned_msg(MSG_SPELL_FIZZLES); - break; - - case SPELL_EXPLODING_AMMUNITION: - if (!brand_ammo(SPMSL_EXPLODING)) - canned_msg(MSG_SPELL_FIZZLES); - break; - - case SPELL_REAPING_AMMUNITION: - if (!brand_ammo(SPMSL_REAPING)) - canned_msg(MSG_SPELL_FIZZLES); - break; - - case SPELL_RETURNING_AMMUNITION: - if (!brand_ammo(SPMSL_RETURNING)) - canned_msg(MSG_SPELL_FIZZLES); - break; - // Transformations. case SPELL_BLADE_HANDS: if (!transform(powc, TRAN_BLADE_HANDS)) diff --git a/crawl-ref/source/spl-data.h b/crawl-ref/source/spl-data.h index 9de226af2e..edb31c2151 100644 --- a/crawl-ref/source/spl-data.h +++ b/crawl-ref/source/spl-data.h @@ -1287,23 +1287,10 @@ }, { - SPELL_POISON_AMMUNITION, "Poison Ammunition", - SPTYP_ENCHANTMENT | SPTYP_POISON, - SPFLAG_HELPFUL | SPFLAG_BATTLE, - 4, - 0, - -1, -1, - 0, - NULL, - false, - true -}, - -{ SPELL_POISON_WEAPON, "Poison Weapon", SPTYP_ENCHANTMENT | SPTYP_POISON, SPFLAG_HELPFUL | SPFLAG_BATTLE, - 2, + 3, 0, -1, -1, 0, @@ -2499,97 +2486,6 @@ }, { - SPELL_FLAME_AMMUNITION, "Flame Ammunition", - SPTYP_ENCHANTMENT | SPTYP_FIRE, - SPFLAG_HELPFUL | SPFLAG_BATTLE, - 3, - 0, - -1,-1, - 0, - NULL, - false, - true -}, - -{ - SPELL_FROST_AMMUNITION, "Frost Ammunition", - SPTYP_ENCHANTMENT | SPTYP_ICE, - SPFLAG_HELPFUL | SPFLAG_BATTLE, - 3, - 0, - -1,-1, - 0, - NULL, - false, - true -}, - -{ - SPELL_SHOCKING_AMMUNITION, "Shocking Ammunition", - SPTYP_ENCHANTMENT | SPTYP_AIR, - SPFLAG_HELPFUL | SPFLAG_BATTLE, - 5, - 0, - -1,-1, - 0, - NULL, - false, - true -}, - -{ - SPELL_EXPLODING_AMMUNITION, "Exploding Ammunition", - SPTYP_ENCHANTMENT | SPTYP_FIRE | SPTYP_AIR, - SPFLAG_HELPFUL | SPFLAG_BATTLE, - 5, - 0, - -1,-1, - 0, - NULL, - false, - true -}, - -{ - SPELL_WARP_AMMUNITION, "Warp Ammunition", - SPTYP_ENCHANTMENT | SPTYP_TRANSLOCATION, - SPFLAG_HELPFUL | SPFLAG_BATTLE, - 5, - 0, - -1,-1, - 0, - NULL, - false, - true -}, - -{ - SPELL_REAPING_AMMUNITION, "Reaping Ammunition", - SPTYP_ENCHANTMENT | SPTYP_NECROMANCY, - SPFLAG_HELPFUL | SPFLAG_BATTLE, - 7, - 0, - -1,-1, - 0, - NULL, - false, - true -}, - -{ - SPELL_RETURNING_AMMUNITION, "Returning Ammunition", - SPTYP_ENCHANTMENT | SPTYP_TRANSLOCATION, - SPFLAG_HELPFUL | SPFLAG_BATTLE, - 3, - 0, - -1,-1, - 0, - NULL, - false, - true -}, - -{ SPELL_FAKE_MARA_SUMMON, "Mara Summon", SPTYP_SUMMONING, SPFLAG_MONSTER, diff --git a/crawl-ref/source/tags.h b/crawl-ref/source/tags.h index 915c6d1f80..9660a40b54 100644 --- a/crawl-ref/source/tags.h +++ b/crawl-ref/source/tags.h @@ -40,7 +40,7 @@ enum tag_file_type // file types supported by tag system enum tag_major_version { TAG_MAJOR_START = 5, - TAG_MAJOR_VERSION = 13 + TAG_MAJOR_VERSION = 14 }; // Minor version will be reset to zero when major version changes. |