@@ -7,12 +7,12 @@ import (
77 "github.com/genshinsim/gcsim/pkg/core/info"
88)
99
10- func (e * Enemy ) calc (atk * info.AttackEvent , evt glog.Event ) (float64 , bool ) {
10+ func (e * Enemy ) calc (atk * info.AttackEvent , evt glog.Event , grpMult float64 ) (float64 , bool ) {
1111 var isCrit bool
1212
1313 if atk .Info .AttackTag == attacks .AttackTagDirectLunarCharged ||
1414 atk .Info .AttackTag == attacks .AttackTagDirectLunarBloom {
15- e .calcDirectLunar (atk , evt )
15+ e .calcDirectLunar (atk , evt , grpMult )
1616 }
1717
1818 elePer := 0.0
@@ -112,11 +112,7 @@ func (e *Enemy) calc(atk *info.AttackEvent, evt glog.Event) (float64, bool) {
112112 }
113113
114114 // reduce damage by damage group
115- x := 1.0
116- if ! atk .Info .SourceIsSim {
117- x = e .GroupTagDamageMult (atk .Info .ICDTag , atk .Info .ICDGroup , atk .Info .ActorIndex )
118- damage *= x
119- }
115+ damage *= grpMult
120116
121117 elevation := atk .Info .Elevation
122118 damage *= 1 + elevation
@@ -128,7 +124,7 @@ func (e *Enemy) calc(atk *info.AttackEvent, evt glog.Event) (float64, bool) {
128124 atk .Info .ActorIndex ,
129125 ).
130126 Write ("src_frame" , atk .SourceFrame ).
131- Write ("damage_grp_mult" , x ).
127+ Write ("damage_grp_mult" , grpMult ).
132128 Write ("damage" , damage ).
133129 Write ("abil" , atk .Info .Abil ).
134130 Write ("talent" , atk .Info .Mult ).
@@ -184,7 +180,7 @@ func (e *Enemy) calc(atk *info.AttackEvent, evt glog.Event) (float64, bool) {
184180 return damage , isCrit
185181}
186182
187- func (e * Enemy ) calcDirectLunar (atk * info.AttackEvent , evt glog.Event ) (float64 , bool ) {
183+ func (e * Enemy ) calcDirectLunar (atk * info.AttackEvent , evt glog.Event , grpMult float64 ) (float64 , bool ) {
188184 var isCrit bool
189185
190186 // no DMG% for direct lunar damage
@@ -246,11 +242,7 @@ func (e *Enemy) calcDirectLunar(atk *info.AttackEvent, evt glog.Event) (float64,
246242 damage *= resmod
247243
248244 // reduce damage by damage group
249- x := 1.0
250- if ! atk .Info .SourceIsSim {
251- x = e .GroupTagDamageMult (atk .Info .ICDTag , atk .Info .ICDGroup , atk .Info .ActorIndex )
252- damage *= x
253- }
245+ damage *= grpMult
254246
255247 elevation := atk .Info .Elevation
256248 damage *= 1 + elevation
@@ -281,7 +273,7 @@ func (e *Enemy) calcDirectLunar(atk *info.AttackEvent, evt glog.Event) (float64,
281273 atk .Info .ActorIndex ,
282274 ).
283275 Write ("src_frame" , atk .SourceFrame ).
284- Write ("damage_grp_mult" , x ).
276+ Write ("damage_grp_mult" , grpMult ).
285277 Write ("damage" , damage ).
286278 Write ("abil" , atk .Info .Abil ).
287279 Write ("talent" , atk .Info .Mult ).
0 commit comments