コード例 #1
0
ファイル: dragons.c プロジェクト: UweKopf/server
void age_dragon(unit * u)
{
  if (u->number > 0 && rng_int() % 100 < age_chance(u->age, WYRMAGE, 1)) {
    double q = (double)u->hp / (double)(unit_max_hp(u) * u->number);
    u_setrace(u, new_race[RC_WYRM]);
    u->irace = NULL;
    u->hp = (int)(unit_max_hp(u) * u->number * q);
  }
}
コード例 #2
0
ファイル: dragons.c プロジェクト: UweKopf/server
void age_firedragon(unit * u)
{
  if (u->number > 0 && rng_int() % 100 < age_chance(u->age, DRAGONAGE, 1)) {
    double q = (double)u->hp / (double)(unit_max_hp(u) * u->number);
    u_setrace(u, new_race[RC_DRAGON]);
    u->irace = NULL;
    scale_number(u, 1);
    u->hp = (int)(unit_max_hp(u) * u->number * q);
  }
}
コード例 #3
0
ファイル: zombies.c プロジェクト: TomBraun/server
void age_ghoul(unit * u)
{
  if (is_monsters(u->faction) && rng_int() % 100 < age_chance(u->age, 27, 1)) {
    int n = _max(1, u->number / 2);
    double q = (double)u->hp / (double)(unit_max_hp(u) * u->number);
    u_setrace(u, get_race(RC_GHOUL_LORD));
    u->irace = NULL;
    scale_number(u, n);
    u->hp = (int)(unit_max_hp(u) * u->number * q);
  }
}
コード例 #4
0
ファイル: zombies.c プロジェクト: ennorehling/eressea
void age_zombie(unit * u)
{
    if (is_monsters(u->faction) && rng_int() % 100 < age_chance(u->age, 27, 1)) {
        int n = u->number / 2;
        double q = (double)u->hp / (double)(unit_max_hp(u) * u->number);
        if (n < 1) n = 1;
        u_setrace(u, get_race(RC_ZOMBIE_LORD));
        u->irace = NULL;
        scale_number(u, n);
        u->hp = (int)(unit_max_hp(u) * u->number * q);
    }
}