ok, this will need to be modified slightly, to fit the classes you have +
would like to add, but it should work ok.
more or less... =)
Spaz
diff -c src2/class.c src/class.c
*** src2/class.c Fri Aug 4 10:48:58 1995
--- src/class.c Tue Aug 22 10:08:17 1995
***************
*** 35,40 ****
--- 35,41 ----
"Th",
"Wa",
"Jd",
+ "Sa",
"\n"
};
***************
*** 54,59 ****
--- 55,61 ----
"Thief",
"Warrior",
"Jedi Knight",
+ "Samurai",
"\n"
};
***************
*** 75,81 ****
" [T]hief\r\n"
" [W]arrior\r\n"
" [M]agic-user\r\n"
! " [J]edi Knight\r\n";
/* The menu for choosing a race in interpreter.c: */
const char *race_menu =
--- 77,84 ----
" [T]hief\r\n"
" [W]arrior\r\n"
" [M]agic-user\r\n"
! " [J]edi Knight\r\n"
! " [S]amurai\r\n";
/* The menu for choosing a race in interpreter.c: */
const char *race_menu =
***************
*** 114,119 ****
--- 117,125 ----
case 'j':
return CLASS_JEDI;
break;
+ case 's':
+ return CLASS_SAMURAI;
+ break;
default:
return CLASS_UNDEFINED;
break;
***************
*** 180,185 ****
--- 186,194 ----
case 'j':
return (1 << 4);
break;
+ case 's':
+ return (1 << 5);
+ break;
default:
return 0;
break;
***************
*** 249,259 ****
/* #define PRAC_TYPE 3 should it say 'spell' or 'skill'? */
int prac_params[4][NUM_CLASSES] = {
! /* MAG CLE THE WAR JEDI*/
! {95, 95, 85, 80, 85}, /* learned level */
! {100, 100, 12, 12, 20}, /* max per prac */
! {25, 25, 0, 0, 5}, /* min per pac */
! {SPELL, SPELL, SKILL, SKILL, SKILL} /* prac name */
};
--- 258,268 ----
/* #define PRAC_TYPE 3 should it say 'spell' or 'skill'? */
int prac_params[4][NUM_CLASSES] = {
! /* MAG CLE THE WAR JEDI SAMMY*/
! {95, 95, 85, 80, 85, 85}, /* learned level */
! {100, 100, 12, 12, 20, 20}, /* max per prac */
! {25, 25, 0, 0, 5, 5}, /* min per pac */
! {SPELL, SPELL, SKILL, SKILL, SKILL, SKILL} /* prac name */
};
***************
*** 271,276 ****
--- 280,287 ----
{CLASS_THIEF, 3027, SCMD_EAST},
{CLASS_WARRIOR, 3021, SCMD_EAST},
+ /* none for new classes - need rooms for them */
+
/* Brass Dragon */
{-999 /* all */ , 5065, SCMD_WEST},
***************
*** 318,325 ****
/* JEDI */
/* 0 5 10 15 */
{100, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3,
! 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
/* 20 25 30 */
};
--- 329,340 ----
/* JEDI */
/* 0 5 10 15 */
{100, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3,
! 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
/* 20 25 30 */
+
+ /* SAMURAI */
+ {100, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
};
***************
*** 459,464 ****
--- 474,480 ----
if (ch->real_abils.str >= 18)
ch->real_abils.str_add += number(0, 100);
break;
+ case CLASS_SAMURAI:
case CLASS_JEDI:
ch->real_abils.dex += table[0];
ch->real_abils.str += table[1];
***************
*** 520,525 ****
--- 539,545 ----
break;
case CLASS_JEDI:
+ case CLASS_SAMURAI:
SET_SKILL(ch, SKILL_KICK, 15);
break;
***************
*** 583,588 ****
--- 603,609 ----
break;
case CLASS_JEDI:
+ case CLASS_SAMURAI:
add_hp += number(8, 12);
add_mana = number(1, 10);
add_move = number(2, 5);
***************
*** 626,632 ****
(IS_OBJ_STAT(obj, ITEM_ANTI_CLERIC) && IS_CLERIC(ch)) ||
(IS_OBJ_STAT(obj, ITEM_ANTI_WARRIOR) && IS_WARRIOR(ch)) ||
(IS_OBJ_STAT(obj, ITEM_ANTI_THIEF) && IS_THIEF(ch)) ||
! (IS_OBJ_STAT(obj, ITEM_ANTI_JEDI) && IS_JEDI(ch)))
return 1;
else
--- 647,654 ----
(IS_OBJ_STAT(obj, ITEM_ANTI_CLERIC) && IS_CLERIC(ch)) ||
(IS_OBJ_STAT(obj, ITEM_ANTI_WARRIOR) && IS_WARRIOR(ch)) ||
(IS_OBJ_STAT(obj, ITEM_ANTI_THIEF) && IS_THIEF(ch)) ||
! (IS_OBJ_STAT(obj, ITEM_ANTI_JEDI) && IS_JEDI(ch)) ||
! (IS_OBJ_STAT(obj, ITEM_ANTI_SAMURAI) && IS_SAMURAI(ch)))
return 1;
else
***************
*** 817,824 ****
{"the Entity Of The Force", "the Entity Of The Force", 9000000},
{"the God of The Force", "the Goddess of The Force",9500000},
{"the Implementor", "the Implementress", 10000000}
}
-
};
--- 839,881 ----
{"the Entity Of The Force", "the Entity Of The Force", 9000000},
{"the God of The Force", "the Goddess of The Force",9500000},
{"the Implementor", "the Implementress", 10000000}
+ }, /* need to change these names... */
+ {{"the Man", "the Woman", 0},
+ {"the Trainee", "the Trainee", 1},
+ {"the Apprentice Jedi", "the Apprentice Jedi", 1250},
+ {"the Young Jedi", "the Young Jedi", 2500},
+ {"the Inexperienced Jedi", "the Inexperienced Jedi", 5000},
+ {"the Traveling Jedi", "the Traveling Jedi", 10000},
+ {"the Telekinetic Warrior", "the Telekinetic Warrior", 20000},
+ {"the Watchful Warrior", "the Watchful Warrior", 30000},
+ {"the Proud Warrior", "the Proud Warrior", 70000},
+ {"the Strong Warrior", "the Strong Warrior", 110000},
+ {"the Strong Warrior", "the Strong Warrior", 160000},
+ {"the Jedi", "the Jedi", 220000},
+ {"the Jedi", "the Jedi", 440000},
+ {"the Protector", "the Protector", 660000},
+ {"the Protector", "the Protector", 880000},
+ {"the Ranking Jedi", "the Ranking Jedi", 1100000},
+ {"the Ranking Jedi", "the Ranking Jedi", 1500000},
+ {"the Mind Master", "the Mind Master", 2000000},
+ {"the Mind Master", "the Mind Master", 2500000},
+ {"the Jedi Knight", "the Jedi Knight", 3000000},
+ {"the Jedi Knight", "the Jedi Knight", 3500000},
+ {"the Great Jedi", "the Great Jedi", 3650000},
+ {"the Great Jedi", "the Great Jedi", 3800000},
+ {"the Jedi Protector", "the Jedi Protector", 4100000},
+ {"the Jedi Protector", "the Jedi Protector", 4400000},
+ {"the Jedi Master", "the Jedi Master", 4700000},
+ {"the Jedi Master", "the Jedi Master", 5100000},
+ {"the Jedi Lord", "the Jedi Lord", 5500000},
+ {"the Jedi Lord", "the Jedi Lord", 5900000},
+ {"the Jedi Commander", "the Jedi Commander", 6300000},
+ {"the Supreme Jedi Commander", "the Supreme Jedi Commander", 6650000},
+ {"the Immortal Jedi Knight", "the Immortal Jedi Knight", 7000000},
+ {"the Entity Of The Force", "the Entity Of The Force", 9000000},
+ {"the God of The Force", "the Goddess of The Force",9500000},
+ {"the Implementor", "the Implementress", 10000000}
}
};
diff -c src2/constants.c src/constants.c
*** src2/constants.c Fri Aug 4 00:00:49 1995
--- src/constants.c Tue Aug 22 09:12:48 1995
***************
*** 350,355 ****
--- 350,356 ----
"!WARRIOR",
"!SELL",
"!JEDI",
+ "!SAMURAI",
"\n"
};
diff -c src2/shop.c src/shop.c
*** src2/shop.c Mon Jul 24 21:29:03 1995
--- src/shop.c Tue Aug 22 10:10:25 1995
***************
*** 75,81 ****
(IS_CLERIC(ch) && NOTRADE_CLERIC(shop_nr)) ||
(IS_THIEF(ch) && NOTRADE_THIEF(shop_nr)) ||
(IS_JEDI(ch) && NOTRADE_JEDI(shop_nr)) ||
! (IS_WARRIOR(ch) && NOTRADE_WARRIOR(shop_nr))) {
sprintf(buf, "%s %s", GET_NAME(ch), MSG_NO_SELL_CLASS);
do_tell(keeper, buf, cmd_tell, 0);
return (FALSE);
--- 75,83 ----
(IS_CLERIC(ch) && NOTRADE_CLERIC(shop_nr)) ||
(IS_THIEF(ch) && NOTRADE_THIEF(shop_nr)) ||
(IS_JEDI(ch) && NOTRADE_JEDI(shop_nr)) ||
! (IS_WARRIOR(ch) && NOTRADE_WARRIOR(shop_nr)) ||
! (IS_SAMURAI(ch) && NOTRADE_SAMURAI(shop_nr))) {
!
sprintf(buf, "%s %s", GET_NAME(ch), MSG_NO_SELL_CLASS);
do_tell(keeper, buf, cmd_tell, 0);
return (FALSE);
diff -c src2/shop.h src/shop.h
*** src2/shop.h Mon Jul 24 21:48:36 1995
--- src/shop.h Sun Aug 20 20:34:30 1995
***************
*** 67,73 ****
#define TRADE_NOTHIEF 32
#define TRADE_NOWARRIOR 64
#define TRADE_NOJEDI 128
!
struct stack_data {
int data[100];
int len;
--- 67,73 ----
#define TRADE_NOTHIEF 32
#define TRADE_NOWARRIOR 64
#define TRADE_NOJEDI 128
! #define TRADE_NOSAMURAI 256
struct stack_data {
int data[100];
int len;
***************
*** 122,127 ****
--- 122,128 ----
#define NOTRADE_THIEF(i) (IS_SET(SHOP_TRADE_WITH((i)), TRADE_NOTHIEF))
#define NOTRADE_WARRIOR(i) (IS_SET(SHOP_TRADE_WITH((i)), TRADE_NOWARRIOR))
#define NOTRADE_JEDI(i) (IS_SET(SHOP_TRADE_WITH((i)), TRADE_NOJEDI))
+ #define NOTRADE_SAMURAI(i) (IS_SET(SHOP_TRADE_WITH((i)), TRADE_NOSAMURAI))
/* Constant list for printing out who we sell to */
***************
*** 134,139 ****
--- 135,141 ----
"Thief",
"Warrior",
"Jedi",
+ "Samurai",
"\n"
} ;
diff -c src2/spell_parser.c src/spell_parser.c
*** src2/spell_parser.c Fri Jul 28 16:31:05 1995
--- src/spell_parser.c Tue Aug 22 10:30:12 1995
***************
*** 710,716 ****
/* Assign the spells on boot up */
! void spello(int spl, int mlev, int clev, int tlev, int wlev, int jlev,
int max_mana, int min_mana, int mana_change, int minpos,
int targets, int violent, int routines)
{
--- 710,716 ----
/* Assign the spells on boot up */
! void spello(int spl, int mlev, int clev, int tlev, int wlev, int jlev,int slev,
int max_mana, int min_mana, int mana_change, int minpos,
int targets, int violent, int routines)
{
***************
*** 719,724 ****
--- 719,725 ----
spell_info[spl].min_level[CLASS_THIEF] = tlev;
spell_info[spl].min_level[CLASS_WARRIOR] = wlev;
spell_info[spl].min_level[CLASS_JEDI] = jlev;
+ spell_info[spl].min_level[CLASS_SAMURAI] = slev;
spell_info[spl].mana_max = max_mana;
spell_info[spl].mana_min = min_mana;
spell_info[spl].mana_change = mana_change;
***************
*** 731,737 ****
/*
* Arguments for spello calls:
*
! * spellnum, levels (MCTWJ), maxmana, minmana, manachng, minpos, targets,
* violent?, routines.
*
* spellnum: Number of the spell. Usually the symbolic name as defined in
--- 732,738 ----
/*
* Arguments for spello calls:
*
! * spellnum, levels (MCTWJS), maxmana, minmana, manachng, minpos, targets,
* violent?, routines.
*
* spellnum: Number of the spell. Usually the symbolic name as defined in
***************
*** 756,762 ****
*/
#define UU (LVL_IMPL+1)
! #define UNUSED UU,UU,UU,UU,UU,0,0,0,0,0,0,0
#define X LVL_IMMORT
--- 757,763 ----
*/
#define UU (LVL_IMPL+1)
! #define UNUSED UU,UU,UU,UU,UU,UU,0,0,0,0,0,0,0
#define X LVL_IMMORT
***************
*** 767,915 ****
for (i = 1; i <= TOP_SPELL_DEFINE; i++)
spello(i, UNUSED);
/* C L A S S E S M A N A */
! /* Ma Cl Th Wa Jd Max Min Chn */
! spello(SPELL_ARMOR, 4, 1, X, X, X, 30, 15, 3,
POS_FIGHTING, TAR_CHAR_ROOM, FALSE, MAG_AFFECTS);
! spello(SPELL_BLESS, X, 5, X, X,10, 35, 5, 3,
POS_STANDING, TAR_CHAR_ROOM | TAR_OBJ_INV, FALSE, MAG_AFFECTS | MAG_ALTER_OBJS);
! spello(SPELL_BLINDNESS, 9, 6, X, X,15, 35, 25, 1,
POS_STANDING, TAR_CHAR_ROOM | TAR_NOT_SELF, FALSE, MAG_AFFECTS);
! spello(SPELL_BURNING_HANDS, 5, X, X,X, X, 30, 10, 3,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
! spello(SPELL_CALL_LIGHTNING, X, 15, X, X,25, 40, 25, 3,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
! spello(SPELL_CHARM, 16, X, X, X, 7,75, 50, 2,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_NOT_SELF, TRUE, MAG_MANUAL);
! spello(SPELL_CHILL_TOUCH, 3, X, X, X,X, 30, 10, 3,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE | MAG_AFFECTS);
/* C L A S S E S M A N A */
/* Ma Cl Th Wa Jd Max Min Chn */
! spello(SPELL_CLONE, X, X, X, X, X, 80, 65, 5,
POS_STANDING, TAR_CHAR_ROOM | TAR_SELF_ONLY, FALSE, MAG_MANUAL);
! spello(SPELL_COLOR_SPRAY, 11, X, X, X,X, 30, 15, 3,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
! spello(SPELL_CONTROL_WEATHER, X, 17, X, X,X, 75, 25, 5,
POS_STANDING, TAR_IGNORE, FALSE, MAG_MANUAL);
! spello(SPELL_CREATE_FOOD, X, 2, X, X,X, 30, 5, 4,
POS_STANDING, TAR_IGNORE, FALSE, MAG_CREATIONS);
! spello(SPELL_CREATE_WATER, X, 2, X, X,X, 30, 5, 4,
POS_STANDING, TAR_OBJ_INV | TAR_OBJ_EQUIP, FALSE, MAG_CREATIONS);
! spello(SPELL_CURE_BLIND, X, 4, X, X,16, 30, 5, 2,
POS_STANDING, TAR_CHAR_ROOM, FALSE, MAG_UNAFFECTS);
! spello(SPELL_CURE_CRITIC, X, 9, X, X,X, 30, 10, 2,
POS_FIGHTING, TAR_CHAR_ROOM, FALSE, MAG_POINTS);
/* C L A S S E S M A N A */
/* Ma Cl Th Wa Jd Max Min Chn */
! spello(SPELL_CURE_LIGHT, X, 1, X, X, 3,30, 10, 2,
POS_FIGHTING, TAR_CHAR_ROOM, FALSE, MAG_POINTS);
! spello(SPELL_CURSE, 14, X, X, X, 10,80, 50, 2,
POS_STANDING, TAR_CHAR_ROOM | TAR_OBJ_INV, TRUE, MAG_AFFECTS | MAG_ALTER_OBJS);
! spello(SPELL_DETECT_ALIGN, X, 4, X, X,1, 20, 10, 2,
POS_STANDING, TAR_CHAR_ROOM | TAR_SELF_ONLY, FALSE, MAG_AFFECTS);
! spello(SPELL_DETECT_INVIS, 2, 6, X, X,1, 20, 10, 2,
POS_STANDING, TAR_CHAR_ROOM | TAR_SELF_ONLY, FALSE, MAG_AFFECTS);
! spello(SPELL_DETECT_MAGIC, 2, X, X, X,1, 20, 10, 2,
POS_STANDING, TAR_CHAR_ROOM | TAR_SELF_ONLY, FALSE, MAG_AFFECTS);
/* C L A S S E S M A N A */
/* Ma Cl Th Wa Jd Max Min Chn */
! spello(SPELL_DETECT_POISON, 10, 3, X, X,1, 15, 5, 1,
POS_STANDING, TAR_CHAR_ROOM | TAR_OBJ_INV | TAR_OBJ_ROOM, FALSE, MAG_MANUAL);
! spello(SPELL_DISPEL_EVIL, X, 14, X, X,20, 40, 25, 3,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
! spello(SPELL_DISPEL_GOOD, X, 14, X, X,20, 40, 25, 3,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
! spello(SPELL_EARTHQUAKE, X, 12, X, X, X,40, 25, 3,
POS_FIGHTING, TAR_IGNORE, TRUE, MAG_AREAS);
! spello(SPELL_ENCHANT_WEAPON, 26, X, X, X,X, 150, 100, 10,
POS_STANDING, TAR_OBJ_INV | TAR_OBJ_EQUIP, FALSE, MAG_MANUAL);
! spello(SPELL_ENERGY_DRAIN, 13, X, X, X, 17,40, 25, 1,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE | MAG_MANUAL);
! spello(SPELL_GROUP_ARMOR, X, 9, X, X, X,50, 30, 2,
POS_STANDING, TAR_IGNORE, FALSE, MAG_GROUPS);
/* C L A S S E S M A N A */
/* Ma Cl Th Wa Jd Max Min Chn */
! spello(SPELL_FIREBALL, 15, X, X, X, X,40, 30, 2,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
! spello(SPELL_GROUP_HEAL, X, 22, X, X, X,80, 60, 5,
POS_STANDING, TAR_IGNORE, FALSE, MAG_GROUPS);
! spello(SPELL_HARM, X, 19, X, X, X,75, 45, 3,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
! spello(SPELL_HEAL, X, 16, X, X, X,60, 40, 3,
POS_FIGHTING, TAR_CHAR_ROOM, FALSE, MAG_POINTS | MAG_AFFECTS | MAG_UNAFFECTS);
! spello(SPELL_INFRAVISION, 3, 7, X, X, 4,25, 10, 1,
POS_STANDING, TAR_CHAR_ROOM | TAR_SELF_ONLY, FALSE, MAG_AFFECTS);
! spello(SPELL_INVISIBLE, 4, X, X, X, 5,35, 25, 1,
POS_STANDING, TAR_CHAR_ROOM | TAR_OBJ_INV | TAR_OBJ_ROOM, FALSE, MAG_AFFECTS | MAG_ALTER_OBJS);
! spello(SPELL_LIGHTNING_BOLT, 9, X, X, X, 11,30, 15, 1,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
/* C L A S S E S M A N A */
/* Ma Cl Th Wa Jd Max Min Chn */
! spello(SPELL_LOCATE_OBJECT, 6, X, X, X, 14,25, 20, 1,
POS_STANDING, TAR_OBJ_WORLD, FALSE, MAG_MANUAL);
! spello(SPELL_MAGIC_MISSILE, 1, X, X, X, 5,25, 10, 3,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
! spello(SPELL_POISON, X, X, X, X, X,50, 20, 3,
POS_STANDING, TAR_CHAR_ROOM | TAR_NOT_SELF | TAR_OBJ_INV, TRUE, MAG_AFFECTS | MAG_ALTER_OBJS);
! spello(SPELL_PROT_FROM_EVIL, X, 8, X, X, 13,40, 10, 3,
POS_STANDING, TAR_CHAR_ROOM | TAR_SELF_ONLY, FALSE, MAG_AFFECTS);
! spello(SPELL_REMOVE_CURSE, X, 26, X, X, X,45, 25, 5,
POS_STANDING, TAR_CHAR_ROOM | TAR_OBJ_INV, FALSE, MAG_UNAFFECTS | MAG_ALTER_OBJS);
! spello(SPELL_SANCTUARY, X, 15, X, X, 22, 110, 85, 5,
POS_STANDING, TAR_CHAR_ROOM, FALSE, MAG_AFFECTS);
! spello(SPELL_SHOCKING_GRASP, 7, X, X, X, X,30, 15, 3,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
/* C L A S S E S M A N A */
/* Ma Cl Th Wa Jd Max Min Chn */
! spello(SPELL_SLEEP, 8, X, X, X, 16,40, 25, 5,
POS_STANDING, TAR_CHAR_ROOM, TRUE, MAG_AFFECTS);
! spello(SPELL_STRENGTH, 6, X, X, X, X,35, 30, 1,
POS_STANDING, TAR_CHAR_ROOM, FALSE, MAG_AFFECTS);
! spello(SPELL_SUMMON, X, 10, X, X, X,75, 50, 3,
POS_STANDING, TAR_CHAR_WORLD | TAR_NOT_SELF, FALSE, MAG_MANUAL);
! spello(SPELL_WORD_OF_RECALL, X, 12, X, X,X, 20, 10, 2,
POS_FIGHTING, TAR_CHAR_ROOM, FALSE, MAG_MANUAL);
! spello(SPELL_REMOVE_POISON, X, 10, X, X, X,40, 8, 4,
POS_STANDING, TAR_CHAR_ROOM | TAR_OBJ_INV | TAR_OBJ_ROOM, FALSE, MAG_UNAFFECTS | MAG_ALTER_OBJS);
! spello(SPELL_SENSE_LIFE, X, X, X, X, 18,20, 10, 2,
POS_STANDING, TAR_CHAR_ROOM | TAR_SELF_ONLY, FALSE, MAG_AFFECTS);
/*
--- 768,916 ----
for (i = 1; i <= TOP_SPELL_DEFINE; i++)
spello(i, UNUSED);
/* C L A S S E S M A N A */
! /* Ma Cl Th Wa Jd Sa Max Min Chn */
! spello(SPELL_ARMOR, 4, 1, X, X, X, 8, 30, 15, 3,
POS_FIGHTING, TAR_CHAR_ROOM, FALSE, MAG_AFFECTS);
! spello(SPELL_BLESS, X, 5, X, X, 10, 10, 35, 5, 3,
POS_STANDING, TAR_CHAR_ROOM | TAR_OBJ_INV, FALSE, MAG_AFFECTS | MAG_ALTER_OBJS);
! spello(SPELL_BLINDNESS, 9, 6, X, X, 15, 15, 35, 25, 1,
POS_STANDING, TAR_CHAR_ROOM | TAR_NOT_SELF, FALSE, MAG_AFFECTS);
! spello(SPELL_BURNING_HANDS, 5, X, X,X, X, X,30, 10, 3,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
! spello(SPELL_CALL_LIGHTNING, X, 15, X, X,25,25, 40, 25, 3,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
! spello(SPELL_CHARM, 16, X, X, X, 7, X,75, 50, 2,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_NOT_SELF, TRUE, MAG_MANUAL);
! spello(SPELL_CHILL_TOUCH, 3, X, X, X, X, X, 30, 10, 3,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE | MAG_AFFECTS);
/* C L A S S E S M A N A */
/* Ma Cl Th Wa Jd Max Min Chn */
! spello(SPELL_CLONE, X, X, X, X, X, X, 80, 65, 5,
POS_STANDING, TAR_CHAR_ROOM | TAR_SELF_ONLY, FALSE, MAG_MANUAL);
! spello(SPELL_COLOR_SPRAY, 11, X, X, X,X,X, 30, 15, 3,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
! spello(SPELL_CONTROL_WEATHER, X, 17, X, X,X,X, 75, 25, 5,
POS_STANDING, TAR_IGNORE, FALSE, MAG_MANUAL);
! spello(SPELL_CREATE_FOOD, X, 2, X, X,X,X, 30, 5, 4,
POS_STANDING, TAR_IGNORE, FALSE, MAG_CREATIONS);
! spello(SPELL_CREATE_WATER, X, 2, X, X,X,X, 30, 5, 4,
POS_STANDING, TAR_OBJ_INV | TAR_OBJ_EQUIP, FALSE, MAG_CREATIONS);
! spello(SPELL_CURE_BLIND, X, 4, X, X,16,X, 30, 5, 2,
POS_STANDING, TAR_CHAR_ROOM, FALSE, MAG_UNAFFECTS);
! spello(SPELL_CURE_CRITIC, X, 9, X, X,X, 25,30, 10, 2,
POS_FIGHTING, TAR_CHAR_ROOM, FALSE, MAG_POINTS);
/* C L A S S E S M A N A */
/* Ma Cl Th Wa Jd Max Min Chn */
! spello(SPELL_CURE_LIGHT, X, 1, X, X, 3,3,30, 10, 2,
POS_FIGHTING, TAR_CHAR_ROOM, FALSE, MAG_POINTS);
! spello(SPELL_CURSE, 14, X, X, X, 10,10,80, 50, 2,
POS_STANDING, TAR_CHAR_ROOM | TAR_OBJ_INV, TRUE, MAG_AFFECTS | MAG_ALTER_OBJS);
! spello(SPELL_DETECT_ALIGN, X, 4, X, X,1,1, 20, 10, 2,
POS_STANDING, TAR_CHAR_ROOM | TAR_SELF_ONLY, FALSE, MAG_AFFECTS);
! spello(SPELL_DETECT_INVIS, 2, 6, X, X,1,1, 20, 10, 2,
POS_STANDING, TAR_CHAR_ROOM | TAR_SELF_ONLY, FALSE, MAG_AFFECTS);
! spello(SPELL_DETECT_MAGIC, 2, X, X, X,1,1, 20, 10, 2,
POS_STANDING, TAR_CHAR_ROOM | TAR_SELF_ONLY, FALSE, MAG_AFFECTS);
/* C L A S S E S M A N A */
/* Ma Cl Th Wa Jd Max Min Chn */
! spello(SPELL_DETECT_POISON, 10, 3, X, X,1,1, 15, 5, 1,
POS_STANDING, TAR_CHAR_ROOM | TAR_OBJ_INV | TAR_OBJ_ROOM, FALSE, MAG_MANUAL);
! spello(SPELL_DISPEL_EVIL, X, 14, X, X,20,20, 40, 25, 3,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
! spello(SPELL_DISPEL_GOOD, X, 14, X, X,20,20, 40, 25, 3,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
! spello(SPELL_EARTHQUAKE, X, 12, X, X, X, X,40, 25, 3,
POS_FIGHTING, TAR_IGNORE, TRUE, MAG_AREAS);
! spello(SPELL_ENCHANT_WEAPON, 26, X, X, X,X,X, 150, 100, 10,
POS_STANDING, TAR_OBJ_INV | TAR_OBJ_EQUIP, FALSE, MAG_MANUAL);
! spello(SPELL_ENERGY_DRAIN, 13, X, X, X, 17,17,40, 25, 1,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE | MAG_MANUAL);
! spello(SPELL_GROUP_ARMOR, X, 9, X, X, X,X,50, 30, 2,
POS_STANDING, TAR_IGNORE, FALSE, MAG_GROUPS);
/* C L A S S E S M A N A */
/* Ma Cl Th Wa Jd Max Min Chn */
! spello(SPELL_FIREBALL, 15, X, X, X, X,X,40, 30, 2,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
! spello(SPELL_GROUP_HEAL, X, 22, X, X, X,28,80, 60, 5,
POS_STANDING, TAR_IGNORE, FALSE, MAG_GROUPS);
! spello(SPELL_HARM, X, 19, X, X, X,X,75, 45, 3,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
! spello(SPELL_HEAL, X, 16, X, X, X,25,60, 40, 3,
POS_FIGHTING, TAR_CHAR_ROOM, FALSE, MAG_POINTS | MAG_AFFECTS | MAG_UNAFFECTS);
! spello(SPELL_INFRAVISION, 3, 7, X, X, 4,4, 25, 10, 1,
POS_STANDING, TAR_CHAR_ROOM | TAR_SELF_ONLY, FALSE, MAG_AFFECTS);
! spello(SPELL_INVISIBLE, 4, X, X, X, 5,X,35, 25, 1,
POS_STANDING, TAR_CHAR_ROOM | TAR_OBJ_INV | TAR_OBJ_ROOM, FALSE, MAG_AFFECTS | MAG_ALTER_OBJS);
! spello(SPELL_LIGHTNING_BOLT, 9, X, X, X, 11,11,30, 15, 1,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
/* C L A S S E S M A N A */
/* Ma Cl Th Wa Jd Max Min Chn */
! spello(SPELL_LOCATE_OBJECT, 6, X, X, X, 14,X,25, 20, 1,
POS_STANDING, TAR_OBJ_WORLD, FALSE, MAG_MANUAL);
! spello(SPELL_MAGIC_MISSILE, 1, X, X, X, 5,5,25, 10, 3,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
! spello(SPELL_POISON, X, X, X, X, X,X,50, 20, 3,
POS_STANDING, TAR_CHAR_ROOM | TAR_NOT_SELF | TAR_OBJ_INV, TRUE, MAG_AFFECTS | MAG_ALTER_OBJS);
! spello(SPELL_PROT_FROM_EVIL, X, 8, X, X, 13,13,40, 10, 3,
POS_STANDING, TAR_CHAR_ROOM | TAR_SELF_ONLY, FALSE, MAG_AFFECTS);
! spello(SPELL_REMOVE_CURSE, X, 26, X, X, X,30,45, 25, 5,
POS_STANDING, TAR_CHAR_ROOM | TAR_OBJ_INV, FALSE, MAG_UNAFFECTS | MAG_ALTER_OBJS);
! spello(SPELL_SANCTUARY, X, 15, X, X, 22, 22,110, 85, 5,
POS_STANDING, TAR_CHAR_ROOM, FALSE, MAG_AFFECTS);
! spello(SPELL_SHOCKING_GRASP, 7, X, X, X, X,X,30, 15, 3,
POS_FIGHTING, TAR_CHAR_ROOM | TAR_FIGHT_VICT, TRUE, MAG_DAMAGE);
/* C L A S S E S M A N A */
/* Ma Cl Th Wa Jd Max Min Chn */
! spello(SPELL_SLEEP, 8, X, X, X, 16, 16, 40, 25, 5,
POS_STANDING, TAR_CHAR_ROOM, TRUE, MAG_AFFECTS);
! spello(SPELL_STRENGTH, 6, X, X, X, X,11,35, 30, 1,
POS_STANDING, TAR_CHAR_ROOM, FALSE, MAG_AFFECTS);
! spello(SPELL_SUMMON, X, 10, X, X, X,10,75, 50, 3,
POS_STANDING, TAR_CHAR_WORLD | TAR_NOT_SELF, FALSE, MAG_MANUAL);
! spello(SPELL_WORD_OF_RECALL, X, 12, X, X,X,19, 20, 10, 2,
POS_FIGHTING, TAR_CHAR_ROOM, FALSE, MAG_MANUAL);
! spello(SPELL_REMOVE_POISON, X, 10, X, X, X,14,40, 8, 4,
POS_STANDING, TAR_CHAR_ROOM | TAR_OBJ_INV | TAR_OBJ_ROOM, FALSE, MAG_UNAFFECTS | MAG_ALTER_OBJS);
! spello(SPELL_SENSE_LIFE, X, X, X, X, 18,18,20, 10, 2,
POS_STANDING, TAR_CHAR_ROOM | TAR_SELF_ONLY, FALSE, MAG_AFFECTS);
/*
***************
*** 920,959 ****
* 0's.
*/
! /* Ma Cl Th Wa Jd*/
! spello(SKILL_BACKSTAB, X, X, 3, X, X,
0, 0, 0, 0, 0, 0, 0);
! spello(SKILL_BASH, X, X, X, 12, X,
0, 0, 0, 0, 0, 0, 0);
! spello(SKILL_HIDE, X, X, 5, X, 7,
0, 0, 0, 0, 0, 0, 0);
! spello(SKILL_KICK, X, X, X, 1, 1,
0, 0, 0, 0, 0, 0, 0);
! spello(SKILL_PICK_LOCK, X, X, 2, X, X,
0, 0, 0, 0, 0, 0, 0);
! spello(SKILL_RESCUE, X, X, X, 3, 4,
0, 0, 0, 0, 0, 0, 0);
! spello(SKILL_SHOOT, X, X, 12, 8, 12,
0, 0, 0, 0, 0, 0, 0);
! spello(SKILL_SNEAK, X, X, 1, X, 17,
0, 0, 0, 0, 0, 0, 0);
! spello(SKILL_STEAL, X, X, 4, X, X,
0, 0, 0, 0, 0, 0, 0);
/* Ma Cl Th Wa Jd*/
! spello(SKILL_TRACK, X, X, 6, 9, 9,
0, 0, 0, 0, 0, 0, 0);
! spello(SKILL_SWORDSMANSHIP, X, X, X, 25, 20,
0 ,0 ,0 ,0 ,0 ,0, 0);
!
! spello(SPELL_IDENTIFY, 0, 0, 0, 0, 0, 0, 0, 0, 0,
TAR_CHAR_ROOM | TAR_OBJ_INV | TAR_OBJ_ROOM, FALSE, MAG_MANUAL);
}
--- 921,960 ----
* 0's.
*/
! /* Ma Cl Th Wa Jd Sa*/
! spello(SKILL_BACKSTAB, X, X, 3, X, X, 5,
0, 0, 0, 0, 0, 0, 0);
! spello(SKILL_BASH, X, X, X,12, X, X,
0, 0, 0, 0, 0, 0, 0);
! spello(SKILL_HIDE, X, X, 5, X, 7, 7,
0, 0, 0, 0, 0, 0, 0);
! spello(SKILL_KICK, X, X, X, 1, 1, 1,
0, 0, 0, 0, 0, 0, 0);
! spello(SKILL_PICK_LOCK,X, X, 2, X, X, X,
0, 0, 0, 0, 0, 0, 0);
! spello(SKILL_RESCUE, X, X, X, 3, 4, 5,
0, 0, 0, 0, 0, 0, 0);
! spello(SKILL_SHOOT, X, X,12, 8,12,15,
0, 0, 0, 0, 0, 0, 0);
! spello(SKILL_SNEAK, X, X, 1, X,17, 9,
0, 0, 0, 0, 0, 0, 0);
! spello(SKILL_STEAL, X, X, 4, X, X, X,
0, 0, 0, 0, 0, 0, 0);
/* Ma Cl Th Wa Jd*/
! spello(SKILL_TRACK, X, X, 6, 9, 9, 5,
0, 0, 0, 0, 0, 0, 0);
! spello(SKILL_SWORDSMANSHIP, X, X, X, 25, 20, 10,
0 ,0 ,0 ,0 ,0 ,0, 0);
! /* Ma Cl Th Wa Jd Sa Max Min */
! spello(SPELL_IDENTIFY,10, X, X, X,20,20, 140, 100, 2, POS_STANDING,
TAR_CHAR_ROOM | TAR_OBJ_INV | TAR_OBJ_ROOM, FALSE, MAG_MANUAL);
}
diff -c src2/structs.h src/structs.h
*** src2/structs.h Mon Aug 7 18:19:44 1995
--- src/structs.h Sun Aug 20 20:36:28 1995
***************
*** 84,91 ****
#define CLASS_THIEF 2
#define CLASS_WARRIOR 3
#define CLASS_JEDI 4
! #define NUM_CLASSES 5 /* This must be the number of classes!! */
/* NPC classes (currently unused - feel free to implement!) */
#define CLASS_OTHER 0
--- 84,92 ----
#define CLASS_THIEF 2
#define CLASS_WARRIOR 3
#define CLASS_JEDI 4
+ #define CLASS_SAMURAI 5
! #define NUM_CLASSES 6 /* This must be the number of classes!! */
/* NPC classes (currently unused - feel free to implement!) */
#define CLASS_OTHER 0
***************
*** 333,338 ****
--- 334,340 ----
#define ITEM_ANTI_WOLFEN (1 << 21) /* Not for those stinkin' wolfen! */
#define ITEM_ANTI_TROGLODYTE (1 << 22)/* Not for those stinkin' trogs! */
#define ITEM_ANTI_ELF (1 << 23) /* Not for those stinkin' elves! */
+ #define ITEM_ANTI_SAMURAI (1 << 24) /* Not usable by sammies */
/* Modifier constants used with obj affects ('A' fields) */
Common subdirectories: src2/util and src/util
diff -c src2/utils.h src/utils.h
*** src2/utils.h Fri Aug 4 12:01:36 1995
--- src/utils.h Sun Aug 20 20:37:18 1995
***************
*** 413,418 ****
--- 413,420 ----
(GET_CLASS(ch) == CLASS_WARRIOR))
#define IS_JEDI(ch) (!IS_NPC(ch) && \
(GET_CLASS(ch) == CLASS_JEDI))
+ #define IS_SAMURAI(ch) (!IS_NPC(ch) && \
+ (GET_CLASS(ch) == CLASS_SAMURAI))
/* IS for races */
#define RACE_ABBR(ch) (IS_NPC(ch) ? "---" : race_abbrevs[(int)GET_RACE(ch)])
This archive was generated by hypermail 2b30 : 12/18/00 PST