- [+] "tried on xxx" not showing up properly in \. fixed.
- [+] new swords: - [+] baselard - [+] shortsword - [+] epee - [+] cutlass - [+] sabre - [+] repier is now a long blade. - [+] broadsword - [+] falchion - [+] claymore - [+] zweihander - [+] bug: job description missing skill elements when there are <4 on the last line. - [+] don't adjust object's armourrating based on its conditin. - [+] increase TR of dryad - [+] reduce range of 'chill' - [+] potion of poison should give venom poisoning, not food poisoning - [+] robots should be immune to charm
This commit is contained in:
parent
45c5fd0365
commit
ed98c0b735
BIN
data/hiscores.db
BIN
data/hiscores.db
Binary file not shown.
14
defs.h
14
defs.h
|
@ -348,7 +348,7 @@ enum SHOPACTION {
|
||||||
#define BUFLENSMALL 64
|
#define BUFLENSMALL 64
|
||||||
#define BUFLEN 256
|
#define BUFLEN 256
|
||||||
#define BIGBUFLEN 512
|
#define BIGBUFLEN 512
|
||||||
#define HUGEBUFLEN 2048
|
#define HUGEBUFLEN 4092
|
||||||
#define MAXPNAMELEN 12 // max player name length
|
#define MAXPNAMELEN 12 // max player name length
|
||||||
// file i/o
|
// file i/o
|
||||||
#define DATADIR "data"
|
#define DATADIR "data"
|
||||||
|
@ -2049,27 +2049,34 @@ enum OBTYPE {
|
||||||
OT_GREATAXE,
|
OT_GREATAXE,
|
||||||
OT_WARAXE,
|
OT_WARAXE,
|
||||||
// short blades
|
// short blades
|
||||||
|
OT_BASELARD,
|
||||||
OT_COMBATKNIFE,
|
OT_COMBATKNIFE,
|
||||||
OT_DAGGER,
|
OT_DAGGER,
|
||||||
OT_FORK,
|
OT_FORK,
|
||||||
|
OT_GLADIUS,
|
||||||
OT_KNIFE,
|
OT_KNIFE,
|
||||||
OT_MEATCLEAVER,
|
OT_MEATCLEAVER,
|
||||||
OT_ORNDAGGER,
|
OT_ORNDAGGER,
|
||||||
OT_QUICKBLADE,
|
OT_QUICKBLADE,
|
||||||
OT_RAPIER,
|
OT_RAPIER,
|
||||||
OT_SAI,
|
OT_SAI,
|
||||||
|
OT_SABRE,
|
||||||
OT_SHORTSWORD,
|
OT_SHORTSWORD,
|
||||||
OT_STEAKKNIFE,
|
OT_STEAKKNIFE,
|
||||||
OT_SICKLE,
|
OT_SICKLE,
|
||||||
// long swords
|
// long swords
|
||||||
OT_BASTARDSWORD,
|
OT_BASTARDSWORD,
|
||||||
|
OT_BROADSWORD,
|
||||||
|
OT_CLAYMORE,
|
||||||
|
OT_CUTLASS,
|
||||||
|
OT_EPEE,
|
||||||
OT_FALCHION,
|
OT_FALCHION,
|
||||||
OT_GREATSWORD,
|
OT_GREATSWORD,
|
||||||
OT_KATANA,
|
OT_KATANA,
|
||||||
OT_LONGSWORD,
|
OT_LONGSWORD,
|
||||||
OT_ORNSWORD,
|
OT_ORNSWORD,
|
||||||
OT_SCIMITAR,
|
OT_SCIMITAR,
|
||||||
OT_CUTLASS,
|
OT_ZWEIHANDER,
|
||||||
// polearms
|
// polearms
|
||||||
OT_GLAIVE,
|
OT_GLAIVE,
|
||||||
OT_GUISARME,
|
OT_GUISARME,
|
||||||
|
@ -2491,7 +2498,7 @@ enum FLAG {
|
||||||
// after you have tried this object.
|
// after you have tried this object.
|
||||||
F_POURABLE, // can pour?
|
F_POURABLE, // can pour?
|
||||||
F_PUSHABLE, // can push this object
|
F_PUSHABLE, // can push this object
|
||||||
F_PICKLOCKS, // can pick locks? val0=% change,
|
F_PICKLOCKS, // can pick locks? val0=% chance,
|
||||||
// val1=b_false, f_dieonfail, f_bluntonfail
|
// val1=b_false, f_dieonfail, f_bluntonfail
|
||||||
F_LOCKABLE,// this object can be locked
|
F_LOCKABLE,// this object can be locked
|
||||||
F_CANBEDIFFMAT, // v0 is different material id which this ob could be
|
F_CANBEDIFFMAT, // v0 is different material id which this ob could be
|
||||||
|
@ -3652,6 +3659,7 @@ enum ERROR {
|
||||||
// charm failure reasons
|
// charm failure reasons
|
||||||
// LOWIQ
|
// LOWIQ
|
||||||
E_UNDEAD,
|
E_UNDEAD,
|
||||||
|
E_ROBOT,
|
||||||
E_DRUNK,
|
E_DRUNK,
|
||||||
//
|
//
|
||||||
E_NOBP,
|
E_NOBP,
|
||||||
|
|
27
io.c
27
io.c
|
@ -4964,7 +4964,11 @@ void doknowledgelist(void) {
|
||||||
if (k->known == B_KNOWN) {
|
if (k->known == B_KNOWN) {
|
||||||
mvwprintw(mainwin, y, 0, " %-25s (%s)",ot->name, k->hiddenname);
|
mvwprintw(mainwin, y, 0, " %-25s (%s)",ot->name, k->hiddenname);
|
||||||
} else { // ie. tried
|
} else { // ie. tried
|
||||||
mvwprintw(mainwin, y, 0, " %-25s (%s)","???", k->hiddenname);
|
mvwprintw(mainwin, y, 0, " %-25s (%s%s","???", k->hiddenname, strlen(k->triedon) ? "," : ")");
|
||||||
|
if (strlen(k->triedon)) {
|
||||||
|
y++;
|
||||||
|
mvwprintw(mainwin, y, 0, " %-25s tried on %s)"," ", k->triedon);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
y++;
|
y++;
|
||||||
|
|
||||||
|
@ -5261,7 +5265,6 @@ char *makedesc_job(job_t *j, char *retbuf) {
|
||||||
flag_t *retflag[MAXCANDIDATES];
|
flag_t *retflag[MAXCANDIDATES];
|
||||||
int nretflags,i;
|
int nretflags,i;
|
||||||
skill_t *sk;
|
skill_t *sk;
|
||||||
char buf[BUFLEN];
|
|
||||||
enum ATTRIB a;
|
enum ATTRIB a;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
flag_t *f;
|
flag_t *f;
|
||||||
|
@ -5338,6 +5341,10 @@ char *makedesc_job(job_t *j, char *retbuf) {
|
||||||
strcat(retbuf, "STARTING SKILLS\n");
|
strcat(retbuf, "STARTING SKILLS\n");
|
||||||
count = 0;
|
count = 0;
|
||||||
strcpy(thisline, "");
|
strcpy(thisline, "");
|
||||||
|
|
||||||
|
if (j->id == J_PIRATE) {
|
||||||
|
dblog("xxx");
|
||||||
|
}
|
||||||
for (sk = firstskill ; sk ; sk = sk->next) {
|
for (sk = firstskill ; sk ; sk = sk->next) {
|
||||||
char lev[BUFLEN];
|
char lev[BUFLEN];
|
||||||
enum SKILLLEVEL slev = PR_INEPT;
|
enum SKILLLEVEL slev = PR_INEPT;
|
||||||
|
@ -5354,17 +5361,10 @@ char *makedesc_job(job_t *j, char *retbuf) {
|
||||||
case PR_EXPERT: strcpy(lev, "Exp"); break;
|
case PR_EXPERT: strcpy(lev, "Exp"); break;
|
||||||
case PR_MASTER: strcpy(lev, "Mst"); break;
|
case PR_MASTER: strcpy(lev, "Mst"); break;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
} else {
|
|
||||||
f = hasflagval(j->flags, F_CANLEARN, sk->id, NA, NA, NULL);
|
|
||||||
if (f) {
|
|
||||||
slev = PR_INEPT;
|
|
||||||
strcpy(lev, "---");
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
if (strlen(lev)) {
|
if (strlen(lev)) {
|
||||||
char *p;
|
char *p;
|
||||||
|
char buf[BUFLEN];
|
||||||
//char bufpad[BUFLEN];
|
//char bufpad[BUFLEN];
|
||||||
count++;
|
count++;
|
||||||
sprintf(buf, "%13s:^%d%s^n ",sk->shortname, getskilllevelcolour(slev), lev);
|
sprintf(buf, "%13s:^%d%s^n ",sk->shortname, getskilllevelcolour(slev), lev);
|
||||||
|
@ -5389,6 +5389,13 @@ char *makedesc_job(job_t *j, char *retbuf) {
|
||||||
} // end if strlen(lev)
|
} // end if strlen(lev)
|
||||||
} // end foreach skill
|
} // end foreach skill
|
||||||
|
|
||||||
|
// print out any remaining lines
|
||||||
|
if (count != 0) {
|
||||||
|
strcat(thisline, "\n");
|
||||||
|
strcat(retbuf, thisline);
|
||||||
|
strcpy(thisline, "");
|
||||||
|
}
|
||||||
|
|
||||||
// specialisations
|
// specialisations
|
||||||
getflags(j->flags, retflag, &nretflags, F_CANHAVESUBJOB, F_NONE);
|
getflags(j->flags, retflag, &nretflags, F_CANHAVESUBJOB, F_NONE);
|
||||||
strcpy(thisline, "");
|
strcpy(thisline, "");
|
||||||
|
|
6
lf.c
6
lf.c
|
@ -6456,7 +6456,7 @@ int getarmourrating(lifeform_t *lf, object_t **hitob, int *hitchance, enum BODYP
|
||||||
}
|
}
|
||||||
|
|
||||||
// adjust for condition
|
// adjust for condition
|
||||||
thisar = pctof(getobhppct(o), thisar);
|
//thisar = pctof(getobhppct(o), thisar);
|
||||||
|
|
||||||
ar += thisar;
|
ar += thisar;
|
||||||
|
|
||||||
|
@ -12130,6 +12130,10 @@ int ischarmable(lifeform_t *lf) {
|
||||||
reason = E_UNDEAD;
|
reason = E_UNDEAD;
|
||||||
return B_FALSE;
|
return B_FALSE;
|
||||||
}
|
}
|
||||||
|
if (getraceclass(lf) == RC_ROBOT) {
|
||||||
|
reason = E_ROBOT;
|
||||||
|
return B_FALSE;
|
||||||
|
}
|
||||||
if (hasflag(lf->flags, F_DRUNK)) {
|
if (hasflag(lf->flags, F_DRUNK)) {
|
||||||
reason = E_DRUNK;
|
reason = E_DRUNK;
|
||||||
return B_FALSE;
|
return B_FALSE;
|
||||||
|
|
|
@ -10478,7 +10478,7 @@ void potioneffects(lifeform_t *lf, enum OBTYPE oid, object_t *o, enum BLESSTYPE
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case OT_POT_POISON:
|
case OT_POT_POISON:
|
||||||
poison(lf, rnd(10,20), P_FOOD, 1, "a potion of poison", R_NONE);
|
poison(lf, rnd(10,20), P_VENOM, 1, "a potion of poison", R_NONE);
|
||||||
break;
|
break;
|
||||||
case OT_POT_POLYMORPH:
|
case OT_POT_POLYMORPH:
|
||||||
if (potblessed == B_BLESSED) {
|
if (potblessed == B_BLESSED) {
|
||||||
|
|
15
spell.c
15
spell.c
|
@ -4573,6 +4573,9 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_
|
||||||
case E_UNDEAD:
|
case E_UNDEAD:
|
||||||
msg("The undead are immune to charming.");
|
msg("The undead are immune to charming.");
|
||||||
break;
|
break;
|
||||||
|
case E_ROBOT:
|
||||||
|
msg("Robots are immune to charming.");
|
||||||
|
break;
|
||||||
case E_ALREADYUSING:
|
case E_ALREADYUSING:
|
||||||
msg("%s is already charmed by another!", targetname);
|
msg("%s is already charmed by another!", targetname);
|
||||||
break;
|
break;
|
||||||
|
@ -4649,6 +4652,12 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_
|
||||||
case E_UNDEAD:
|
case E_UNDEAD:
|
||||||
msg("The undead are immune to charming.");
|
msg("The undead are immune to charming.");
|
||||||
break;
|
break;
|
||||||
|
case E_ROBOT:
|
||||||
|
msg("Robots are immune to charming.");
|
||||||
|
break;
|
||||||
|
case E_ALREADYUSING:
|
||||||
|
msg("%s is already charmed by another!", targetname);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
msg("You cannot charm %s.", targetname);
|
msg("You cannot charm %s.", targetname);
|
||||||
break;
|
break;
|
||||||
|
@ -7954,6 +7963,12 @@ int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_
|
||||||
case E_UNDEAD:
|
case E_UNDEAD:
|
||||||
msg("The undead are immune to possession.");
|
msg("The undead are immune to possession.");
|
||||||
break;
|
break;
|
||||||
|
case E_ROBOT:
|
||||||
|
msg("Robots are immune to charming.");
|
||||||
|
break;
|
||||||
|
case E_ALREADYUSING:
|
||||||
|
msg("%s is already charmed by another!", targetname);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
msg("You cannot possesss %s.", targname);
|
msg("You cannot possesss %s.", targname);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue