VladimirPirozhenko c7a0ad0f90 Added obstacles, started working on chunk generator
Added obstacles, updated pools, added extention for list, updated LaneSystem
2022-08-09 04:43:03 +03:00

61 lines
1.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
interface IObstacle
{
public void Impact();
}
[RequireComponent(typeof(BoxCollider))]
//[RequireComponent(typeof(Renderer))]
public class Obstacle : MonoBehaviour,IObstacle,IDamageDealer,IResettable
{
public BoxCollider Collider { get; private set; }
//private Renderer defaultRenderer;
//private Renderer obstacleRenderer;
private void Awake()
{
Collider = GetComponent<BoxCollider>();
//defaultRenderer = GetComponent<Renderer>();
//obstacleRenderer = defaultRenderer;
}
public void ResetToDefault()
{
//if (obstacleRenderer.material.color != defaultRenderer.material.color)
// obstacleRenderer.material.color = defaultRenderer.material.color;
//gameObject.transform.localRotation = Quaternion.identity;
//gameObject.transform.localScale = Vector3.one;
// gameObject.transform.localPosition = Vector3.zero;
gameObject.SetActive(false);
gameObject.transform.SetParent(null);
}
public void Impact()
{
//obstacleRenderer.material.color = Color.red;
gameObject.SetActive(false);
}
public void DealDamage(IDamageable target, int amount)
{
target.TakeDamage(amount);
}
}
public class Turret : MonoBehaviour, IObstacle, IDamageDealer, IResettable
{
public void DealDamage(IDamageable target, int amount)
{
target.TakeDamage(amount);
}
public void Impact()
{
gameObject.SetActive(true);
}
public void ResetToDefault()
{
gameObject.SetActive(true);
}
}