Look at this code from commonactions.cpp in version 3.15.1:
/* common - returns the creature's maximum level in the given skill */
int maxskill(int skill,creaturest& cr)
{
switch(skill)
{
case SKILL_HANDTOHAND:
case SKILL_SWORD:
case SKILL_IMPROVISED:
return (cr.attval(ATTRIBUTE_STRENGTH)+cr.attval(ATTRIBUTE_AGILITY))/2;
case SKILL_CLUB:
return cr.attval(ATTRIBUTE_STRENGTH);
case SKILL_KNIFE:
case SKILL_PISTOL:
case SKILL_RIFLE:
case SKILL_SMG:
case SKILL_SHOTGUN:
case SKILL_DRIVING:
case SKILL_SLEIGHTOFHAND:
case SKILL_STEALTH:
return cr.attval(ATTRIBUTE_AGILITY);
case SKILL_PERSUASION:
case SKILL_DISGUISE:
case SKILL_SEDUCTION:
return cr.attval(ATTRIBUTE_CHARISMA);
case SKILL_ART:
case SKILL_MUSIC:
case SKILL_COOKING:
return (2*cr.attval(ATTRIBUTE_HEART)+cr.attval(ATTRIBUTE_AGILITY))/3;
case SKILL_WRITING:
return (cr.attval(ATTRIBUTE_INTELLIGENCE)+cr.attval(ATTRIBUTE_HEART))/2;
case SKILL_RELIGION:
return (2*cr.attval(ATTRIBUTE_WISDOM)+cr.attval(ATTRIBUTE_HEART))/3;
case SKILL_BUSINESS:
return (cr.attval(ATTRIBUTE_CHARISMA)+cr.attval(ATTRIBUTE_WISDOM)+cr.attval(ATTRIBUTE_INTELLIGENCE))/3;
case SKILL_MEDICAL:
case SKILL_SECURITY:
case SKILL_GARMENTMAKING:
return (cr.attval(ATTRIBUTE_INTELLIGENCE)+cr.attval(ATTRIBUTE_AGILITY))/2;
case SKILL_INTERROGATION:
case SKILL_TEACHING:
return (cr.attval(ATTRIBUTE_INTELLIGENCE)+cr.attval(ATTRIBUTE_CHARISMA))/2;
case SKILL_SCIENCE:
case SKILL_LAW:
case SKILL_COMPUTERS:
case SKILL_STREETSENSE:
case SKILL_TACTICS:
return cr.attval(ATTRIBUTE_INTELLIGENCE);
case SKILL_LEADERSHIP:
if(cr.juice<10)return 0;
if(cr.juice<50)return 1;
if(cr.juice<100)return 2;
if(cr.juice<200)return 3;
if(cr.juice<500)return 4;
return 5;
default:
return -1;
}
}
There is a problem. SKILL_SURVIVAL is not mentioned at all. This means that the skill cap for the Survival skill is -1, so nobody can ever increase their Survival skill, ever, if I am understanding the code correctly. I looked at the latest SVN and while more skills have been added into this function, SKILL_SURVIVAL is still missing. Is it missing from there on purpose or is this an actual bug? Is it by design that the Survival skill cannot be learned? In earlier versions I think Survival might have been dependent on Intelligence, like Science, Law, Computers, Street Sense, and Tactics, but I am not exactly sure. Anyway
the wiki now says what stats each skill is based on, and it is completely accurate since I based it on the source code from commonactions.cpp in version 3.15.1. The previous version said Survival was based on Intelligence but now it says the cap is -1 because that is the truth. I wonder whether there is some secret mechanism for increasing the Survival skill in some other file of the source code, though. I did a text search on all the files for SKILL_SURVIVAL and while it does come up a lot, I do not see anywhere where it looks like it is being modified, except during character creation. Is this a skill you are planning on deleting from the game or something? I am just rather confused about this.