|
|
|
using System;
|
|
|
|
using Unity.Netcode;
|
|
|
|
using UnityEngine;
|
|
|
|
using Random = UnityEngine.Random;
|
|
|
|
|
|
|
|
namespace Game {
|
|
|
|
public class Ball : NetworkBehaviour {
|
|
|
|
public Rigidbody2D Rb { get; private set; }
|
|
|
|
|
|
|
|
private CircleCollider2D Collider { get; set; }
|
|
|
|
|
|
|
|
public float Radius {
|
|
|
|
get => transform.localScale.x * Collider.radius;
|
|
|
|
set => transform.localScale = new Vector3(1, 1, 1) * value * 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
public bool IsAlive { get; private set; } = true;
|
|
|
|
private void OnEnable() {
|
|
|
|
Rb = GetComponent<Rigidbody2D>();
|
|
|
|
Collider = GetComponent<CircleCollider2D>();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void Start() {
|
|
|
|
Rb.velocity = new Vector2(0, 25);
|
|
|
|
Rb.position = new Vector2(Random.Range(-2, 2), 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void FixedUpdate() {
|
|
|
|
//TODO remove this and use triggers for death zone
|
|
|
|
if (Rb.position.y > Dimensions.Singleton.top || Rb.position.y < Dimensions.Singleton.bottom) {
|
|
|
|
IsAlive = false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|