This commit is contained in:
MuHua-123
2025-09-26 10:36:52 +08:00
parent 18c6b4387d
commit e674a88be3
20 changed files with 194 additions and 42 deletions
@@ -14,26 +14,43 @@ public class EquipmentColumn {
public EquipmentSlot this[string key] => dictionary[key];
public EquipmentColumn() {
AddSlot(new EquipmentSlot(EquipmentSlotType., VerifyWeapon));
AddSlot(new EquipmentSlot(EquipmentSlotType., VerifyDeputy));
AddSlot(WeaponSlot());
AddSlot(DeputySlot());
AddSlot(new EquipmentSlot(EquipmentSlotType., (equipment) => VerifyCommon(equipment, ArmorType..ToString())));
AddSlot(new EquipmentSlot(EquipmentSlotType., (equipment) => VerifyCommon(equipment, ArmorType..ToString())));
AddSlot(new EquipmentSlot(EquipmentSlotType., (equipment) => VerifyCommon(equipment, ArmorType..ToString())));
AddSlot(new EquipmentSlot(EquipmentSlotType., (equipment) => VerifyCommon(equipment, ArmorType..ToString())));
AddSlot(new EquipmentSlot(EquipmentSlotType., (equipment) => VerifyCommon(equipment, ArmorType..ToString())));
AddSlot(ArmorSlot(EquipmentSlotType., ArmorType.));
AddSlot(ArmorSlot(EquipmentSlotType., ArmorType.));
AddSlot(ArmorSlot(EquipmentSlotType., ArmorType.));
AddSlot(ArmorSlot(EquipmentSlotType., ArmorType.));
AddSlot(ArmorSlot(EquipmentSlotType., ArmorType.));
AddSlot(new EquipmentSlot(EquipmentSlotType., (equipment) => VerifyCommon(equipment, AccessoryType..ToString())));
AddSlot(new EquipmentSlot(EquipmentSlotType.1, (equipment) => VerifyCommon(equipment, AccessoryType..ToString())));
AddSlot(new EquipmentSlot(EquipmentSlotType.2, (equipment) => VerifyCommon(equipment, AccessoryType..ToString())));
AddSlot(new EquipmentSlot(EquipmentSlotType.1, (equipment) => VerifyCommon(equipment, AccessoryType..ToString())));
AddSlot(new EquipmentSlot(EquipmentSlotType.2, (equipment) => VerifyCommon(equipment, AccessoryType..ToString())));
AddSlot(AccessorySlot(EquipmentSlotType., AccessoryType.));
AddSlot(AccessorySlot(EquipmentSlotType.1, AccessoryType.));
AddSlot(AccessorySlot(EquipmentSlotType.2, AccessoryType.));
AddSlot(AccessorySlot(EquipmentSlotType.1, AccessoryType.));
AddSlot(AccessorySlot(EquipmentSlotType.2, AccessoryType.));
}
public bool ContainsKey(string key) => dictionary.ContainsKey(key);
/// <summary> 添加插槽 </summary>
public void AddSlot(EquipmentSlot slot) => dictionary.Add(slot.name, slot);
/// <summary> 武器插槽 </summary>
public EquipmentSlot WeaponSlot() {
return new EquipmentSlot(EquipmentSlotType., VerifyWeapon);
}
/// <summary> 副手插槽 </summary>
public EquipmentSlot DeputySlot() {
return new EquipmentSlot(EquipmentSlotType., VerifyDeputy);
}
/// <summary> 护甲插槽 </summary>
public EquipmentSlot ArmorSlot(EquipmentSlotType type, ArmorType armor) {
return new EquipmentSlot(type, (equipment) => VerifyCommon(equipment, armor.ToString()));
}
/// <summary> 饰品插槽 </summary>
public EquipmentSlot AccessorySlot(EquipmentSlotType type, AccessoryType accessory) {
return new EquipmentSlot(type, (equipment) => VerifyCommon(equipment, accessory.ToString()));
}
/// <summary> 通用校验 </summary>
public static bool VerifyCommon(Equipment equipment, string type) {
string[] types = equipment.type.Split("/");
@@ -9,18 +9,26 @@ public enum WeaponType {
, ,
}
/// <summary>
/// 武器类别
/// </summary>
public enum WeaponCategory {
, , , , , ,
}
/// <summary>
/// 武器 - 物品常量
/// </summary>
[CreateAssetMenu(menuName = "MuHua/物品系统/武器")]
public class ConstWeapon : ConstEquipment {
/// <summary> 武器类型 </summary>
public WeaponType type;
/// <summary> 武器类别 </summary>
public WeaponCategory category;
public override InventoryItem To() {
Equipment item = new Equipment();
item.name = name;
item.sprite = sprite;
item.type = type.ToString();
item.type = $"{type}/{category}";
return item;
}
}
@@ -0,0 +1,14 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
using MuHua;
/// <summary>
/// 装备提示
/// </summary>
public class UIEquipmentTip : ModuleUIPanel {
public UIEquipmentTip(VisualElement element) : base(element) {
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6d2e2ebf18434ab489d8a0918806f5af
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,16 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
using MuHua;
/// <summary>
/// 库存提示
/// </summary>
public class UIInventoryTip : ModuleUIPanel {
public UIInventoryTip(VisualElement element) : base(element) {
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 029d4912285f5c74c8d041ea54164d8b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -15,11 +15,11 @@ public class UIBackpackPage : ModuleUIPage {
public override VisualElement Element => root.Q<VisualElement>("BackpackPage");
public VisualElement Equipment => Q<VisualElement>("Equipment");
public VisualElement Inventory => Q<VisualElement>("Inventory");
public VisualElement EquipmentColumn => Q<VisualElement>("EquipmentColumn");
protected void Awake() {
equipment = new UIEquipmentColumn(Equipment);
equipment = new UIEquipmentColumn(EquipmentColumn);
inventory = new UIInventory(Inventory, inventorySlot);
ModuleUI.OnJumpPage += ModuleUI_OnJumpPage;