private bool CanGetPowerUp(out Transform targetToFollow) { if (slot1 != null && slot2 != null) { targetToFollow = null; return(false); } List <PowerUpBox> powerUpBoxesWithinDistance = allPowerUpBoxes.Where(powerUp => { return(Vector3.Distance(transform.position, powerUp.transform.position) < m_distanceToCheckForPowerUps && !powerUp.IsDisabled); }).ToList(); if (powerUpBoxesWithinDistance.Count == 0) { targetToFollow = null; return(false); } PowerUpBox closestBox = powerUpBoxesWithinDistance[0]; for (int i = 1; i < powerUpBoxesWithinDistance.Count; i++) { if (Vector3.Distance(transform.position, closestBox.transform.position) > Vector3.Distance(transform.position, powerUpBoxesWithinDistance[i].transform.position)) { closestBox = powerUpBoxesWithinDistance[i]; } } targetToFollow = closestBox.transform; return(true); }
private void GrabbingPowerUpState() { PowerUpBox boxBeingGrabbed = target.GetComponent <PowerUpBox>(); Transform newTarget; if (CanGetCrown(out newTarget)) { target = newTarget; ChangeState(EAIState.GRABBING_CROWN); RunPathCalculation(); return; } else if (m_isBully && CanAttackOtherCompetitor(out newTarget) && HasSpentEnoughTimeOnCurrentState()) { target = newTarget; ChangeState(EAIState.ATTACKING_PLAYER); return; } // Performing this check because the box can be disabled // maybe someone else grabbed the box while I was on my way to it :( // maybe ME got the box :) if (boxBeingGrabbed == null || boxBeingGrabbed.IsDisabled || (slot1 != null && slot2 != null)) { target = null; ChangeState(EAIState.FINDING_OBJECTIVE); return; } MoveTowardsCorner(); }
void Update() { box = transform.GetComponent <PowerUpBox>(); if (Input.GetKeyDown(KeyCode.Alpha1)) { box.itemNumber = 1; } else if (Input.GetKeyDown(KeyCode.Alpha2)) { box.itemNumber = 2; } else if (Input.GetKeyDown(KeyCode.Alpha3)) { box.itemNumber = 3; } else if (Input.GetKeyDown(KeyCode.Alpha4)) { box.itemNumber = 4; } else if (Input.GetKeyDown(KeyCode.Alpha5)) { box.itemNumber = 5; } else if (Input.GetKeyDown(KeyCode.Alpha6)) { box.itemNumber = 6; } else if (Input.GetKeyDown(KeyCode.Alpha7)) { box.itemNumber = 7; } else if (Input.GetKeyDown(KeyCode.Alpha8)) { box.itemNumber = 8; } else if (Input.GetKeyDown(KeyCode.Alpha9)) { box.itemNumber = 9; } else if (Input.GetKeyDown(KeyCode.Alpha0)) { box.itemNumber = 10; } else if (Input.GetKeyDown(KeyCode.Escape)) { box.itemNumber = 0; } }