horse, mdb, cmd/horsebot: support cards
ci/woodpecker/push/horsebot Pipeline was successful
ci/woodpecker/push/zenno Pipeline was successful

Fixes #37.
This commit is contained in:
2026-08-02 22:45:34 -04:00
parent 9521b5e7c5
commit c0ddc32997
11 changed files with 1269 additions and 0 deletions
+1
View File
@@ -154,6 +154,7 @@ func main() {
mux.Handle("GET /api/global/skill", httpmiddle.Compress(5)(dataroute(ctx, db, mdb.Skills))) mux.Handle("GET /api/global/skill", httpmiddle.Compress(5)(dataroute(ctx, db, mdb.Skills)))
mux.Handle("GET /api/global/skill-group", httpmiddle.Compress(5)(dataroute(ctx, db, mdb.SkillGroups))) mux.Handle("GET /api/global/skill-group", httpmiddle.Compress(5)(dataroute(ctx, db, mdb.SkillGroups)))
mux.Handle("GET /api/global/spark", httpmiddle.Compress(5)(dataroute(ctx, db, mdb.Sparks))) mux.Handle("GET /api/global/spark", httpmiddle.Compress(5)(dataroute(ctx, db, mdb.Sparks)))
mux.Handle("GET /api/global/support", httpmiddle.Compress(5)(dataroute(ctx, db, mdb.SupportCards)))
mux.Handle("GET /api/global/uma", httpmiddle.Compress(5)(dataroute(ctx, db, mdb.Umas))) mux.Handle("GET /api/global/uma", httpmiddle.Compress(5)(dataroute(ctx, db, mdb.Umas)))
if pubkey != "" { if pubkey != "" {
pk, err := hex.DecodeString(pubkey) pk, err := hex.DecodeString(pubkey)
+16
View File
@@ -0,0 +1,16 @@
SELECT
id,
type,
init,
limit_lv5,
limit_lv10,
limit_lv15,
limit_lv20,
limit_lv25,
limit_lv30,
limit_lv35,
limit_lv40,
limit_lv45,
limit_lv50
FROM support_card_effect_table
ORDER BY id, type
+8
View File
@@ -0,0 +1,8 @@
SELECT
support_card_id,
hint_group,
hint_gain_type,
hint_value_1,
hint_value_2
FROM single_mode_hint_gain
ORDER BY support_card_id, hint_group
+51
View File
@@ -0,0 +1,51 @@
WITH card_name AS (
SELECT "index" AS id, text
FROM text_data
WHERE category = 75
), chara_name AS (
SELECT "index" AS id, text
FROM text_data
WHERE category = 77
), unique_name AS (
SELECT "index" AS id, text
FROM text_data
WHERE category = 150
), unique_desc AS (
SELECT "index" AS id, text
FROM text_data
WHERE category = 155
)
SELECT
sc.id,
card_name.text AS card_name,
sc.chara_id,
chara_name.text AS chara_name,
sc.rarity,
sc.effect_table_id,
sc.command_id,
sc.support_card_type,
sc.skill_set_id,
sc.outing_max,
IFNULL(unique_name.text, '') AS unique_name,
IFNULL(unique_desc.text, '') AS unique_desc,
IFNULL(u.lv, 0) AS unique_lv,
IFNULL(u.type_0, 0) AS unique_type,
IFNULL(u.value_0, 0) AS unique_value0,
IFNULL(u.value_0_1, 0) AS unique_value0_1,
IFNULL(u.value_0_2, 0) AS unique_value0_2,
IFNULL(u.value_0_3, 0) AS unique_value0_3,
IFNULL(u.value_0_4, 0) AS unique_value0_4,
IFNULL(u.type_1, 0) AS unique_type1,
IFNULL(u.value_1, 0) AS unique_value1,
IFNULL(u.value_1_1, 0) AS unique_value1_1,
IFNULL(u.value_1_2, 0) AS unique_value1_2,
IFNULL(u.value_1_3, 0) AS unique_value1_3,
IFNULL(u.value_1_4, 0) AS unique_value1_4,
IFNULL(u.idle_mode_sub_rate, 0) AS idle_mode_sub_rate
FROM support_card_data sc
LEFT JOIN support_card_unique_effect u ON sc.unique_effect_id = u.id
JOIN card_name ON sc.id = card_name.id
JOIN chara_name ON sc.id = chara_name.id
LEFT JOIN unique_name ON sc.unique_effect_id = unique_name.id
LEFT JOIN unique_desc ON sc.unique_effect_id = unique_desc.id
ORDER BY sc.id
+152
View File
@@ -0,0 +1,152 @@
package mdb
import (
"context"
_ "embed"
"zombiezen.com/go/sqlite/sqlitex"
"git.sunturtle.xyz/zephyr/horse"
)
var (
//go:embed sql/support.sql
supportSQL string
//go:embed sql/support-effect.sql
supportEffectSQL string
//go:embed sql/support-hint.sql
supportHintSQL string
)
func SupportCards(ctx context.Context, db *sqlitex.Pool) ([]horse.SupportCard, error) {
// We don't use load here because we have multiple queries to run.
conn, err := db.Take(ctx)
defer db.Put(conn)
if err != nil {
return nil, err
}
var sc []horse.SupportCard
{
stmt := conn.Prep(supportSQL)
defer stmt.Reset()
for {
ok, err := stmt.Step()
if err != nil {
return nil, err
}
if !ok {
break
}
s := horse.SupportCard{
ID: horse.SupportCardID(stmt.ColumnInt(0)),
Name: stmt.ColumnText(1),
CharacterID: horse.CharacterID(stmt.ColumnInt(2)),
CharaName: stmt.ColumnText(3),
Rarity: horse.SupportCardRarity(stmt.ColumnInt(4)),
Specialty: horse.SupportCardSpecialty(stmt.ColumnInt(6)),
Type: horse.SupportCardType(stmt.ColumnInt(7)),
Outings: stmt.ColumnInt32(9),
}
if u := stmt.ColumnText(10); u != "" {
s.UniqueEffect = &horse.UniqueEffect{
Name: u,
Desc: stmt.ColumnText(11),
CardLevel: stmt.ColumnInt32(12),
Type: horse.SupportCardEffectType(stmt.ColumnInt(13)),
Args: trimZeros(
stmt.ColumnInt32(14),
stmt.ColumnInt32(15),
stmt.ColumnInt32(16),
stmt.ColumnInt32(17),
stmt.ColumnInt32(18),
),
Type2: horse.SupportCardEffectType(stmt.ColumnInt(19)),
Args2: trimZeros(
stmt.ColumnInt32(20),
stmt.ColumnInt32(21),
stmt.ColumnInt32(22),
stmt.ColumnInt32(23),
stmt.ColumnInt32(24),
),
IdleSubRate: stmt.ColumnInt32(25),
}
}
sc = append(sc, s)
}
}
{
stmt := conn.Prep(supportEffectSQL)
defer stmt.Reset()
cur := sc
for {
ok, err := stmt.Step()
if err != nil {
return nil, err
}
if !ok {
break
}
id := stmt.ColumnInt(0)
for len(cur) > 0 && cur[0].ID != horse.SupportCardID(id) {
cur = cur[1:]
}
if len(cur) == 0 {
break
}
typ := horse.SupportCardEffectType(stmt.ColumnInt(1))
for i := range cur[0].Effects {
cur[0].Effects[i] = append(cur[0].Effects[i], horse.SupportCardEffect{
Type: typ,
Value: stmt.ColumnInt32(2 + i),
})
}
}
}
{
stmt := conn.Prep(supportHintSQL)
defer stmt.Reset()
cur := sc
last := 0
for {
ok, err := stmt.Step()
if err != nil {
return nil, err
}
if !ok {
break
}
id := stmt.ColumnInt(0)
for len(cur) > 0 && cur[0].ID != horse.SupportCardID(id) {
cur = cur[1:]
last = 0
}
group := stmt.ColumnInt(1)
if group != last {
cur[0].Hints = append(cur[0].Hints, horse.Hint{})
last = group
}
hint := &cur[0].Hints[len(cur[0].Hints)-1]
if stmt.ColumnInt(2) == 0 {
hint.SkillID = horse.SkillID(stmt.ColumnInt(3))
} else {
switch stmt.ColumnInt(3) {
case 1:
hint.Speed = int8(stmt.ColumnInt(4))
case 2:
hint.Stamina = int8(stmt.ColumnInt(4))
case 3:
hint.Power = int8(stmt.ColumnInt(4))
case 4:
hint.Guts = int8(stmt.ColumnInt(4))
case 5:
hint.Wit = int8(stmt.ColumnInt(4))
case 30:
hint.SP = int8(stmt.ColumnInt(4))
default:
panic("horse: unknown support card hint stat")
}
}
}
}
return sc, nil
}
+496
View File
@@ -0,0 +1,496 @@
package mdb_test
import (
_ "embed"
"testing"
"git.sunturtle.xyz/zephyr/horse"
"git.sunturtle.xyz/zephyr/horse/mdb"
"github.com/google/go-cmp/cmp"
)
//go:embed testdata/support.sql
var supportSQL string
func TestSupportCards(t *testing.T) {
db := testdb(t.Context(), "file:TestSupportCards?mode=memory&cache=shared", supportSQL)
got, err := mdb.SupportCards(t.Context(), db)
if err != nil {
t.Error(err)
}
want := []horse.SupportCard{
{
ID: 10001,
Name: "[Tracen Academy] Special Week",
CharacterID: 1001,
CharaName: "Special Week",
Rarity: horse.R,
Specialty: horse.SupportCardGuts,
Type: horse.SupportCardNormal,
Effects: [...][]horse.SupportCardEffect{
// https://go.dev/play/p/W5nkR2Tw30h
{{Type: 1, Value: 5}, {Type: 2, Value: 10}, {Type: 5, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 5, Value: -1}, {Type: 14, Value: 10}, {Type: 17, Value: 1}, {Type: 18, Value: 5}, {Type: 19, Value: 5}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 5, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: 10}, {Type: 2, Value: -1}, {Type: 5, Value: -1}, {Type: 14, Value: 15}, {Type: 17, Value: 1}, {Type: 18, Value: 20}, {Type: 19, Value: 20}},
{{Type: 1, Value: 10}, {Type: 2, Value: 25}, {Type: 5, Value: -1}, {Type: 14, Value: 15}, {Type: 17, Value: 1}, {Type: 18, Value: 20}, {Type: 19, Value: 20}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 5, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 5, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: 15}, {Type: 2, Value: -1}, {Type: 5, Value: -1}, {Type: 14, Value: 20}, {Type: 17, Value: 2}, {Type: 18, Value: 30}, {Type: 19, Value: 35}},
{{Type: 1, Value: -1}, {Type: 2, Value: 35}, {Type: 5, Value: 1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 5, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 5, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
},
UniqueEffect: nil,
Hints: []horse.Hint{
{SkillID: 200162},
{SkillID: 200232},
{SkillID: 200512},
{SkillID: 200612},
{SkillID: 200732},
{SkillID: 201352},
{SkillID: 201542},
{Speed: 1, Power: 1, Guts: 6},
},
Outings: 0,
},
{
ID: 10002,
Name: "[Tracen Academy] Silence Suzuka",
CharacterID: 1002,
CharaName: "Silence Suzuka",
Rarity: horse.R,
Specialty: horse.SupportCardSpeed,
Type: horse.SupportCardNormal,
Effects: [...][]horse.SupportCardEffect{
{{Type: 1, Value: 5}, {Type: 2, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: 5}, {Type: 30, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: 10}, {Type: 14, Value: 10}, {Type: 15, Value: 1}, {Type: 16, Value: 1}, {Type: 19, Value: -1}, {Type: 30, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}, {Type: 30, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: 15}, {Type: 14, Value: 15}, {Type: 15, Value: 1}, {Type: 16, Value: 5}, {Type: 19, Value: -1}, {Type: 30, Value: -1}},
{{Type: 1, Value: 15}, {Type: 2, Value: 15}, {Type: 14, Value: 15}, {Type: 15, Value: 1}, {Type: 16, Value: 5}, {Type: 19, Value: 35}, {Type: 30, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}, {Type: 30, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}, {Type: 30, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: 25}, {Type: 14, Value: 20}, {Type: 15, Value: 5}, {Type: 16, Value: 10}, {Type: 19, Value: -1}, {Type: 30, Value: -1}},
{{Type: 1, Value: 20}, {Type: 2, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: 50}, {Type: 30, Value: 1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}, {Type: 30, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}, {Type: 30, Value: -1}},
},
UniqueEffect: nil,
Hints: []horse.Hint{
{SkillID: 200432},
{SkillID: 200532},
{SkillID: 200542},
{SkillID: 200552},
{SkillID: 200712},
{SkillID: 201242},
{SkillID: 201252},
{SkillID: 201522},
{SkillID: 201272},
{Speed: 6, Power: 2},
},
Outings: 0,
},
{
ID: 10021,
Name: "[Tracen Academy] Tazuna Hayakawa",
CharacterID: 9001,
CharaName: "Tazuna Hayakawa",
Rarity: horse.R,
Specialty: horse.SupportCardNone,
Type: horse.SupportCardPal,
Effects: [...][]horse.SupportCardEffect{
{{Type: 8, Value: -1}, {Type: 14, Value: 10}, {Type: 25, Value: 10}, {Type: 26, Value: 10}, {Type: 27, Value: 5}, {Type: 28, Value: 1}},
{{Type: 8, Value: -1}, {Type: 14, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 27, Value: -1}, {Type: 28, Value: -1}},
{{Type: 8, Value: -1}, {Type: 14, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 27, Value: -1}, {Type: 28, Value: -1}},
{{Type: 8, Value: -1}, {Type: 14, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 27, Value: -1}, {Type: 28, Value: -1}},
{{Type: 8, Value: -1}, {Type: 14, Value: 20}, {Type: 25, Value: 30}, {Type: 26, Value: 20}, {Type: 27, Value: 15}, {Type: 28, Value: 10}},
{{Type: 8, Value: -1}, {Type: 14, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 27, Value: -1}, {Type: 28, Value: -1}},
{{Type: 8, Value: -1}, {Type: 14, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 27, Value: -1}, {Type: 28, Value: -1}},
{{Type: 8, Value: -1}, {Type: 14, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 27, Value: -1}, {Type: 28, Value: -1}},
{{Type: 8, Value: 5}, {Type: 14, Value: 25}, {Type: 25, Value: 40}, {Type: 26, Value: 25}, {Type: 27, Value: 20}, {Type: 28, Value: 15}},
{{Type: 8, Value: -1}, {Type: 14, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 27, Value: -1}, {Type: 28, Value: -1}},
{{Type: 8, Value: -1}, {Type: 14, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 27, Value: -1}, {Type: 28, Value: -1}},
},
UniqueEffect: nil,
Hints: nil,
Outings: 5,
},
{
ID: 20043,
Name: "[At the End of the Day] Special Week",
CharacterID: 1001,
CharaName: "Special Week",
Rarity: horse.SR,
Specialty: horse.SupportCardPower,
Type: horse.SupportCardNormal,
Effects: [...][]horse.SupportCardEffect{
{{Type: 1, Value: 10}, {Type: 2, Value: -1}, {Type: 4, Value: -1}, {Type: 10, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 17, Value: 1}, {Type: 18, Value: 5}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 4, Value: -1}, {Type: 10, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: 10}, {Type: 4, Value: -1}, {Type: 10, Value: -1}, {Type: 15, Value: 1}, {Type: 16, Value: 1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 4, Value: -1}, {Type: 10, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: 20}, {Type: 4, Value: -1}, {Type: 10, Value: -1}, {Type: 15, Value: 1}, {Type: 16, Value: 5}, {Type: 17, Value: -1}, {Type: 18, Value: -1}},
{{Type: 1, Value: 20}, {Type: 2, Value: 20}, {Type: 4, Value: -1}, {Type: 10, Value: -1}, {Type: 15, Value: 1}, {Type: 16, Value: 5}, {Type: 17, Value: 2}, {Type: 18, Value: 30}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 4, Value: -1}, {Type: 10, Value: 10}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 4, Value: -1}, {Type: 10, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: 30}, {Type: 4, Value: -1}, {Type: 10, Value: 20}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}},
{{Type: 1, Value: 25}, {Type: 2, Value: -1}, {Type: 4, Value: 1}, {Type: 10, Value: -1}, {Type: 15, Value: 5}, {Type: 16, Value: 10}, {Type: 17, Value: 2}, {Type: 18, Value: 40}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 4, Value: -1}, {Type: 10, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}},
},
UniqueEffect: &horse.UniqueEffect{
Name: "At the End of the Day",
Desc: "Training Effectiveness and Initial Power",
CardLevel: 35,
Type: 8,
Args: []int32{5},
Type2: 11,
Args2: []int32{20},
IdleSubRate: 0,
},
Hints: []horse.Hint{
{SkillID: 200162},
{SkillID: 200512},
{SkillID: 200562},
{SkillID: 200732},
{SkillID: 201312},
{SkillID: 201352},
{SkillID: 201362},
{Stamina: 2, Power: 6},
},
Outings: 0,
},
{
ID: 30001,
Name: "[The Brightest Star in Japan!] Special Week",
CharacterID: 1001,
CharaName: "Special Week",
Rarity: horse.SSR,
Specialty: horse.SupportCardGuts,
Type: horse.SupportCardNormal,
Effects: [...][]horse.SupportCardEffect{
{{Type: 1, Value: 10}, {Type: 2, Value: 10}, {Type: 5, Value: -1}, {Type: 8, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 5, Value: -1}, {Type: 8, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 5, Value: -1}, {Type: 8, Value: -1}, {Type: 14, Value: 10}, {Type: 17, Value: 1}, {Type: 18, Value: 5}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 5, Value: -1}, {Type: 8, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: 5}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 5, Value: -1}, {Type: 8, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: 15}, {Type: 2, Value: -1}, {Type: 5, Value: -1}, {Type: 8, Value: -1}, {Type: 14, Value: 20}, {Type: 17, Value: 2}, {Type: 18, Value: 30}, {Type: 19, Value: 20}},
{{Type: 1, Value: 15}, {Type: 2, Value: 40}, {Type: 5, Value: -1}, {Type: 8, Value: -1}, {Type: 14, Value: 20}, {Type: 17, Value: 2}, {Type: 18, Value: 30}, {Type: 19, Value: 20}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 5, Value: 1}, {Type: 8, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 5, Value: -1}, {Type: 8, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: 20}, {Type: 2, Value: -1}, {Type: 5, Value: -1}, {Type: 8, Value: 5}, {Type: 14, Value: 25}, {Type: 17, Value: 2}, {Type: 18, Value: 40}, {Type: 19, Value: 35}},
{{Type: 1, Value: -1}, {Type: 2, Value: 60}, {Type: 5, Value: -1}, {Type: 8, Value: 10}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
},
UniqueEffect: &horse.UniqueEffect{
Name: "The Brightest Star in Japan!",
Desc: "Guts Bonus and Initial Guts",
CardLevel: 30,
Type: 6,
Args: []int32{1},
Type2: 12,
Args2: []int32{20},
IdleSubRate: 0,
},
Hints: []horse.Hint{
{SkillID: 200162},
{SkillID: 200232},
{SkillID: 200512},
{SkillID: 200612},
{SkillID: 200732},
{SkillID: 201352},
{SkillID: 201542},
{Speed: 1, Power: 1, Guts: 6},
},
Outings: 0,
},
{
ID: 30002,
Name: "[Beyond This Shining Moment] Silence Suzuka",
CharacterID: 1002,
CharaName: "Silence Suzuka",
Rarity: horse.SSR,
Specialty: horse.SupportCardSpeed,
Type: horse.SupportCardNormal,
Effects: [11][]horse.SupportCardEffect{
{{Type: 1, Value: 10}, {Type: 2, Value: -1}, {Type: 9, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: 5}, {Type: 30, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 9, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}, {Type: 30, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: 10}, {Type: 9, Value: -1}, {Type: 14, Value: 10}, {Type: 15, Value: 1}, {Type: 16, Value: 1}, {Type: 19, Value: -1}, {Type: 30, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 9, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}, {Type: 30, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 9, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}, {Type: 30, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: 30}, {Type: 9, Value: -1}, {Type: 14, Value: 20}, {Type: 15, Value: 5}, {Type: 16, Value: 10}, {Type: 19, Value: -1}, {Type: 30, Value: -1}},
{{Type: 1, Value: 25}, {Type: 2, Value: 30}, {Type: 9, Value: -1}, {Type: 14, Value: 20}, {Type: 15, Value: 5}, {Type: 16, Value: 10}, {Type: 19, Value: 50}, {Type: 30, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 9, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}, {Type: 30, Value: 1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 9, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}, {Type: 30, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: 40}, {Type: 9, Value: 15}, {Type: 14, Value: 25}, {Type: 15, Value: 5}, {Type: 16, Value: 15}, {Type: 19, Value: -1}, {Type: 30, Value: -1}},
{{Type: 1, Value: 35}, {Type: 2, Value: -1}, {Type: 9, Value: 30}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: 65}, {Type: 30, Value: -1}},
},
UniqueEffect: &horse.UniqueEffect{
Name: "Beyond This Shining Moment",
Desc: "Mood Effect and Hint Frequency",
CardLevel: 30,
Type: 2,
Args: []int32{15},
Type2: 18,
Args2: []int32{20},
IdleSubRate: 0,
},
Hints: []horse.Hint{
{SkillID: 200432},
{SkillID: 200532},
{SkillID: 200542},
{SkillID: 200552},
{SkillID: 200712},
{SkillID: 201242},
{SkillID: 201252},
{SkillID: 201522},
{SkillID: 201272},
{Speed: 6, Power: 2},
},
Outings: 0,
},
{
ID: 30021,
Name: "[Tracen Reception] Tazuna Hayakawa",
CharacterID: 9001,
CharaName: "Tazuna Hayakawa",
Rarity: horse.SSR,
Specialty: horse.SupportCardNone,
Type: horse.SupportCardPal,
Effects: [...][]horse.SupportCardEffect{
{{Type: 8, Value: -1}, {Type: 9, Value: -1}, {Type: 14, Value: 10}, {Type: 25, Value: 10}, {Type: 26, Value: 10}, {Type: 27, Value: 5}, {Type: 28, Value: 1}},
{{Type: 8, Value: -1}, {Type: 9, Value: -1}, {Type: 14, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 27, Value: -1}, {Type: 28, Value: -1}},
{{Type: 8, Value: -1}, {Type: 9, Value: -1}, {Type: 14, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 27, Value: -1}, {Type: 28, Value: -1}},
{{Type: 8, Value: -1}, {Type: 9, Value: -1}, {Type: 14, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 27, Value: -1}, {Type: 28, Value: -1}},
{{Type: 8, Value: -1}, {Type: 9, Value: -1}, {Type: 14, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 27, Value: -1}, {Type: 28, Value: -1}},
{{Type: 8, Value: -1}, {Type: 9, Value: -1}, {Type: 14, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 27, Value: -1}, {Type: 28, Value: -1}},
{{Type: 8, Value: -1}, {Type: 9, Value: -1}, {Type: 14, Value: 25}, {Type: 25, Value: 40}, {Type: 26, Value: 25}, {Type: 27, Value: 20}, {Type: 28, Value: 15}},
{{Type: 8, Value: 5}, {Type: 9, Value: -1}, {Type: 14, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 27, Value: -1}, {Type: 28, Value: -1}},
{{Type: 8, Value: 10}, {Type: 9, Value: -1}, {Type: 14, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 27, Value: -1}, {Type: 28, Value: -1}},
{{Type: 8, Value: -1}, {Type: 9, Value: 15}, {Type: 14, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 27, Value: -1}, {Type: 28, Value: -1}},
{{Type: 8, Value: -1}, {Type: 9, Value: 30}, {Type: 14, Value: 30}, {Type: 25, Value: 60}, {Type: 26, Value: 35}, {Type: 27, Value: 30}, {Type: 28, Value: 25}},
},
UniqueEffect: &horse.UniqueEffect{
Name: "Tracen Reception",
Desc: "Failure Protection and Energy Cost Reduction",
CardLevel: 30,
Type: 27,
Args: []int32{10},
Type2: 28,
Args2: []int32{5},
IdleSubRate: 0,
},
Hints: nil,
Outings: 5,
},
{
ID: 30025,
Name: "[The Setting Sun and Rising Stars] Special Week",
CharacterID: 1001,
CharaName: "Special Week",
Rarity: horse.SSR,
Specialty: horse.SupportCardSpeed,
Type: horse.SupportCardNormal,
Effects: [...][]horse.SupportCardEffect{
{{Type: 1, Value: 10}, {Type: 2, Value: -1}, {Type: 3, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 3, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 3, Value: -1}, {Type: 14, Value: 1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: 10}, {Type: 3, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: 1}, {Type: 16, Value: 1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 3, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: 20}, {Type: 3, Value: -1}, {Type: 14, Value: 5}, {Type: 15, Value: 1}, {Type: 16, Value: 5}, {Type: 19, Value: -1}},
{{Type: 1, Value: 25}, {Type: 2, Value: 20}, {Type: 3, Value: -1}, {Type: 14, Value: 5}, {Type: 15, Value: 1}, {Type: 16, Value: 5}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 3, Value: 1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 3, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: 30}, {Type: 3, Value: -1}, {Type: 14, Value: 10}, {Type: 15, Value: 5}, {Type: 16, Value: 10}, {Type: 19, Value: 15}},
{{Type: 1, Value: 35}, {Type: 2, Value: -1}, {Type: 3, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: 30}},
},
UniqueEffect: &horse.UniqueEffect{
Name: "The Setting Sun and Rising Stars",
Desc: "Training Effectiveness and Race Bonus",
CardLevel: 40,
Type: 8,
Args: []int32{5},
Type2: 15,
Args2: []int32{5},
IdleSubRate: 0,
},
Hints: []horse.Hint{
{SkillID: 200162},
{SkillID: 200232},
{SkillID: 200512},
{SkillID: 200612},
{SkillID: 200732},
{SkillID: 201352},
{SkillID: 201542},
{Speed: 6, Power: 2},
},
Outings: 0,
},
{
ID: 30062,
Name: "[Winning Dream] Silence Suzuka",
CharacterID: 1002,
CharaName: "Silence Suzuka",
Rarity: horse.SSR,
Specialty: horse.SupportCardStamina,
Type: horse.SupportCardNormal,
Effects: [...][]horse.SupportCardEffect{
{{Type: 1, Value: 10}, {Type: 2, Value: -1}, {Type: 4, Value: -1}, {Type: 10, Value: 10}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 4, Value: -1}, {Type: 10, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 4, Value: -1}, {Type: 10, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: 10}, {Type: 4, Value: -1}, {Type: 10, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: 1}, {Type: 16, Value: 1}, {Type: 19, Value: 5}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 4, Value: -1}, {Type: 10, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: 20}, {Type: 2, Value: 20}, {Type: 4, Value: -1}, {Type: 10, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: 1}, {Type: 16, Value: 5}, {Type: 19, Value: 20}},
{{Type: 1, Value: 20}, {Type: 2, Value: 20}, {Type: 4, Value: -1}, {Type: 10, Value: 25}, {Type: 14, Value: -1}, {Type: 15, Value: 1}, {Type: 16, Value: 5}, {Type: 19, Value: 20}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 4, Value: 1}, {Type: 10, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 4, Value: -1}, {Type: 10, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: 25}, {Type: 2, Value: 30}, {Type: 4, Value: -1}, {Type: 10, Value: -1}, {Type: 14, Value: 15}, {Type: 15, Value: 5}, {Type: 16, Value: 10}, {Type: 19, Value: 35}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 4, Value: -1}, {Type: 10, Value: 35}, {Type: 14, Value: 30}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 19, Value: -1}},
},
UniqueEffect: &horse.UniqueEffect{
Name: "Winning Dream",
Desc: "Training Effectiveness and Initial Stamina",
CardLevel: 40,
Type: 8,
Args: []int32{5},
Type2: 10,
Args2: []int32{20},
IdleSubRate: 0,
},
Hints: []horse.Hint{
{SkillID: 200432},
{SkillID: 200532},
{SkillID: 200542},
{SkillID: 200552},
{SkillID: 200712},
{SkillID: 201242},
{SkillID: 201252},
{SkillID: 201522},
{SkillID: 201272},
{Stamina: 6, Guts: 2},
},
Outings: 0,
},
{
ID: 30076,
Name: "[Searching for Unseen Sights] Silence Suzuka",
CharacterID: 1002,
CharaName: "Silence Suzuka",
Rarity: horse.SSR,
Specialty: horse.SupportCardSpeed,
Type: horse.SupportCardNormal,
Effects: [...][]horse.SupportCardEffect{
{{Type: 1, Value: 10}, {Type: 2, Value: -1}, {Type: 3, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 3, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 3, Value: -1}, {Type: 14, Value: 5}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: 5}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 3, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: 1}, {Type: 18, Value: 5}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 3, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: 20}, {Type: 2, Value: -1}, {Type: 3, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: 1}, {Type: 18, Value: 20}, {Type: 19, Value: 35}},
{{Type: 1, Value: 20}, {Type: 2, Value: -1}, {Type: 3, Value: -1}, {Type: 14, Value: 10}, {Type: 17, Value: 1}, {Type: 18, Value: 20}, {Type: 19, Value: 35}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 3, Value: 1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 3, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: 25}, {Type: 2, Value: 15}, {Type: 3, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: 50}},
{{Type: 1, Value: -1}, {Type: 2, Value: 30}, {Type: 3, Value: -1}, {Type: 14, Value: -1}, {Type: 17, Value: 2}, {Type: 18, Value: 30}, {Type: 19, Value: -1}},
},
UniqueEffect: &horse.UniqueEffect{
Name: "Searching for Unseen Sights",
Desc: "Training Effectiveness and Race Bonus",
CardLevel: 40,
Type: 8,
Args: []int32{5},
Type2: 15,
Args2: []int32{5},
IdleSubRate: 0,
},
Hints: []horse.Hint{
{SkillID: 200432},
{SkillID: 200532},
{SkillID: 200542},
{SkillID: 200552},
{SkillID: 200712},
{SkillID: 201242},
{SkillID: 201252},
{SkillID: 201522},
{SkillID: 201272},
{Speed: 6, Power: 2},
},
Outings: 0,
},
{
ID: 30081,
Name: "[Passing the Dream On] Team Sirius",
CharacterID: 1001,
CharaName: "Team Sirius",
Rarity: horse.SSR,
Specialty: horse.SupportCardNone,
Type: horse.SupportCardGroup,
Effects: [...][]horse.SupportCardEffect{
{{Type: 1, Value: 5}, {Type: 2, Value: 10}, {Type: 12, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 30, Value: -1}, {Type: 31, Value: 1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 12, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 30, Value: -1}, {Type: 31, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 12, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 30, Value: -1}, {Type: 31, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 12, Value: -1}, {Type: 14, Value: 10}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 25, Value: 10}, {Type: 26, Value: 10}, {Type: 30, Value: -1}, {Type: 31, Value: 1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 12, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 30, Value: -1}, {Type: 31, Value: -1}},
{{Type: 1, Value: 10}, {Type: 2, Value: -1}, {Type: 12, Value: -1}, {Type: 14, Value: 15}, {Type: 15, Value: 1}, {Type: 16, Value: 5}, {Type: 25, Value: 20}, {Type: 26, Value: 15}, {Type: 30, Value: -1}, {Type: 31, Value: 1}},
{{Type: 1, Value: 10}, {Type: 2, Value: 15}, {Type: 12, Value: -1}, {Type: 14, Value: 15}, {Type: 15, Value: 1}, {Type: 16, Value: 5}, {Type: 25, Value: 20}, {Type: 26, Value: 15}, {Type: 30, Value: -1}, {Type: 31, Value: 1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 12, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 30, Value: 1}, {Type: 31, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 12, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 30, Value: -1}, {Type: 31, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 12, Value: 15}, {Type: 14, Value: 20}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 25, Value: 30}, {Type: 26, Value: 20}, {Type: 30, Value: -1}, {Type: 31, Value: -1}},
{{Type: 1, Value: 15}, {Type: 2, Value: 20}, {Type: 12, Value: 30}, {Type: 14, Value: -1}, {Type: 15, Value: 5}, {Type: 16, Value: 10}, {Type: 25, Value: -1}, {Type: 26, Value: -1}, {Type: 30, Value: -1}, {Type: 31, Value: 2}},
},
UniqueEffect: &horse.UniqueEffect{
Name: "Passing the Dream On",
Desc: "Training Effectiveness (Friendship Gauge 80+)",
CardLevel: 40,
Type: 101,
Args: []int32{80, 8, 10},
Type2: 0,
Args2: []int32{},
IdleSubRate: 20,
},
Hints: nil,
Outings: 1,
},
{
ID: 30105,
Name: "[Take Hold of Our Dreams!] Special Week",
CharacterID: 1001,
CharaName: "Special Week",
Rarity: horse.SSR,
Specialty: horse.SupportCardGuts,
Type: horse.SupportCardNormal,
Effects: [...][]horse.SupportCardEffect{
{{Type: 1, Value: 10}, {Type: 2, Value: -1}, {Type: 6, Value: -1}, {Type: 8, Value: -1}, {Type: 11, Value: 10}, {Type: 14, Value: 10}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 6, Value: -1}, {Type: 8, Value: -1}, {Type: 11, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 6, Value: -1}, {Type: 8, Value: -1}, {Type: 11, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 6, Value: -1}, {Type: 8, Value: 1}, {Type: 11, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: 1}, {Type: 16, Value: 1}, {Type: 17, Value: 1}, {Type: 18, Value: 5}, {Type: 19, Value: 5}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 6, Value: -1}, {Type: 8, Value: -1}, {Type: 11, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: 20}, {Type: 2, Value: -1}, {Type: 6, Value: -1}, {Type: 8, Value: 5}, {Type: 11, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: 1}, {Type: 16, Value: 5}, {Type: 17, Value: 1}, {Type: 18, Value: 20}, {Type: 19, Value: 20}},
{{Type: 1, Value: 20}, {Type: 2, Value: -1}, {Type: 6, Value: -1}, {Type: 8, Value: 5}, {Type: 11, Value: 25}, {Type: 14, Value: 25}, {Type: 15, Value: 1}, {Type: 16, Value: 5}, {Type: 17, Value: 1}, {Type: 18, Value: 20}, {Type: 19, Value: 20}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 6, Value: 1}, {Type: 8, Value: -1}, {Type: 11, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: -1}, {Type: 2, Value: -1}, {Type: 6, Value: -1}, {Type: 8, Value: -1}, {Type: 11, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
{{Type: 1, Value: 25}, {Type: 2, Value: 15}, {Type: 6, Value: -1}, {Type: 8, Value: 5}, {Type: 11, Value: -1}, {Type: 14, Value: -1}, {Type: 15, Value: 5}, {Type: 16, Value: 10}, {Type: 17, Value: 2}, {Type: 18, Value: 30}, {Type: 19, Value: 35}},
{{Type: 1, Value: -1}, {Type: 2, Value: 30}, {Type: 6, Value: -1}, {Type: 8, Value: -1}, {Type: 11, Value: 35}, {Type: 14, Value: 30}, {Type: 15, Value: -1}, {Type: 16, Value: -1}, {Type: 17, Value: -1}, {Type: 18, Value: -1}, {Type: 19, Value: -1}},
},
UniqueEffect: &horse.UniqueEffect{
Name: "Take Hold of Our Dreams!",
Desc: "Power Bonus and Initial Friendship Gauge",
CardLevel: 40,
Type: 5,
Args: []int32{1},
Type2: 14,
Args2: []int32{15},
IdleSubRate: 0,
},
Hints: []horse.Hint{
{SkillID: 200012},
{SkillID: 200042},
{SkillID: 200142},
{SkillID: 200202},
{SkillID: 201172},
{SkillID: 201212},
{Speed: 1, Power: 1, Guts: 6},
},
Outings: 0,
},
}
if diff := cmp.Diff(want, got); diff != "" {
t.Errorf("wrong support cards (+got/-want):\n%s", diff)
}
}
+274
View File
@@ -0,0 +1,274 @@
CREATE TABLE IF NOT EXISTS 'text_data' ('id' INTEGER NOT NULL, 'category' INTEGER NOT NULL, 'index' INTEGER NOT NULL, 'text' TEXT NOT NULL, PRIMARY KEY('category','index'));
-- WITH cards AS (SELECT * FROM support_card_data WHERE chara_id IN (1001, 1002, 1078, 2001, 9001)) SELECT * FROM text_data WHERE category IN (75, 76, 77) AND "index" IN (SELECT id FROM cards) UNION ALL SELECT * FROM text_data WHERE category IN (150, 155) AND "index" IN (SELECT unique_effect_id FROM cards);
INSERT INTO text_data VALUES(75,75,10001,'[Tracen Academy] Special Week');
INSERT INTO text_data VALUES(75,75,10002,'[Tracen Academy] Silence Suzuka');
INSERT INTO text_data VALUES(75,75,10021,'[Tracen Academy] Tazuna Hayakawa');
INSERT INTO text_data VALUES(75,75,20043,'[At the End of the Day] Special Week');
INSERT INTO text_data VALUES(75,75,30001,'[The Brightest Star in Japan!] Special Week');
INSERT INTO text_data VALUES(75,75,30002,'[Beyond This Shining Moment] Silence Suzuka');
INSERT INTO text_data VALUES(75,75,30021,'[Tracen Reception] Tazuna Hayakawa');
INSERT INTO text_data VALUES(75,75,30025,'[The Setting Sun and Rising Stars] Special Week');
INSERT INTO text_data VALUES(75,75,30062,'[Winning Dream] Silence Suzuka');
INSERT INTO text_data VALUES(75,75,30076,'[Searching for Unseen Sights] Silence Suzuka');
INSERT INTO text_data VALUES(75,75,30081,'[Passing the Dream On] Team Sirius');
INSERT INTO text_data VALUES(75,75,30105,'[Take Hold of Our Dreams!] Special Week');
INSERT INTO text_data VALUES(76,76,10001,'[Tracen Academy]');
INSERT INTO text_data VALUES(76,76,10002,'[Tracen Academy]');
INSERT INTO text_data VALUES(76,76,10021,'[Tracen Academy]');
INSERT INTO text_data VALUES(76,76,20043,'[At the End of the Day]');
INSERT INTO text_data VALUES(76,76,30001,'[The Brightest Star in Japan!]');
INSERT INTO text_data VALUES(76,76,30002,'[Beyond This Shining Moment]');
INSERT INTO text_data VALUES(76,76,30021,'[Tracen Reception]');
INSERT INTO text_data VALUES(76,76,30025,'[The Setting Sun and Rising Stars]');
INSERT INTO text_data VALUES(76,76,30062,'[Winning Dream]');
INSERT INTO text_data VALUES(76,76,30076,'[Searching for Unseen Sights]');
INSERT INTO text_data VALUES(76,76,30081,'[Passing the Dream On]');
INSERT INTO text_data VALUES(76,76,30105,'[Take Hold of Our Dreams!]');
INSERT INTO text_data VALUES(77,77,10001,'Special Week');
INSERT INTO text_data VALUES(77,77,10002,'Silence Suzuka');
INSERT INTO text_data VALUES(77,77,10021,'Tazuna Hayakawa');
INSERT INTO text_data VALUES(77,77,20043,'Special Week');
INSERT INTO text_data VALUES(77,77,30001,'Special Week');
INSERT INTO text_data VALUES(77,77,30002,'Silence Suzuka');
INSERT INTO text_data VALUES(77,77,30021,'Tazuna Hayakawa');
INSERT INTO text_data VALUES(77,77,30025,'Special Week');
INSERT INTO text_data VALUES(77,77,30062,'Silence Suzuka');
INSERT INTO text_data VALUES(77,77,30076,'Silence Suzuka');
INSERT INTO text_data VALUES(77,77,30081,'Team Sirius');
INSERT INTO text_data VALUES(77,77,30105,'Special Week');
INSERT INTO text_data VALUES(150,150,20043,'At the End of the Day');
INSERT INTO text_data VALUES(150,150,30001,'The Brightest Star in Japan!');
INSERT INTO text_data VALUES(150,150,30002,'Beyond This Shining Moment');
INSERT INTO text_data VALUES(150,150,30021,'Tracen Reception');
INSERT INTO text_data VALUES(150,150,30025,'The Setting Sun and Rising Stars');
INSERT INTO text_data VALUES(150,150,30062,'Winning Dream');
INSERT INTO text_data VALUES(150,150,30076,'Searching for Unseen Sights');
INSERT INTO text_data VALUES(150,150,30081,'Passing the Dream On');
INSERT INTO text_data VALUES(150,150,30105,'Take Hold of Our Dreams!');
INSERT INTO text_data VALUES(155,155,20043,'Training Effectiveness and Initial Power');
INSERT INTO text_data VALUES(155,155,30001,'Guts Bonus and Initial Guts');
INSERT INTO text_data VALUES(155,155,30002,'Mood Effect and Hint Frequency');
INSERT INTO text_data VALUES(155,155,30021,'Failure Protection and Energy Cost Reduction');
INSERT INTO text_data VALUES(155,155,30025,'Training Effectiveness and Race Bonus');
INSERT INTO text_data VALUES(155,155,30062,'Training Effectiveness and Initial Stamina');
INSERT INTO text_data VALUES(155,155,30076,'Training Effectiveness and Race Bonus');
INSERT INTO text_data VALUES(155,155,30081,'Training Effectiveness (Friendship Gauge 80+)');
INSERT INTO text_data VALUES(155,155,30105,'Power Bonus and Initial Friendship Gauge');
CREATE TABLE IF NOT EXISTS 'support_card_data' ('id' INTEGER NOT NULL, 'chara_id' INTEGER NOT NULL, 'rarity' INTEGER NOT NULL, 'exchange_item_id' INTEGER NOT NULL, 'effect_table_id' INTEGER NOT NULL, 'unique_effect_id' INTEGER NOT NULL, 'command_type' INTEGER NOT NULL, 'command_id' INTEGER NOT NULL, 'support_card_type' INTEGER NOT NULL, 'skill_set_id' INTEGER NOT NULL, 'detail_pos_x' INTEGER NOT NULL, 'detail_pos_y' INTEGER NOT NULL, 'detail_scale' INTEGER NOT NULL, 'detail_rot_z' INTEGER NOT NULL, 'start_date' INTEGER NOT NULL, 'outing_max' INTEGER NOT NULL, 'effect_id' INTEGER NOT NULL, PRIMARY KEY('id'));
-- SELECT * FROM support_card_data WHERE chara_id IN (1001, 1002, 1078, 2001, 9001);
INSERT INTO support_card_data VALUES(10001,1001,1,48,10001,0,1,103,1,9081001,0,-1100000,10000,0,1614124800,0,0);
INSERT INTO support_card_data VALUES(20043,1001,2,49,20043,20043,1,102,1,9081001,0,-2350000,11500,0,1773352800,0,0);
INSERT INTO support_card_data VALUES(30001,1001,3,50,30001,30001,1,103,1,9081001,0,-890000,10000,0,1614124800,0,0);
INSERT INTO support_card_data VALUES(30025,1001,3,50,30025,30025,1,101,1,9081001,-20000,-890000,10000,0,1750897800,0,0);
INSERT INTO support_card_data VALUES(30081,1001,3,50,30081,30081,0,0,3,9081001,0,-1250000,11000,0,1774562400,1,100);
INSERT INTO support_card_data VALUES(30105,1001,3,50,30105,30105,1,103,1,9081001,0,-1050000,10000,0,1782424800,0,0);
INSERT INTO support_card_data VALUES(10002,1002,1,48,10002,0,1,101,1,9081002,0,-1100000,10000,0,1614124800,0,0);
INSERT INTO support_card_data VALUES(30002,1002,3,50,30002,30002,1,101,1,9081002,0,-2340000,10000,0,1614124800,0,0);
INSERT INTO support_card_data VALUES(30062,1002,3,50,30062,30062,1,105,1,9081002,3780000,-5500000,17250,0,1762207200,0,0);
INSERT INTO support_card_data VALUES(30076,1002,3,50,30076,30076,1,101,1,9081002,0,-200000,10000,0,1769119200,0,0);
INSERT INTO support_card_data VALUES(10021,9001,1,48,10021,0,0,0,2,9089001,0,-1250000,10000,0,1614124800,5,0);
INSERT INTO support_card_data VALUES(30021,9001,3,50,30021,30021,0,0,2,9089001,0,-1840000,10000,0,1614124800,5,0);
CREATE TABLE IF NOT EXISTS 'support_card_effect_table' ('id' INTEGER NOT NULL, 'type' INTEGER NOT NULL, 'init' INTEGER NOT NULL, 'limit_lv5' INTEGER NOT NULL, 'limit_lv10' INTEGER NOT NULL, 'limit_lv15' INTEGER NOT NULL, 'limit_lv20' INTEGER NOT NULL, 'limit_lv25' INTEGER NOT NULL, 'limit_lv30' INTEGER NOT NULL, 'limit_lv35' INTEGER NOT NULL, 'limit_lv40' INTEGER NOT NULL, 'limit_lv45' INTEGER NOT NULL, 'limit_lv50' INTEGER NOT NULL, PRIMARY KEY('id','type'));
-- SELECT * FROM support_card_effect_table WHERE id IN (SELECT id FROM support_card_data WHERE chara_id IN (1001, 1002, 1078, 2001, 9001));
INSERT INTO support_card_effect_table VALUES(10001,1,5,-1,-1,10,10,-1,-1,15,-1,-1,-1);
INSERT INTO support_card_effect_table VALUES(10001,2,10,-1,-1,-1,25,-1,-1,-1,35,-1,-1);
INSERT INTO support_card_effect_table VALUES(10001,5,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1);
INSERT INTO support_card_effect_table VALUES(10001,14,-1,10,-1,15,15,-1,-1,20,-1,-1,-1);
INSERT INTO support_card_effect_table VALUES(10001,17,-1,1,-1,1,1,-1,-1,2,-1,-1,-1);
INSERT INTO support_card_effect_table VALUES(10001,18,-1,5,-1,20,20,-1,-1,30,-1,-1,-1);
INSERT INTO support_card_effect_table VALUES(10001,19,-1,5,-1,20,20,-1,-1,35,-1,-1,-1);
INSERT INTO support_card_effect_table VALUES(10002,1,5,-1,-1,-1,15,-1,-1,-1,20,-1,-1);
INSERT INTO support_card_effect_table VALUES(10002,2,-1,10,-1,15,15,-1,-1,25,-1,-1,-1);
INSERT INTO support_card_effect_table VALUES(10002,14,-1,10,-1,15,15,-1,-1,20,-1,-1,-1);
INSERT INTO support_card_effect_table VALUES(10002,15,-1,1,-1,1,1,-1,-1,5,-1,-1,-1);
INSERT INTO support_card_effect_table VALUES(10002,16,-1,1,-1,5,5,-1,-1,10,-1,-1,-1);
INSERT INTO support_card_effect_table VALUES(10002,19,5,-1,-1,-1,35,-1,-1,-1,50,-1,-1);
INSERT INTO support_card_effect_table VALUES(10002,30,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1);
INSERT INTO support_card_effect_table VALUES(10021,8,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1);
INSERT INTO support_card_effect_table VALUES(10021,14,10,-1,-1,-1,20,-1,-1,-1,25,-1,-1);
INSERT INTO support_card_effect_table VALUES(10021,25,10,-1,-1,-1,30,-1,-1,-1,40,-1,-1);
INSERT INTO support_card_effect_table VALUES(10021,26,10,-1,-1,-1,20,-1,-1,-1,25,-1,-1);
INSERT INTO support_card_effect_table VALUES(10021,27,5,-1,-1,-1,15,-1,-1,-1,20,-1,-1);
INSERT INTO support_card_effect_table VALUES(10021,28,1,-1,-1,-1,10,-1,-1,-1,15,-1,-1);
INSERT INTO support_card_effect_table VALUES(20043,1,10,-1,-1,-1,-1,20,-1,-1,-1,25,-1);
INSERT INTO support_card_effect_table VALUES(20043,2,-1,-1,10,-1,20,20,-1,-1,30,-1,-1);
INSERT INTO support_card_effect_table VALUES(20043,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1);
INSERT INTO support_card_effect_table VALUES(20043,10,-1,-1,-1,-1,-1,-1,10,-1,20,-1,-1);
INSERT INTO support_card_effect_table VALUES(20043,15,-1,-1,1,-1,1,1,-1,-1,-1,5,-1);
INSERT INTO support_card_effect_table VALUES(20043,16,-1,-1,1,-1,5,5,-1,-1,-1,10,-1);
INSERT INTO support_card_effect_table VALUES(20043,17,1,-1,-1,-1,-1,2,-1,-1,-1,2,-1);
INSERT INTO support_card_effect_table VALUES(20043,18,5,-1,-1,-1,-1,30,-1,-1,-1,40,-1);
INSERT INTO support_card_effect_table VALUES(30001,1,10,-1,-1,-1,-1,15,15,-1,-1,20,-1);
INSERT INTO support_card_effect_table VALUES(30001,2,10,-1,-1,-1,-1,-1,40,-1,-1,-1,60);
INSERT INTO support_card_effect_table VALUES(30001,5,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1);
INSERT INTO support_card_effect_table VALUES(30001,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,10);
INSERT INTO support_card_effect_table VALUES(30001,14,-1,-1,10,-1,-1,20,20,-1,-1,25,-1);
INSERT INTO support_card_effect_table VALUES(30001,17,-1,-1,1,-1,-1,2,2,-1,-1,2,-1);
INSERT INTO support_card_effect_table VALUES(30001,18,-1,-1,5,-1,-1,30,30,-1,-1,40,-1);
INSERT INTO support_card_effect_table VALUES(30001,19,-1,-1,-1,5,-1,20,20,-1,-1,35,-1);
INSERT INTO support_card_effect_table VALUES(30002,1,10,-1,-1,-1,-1,-1,25,-1,-1,-1,35);
INSERT INTO support_card_effect_table VALUES(30002,2,-1,-1,10,-1,-1,30,30,-1,-1,40,-1);
INSERT INTO support_card_effect_table VALUES(30002,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,30);
INSERT INTO support_card_effect_table VALUES(30002,14,-1,-1,10,-1,-1,20,20,-1,-1,25,-1);
INSERT INTO support_card_effect_table VALUES(30002,15,-1,-1,1,-1,-1,5,5,-1,-1,5,-1);
INSERT INTO support_card_effect_table VALUES(30002,16,-1,-1,1,-1,-1,10,10,-1,-1,15,-1);
INSERT INTO support_card_effect_table VALUES(30002,19,5,-1,-1,-1,-1,-1,50,-1,-1,-1,65);
INSERT INTO support_card_effect_table VALUES(30002,30,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1);
INSERT INTO support_card_effect_table VALUES(30021,8,-1,-1,-1,-1,-1,-1,-1,5,10,-1,-1);
INSERT INTO support_card_effect_table VALUES(30021,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,30);
INSERT INTO support_card_effect_table VALUES(30021,14,10,-1,-1,-1,-1,-1,25,-1,-1,-1,30);
INSERT INTO support_card_effect_table VALUES(30021,25,10,-1,-1,-1,-1,-1,40,-1,-1,-1,60);
INSERT INTO support_card_effect_table VALUES(30021,26,10,-1,-1,-1,-1,-1,25,-1,-1,-1,35);
INSERT INTO support_card_effect_table VALUES(30021,27,5,-1,-1,-1,-1,-1,20,-1,-1,-1,30);
INSERT INTO support_card_effect_table VALUES(30021,28,1,-1,-1,-1,-1,-1,15,-1,-1,-1,25);
INSERT INTO support_card_effect_table VALUES(30025,1,10,-1,-1,-1,-1,-1,25,-1,-1,-1,35);
INSERT INTO support_card_effect_table VALUES(30025,2,-1,-1,-1,10,-1,20,20,-1,-1,30,-1);
INSERT INTO support_card_effect_table VALUES(30025,3,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1);
INSERT INTO support_card_effect_table VALUES(30025,14,-1,-1,1,-1,-1,5,5,-1,-1,10,-1);
INSERT INTO support_card_effect_table VALUES(30025,15,-1,-1,-1,1,-1,1,1,-1,-1,5,-1);
INSERT INTO support_card_effect_table VALUES(30025,16,-1,-1,-1,1,-1,5,5,-1,-1,10,-1);
INSERT INTO support_card_effect_table VALUES(30025,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,30);
INSERT INTO support_card_effect_table VALUES(30062,1,10,-1,-1,-1,-1,20,20,-1,-1,25,-1);
INSERT INTO support_card_effect_table VALUES(30062,2,-1,-1,-1,10,-1,20,20,-1,-1,30,-1);
INSERT INTO support_card_effect_table VALUES(30062,4,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1);
INSERT INTO support_card_effect_table VALUES(30062,10,10,-1,-1,-1,-1,-1,25,-1,-1,-1,35);
INSERT INTO support_card_effect_table VALUES(30062,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,30);
INSERT INTO support_card_effect_table VALUES(30062,15,-1,-1,-1,1,-1,1,1,-1,-1,5,-1);
INSERT INTO support_card_effect_table VALUES(30062,16,-1,-1,-1,1,-1,5,5,-1,-1,10,-1);
INSERT INTO support_card_effect_table VALUES(30062,19,-1,-1,-1,5,-1,20,20,-1,-1,35,-1);
INSERT INTO support_card_effect_table VALUES(30076,1,10,-1,-1,-1,-1,20,20,-1,-1,25,-1);
INSERT INTO support_card_effect_table VALUES(30076,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,30);
INSERT INTO support_card_effect_table VALUES(30076,3,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1);
INSERT INTO support_card_effect_table VALUES(30076,14,-1,-1,5,-1,-1,-1,10,-1,-1,-1,-1);
INSERT INTO support_card_effect_table VALUES(30076,17,-1,-1,-1,1,-1,1,1,-1,-1,-1,2);
INSERT INTO support_card_effect_table VALUES(30076,18,-1,-1,-1,5,-1,20,20,-1,-1,-1,30);
INSERT INTO support_card_effect_table VALUES(30076,19,-1,-1,5,-1,-1,35,35,-1,-1,50,-1);
INSERT INTO support_card_effect_table VALUES(30081,1,5,-1,-1,-1,-1,10,10,-1,-1,-1,15);
INSERT INTO support_card_effect_table VALUES(30081,2,10,-1,-1,-1,-1,-1,15,-1,-1,-1,20);
INSERT INTO support_card_effect_table VALUES(30081,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,30);
INSERT INTO support_card_effect_table VALUES(30081,14,-1,-1,-1,10,-1,15,15,-1,-1,20,-1);
INSERT INTO support_card_effect_table VALUES(30081,15,-1,-1,-1,-1,-1,1,1,-1,-1,-1,5);
INSERT INTO support_card_effect_table VALUES(30081,16,-1,-1,-1,-1,-1,5,5,-1,-1,-1,10);
INSERT INTO support_card_effect_table VALUES(30081,25,-1,-1,-1,10,-1,20,20,-1,-1,30,-1);
INSERT INTO support_card_effect_table VALUES(30081,26,-1,-1,-1,10,-1,15,15,-1,-1,20,-1);
INSERT INTO support_card_effect_table VALUES(30081,30,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1);
INSERT INTO support_card_effect_table VALUES(30081,31,1,-1,-1,1,-1,1,1,-1,-1,-1,2);
INSERT INTO support_card_effect_table VALUES(30105,1,10,-1,-1,-1,-1,20,20,-1,-1,25,-1);
INSERT INTO support_card_effect_table VALUES(30105,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,30);
INSERT INTO support_card_effect_table VALUES(30105,6,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1);
INSERT INTO support_card_effect_table VALUES(30105,8,-1,-1,-1,1,-1,5,5,-1,-1,5,-1);
INSERT INTO support_card_effect_table VALUES(30105,11,10,-1,-1,-1,-1,-1,25,-1,-1,-1,35);
INSERT INTO support_card_effect_table VALUES(30105,14,10,-1,-1,-1,-1,-1,25,-1,-1,-1,30);
INSERT INTO support_card_effect_table VALUES(30105,15,-1,-1,-1,1,-1,1,1,-1,-1,5,-1);
INSERT INTO support_card_effect_table VALUES(30105,16,-1,-1,-1,1,-1,5,5,-1,-1,10,-1);
INSERT INTO support_card_effect_table VALUES(30105,17,-1,-1,-1,1,-1,1,1,-1,-1,2,-1);
INSERT INTO support_card_effect_table VALUES(30105,18,-1,-1,-1,5,-1,20,20,-1,-1,30,-1);
INSERT INTO support_card_effect_table VALUES(30105,19,-1,-1,-1,5,-1,20,20,-1,-1,35,-1);
CREATE TABLE IF NOT EXISTS 'support_card_unique_effect' ('id' INTEGER NOT NULL, 'lv' INTEGER NOT NULL, 'type_0' INTEGER NOT NULL, 'value_0' INTEGER NOT NULL, 'value_0_1' INTEGER NOT NULL, 'value_0_2' INTEGER NOT NULL, 'value_0_3' INTEGER NOT NULL, 'value_0_4' INTEGER NOT NULL, 'type_1' INTEGER NOT NULL, 'value_1' INTEGER NOT NULL, 'value_1_1' INTEGER NOT NULL, 'value_1_2' INTEGER NOT NULL, 'value_1_3' INTEGER NOT NULL, 'value_1_4' INTEGER NOT NULL, 'idle_mode_sub_rate' INTEGER NOT NULL, PRIMARY KEY('id'));
-- SELECT * FROM support_card_unique_effect WHERE id IN (SELECT unique_effect_id FROM support_card_data WHERE chara_id IN (1001, 1002, 1078, 2001, 9001));
INSERT INTO support_card_unique_effect VALUES(20043,35,8,5,0,0,0,0,11,20,0,0,0,0,0);
INSERT INTO support_card_unique_effect VALUES(30001,30,6,1,0,0,0,0,12,20,0,0,0,0,0);
INSERT INTO support_card_unique_effect VALUES(30002,30,2,15,0,0,0,0,18,20,0,0,0,0,0);
INSERT INTO support_card_unique_effect VALUES(30021,30,27,10,0,0,0,0,28,5,0,0,0,0,0);
INSERT INTO support_card_unique_effect VALUES(30025,40,8,5,0,0,0,0,15,5,0,0,0,0,0);
INSERT INTO support_card_unique_effect VALUES(30062,40,8,5,0,0,0,0,10,20,0,0,0,0,0);
INSERT INTO support_card_unique_effect VALUES(30076,40,8,5,0,0,0,0,15,5,0,0,0,0,0);
INSERT INTO support_card_unique_effect VALUES(30081,40,101,80,8,10,0,0,0,0,0,0,0,0,20);
INSERT INTO support_card_unique_effect VALUES(30105,40,5,1,0,0,0,0,14,15,0,0,0,0,0);
CREATE TABLE IF NOT EXISTS 'single_mode_hint_gain' ('id' INTEGER NOT NULL, 'hint_id' INTEGER NOT NULL, 'support_card_id' INTEGER NOT NULL, 'hint_group' INTEGER NOT NULL, 'hint_gain_type' INTEGER NOT NULL, 'hint_value_1' INTEGER NOT NULL, 'hint_value_2' INTEGER NOT NULL, 'group_id' INTEGER NOT NULL, 'condition_set_id' INTEGER NOT NULL, 'priority' INTEGER NOT NULL, PRIMARY KEY('id'));
-- SELECT * FROM single_mode_hint_gain WHERE support_card_id IN (SELECT id FROM support_card_data WHERE chara_id IN (1001, 1002, 1078, 2001, 9001));
INSERT INTO single_mode_hint_gain VALUES(1,9081001,30001,1,0,200162,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(2,9081001,30001,2,0,200232,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(3,9081001,30001,3,0,200512,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(4,9081001,30001,4,0,200612,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(5,9081001,30001,5,0,200732,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(6,9081001,30001,6,0,201352,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(7,9081001,30001,7,0,201542,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(8,9081001,30001,8,1,1,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(9,9081001,30001,8,1,3,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(10,9081001,30001,8,1,4,6,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(11,9081001,10001,1,0,200162,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(12,9081001,10001,2,0,200232,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(13,9081001,10001,3,0,200512,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(14,9081001,10001,4,0,200612,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(15,9081001,10001,5,0,200732,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(16,9081001,10001,6,0,201352,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(17,9081001,10001,7,0,201542,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(18,9081001,10001,8,1,1,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(19,9081001,10001,8,1,3,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(20,9081001,10001,8,1,4,6,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(21,9081002,30002,1,0,200432,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(22,9081002,30002,2,0,200532,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(23,9081002,30002,3,0,200542,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(24,9081002,30002,4,0,200552,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(25,9081002,30002,5,0,200712,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(26,9081002,30002,6,0,201242,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(27,9081002,30002,7,0,201252,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(28,9081002,30002,8,0,201522,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(29,9081002,30002,9,0,201272,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(31,9081002,30002,10,1,1,6,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(32,9081002,30002,10,1,3,2,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(33,9081002,10002,1,0,200432,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(34,9081002,10002,2,0,200532,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(35,9081002,10002,3,0,200542,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(36,9081002,10002,4,0,200552,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(37,9081002,10002,5,0,200712,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(38,9081002,10002,6,0,201242,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(39,9081002,10002,7,0,201252,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(40,9081002,10002,8,0,201522,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(41,9081002,10002,9,0,201272,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(43,9081002,10002,10,1,1,6,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(44,9081002,10002,10,1,3,2,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(807,9081001,30025,1,0,200162,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(808,9081001,30025,2,0,200232,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(809,9081001,30025,3,0,200512,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(810,9081001,30025,4,0,200612,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(811,9081001,30025,5,0,200732,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(812,9081001,30025,6,0,201352,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(813,9081001,30025,7,0,201542,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(814,9081001,30025,8,1,1,6,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(815,9081001,30025,8,1,3,2,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1231,9081002,30062,1,0,200432,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1232,9081002,30062,2,0,200532,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1233,9081002,30062,3,0,200542,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1234,9081002,30062,4,0,200552,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1235,9081002,30062,5,0,200712,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1236,9081002,30062,6,0,201242,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1237,9081002,30062,7,0,201252,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1238,9081002,30062,8,0,201522,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1239,9081002,30062,9,0,201272,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1240,9081002,30062,10,1,2,6,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1241,9081002,30062,10,1,4,2,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1421,9081002,30076,1,0,200432,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1422,9081002,30076,2,0,200532,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1423,9081002,30076,3,0,200542,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1424,9081002,30076,4,0,200552,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1425,9081002,30076,5,0,200712,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1426,9081002,30076,6,0,201242,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1427,9081002,30076,7,0,201252,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1428,9081002,30076,8,0,201522,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1429,9081002,30076,9,0,201272,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1430,9081002,30076,10,1,1,6,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1431,9081002,30076,10,1,3,2,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1572,9081001,20043,1,0,200162,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1573,9081001,20043,2,0,200512,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1574,9081001,20043,3,0,200562,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1575,9081001,20043,4,0,200732,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1576,9081001,20043,5,0,201312,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1577,9081001,20043,6,0,201352,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1578,9081001,20043,7,0,201362,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1579,9081001,20043,8,1,2,2,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1580,9081001,20043,8,1,3,6,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1789,9081001,30105,1,0,200012,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1790,9081001,30105,2,0,200042,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1791,9081001,30105,3,0,200142,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1792,9081001,30105,4,0,200202,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1793,9081001,30105,5,0,201172,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1794,9081001,30105,6,0,201212,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1795,9081001,30105,7,1,1,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1796,9081001,30105,7,1,3,1,0,0,0);
INSERT INTO single_mode_hint_gain VALUES(1797,9081001,30105,7,1,4,6,0,0,0);
+124
View File
@@ -0,0 +1,124 @@
package horse
type SupportCardID int32
type SupportCard struct {
ID SupportCardID `json:"id"`
Name string `json:"name"`
CharacterID CharacterID `json:"chara_id"`
CharaName string `json:"chara_name"`
Rarity SupportCardRarity `json:"rarity"`
Specialty SupportCardSpecialty `json:"specialty"`
Type SupportCardType `json:"type"`
Effects [11][]SupportCardEffect `json:"effects"`
UniqueEffect *UniqueEffect `json:"unique_effect,omitzero"`
Hints []Hint `json:"hints"`
Outings int32 `json:"outings,omitzero"`
}
type SupportCardRarity int8
//go:generate go run golang.org/x/tools/cmd/stringer@v0.41.0 -type SupportCardRarity
const (
R SupportCardRarity = 1
SR SupportCardRarity = 2
SSR SupportCardRarity = 3
)
type SupportCardSpecialty int8
//go:generate go run golang.org/x/tools/cmd/stringer@v0.41.0 -type SupportCardSpecialty -trimprefix SupportCard
const (
SupportCardNone SupportCardSpecialty = 0
SupportCardSpeed SupportCardSpecialty = 101
SupportCardPower SupportCardSpecialty = 102
SupportCardGuts SupportCardSpecialty = 103
SupportCardStamina SupportCardSpecialty = 105
SupportCardWit SupportCardSpecialty = 106
)
type SupportCardType int8
const (
SupportCardNormal SupportCardType = 1
SupportCardPal SupportCardType = 2
SupportCardGroup SupportCardType = 3
)
type SupportCardEffectType int8
//go:generate go run golang.org/x/tools/cmd/stringer@v0.41.0 -type SupportCardEffectType -linecomment
const (
SupportCardFriendshipBonus SupportCardEffectType = 1 // Friendship Bonus
SupportCardMoodEffect SupportCardEffectType = 2 // Mood Effect
SupportCardSpeedBonus SupportCardEffectType = 3 // Speed Bonus
SupportCardStaminaBonus SupportCardEffectType = 4 // Stamina Bonus
SupportCardPowerBonus SupportCardEffectType = 5 // Power Bonus
SupportCardGutsBonus SupportCardEffectType = 6 // Guts Bonus
SupportCardWitBonus SupportCardEffectType = 7 // Wit Bonus
SupportCardTrainingEffectiveness SupportCardEffectType = 8 // Training Effectiveness
SupportCardInitialSpeed SupportCardEffectType = 9 // Initial Speed
SupportCardInitialStamina SupportCardEffectType = 10 // Initial Stamina
SupportCardInitialPower SupportCardEffectType = 11 // Initial Power
SupportCardInitialGuts SupportCardEffectType = 12 // Initial Guts
SupportCardInitialWit SupportCardEffectType = 13 // Initial Wit
SupportCardInitialFriendship SupportCardEffectType = 14 // Initial Friendship Gauge
SupportCardRaceBonus SupportCardEffectType = 15 // Race Bonus
SupportCardFanBonus SupportCardEffectType = 16 // Fan Bonus
SupportCardHintLevels SupportCardEffectType = 17 // Hint Levels
SupportCardHintFrequency SupportCardEffectType = 18 // Hint Frequency
SupportCardSpecialtyPriority SupportCardEffectType = 19 // Specialty Priority
SupportCardMaxSpeed SupportCardEffectType = 20 // Max Speed
SupportCardMaxStamina SupportCardEffectType = 21 // Max Stamina
SupportCardMaxPower SupportCardEffectType = 22 // Max Power
SupportCardMaxGuts SupportCardEffectType = 23 // Max Guts
SupportCardMaxWit SupportCardEffectType = 24 // Max Wit
SupportCardEventRecovery SupportCardEffectType = 25 // Event Recovery
SupportCardEventEffectiveness SupportCardEffectType = 26 // Event Effectiveness
SupportCardFailureProtection SupportCardEffectType = 27 // Failure Protection
SupportCardEnergyCostReduction SupportCardEffectType = 28 // Energy Cost Reduction
SupportCardMinigameEffectiveness SupportCardEffectType = 29 // Minigame Effectiveness
SupportCardSkillPointBonus SupportCardEffectType = 30 // Skill Point Bonus
SupportCardWitFriendshipRecovery SupportCardEffectType = 31 // Wit Friendship Recovery
// Unique effect types
SupportCardUniqueFriendshipThreshold SupportCardEffectType = 101 // Friendship Gauge threshold
SupportCardUniqueOffSpecialty SupportCardEffectType = 102 // Friendship Gauge threshold and off specialty
SupportCardUniqueColorThresholdTrainingEffectiveness SupportCardEffectType = 103 // Training Effectiveness with multicolor deck
SupportCardUniqueFanScalingTrainingEffectiveness SupportCardEffectType = 104 // Training Effectiveness scaling with fans
SupportCardUniqueColorInitialStats SupportCardEffectType = 105 // Initial Stats for each card
SupportCardUniqueRainbowStack SupportCardEffectType = 106 // stacking bonus per Friendship Training
SupportCardUniqueLowEnergyScaling SupportCardEffectType = 107 // scaling as Energy decreases
SupportCardUniqueMaxEnergyScaling SupportCardEffectType = 108 // scaling with Max Energy
SupportCardUniqueTotalFriendship SupportCardEffectType = 109 // scaling with total Friendship
SupportCardUniqueCardCount SupportCardEffectType = 110 // scaling with the number of supports at the training
SupportCardUniqueFacilityLevel SupportCardEffectType = 111 // scaling with the training facility level
SupportCardUniqueDisableFailure SupportCardEffectType = 112 // chance to disable failure chance
SupportCardUniqueFriendshipTrainingAdditionalEffect SupportCardEffectType = 113 // additional effect active on Friendship Training
)
type SupportCardEffect struct {
Type SupportCardEffectType `json:"type"`
Value int32 `json:"value"`
}
type UniqueEffect struct {
Name string `json:"name"`
Desc string `json:"description"`
CardLevel int32 `json:"card_level"`
Type SupportCardEffectType `json:"type"`
Args []int32 `json:"args"`
Type2 SupportCardEffectType `json:"type2,omitzero"`
Args2 []int32 `json:"args2,omitempty"`
IdleSubRate int32 `json:"idle_mode_sub_rate"`
}
type Hint struct {
SkillID SkillID `json:"skill_id,omitzero"`
Speed int8 `json:"speed,omitzero"`
Stamina int8 `json:"stamina,omitzero"`
Power int8 `json:"power,omitzero"`
Guts int8 `json:"guts,omitzero"`
Wit int8 `json:"wit,omitzero"`
SP int8 `json:"sp,omitzero"`
}
+78
View File
@@ -0,0 +1,78 @@
// Code generated by "stringer -type SupportCardEffectType -linecomment"; DO NOT EDIT.
package horse
import "strconv"
func _() {
// An "invalid array index" compiler error signifies that the constant values have changed.
// Re-run the stringer command to generate them again.
var x [1]struct{}
_ = x[SupportCardFriendshipBonus-1]
_ = x[SupportCardMoodEffect-2]
_ = x[SupportCardSpeedBonus-3]
_ = x[SupportCardStaminaBonus-4]
_ = x[SupportCardPowerBonus-5]
_ = x[SupportCardGutsBonus-6]
_ = x[SupportCardWitBonus-7]
_ = x[SupportCardTrainingEffectiveness-8]
_ = x[SupportCardInitialSpeed-9]
_ = x[SupportCardInitialStamina-10]
_ = x[SupportCardInitialPower-11]
_ = x[SupportCardInitialGuts-12]
_ = x[SupportCardInitialWit-13]
_ = x[SupportCardInitialFriendship-14]
_ = x[SupportCardRaceBonus-15]
_ = x[SupportCardFanBonus-16]
_ = x[SupportCardHintLevels-17]
_ = x[SupportCardHintFrequency-18]
_ = x[SupportCardSpecialtyPriority-19]
_ = x[SupportCardMaxSpeed-20]
_ = x[SupportCardMaxStamina-21]
_ = x[SupportCardMaxPower-22]
_ = x[SupportCardMaxGuts-23]
_ = x[SupportCardMaxWit-24]
_ = x[SupportCardEventRecovery-25]
_ = x[SupportCardEventEffectiveness-26]
_ = x[SupportCardFailureProtection-27]
_ = x[SupportCardEnergyCostReduction-28]
_ = x[SupportCardMinigameEffectiveness-29]
_ = x[SupportCardSkillPointBonus-30]
_ = x[SupportCardWitFriendshipRecovery-31]
_ = x[SupportCardUniqueFriendshipThreshold-101]
_ = x[SupportCardUniqueOffSpecialty-102]
_ = x[SupportCardUniqueColorThresholdTrainingEffectiveness-103]
_ = x[SupportCardUniqueFanScalingTrainingEffectiveness-104]
_ = x[SupportCardUniqueColorInitialStats-105]
_ = x[SupportCardUniqueRainbowStack-106]
_ = x[SupportCardUniqueLowEnergyScaling-107]
_ = x[SupportCardUniqueMaxEnergyScaling-108]
_ = x[SupportCardUniqueTotalFriendship-109]
_ = x[SupportCardUniqueCardCount-110]
_ = x[SupportCardUniqueFacilityLevel-111]
_ = x[SupportCardUniqueDisableFailure-112]
_ = x[SupportCardUniqueFriendshipTrainingAdditionalEffect-113]
}
const (
_SupportCardEffectType_name_0 = "Friendship BonusMood EffectSpeed BonusStamina BonusPower BonusGuts BonusWit BonusTraining EffectivenessInitial SpeedInitial StaminaInitial PowerInitial GutsInitial WitInitial Friendship GaugeRace BonusFan BonusHint LevelsHint FrequencySpecialty PriorityMax SpeedMax StaminaMax PowerMax GutsMax WitEvent RecoveryEvent EffectivenessFailure ProtectionEnergy Cost ReductionMinigame EffectivenessSkill Point BonusWit Friendship Recovery"
_SupportCardEffectType_name_1 = "Friendship Gauge thresholdFriendship Gauge threshold and off specialtyTraining Effectiveness with multicolor deckTraining Effectiveness scaling with fansInitial Stats for each cardstacking bonus per Friendship Trainingscaling as Energy decreasesscaling with Max Energyscaling with total Friendshipscaling with the number of supports at the trainingscaling with the training facility levelchance to disable failure chanceadditional effect active on Friendship Training"
)
var (
_SupportCardEffectType_index_0 = [...]uint16{0, 16, 27, 38, 51, 62, 72, 81, 103, 116, 131, 144, 156, 167, 191, 201, 210, 221, 235, 253, 262, 273, 282, 290, 297, 311, 330, 348, 369, 391, 408, 431}
_SupportCardEffectType_index_1 = [...]uint16{0, 26, 70, 113, 153, 180, 218, 245, 268, 297, 348, 388, 420, 467}
)
func (i SupportCardEffectType) String() string {
switch {
case 1 <= i && i <= 31:
i -= 1
return _SupportCardEffectType_name_0[_SupportCardEffectType_index_0[i]:_SupportCardEffectType_index_0[i+1]]
case 101 <= i && i <= 113:
i -= 101
return _SupportCardEffectType_name_1[_SupportCardEffectType_index_1[i]:_SupportCardEffectType_index_1[i+1]]
default:
return "SupportCardEffectType(" + strconv.FormatInt(int64(i), 10) + ")"
}
}
+26
View File
@@ -0,0 +1,26 @@
// Code generated by "stringer -type SupportCardRarity"; DO NOT EDIT.
package horse
import "strconv"
func _() {
// An "invalid array index" compiler error signifies that the constant values have changed.
// Re-run the stringer command to generate them again.
var x [1]struct{}
_ = x[R-1]
_ = x[SR-2]
_ = x[SSR-3]
}
const _SupportCardRarity_name = "RSRSSR"
var _SupportCardRarity_index = [...]uint8{0, 1, 3, 6}
func (i SupportCardRarity) String() string {
idx := int(i) - 1
if i < 1 || idx >= len(_SupportCardRarity_index)-1 {
return "SupportCardRarity(" + strconv.FormatInt(int64(i), 10) + ")"
}
return _SupportCardRarity_name[_SupportCardRarity_index[idx]:_SupportCardRarity_index[idx+1]]
}
+43
View File
@@ -0,0 +1,43 @@
// Code generated by "stringer -type SupportCardSpecialty -trimprefix SupportCard"; DO NOT EDIT.
package horse
import "strconv"
func _() {
// An "invalid array index" compiler error signifies that the constant values have changed.
// Re-run the stringer command to generate them again.
var x [1]struct{}
_ = x[SupportCardNone-0]
_ = x[SupportCardSpeed-101]
_ = x[SupportCardPower-102]
_ = x[SupportCardGuts-103]
_ = x[SupportCardStamina-105]
_ = x[SupportCardWit-106]
}
const (
_SupportCardSpecialty_name_0 = "None"
_SupportCardSpecialty_name_1 = "SpeedPowerGuts"
_SupportCardSpecialty_name_2 = "StaminaWit"
)
var (
_SupportCardSpecialty_index_1 = [...]uint8{0, 5, 10, 14}
_SupportCardSpecialty_index_2 = [...]uint8{0, 7, 10}
)
func (i SupportCardSpecialty) String() string {
switch {
case i == 0:
return _SupportCardSpecialty_name_0
case 101 <= i && i <= 103:
i -= 101
return _SupportCardSpecialty_name_1[_SupportCardSpecialty_index_1[i]:_SupportCardSpecialty_index_1[i+1]]
case 105 <= i && i <= 106:
i -= 105
return _SupportCardSpecialty_name_2[_SupportCardSpecialty_index_2[i]:_SupportCardSpecialty_index_2[i+1]]
default:
return "SupportCardSpecialty(" + strconv.FormatInt(int64(i), 10) + ")"
}
}