Bugfix Able to Open Inventory During Combat

This commit is contained in:
Philip W 2023-05-12 13:51:08 +01:00
parent 96685296c2
commit dd72b47a6d
5 changed files with 15 additions and 7 deletions

Binary file not shown.

View File

@ -22,7 +22,7 @@ void UEatableItems::Use(ATempCharacter* Character)
{ {
if (Character->Health < 100) if (Character->Health < 100)
{ {
Character->Health += 20; Character->Health = FMath::Clamp(Character->Health + 20, 0, 100);
Character->Inventory->RemoveItem(this); Character->Inventory->RemoveItem(this);
} }
else if (Character->Health >= 100) else if (Character->Health >= 100)

View File

@ -7,11 +7,11 @@ void UStrengthBuff::Invoke(AActor* Character, float TimeOfExpiry)
{ {
Super::Invoke(Character, TimeOfExpiry); Super::Invoke(Character, TimeOfExpiry);
CombatSystem = Cast<ATurnBaseCombatV2>(GetWorld()->GetGameState()); CombatSystem = Cast<ATurnBaseCombatV2>(GetWorld()->GetGameState());
CombatSystem->BaseDamageMultiplier += 1; CombatSystem->bIsBuffed = true;
} }
void UStrengthBuff::OnExpiry(AActor* Character) void UStrengthBuff::OnExpiry(AActor* Character)
{ {
Super::OnExpiry(Character); Super::OnExpiry(Character);
CombatSystem->BaseDamageMultiplier -= 1; CombatSystem->bIsBuffed = false;
} }

View File

@ -116,6 +116,8 @@ void ATurnBaseCombatV2::CombatCheck(const bool bWasShot)
const UBlackboardComponent* EnemyBlackboard = Cast<AAIController>(EnemyActor->GetInstigatorController())->GetBlackboardComponent(); const UBlackboardComponent* EnemyBlackboard = Cast<AAIController>(EnemyActor->GetInstigatorController())->GetBlackboardComponent();
ChainDamageMultiplier = 0; ChainDamageMultiplier = 0;
BaseDamageMultiplier = DefaultBaseDamageMultiplier;
if (bIsBuffed) BaseDamageMultiplier += 1.0f;
DamageMultiplierTextBlock->SetText(FText::FromString("")); DamageMultiplierTextBlock->SetText(FText::FromString(""));
const FProperty* ReactionSpeedProperty = EnemyActor->GetClass()->FindPropertyByName(FName("ReactionSpeed")); const FProperty* ReactionSpeedProperty = EnemyActor->GetClass()->FindPropertyByName(FName("ReactionSpeed"));
@ -437,7 +439,8 @@ void ATurnBaseCombatV2::DamageEnemy(int Damage, const FString& DamageType)
AddBattleLogMessage("Enemy was damaged for " + FString::FromInt(Damage * BaseDamageMultiplier) + " HP by " + DamageType + "."); AddBattleLogMessage("Enemy was damaged for " + FString::FromInt(Damage * BaseDamageMultiplier) + " HP by " + DamageType + ".");
if (DamageMultiplierTextBlock->GetText().ToString() == "") if (DamageMultiplierTextBlock->GetText().ToString() == "")
{ {
BaseDamageMultiplier -= ChainDamageMultiplier; BaseDamageMultiplier = DefaultBaseDamageMultiplier;
if (bIsBuffed) BaseDamageMultiplier += 1.0f;
ChainDamageMultiplier = 0; ChainDamageMultiplier = 0;
} }

View File

@ -25,12 +25,17 @@ public:
int* EnemyHealth = nullptr; int* EnemyHealth = nullptr;
float* PlayerHealth = nullptr; float* PlayerHealth = nullptr;
UPROPERTY(BlueprintReadOnly)
bool bIsInCombat = false; bool bIsInCombat = false;
UPROPERTY(EditDefaultsOnly) UPROPERTY(EditDefaultsOnly)
float BaseDamageMultiplier = 1.0f; float BaseDamageMultiplier = 1.0f;
UPROPERTY(EditDefaultsOnly) UPROPERTY(EditDefaultsOnly)
float BaseDefenseMultiplier = 1.0f; float BaseDefenseMultiplier = 1.0f;
UPROPERTY(EditDefaultsOnly)
float DefaultBaseDamageMultiplier = 1.0f;
UPROPERTY(BlueprintReadWrite)
bool bIsBuffed = false;
UPROPERTY() UPROPERTY()
float ChainDamageMultiplier = 0; float ChainDamageMultiplier = 0;
UPROPERTY(EditAnywhere) UPROPERTY(EditAnywhere)