コード例 #1
0
ファイル: birth.c プロジェクト: elliptic/elliposchengband
int calc_exp_factor(void)
{
    int exp;
    int r_exp = _race_exp_factor();
    int c_exp = get_class()->exp;
    int a_exp = get_personality()->exp;

    if (p_ptr->prace == RACE_ANDROID)
        return r_exp;

    exp = r_exp * c_exp / 100;
    exp = exp * a_exp / 100;

    if (p_ptr->prace == RACE_MON_DRAGON)
    {
        dragon_realm_ptr realm = dragon_get_realm(p_ptr->dragon_realm);
        exp = exp * realm->exp / 100;
    }

    return exp;
}
コード例 #2
0
static void _dragon_realms_help(FILE* fff)
{
    int i, j;
    fprintf(fff, "[[[[B|  Dragon Realms\n\n");
    _wrap_text(fff, 
               "Dragons are magical creatures and may choose to learn a particular branch of "
               "dragon magic. Unlike normal spell casters, dragons do not need spell books to "
               "cast or learn powers. Instead, they simply gain spells as they mature. Each "
               "realm of dragon magic has a direct impact on the player's stats and skills, and "
               "each realm also requires a different stat for casting purposes.", 
               2, 80);
    fprintf(fff, "\n\n");
    for (i = 1; i < DRAGON_REALM_MAX; i++)
    {
        dragon_realm_ptr realm = dragon_get_realm(i);
        fprintf(fff, "***** <%s>\n", realm->name);
        fprintf(fff, "[[[[r|  %s\n\n", realm->name);
        _wrap_text(fff, realm->desc, 2, 80);
        fprintf(fff, "\n\n");
    }

    fprintf(fff, "***** <Tables>\n");
    fprintf(fff, "[[[[y|  Table 1 - Realm Statistic Bonus Table ---\n\n");
    fprintf(fff, "[[[[r|                 STR  INT  WIS  DEX  CON  CHR  Life  Exp\n");
    for (i = 1; i < DRAGON_REALM_MAX; i++)
    {
        dragon_realm_ptr realm = dragon_get_realm(i);
        char             line[255];
        char             tmp[255];

        sprintf(line, "  %-14s", realm->name);
        for (j = 0; j < 6; j++)
        {
            if (j == realm->spell_stat)
                sprintf(tmp, "[[[[G| %+3d |", realm->stats[j]);
            else
                sprintf(tmp, " %+3d ", realm->stats[j]);
            strcat(line, tmp);
        }
        sprintf(tmp, " %3d%%  %3d%%", realm->life, realm->exp);
        strcat(line, tmp);
        fprintf(fff, "%s\n", line);
    }
    fprintf(fff, "\n\n");

    fprintf(fff, "[[[[y|  Table 2 - Realm Skill Bonus Table\n\n");
    fprintf(fff, "[[[[r|                 Dsrm  Dvce  Save  Stlh  Srch  Prcp  Melee  Attack  Breath\n");
    for (i = 1; i < DRAGON_REALM_MAX; i++)
    {
        dragon_realm_ptr realm = dragon_get_realm(i);
        fprintf(fff, "  %-14s %+4d  %+4d  %+4d  %+4d  %+4d  %+4d  %+5d  %5d%%  %5d%%\n", 
            realm->name,
            realm->skills.dis, 
            realm->skills.dev,
            realm->skills.sav,
            realm->skills.stl, 
            realm->skills.srh, 
            realm->skills.fos,
            realm->skills.thn,
            realm->attack,
            realm->breath
        );
    }
    fprintf(fff, "\n\n");
}