public List <UnitSlot> GetUnitSlots(GarrisonSlot garSlot) { List <UnitSlot> unitSlots = new List <UnitSlot>(); List <GameObject> objs = Utility.GetChildren(garSlot.content.transform); foreach (GameObject obj in objs) { if (obj.GetComponent <UnitSlot>()) { unitSlots.Add(obj.GetComponent <UnitSlot>()); } } return(unitSlots); }
public void OnCommanderpressed(Commander commander, CommanderButton button) { gameObject.SetActive(true); if (selectedCommanders.Contains(commander)) { //you cound move the logic here from CommanderButton with an out bool success } else { GameObject slotObj = Instantiate(garrisonSlotObj, panel.transform); GarrisonSlot garrisonSlot = slotObj.GetComponent <GarrisonSlot>(); garrisonSlot.commanderButton = button; selectedCommanders.Add(commander); garrisonSlot.SetData(commander); } }
public void OnEndDrag(PointerEventData eventData) { List <RaycastResult> results = new List <RaycastResult>(); caster.Raycast(eventData, results); foreach (RaycastResult result in results) { GarrisonSlot garSlot = result.gameObject.GetComponent <GarrisonSlot>(); if (garSlot != null) { AddToNewSlot(garSlot); slot.DestroySelf(); return; } } //This is for when you drop it outside ReturnToParent(); UnSetMovedColor(); GarrisonSlot gSlot = (GarrisonSlot)Utility.GetFirstComponentInParents(gameObject, typeof(GarrisonSlot)); gSlot.SetTroopsList(); }
public void AddToNewSlot(GarrisonSlot garSlot) { slot.unit.Commander.RemoveUnit(slot.unit); garSlot.OnAddUnitSlot(slot); SetMovedColor(); }