71 lines
2.0 KiB
Go
71 lines
2.0 KiB
Go
package effect
|
|
|
|
import (
|
|
"testing"
|
|
|
|
fightinfo "blazing/logic/service/fight/info"
|
|
"blazing/logic/service/fight/input"
|
|
"blazing/modules/player/model"
|
|
)
|
|
|
|
func newEffect201TestInput(hp, maxHP uint32) *input.Input {
|
|
in := &input.Input{
|
|
CurPet: []*fightinfo.BattlePetEntity{{
|
|
Info: model.PetInfo{
|
|
Hp: hp,
|
|
MaxHp: maxHP,
|
|
},
|
|
}},
|
|
}
|
|
in.AttackValue = fightinfo.NewAttackValue(0)
|
|
return in
|
|
}
|
|
|
|
func TestEffect201HealAllIgnoredInSingleInputBattle(t *testing.T) {
|
|
carrier := newEffect201TestInput(40, 100)
|
|
opponent := newEffect201TestInput(60, 100)
|
|
carrier.Team = []*input.Input{carrier}
|
|
carrier.OppTeam = []*input.Input{opponent}
|
|
|
|
eff := &Effect201{}
|
|
eff.SetArgs(carrier, 1, 2)
|
|
eff.EffectNode.EffectContextHolder.Ctx = input.Ctx{
|
|
LegacySides: input.LegacySides{Our: carrier, Opp: opponent},
|
|
EffectBinding: input.EffectBinding{Carrier: carrier, Source: carrier},
|
|
}
|
|
|
|
if !eff.OnSkill() {
|
|
t.Fatalf("expected effect to finish successfully")
|
|
}
|
|
if got := carrier.CurrentPet().Info.Hp; got != 40 {
|
|
t.Fatalf("expected single-input full-team heal to be ignored, got hp %d", got)
|
|
}
|
|
}
|
|
|
|
func TestEffect201HealAllWorksInMultiInputBattle(t *testing.T) {
|
|
carrier := newEffect201TestInput(40, 100)
|
|
ally := newEffect201TestInput(10, 80)
|
|
opponent := newEffect201TestInput(60, 100)
|
|
carrier.Team = []*input.Input{carrier, ally}
|
|
carrier.OppTeam = []*input.Input{opponent}
|
|
ally.Team = carrier.Team
|
|
ally.OppTeam = carrier.OppTeam
|
|
|
|
eff := &Effect201{}
|
|
eff.SetArgs(carrier, 1, 2)
|
|
eff.EffectNode.EffectContextHolder.Ctx = input.Ctx{
|
|
LegacySides: input.LegacySides{Our: carrier, Opp: opponent},
|
|
EffectBinding: input.EffectBinding{Carrier: carrier, Source: carrier},
|
|
}
|
|
|
|
if !eff.OnSkill() {
|
|
t.Fatalf("expected effect to finish successfully")
|
|
}
|
|
if got := carrier.CurrentPet().Info.Hp; got != 90 {
|
|
t.Fatalf("expected carrier hp 90 after full-team heal, got %d", got)
|
|
}
|
|
if got := ally.CurrentPet().Info.Hp; got != 50 {
|
|
t.Fatalf("expected ally hp 50 after full-team heal, got %d", got)
|
|
}
|
|
}
|