chaostrom wrote
Cha was planned to have an effect, but it hasn't been implemented.
Perhaps not in 0.50 (which lacks the taming difficulty system entirely), but in CVS (and any derivatives) Charisma does have an affect on taming.
Dulcis taming is based on WIS/CHA (as well as the player's and monster's alignment with Dulcis), scroll taming is based on INT/CHA, and lyre taming is just based on CHA.
In essence, it's
Dulcis:
3*TamingDifficulty vs (CHA+WIS)+(DulcisRelation/20)
Scroll:
5*TamingDifficulty vs (4*INT)+CHA
Lyre:
TamingDifficulty vs CHA
char.cpp
truth character::CanTameWithDulcis(const character* Tamer) const
{
int TamingDifficulty = GetTamingDifficulty();
if(TamingDifficulty == NO_TAMING) // can't be tamed
return false;
if(GetAttachedGod() == DULCIS) // monster is aligned with Dulcis == Free taming!
return true;
int Modifier = Tamer->GetAttribute(WISDOM) + Tamer->GetAttribute(CHARISMA); //initial Modifier is WIS+CHA
if(Tamer->IsPlayer())
Modifier += game::GetGod(DULCIS)->GetRelation() / 20; // add (relation with Dulcis)/20 to Modifier
else if(Tamer->GetAttachedGod() == DULCIS)
Modifier += 50;
if(TamingDifficulty == 0)
if(!IgnoreDanger())
TamingDifficulty = int(10 * GetRelativeDanger(Tamer));
else
TamingDifficulty = 10 * GetHPRequirementForGeneration()
/ Max(Tamer->GetHP(), 1);
return Modifier >= TamingDifficulty * 3; // Player's taming Modifer versus 3*TamingDifficulty
}
truth character::CanTameWithLyre(const character* Tamer) const
{
int TamingDifficulty = GetTamingDifficulty();
if(TamingDifficulty == NO_TAMING) // can't be tamed
return false;
if(TamingDifficulty == 0)
if(!IgnoreDanger())
TamingDifficulty = int(10 * GetRelativeDanger(Tamer));
else
TamingDifficulty = 10 * GetHPRequirementForGeneration()
/ Max(Tamer->GetHP(), 1);
return Tamer->GetAttribute(CHARISMA) >= TamingDifficulty; //Player's Charisma stat vs monster's TamingDifficulty
}
truth character::CanTameWithScroll(const character* Tamer) const
{
int TamingDifficulty = GetTamingDifficulty();
return (TamingDifficulty != NO_TAMING
&& (TamingDifficulty == 0
|| Tamer->GetAttribute(INTELLIGENCE) * 4
+ Tamer->GetAttribute(CHARISMA)
>= TamingDifficulty * 5)); // (4*INT + CHA) vs (5*TamingDifficulty)
}