feat: add subweapon support, weapon type logic, and compact item card UI options

This commit is contained in:
2026-04-28 01:39:39 +09:00
parent 0420e23939
commit 0e0748540e
46 changed files with 1795 additions and 577 deletions
-1
View File
@@ -2,7 +2,6 @@ import 'package:flutter_test/flutter_test.dart';
import 'package:shared_preferences/shared_preferences.dart'; // Import SharedPreferences
import 'package:game_test/providers/battle_provider.dart';
import 'package:game_test/providers/shop_provider.dart';
import 'package:game_test/game/models.dart';
import 'package:game_test/game/enums.dart';
import 'package:game_test/game/data/item_table.dart';
+31
View File
@@ -139,5 +139,36 @@ void main() {
);
},
);
test('Weapon can be equipped as subweapon for dual wielding', () {
final mainSword = Item(
id: "main_sword",
name: "Main Sword",
description: "ATK +5",
atkBonus: 5,
hpBonus: 0,
slot: EquipmentSlot.weapon,
price: 100,
);
final offhandDagger = Item(
id: "offhand_dagger",
name: "Offhand Dagger",
description: "ATK +3",
atkBonus: 3,
hpBonus: 0,
slot: EquipmentSlot.weapon,
price: 80,
);
player.addToInventory(mainSword);
player.addToInventory(offhandDagger);
expect(player.equipToSlot(mainSword, EquipmentSlot.weapon), true);
expect(player.equipToSlot(offhandDagger, EquipmentSlot.shield), true);
expect(player.equipment[EquipmentSlot.weapon], mainSword);
expect(player.equipment[EquipmentSlot.shield], offhandDagger);
expect(player.totalAtk, 18);
});
});
}
-1
View File
@@ -1,6 +1,5 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:game_test/game/data/item_table.dart';
import 'package:flutter/services.dart';
void main() {
TestWidgetsFlutterBinding.ensureInitialized();