Initial commit with gitignore

This commit is contained in:
2026-01-13 14:11:59 +09:00
parent d01c0b781a
commit b302e25132
143 changed files with 7030 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
const cardTypes = [
'スタンダード',
'POTW',
'EPIC.BT',
'ハイライト',
'ショータイム',
];
const cardTypeLabel = 'カードタイプ縛り';

View File

@@ -0,0 +1,405 @@
// フォーメーションごとの座標配置(イーフトっぽい並び)
final Map<String, List<List<Map<String, double>>>> formationLayouts = {
'4-1-2-3': [
[
{'x': 0.20, 'y': 0.12},
{'x': 0.50, 'y': 0.08},
{'x': 0.80, 'y': 0.12},
],
[
{'x': 0.40, 'y': 0.30},
{'x': 0.60, 'y': 0.30},
],
[
{'x': 0.50, 'y': 0.45},
],
[
{'x': 0.15, 'y': 0.55},
{'x': 0.35, 'y': 0.62},
{'x': 0.65, 'y': 0.62},
{'x': 0.85, 'y': 0.55},
],
[
{'x': 0.50, 'y': 0.85},
],
],
'4-3-3': [
[
{'x': 0.20, 'y': 0.12},
{'x': 0.50, 'y': 0.08},
{'x': 0.80, 'y': 0.12},
],
[
{'x': 0.30, 'y': 0.35},
{'x': 0.50, 'y': 0.45},
{'x': 0.70, 'y': 0.35},
],
[
{'x': 0.15, 'y': 0.55},
{'x': 0.35, 'y': 0.62},
{'x': 0.65, 'y': 0.62},
{'x': 0.85, 'y': 0.55},
],
[
{'x': 0.50, 'y': 0.85},
],
],
'4-4-2': [
[
{'x': 0.35, 'y': 0.1},
{'x': 0.65, 'y': 0.1},
],
[
{'x': 0.20, 'y': 0.35},
{'x': 0.40, 'y': 0.45},
{'x': 0.60, 'y': 0.45},
{'x': 0.80, 'y': 0.35},
],
[
{'x': 0.15, 'y': 0.55},
{'x': 0.35, 'y': 0.62},
{'x': 0.65, 'y': 0.62},
{'x': 0.85, 'y': 0.55},
],
[
{'x': 0.50, 'y': 0.85},
],
],
'4-3-2-1': [
[
{'x': 0.50, 'y': 0.1},
],
[
{'x': 0.35, 'y': 0.25},
{'x': 0.65, 'y': 0.25},
],
[
{'x': 0.25, 'y': 0.40},
{'x': 0.50, 'y': 0.45},
{'x': 0.75, 'y': 0.40},
],
[
{'x': 0.15, 'y': 0.55},
{'x': 0.35, 'y': 0.62},
{'x': 0.65, 'y': 0.62},
{'x': 0.85, 'y': 0.55},
],
[
{'x': 0.50, 'y': 0.85},
],
],
'4-3-1-2': [
[
{'x': 0.35, 'y': 0.1},
{'x': 0.65, 'y': 0.1},
],
[
{'x': 0.50, 'y': 0.30},
],
[
{'x': 0.25, 'y': 0.40},
{'x': 0.50, 'y': 0.45},
{'x': 0.75, 'y': 0.40},
],
[
{'x': 0.15, 'y': 0.55},
{'x': 0.35, 'y': 0.62},
{'x': 0.65, 'y': 0.62},
{'x': 0.85, 'y': 0.55},
],
[
{'x': 0.50, 'y': 0.85},
],
],
'4-2-3-1': [
[
{'x': 0.50, 'y': 0.1},
],
[
{'x': 0.20, 'y': 0.30},
{'x': 0.50, 'y': 0.30},
{'x': 0.80, 'y': 0.30},
],
[
{'x': 0.30, 'y': 0.45},
{'x': 0.70, 'y': 0.45},
],
[
{'x': 0.15, 'y': 0.55},
{'x': 0.35, 'y': 0.62},
{'x': 0.65, 'y': 0.62},
{'x': 0.85, 'y': 0.55},
],
[
{'x': 0.50, 'y': 0.85},
],
],
'4-2-1-3': [
[
{'x': 0.20, 'y': 0.12},
{'x': 0.50, 'y': 0.08},
{'x': 0.80, 'y': 0.12},
],
[
{'x': 0.50, 'y': 0.28},
],
[
{'x': 0.40, 'y': 0.45},
{'x': 0.60, 'y': 0.45},
],
[
{'x': 0.15, 'y': 0.55},
{'x': 0.35, 'y': 0.62},
{'x': 0.65, 'y': 0.62},
{'x': 0.85, 'y': 0.55},
],
[
{'x': 0.50, 'y': 0.85},
],
],
'4-1-4-1':[
[
{'x': 0.50, 'y': 0.1},
],
[
{'x': 0.15, 'y': 0.25},
{'x': 0.40, 'y': 0.25},
{'x': 0.60, 'y': 0.25},
{'x': 0.85, 'y': 0.25},
],
[
{'x': 0.50, 'y': 0.45},
],
[
{'x': 0.15, 'y': 0.55},
{'x': 0.35, 'y': 0.62},
{'x': 0.65, 'y': 0.62},
{'x': 0.85, 'y': 0.55},
],
[
{'x': 0.50, 'y': 0.85},
],
],
'4-2-2-2': [
[
{'x': 0.35, 'y': 0.08},
{'x': 0.65, 'y': 0.08},
],
[
{'x': 0.20, 'y': 0.25},
{'x': 0.80, 'y': 0.25},
],
[
{'x': 0.40, 'y': 0.45},
{'x': 0.60, 'y': 0.45},
],
[
{'x': 0.15, 'y': 0.55},
{'x': 0.35, 'y': 0.62},
{'x': 0.65, 'y': 0.62},
{'x': 0.85, 'y': 0.55},
],
[
{'x': 0.50, 'y': 0.85},
],
],
'3-4-3': [
[
{'x': 0.20, 'y': 0.12},
{'x': 0.50, 'y': 0.08},
{'x': 0.80, 'y': 0.12},
],
[
{'x': 0.20, 'y': 0.30},
{'x': 0.40, 'y': 0.45},
{'x': 0.60, 'y': 0.45},
{'x': 0.80, 'y': 0.30},
],
[
{'x': 0.20, 'y': 0.65},
{'x': 0.50, 'y': 0.65},
{'x': 0.80, 'y': 0.65},
],
[
{'x': 0.50, 'y': 0.85},
],
],
'3-2-4-1': [
[
{'x': 0.50, 'y': 0.1},
],
[
{'x': 0.15, 'y': 0.25},
{'x': 0.40, 'y': 0.25},
{'x': 0.60, 'y': 0.25},
{'x': 0.85, 'y': 0.25},
],
[
{'x': 0.40, 'y': 0.45},
{'x': 0.60, 'y': 0.45},
],
[
{'x': 0.20, 'y': 0.65},
{'x': 0.50, 'y': 0.65},
{'x': 0.80, 'y': 0.65},
],
[
{'x': 0.50, 'y': 0.85},
],
],
'3-2-3-2': [
[
{'x': 0.35, 'y': 0.1},
{'x': 0.65, 'y': 0.1},
],
[
{'x': 0.20, 'y': 0.30},
{'x': 0.50, 'y': 0.30},
{'x': 0.80, 'y': 0.30},
],
[
{'x': 0.40, 'y': 0.45},
{'x': 0.60, 'y': 0.45},
],
[
{'x': 0.20, 'y': 0.65},
{'x': 0.50, 'y': 0.65},
{'x': 0.80, 'y': 0.65},
],
[
{'x': 0.50, 'y': 0.85},
],
],
'3-1-4-2': [
[
{'x': 0.35, 'y': 0.1},
{'x': 0.65, 'y': 0.1},
],
[
{'x': 0.15, 'y': 0.30},
{'x': 0.40, 'y': 0.30},
{'x': 0.60, 'y': 0.30},
{'x': 0.85, 'y': 0.30},
],
[
{'x': 0.50, 'y': 0.45},
],
[
{'x': 0.20, 'y': 0.65},
{'x': 0.50, 'y': 0.65},
{'x': 0.80, 'y': 0.65},
],
[
{'x': 0.50, 'y': 0.85},
],
],
'5-3-2': [
[
{'x': 0.40, 'y': 0.1},
{'x': 0.60, 'y': 0.1},
],
[
{'x': 0.30, 'y': 0.40},
{'x': 0.50, 'y': 0.45},
{'x': 0.70, 'y': 0.40},
],
[
{'x': 0.12, 'y': 0.52},
{'x': 0.32, 'y': 0.62},
{'x': 0.50, 'y': 0.64},
{'x': 0.68, 'y': 0.62},
{'x': 0.88, 'y': 0.52},
],
[
{'x': 0.50, 'y': 0.85},
],
],
'5-2-2-1': [
[
{'x': 0.50, 'y': 0.1},
],
[
{'x': 0.35, 'y': 0.30},
{'x': 0.65, 'y': 0.30},
],
[
{'x': 0.40, 'y': 0.45},
{'x': 0.60, 'y': 0.45},
],
[
{'x': 0.12, 'y': 0.52},
{'x': 0.32, 'y': 0.62},
{'x': 0.50, 'y': 0.64},
{'x': 0.68, 'y': 0.62},
{'x': 0.88, 'y': 0.52},
],
[
{'x': 0.50, 'y': 0.85},
],
],
'5-2-1-2': [
[
{'x': 0.35, 'y': 0.08},
{'x': 0.65, 'y': 0.08},
],
[
{'x': 0.50, 'y': 0.25},
],
[
{'x': 0.40, 'y': 0.45},
{'x': 0.60, 'y': 0.45},
],
[
{'x': 0.12, 'y': 0.52},
{'x': 0.32, 'y': 0.62},
{'x': 0.50, 'y': 0.64},
{'x': 0.68, 'y': 0.62},
{'x': 0.88, 'y': 0.52},
],
[
{'x': 0.50, 'y': 0.85},
],
],
'5-2-3': [
[
{'x': 0.20, 'y': 0.12},
{'x': 0.50, 'y': 0.08},
{'x': 0.80, 'y': 0.12},
],
[
{'x': 0.40, 'y': 0.45},
{'x': 0.60, 'y': 0.45},
],
[
{'x': 0.12, 'y': 0.52},
{'x': 0.32, 'y': 0.62},
{'x': 0.50, 'y': 0.64},
{'x': 0.68, 'y': 0.62},
{'x': 0.88, 'y': 0.52},
],
[
{'x': 0.50, 'y': 0.85},
],
],
};
List<List<Map<String, double>>> getFormationLayout(String formation) {
return formationLayouts[formation] ?? formationLayouts['4-3-3']!;
}

