Rename mechanic role to "Engineer", increase its IQ and add chemistry+cartography skills. Odea is that it is more a "smart modern mechanical engineer" instead of "dumb greasenonkey"

Overalls shouldn't have a minimum AGI requirement

Soldering iron should not use any particular weapon proficiency.
This commit is contained in:
Rob Pearce 2023-10-12 21:32:38 +11:00
parent 0e8a26c2b7
commit 7a13dfc235
3 changed files with 8 additions and 5 deletions

BIN
a.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

11
data.c
View File

@ -638,9 +638,11 @@ void initjobs(void) {
addflag(lastjob->flags, F_LEVSKILL, 15, SK_LORE_NATURE, NA, NULL); addflag(lastjob->flags, F_LEVSKILL, 15, SK_LORE_NATURE, NA, NULL);
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL); addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
addjob(J_MECHANIC, "Mechanic", "Mechanics, while great at negotiating high hourly rates, are not generally very suited for adventuring. Their spanner and metal-working skills might come in handy though.", JC_GENERAL); addjob(J_ENGINEER, "Engineer", "Engineers, while great at negotiating high hourly rates, are not generally very suited for adventuring. Their spanner and metal-working skills might come in handy though, alongside their keen problem-solving acumen.", JC_GENERAL);
// stats // stats
addflag(lastjob->flags, F_JOBATTRMOD, A_STR, 5, NA, NULL); addflag(lastjob->flags, F_JOBATTRMOD, A_STR, 5, NA, NULL);
addflag(lastjob->flags, F_JOBATTRMOD, A_AGI, -5, NA, NULL);
addflag(lastjob->flags, F_JOBATTRMOD, A_IQ, 15, NA, NULL);
addflag(lastjob->flags, F_JOBATTRMOD, A_CHA, -20, NA, NULL); addflag(lastjob->flags, F_JOBATTRMOD, A_CHA, -20, NA, NULL);
addflag(lastjob->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL); addflag(lastjob->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
// initial objects // initial objects
@ -654,11 +656,13 @@ void initjobs(void) {
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "rubber boots"); addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "rubber boots");
// initial skills // initial skills
addflag(lastjob->flags, F_STARTSKILL, SK_CHANNELING, PR_NOVICE, NA, NULL); addflag(lastjob->flags, F_STARTSKILL, SK_CHANNELING, PR_NOVICE, NA, NULL);
addflag(lastjob->flags, F_STARTSKILL, SK_CARTOGRAPHY, PR_NOVICE, NA, NULL);
addflag(lastjob->flags, F_STARTSKILL, SK_ENGINEERING, PR_ADEPT, NA, NULL); addflag(lastjob->flags, F_STARTSKILL, SK_ENGINEERING, PR_ADEPT, NA, NULL);
addflag(lastjob->flags, F_STARTSKILL, SK_METALWORK, PR_ADEPT, NA, NULL); addflag(lastjob->flags, F_STARTSKILL, SK_METALWORK, PR_ADEPT, NA, NULL);
addflag(lastjob->flags, F_STARTSKILL, SK_SPEECH, PR_NOVICE, NA, NULL); addflag(lastjob->flags, F_STARTSKILL, SK_SPEECH, PR_NOVICE, NA, NULL);
addflag(lastjob->flags, F_STARTSKILL, SK_TECHUSAGE, PR_BEGINNER, NA, NULL); addflag(lastjob->flags, F_STARTSKILL, SK_TECHUSAGE, PR_BEGINNER, NA, NULL);
addflag(lastjob->flags, F_STARTSKILL, SK_ARMOUR, PR_ADEPT, NA, NULL); addflag(lastjob->flags, F_STARTSKILL, SK_ARMOUR, PR_ADEPT, NA, NULL);
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_CHEMISTRY, PR_NOVICE, NA, NULL);
// learnable akills // learnable akills
addflag(lastjob->flags, F_CANLEARN, SK_COOKING, PR_ADEPT, NA, NULL); addflag(lastjob->flags, F_CANLEARN, SK_COOKING, PR_ADEPT, NA, NULL);
addflag(lastjob->flags, F_CANLEARN, SK_CARTOGRAPHY, PR_ADEPT, NA, NULL); addflag(lastjob->flags, F_CANLEARN, SK_CARTOGRAPHY, PR_ADEPT, NA, NULL);
@ -668,6 +672,8 @@ void initjobs(void) {
addflag(lastjob->flags, F_CANLEARN, SK_SWIMMING, PR_NOVICE, NA, NULL); addflag(lastjob->flags, F_CANLEARN, SK_SWIMMING, PR_NOVICE, NA, NULL);
addflag(lastjob->flags, F_CANLEARN, SK_THROWING, NA, NA, NULL); addflag(lastjob->flags, F_CANLEARN, SK_THROWING, NA, NA, NULL);
addflag(lastjob->flags, F_CANLEARN, SK_SS_ALLOMANCY, NA, NA, NULL); addflag(lastjob->flags, F_CANLEARN, SK_SS_ALLOMANCY, NA, NA, NULL);
addflag(lastjob->flags, F_CANLEARN, SK_ARMOUR, NA, NA, NULL);
addflag(lastjob->flags, F_CANLEARN, SK_SHIELDS, NA, NA, NULL);
// abilities // abilities
addflag(lastjob->flags, F_OBESE, B_TRUE, NA, NA, NULL); addflag(lastjob->flags, F_OBESE, B_TRUE, NA, NA, NULL);
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL); addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
@ -6862,7 +6868,6 @@ void initobjects(void) {
addot(OT_SOLDERINGIRON, "soldering iron", "A hand tool with an electrically heated metal tip. This unit is operated by an in-built battery.", MT_METAL, 0.5, OC_TECH, SZ_TINY); addot(OT_SOLDERINGIRON, "soldering iron", "A hand tool with an electrically heated metal tip. This unit is operated by an in-built battery.", MT_METAL, 0.5, OC_TECH, SZ_TINY);
addflag(lastot->flags, F_RARITY, H_ALL, RR_UNCOMMON, NA, NULL); addflag(lastot->flags, F_RARITY, H_ALL, RR_UNCOMMON, NA, NULL);
addflag(lastot->flags, F_VALUE, 100, NA, NA, NULL); addflag(lastot->flags, F_VALUE, 100, NA, NA, NULL);
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
addflag(lastot->flags, F_DAM, DT_PIERCE, 1, NA, NULL); addflag(lastot->flags, F_DAM, DT_PIERCE, 1, NA, NULL);
addflag(lastot->flags, F_EXTRADAMWITHCHARGES, DT_HEAT, NA, NA, "6"); addflag(lastot->flags, F_EXTRADAMWITHCHARGES, DT_HEAT, NA, NA, "6");
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL); addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
@ -7079,7 +7084,6 @@ void initobjects(void) {
addflag(lastot->flags, F_ACCURACY, 65, NA, NA, NULL); addflag(lastot->flags, F_ACCURACY, 65, NA, NA, NULL);
addflag(lastot->flags, F_OBHP, 2, 2, NA, NULL); addflag(lastot->flags, F_OBHP, 2, 2, NA, NULL);
addflag(lastot->flags, F_ATTREQ, A_AGI, NA, 65, "10"); addflag(lastot->flags, F_ATTREQ, A_AGI, NA, 65, "10");
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
addot(OT_STEAKKNIFE, "steak knife", "A common kitchen knife.", MT_METAL, 0.2, OC_MISC, SZ_SMALL); addot(OT_STEAKKNIFE, "steak knife", "A common kitchen knife.", MT_METAL, 0.2, OC_MISC, SZ_SMALL);
addflag(lastot->flags, F_GLYPH, C_METAL, ')', NA, NULL); addflag(lastot->flags, F_GLYPH, C_METAL, ')', NA, NULL);
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL); addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL);
@ -8204,7 +8208,6 @@ void initobjects(void) {
addflag(lastot->flags, F_GOESON, BP_LEGS, NA, NA, NULL); addflag(lastot->flags, F_GOESON, BP_LEGS, NA, NA, NULL);
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
addflag(lastot->flags, F_ARMOURRATING, 2, NA, NA, NULL); addflag(lastot->flags, F_ARMOURRATING, 2, NA, NA, NULL);
addflag(lastot->flags, F_ATTREQ, A_AGI, 35, NA, NULL);
addflag(lastot->flags, F_OBHP, 20, 20, NA, NULL); addflag(lastot->flags, F_OBHP, 20, 20, NA, NULL);
addflag(lastot->flags, F_CRITPROTECTION, 85, NA, NA, NULL); addflag(lastot->flags, F_CRITPROTECTION, 85, NA, NA, NULL);
addflag(lastot->flags, F_STARTSPLAIN, B_TRUE, NA, NA, NULL); addflag(lastot->flags, F_STARTSPLAIN, B_TRUE, NA, NA, NULL);

2
defs.h
View File

@ -1616,8 +1616,8 @@ enum JOB {
J_CHEF, J_CHEF,
J_COMMANDO, J_COMMANDO,
J_DRUID, J_DRUID,
J_ENGINEER,
J_HUNTER, J_HUNTER,
J_MECHANIC,
J_MONK, J_MONK,
J_NINJA, J_NINJA,
J_PIRATE, J_PIRATE,