-
Notifications
You must be signed in to change notification settings - Fork 88
/
asc.go
57 lines (52 loc) · 1.86 KB
/
asc.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package eula
import (
"github.com/genshinsim/gcsim/pkg/core/action"
"github.com/genshinsim/gcsim/pkg/core/attacks"
"github.com/genshinsim/gcsim/pkg/core/attributes"
"github.com/genshinsim/gcsim/pkg/core/combat"
"github.com/genshinsim/gcsim/pkg/core/geometry"
"github.com/genshinsim/gcsim/pkg/core/glog"
)
// If 2 stacks of Grimheart are consumed upon unleashing the Holding Mode of Icetide Vortex,
// a Shattered Lightfall Sword will be created that will explode immediately,
// dealing 50% of the basic Physical DMG dealt by a Lightfall Sword created by Glacial Illumination.
func (c *char) a1() {
if c.Base.Ascension < 1 {
return
}
// make sure this gets executed after hold e hitlag starts but before hold e is over
// this makes it so it doesn't get affected by hitlag after Hold E is over
aiA1 := combat.AttackInfo{
ActorIndex: c.Index,
Abil: "Icetide (Lightfall)",
AttackTag: attacks.AttackTagElementalBurst,
ICDTag: attacks.ICDTagNone,
ICDGroup: attacks.ICDGroupDefault,
StrikeType: attacks.StrikeTypeBlunt,
Element: attributes.Physical,
Durability: 25,
Mult: burstExplodeBase[c.TalentLvlBurst()] * 0.5,
}
c.QueueCharTask(func() {
c.Core.QueueAttack(
aiA1,
combat.NewCircleHitOnTarget(c.Core.Combat.Player(), geometry.Point{Y: 2}, 6.5),
a1Hitmark-(skillHoldHitmark+1),
a1Hitmark-(skillHoldHitmark+1),
c.burstStackCB,
)
}, skillHoldHitmark+1)
}
// When Glacial Illumination is cast, the CD of Icetide Vortex is reset and Eula gains 1 stack of Grimheart.
func (c *char) a4() {
if c.Base.Ascension < 4 {
return
}
if c.grimheartStacks < 2 {
c.grimheartStacks++
}
c.Core.Log.NewEvent("eula: grimheart stack", glog.LogCharacterEvent, c.Index).
Write("current count", c.grimheartStacks)
c.ResetActionCooldown(action.ActionSkill)
c.Core.Log.NewEvent("eula a4 reset skill cd", glog.LogCharacterEvent, c.Index)
}