protected override void Attack() { if (target == null) { state = UNIT_STATE.IDLE; return; } if (path.Count <= 0) { ResourceObject item = target.GetComponent <ResourceObject>(); if (item != null && actionDelayTimer <= 0.0f) { PlaySFX("NomadStrategyHarvestingMachinery"); ResourceManager.Instance.AddResource(item.resourceType, item.Gather()); actionDelayTimer = actionDelayDuration; } if (target.isDead) { state = UNIT_STATE.IDLE; } return; } Vector3 direction = path.Peek().transform.position + new Vector3(1.25f, 1.25f) - transform.position; if (direction.x < 0.0f) { spriteRenderer.flipX = true; } else if (direction.x > 0.0f) { spriteRenderer.flipX = false; } lastTile = currentTile; if (direction.sqrMagnitude < 0.01f) { currentTile.UnitExitTile(this.gameObject); currentTile = path.Peek(); currentTile.UnitEnterTile(this.gameObject); path.Dequeue(); } Vector3 newPosition = transform.position + direction.normalized * moveSpeed * Time.deltaTime; transform.position = newPosition; }