using System.Collections; using System.Collections.Generic; using UnityEngine; //主功能整套装备 public class EquipSet { public readonly int maxEquipCnt = 12; //最大装备格子数 public readonly int mark; //多套情况,或者多流派存储 public bool unLocked { get { return true; } } //后续根据玩法解锁的情况,如购买存储流派位 public int fightPower { get { return EquipFightPower.Instance.CalculatePower(mark); } } Dictionary equipSlots = new Dictionary(); public EquipSet(int mark) { this.mark = mark; for (var i = 1; i <= maxEquipCnt; i++) { equipSlots[i] = new EquipSlot(i); } } public void UpdateEquipSlot(int place, string equipGuid) { if (equipSlots.ContainsKey(place)) { equipSlots[place].equip.value = equipGuid; } } public EquipSlot GetEquipSlot(int place) { if (!equipSlots.ContainsKey(place)) { return null; } return equipSlots[place]; } public string GetEquip(int place) { if (!equipSlots.ContainsKey(place)) { return null; } return equipSlots[place].equip.value; } public int CompareToCurrent(string equipGuid) { var item = PackManager.Instance.GetItemByGuid(equipGuid); //需改成地板物品 if (item == null) { return 0; } var place = item.config.EquipPlace; if (!equipSlots.ContainsKey(place)) { return 0; } var slot = equipSlots[place]; var currentEquip = PackManager.Instance.GetItemByGuid(slot.equip.value); if (currentEquip == null) { return 1; } return item.score.CompareTo(currentEquip.score); } public static Int2 ServerPlaceToClientPlace(int serverPlace) { var config = EquipPlaceMapConfig.Get(serverPlace); if (config != null) { return new Int2(config.LV, config.EquipPlace); } else { return Int2.zero; } } public static int ClientPlaceToServerPlace(Int2 equipPosition) { return EquipPlaceMapConfig.GetServerPlace(equipPosition.x, equipPosition.y); } }