61 lines
1.7 KiB
C++
61 lines
1.7 KiB
C++
// Project Lab - NHTV Igad
|
|
|
|
#pragma once
|
|
|
|
#include "Creatures/BossBase.h"
|
|
#include "TouhouBoss.generated.h"
|
|
|
|
/**
|
|
*
|
|
*/
|
|
UCLASS()
|
|
class UNREALPROJECT_API ATouhouBoss : public ABossBase
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
ATouhouBoss();
|
|
virtual void BeginPlay() override;
|
|
virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
|
|
virtual void Tick(float deltaTime) override;
|
|
void WalkPhase(float deltaTime);
|
|
virtual void m_SpawnModifiers() override;
|
|
|
|
//UFUNCTION(NetMulticast, Reliable)
|
|
//void PlayEngageSound();
|
|
|
|
//UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Audio Component")
|
|
//UAudioComponent* AudioComp;
|
|
|
|
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnBossKilled, int32, team);
|
|
UPROPERTY(BlueprintAssignable, Category = "Game")
|
|
FOnBossKilled onBossKilled;
|
|
|
|
UPROPERTY(EditDefaultsOnly, Category = "Shoot Phase")
|
|
class UAbilityInfo* ability;
|
|
UPROPERTY(EditDefaultsOnly, Category = "Shoot Phase")
|
|
class UAbilityInfo* abilityChannel;
|
|
UPROPERTY(EditDefaultsOnly, Category = "Shoot Phase")
|
|
float rotationSpeed;
|
|
UPROPERTY(EditDefaultsOnly, Category = "Shoot Phase")
|
|
float cooldown;
|
|
UPROPERTY(EditAnywhere, Category = "Modifiers")
|
|
float outOfCombatRegen;
|
|
UPROPERTY(EditAnywhere, Category = "State Transition", meta = (ClampMin = "0.0", ClampMax = "1.0", UIMin = "0.0", UIMax = "1.0"))
|
|
float secondPhasePercentage;
|
|
|
|
UFUNCTION(BlueprintNativeEvent)
|
|
void SetShield(bool on);
|
|
private:
|
|
virtual void m_Engaged();
|
|
virtual void m_Disengaged();
|
|
float m_walkTimer;
|
|
bool m_engaged;
|
|
|
|
UPROPERTY()
|
|
class AModifier* m_regenModifier;
|
|
|
|
UPROPERTY()
|
|
class AModifier* m_invincibilityModifier;
|
|
};
|