Twoweapon update
Make two-weapon combat dependant on the hero's current form. Adds the macro could_twoweap() and performs some housekeeping in monst.c.
This commit is contained in:
@@ -94,6 +94,7 @@
|
||||
#define strongmonst(ptr) (((ptr)->mflags2 & M2_STRONG) != 0L)
|
||||
#define can_breathe(ptr) attacktype(ptr, AT_BREA)
|
||||
#define cantwield(ptr) (nohands(ptr) || verysmall(ptr))
|
||||
#define could_twoweap(ptr) ((ptr)->mattk[1].aatyp == AT_WEAP)
|
||||
#define cantweararm(ptr) (breakarm(ptr) || sliparm(ptr))
|
||||
#define throws_rocks(ptr) (((ptr)->mflags2 & M2_ROCKTHROW) != 0L)
|
||||
#define type_is_pname(ptr) (((ptr)->mflags2 & M2_PNAME) != 0L)
|
||||
|
||||
120
src/monst.c
120
src/monst.c
@@ -478,7 +478,7 @@ NEARDATA struct permonst mons[] = {
|
||||
LVL(9, 12, 5, 90, -8), (G_GENO|1),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 4), ATTK(AT_TENT, AD_DRIN, 2, 1),
|
||||
ATTK(AT_TENT, AD_DRIN, 2, 1), ATTK(AT_TENT, AD_DRIN, 2, 1),
|
||||
ATTK(AT_TENT, AD_DRIN, 2, 1), NO_ATTK),
|
||||
NO_ATTK, NO_ATTK),
|
||||
SIZ(1450, 400, 0, MS_HISS, MZ_HUMAN), 0, 0,
|
||||
M1_HUMANOID|M1_FLY|M1_SEE_INVIS|M1_OMNIVORE,
|
||||
M2_HOSTILE|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_COLLECT,
|
||||
@@ -487,7 +487,7 @@ NEARDATA struct permonst mons[] = {
|
||||
LVL(13, 12, 0, 90, -8), (G_GENO|1),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_TENT, AD_DRIN, 2, 1),
|
||||
ATTK(AT_TENT, AD_DRIN, 2, 1), ATTK(AT_TENT, AD_DRIN, 2, 1),
|
||||
ATTK(AT_TENT, AD_DRIN, 2, 1), NO_ATTK),
|
||||
ATTK(AT_TENT, AD_DRIN, 2, 1), ATTK(AT_TENT, AD_DRIN, 2, 1)),
|
||||
SIZ(1450, 400, 0, MS_HISS, MZ_HUMAN), 0, 0,
|
||||
M1_HUMANOID|M1_FLY|M1_SEE_INVIS|M1_OMNIVORE,
|
||||
M2_HOSTILE|M2_NASTY|M2_GREEDY|M2_JEWELS|M2_COLLECT,
|
||||
@@ -1086,8 +1086,8 @@ NEARDATA struct permonst mons[] = {
|
||||
CLR_YELLOW),
|
||||
MON("Angel", S_ANGEL,
|
||||
LVL(14, 10, -4, 55, 12), (G_NOHELL|G_NOCORPSE|1),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 4),
|
||||
ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_MAGM, 2, 6),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_MAGC, AD_MAGM, 2, 6),
|
||||
NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, sizeof(struct epri), MS_CUSS, MZ_HUMAN),
|
||||
MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
|
||||
@@ -1105,8 +1105,8 @@ NEARDATA struct permonst mons[] = {
|
||||
M3_INFRAVISIBLE|M3_INFRAVISION, HI_GOLD),
|
||||
MON("Archon", S_ANGEL,
|
||||
LVL(19, 16, -6, 80, 15), (G_NOHELL|G_NOCORPSE|1),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_GAZE, AD_BLND, 2, 6),
|
||||
ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 1, 8),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
|
||||
ATTK(AT_GAZE, AD_BLND, 2, 6), ATTK(AT_CLAW, AD_PHYS, 1, 8),
|
||||
ATTK(AT_MAGC, AD_SPEL, 4, 6), NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_LARGE),
|
||||
MR_FIRE|MR_COLD|MR_ELEC|MR_SLEEP|MR_POISON, 0,
|
||||
@@ -1935,7 +1935,7 @@ struct permonst _mons2[] = {
|
||||
*/
|
||||
MON("troll", S_TROLL,
|
||||
LVL(7, 12, 4, 0, -3), (G_GENO|2),
|
||||
A(ATTK(AT_CLAW, AD_PHYS, 4, 2), ATTK(AT_WEAP, AD_PHYS, 4, 2),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 4, 2), ATTK(AT_CLAW, AD_PHYS, 4, 2),
|
||||
ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(800, 350, 0, MS_GRUNT, MZ_LARGE), 0, 0,
|
||||
M1_HUMANOID|M1_REGEN|M1_CARNIVORE,
|
||||
@@ -1943,7 +1943,7 @@ struct permonst _mons2[] = {
|
||||
CLR_BROWN),
|
||||
MON("ice troll", S_TROLL,
|
||||
LVL(9, 10, 2, 20, -3), (G_NOHELL|G_GENO|1),
|
||||
A(ATTK(AT_CLAW, AD_COLD, 2, 6), ATTK(AT_WEAP, AD_PHYS, 2, 6),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 2, 6), ATTK(AT_CLAW, AD_COLD, 2, 6),
|
||||
ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(1000, 300, 0, MS_GRUNT, MZ_LARGE), MR_COLD, MR_COLD,
|
||||
M1_HUMANOID|M1_REGEN|M1_CARNIVORE,
|
||||
@@ -1951,7 +1951,7 @@ struct permonst _mons2[] = {
|
||||
CLR_WHITE),
|
||||
MON("rock troll", S_TROLL,
|
||||
LVL(9, 12, 0, 0, -3), (G_GENO|1),
|
||||
A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_WEAP, AD_PHYS, 3, 6),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 2, 8),
|
||||
ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(1200, 300, 0, MS_GRUNT, MZ_LARGE), 0, 0,
|
||||
M1_HUMANOID|M1_REGEN|M1_CARNIVORE,
|
||||
@@ -1959,7 +1959,7 @@ struct permonst _mons2[] = {
|
||||
M3_INFRAVISIBLE|M3_INFRAVISION, CLR_CYAN),
|
||||
MON("water troll", S_TROLL,
|
||||
LVL(11, 14, 4, 40, -3), (G_NOGEN|G_GENO),
|
||||
A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_WEAP, AD_PHYS, 2, 8),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 2, 8), ATTK(AT_CLAW, AD_PHYS, 2, 8),
|
||||
ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(1200, 350, 0, MS_GRUNT, MZ_LARGE), 0, 0,
|
||||
M1_HUMANOID|M1_REGEN|M1_CARNIVORE|M1_SWIM,
|
||||
@@ -1967,7 +1967,7 @@ struct permonst _mons2[] = {
|
||||
CLR_BLUE),
|
||||
MON("Olog-hai", S_TROLL,
|
||||
LVL(13, 12, -4, 0, -7), (G_GENO|1),
|
||||
A(ATTK(AT_CLAW, AD_PHYS, 2, 8), ATTK(AT_WEAP, AD_PHYS, 3, 6),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 2, 8),
|
||||
ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(1500, 400, 0, MS_GRUNT, MZ_LARGE), 0, 0,
|
||||
M1_HUMANOID|M1_REGEN|M1_CARNIVORE,
|
||||
@@ -2026,8 +2026,8 @@ struct permonst _mons2[] = {
|
||||
*/
|
||||
MON("barrow wight", S_WRAITH,
|
||||
LVL(3, 12, 5, 5, -3), (G_GENO|G_NOCORPSE|1),
|
||||
A(ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_MAGC, AD_SPEL, 0, 0),
|
||||
ATTK(AT_WEAP, AD_DRLI, 0, 0), NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_WEAP, AD_DRLI, 0, 0), ATTK(AT_MAGC, AD_SPEL, 0, 0),
|
||||
ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(1200, 0, 0, MS_SPELL, MZ_HUMAN), MR_COLD|MR_SLEEP|MR_POISON, 0,
|
||||
M1_BREATHLESS|M1_HUMANOID,
|
||||
M2_UNDEAD|M2_STALK|M2_HOSTILE|M2_COLLECT, 0, CLR_GRAY),
|
||||
@@ -2466,8 +2466,8 @@ struct permonst _mons2[] = {
|
||||
*/
|
||||
MON("Medusa", S_HUMAN,
|
||||
LVL(20, 12, 2, 50, -15), (G_NOGEN|G_UNIQ),
|
||||
A(ATTK(AT_CLAW, AD_PHYS, 1, 8), ATTK(AT_GAZE, AD_STON, 0, 0),
|
||||
ATTK(AT_BITE, AD_DRST, 1, 6), ATTK(AT_WEAP, AD_PHYS, 2, 4),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 1, 8),
|
||||
ATTK(AT_GAZE, AD_STON, 0, 0), ATTK(AT_BITE, AD_DRST, 1, 6),
|
||||
NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_HISS, MZ_LARGE),
|
||||
MR_POISON|MR_STONE, MR_POISON|MR_STONE,
|
||||
@@ -2592,8 +2592,8 @@ struct permonst _mons2[] = {
|
||||
MON("marilith", S_DEMON,
|
||||
LVL(7, 12, -6, 80, -12), (G_HELL|G_NOCORPSE|1),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
|
||||
ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4),
|
||||
ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_WEAP, AD_PHYS, 2, 4)),
|
||||
ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4),
|
||||
ATTK(AT_CLAW, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 2, 4)),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_CUSS, MZ_LARGE), MR_FIRE|MR_POISON, 0,
|
||||
M1_HUMANOID|M1_SLITHY|M1_SEE_INVIS|M1_POIS,
|
||||
M2_DEMON|M2_STALK|M2_HOSTILE|M2_NASTY|M2_FEMALE|M2_COLLECT,
|
||||
@@ -2670,7 +2670,7 @@ struct permonst _mons2[] = {
|
||||
MON("Yeenoghu", S_DEMON,
|
||||
LVL(56, 18, -5, 80, -15), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_WEAP, AD_CONF, 2, 8),
|
||||
ATTK(AT_WEAP, AD_PLYS, 1, 6), ATTK(AT_MAGC, AD_MAGM, 2, 6),
|
||||
ATTK(AT_CLAW, AD_PLYS, 1, 6), ATTK(AT_MAGC, AD_MAGM, 2, 6),
|
||||
NO_ATTK, NO_ATTK),
|
||||
SIZ(900, 500, 0, MS_ORC, MZ_LARGE), MR_FIRE|MR_POISON, 0,
|
||||
M1_FLY|M1_SEE_INVIS|M1_POIS,
|
||||
@@ -2679,8 +2679,8 @@ struct permonst _mons2[] = {
|
||||
M3_WANTSAMUL|M3_INFRAVISIBLE|M3_INFRAVISION, HI_LORD),
|
||||
MON("Orcus", S_DEMON,
|
||||
LVL(66, 9, -6, 85, -20), (G_HELL|G_NOCORPSE|G_NOGEN|G_UNIQ),
|
||||
A(ATTK(AT_MAGC, AD_SPEL, 8, 6), ATTK(AT_WEAP, AD_PHYS, 3, 6),
|
||||
ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_CLAW, AD_PHYS, 3, 4),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 3, 6), ATTK(AT_CLAW, AD_PHYS, 3, 4),
|
||||
ATTK(AT_CLAW, AD_PHYS, 3, 4), ATTK(AT_MAGC, AD_SPEL, 8, 6),
|
||||
ATTK(AT_STNG, AD_DRST, 2, 4), NO_ATTK),
|
||||
SIZ(1500, 500, 0, MS_ORC, MZ_HUGE), MR_FIRE|MR_POISON, 0,
|
||||
M1_FLY|M1_SEE_INVIS|M1_POIS,
|
||||
@@ -2919,15 +2919,15 @@ struct permonst _mons2[] = {
|
||||
*/
|
||||
MON("archeologist", S_HUMAN,
|
||||
LVL(10, 12, 10, 1, 3), G_NOGEN,
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
|
||||
M1_HUMANOID|M1_TUNNEL|M1_NEEDPICK|M1_OMNIVORE,
|
||||
M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
|
||||
MON("barbarian", S_HUMAN,
|
||||
LVL(10, 12, 10, 1, 0), G_NOGEN,
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), MR_POISON, 0,
|
||||
M1_HUMANOID|M1_OMNIVORE,
|
||||
M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
|
||||
@@ -2956,15 +2956,15 @@ struct permonst _mons2[] = {
|
||||
M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
|
||||
MON("knight", S_HUMAN,
|
||||
LVL(10, 12, 10, 1, 3), G_NOGEN,
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
|
||||
M1_HUMANOID|M1_OMNIVORE,
|
||||
M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
|
||||
MON("monk", S_HUMAN,
|
||||
LVL(10, 12, 10, 2, 0), G_NOGEN,
|
||||
A(ATTK(AT_KICK, AD_PHYS, 1, 8),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_CLAW, AD_PHYS, 1, 8), ATTK(AT_KICK, AD_PHYS, 1, 8),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
|
||||
M1_HUMANOID|M1_HERBIVORE,
|
||||
M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT|M2_MALE,
|
||||
@@ -2995,32 +2995,32 @@ struct permonst _mons2[] = {
|
||||
HI_DOMESTIC),
|
||||
MON("rogue", S_HUMAN,
|
||||
LVL(10, 12, 10, 1, -3), G_NOGEN,
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
|
||||
M1_HUMANOID|M1_OMNIVORE,
|
||||
M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_GREEDY|M2_JEWELS|M2_COLLECT,
|
||||
M3_INFRAVISIBLE, HI_DOMESTIC),
|
||||
MON("samurai", S_HUMAN,
|
||||
LVL(10, 12, 10, 1, 3), G_NOGEN,
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 8),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
|
||||
M1_HUMANOID|M1_OMNIVORE,
|
||||
M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
|
||||
#ifdef TOURIST
|
||||
MON("tourist", S_HUMAN,
|
||||
LVL(10, 12, 10, 1, 0), G_NOGEN,
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
|
||||
M1_HUMANOID|M1_OMNIVORE,
|
||||
M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE, HI_DOMESTIC),
|
||||
#endif
|
||||
MON("valkyrie", S_HUMAN,
|
||||
LVL(10, 12, 10, 1, -1), G_NOGEN,
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 8),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), MR_COLD, 0,
|
||||
M1_HUMANOID|M1_OMNIVORE,
|
||||
M2_NOPOLY|M2_HUMAN|M2_STRONG|M2_FEMALE|M2_COLLECT, M3_INFRAVISIBLE,
|
||||
@@ -3096,8 +3096,8 @@ struct permonst _mons2[] = {
|
||||
M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
|
||||
MON("King Arthur", S_HUMAN,
|
||||
LVL(20, 12, 0, 40, 20), (G_NOGEN|G_UNIQ),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
|
||||
M1_HUMANOID|M1_OMNIVORE,
|
||||
M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
|
||||
@@ -3145,8 +3145,8 @@ struct permonst _mons2[] = {
|
||||
M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
|
||||
MON("Lord Sato", S_HUMAN,
|
||||
LVL(20, 12, 0, 30, 20), (G_NOGEN|G_UNIQ),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
|
||||
M1_HUMANOID|M1_OMNIVORE,
|
||||
M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
|
||||
@@ -3155,8 +3155,8 @@ struct permonst _mons2[] = {
|
||||
#ifdef TOURIST
|
||||
MON("Twoflower", S_HUMAN,
|
||||
LVL(20, 12, 10, 20, 0), (G_NOGEN|G_UNIQ),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
|
||||
M1_HUMANOID|M1_OMNIVORE,
|
||||
M2_NOPOLY|M2_HUMAN|M2_PNAME|M2_PEACEFUL|M2_STRONG|M2_MALE|
|
||||
@@ -3165,8 +3165,8 @@ struct permonst _mons2[] = {
|
||||
#endif
|
||||
MON("Norn", S_HUMAN,
|
||||
LVL(20, 12, 0, 80, 0), (G_NOGEN|G_UNIQ),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), MR_COLD, 0,
|
||||
M1_HUMANOID|M1_OMNIVORE,
|
||||
M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_FEMALE|
|
||||
@@ -3174,8 +3174,8 @@ struct permonst _mons2[] = {
|
||||
M3_CLOSE|M3_INFRAVISIBLE, HI_LORD),
|
||||
MON("Neferet the Green", S_HUMAN,
|
||||
LVL(20, 12, 0, 60, 0), (G_NOGEN|G_UNIQ),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 2, 8),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN), 0, 0,
|
||||
M1_HUMANOID|M1_OMNIVORE,
|
||||
M2_NOPOLY|M2_HUMAN|M2_FEMALE|M2_PNAME|M2_PEACEFUL|
|
||||
@@ -3195,8 +3195,8 @@ struct permonst _mons2[] = {
|
||||
M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISION|M3_INFRAVISIBLE, CLR_RED),
|
||||
MON("Thoth Amon", S_HUMAN,
|
||||
LVL(16, 12, 0, 10, -14), (G_NOGEN|G_UNIQ|G_NOCORPSE),
|
||||
A(ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_MAGC, AD_SPEL, 0, 0),
|
||||
ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_SAMU, 1, 4),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
|
||||
ATTK(AT_MAGC, AD_SPEL, 0, 0), ATTK(AT_CLAW, AD_SAMU, 1, 4),
|
||||
NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), MR_POISON, 0,
|
||||
M1_HUMANOID|M1_OMNIVORE,
|
||||
@@ -3314,8 +3314,8 @@ struct permonst _mons2[] = {
|
||||
M3_WANTSARTI|M3_WAITFORU|M3_INFRAVISION|M3_INFRAVISIBLE, HI_LORD),
|
||||
MON("Dark One", S_HUMAN,
|
||||
LVL(15, 12, 0, 80, -10), (G_NOGEN|G_UNIQ|G_NOCORPSE),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_MAGC, AD_SPEL, 0, 0),
|
||||
ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_SAMU, 1, 4),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
ATTK(AT_CLAW, AD_SAMU, 1, 4), ATTK(AT_MAGC, AD_SPEL, 0, 0),
|
||||
NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN), 0, 0,
|
||||
M1_HUMANOID|M1_OMNIVORE,
|
||||
@@ -3369,8 +3369,8 @@ struct permonst _mons2[] = {
|
||||
HI_DOMESTIC),
|
||||
MON("page", S_HUMAN,
|
||||
LVL(5, 12, 10, 10, 3), G_NOGEN,
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
|
||||
M1_HUMANOID|M1_OMNIVORE,
|
||||
M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
|
||||
@@ -3401,24 +3401,24 @@ struct permonst _mons2[] = {
|
||||
M3_INFRAVISION|M3_INFRAVISIBLE, HI_DOMESTIC),
|
||||
MON("thug", S_HUMAN,
|
||||
LVL(5, 12, 10, 10, -3), G_NOGEN,
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_WEAP, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
|
||||
M1_HUMANOID|M1_OMNIVORE,
|
||||
M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_GREEDY|M2_COLLECT,
|
||||
M3_INFRAVISIBLE, HI_DOMESTIC),
|
||||
MON("ninja", S_HUMAN,
|
||||
LVL(5, 12, 10, 10, 3), G_NOGEN,
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 8),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN), 0, 0,
|
||||
M1_HUMANOID|M1_OMNIVORE,
|
||||
M2_NOPOLY|M2_HUMAN|M2_HOSTILE|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
|
||||
HI_DOMESTIC),
|
||||
MON("roshi", S_HUMAN,
|
||||
LVL(5, 12, 10, 10, 3), G_NOGEN,
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 8),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
|
||||
M1_HUMANOID|M1_OMNIVORE,
|
||||
M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
|
||||
@@ -3435,8 +3435,8 @@ struct permonst _mons2[] = {
|
||||
#endif
|
||||
MON("warrior", S_HUMAN,
|
||||
LVL(5, 12, 10, 10, -1), G_NOGEN,
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 8),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 8), ATTK(AT_WEAP, AD_PHYS, 1, 8),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN), 0, 0,
|
||||
M1_HUMANOID|M1_OMNIVORE,
|
||||
M2_NOPOLY|M2_HUMAN|M2_PEACEFUL|M2_STRONG|M2_COLLECT, M3_INFRAVISIBLE,
|
||||
|
||||
@@ -407,8 +407,8 @@ can_twoweapon()
|
||||
struct obj *otmp;
|
||||
|
||||
#define NOT_WEAPON(obj) (!is_weptool(obj) && obj->oclass != WEAPON_CLASS)
|
||||
if (Upolyd)
|
||||
You("can only use two weapons in your normal form.");
|
||||
if (!could_twoweap(youmonst.data))
|
||||
You_cant("use two weapons in your current form.");
|
||||
else if (!uwep || !uswapwep)
|
||||
Your("%s%s%s empty.", uwep ? "left " : uswapwep ? "right " : "",
|
||||
body_part(HAND), (!uwep && !uswapwep) ? "s are" : " is");
|
||||
|
||||
Reference in New Issue
Block a user