public override void Execute() { MovementController mc = initiator.GetComponent <MovementController>(); ObjectInfo oi = initiator.GetComponent <ObjectInfo>(); switch (type) { case ActionType.HARVEST: { mc.Move(targetObject.transform.position); oi.status = UnitStatus.GATHERING; } break; case ActionType.ATTACK: { mc.Move(targetObject.transform.position); oi.status = UnitStatus.ATTACKING; oi.GetComponent <DamageDealer>().SetTarget(targetObject.GetComponent <Destroyable>()); } break; default: Debug.LogError("No such type of action"); break; } }
void SetPrimary(ObjectInfo objectInfo) { Debug.Log("primary selected"); if (primaryObject != null && primaryObject != objectInfo) //if we already have a primary, clear the unit display { Debug.Log("we still have a primary"); ReleaseUI(); } primaryObject = objectInfo; taskManagerSelected = objectInfo.GetComponent <TaskManager>(); if (FindObjectOfType <GameController>().UIon) { taskQueuePanelControl.ClearActionDisplay(); taskQueuePanelControl.DisplayActions(taskManagerSelected); BindUI(objectInfo.gameObject); Debug.Log("Unit Selected Trigger Released"); } }