diff --git a/pk7/acs/lithmain.bin b/pk7/acs/lithmain.bin index 0b5ce8eef..91bf91f64 100644 Binary files a/pk7/acs/lithmain.bin and b/pk7/acs/lithmain.bin differ diff --git a/source/w_monster.c b/source/w_monster.c index 1be8ba17f..c95ad02b9 100644 --- a/source/w_monster.c +++ b/source/w_monster.c @@ -131,14 +131,11 @@ static void ShowBarrier(dmon_t const *m, k32 alpha) static void BaseMonsterLevel(dmon_t *m) { - k32 rn1 = ACS_RandomFixed(1, _max_rank); - k32 rn2 = ACS_RandomFixed(1, _max_level); + k32 rlv = ACS_RandomFixed(1, _max_level); k32 bias; bias = mapscleared / 40.0; - for_player() {rn2 += p->attr.level / 2.0; break;} - bias *= bias; bias += ACS_GameSkill() / (k32)skill_nightmare * 0.1; bias += ACS_GetCVar(sc_sv_difficulty) / 100.0; @@ -146,16 +143,20 @@ static void BaseMonsterLevel(dmon_t *m) if(m->mi->flags & mif_angelic) { m->rank = 7; - m->level = 77; + m->level = 7 + rlv * bias; } else if(m->mi->flags & mif_dark) { m->rank = 6; - m->level = 66; + m->level = 6 + rlv * bias; } else if(GetFun() & lfun_ragnarok) { m->rank = _max_rank; - m->level = _max_level + rn2 * bias; + m->level = _max_level + rlv * bias; } else { - m->rank = minmax(rn1 * bias * 2, 1, _max_rank); - m->level = minmax(rn2 * bias , 1, _max_level); + k32 rrn = ACS_RandomFixed(1, _max_rank); + + for_player() {rlv += p->attr.level / 2.0; break;} + + m->rank = minmax(rrn * bias * 2, 1, _max_rank); + m->level = minmax(rlv * bias , 1, _max_level); } switch(m->rank) { diff --git a/text/Monsters.txt b/text/Monsters.txt index 114ceed33..bd4e31d73 100644 --- a/text/Monsters.txt +++ b/text/Monsters.txt @@ -74,11 +74,14 @@ ## Lithium -------------------------------------------------------------------| +%mif_full|mif_dark ++1000 0 phantom Lith_Boss_James ++2000 0 phantom Lith_Boss_Makarov ++3000 0 phantom Lith_Boss_Isaac +% + %mif_full -+1000 0 phantom Lith_Boss_James -+2000 0 phantom Lith_Boss_Makarov -+3000 0 phantom Lith_Boss_Isaac -+0 0 cyberdemon Lith_Steggles ++0 0 cyberdemon Lith_Steggles % %mif_full|mif_angelic