42 lines
1.2 KiB
Dart
42 lines
1.2 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:provider/provider.dart';
|
|
import 'game/data/item_table.dart';
|
|
import 'game/data/enemy_table.dart';
|
|
import 'game/data/player_table.dart';
|
|
import 'providers/battle_provider.dart';
|
|
import 'providers/shop_provider.dart'; // Import ShopProvider
|
|
import 'screens/main_menu_screen.dart';
|
|
|
|
void main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
await ItemTable.load();
|
|
await EnemyTable.load();
|
|
await PlayerTable.load();
|
|
runApp(const MyApp());
|
|
}
|
|
|
|
class MyApp extends StatelessWidget {
|
|
const MyApp({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return MultiProvider(
|
|
providers: [
|
|
ChangeNotifierProvider(create: (_) => ShopProvider()),
|
|
ChangeNotifierProxyProvider<ShopProvider, BattleProvider>(
|
|
create: (context) => BattleProvider(
|
|
shopProvider: Provider.of<ShopProvider>(context, listen: false),
|
|
),
|
|
update: (context, shopProvider, battleProvider) =>
|
|
battleProvider ?? BattleProvider(shopProvider: shopProvider),
|
|
),
|
|
],
|
|
child: MaterialApp(
|
|
title: "Colosseum's Choice",
|
|
theme: ThemeData.dark(),
|
|
home: const MainMenuScreen(),
|
|
),
|
|
);
|
|
}
|
|
}
|