private void RepairShip() { Collider2D hit = Physics2D.OverlapCircle(transform.position, radius, LayerMask.GetMask("Ship")); if (hit == null) { return; } Debug.DrawRay(transform.position, hit.transform.position - transform.position, Color.green, 1.0f); float amount = repairSpeed * Time.deltaTime; if (Managers.PlayerResources.minerals >= amount) { Managers.PlayerResources.minerals -= amount; Managers.PlayerResources.shipRepairs += amount / 2.0f; MineralParticle repairParticle = Instantiate(repairParticlePrefab, transform.position, Quaternion.identity); repairParticle.MoveTowards(hit.transform); } else { Debug.Log("NOT ENOUGH MINERALS!"); } }
private void MouseRepairShip() { Vector3 mouseWorldPos = Camera.main.ScreenToWorldPoint(Input.mousePosition); Debug.DrawLine(transform.position, mouseWorldPos, Color.yellow); if (Vector2.Distance(mouseWorldPos, transform.position) < radius) { Collider2D shipCollider = Physics2D.OverlapPoint(mouseWorldPos, LayerMask.GetMask("Ship")); if (shipCollider == null) { return; } float amount = repairSpeed * Time.deltaTime; if (Managers.PlayerResources.minerals >= amount) { Debug.Log("Repairing ship.."); Managers.PlayerResources.minerals -= amount; Managers.PlayerResources.shipRepairs += amount / 2.0f; MineralParticle repairParticle = Instantiate(repairParticlePrefab, transform.position, Quaternion.identity); repairParticle.MoveTowards(shipCollider.transform); } } }