Skip to content

Commit 59377cf

Browse files
committed
wip
1 parent f57b2c0 commit 59377cf

File tree

4 files changed

+71
-1
lines changed

4 files changed

+71
-1
lines changed

src/data/cards.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ for (const card of cards) {
110110
if (
111111
card.id !== "shikonoentame" &&
112112
card.id !== "kagayakukimihe" &&
113-
card.id !== "nanikiteruno"
113+
card.id !== "nanikiteruno" &&
114+
card.id !== "tsukiyonoranuei"
114115
) {
115116
for (const content of getCardContentDataList(card)) {
116117
const hasScorePerformance = content.effects.some(

src/lesson-mutation.test.ts

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,7 @@ describe("activateEffectsEachProducerItemsAccordingToCardUsage", () => {
470470
kind: "afterCardEffectActivation",
471471
cardDataId: "apirunokihon",
472472
diffs: [],
473+
modifiers: [],
473474
},
474475
() => 0,
475476
createIdGenerator(),
@@ -660,6 +661,7 @@ describe("activateEffectsEachProducerItemsAccordingToCardUsage", () => {
660661
kind: "afterCardEffectActivation",
661662
cardDataId: "apirunokihon",
662663
diffs: [],
664+
modifiers: [],
663665
},
664666
() => 0,
665667
createIdGenerator(),
@@ -705,6 +707,7 @@ describe("activateEffectsEachProducerItemsAccordingToCardUsage", () => {
705707
kind: "afterCardEffectActivation",
706708
cardDataId: "apirunokihon",
707709
diffs: [],
710+
modifiers: [],
708711
},
709712
() => 0,
710713
createIdGenerator(),
@@ -5671,6 +5674,7 @@ describe("validateQueryOfReactiveEffectTrigger", () => {
56715674
cardDataId: "apirunokihon",
56725675
diffs: [],
56735676
idolParameterKind: "vocal",
5677+
modifiers: [],
56745678
},
56755679
],
56765680
expected: true,
@@ -5687,6 +5691,7 @@ describe("validateQueryOfReactiveEffectTrigger", () => {
56875691
cardDataId: "pozunokihon",
56885692
diffs: [],
56895693
idolParameterKind: "vocal",
5694+
modifiers: [],
56905695
},
56915696
],
56925697
expected: false,
@@ -5703,6 +5708,7 @@ describe("validateQueryOfReactiveEffectTrigger", () => {
57035708
cardDataId: "apirunokihon",
57045709
diffs: [],
57055710
idolParameterKind: "vocal",
5711+
modifiers: [],
57065712
},
57075713
],
57085714
expected: true,
@@ -5719,6 +5725,7 @@ describe("validateQueryOfReactiveEffectTrigger", () => {
57195725
cardDataId: "hyogennokihon",
57205726
diffs: [],
57215727
idolParameterKind: "vocal",
5728+
modifiers: [],
57225729
},
57235730
],
57245731
expected: false,
@@ -5735,6 +5742,7 @@ describe("validateQueryOfReactiveEffectTrigger", () => {
57355742
cardDataId: "hyogennokihon",
57365743
diffs: [{ kind: "vitality", actual: 1, max: 1 }],
57375744
idolParameterKind: "vocal",
5745+
modifiers: [],
57385746
},
57395747
],
57405748
expected: true,
@@ -5751,6 +5759,7 @@ describe("validateQueryOfReactiveEffectTrigger", () => {
57515759
cardDataId: "apirunokihon",
57525760
diffs: [{ kind: "score", actual: 1, max: 1 }],
57535761
idolParameterKind: "vocal",
5762+
modifiers: [],
57545763
},
57555764
],
57565765
expected: false,
@@ -5767,10 +5776,61 @@ describe("validateQueryOfReactiveEffectTrigger", () => {
57675776
cardDataId: "apirunokihon",
57685777
diffs: [{ kind: "vitality", actual: 0, max: 0 }],
57695778
idolParameterKind: "vocal",
5779+
modifiers: [],
57705780
},
57715781
],
57725782
expected: false,
57735783
},
5784+
// 基本的には scanIncreasedModifierKinds のテストで検証するので、パターンを増やしすぎない
5785+
{
5786+
name: "afterCardEffectActivation - effectKind - positiveImpression - 好印象を新規追加する時、満たす",
5787+
args: [
5788+
{
5789+
kind: "afterCardEffectActivation",
5790+
effectKind: "positiveImpression",
5791+
},
5792+
{
5793+
kind: "afterCardEffectActivation",
5794+
cardDataId: "mesennokihon",
5795+
diffs: [
5796+
{
5797+
kind: "modifiers.addition",
5798+
actual: { kind: "positiveImpression", amount: 1, id: "m1" },
5799+
max: { kind: "positiveImpression", amount: 1, id: "m1" },
5800+
},
5801+
],
5802+
idolParameterKind: "vocal",
5803+
modifiers: [],
5804+
},
5805+
],
5806+
expected: true,
5807+
},
5808+
// 基本的には scanIncreasedModifierKinds のテストで検証するので、パターンを増やしすぎない
5809+
{
5810+
name: "afterCardEffectActivation - effectKind - positiveImpression - 好印象の値を増加する時、満たす",
5811+
args: [
5812+
{
5813+
kind: "afterCardEffectActivation",
5814+
effectKind: "positiveImpression",
5815+
},
5816+
{
5817+
kind: "afterCardEffectActivation",
5818+
cardDataId: "mesennokihon",
5819+
diffs: [
5820+
{
5821+
kind: "modifiers.update",
5822+
propertyNameKind: "amount",
5823+
actual: 1,
5824+
max: 1,
5825+
id: "m1",
5826+
},
5827+
],
5828+
idolParameterKind: "vocal",
5829+
modifiers: [{ kind: "positiveImpression", amount: 1, id: "m1" }],
5830+
},
5831+
],
5832+
expected: true,
5833+
},
57745834
{
57755835
name: "afterCardEffectActivation - idolParameterKind - after - 満たさない",
57765836
args: [
@@ -5783,6 +5843,7 @@ describe("validateQueryOfReactiveEffectTrigger", () => {
57835843
cardDataId: "apirunokihon",
57845844
diffs: [],
57855845
idolParameterKind: "dance",
5846+
modifiers: [],
57865847
},
57875848
],
57885849
expected: false,

src/lesson-mutation.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,10 @@ export const validateQueryOfReactiveEffectTrigger = (
272272
(trigger.effectKind === "vitality" &&
273273
query.diffs.some(
274274
(diff) => diff.kind === "vitality" && diff.max > 0,
275+
)) ||
276+
(trigger.effectKind === "positiveImpression" &&
277+
scanIncreasedModifierKinds(query.modifiers, query.diffs).includes(
278+
"positiveImpression",
275279
));
276280
return (
277281
cardSummaryKindCondition &&
@@ -2478,6 +2482,7 @@ export const useCard = (
24782482
kind: "afterCardEffectActivation",
24792483
cardDataId: card.data.id,
24802484
diffs: mainEffectDiffs,
2485+
modifiers: newLesson.idol.modifiers,
24812486
},
24822487
params.getRandom,
24832488
params.idGenerator,
@@ -2505,6 +2510,7 @@ export const useCard = (
25052510
diffs: mainEffectDiffs,
25062511
idolParameterKind:
25072512
getIdolParameterKindOnTurnConsideringIgnoring(newLesson),
2513+
modifiers: newLesson.idol.modifiers,
25082514
}),
25092515
);
25102516
for (const { effect } of effectsAfterCardEffectActivation) {

src/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,8 @@ export type ReactiveEffectQueryWithoutIdolParameterKind = Readonly<
244244
cardDataId: CardData["id"];
245245
/** スキルカード使用による更新差分リスト */
246246
diffs: LessonUpdateDiff[];
247+
/** 判定時の状態修正リスト */
248+
modifiers: Modifier[];
247249
}
248250
| {
249251
kind: "beforeCardEffectActivation";

0 commit comments

Comments
 (0)