diff --git a/Content/Weapons/MagicWand/BP_MagicWandWeapon.uasset b/Content/Weapons/MagicWand/BP_MagicWandWeapon.uasset index 3bef405..72714c6 100644 --- a/Content/Weapons/MagicWand/BP_MagicWandWeapon.uasset +++ b/Content/Weapons/MagicWand/BP_MagicWandWeapon.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f6d239489ee4ab4a06e8dab397936b6d135249ce696aae7d1379b9d536f4b940 -size 23792 +oid sha256:0beec90c119efb444445476989b86bdf0745979d0d5e5c286e556372d5396d28 +size 24583 diff --git a/Content/Weapons/TestProjectileDataAsset.uasset b/Content/Weapons/TestProjectileDataAsset.uasset index 837794b..df85ba9 100644 --- a/Content/Weapons/TestProjectileDataAsset.uasset +++ b/Content/Weapons/TestProjectileDataAsset.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8699923e34d19750d0de14a0202eacc625cb22cfa961270234ada6e3ef998948 -size 1800 +oid sha256:4bb6df6ca3015e62ee27b86fc8434fe6857323ad17155ed6cce6fb2059cf1c62 +size 1651 diff --git a/Source/vampires/Weapons/MagicWandWeapon.cpp b/Source/vampires/Weapons/MagicWandWeapon.cpp index ab87e5a..751b8ea 100644 --- a/Source/vampires/Weapons/MagicWandWeapon.cpp +++ b/Source/vampires/Weapons/MagicWandWeapon.cpp @@ -8,6 +8,7 @@ #include "Kismet/KismetMathLibrary.h" #include "vampires/ObjectPoolManager.h" #include "vampires/Projectile.h" +#include "vampires/ProjectileDataAsset.h" #include "vampires/Interfaces/Pools.h" AMagicWandWeapon::AMagicWandWeapon() @@ -22,7 +23,46 @@ void AMagicWandWeapon::BeginPlay() void AMagicWandWeapon::FireWeaponAction_Implementation() { Super::FireWeaponAction_Implementation(); +} +bool AMagicWandWeapon::UpgradeWeapon_Implementation() +{ + if (!Super::UpgradeWeapon_Implementation()) return false; + + switch (CurrentLevel) + { + case 1: + ProjectilesPerActivation++; + break; + case 2: + WeaponCooldown -= 0.2; + break; + case 3: + ProjectilesPerActivation++; + break; + case 4: + Damage += 10; + break; + case 5: + ProjectilesPerActivation++; + break; + case 6: + ProjectileTemplate->DamagableEnemies++; + break; + case 7: + Damage += 10; + break; + default: + return false; + } + + ResetWeaponTimer(); + + return true; +} + +void AMagicWandWeapon::FireProjectile() +{ if (ProjectileTemplate && OverlappedEnemies.Num() > 0) { float distance = 0.0f; @@ -50,6 +90,8 @@ void AMagicWandWeapon::FireWeaponAction_Implementation() IProjectilable::Execute_SetTargetDirection(projectile, direction); } + + Super::FireProjectile(); } } } diff --git a/Source/vampires/Weapons/MagicWandWeapon.h b/Source/vampires/Weapons/MagicWandWeapon.h index b633d49..ad7e3e3 100644 --- a/Source/vampires/Weapons/MagicWandWeapon.h +++ b/Source/vampires/Weapons/MagicWandWeapon.h @@ -22,4 +22,9 @@ protected: public: virtual void FireWeaponAction_Implementation() override; + + virtual bool UpgradeWeapon_Implementation() override; + + protected: + virtual void FireProjectile() override; };