@@ -91,13 +91,11 @@ func (c *char) a4Init() {
9191
9292func (c * char ) moonsignInit () {
9393 c .Core .Flags .Custom [reactable .LunarCrystallizeEnableKey ] = 1
94- f := func (args ... any ) {
94+
95+ c .Core .Events .Subscribe (event .OnEnemyHit , func (args ... any ) {
9596 atk := args [1 ].(* info.AttackEvent )
9697
97- switch atk .Info .AttackTag {
98- case attacks .AttackTagDirectLunarCrystallize :
99- case attacks .AttackTagReactionLunarCrystallize :
100- default :
98+ if atk .Info .AttackTag != attacks .AttackTagDirectLunarCrystallize {
10199 return
102100 }
103101
@@ -108,7 +106,21 @@ func (c *char) moonsignInit() {
108106 }
109107
110108 atk .Info .BaseDmgBonus += bonus
111- }
112- c .Core .Events .Subscribe (event .OnEnemyHit , f , lunarcrystallizeBonusKey )
113- c .Core .Events .Subscribe (event .OnLunarReactionAttack , f , lunarcrystallizeBonusKey )
109+ }, lunarcrystallizeBonusKey )
110+
111+ c .Core .Events .Subscribe (event .OnLunarReactionAttack , func (args ... any ) {
112+ atk := args [1 ].(* info.AttackEvent )
113+
114+ if atk .Info .AttackTag != attacks .AttackTagReactionLunarCrystallize {
115+ return
116+ }
117+
118+ bonus := min (c .TotalDef (false )/ 100.0 * 0.007 , 0.14 )
119+
120+ if c .Core .Flags .LogDebug {
121+ c .Core .Log .NewEvent ("linnea adding lunar crystallize base damage" , glog .LogCharacterEvent , c .Index ()).Write ("bonus" , bonus )
122+ }
123+
124+ atk .Info .BaseDmgBonus += bonus
125+ }, lunarcrystallizeBonusKey )
114126}
0 commit comments