summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2006-08-19 18:08:57 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2006-08-19 18:08:57 +0000
commit12ec4715196925cb313b3025498f5ac011b48789 (patch)
tree885f928af16d1984211dbd1242338eda55708b85
parent1f16b54afe3ce0f5f23cddae2d7d6f3fc7252615 (diff)
downloadcrawl-ref-12ec4715196925cb313b3025498f5ac011b48789.tar.gz
crawl-ref-12ec4715196925cb313b3025498f5ac011b48789.zip
r70@ODIN: dshaligram | 2006-08-19 23:40:12 +051800
- Fixed death drake breath attack. - Fixed broken launcher acquirement. - Fixed longbow being wieldable by small humanoids. - Fixed draconian caller summons. - Tweaked swamp drake breath attack from cloud to beam+cloud. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup@24 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/source/beam.cc3
-rw-r--r--crawl-ref/source/effects.cc15
-rw-r--r--crawl-ref/source/item_use.cc2
-rw-r--r--crawl-ref/source/monstuff.cc3
-rw-r--r--crawl-ref/source/mstuff2.cc11
-rw-r--r--crawl-ref/source/randart.cc4
6 files changed, 25 insertions, 13 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index 2619de6658..544a82f032 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -2442,6 +2442,9 @@ static void beam_explodes(struct bolt &beam, int x, int y)
if (strcmp(beam.beam_name, "foul vapour") == 0)
{
cloud_type = YOU_KILL(beam.thrower) ? CLOUD_STINK : CLOUD_STINK_MON;
+ if (beam.flavour == BEAM_MIASMA)
+ cloud_type = YOU_KILL(beam.thrower) ?
+ CLOUD_MIASMA : CLOUD_MIASMA_MON;
big_cloud( cloud_type, x, y, 0, 9 );
return;
}
diff --git a/crawl-ref/source/effects.cc b/crawl-ref/source/effects.cc
index 5e2d5fb0c6..c2c2db97a5 100644
--- a/crawl-ref/source/effects.cc
+++ b/crawl-ref/source/effects.cc
@@ -564,11 +564,7 @@ bool acquirement(unsigned char force_class, int agent)
int weight = 0;
- if (i < SK_SLINGS)
- weight = you.skills[i] + 3;
- else
- weight = (you.skills[i] + 2) * 2 / 3;
-
+ weight = you.skills[i] + 3;
if (weight)
{
count += weight;
@@ -605,7 +601,10 @@ bool acquirement(unsigned char force_class, int agent)
// "rare" weapons are only considered some of the time...
// still, the chance is higher than actual random creation
- if (weapon_skill( OBJ_WEAPONS, i ) == skill
+ int wskill = range_skill(OBJ_WEAPONS, i);
+ if (wskill == SK_RANGED_COMBAT)
+ wskill = weapon_skill(OBJ_WEAPONS, i);
+ if (wskill == skill
&& (i < WPN_EVENINGSTAR || i > WPN_BROAD_AXE
|| (i >= WPN_HAMMER && i <= WPN_SABRE)
|| one_chance_in(4)))
@@ -1250,6 +1249,10 @@ bool acquirement(unsigned char force_class, int agent)
case SP_SPRIGGAN:
switch (mitm[thing_created].sub_type)
{
+ case WPN_LONGBOW:
+ mitm[thing_created].sub_type = WPN_BOW;
+ break;
+
case WPN_GREAT_SWORD:
case WPN_TRIPLE_SWORD:
mitm[thing_created].sub_type =
diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc
index 3c342d7c95..65079d11f3 100644
--- a/crawl-ref/source/item_use.cc
+++ b/crawl-ref/source/item_use.cc
@@ -106,6 +106,7 @@ bool can_wield(const item_def& weapon)
|| weapon.sub_type == WPN_GLAIVE
|| weapon.sub_type == WPN_GIANT_CLUB
|| weapon.sub_type == WPN_GIANT_SPIKED_CLUB
+ || weapon.sub_type == WPN_LONGBOW
|| weapon.sub_type == WPN_SCYTHE))
return false;
@@ -267,6 +268,7 @@ bool wield_weapon(bool auto_wield, int slot, bool show_weff_messages)
|| you.inv[item_slot].sub_type == WPN_GLAIVE
|| you.inv[item_slot].sub_type == WPN_GIANT_CLUB
|| you.inv[item_slot].sub_type == WPN_GIANT_SPIKED_CLUB
+ || you.inv[item_slot].sub_type == WPN_LONGBOW
|| you.inv[item_slot].sub_type == WPN_SCYTHE))
{
mpr("That's too large for you to wield.");
diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc
index 0bb43b9de2..9602023c15 100644
--- a/crawl-ref/source/monstuff.cc
+++ b/crawl-ref/source/monstuff.cc
@@ -4967,7 +4967,8 @@ static void mons_in_cloud(struct monsters *monster)
case CLOUD_MIASMA_MON:
simple_monster_message(monster, " is engulfed in a dark miasma!");
- if (mons_holiness(monster) != MH_NATURAL)
+ if (mons_holiness(monster) != MH_NATURAL
+ || monster->type == MONS_DEATH_DRAKE)
return;
poison_monster(monster, (env.cloud[wc].type == CLOUD_MIASMA));
diff --git a/crawl-ref/source/mstuff2.cc b/crawl-ref/source/mstuff2.cc
index 2c2dc1d927..f514ab8ddd 100644
--- a/crawl-ref/source/mstuff2.cc
+++ b/crawl-ref/source/mstuff2.cc
@@ -559,9 +559,9 @@ void mons_cast(struct monsters *monster, struct bolt &pbolt, int spell_cast)
sumcount2 = 1 + random2(3) + random2( monster->hit_dice / 5 + 1 );
- duration = 2 + monster->hit_dice / 5;
- if (duration > 6)
- duration = 6;
+ duration = ENCH_ABJ_II + monster->hit_dice / 10;
+ if (duration > ENCH_ABJ_VI)
+ duration = ENCH_ABJ_VI;
for (sumcount = 0; sumcount < sumcount2; sumcount++)
{
@@ -1634,7 +1634,7 @@ bolt mons_spells( int spell_cast, int power )
beam.thrower = KILL_MON;
beam.flavour = BEAM_POISON;
beam.hit = 7 + random2(power) / 80;
- beam.is_beam = false;
+ beam.is_beam = true;
beam.is_big_cloud = true;
break;
@@ -1646,7 +1646,8 @@ bolt mons_spells( int spell_cast, int power )
beam.thrower = KILL_MON;
beam.flavour = BEAM_MIASMA;
beam.hit = 80 + power / 20;
- beam.is_beam = false;
+ beam.is_beam = true;
+ beam.is_big_cloud = true;
beam.range = beam.rangeMax = 8;
break;
diff --git a/crawl-ref/source/randart.cc b/crawl-ref/source/randart.cc
index 57558ffeab..5d2ef93188 100644
--- a/crawl-ref/source/randart.cc
+++ b/crawl-ref/source/randart.cc
@@ -826,7 +826,9 @@ void randart_wpn_properties( const item_def &item,
proprt[RAP_BRAND] = (tmp >= 18) ? SPWPN_SPEED :
(tmp >= 14) ? SPWPN_PROTECTION :
(tmp >= 10) ? SPWPN_VENOM
- : SPWPN_FLAME + (tmp % 2);
+ : SPWPN_VORPAL + random2(3);
+ if (proprt[RAP_BRAND] == SPWPN_VORPAL && atype == WPN_BLOWGUN)
+ proprt[RAP_BRAND] = SPWPN_VENOM;
}
}