summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjohnny shelley <jwshelley@shell-23003.(none)>2009-11-15 11:45:34 +0000
committerJude Brown <bookofjude@users.sourceforge.net>2009-11-15 22:54:17 +1000
commit0510022aff86ed63f6f3c7c7909a629e4c9922c4 (patch)
treefb3fb1a6b870bc3c1ca6ad468868ff1cdb29edcc
parentfa1a2da73b9b0e7e272cf1d26c6333f26404efd4 (diff)
downloadcrawl-ref-0510022aff86ed63f6f3c7c7909a629e4c9922c4.tar.gz
crawl-ref-0510022aff86ed63f6f3c7c7909a629e4c9922c4.zip
Restore Warper class, Arcane Marksman tweaks.
Adds warper back and moves arcane marksman close to hunter in selection screen. Changes spell level of exploding ammo to 5. Fixes abbreviation of Am. Removes scroll of blink from AM starting equipment. Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>
-rw-r--r--crawl-ref/docs/crawl_manual.txt6
-rw-r--r--crawl-ref/source/enum.h3
-rw-r--r--crawl-ref/source/jobs.cc12
-rw-r--r--crawl-ref/source/newgame.cc30
-rw-r--r--crawl-ref/source/ng-restr.cc26
-rw-r--r--crawl-ref/source/spl-data.h2
-rw-r--r--crawl-ref/source/tilepick.cc10
7 files changed, 79 insertions, 10 deletions
diff --git a/crawl-ref/docs/crawl_manual.txt b/crawl-ref/docs/crawl_manual.txt
index 3fd7ac0353..20046575b3 100644
--- a/crawl-ref/docs/crawl_manual.txt
+++ b/crawl-ref/docs/crawl_manual.txt
@@ -1962,6 +1962,12 @@ Reavers:
Reavers are warriors who learn the magics of destruction in order to
complement their deadliness in hand combat.
+Warpers:
+ --------
+Warpers specialise in translocation magic, and are experts in travelling
+long distances and positioning themselves precisely and use this to
+their advantage in melee or missile combat.
+
Arcane Marksmen:
--------
Arcane Marksmen specialize in dealing ranged damage via enchanted
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index 0a9f8193aa..08a30334c6 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -1456,9 +1456,10 @@ enum job_type
JOB_REAVER,
JOB_STALKER,
JOB_MONK, // 25
- JOB_ARCANE_MARKSMAN,
+ JOB_WARPER,
JOB_WANDERER, // 27
JOB_ARTIFICER, // 28 -Greenberg/Bane
+ JOB_ARCANE_MARKSMAN,
NUM_JOBS, // always after the last job
JOB_UNKNOWN = 100
diff --git a/crawl-ref/source/jobs.cc b/crawl-ref/source/jobs.cc
index 3968356636..8e240703a0 100644
--- a/crawl-ref/source/jobs.cc
+++ b/crawl-ref/source/jobs.cc
@@ -21,8 +21,8 @@ static job_type old_jobs_order[] = {
JOB_CHAOS_KNIGHT, JOB_TRANSMUTER,
JOB_HEALER, JOB_REAVER,
JOB_STALKER, JOB_MONK,
- JOB_ARCANE_MARKSMAN, JOB_WANDERER,
- JOB_ARTIFICER
+ JOB_WARPER, JOB_WANDERER,
+ JOB_ARTIFICER, JOB_ARCANE_MARKSMAN
};
// First plain fighters, then religious fighters, then spell-casting
@@ -36,7 +36,7 @@ static job_type new_jobs_order[] = {
JOB_HEALER, JOB_CHAOS_KNIGHT,
JOB_DEATH_KNIGHT, JOB_CRUSADER,
// general and niche spellcasters (incl. Crusader above)
- JOB_REAVER, JOB_ARCANE_MARKSMAN,
+ JOB_REAVER, JOB_WARPER,
JOB_WIZARD, JOB_CONJURER,
JOB_ENCHANTER, JOB_SUMMONER,
JOB_NECROMANCER, JOB_TRANSMUTER,
@@ -46,7 +46,7 @@ static job_type new_jobs_order[] = {
JOB_VENOM_MAGE, JOB_STALKER,
JOB_THIEF, JOB_ASSASSIN,
JOB_HUNTER, JOB_ARTIFICER,
- JOB_WANDERER
+ JOB_ARCANE_MARKSMAN, JOB_WANDERER
};
job_type get_class(const int index)
@@ -61,7 +61,7 @@ job_type get_class(const int index)
static const char * Class_Abbrev_List[ NUM_JOBS ] =
{ "Fi", "Wz", "Pr", "Th", "Gl", "Ne", "Pa", "As", "Be", "Hu",
"Cj", "En", "FE", "IE", "Su", "AE", "EE", "Cr", "DK", "VM",
- "CK", "Tm", "He", "Re", "St", "Mo", "Wr", "Wn", "Ar" };
+ "CK", "Tm", "He", "Re", "St", "Mo", "Wr", "Wn", "Ar", "Am" };
static const char * Class_Name_List[ NUM_JOBS ] =
{ "Fighter", "Wizard", "Priest", "Thief", "Gladiator", "Necromancer",
@@ -69,7 +69,7 @@ static const char * Class_Name_List[ NUM_JOBS ] =
"Fire Elementalist", "Ice Elementalist", "Summoner", "Air Elementalist",
"Earth Elementalist", "Crusader", "Death Knight", "Venom Mage",
"Chaos Knight", "Transmuter", "Healer", "Reaver", "Stalker",
- "Monk", "Arcane Marksman", "Wanderer", "Artificer" };
+ "Monk", "Warper", "Wanderer", "Artificer", "Arcane Marksman" };
int get_class_index_by_abbrev(const char *abbrev)
{
diff --git a/crawl-ref/source/newgame.cc b/crawl-ref/source/newgame.cc
index d6e6d578db..1057bccb07 100644
--- a/crawl-ref/source/newgame.cc
+++ b/crawl-ref/source/newgame.cc
@@ -1350,6 +1350,7 @@ static void _give_last_paycheck(job_type which_job)
break;
case JOB_WANDERER:
+ case JOB_WARPER:
case JOB_ARCANE_MARKSMAN:
case JOB_ASSASSIN:
you.gold = 50;
@@ -1456,6 +1457,7 @@ static void _jobs_stat_init(job_type which_job)
case JOB_STALKER: s = 2; i = 4; d = 6; hp = 12; mp = 1; break;
case JOB_HUNTER: s = 4; i = 3; d = 5; hp = 13; mp = 0; break;
+ case JOB_WARPER: s = 3; i = 5; d = 4; hp = 12; mp = 1; break;
case JOB_ARCANE_MARKSMAN: s = 3; i = 5; d = 4; hp = 12; mp = 1; break;
case JOB_MONK: s = 3; i = 2; d = 7; hp = 13; mp = 0; break;
@@ -4251,6 +4253,32 @@ bool _give_items_skills()
weap_skill = 3;
break;
+ case JOB_WARPER:
+ _newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_SHORT_SWORD);
+
+ if (!_choose_weapon())
+ return (false);
+
+ if (you.inv[0].quantity < 1)
+ _newgame_clear_item(0);
+
+ _newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_LEATHER_ARMOUR,
+ ARM_ROBE);
+ _newgame_make_item(2, EQ_NONE, OBJ_BOOKS, BOOK_SPATIAL_TRANSLOCATIONS);
+
+ // One free escape.
+ _newgame_make_item(3, EQ_NONE, OBJ_SCROLLS, SCR_BLINKING);
+ _newgame_make_item(4, EQ_NONE, OBJ_MISSILES, MI_DART, -1, 20);
+
+ you.skills[SK_FIGHTING] = 1;
+ you.skills[SK_ARMOUR] = 1;
+ you.skills[SK_DODGING] = 2;
+ you.skills[SK_SPELLCASTING] = 2;
+ you.skills[SK_TRANSLOCATIONS] = 3;
+ you.skills[SK_DARTS] = 1;
+ weap_skill = 3;
+ break;
+
case JOB_ARCANE_MARKSMAN:
_newgame_make_item(0, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
@@ -4308,8 +4336,6 @@ bool _give_items_skills()
if (!_choose_book(3, BOOK_ELEMENTAL_MISSILES, 2))
return (false);
- _newgame_make_item(4, EQ_NONE, OBJ_SCROLLS, SCR_BLINKING);
-
you.skills[SK_DODGING] = 2;
you.skills[SK_SPELLCASTING] = 2;
diff --git a/crawl-ref/source/ng-restr.cc b/crawl-ref/source/ng-restr.cc
index cf4d7bd5b2..75d676b90f 100644
--- a/crawl-ref/source/ng-restr.cc
+++ b/crawl-ref/source/ng-restr.cc
@@ -340,6 +340,32 @@ char_choice_restriction class_allowed(species_type speci,
return (CC_UNRESTRICTED);
}
+ case JOB_WARPER:
+ switch (speci)
+ {
+ case SP_HUMAN:
+ case SP_DEEP_ELF:
+ case SP_SLUDGE_ELF:
+ case SP_MOUNTAIN_DWARF:
+ case SP_DEEP_DWARF:
+ case SP_HILL_ORC:
+ case SP_MERFOLK:
+ 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:
+ case SP_DEMONSPAWN:
+ case SP_MUMMY:
+ case SP_GHOUL:
+ case SP_VAMPIRE:
+ return (CC_RESTRICTED);
+ default:
+ return (CC_UNRESTRICTED);
+ }
case JOB_ARCANE_MARKSMAN:
switch (speci)
{
diff --git a/crawl-ref/source/spl-data.h b/crawl-ref/source/spl-data.h
index 24f171e2e6..c4e73a50c5 100644
--- a/crawl-ref/source/spl-data.h
+++ b/crawl-ref/source/spl-data.h
@@ -2541,7 +2541,7 @@
SPELL_EXPLODING_AMMUNITION, "Exploding Ammunition",
SPTYP_ENCHANTMENT | SPTYP_FIRE | SPTYP_AIR,
SPFLAG_HELPFUL | SPFLAG_BATTLE,
- 7,
+ 5,
0,
-1,-1,
0,
diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc
index 6d051badc4..e7b8389051 100644
--- a/crawl-ref/source/tilepick.cc
+++ b/crawl-ref/source/tilepick.cc
@@ -3471,6 +3471,16 @@ void tilep_job_default(int job, int gender, int *parts)
parts[TILEP_PART_BOOTS] = TILEP_BOOTS_SHORT_BROWN;
break;
+ case JOB_WARPER:
+ parts[TILEP_PART_BODY] = TILEP_BODY_ROBE_BROWN;
+ parts[TILEP_PART_HELM] = TILEP_HELM_GANDALF;
+ parts[TILEP_PART_HAND1] = TILEP_HAND1_SARUMAN;
+ parts[TILEP_PART_HAND2] = TILEP_HAND2_BOOK_WHITE;
+ parts[TILEP_PART_BOOTS] = TILEP_BOOTS_SHORT_BROWN;
+ parts[TILEP_PART_CLOAK] = TILEP_CLOAK_RED;
+ break;
+
+
case JOB_ARCANE_MARKSMAN:
parts[TILEP_PART_BODY] = TILEP_BODY_ROBE_BROWN;
parts[TILEP_PART_HELM] = TILEP_HELM_GANDALF;