Newer
Older
HardPoint-Project-Abertay-University-Unity3D / Assets / Scripts / FSM / Actions / ShootingAction.cs
@Rackday Rackday on 18 Aug 1000 bytes Project Added
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using static UnityEngine.GraphicsBuffer;

[CreateAssetMenu(menuName = "AI/Action/Shoot")]

public class ShootingAction : Action
{
    public override void Act(FiniteStateMachine fsm)
    {
        if (!fsm.dic.HasKey("WeaponScript")) fsm.dic.SetValue("WeaponScript", fsm.GetComponent<WeaponScript>());
        if (!fsm.dic.HasKey("weaponSelected")) fsm.dic.SetValue("weaponSelected", false);
        if (!(bool)fsm.dic.GetValue("weaponSelected"))
        {
            int i = Random.Range(0, (int)(fsm.dic.GetValue("WeaponScript") as WeaponScript).weapons.Count);
            (fsm.dic.GetValue("WeaponScript") as WeaponScript).currentWeapon = i;
            fsm.dic.SetValue("weaponSelected", true);
        }
        Vector3 dir = Vector3.Normalize(fsm.GetTarget().transform.position - fsm.transform.position);
        (fsm.dic.GetValue("WeaponScript") as WeaponScript).Shoot(dir);
    }
}