summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2007-09-11 11:39:55 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2007-09-11 11:39:55 +0000
commite301d18c8ff880246d068b2081225a2385df206d (patch)
tree595349c2842461f0f076f562e9d4288f9b3b8277
parent7b339ae5ffe5b43232561f9fc2980aae1321b9a6 (diff)
downloadcrawl-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.cc7
-rw-r--r--crawl-ref/source/clua.cc2
-rw-r--r--crawl-ref/source/debug.cc2
-rw-r--r--crawl-ref/source/effects.cc4
-rw-r--r--crawl-ref/source/enum.h2
-rw-r--r--crawl-ref/source/item_use.cc54
-rw-r--r--crawl-ref/source/itemprop.cc2
-rw-r--r--crawl-ref/source/newgame.cc54
-rw-r--r--crawl-ref/source/ouch.cc2
-rw-r--r--crawl-ref/source/religion.cc2
-rw-r--r--crawl-ref/source/skills.cc18
-rw-r--r--crawl-ref/source/skills2.cc80
-rw-r--r--crawl-ref/source/spells4.cc4
-rw-r--r--crawl-ref/source/tutorial.cc7
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;
}