Different events for taking a hit and a hit from your attack landing
This commit is contained in:
parent
b66a93d108
commit
127d382b29
@ -143,15 +143,21 @@ void UFFState::MovementModeChanged(EMovementMode PrevMovementMode, uint8 Previou
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void UFFState::Hit(const FFFStateContext& InStateContext)
|
void UFFState::AttackHit(const FHitResult& HitResult, const FFFStateContext& InStateContext)
|
||||||
{
|
{
|
||||||
OnHit(InStateContext);
|
OnAttackHit(HitResult, InStateContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void UFFState::Block(const FFFStateContext& InStateContext)
|
void UFFState::HitTaken(const FFFStateContext& InStateContext)
|
||||||
{
|
{
|
||||||
OnBlock(InStateContext);
|
OnHitTaken(InStateContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UFFState::BlockTaken(const FFFStateContext& InStateContext)
|
||||||
|
{
|
||||||
|
OnBlockTaken(InStateContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -207,15 +207,18 @@ public:
|
|||||||
virtual void MovementModeChanged(EMovementMode PrevMovementMode, uint8 PreviousCustomMode,
|
virtual void MovementModeChanged(EMovementMode PrevMovementMode, uint8 PreviousCustomMode,
|
||||||
EMovementMode NewMovementMode, uint8 NewCustomMode, const FFFStateContext& InStateContext);
|
EMovementMode NewMovementMode, uint8 NewCustomMode, const FFFStateContext& InStateContext);
|
||||||
|
|
||||||
|
// TODO: document
|
||||||
|
virtual void AttackHit(const FHitResult& HitResult, const FFFStateContext& InStateContext);
|
||||||
|
|
||||||
// TODO: document
|
// TODO: document
|
||||||
// TODO: call this callback when the avatar is hit
|
// TODO: call this callback when the avatar is hit
|
||||||
// TODO: pass in hitdata struct as well
|
// TODO: pass in hitdata struct as well
|
||||||
virtual void Hit(const FFFStateContext& InStateContext);
|
virtual void HitTaken(/*const FHitParams& HitParams,*/ const FFFStateContext& InStateContext);
|
||||||
|
|
||||||
// TODO: document
|
// TODO: document
|
||||||
// TODO: call this callback when the avatar blocks a hit
|
// TODO: call this callback when the avatar blocks a hit
|
||||||
// TODO: pass in hitdata struct as well
|
// TODO: pass in hitdata struct as well
|
||||||
virtual void Block(const FFFStateContext& InStateContext);
|
virtual void BlockTaken(const FFFStateContext& InStateContext);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when you want to exit from this state but no eligible transitions exist to other states,
|
* Called when you want to exit from this state but no eligible transitions exist to other states,
|
||||||
@ -299,12 +302,15 @@ public:
|
|||||||
// TODO: document
|
// TODO: document
|
||||||
// TODO: pass in hitdata struct as well
|
// TODO: pass in hitdata struct as well
|
||||||
UFUNCTION(BlueprintImplementableEvent, Category="UFF|State|Events")
|
UFUNCTION(BlueprintImplementableEvent, Category="UFF|State|Events")
|
||||||
void OnHit(const FFFStateContext& InStateContext);
|
void OnAttackHit(const FHitResult& Hit, const FFFStateContext& InStateContext);
|
||||||
|
|
||||||
|
UFUNCTION(BlueprintImplementableEvent, Category="UFF|State|Events")
|
||||||
|
void OnHitTaken(/*const FHitParams,*/ const FFFStateContext& InStateContext);
|
||||||
|
|
||||||
// TODO: document
|
// TODO: document
|
||||||
// TODO: pass in hitdata struct as well
|
// TODO: pass in hitdata struct as well
|
||||||
UFUNCTION(BlueprintImplementableEvent, Category="UFF|State|Events")
|
UFUNCTION(BlueprintImplementableEvent, Category="UFF|State|Events")
|
||||||
void OnBlock(const FFFStateContext& InStateContext);
|
void OnBlockTaken(/*const FHitParams,*/ const FFFStateContext& InStateContext);
|
||||||
|
|
||||||
// UObject interface
|
// UObject interface
|
||||||
virtual UWorld* GetWorld() const override;
|
virtual UWorld* GetWorld() const override;
|
||||||
|
@ -174,6 +174,16 @@ void UFFStateMachineComponent::MovementModeChanged(EMovementMode PrevMovementMod
|
|||||||
NewMovementMode, NewCustomMode, GetCurrentStateContext());
|
NewMovementMode, NewCustomMode, GetCurrentStateContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UFFStateMachineComponent::AttackHit(const FHitResult& HitResult)
|
||||||
|
{
|
||||||
|
check(CurrentState)
|
||||||
|
CurrentState->AttackHit(HitResult, GetCurrentStateContext());
|
||||||
|
}
|
||||||
|
|
||||||
|
void UFFStateMachineComponent::TakeHit()
|
||||||
|
{
|
||||||
|
CurrentState->HitTaken(GetCurrentStateContext());
|
||||||
|
}
|
||||||
|
|
||||||
void UFFStateMachineComponent::FixedTick(float OneFrame)
|
void UFFStateMachineComponent::FixedTick(float OneFrame)
|
||||||
{
|
{
|
||||||
|
@ -132,16 +132,25 @@ public:
|
|||||||
void SetSubStateLabel(FName InSubStateLabel);
|
void SetSubStateLabel(FName InSubStateLabel);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* TODO: document
|
||||||
*/
|
*/
|
||||||
FFFStateContext GetCurrentStateContext();
|
FFFStateContext GetCurrentStateContext();
|
||||||
|
|
||||||
// Events
|
// Events
|
||||||
|
// TODO: document
|
||||||
virtual void Landed(const FHitResult& Hit);
|
virtual void Landed(const FHitResult& Hit);
|
||||||
|
|
||||||
|
// TODO: document
|
||||||
virtual void MovementModeChanged(EMovementMode PrevMovementMode, uint8 PreviousCustomMode,
|
virtual void MovementModeChanged(EMovementMode PrevMovementMode, uint8 PreviousCustomMode,
|
||||||
EMovementMode NewMovementMode, uint8 NewCustomMode);
|
EMovementMode NewMovementMode, uint8 NewCustomMode);
|
||||||
|
|
||||||
|
// TODO: document
|
||||||
|
virtual void AttackHit(const FHitResult& HitResult);
|
||||||
|
|
||||||
|
// TODO: document
|
||||||
|
// TODO: bring HitParams struct into FightingFramework
|
||||||
|
virtual void TakeHit(/* const FHitParams& HitParams*/);
|
||||||
|
|
||||||
FOnStateTransitionSignature OnStateTransition;
|
FOnStateTransitionSignature OnStateTransition;
|
||||||
|
|
||||||
// IFFSystemInterface interface
|
// IFFSystemInterface interface
|
||||||
|
Loading…
Reference in New Issue
Block a user