diff options
author | johnny shelley <jwshelley@shell-23006.(none)> | 2009-11-15 03:52:15 +0000 |
---|---|---|
committer | Stefan O'Rear <stefanor@cox.net> | 2009-11-14 23:22:03 -0800 |
commit | dd56050f2d05db6ed7ff5bc99acd1032707c27fd (patch) | |
tree | bc15eec8b791380652ed3dd7b68609684e8333ca /crawl-ref/source/spells3.cc | |
parent | 4cb4bea3108f8fa560669bab120623729b3ff4b8 (diff) | |
download | crawl-ref-dd56050f2d05db6ed7ff5bc99acd1032707c27fd.tar.gz crawl-ref-dd56050f2d05db6ed7ff5bc99acd1032707c27fd.zip |
Warper Overhaul - Renamed to Arcane Marksman
Missile Changes
--
electricity missiles are now an option - they are always destroyed
reaping / dispersal ammo is now always destroyed as it can be created by players
poison ammo can again affect rocks / bullets etc - still no nets. Apparently
this is a contact poison, but mainly it's to close the gap between sling users
and archers.
SKILLS
--
Ranged weapon 3
Dodging 2
Spellcasting 2
Enchantments OR Translocations 3
EQUIPMENT
--
Robe
Ration
Scroll of blink
Some ranged weapon options as Hunter
No melee weapon!
Either book of elemental missiles or warped missiles
The book of Elemental Missiles
Spells Type Level
a - Corona Enchantment 1
b - Swiftness Enchantment/Air 2
c - Repel Missiles Enchantment/Air 2
d - Flame Ammunition Enchantment/Fire 3
e - Frost Ammunition Enchantment/Ice 3
f - Poison Ammunition Enchantment/Poison 4
The book of Warped Missiles
Spells Type Level
a - Apportation Translocation 1
b - Portal Projectile Translocation 2
c - Repel Missiles Enchantment/Air 2
d - Blink Translocation 2
e - Returning Ammunition Enchantment/Translocation 3
f - Warp Ammunition Enchantment/Translocation 5
The book of Devastating Missiles
Spells Type Level
a - Poison Ammunition Enchantment/Poison 4
b - Warp Ammunition Enchantment/Translocation 5
c - Shocking Ammunition Enchantment/Air 5
d - Haste Enchantment 6
e - Deflect Missiles Enchantment/Air 6
f - Exploding Ammunition Enchantment/Fire/Air 7
g - Reaping Ammunition Enchantment/Necromancy 7
Signed-off-by: Stefan O'Rear <stefanor@cox.net>
Diffstat (limited to 'crawl-ref/source/spells3.cc')
-rw-r--r-- | crawl-ref/source/spells3.cc | 125 |
1 files changed, 111 insertions, 14 deletions
diff --git a/crawl-ref/source/spells3.cc b/crawl-ref/source/spells3.cc index 524883c932..f6cd30dbd8 100644 --- a/crawl-ref/source/spells3.cc +++ b/crawl-ref/source/spells3.cc @@ -1979,35 +1979,132 @@ bool cast_sanctuary(const int power) return (true); } -void cast_poison_ammo() +void cast_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_STONE - || you.inv[ammo].sub_type == MI_SLING_BULLET - || you.inv[ammo].sub_type == MI_LARGE_ROCK || you.inv[ammo].sub_type == MI_THROWING_NET) { canned_msg(MSG_NOTHING_HAPPENS); return; } + preserve_quiver_slots q; + const char *old_desc = you.inv[ammo].name(DESC_CAP_YOUR).c_str(); + + switch (which_type) { - preserve_quiver_slots q; - const char *old_desc = you.inv[ammo].name(DESC_CAP_YOUR).c_str(); - 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"); + + 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; - } - else + if (ammo == you.equip[EQ_WEAPON]) + you.wield_change = true; + } + else + canned_msg(MSG_NOTHING_HAPPENS); + 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; + } + else + canned_msg(MSG_NOTHING_HAPPENS); + 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; + } + else + canned_msg(MSG_NOTHING_HAPPENS); + 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; + } + else + canned_msg(MSG_NOTHING_HAPPENS); + 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; + } + else + canned_msg(MSG_NOTHING_HAPPENS); + 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; + } + else + canned_msg(MSG_NOTHING_HAPPENS); + break; + + case SPMSL_REAPING: + if (set_item_ego_type( you.inv[ammo], OBJ_MISSILES, SPMSL_REAPING )) + { + mprf("%s %s of rotten flesh!", old_desc, + (you.inv[ammo].quantity == 1) ? "smells" : "smell"); + + if (ammo == you.equip[EQ_WEAPON]) + you.wield_change = true; + } + else + canned_msg(MSG_NOTHING_HAPPENS); + 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; + } + else + canned_msg(MSG_NOTHING_HAPPENS); + break; + + default: canned_msg(MSG_NOTHING_HAPPENS); + break; } } |