diff options
author | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-09-11 11:39:55 +0000 |
---|---|---|
committer | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-09-11 11:39:55 +0000 |
commit | e301d18c8ff880246d068b2081225a2385df206d (patch) | |
tree | 595349c2842461f0f076f562e9d4288f9b3b8277 | |
parent | 7b339ae5ffe5b43232561f9fc2980aae1321b9a6 (diff) | |
download | crawl-ref-e301d18c8ff880246d068b2081225a2385df206d.tar.gz crawl-ref-e301d18c8ff880246d068b2081225a2385df206d.zip |
Reintroducing Throwing.
s/SK_RANGED_COMBAT/SK_THROWING
Only thrown weapons, darts and slings train Throwing
and benefit from this skill. Added Slings/Throwing and
Darts/Throwing to the cross training pairs in skill2.cc.
For most cases ranged combat could be simply replaced with
throwing. For some, such as effSkill in item_use.cc or
starting skills I tried to choose reasonable replacements.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2070 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r-- | crawl-ref/source/beam.cc | 7 | ||||
-rw-r--r-- | crawl-ref/source/clua.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/debug.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/effects.cc | 4 | ||||
-rw-r--r-- | crawl-ref/source/enum.h | 2 | ||||
-rw-r--r-- | crawl-ref/source/item_use.cc | 54 | ||||
-rw-r--r-- | crawl-ref/source/itemprop.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/newgame.cc | 54 | ||||
-rw-r--r-- | crawl-ref/source/ouch.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/religion.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/skills.cc | 18 | ||||
-rw-r--r-- | crawl-ref/source/skills2.cc | 80 | ||||
-rw-r--r-- | crawl-ref/source/spells4.cc | 4 | ||||
-rw-r--r-- | crawl-ref/source/tutorial.cc | 7 |
14 files changed, 135 insertions, 105 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc index 8c4041e754..ec4b944f5c 100644 --- a/crawl-ref/source/beam.cc +++ b/crawl-ref/source/beam.cc @@ -3433,7 +3433,7 @@ static int beam_source(const bolt &beam) static int name_to_skill_level(const std::string& name) { - skill_type type = SK_RANGED_COMBAT; + skill_type type = SK_THROWING; if (name.find("dart") != std::string::npos) type = SK_DARTS; @@ -3446,7 +3446,10 @@ static int name_to_skill_level(const std::string& name) else if (name.find("stone") != std::string::npos) type = SK_SLINGS; - return you.skills[type] + you.skills[SK_RANGED_COMBAT]; + if (type == SK_DARTS || type == SK_SLINGS) + return (you.skills[type] + you.skills[SK_THROWING]); + + return (2 * you.skills[type]); } // return amount of range used up by affectation of this monster diff --git a/crawl-ref/source/clua.cc b/crawl-ref/source/clua.cc index 85e73b20df..c1a43d91ef 100644 --- a/crawl-ref/source/clua.cc +++ b/crawl-ref/source/clua.cc @@ -1386,7 +1386,7 @@ static int l_item_weap_skill(lua_State *ls) return (0); int skill = range_skill(*item); - if (skill == SK_RANGED_COMBAT) + if (skill == SK_THROWING) skill = weapon_skill(*item); if (skill == SK_FIGHTING) return (0); diff --git a/crawl-ref/source/debug.cc b/crawl-ref/source/debug.cc index 541e6d2974..7e2ba2701b 100644 --- a/crawl-ref/source/debug.cc +++ b/crawl-ref/source/debug.cc @@ -1679,7 +1679,7 @@ static void fsim_set_melee_skill(int skill, const item_def *item) static void fsim_set_ranged_skill(int skill, const item_def *item) { you.skills[range_skill(*item)] = skill; - you.skills[SK_RANGED_COMBAT] = skill * 15 / 27; + you.skills[SK_THROWING] = skill * 15 / 27; } static void fsim_item(FILE *out, diff --git a/crawl-ref/source/effects.cc b/crawl-ref/source/effects.cc index 522a99f8f6..52d45c9caf 100644 --- a/crawl-ref/source/effects.cc +++ b/crawl-ref/source/effects.cc @@ -583,7 +583,7 @@ static int find_acquirement_subtype(object_class_type class_wanted, continue; int wskill = range_skill(OBJ_WEAPONS, i); - if (wskill == SK_RANGED_COMBAT) + if (wskill == SK_THROWING) wskill = weapon_skill(OBJ_WEAPONS, i); if (wskill == skill && random2(count += acqweight) < acqweight) @@ -593,7 +593,7 @@ static int find_acquirement_subtype(object_class_type class_wanted, else if (class_wanted == OBJ_MISSILES) { int count = 0; - int skill = SK_RANGED_COMBAT; + int skill = SK_THROWING; for (int i = SK_SLINGS; i <= SK_DARTS; i++) { diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h index 1718d6cc9d..0307aab695 100644 --- a/crawl-ref/source/enum.h +++ b/crawl-ref/source/enum.h @@ -3165,7 +3165,7 @@ enum skill_type SK_BOWS, SK_CROSSBOWS, // 10 SK_DARTS, - SK_RANGED_COMBAT, + SK_THROWING, SK_ARMOUR, SK_DODGING, SK_STEALTH, // 15 diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc index 5988e2c255..a363509ceb 100644 --- a/crawl-ref/source/item_use.cc +++ b/crawl-ref/source/item_use.cc @@ -1663,7 +1663,7 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus, const int bow_brand = get_weapon_brand( launcher ); const int ammo_brand = get_ammo_brand( item ); bool poisoned = (ammo_brand == SPMSL_POISONED); - const int rc_skill = you.skills[SK_RANGED_COMBAT]; +// const int throw_skill = you.skills[SK_THROWING]; const int item_base_dam = property( item, PWPN_DAMAGE ); const int lnch_base_dam = property( launcher, PWPN_DAMAGE ); @@ -1727,8 +1727,12 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus, // [dshaligram] Throwing now two parts launcher skill, one part // ranged combat. Removed the old model which is... silly. + // [jpeg] Throwing now only affects actual throwing weapons, + // i.e. not launched ones. (Sep 10, 2007) + shoot_skill = you.skills[launcher_skill]; - effSkill = (shoot_skill * 2 + rc_skill) / 3; +// effSkill = (shoot_skill * 2 + throw_skill) / 3; + effSkill = shoot_skill; const int speed = launcher_final_speed(launcher, player_shield()); #ifdef DEBUG_DIAGNOSTICS @@ -1736,7 +1740,7 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus, #endif you.time_taken = speed * you.time_taken / 100; - // effSkill = you.skills[SK_RANGED_COMBAT] * 2 + 1; + // effSkill = you.skills[SK_THROWING] * 2 + 1; // effSkill = (shoot_skill > effSkill) ? effSkill : shoot_skill; // [dshaligram] Improving missile weapons: @@ -1860,13 +1864,15 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus, break; } - // all launched weapons have a slight chance of improving - // throwing skill - if (coinflip()) - exercise(SK_RANGED_COMBAT, 1); + // Slings and Darts train Throwing a bit + if (launcher_skill == SK_SLINGS || launcher_skill == SK_DARTS) + { + if (coinflip()) + exercise(SK_THROWING, 1); - // all launched weapons get a minor tohit boost from throwing skill. - exHitBonus += you.skills[SK_RANGED_COMBAT] / 5; + // they also get a minor tohit boost from throwing skill. + exHitBonus += you.skills[SK_THROWING] / 5; + } if (bow_brand == SPWPN_VORPAL) { @@ -1937,7 +1943,7 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus, if (item_ident(you.inv[you.equip[EQ_WEAPON]], ISFLAG_KNOW_PLUSES)) { if ( !item_ident(you.inv[throw_2], ISFLAG_KNOW_PLUSES) && - random2(100) < rc_skill ) + random2(100) < shoot_skill ) { set_ident_flags( item, ISFLAG_KNOW_PLUSES ); set_ident_flags( you.inv[throw_2], ISFLAG_KNOW_PLUSES ); @@ -1961,7 +1967,7 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus, if (projected == LRET_THROWN) { returning = (get_weapon_brand(item) == SPWPN_RETURNING && - !one_chance_in(1 + skill_bump(SK_RANGED_COMBAT))); + !one_chance_in(1 + skill_bump(SK_THROWING))); baseHit = 0; // since darts/rocks are missiles, they only use inv_plus @@ -1999,11 +2005,11 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus, } } - exHitBonus = you.skills[SK_RANGED_COMBAT] * 2; + exHitBonus = you.skills[SK_THROWING] * 2; baseDam = property( item, PWPN_DAMAGE ); exDamBonus = - (10 * (you.skills[SK_RANGED_COMBAT] / 2 + you.strength - 10)) / 12; + (10 * (you.skills[SK_THROWING] / 2 + you.strength - 10)) / 12; // now, exDamBonus is a multiplier. The full multiplier // is applied to base damage, but only a third is applied @@ -2021,9 +2027,9 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus, baseDam = property( item, PWPN_DAMAGE ); exHitBonus = you.skills[SK_DARTS] * 2; - exHitBonus += (you.skills[SK_RANGED_COMBAT] * 2) / 3; + exHitBonus += (you.skills[SK_THROWING] * 2) / 3; exDamBonus = you.skills[SK_DARTS] / 3; - exDamBonus += you.skills[SK_RANGED_COMBAT] / 5; + exDamBonus += you.skills[SK_THROWING] / 5; // exercise skills exercise(SK_DARTS, 1 + random2avg(3, 2)); @@ -2032,8 +2038,8 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus, // Javelins use polearm and throwing skills. baseHit = -1; baseDam = property( item, PWPN_DAMAGE ); - exHitBonus += (skill_bump(SK_RANGED_COMBAT) * 7 / 2); - exDamBonus += you.skills[SK_RANGED_COMBAT] * 3 / 5; + exHitBonus += (skill_bump(SK_THROWING) * 7 / 2); + exDamBonus += you.skills[SK_THROWING] * 3 / 5; // Adjust for strength and dex. exDamBonus = str_adjust_thrown_damage(exDamBonus); @@ -2043,10 +2049,10 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus, exDamBonus = stat_adjust(exDamBonus, you.dex, 20, 150, 100); // Javelins train throwing quickly. - exercise(SK_RANGED_COMBAT, 1 + coinflip()); + exercise(SK_THROWING, 1 + coinflip()); break; case MI_THROWING_NET: - // Nets use throwing and T&D skills + // Nets use throwing skill // They don't do any damage! baseDam = 0; exDamBonus = 0; @@ -2054,12 +2060,12 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus, // but accuracy is important for this one baseHit = 1; - exHitBonus += (skill_bump(SK_RANGED_COMBAT) * 7 / 2); + exHitBonus += (skill_bump(SK_THROWING) * 7 / 2); // Adjust for strength and dex. exHitBonus = dex_adjust_thrown_tohit(exHitBonus); // Nets train throwing - exercise(SK_RANGED_COMBAT, 1); + exercise(SK_THROWING, 1); break; } } @@ -2074,11 +2080,11 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus, // exercise skill if (coinflip()) - exercise(SK_RANGED_COMBAT, 1); + exercise(SK_THROWING, 1); // ID check if ( !item_ident(you.inv[throw_2], ISFLAG_KNOW_PLUSES) && - random2(100) < you.skills[SK_RANGED_COMBAT] ) + random2(100) < you.skills[SK_THROWING] ) { set_ident_flags( item, ISFLAG_KNOW_PLUSES ); set_ident_flags( you.inv[throw_2], ISFLAG_KNOW_PLUSES ); @@ -2134,7 +2140,7 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus, pbolt.rangeMax = pbolt.range; if (one_chance_in(20)) - exercise(SK_RANGED_COMBAT, 1); + exercise(SK_THROWING, 1); exHitBonus = you.dex / 4; diff --git a/crawl-ref/source/itemprop.cc b/crawl-ref/source/itemprop.cc index dfd2020310..1b01db585d 100644 --- a/crawl-ref/source/itemprop.cc +++ b/crawl-ref/source/itemprop.cc @@ -1520,7 +1520,7 @@ skill_type range_skill( const item_def &item ) } } - return (SK_RANGED_COMBAT); + return (SK_THROWING); } // front function for the above when we don't have a physical item to check diff --git a/crawl-ref/source/newgame.cc b/crawl-ref/source/newgame.cc index 699e1ad6a7..cc354a647b 100644 --- a/crawl-ref/source/newgame.cc +++ b/crawl-ref/source/newgame.cc @@ -2528,7 +2528,7 @@ static void make_rod(item_def &item, stave_type rod_type) static void create_wanderer( void ) { const int util_skills[] = - { SK_DARTS, SK_RANGED_COMBAT, SK_ARMOUR, SK_DODGING, SK_STEALTH, + { SK_DARTS, SK_THROWING, SK_ARMOUR, SK_DODGING, SK_STEALTH, SK_STABBING, SK_SHIELDS, SK_TRAPS_DOORS, SK_UNARMED_COMBAT, SK_INVOCATIONS, SK_EVOCATIONS }; const int num_util_skills = sizeof(util_skills) / sizeof(int); @@ -2540,7 +2540,7 @@ static void create_wanderer( void ) const int fight_util_skills[] = { SK_FIGHTING, SK_SHORT_BLADES, SK_AXES, SK_MACES_FLAILS, SK_POLEARMS, - SK_DARTS, SK_RANGED_COMBAT, SK_ARMOUR, SK_DODGING, SK_STEALTH, + SK_DARTS, SK_THROWING, SK_ARMOUR, SK_DODGING, SK_STEALTH, SK_STABBING, SK_SHIELDS, SK_TRAPS_DOORS, SK_UNARMED_COMBAT, SK_INVOCATIONS, SK_EVOCATIONS }; const int num_fight_util_skills = sizeof(fight_util_skills) / sizeof(int); @@ -2551,7 +2551,7 @@ static void create_wanderer( void ) SK_FIRE_MAGIC, SK_ICE_MAGIC, SK_AIR_MAGIC, SK_EARTH_MAGIC, SK_FIGHTING, SK_SHORT_BLADES, SK_LONG_SWORDS, SK_AXES, SK_MACES_FLAILS, SK_POLEARMS, SK_STAVES, - SK_DARTS, SK_RANGED_COMBAT, SK_ARMOUR, SK_DODGING, SK_STEALTH, + SK_DARTS, SK_THROWING, SK_ARMOUR, SK_DODGING, SK_STEALTH, SK_STABBING, SK_SHIELDS, SK_TRAPS_DOORS, SK_UNARMED_COMBAT, SK_INVOCATIONS, SK_EVOCATIONS }; const int num_not_rare_skills = sizeof(not_rare_skills) / sizeof(int); @@ -2564,7 +2564,7 @@ static void create_wanderer( void ) SK_FIRE_MAGIC, SK_ICE_MAGIC, SK_AIR_MAGIC, SK_EARTH_MAGIC, SK_FIGHTING, SK_SHORT_BLADES, SK_LONG_SWORDS, SK_AXES, SK_MACES_FLAILS, SK_POLEARMS, SK_STAVES, - SK_DARTS, SK_RANGED_COMBAT, SK_ARMOUR, SK_DODGING, SK_STEALTH, + SK_DARTS, SK_THROWING, SK_ARMOUR, SK_DODGING, SK_STEALTH, SK_STABBING, SK_SHIELDS, SK_TRAPS_DOORS, SK_UNARMED_COMBAT, SK_INVOCATIONS, SK_EVOCATIONS }; const int num_all_skills = sizeof(all_skills) / sizeof(int); @@ -2797,7 +2797,7 @@ static void create_wanderer( void ) add_spell_to_memory( spell_list[ school ] ); } } - else if (you.skills[ SK_RANGED_COMBAT ] && one_chance_in(3)) // these are rare + else if (you.skills[ SK_THROWING ] && one_chance_in(3)) // these are rare { // Ranger style wanderer // Rare since starting with a throwing weapon is very good @@ -2831,8 +2831,8 @@ static void create_wanderer( void ) you.inv[1].plus = 0; // slings aren't so good you.inv[1].plus2 = 0; // so we'll make them +0 - you.inv[3].quantity = 0; // remove potion - you.inv[3].base_type = 0; // forget potion + you.inv[3].quantity = 0; // remove potion + you.inv[3].base_type = 0; // forget potion you.inv[3].sub_type = 0; } else if (you.skills[ SK_BOWS ]) @@ -2841,8 +2841,10 @@ static void create_wanderer( void ) you.inv[1].sub_type = WPN_BOW; you.inv[3].quantity = 0; // remove potion - you.inv[3].base_type = 0; // forget potion + you.inv[3].base_type = 0; // forget potion you.inv[3].sub_type = 0; + // lower throwing skill (useless with arrows anyway) + you.skills[SK_THROWING]--; } else if (you.skills[ SK_CROSSBOWS ]) { @@ -2850,8 +2852,10 @@ static void create_wanderer( void ) you.inv[1].sub_type = WPN_HAND_CROSSBOW; you.inv[3].quantity = 0; // remove potion - you.inv[3].base_type = 0; // forget potion + you.inv[3].base_type = 0; // forget potion you.inv[3].sub_type = 0; + // lower throwing skill + you.skills[SK_THROWING]--; } else { @@ -2859,7 +2863,7 @@ static void create_wanderer( void ) you.inv[4].quantity += random2avg(10,5); set_item_ego_type( you.inv[4], OBJ_MISSILES, SPMSL_POISONED ); - you.inv[0].sub_type = WPN_DAGGER; // up knife to dagger + you.inv[0].sub_type = WPN_DAGGER; // up knife to dagger you.inv[1].quantity = 0; // remove bow } } @@ -3496,7 +3500,7 @@ bool give_items_skills() if (you.species == SP_KOBOLD) { - you.skills[SK_RANGED_COMBAT] = 1; + you.skills[SK_THROWING] = 1; you.skills[SK_DARTS] = 1; you.skills[SK_DODGING] = 1; you.skills[SK_STEALTH] = 1; @@ -3523,7 +3527,7 @@ bool give_items_skills() if (you.species != SP_VAMPIRE) you.skills[SK_SHIELDS] = 2; - you.skills[SK_RANGED_COMBAT] = 2; + you.skills[SK_THROWING] = 2; you.skills[((coinflip() || you.species == SP_VAMPIRE)? SK_STABBING : SK_SHIELDS)]++; } @@ -3785,7 +3789,7 @@ bool give_items_skills() you.skills[SK_STEALTH] = 2; you.skills[SK_STABBING] = 1; you.skills[SK_DODGING + random2(3)]++; - you.skills[SK_RANGED_COMBAT] = 1; + you.skills[SK_THROWING] = 1; you.skills[SK_DARTS] = 1; you.skills[SK_TRAPS_DOORS] = 2; break; @@ -3987,12 +3991,13 @@ bool give_items_skills() you.skills[SK_DODGING] = 1; you.skills[SK_STEALTH] = 3; you.skills[SK_STABBING] = 2; - you.skills[SK_RANGED_COMBAT] = 1; + // DE still get Throwing skill because of Assassin/darts association + you.skills[SK_THROWING] = 1; you.skills[SK_DARTS] = 1; if (you.species == SP_DEEP_ELF) you.skills[SK_CROSSBOWS] = 1; else - you.skills[SK_RANGED_COMBAT] += 1; + you.skills[SK_THROWING] += 1; break; @@ -4073,7 +4078,7 @@ bool give_items_skills() you.skills[SK_POLEARMS] = 1; you.skills[SK_ARMOUR] = 2; you.skills[SK_DODGING] = 2; - you.skills[SK_RANGED_COMBAT] = 2; + you.skills[SK_THROWING] = 2; } break; @@ -4131,7 +4136,7 @@ bool give_items_skills() } you.skills[SK_FIGHTING] = 2; - you.skills[SK_RANGED_COMBAT] = 3; + you.skills[SK_THROWING] = 1; switch (you.species) { @@ -4145,6 +4150,7 @@ bool give_items_skills() you.skills[SK_DODGING] = 2; you.skills[SK_STEALTH] = 2; you.skills[SK_SLINGS] = 2; + you.skills[SK_THROWING] += 2; break; case SP_MOUNTAIN_DWARF: @@ -4165,21 +4171,21 @@ bool give_items_skills() you.skills[SK_DODGING] = 1; you.skills[SK_SHIELDS] = 1; - you.skills[SK_CROSSBOWS] = 2; + you.skills[SK_CROSSBOWS] = 3; break; case SP_MERFOLK: you.inv[0].sub_type = WPN_TRIDENT; you.skills[SK_POLEARMS] = 2; you.skills[SK_DODGING] = 2; - you.skills[SK_RANGED_COMBAT] += 1; + you.skills[SK_THROWING] += 3; break; default: you.skills[SK_DODGING] = 1; you.skills[SK_STEALTH] = 1; you.skills[(coinflip() ? SK_STABBING : SK_SHIELDS)]++; - you.skills[SK_BOWS] = 2; + you.skills[SK_BOWS] = 3; break; } @@ -4372,7 +4378,7 @@ bool give_items_skills() you.skills[SK_STEALTH] = 1; if (you.species == SP_GNOME && you.char_class == JOB_EARTH_ELEMENTALIST) - you.skills[SK_RANGED_COMBAT]++; + you.skills[SK_THROWING]++; else you.skills[ coinflip() ? SK_DODGING : SK_STEALTH ]++; break; @@ -4418,7 +4424,7 @@ bool give_items_skills() you.skills[SK_FIGHTING] = 1; you.skills[SK_UNARMED_COMBAT] = 3; - you.skills[SK_RANGED_COMBAT] = 2; + you.skills[SK_THROWING] = 2; you.skills[SK_DODGING] = 2; you.skills[SK_SPELLCASTING] = 2; you.skills[SK_TRANSMIGRATION] = 2; @@ -4491,7 +4497,7 @@ bool give_items_skills() you.equip[EQ_WEAPON] = 0; you.equip[EQ_BODY_ARMOUR] = 1; - you.skills[SK_RANGED_COMBAT] = 1; + you.skills[SK_THROWING] = 1; you.skills[SK_DARTS] = 2; you.skills[SK_DODGING] = 2; you.skills[SK_STEALTH] = 1; @@ -4823,7 +4829,7 @@ bool give_items_skills() you.skills[SK_FIGHTING] = 2; you.skills[SK_DODGING] = 1; - you.skills[SK_RANGED_COMBAT] = 2; + you.skills[SK_THROWING] = 2; you.skills[SK_STAVES] = 3; you.skills[SK_INVOCATIONS] = 3; break; diff --git a/crawl-ref/source/ouch.cc b/crawl-ref/source/ouch.cc index 6675ba667d..2b88f53b8d 100644 --- a/crawl-ref/source/ouch.cc +++ b/crawl-ref/source/ouch.cc @@ -711,7 +711,7 @@ static void xom_checks_damage(kill_method_type death_type, if (death_type != KILLED_BY_BEAM) { - if (you.skills[SK_RANGED_COMBAT] <= (you.experience_level / 4)) + if (you.skills[SK_THROWING] <= (you.experience_level / 4)) amusementvalue += 2; } else diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc index 24078c4c8f..0e35447c6e 100644 --- a/crawl-ref/source/religion.cc +++ b/crawl-ref/source/religion.cc @@ -426,7 +426,7 @@ static int ammo_count(const item_def *launcher) static bool need_missile_gift() { - const int best_missile_skill = best_skill(SK_SLINGS, SK_RANGED_COMBAT); + const int best_missile_skill = best_skill(SK_SLINGS, SK_THROWING); const item_def *launcher = find_missile_launcher(best_missile_skill); return (you.piety > 80 && random2( you.piety ) > 70 diff --git a/crawl-ref/source/skills.cc b/crawl-ref/source/skills.cc index 50c3007374..e615753db4 100644 --- a/crawl-ref/source/skills.cc +++ b/crawl-ref/source/skills.cc @@ -190,7 +190,7 @@ static int exercise2( int exsk ) int i; // being good at some weapons makes others easier to learn: - if (exsk < SK_SLINGS) + if (exsk < SK_ARMOUR) { /* blades to blades */ if ((exsk == SK_SHORT_BLADES || exsk == SK_LONG_SWORDS) @@ -223,6 +223,22 @@ static int exercise2( int exsk ) { bonus += random2(3); } + + /* Slings and Throwing */ + if ((exsk == SK_SLINGS || exsk == SK_THROWING) + && (you.skills[SK_SLINGS] > you.skills[exsk] + || you.skills[SK_THROWING] > you.skills[exsk])) + { + bonus += random2(3); + } + + /* Darts and Throwing */ + if ((exsk == SK_DARTS || exsk == SK_THROWING) + && (you.skills[SK_DARTS] > you.skills[exsk] + || you.skills[SK_THROWING] > you.skills[exsk])) + { + bonus += random2(3); + } } // Quick fix for the fact that stealth can't be gained fast enough to diff --git a/crawl-ref/source/skills2.cc b/crawl-ref/source/skills2.cc index 157580c3ee..81cae1c4f6 100644 --- a/crawl-ref/source/skills2.cc +++ b/crawl-ref/source/skills2.cc @@ -63,7 +63,7 @@ const char *skills[50][6] = {"Bows", "Shooter", "Yeoman", "Archer", "Merry %s", "Merry %s"}, {"Crossbows", "Shooter", "Sharpshooter", "Archer", "%s Ballista", "%s Ballista"}, // 10 {"Darts", "Dart Thrower", "Hurler", "Hurler, First Class", "%s Darts Champion", "Universal Darts Champion"}, - {"Ranged Combat", "Chucker", "Thrower", "Deadly Accurate", "Hawkeye", "Sniper"}, + {"Throwing", "Chucker", "Thrower", "Deadly Accurate", "Hawkeye", "Sniper"}, {"Armour", "Covered", "Protected", "Tortoise", "Impregnable", "Invulnerable"}, {"Dodging", "Ducker", "Dodger", "Nimble", "Spry", "Acrobat"}, @@ -139,7 +139,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 100, // SK_BOWS 100, // SK_CROSSBOWS 100, // SK_DARTS - 100, // SK_RANGED_COMBAT + 100, // SK_THROWING 100, // SK_ARMOUR 100, // SK_DODGING 100, // SK_STEALTH @@ -182,7 +182,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 60, // SK_BOWS 100, // SK_CROSSBOWS 90, // SK_DARTS - 80, // SK_RANGED_COMBAT + 80, // SK_THROWING 110, // SK_ARMOUR 90, // SK_DODGING 90, // SK_STEALTH @@ -225,7 +225,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 70, // SK_BOWS 100, // SK_CROSSBOWS 90, // SK_DARTS - 80, // SK_RANGED_COMBAT + 80, // SK_THROWING 140, // SK_ARMOUR 75, // SK_DODGING 70, // SK_STEALTH @@ -268,7 +268,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 74, // SK_BOWS 75, // SK_CROSSBOWS 75, // SK_DARTS - 80, // SK_RANGED_COMBAT + 80, // SK_THROWING 140, // SK_ARMOUR 70, // SK_DODGING 65, // SK_STEALTH @@ -311,7 +311,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 100, // SK_BOWS 100, // SK_CROSSBOWS 100, // SK_DARTS - 70, // SK_RANGED_COMBAT + 70, // SK_THROWING 140, // SK_ARMOUR 70, // SK_DODGING 75, // SK_STEALTH @@ -354,7 +354,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 150, // SK_BOWS 90, // SK_CROSSBOWS 120, // SK_DARTS - 120, // SK_RANGED_COMBAT + 120, // SK_THROWING 60, // SK_ARMOUR 110, // SK_DODGING 150, // SK_STEALTH @@ -397,7 +397,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 70, // SK_BOWS 90, // SK_CROSSBOWS 50, // SK_DARTS - 60, // SK_RANGED_COMBAT + 60, // SK_THROWING 150, // SK_ARMOUR 70, // SK_DODGING 60, // SK_STEALTH @@ -440,7 +440,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 120, // SK_BOWS 120, // SK_CROSSBOWS 130, // SK_DARTS - 130, // SK_RANGED_COMBAT + 130, // SK_THROWING 90, // SK_ARMOUR 140, // SK_DODGING 150, // SK_STEALTH @@ -483,7 +483,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 80, // SK_BOWS 90, // SK_CROSSBOWS 50, // SK_DARTS - 60, // SK_RANGED_COMBAT + 60, // SK_THROWING 140, // SK_ARMOUR 70, // SK_DODGING 60, // SK_STEALTH @@ -526,7 +526,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 140, // SK_BOWS 140, // SK_CROSSBOWS 140, // SK_DARTS - 140, // SK_RANGED_COMBAT + 140, // SK_THROWING 140, // SK_ARMOUR 140, // SK_DODGING 140, // SK_STEALTH @@ -569,7 +569,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 120, // SK_BOWS 120, // SK_CROSSBOWS 120, // SK_DARTS - 120, // SK_RANGED_COMBAT + 120, // SK_THROWING 150, // SK_ARMOUR 150, // SK_DODGING 40, // SK_STEALTH @@ -612,7 +612,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 100, // SK_BOWS 90, // SK_CROSSBOWS 60, // SK_DARTS - 100, // SK_RANGED_COMBAT + 100, // SK_THROWING 150, // SK_ARMOUR 70, // SK_DODGING 70, // SK_STEALTH @@ -655,7 +655,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 150, // SK_BOWS 180, // SK_CROSSBOWS 150, // SK_DARTS - 100, // SK_RANGED_COMBAT + 100, // SK_THROWING 140, // SK_ARMOUR 150, // SK_DODGING 200, // SK_STEALTH @@ -698,7 +698,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 180, // SK_BOWS 180, // SK_CROSSBOWS 180, // SK_DARTS - 130, // SK_RANGED_COMBAT + 130, // SK_THROWING 150, // SK_ARMOUR 130, // SK_DODGING 250, // SK_STEALTH @@ -741,7 +741,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 150, // SK_BOWS 150, // SK_CROSSBOWS 150, // SK_DARTS - 150, // SK_RANGED_COMBAT + 150, // SK_THROWING 170, // SK_ARMOUR 130, // SK_DODGING 100, // SK_STEALTH @@ -784,7 +784,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 120, // SK_BOWS 120, // SK_CROSSBOWS 120, // SK_DARTS - 120, // SK_RANGED_COMBAT + 120, // SK_THROWING 200, // SK_ARMOUR 120, // SK_DODGING 120, // SK_STEALTH @@ -827,7 +827,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 120, // SK_BOWS 120, // SK_CROSSBOWS 120, // SK_DARTS - 120, // SK_RANGED_COMBAT + 120, // SK_THROWING 200, // SK_ARMOUR 120, // SK_DODGING 120, // SK_STEALTH @@ -870,7 +870,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 120, // SK_BOWS 120, // SK_CROSSBOWS 120, // SK_DARTS - 120, // SK_RANGED_COMBAT + 120, // SK_THROWING 200, // SK_ARMOUR 120, // SK_DODGING 120, // SK_STEALTH @@ -913,7 +913,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 120, // SK_BOWS 120, // SK_CROSSBOWS 120, // SK_DARTS - 120, // SK_RANGED_COMBAT + 120, // SK_THROWING 200, // SK_ARMOUR 120, // SK_DODGING 120, // SK_STEALTH @@ -956,7 +956,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 120, // SK_BOWS 120, // SK_CROSSBOWS 120, // SK_DARTS - 120, // SK_RANGED_COMBAT + 120, // SK_THROWING 200, // SK_ARMOUR 120, // SK_DODGING 120, // SK_STEALTH @@ -999,7 +999,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 120, // SK_BOWS 120, // SK_CROSSBOWS 120, // SK_DARTS - 120, // SK_RANGED_COMBAT + 120, // SK_THROWING 200, // SK_ARMOUR 120, // SK_DODGING 120, // SK_STEALTH @@ -1042,7 +1042,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 120, // SK_BOWS 120, // SK_CROSSBOWS 120, // SK_DARTS - 120, // SK_RANGED_COMBAT + 120, // SK_THROWING 200, // SK_ARMOUR 120, // SK_DODGING 120, // SK_STEALTH @@ -1085,7 +1085,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 120, // SK_BOWS 120, // SK_CROSSBOWS 120, // SK_DARTS - 120, // SK_RANGED_COMBAT + 120, // SK_THROWING 200, // SK_ARMOUR 120, // SK_DODGING 120, // SK_STEALTH @@ -1128,7 +1128,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 120, // SK_BOWS 120, // SK_CROSSBOWS 120, // SK_DARTS - 120, // SK_RANGED_COMBAT + 120, // SK_THROWING 200, // SK_ARMOUR 120, // SK_DODGING 120, // SK_STEALTH @@ -1171,7 +1171,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 120, // SK_BOWS 120, // SK_CROSSBOWS 120, // SK_DARTS - 120, // SK_RANGED_COMBAT + 120, // SK_THROWING 200, // SK_ARMOUR 120, // SK_DODGING 120, // SK_STEALTH @@ -1214,7 +1214,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 120, // SK_BOWS 120, // SK_CROSSBOWS 120, // SK_DARTS - 120, // SK_RANGED_COMBAT + 120, // SK_THROWING 200, // SK_ARMOUR 120, // SK_DODGING 120, // SK_STEALTH @@ -1257,7 +1257,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 120, // SK_BOWS 120, // SK_CROSSBOWS 120, // SK_DARTS - 120, // SK_RANGED_COMBAT + 120, // SK_THROWING 200, // SK_ARMOUR 120, // SK_DODGING 120, // SK_STEALTH @@ -1300,7 +1300,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 60, // SK_BOWS 85, // SK_CROSSBOWS 80, // SK_DARTS - 60, // SK_RANGED_COMBAT + 60, // SK_THROWING 180, // SK_ARMOUR 170, // SK_DODGING 200, // SK_STEALTH @@ -1343,7 +1343,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 110, // SK_BOWS 110, // SK_CROSSBOWS 110, // SK_DARTS - 110, // SK_RANGED_COMBAT + 110, // SK_THROWING 110, // SK_ARMOUR 110, // SK_DODGING 110, // SK_STEALTH @@ -1386,7 +1386,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 70, // SK_BOWS 100, // SK_CROSSBOWS 70, // SK_DARTS - 90, // SK_RANGED_COMBAT + 90, // SK_THROWING 170, // SK_ARMOUR 50, // SK_DODGING 50, // SK_STEALTH @@ -1429,7 +1429,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 90, // SK_BOWS 90, // SK_CROSSBOWS 90, // SK_DARTS - 90, // SK_RANGED_COMBAT + 90, // SK_THROWING 80, // SK_ARMOUR 80, // SK_DODGING 130, // SK_STEALTH @@ -1472,7 +1472,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 110, // SK_BOWS 110, // SK_CROSSBOWS 110, // SK_DARTS - 110, // SK_RANGED_COMBAT + 110, // SK_THROWING 110, // SK_ARMOUR 110, // SK_DODGING 110, // SK_STEALTH @@ -1515,7 +1515,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 130, // SK_BOWS 130, // SK_CROSSBOWS 130, // SK_DARTS - 130, // SK_RANGED_COMBAT + 130, // SK_THROWING 110, // SK_ARMOUR 110, // SK_DODGING 80, // SK_STEALTH @@ -1558,7 +1558,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 80, // SK_BOWS 80, // SK_CROSSBOWS 90, // SK_DARTS - 90, // SK_RANGED_COMBAT + 90, // SK_THROWING 90, // SK_ARMOUR 90, // SK_DODGING 100, // SK_STEALTH @@ -1601,7 +1601,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 140, // SK_BOWS 140, // SK_CROSSBOWS 100, // SK_DARTS - 100, // SK_RANGED_COMBAT + 100, // SK_THROWING 160, // SK_ARMOUR 60, // SK_DODGING 90, // SK_STEALTH @@ -1644,7 +1644,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 140, // SK_BOWS 140, // SK_CROSSBOWS 140, // SK_DARTS - 140, // SK_RANGED_COMBAT + 140, // SK_THROWING 140, // SK_ARMOUR 110, // SK_DODGING 50, // SK_STEALTH @@ -1699,7 +1699,7 @@ const int spec_skills[ NUM_SPECIES ][40] = 120, // SK_BOWS 120, // SK_CROSSBOWS 120, // SK_DARTS - 120, // SK_RANGED_COMBAT + 120, // SK_THROWING 200, // SK_ARMOUR 120, // SK_DODGING 120, // SK_STEALTH @@ -1761,7 +1761,7 @@ static const skill_type skill_display_order[] = SK_BLANK_LINE, - SK_RANGED_COMBAT, SK_SLINGS, SK_BOWS, SK_CROSSBOWS, SK_DARTS, + SK_BOWS, SK_CROSSBOWS, SK_THROWING, SK_SLINGS, SK_DARTS, SK_BLANK_LINE, @@ -2364,7 +2364,7 @@ void wield_warning(bool newWeapon) // [dshaligram] No more annoying throwing skill warnings. #ifdef OBSOLETE_THROW_SKILL_WARNING // must be a launcher - int effSkill = you.skills[SK_RANGED_COMBAT] * 2 + 1; + int effSkill = you.skills[SK_THROWING] * 2 + 1; int shoot_skill = 0; switch (wepType) diff --git a/crawl-ref/source/spells4.cc b/crawl-ref/source/spells4.cc index 4ad98dcf7e..d798305400 100644 --- a/crawl-ref/source/spells4.cc +++ b/crawl-ref/source/spells4.cc @@ -1937,7 +1937,7 @@ void cast_evaporate(int pow) beem.is_beam = false; beem.is_tracer = false; - beem.hit = you.dex / 2 + roll_dice( 2, you.skills[SK_RANGED_COMBAT] / 2 + 1 ); + beem.hit = you.dex / 2 + roll_dice( 2, you.skills[SK_THROWING] / 2 + 1 ); beem.damage = dice_def( 1, 0 ); // no damage, just producing clouds beem.ench_power = pow; // used for duration only? @@ -2014,7 +2014,7 @@ void cast_evaporate(int pow) } if (coinflip()) - exercise( SK_RANGED_COMBAT, 1 ); + exercise( SK_THROWING, 1 ); fire_beam(beem); diff --git a/crawl-ref/source/tutorial.cc b/crawl-ref/source/tutorial.cc index d5acaff881..f2dcbe2cfe 100644 --- a/crawl-ref/source/tutorial.cc +++ b/crawl-ref/source/tutorial.cc @@ -1175,8 +1175,7 @@ void learned_something_new(tutorial_event_type seen_what, int x, int y) if (Options.tutorial_type == TUT_BERSERK_CHAR) text << "in melee battle will raise your Axes and Fighting skills."; else if (Options.tutorial_type == TUT_RANGER_CHAR) - text << "using bow and arrows will raise your Bows and Ranged Combat " - "skills."; + text << "using bow and arrows will raise your Bows skill."; else // if (Options.tutorial_type == TUT_MAGIC_CHAR) text << "with offensive magic will raise your Conjurations and " "Spellcasting skills."; @@ -1617,8 +1616,8 @@ void tutorial_describe_item(item_def &item) } if (is_throwable(item, you.body_size()) && !long_text) { - ostr << "\n\nSome weapons (including this one), can also be used " - "for ranged combat. "; + ostr << "\n\nSome weapons (including this one), can also be " + "<w>t<magenta>hrown. "; ostr << tut_throw_stuff(item); long_text = true; } |