DyatelO aa96d8cac4 2.1 Молния отнимает 1000 HP, 3 выстрела без перезарядки, перезарядка 3 сек.
2.2 Лазерные лучи отнимают по 360 HP каждый выстрел, 6 выстрелов без перезарядки, перезарядка 2 сек.
2.4 У врагов случайным образом выбирается оружие.
2021-10-22 12:01:15 +03:00

67 lines
1.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SwitchWeapon : MonoBehaviour
{
public enum TypeOfWeapon
{
Bolt,
Laser,
Random
}
[SerializeField] private TypeOfWeapon _weaponType;
[SerializeField] private List<PlayerAction> _weaponlist = new List<PlayerAction>();
private PlayerState _playerState;
private AttackEnergyController _attackEnergiController; // = new AttackEnergyController();
//public float ResetTime { get { return _attackEnergiController.attackResetTime;} set {value = _attackEnergiController.attackResetTime; }}
private void Awake()
{
_attackEnergiController = GetComponent<AttackEnergyController>();
_playerState = GetComponent<PlayerState>();
ChangehWeapon(_weaponType);
}
private void ChangehWeapon(TypeOfWeapon weapon)
{
if(weapon == TypeOfWeapon.Bolt)
{
MakeWeapon(0);
}
if (weapon == TypeOfWeapon.Laser)
{
MakeWeapon(1);
}
if(weapon == TypeOfWeapon.Random)
{
MakeWeapon(Random.Range(0, _weaponlist.Count));
}
}
private void MakeWeapon(int weaponIndex)
{
_playerState.defaultAction = _weaponlist[weaponIndex];
if(weaponIndex == 0)
{
_attackEnergiController.attackResetTime = 3f;
_attackEnergiController.attackCost = 1f;
}
if(weaponIndex == 1)
{
_attackEnergiController.attackResetTime = 2f;
_attackEnergiController.attackCost = 0.5f;
}
}
}