update code DlgPetRec
This commit is contained in:
@@ -2,7 +2,6 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using BrewMonster.Network;
|
||||
using BrewMonster.Scripts.Managers;
|
||||
using BrewMonster.Scripts.Pet;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
@@ -22,44 +21,39 @@ namespace BrewMonster.UI
|
||||
[Header("Pet List")]
|
||||
[SerializeField] private Button[] m_pBtn_PetSlots = new Button[PETSLOT_MAX];
|
||||
|
||||
[Header("Button")]
|
||||
[Header("Button")]
|
||||
[SerializeField] private Button m_btnComfirm;
|
||||
[SerializeField] private Button m_btnCancle;
|
||||
[SerializeField] private Button m_btnClose;
|
||||
|
||||
[Header("Icon Default")]
|
||||
[Header("Icon Default")]
|
||||
[SerializeField] private Sprite m_defaultIcon;
|
||||
|
||||
private int m_nSlot= -1;
|
||||
|
||||
private int m_nSlot = -1;
|
||||
private CECPetData m_pCurrentPet = null;
|
||||
private CECPetData[] m_petSlots = new CECPetData[PETSLOT_MAX];
|
||||
|
||||
private float m_doubleClickTime = 1f;
|
||||
private Dictionary<int, float> m_lastClickTime = new Dictionary<int, float>();
|
||||
|
||||
private GameObject m_draggedIcon;
|
||||
private int m_draggedSlotIndex = -1;
|
||||
private float m_doubleClickTime = 0.3f;
|
||||
private Dictionary<int, float> m_lastClickTime = new Dictionary<int, float>();
|
||||
private GameObject m_draggedIcon = null;
|
||||
|
||||
public override void Awake()
|
||||
{
|
||||
base.Awake();
|
||||
RegisterClick(m_pImg_Item.transform, OnClickTargetSlot);
|
||||
RegisterTargetSlotEvents(m_pImg_Item.transform);
|
||||
|
||||
for(int i=0; i< PETSLOT_MAX; i++)
|
||||
for (int i = 0; i < PETSLOT_MAX; i++)
|
||||
{
|
||||
int slotIndex = i; // Capture the current value of i for the lambda
|
||||
RegisterDoubleClickOnPetSlot(m_pBtn_PetSlots[i], slotIndex);
|
||||
RegisterDragOnPetSlot(m_pBtn_PetSlots[i], slotIndex);
|
||||
RegisterPetSlotEvents(m_pBtn_PetSlots[i], slotIndex);
|
||||
}
|
||||
|
||||
RegisterDrop(m_pImg_Item.transform, OnDropPetToTarget);
|
||||
|
||||
if (m_btnComfirm != null)
|
||||
m_btnComfirm.onClick.AddListener(OnCommandConfirm);
|
||||
if(m_btnCancle != null)
|
||||
m_btnCancle.onClick.AddListener(OnCommandCancel);
|
||||
if(m_btnClose != null)
|
||||
m_btnClose.onClick.AddListener(OnCommandCancel);
|
||||
m_btnComfirm.onClick.AddListener(OnCommandConfirm);
|
||||
if (m_btnCancle != null)
|
||||
m_btnCancle.onClick.AddListener(OnCommandCancel);
|
||||
if (m_btnClose != null)
|
||||
m_btnClose.onClick.AddListener(OnCommandCancel);
|
||||
}
|
||||
|
||||
public override void OnEnable()
|
||||
@@ -85,22 +79,70 @@ namespace BrewMonster.UI
|
||||
ClearHighlight();
|
||||
}
|
||||
|
||||
#region Double-Click
|
||||
private void RegisterDoubleClickOnPetSlot(Button button, int slotIndex)
|
||||
#region Double-Click and Drag on Pet Slot
|
||||
|
||||
private void RegisterTargetSlotEvents(Transform target)
|
||||
{
|
||||
if(button == null)
|
||||
if (target == null)
|
||||
return;
|
||||
|
||||
var image = target.GetComponent<Image>();
|
||||
if (image != null)
|
||||
{
|
||||
image.raycastTarget = true;
|
||||
}
|
||||
|
||||
var trigger = target.GetComponent<EventTrigger>();
|
||||
if (trigger == null)
|
||||
trigger = target.gameObject.AddComponent<EventTrigger>();
|
||||
trigger.triggers.Clear();
|
||||
|
||||
var clickEntry = new EventTrigger.Entry { eventID = EventTriggerType.PointerClick };
|
||||
clickEntry.callback.AddListener((data) => { OnTargetSlotClick((PointerEventData)data); });
|
||||
trigger.triggers.Add(clickEntry);
|
||||
|
||||
var dropEntry = new EventTrigger.Entry { eventID = EventTriggerType.Drop };
|
||||
dropEntry.callback.AddListener((data) => { OnDropPetToTarget((PointerEventData)data); });
|
||||
trigger.triggers.Add(dropEntry);
|
||||
}
|
||||
|
||||
private void OnTargetSlotClick(PointerEventData eventData)
|
||||
{
|
||||
// Single click - clear the pet and return to slot
|
||||
if (m_pCurrentPet != null && m_nSlot >= 0)
|
||||
{
|
||||
BMLogger.Log("DlgPetRec: Single click on target slot - returning pet to slot");
|
||||
ClearPet();
|
||||
UpdatePetSlotUI();
|
||||
}
|
||||
}
|
||||
|
||||
private void RegisterPetSlotEvents(Button button, int slotIndex)
|
||||
{
|
||||
if (button == null)
|
||||
return;
|
||||
|
||||
var trigger = button.GetComponent<EventTrigger>();
|
||||
if(trigger == null)
|
||||
if (trigger == null)
|
||||
trigger = button.gameObject.AddComponent<EventTrigger>();
|
||||
|
||||
trigger.triggers.RemoveAll(e=> e.eventID == EventTriggerType.PointerClick);
|
||||
trigger.triggers.Clear();
|
||||
|
||||
var entry = new EventTrigger.Entry
|
||||
{ eventID = EventTriggerType.PointerClick };
|
||||
var clickEntry = new EventTrigger.Entry { eventID = EventTriggerType.PointerClick };
|
||||
clickEntry.callback.AddListener((data) => { OnPetSlotClick(slotIndex, (PointerEventData)data); });
|
||||
trigger.triggers.Add(clickEntry);
|
||||
|
||||
entry.callback.AddListener((data) => { OnPetSlotClick(slotIndex, (PointerEventData)data); });
|
||||
var beginDragEntry = new EventTrigger.Entry { eventID = EventTriggerType.BeginDrag };
|
||||
beginDragEntry.callback.AddListener((data) => { OnBeginDragPet(slotIndex, (PointerEventData)data); });
|
||||
trigger.triggers.Add(beginDragEntry);
|
||||
|
||||
var dragEntry = new EventTrigger.Entry { eventID = EventTriggerType.Drag };
|
||||
dragEntry.callback.AddListener((data) => { OnDragPet(slotIndex, (PointerEventData)data); });
|
||||
trigger.triggers.Add(dragEntry);
|
||||
|
||||
var endDragEntry = new EventTrigger.Entry { eventID = EventTriggerType.EndDrag };
|
||||
endDragEntry.callback.AddListener((data) => { OnEndDragPet(slotIndex, (PointerEventData)data); });
|
||||
trigger.triggers.Add(endDragEntry);
|
||||
}
|
||||
|
||||
private void OnPetSlotClick(int slotIndex, PointerEventData eventData)
|
||||
@@ -109,7 +151,7 @@ namespace BrewMonster.UI
|
||||
if (m_lastClickTime.ContainsKey(slotIndex))
|
||||
{
|
||||
float timeSinceLastClick = currentTime - m_lastClickTime[slotIndex];
|
||||
if(timeSinceLastClick <= m_doubleClickTime)
|
||||
if (timeSinceLastClick <= m_doubleClickTime)
|
||||
{
|
||||
// Double-click detected
|
||||
OnPetSlotDoubleClick(slotIndex);
|
||||
@@ -130,41 +172,89 @@ namespace BrewMonster.UI
|
||||
}
|
||||
|
||||
SetPet(slotIndex);
|
||||
UpdatePetSlotUI();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Drag and Drop
|
||||
private void RegisterDragOnPetSlot(Button button, int slotIndex)
|
||||
|
||||
private void OnBeginDragPet(int slotIndex, PointerEventData eventData)
|
||||
{
|
||||
if(button == null)
|
||||
var petData = GetPetSlot(slotIndex);
|
||||
if (petData == null)
|
||||
{
|
||||
BMLogger.LogWarning($"DlgPetRec: No pet in slot {slotIndex} to drag");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var trigger = button.GetComponent<EventTrigger>();
|
||||
if(trigger == null)
|
||||
trigger = button.gameObject.AddComponent<EventTrigger>();
|
||||
// Don't allow dragging active or selected pets
|
||||
var host = CECGameRun.Instance?.GetHostPlayer();
|
||||
if (host != null)
|
||||
{
|
||||
var petCorral = host.GetPetCorral();
|
||||
if (petCorral != null)
|
||||
{
|
||||
bool isActive = petCorral.GetActivePetIndex() == slotIndex;
|
||||
bool isSelected = (m_nSlot == slotIndex && m_pCurrentPet != null);
|
||||
|
||||
// Begin drag
|
||||
var beginDragEntry = new EventTrigger.Entry { eventID = EventTriggerType.BeginDrag };
|
||||
beginDragEntry.callback.AddListener((data) => { OnBeginDragPet(slotIndex, (PointerEventData)data); });
|
||||
trigger.triggers.Add(beginDragEntry);
|
||||
if (isActive || isSelected)
|
||||
{
|
||||
BMLogger.Log($"DlgPetRec: Cannot drag active or selected pet from slot {slotIndex}");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//End drag
|
||||
var endDragEntry = new EventTrigger.Entry { eventID = EventTriggerType.EndDrag };
|
||||
endDragEntry.callback.AddListener((data) => { OnEndDragPet(slotIndex, (PointerEventData)data); });
|
||||
trigger.triggers.Add(endDragEntry);
|
||||
// Create dragged icon
|
||||
var buttonImage = m_pBtn_PetSlots[slotIndex].GetComponent<Image>();
|
||||
if (buttonImage != null && buttonImage.sprite != null)
|
||||
{
|
||||
Canvas canvas = GetComponentInParent<Canvas>();
|
||||
if (canvas == null)
|
||||
{
|
||||
BMLogger.LogError("DlgPetRec: No parent canvas found for dragging");
|
||||
return;
|
||||
}
|
||||
|
||||
// Drag
|
||||
var dragEntry = new EventTrigger.Entry { eventID = EventTriggerType.Drag };
|
||||
dragEntry.callback.AddListener((data) => { OnDragPet(slotIndex, (PointerEventData)data); });
|
||||
trigger.triggers.Add(dragEntry);
|
||||
m_draggedIcon = new GameObject("DraggedIcon");
|
||||
m_draggedIcon.transform.SetParent(canvas.transform, false);
|
||||
m_draggedIcon.transform.SetAsLastSibling();
|
||||
|
||||
var canvasGroup = m_draggedIcon.AddComponent<CanvasGroup>();
|
||||
canvasGroup.alpha = 0.6f;
|
||||
canvasGroup.blocksRaycasts = false;
|
||||
|
||||
var image = m_draggedIcon.AddComponent<Image>();
|
||||
image.sprite = buttonImage.sprite;
|
||||
image.raycastTarget = false;
|
||||
|
||||
var rectTransform = m_draggedIcon.GetComponent<RectTransform>();
|
||||
rectTransform.sizeDelta = new Vector2(100, 100);
|
||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(
|
||||
canvas.transform as RectTransform,
|
||||
eventData.position,
|
||||
canvas.worldCamera,
|
||||
out Vector2 localPoint
|
||||
);
|
||||
rectTransform.localPosition = localPoint;
|
||||
|
||||
BMLogger.Log($"DlgPetRec: Started dragging pet from slot {slotIndex}");
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDragPet(int slotIndex, PointerEventData eventData)
|
||||
{
|
||||
if (m_draggedIcon != null)
|
||||
{
|
||||
m_draggedIcon.transform.position = eventData.position;
|
||||
Canvas canvas = GetComponentInParent<Canvas>();
|
||||
if (canvas != null)
|
||||
{
|
||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(
|
||||
canvas.transform as RectTransform,
|
||||
eventData.position,
|
||||
canvas.worldCamera,
|
||||
out Vector2 localPoint
|
||||
);
|
||||
m_draggedIcon.transform.localPosition = localPoint;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -174,101 +264,65 @@ namespace BrewMonster.UI
|
||||
{
|
||||
Destroy(m_draggedIcon);
|
||||
m_draggedIcon = null;
|
||||
BMLogger.Log($"DlgPetRec: Ended dragging pet from slot {slotIndex}");
|
||||
}
|
||||
m_draggedSlotIndex = -1;
|
||||
}
|
||||
|
||||
private void OnBeginDragPet(int slotIndex, PointerEventData eventData)
|
||||
{
|
||||
var petData = GetPetSlot(slotIndex);
|
||||
if (petData == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
m_draggedSlotIndex = slotIndex;
|
||||
m_draggedIcon = new GameObject("DraggedPetIcon");
|
||||
m_draggedIcon.transform.SetParent(transform.root, false);
|
||||
|
||||
var canvas = m_draggedIcon.AddComponent<Canvas>();
|
||||
canvas.overrideSorting = true;
|
||||
canvas.sortingOrder = 1000;
|
||||
|
||||
var image = m_draggedIcon.AddComponent<Image>();
|
||||
if(m_pBtn_PetSlots != null)
|
||||
{
|
||||
var slotTransform = m_pBtn_PetSlots[slotIndex].transform;
|
||||
var buttonImage = m_pBtn_PetSlots[slotIndex].GetComponent<Image>();
|
||||
|
||||
if (buttonImage != null && buttonImage.sprite != null)
|
||||
{
|
||||
image.sprite = buttonImage.sprite;
|
||||
}
|
||||
}
|
||||
image.raycastTarget = false;
|
||||
var canvasGroup = m_draggedIcon.AddComponent<CanvasGroup>();
|
||||
canvasGroup.alpha = 0.6f;
|
||||
canvasGroup.blocksRaycasts = false;
|
||||
|
||||
var rectTransform = m_draggedIcon.GetComponent<RectTransform>();
|
||||
rectTransform.sizeDelta = new Vector2(50, 50); // Set default size, can be adjusted based on actual icon size
|
||||
rectTransform.position = eventData.position;
|
||||
}
|
||||
|
||||
private void RegisterDrop(Transform target, Action<PointerEventData> callback)
|
||||
{
|
||||
if(target == null)
|
||||
return;
|
||||
|
||||
var trigger = target.GetComponent<EventTrigger>();
|
||||
if(trigger == null)
|
||||
trigger = target.gameObject.AddComponent<EventTrigger>();
|
||||
|
||||
trigger.triggers.RemoveAll(e=> e.eventID == EventTriggerType.Drop);
|
||||
var entry = new EventTrigger.Entry { eventID = EventTriggerType.Drop };
|
||||
entry.callback.AddListener((data) => { callback((PointerEventData)data); });
|
||||
trigger.triggers.Add(entry);
|
||||
}
|
||||
|
||||
private void OnDropPetToTarget(PointerEventData eventData)
|
||||
{
|
||||
if (m_draggedSlotIndex < 0)
|
||||
return;
|
||||
|
||||
var petData = GetPetSlot(m_draggedSlotIndex);
|
||||
if(petData == null)
|
||||
return;
|
||||
|
||||
SetPet(m_draggedSlotIndex);
|
||||
}
|
||||
#endregion
|
||||
|
||||
private void RegisterClick(Transform target, Action<PointerEventData> callback)
|
||||
|
||||
#region Drag and Drop Logic
|
||||
|
||||
private void OnDropPetToTarget(PointerEventData eventData)
|
||||
{
|
||||
if(target == null)
|
||||
return;
|
||||
var trigger = target.GetComponent<EventTrigger>();
|
||||
if(trigger == null)
|
||||
trigger = target.gameObject.AddComponent<EventTrigger>();
|
||||
|
||||
var existingClick = trigger.triggers.Find(e => e.eventID == EventTriggerType.PointerClick);
|
||||
if(existingClick != null)
|
||||
trigger.triggers.Remove(existingClick);
|
||||
|
||||
var entry = new EventTrigger.Entry { eventID = EventTriggerType.PointerClick };
|
||||
entry.callback.AddListener((data) => { callback((PointerEventData)data); });
|
||||
trigger.triggers.Add(entry);
|
||||
}
|
||||
|
||||
private void OnClickTargetSlot(PointerEventData eventData)
|
||||
{
|
||||
if (m_pCurrentPet != null)
|
||||
// Get the dragged pet slot index from the event
|
||||
var draggedObject = eventData.pointerDrag;
|
||||
if (draggedObject == null)
|
||||
{
|
||||
ClearPet();
|
||||
BMLogger.LogWarning("DlgPetRec: No dragged object found");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnShowDialog(){
|
||||
// Find which pet slot was dragged
|
||||
for (int i = 0; i < PETSLOT_MAX; i++)
|
||||
{
|
||||
if (m_pBtn_PetSlots[i] != null && m_pBtn_PetSlots[i].gameObject == draggedObject)
|
||||
{
|
||||
var petData = GetPetSlot(i);
|
||||
if (petData == null)
|
||||
{
|
||||
BMLogger.LogWarning($"DlgPetRec: No pet in dragged slot {i}");
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if this pet can be selected
|
||||
var host = CECGameRun.Instance?.GetHostPlayer();
|
||||
if (host != null)
|
||||
{
|
||||
var petCorral = host.GetPetCorral();
|
||||
if (petCorral != null)
|
||||
{
|
||||
bool isActive = petCorral.GetActivePetIndex() == i;
|
||||
if (isActive)
|
||||
{
|
||||
BMLogger.Log($"DlgPetRec: Cannot select active pet from slot {i}");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BMLogger.Log($"DlgPetRec: Pet from slot {i} dropped to target");
|
||||
SetPet(i);
|
||||
UpdatePetSlotUI();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
BMLogger.LogWarning("DlgPetRec: Could not find source pet slot for dragged object");
|
||||
}
|
||||
#endregion
|
||||
|
||||
private void OnShowDialog()
|
||||
{
|
||||
ClearPet();
|
||||
LoadPetSlotFromCorral();
|
||||
}
|
||||
@@ -285,22 +339,24 @@ namespace BrewMonster.UI
|
||||
m_pTxt_Gold.text = "0";
|
||||
|
||||
ClearSlotIcon(m_pImg_Item);
|
||||
ClearHighlight();
|
||||
UpdatePetSlotUI();
|
||||
}
|
||||
|
||||
|
||||
private void OnCommandConfirm(){
|
||||
|
||||
private void OnCommandConfirm()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
private void SetPet(int nSlot){
|
||||
private void SetPet(int nSlot)
|
||||
{
|
||||
var host = CECGameRun.Instance.GetHostPlayer();
|
||||
if(host == null)
|
||||
if (host == null)
|
||||
return;
|
||||
var petCorral = host.GetPetCorral();
|
||||
if(petCorral == null)
|
||||
if (petCorral == null)
|
||||
return;
|
||||
|
||||
|
||||
if (petCorral.GetActivePetIndex() == nSlot)
|
||||
{
|
||||
//GetGameUIMan()->MessageBox("", GetStringFromTable(820), MB_OK,
|
||||
@@ -309,22 +365,22 @@ namespace BrewMonster.UI
|
||||
}
|
||||
|
||||
var pDB = ElementDataManProvider.GetElementDataMan();
|
||||
if(pDB == null)
|
||||
if (pDB == null)
|
||||
return;
|
||||
|
||||
var petData = petCorral.GetPetData(nSlot);
|
||||
if(petData != null)
|
||||
if (petData != null)
|
||||
{
|
||||
DATA_TYPE dataType = DATA_TYPE.DT_INVALID;
|
||||
|
||||
var petEssenceData = pDB.get_data_ptr((uint)petData.GetTemplateID(), ID_SPACE.ID_SPACE_ESSENCE, ref dataType);
|
||||
if(petEssenceData != null && dataType == DATA_TYPE.DT_PET_ESSENCE)
|
||||
if (petEssenceData != null && dataType == DATA_TYPE.DT_PET_ESSENCE)
|
||||
{
|
||||
var petEssence = (PET_ESSENCE)petEssenceData;
|
||||
dataType = DATA_TYPE.DT_INVALID;
|
||||
var eggEssenceData = pDB.get_data_ptr((uint)petData.GetEggID(), ID_SPACE.ID_SPACE_ESSENCE, ref dataType);
|
||||
|
||||
if (eggEssenceData != null && dataType == DATA_TYPE.DT_PET_ESSENCE)
|
||||
if (eggEssenceData != null && dataType == DATA_TYPE.DT_PET_EGG_ESSENCE)
|
||||
{
|
||||
var eggEssence = (PET_EGG_ESSENCE)eggEssenceData;
|
||||
m_pCurrentPet = petData;
|
||||
@@ -346,21 +402,26 @@ namespace BrewMonster.UI
|
||||
private void UpdatePetUI(CECPetData petData, PET_ESSENCE petEssence, PET_EGG_ESSENCE eggEssence)
|
||||
{
|
||||
if (petData == null || eggEssence.id == 0)
|
||||
{
|
||||
BMLogger.LogWarning("DlgPetRec: UpdatePetUI - Invalid pet data or egg essence");
|
||||
return;
|
||||
}
|
||||
|
||||
if(m_pTxt_Name != null)
|
||||
if (m_pTxt_Name != null)
|
||||
m_pTxt_Name.text = petData.GetName();
|
||||
|
||||
if(m_pTxt_Gold != null)
|
||||
if (m_pTxt_Gold != null)
|
||||
m_pTxt_Gold.text = eggEssence.money_restored.ToString();
|
||||
|
||||
if (m_pImg_Item != null)
|
||||
{
|
||||
string iconPath = petEssence.FileIcon;
|
||||
BMLogger.Log($"DlgPetRec: Loading icon from path: {iconPath}");
|
||||
|
||||
var sprite = LoadPetIconSprite(iconPath);
|
||||
if(sprite != null)
|
||||
if (sprite != null)
|
||||
{
|
||||
BMLogger.Log($"DlgPetRec: Sprite loaded successfully: {sprite.name}");
|
||||
m_pImg_Item.sprite = sprite;
|
||||
m_pImg_Item.enabled = true;
|
||||
m_pImg_Item.color = Color.white;
|
||||
@@ -368,6 +429,7 @@ namespace BrewMonster.UI
|
||||
}
|
||||
else
|
||||
{
|
||||
BMLogger.LogWarning($"DlgPetRec: Failed to load sprite from path: {iconPath}");
|
||||
ClearSlotIcon(m_pImg_Item);
|
||||
}
|
||||
}
|
||||
@@ -384,13 +446,13 @@ namespace BrewMonster.UI
|
||||
|
||||
private Sprite LoadPetIconSprite(string iconPath)
|
||||
{
|
||||
if(string.IsNullOrEmpty(iconPath))
|
||||
if (string.IsNullOrEmpty(iconPath))
|
||||
return null;
|
||||
|
||||
try
|
||||
{
|
||||
string fileName = Path.GetFileNameWithoutExtension(iconPath);
|
||||
if(string.IsNullOrEmpty(fileName))
|
||||
if (string.IsNullOrEmpty(fileName))
|
||||
return null;
|
||||
|
||||
fileName = fileName.ToLower();
|
||||
@@ -413,11 +475,11 @@ namespace BrewMonster.UI
|
||||
Array.Clear(m_petSlots, 0, m_petSlots.Length);
|
||||
|
||||
var host = CECGameRun.Instance?.GetHostPlayer();
|
||||
if(host == null)
|
||||
if (host == null)
|
||||
return;
|
||||
|
||||
var petCorral = host.GetPetCorral();
|
||||
if(petCorral == null)
|
||||
if (petCorral == null)
|
||||
return;
|
||||
|
||||
for (int i = 0; i < PETSLOT_MAX; i++)
|
||||
@@ -445,6 +507,11 @@ namespace BrewMonster.UI
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (m_draggedIcon != null)
|
||||
{
|
||||
Destroy(m_draggedIcon);
|
||||
m_draggedIcon = null;
|
||||
}
|
||||
ClearPet();
|
||||
}
|
||||
|
||||
@@ -488,8 +555,9 @@ namespace BrewMonster.UI
|
||||
|
||||
bool isActive = petCorral.GetActivePetIndex() == i;
|
||||
bool isDead = petData.GetHPFactor() <= 0.0f;
|
||||
bool isSelected = (m_nSlot == i && m_pCurrentPet != null);
|
||||
|
||||
if (isActive || isDead)
|
||||
if (isActive || isDead || isSelected)
|
||||
{
|
||||
buttonImage.color = Color.gray;
|
||||
}
|
||||
@@ -511,7 +579,8 @@ namespace BrewMonster.UI
|
||||
}
|
||||
}
|
||||
bool isActivePet = petCorral.GetActivePetIndex() == i;
|
||||
m_pBtn_PetSlots[i].interactable = !isActivePet;
|
||||
bool isSelectedPet = (m_nSlot == i && m_pCurrentPet != null);
|
||||
m_pBtn_PetSlots[i].interactable = !isActivePet && !isSelectedPet;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -533,6 +602,5 @@ namespace BrewMonster.UI
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user