Add Knife upgrades

This commit is contained in:
baz 2025-04-15 21:22:59 +01:00
parent c5435718de
commit 3d2826087e
3 changed files with 50 additions and 3 deletions

Binary file not shown.

View File

@ -8,6 +8,7 @@
#include "vampires/ObjectPoolManager.h"
#include "vampires/PlayerCharacter.h"
#include "vampires/Projectile.h"
#include "vampires/ProjectileDataAsset.h"
#include "vampires/Interfaces/Pools.h"
AKnifeWeapon::AKnifeWeapon()
@ -22,7 +23,46 @@ void AKnifeWeapon::BeginPlay()
void AKnifeWeapon::FireWeaponAction_Implementation()
{
Super::FireWeaponAction_Implementation();
}
bool AKnifeWeapon::UpgradeWeapon_Implementation()
{
if (!Super::UpgradeWeapon_Implementation()) return false;
switch (CurrentLevel)
{
case 1:
ProjectilesPerActivation++;
break;
case 2:
ProjectilesPerActivation++;
Damage += 5.0f;
break;
case 3:
ProjectilesPerActivation++;
break;
case 4:
ProjectileTemplate->DamagableEnemies++;
break;
case 5:
ProjectilesPerActivation++;
break;
case 6:
ProjectilesPerActivation++;
Damage += 5.0f;
break;
case 7:
ProjectileTemplate->DamagableEnemies++;
break;
default:
return false;
}
return true;
}
void AKnifeWeapon::FireProjectile()
{
if (UKismetSystemLibrary::DoesImplementInterface(GetOwner(), UInputable::StaticClass()))
{
if (ProjectileTemplate && OverlappedEnemies.Num() > 0)
@ -46,6 +86,8 @@ void AKnifeWeapon::FireWeaponAction_Implementation()
IProjectilable::Execute_SetTargetDirection(projectile, direction);
}
Super::FireProjectile();
}
}
}

View File

@ -22,4 +22,9 @@ protected:
public:
virtual void FireWeaponAction_Implementation() override;
virtual bool UpgradeWeapon_Implementation() override;
protected:
virtual void FireProjectile() override;
};