fix: attack trigger entered

This commit is contained in:
Bragin Stepan
2026-03-06 21:17:51 +05:00
parent 51fd4cdc8d
commit 1356b8bfb2
4 changed files with 12 additions and 5 deletions

View File

@@ -2,7 +2,6 @@
using System.Collections.Generic;
using _Project.Develop.Runtime.Entities;
using _Project.Develop.Runtime.Logic.Gameplay.Features.AI.States;
using _Project.Develop.Runtime.Logic.Gameplay.Features.Selectors;
using _Project.Develop.Runtime.Utilities.Conditions;
using _Project.Develop.Runtime.Utils.InputManagement;
using _Project.Develop.Runtime.Utils.ReactiveManagement;
@@ -56,6 +55,7 @@ namespace _Project.Develop.Runtime.Logic.Gameplay.Features.AI
AIParallelState parallelState = new (findTargetState, teleportStateMachine);
AIStateMachine rootStateMachine = new ();
rootStateMachine.AddState(parallelState);
StateMachineBrain brain = new (rootStateMachine);
@@ -157,9 +157,10 @@ namespace _Project.Develop.Runtime.Logic.Gameplay.Features.AI
return stateMachine;
}
// На сколько хорошая идея дробить на маленькие стейтмашины?
private AIStateMachine CreateSteeringAttackStateMachine(Entity entity)
{
AIStateMachine steeringState = CreateSteeringInputStateMachine(entity);
AIStateMachine steeringState = CreateSteeringInputStateMachine(entity); // просто это уже 3 по вложенности
PlayerInputAttackTriggerState attackTriggerState = new (entity, _playerInput);
AIParallelState parallelState = new (steeringState, attackTriggerState);

View File

@@ -13,8 +13,12 @@ namespace _Project.Develop.Runtime.Logic.Gameplay.Features.AI.States
public PlayerInputAttackTriggerState(Entity entity, IPlayerInput playerInput)
{
_playerInput = playerInput;
_request = entity.StartAttackRequest;
}
public override void Enter()
{
base.Enter();
_playerInput.Attack.Enter += OnAttack;
}

View File

@@ -30,8 +30,8 @@ namespace _Project.Develop.Runtime.Logic.Gameplay.Features
_hero = _entitiesFactory.CreateHero(Vector3.zero);
_brainsFactory.CreateMainHeroBrain(_hero);
// _enemy = _entitiesFactory.CreateTeleportWizard(Vector3.zero + Vector3.forward * 5);
// _brainsFactory.CreateDangerWizardBrain(_enemy, new LowestHealthTargetSelector(_enemy));
_enemy = _entitiesFactory.CreateTeleportWizard(Vector3.zero + Vector3.forward * 5);
_brainsFactory.CreateDangerWizardBrain(_enemy, new LowestHealthTargetSelector(_enemy));
}
public void Run()