Esempio n. 1
0
    public override void TakeAction(AgentHandler agentScript)
    {
        GameObject projectileToFire;
        Projectile projectileScript;

        switch (agentScript.SelectedWeapon)
        {
        case WeaponSelected.MachineGun:
            projectileToFire = PoolSystem.Instance.GetObjectFromPool(agentScript.BulletPrefab, argShouldExpandPool: true, argShouldCreateNonExistingPool: true);
            projectileScript = projectileToFire.GetComponent <Projectile>();

            projectileScript.SetupProjectile(1.0f, 15.0f, agentScript.transform.position);
            projectileScript.LaunchProjectile((GameConstants.Instance.PlayerObject.transform.position - agentScript.transform.position).normalized, null, false);

            agentScript.ChangeAgentEnergyBy(-agentScript.GetMachineGunEnergyCost());
            break;

        case WeaponSelected.RocketLauncher:
            projectileToFire = PoolSystem.Instance.GetObjectFromPool(agentScript.BulletPrefab, argShouldExpandPool: true, argShouldCreateNonExistingPool: true);
            projectileScript = projectileToFire.GetComponent <Projectile>();

            projectileScript.SetupProjectile(1.0f, 15.0f, agentScript.transform.position);
            projectileScript.LaunchProjectile((GameConstants.Instance.PlayerObject.transform.position - agentScript.transform.position).normalized, GameConstants.Instance.PlayerObject, true);

            agentScript.ChangeAgentEnergyBy(-agentScript.GetRocketLauncherEnergyCost());
            break;

        default:
            break;
        }

        agentScript.SetFireProjectileTimer(0.0f);
    }
    public override void TakeAction(AgentHandler agentScript)
    {
        GameObject projectileToFire = PoolSystem.Instance.GetObjectFromPool(agentScript.RocketPrefab, argShouldExpandPool: true, argShouldCreateNonExistingPool: true);
        Projectile projectileScript = projectileToFire.GetComponent <Projectile>();

        projectileScript.SetupProjectile(5.0f, 12.0f, agentScript.transform.position);
        projectileScript.LaunchProjectile((GameConstants.Instance.PlayerObject.transform.position - agentScript.transform.position).normalized, GameConstants.Instance.PlayerObject, true);

        agentScript.ChangeAgentEnergyBy(-agentScript.GetRocketLauncherEnergyCost());

        agentScript.SetFireProjectileTimer(0.0f);
    }
    public override void MakeDecision(AgentHandler agentScript)
    {
        if (agentScript.GetEnergyRegenTimer() >= agentScript.TimeToRegenEnergy)
        {
            agentScript.ChangeAgentEnergyBy(1);
            agentScript.SetEnergyRegenTimer(0.0f);
        }

        Vector3 directionToPlayer = GameConstants.Instance.PlayerObject.transform.position - agentScript.transform.position;

        if (directionToPlayer.magnitude <= agentScript.GetAttackRange())
        {
            RunChildDecision(agentScript, true);
        }
        else
        {
            RunChildDecision(agentScript, false);
        }
    }
Esempio n. 4
0
 public override void TakeAction(AgentHandler agentScript)
 {
     agentScript.ChangeAgentEnergyBy(1);
     agentScript.SetEnergyRegenTimer(0.0f);
 }