Skip to content

Commit 3647a07

Browse files
Add Stellar-Conduct (#2711)
* Add SSC reaction * Add SSC to artifacts/weapons/subscriptions * Fix lint * Change SSC polestar gadget to spawn on player pos * Remove TODO
1 parent 0b7ca3a commit 3647a07

25 files changed

Lines changed: 346 additions & 24 deletions

File tree

internal/artifacts/disenchantmentindeepshadow/disenchantmentindeepshadow.go

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,31 +43,35 @@ func NewSet(core *core.Core, char *character.CharWrapper, count int, param map[s
4343
return &s, nil
4444
}
4545

46-
c4Buff := make([]float64, attributes.EndStatType)
47-
c4Buff[attributes.CR] = 0.16
48-
4946
char.AddReactBonusMod(character.ReactBonusMod{
50-
Base: modifier.NewBase("disenchantment-reaction-bonus-4pc", -1),
47+
Base: modifier.NewBase("disenchantment-4pc-dmg", -1),
5148
Amount: func(ai info.AttackInfo) float64 {
52-
if ai.AttackTag != attacks.AttackTagSuperconductDamage {
53-
return 0
49+
switch ai.AttackTag {
50+
case attacks.AttackTagSuperconductDamage:
51+
return 0.8
52+
case attacks.AttackTagDirectStellarConduct:
53+
return 0.4
5454
}
5555

56-
return 0.8
56+
return 0
5757
},
5858
})
5959

60-
// TODO: check if it works while character is off-field
61-
60+
m := make([]float64, attributes.EndStatType)
61+
m[attributes.CR] = 0.16
6262
char.AddAttackMod(character.AttackMod{
63-
Base: modifier.NewBase("disenchantment-on-superconduct-4pc", -1),
63+
Base: modifier.NewBase("disenchantment-4pc-cr", -1),
6464
Amount: func(_ *info.AttackEvent, t info.Target) []float64 {
6565
e, ok := t.(*enemy.Enemy)
6666
if !ok {
6767
return nil
6868
}
6969
if e.StatusIsActive(reactable.SuperConductShredKey) {
70-
return c4Buff
70+
return m
71+
}
72+
73+
if e.StatusIsActive(reactable.StellarConductShredKey) {
74+
return m
7175
}
7276
return nil
7377
},
@@ -84,7 +88,7 @@ func NewSet(core *core.Core, char *character.CharWrapper, count int, param map[s
8488
return
8589
}
8690

87-
if r.StatusIsActive(reactable.SuperConductShredKey) {
91+
if r.StatusIsActive(reactable.SuperConductShredKey) || r.StatusIsActive(reactable.StellarConductShredKey) {
8892
ae.Snapshot.Stats[attributes.CR] += 0.16
8993
}
9094
}, "disenchantment-4pc-superconduct-"+char.Base.Key.String())

internal/artifacts/scrolloftheheroofcindercity/scrolloftheheroofcindercity.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
var reactToElements = map[info.ReactionType][]attributes.Element{
1717
info.ReactionTypeOverload: {attributes.Electro, attributes.Pyro},
1818
info.ReactionTypeSuperconduct: {attributes.Electro, attributes.Cryo},
19+
info.ReactionTypeStellarConduct: {attributes.Electro, attributes.Cryo},
1920
info.ReactionTypeMelt: {attributes.Pyro, attributes.Cryo},
2021
info.ReactionTypeVaporize: {attributes.Pyro, attributes.Hydro},
2122
info.ReactionTypeFreeze: {attributes.Cryo, attributes.Hydro},
@@ -128,6 +129,7 @@ func NewSet(c *core.Core, char *character.CharWrapper, count int, param map[stri
128129
for evt, react := range map[event.Event]info.ReactionType{
129130
event.OnOverload: info.ReactionTypeOverload,
130131
event.OnSuperconduct: info.ReactionTypeSuperconduct,
132+
event.OnStellarConduct: info.ReactionTypeStellarConduct,
131133
event.OnMelt: info.ReactionTypeMelt,
132134
event.OnVaporize: info.ReactionTypeVaporize,
133135
event.OnFrozen: info.ReactionTypeFreeze,

internal/artifacts/thunderingfury/thunderingfury.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,9 @@ func NewSet(c *core.Core, char *character.CharWrapper, count int, param map[stri
6363
attacks.AttackTagSuperconductDamage,
6464
attacks.AttackTagHyperbloom:
6565
return 0.4
66-
case attacks.AttackTagDirectLunarCharged, attacks.AttackTagReactionLunarCharge:
66+
case attacks.AttackTagDirectLunarCharged,
67+
attacks.AttackTagReactionLunarCharge,
68+
attacks.AttackTagDirectStellarConduct:
6769
return 0.2
6870
}
6971
return 0
@@ -97,6 +99,7 @@ func NewSet(c *core.Core, char *character.CharWrapper, count int, param map[stri
9799
c.Events.Subscribe(event.OnElectroCharged, reduceNoGadget, fmt.Sprintf("tf-4pc-%v", char.Base.Key.String()))
98100
c.Events.Subscribe(event.OnLunarCharged, reduceNoGadget, fmt.Sprintf("tf-4pc-%v", char.Base.Key.String()))
99101
c.Events.Subscribe(event.OnSuperconduct, reduceNoGadget, fmt.Sprintf("tf-4pc-%v", char.Base.Key.String()))
102+
c.Events.Subscribe(event.OnStellarConduct, reduceNoGadget, fmt.Sprintf("tf-4pc-%v", char.Base.Key.String()))
100103
c.Events.Subscribe(event.OnHyperbloom, reduce, fmt.Sprintf("tf-4pc-%v", char.Base.Key.String()))
101104
c.Events.Subscribe(event.OnQuicken, reduceNoGadget, fmt.Sprintf("tf-4pc-%v", char.Base.Key.String()))
102105
c.Events.Subscribe(event.OnAggravate, reduceNoGadget, fmt.Sprintf("tf-4pc-%v", char.Base.Key.String()))

internal/characters/clorinde/asc.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ func (c *char) a1() {
3636
c.Core.Events.Subscribe(event.OnElectroCharged, c.a1CB, "clorinde-a1-ec")
3737
c.Core.Events.Subscribe(event.OnLunarCharged, c.a1CB, "clorinde-a1-lc")
3838
c.Core.Events.Subscribe(event.OnSuperconduct, c.a1CB, "clorinde-a1-superconduct")
39+
c.Core.Events.Subscribe(event.OnStellarConduct, c.a1CB, "clorinde-a1-ssc")
3940
c.Core.Events.Subscribe(event.OnAggravate, c.a1CB, "clorinde-a1-aggravate")
4041
c.Core.Events.Subscribe(event.OnQuicken, c.a1CB, "clorinde-a1-quicken")
4142
c.Core.Events.Subscribe(event.OnHyperbloom, c.a1CBGadget, "clorinde-a1-hyperbloom")

internal/characters/cyno/cons.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ func (c *char) c4() {
111111
c.Core.Events.Subscribe(event.OnElectroCharged, restoreNoGadget, "cyno-c4")
112112
c.Core.Events.Subscribe(event.OnLunarCharged, restoreNoGadget, "cyno-c4")
113113
c.Core.Events.Subscribe(event.OnSuperconduct, restoreNoGadget, "cyno-c4")
114+
c.Core.Events.Subscribe(event.OnStellarConduct, restoreNoGadget, "cyno-c4")
114115
c.Core.Events.Subscribe(event.OnQuicken, restoreNoGadget, "cyno-c4")
115116
c.Core.Events.Subscribe(event.OnAggravate, restoreNoGadget, "cyno-c4")
116117
c.Core.Events.Subscribe(event.OnHyperbloom, restore, "cyno-c4")

internal/characters/dori/asc.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ func (c *char) a1() {
4444
c.Core.Events.Subscribe(event.OnElectroCharged, reduceNoGadget, "dori-a1")
4545
c.Core.Events.Subscribe(event.OnLunarCharged, reduceNoGadget, "dori-a1")
4646
c.Core.Events.Subscribe(event.OnSuperconduct, reduceNoGadget, "dori-a1")
47+
c.Core.Events.Subscribe(event.OnStellarConduct, reduceNoGadget, "dori-a1")
4748
c.Core.Events.Subscribe(event.OnQuicken, reduceNoGadget, "dori-a1")
4849
c.Core.Events.Subscribe(event.OnAggravate, reduceNoGadget, "dori-a1")
4950
c.Core.Events.Subscribe(event.OnHyperbloom, reduce, "dori-a1")

internal/characters/fischl/asc.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ func (c *char) a4() {
7474
c.Core.Events.Subscribe(event.OnElectroCharged, a4cbNoGadget, "fischl-a4")
7575
c.Core.Events.Subscribe(event.OnLunarCharged, a4cbNoGadget, "fischl-a4")
7676
c.Core.Events.Subscribe(event.OnSuperconduct, a4cbNoGadget, "fischl-a4")
77+
c.Core.Events.Subscribe(event.OnStellarConduct, a4cbNoGadget, "fischl-a4")
7778
c.Core.Events.Subscribe(event.OnSwirlElectro, a4cbNoGadget, "fischl-a4")
7879
c.Core.Events.Subscribe(event.OnCrystallizeElectro, a4cbNoGadget, "fischl-a4")
7980
c.Core.Events.Subscribe(event.OnHyperbloom, a4cb, "fischl-a4")

internal/characters/freminet/cons.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,4 +128,5 @@ func (c *char) c4c6() {
128128
c.Core.Events.Subscribe(event.OnShatter, c4c6Buff, "freminet-c4-c6-shatter")
129129
c.Core.Events.Subscribe(event.OnFrozen, c4c6Buff, "freminet-c4-c6-frozen")
130130
c.Core.Events.Subscribe(event.OnSuperconduct, c4c6Buff, "freminet-c4-c6-superconduct")
131+
c.Core.Events.Subscribe(event.OnStellarConduct, c4c6Buff, "freminet-c4-c6-ssc")
131132
}

internal/characters/keqing/cons.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ func (c *char) c4() {
6464
c.Core.Events.Subscribe(event.OnElectroCharged, cbNoGadget, "keqing-c4")
6565
c.Core.Events.Subscribe(event.OnLunarCharged, cbNoGadget, "keqing-c4")
6666
c.Core.Events.Subscribe(event.OnSuperconduct, cbNoGadget, "keqing-c4")
67+
c.Core.Events.Subscribe(event.OnStellarConduct, cbNoGadget, "keqing-c4")
6768
c.Core.Events.Subscribe(event.OnSwirlElectro, cbNoGadget, "keqing-c4")
6869
c.Core.Events.Subscribe(event.OnCrystallizeElectro, cbNoGadget, "keqing-c4")
6970
c.Core.Events.Subscribe(event.OnQuicken, cbNoGadget, "keqing-c4")

internal/characters/sethos/skill.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ func (c *char) skillRefundHook() {
5252
c.Core.Events.Subscribe(event.OnElectroCharged, refundCB, "sethos-e-refund")
5353
c.Core.Events.Subscribe(event.OnLunarCharged, refundCB, "sethos-e-refund")
5454
c.Core.Events.Subscribe(event.OnSuperconduct, refundCB, "sethos-e-refund")
55+
c.Core.Events.Subscribe(event.OnStellarConduct, refundCB, "sethos-e-refund")
5556
c.Core.Events.Subscribe(event.OnSwirlElectro, refundCB, "sethos-e-refund")
5657
c.Core.Events.Subscribe(event.OnHyperbloom, refundCB, "sethos-e-refund")
5758
c.Core.Events.Subscribe(event.OnQuicken, refundCB, "sethos-e-refund")

0 commit comments

Comments
 (0)