Files
MuHua-UIElements/Assets/ModuleCore/ModuleEquipment/Runtime/EquipmentColumn.cs
T
MuHua-123 a18bea561a 1
2025-09-29 17:58:53 +08:00

73 lines
2.8 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 装备栏
/// </summary>
public class EquipmentColumn {
/// <summary> 插槽字典 </summary>
public Dictionary<string, EquipmentSlot> dictionary = new Dictionary<string, EquipmentSlot>();
/// <summary> 索引器 </summary>
public EquipmentSlot this[string key] => dictionary[key];
public EquipmentColumn() {
AddSlot(WeaponSlot());
AddSlot(DeputySlot());
AddSlot(ArmorSlot(EquipmentSlotType., ArmorType.));
AddSlot(ArmorSlot(EquipmentSlotType., ArmorType.));
AddSlot(ArmorSlot(EquipmentSlotType., ArmorType.));
AddSlot(ArmorSlot(EquipmentSlotType., ArmorType.));
AddSlot(ArmorSlot(EquipmentSlotType., ArmorType.));
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("/");
if (types[0] == type) { return true; }
return false;
}
/// <summary> 主手校验 </summary>
public static bool VerifyWeapon(Equipment equipment) {
string[] type = equipment.type.Split("/");
if (type[0] == WeaponType..ToString()) { return true; }
if (type[0] == WeaponType..ToString()) { return true; }
return false;
}
/// <summary> 副手校验 </summary>
public static bool VerifyDeputy(Equipment equipment) {
string[] type = equipment.type.Split("/");
if (type[0] == WeaponType..ToString()) { return true; }
return false;
}
}