|
|
|
@ -56,9 +56,9 @@ func TestSimulateOneFight_HeroDies(t *testing.T) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func TestSimulateOneFight_LevelUp(t *testing.T) {
|
|
|
|
func TestSimulateOneFight_LevelUp(t *testing.T) {
|
|
|
|
// Seed XP just below L1->L2 threshold (180 in v3).
|
|
|
|
// Seed XP just below L1->L2 threshold (100 XP with default tuning).
|
|
|
|
hero := &model.Hero{
|
|
|
|
hero := &model.Hero{
|
|
|
|
Level: 1, XP: 179,
|
|
|
|
Level: 1, XP: 99,
|
|
|
|
MaxHP: 10000, HP: 10000,
|
|
|
|
MaxHP: 10000, HP: 10000,
|
|
|
|
Attack: 100, Defense: 60, Speed: 1.0,
|
|
|
|
Attack: 100, Defense: 60, Speed: 1.0,
|
|
|
|
Strength: 10, Constitution: 10, Agility: 10, Luck: 5,
|
|
|
|
Strength: 10, Constitution: 10, Agility: 10, Luck: 5,
|
|
|
|
@ -75,7 +75,30 @@ func TestSimulateOneFight_LevelUp(t *testing.T) {
|
|
|
|
t.Fatal("expected XP gain")
|
|
|
|
t.Fatal("expected XP gain")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if hero.Level < 2 {
|
|
|
|
if hero.Level < 2 {
|
|
|
|
t.Fatalf("expected level 2+ after gaining %d XP from 179 base, got level %d", xpGained, hero.Level)
|
|
|
|
t.Fatalf("expected level 2+ after gaining %d XP from 99 base, got level %d", xpGained, hero.Level)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func TestBuildEnemyInstanceForLevel_XPPerLevelRampsFrom10(t *testing.T) {
|
|
|
|
|
|
|
|
tmpl := model.Enemy{
|
|
|
|
|
|
|
|
BaseLevel: 1,
|
|
|
|
|
|
|
|
XPReward: 1,
|
|
|
|
|
|
|
|
XPPerLevel: 4,
|
|
|
|
|
|
|
|
IsElite: false,
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
early := BuildEnemyInstanceForLevel(tmpl, 6)
|
|
|
|
|
|
|
|
if early.XPReward != 1 {
|
|
|
|
|
|
|
|
t.Fatalf("normal mob instance L6: want base XP only (no per-level ramp), got %d", early.XPReward)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
mid := BuildEnemyInstanceForLevel(tmpl, 12)
|
|
|
|
|
|
|
|
if mid.XPReward <= 1 {
|
|
|
|
|
|
|
|
t.Fatalf("normal mob instance L12: want xp_per_level applied, got %d", mid.XPReward)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
elite := tmpl
|
|
|
|
|
|
|
|
elite.IsElite = true
|
|
|
|
|
|
|
|
el := BuildEnemyInstanceForLevel(elite, 5)
|
|
|
|
|
|
|
|
if el.XPReward <= 1 {
|
|
|
|
|
|
|
|
t.Fatalf("elite instance L5: want xp_per_level even before 10, got %d", el.XPReward)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|