13
lib/data/league_data.dart Normal file
View File

@@ -0,0 +1,13 @@
// 遊び用のリーグ候補
const leagues = [
'プレミアリーグ',
'ラ・リーガ',
'セリエA',
'ブンデスリーガ',
'リーグ・アン',
'Jリーグ',
'代表(ナショナル)',
];
// “縛りの名前”を表示するとき用(任意)
const leagueLabel = 'リーグ縛り';

View File

@@ -0,0 +1,160 @@
//各ポジションごとのプレースタイルを定義 = {
final Map<String, List<String>> playerAttributes ={
'GK':[
'守備的GK',
'攻撃的GK',
],
'CB':[
'ハードプレス',
'ビルドアップ',
'オーバーラップ',
'無印',
],
'LSB':[
'守備的サイドバック',
'攻撃的サイドバック',
'インナーラップサイドバック',
'無印',
],
'RSB':[
'守備的サイドバック',
'攻撃的サイドバック',
'インナーラップサイドバック',
'無印',
],
'DMF':[
'ハードプレス',
'アンカー',
'ボックストゥボックス',
'プレーメイカー',
'無印',
],
'CMF':[
'ハードプレス',
'プレーメイカー',
'ボックストゥボックス',
'2列目からの飛び出し'
'無印',
],
'OMF':[
'2列目からの飛び出し',
'チャンスメイカー',
'ナンバー10',
'デコイラン',
'無印',
],
'LMF':[
'2列目からの飛び出し',
'ボックストゥボックス',
'クロサー',
'インサイドレシーバー',
'チャンスメイカー',
'無印',
],
'RMF':[
'2列目からの飛び出し',
'ボックストゥボックス',
'クロサー',
'インサイドレシーバー',
'チャンスメイカー',
'無印',
],
'ST':[
'2列目からの飛び出し',
'ナンバー10',
'チャンスメイカー',
'リンクフォワード',
'デコイラン',
'無印',
],
'LWG':[
'チャンスメイカー',
'クロサー',
'インサイドレシーバー',
'ウイングストライカー',
'無印'
],
'RWG':[
'チャンスメイカー',
'クロサー',
'インサイドレシーバー',
'ウイングストライカー',
'無印'
],
'CF':[
'ラインブレイカー',
'ボックスストライカー',
'ターゲットマン',
'リンクフォワード',
'デコイラン',
'無印',
],
};
//全てのプレースタイル(完全ランダム用)
const allPlayStyle = [
'守備的GK',
'攻撃的GK',
'インナーラップサイドバック',
'守備的サイドバック',
'攻撃的サイドバック',
'オーバーラップ',
'ビルドアップ',
'プレーメイカー',
'ハードプレス',
'アンカー',
'ボックストゥボックス',
'2列目からの飛び出し',
'ナンバー10',
'クロサー',
'インサイドレシーバー',
'ウイングストライカー',
'チャンスメイカー',
'リンクフォワード',
'ターゲットマン',
'ボックスストライカー',
'デコイラン',
'ラインブレイカー',
];
const lowProbabilityStyles = [
'デコイラン',
'ナンバー10',
'ターゲットマン',
'インナーラップサイドバック',
'オーバーラップ',
'インサイドレシーバー'
];
//抽選用フォーメーション候補
const formations = [
'4-4-2',
'4-3-3',
'4-3-2-1',
'4-3-1-2',
'4-2-3-1',
'4-2-1-3',
'4-2-2-2',
'4-1-4-1',
'3-4-3',
'3-2-4-1',
'3-2-3-2',
'3-1-4-2',
'5-3-2',
'5-2-2-1',
'5-2-1-2',
'5-2-3',
];

View File

@@ -0,0 +1,6 @@
final Map <String, List<String>> positionsGroups = {
'GK': ['GK'],
'DF': ['CB','LSB','RSB'],
'MF': ['DMF','CMF','OMF','LMF','RMF'],
'FW': ['CF','ST','LWG','RWG'],
};