diff --git a/Config/DefaultInput.ini b/Config/DefaultInput.ini index a457e63f..8838ce3e 100644 --- a/Config/DefaultInput.ini +++ b/Config/DefaultInput.ini @@ -114,6 +114,5 @@ DoubleClickTime=0.200000 DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks --ConsoleKeys=Tilde +ConsoleKeys=Tilde diff --git a/Content/ParagonGrux/Characters/Heroes/Grux/Meshes/Grux_Extents.uasset b/Content/ParagonGrux/Characters/Heroes/Grux/Meshes/Grux_Extents.uasset index 812d0010..74f6a93e 100644 --- a/Content/ParagonGrux/Characters/Heroes/Grux/Meshes/Grux_Extents.uasset +++ b/Content/ParagonGrux/Characters/Heroes/Grux/Meshes/Grux_Extents.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:de01195a6a05aacd115640c1b08dee94961ec97f80055c0bb48be789d7e37f32 -size 109750 +oid sha256:a7359d98df9afa91acfe5c2c71bf4e00a08fff9551ab215777f3989e2e82ca5a +size 12533 diff --git a/Content/_Game/Enemies/EnemyBP.uasset b/Content/_Game/Enemies/EnemyBP.uasset index 045c78f1..4f99e436 100644 --- a/Content/_Game/Enemies/EnemyBP.uasset +++ b/Content/_Game/Enemies/EnemyBP.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9eaa93cacb2579e69bacef3da38814f8ee42fbbf805f3bbe13f976db5858f8c2 -size 98749 +oid sha256:835362e0ba630357ca82cb33a972ce20db252ee0519f135fc4a1849a84106d0e +size 133539 diff --git a/Content/_Game/HUD/HitNumber.uasset b/Content/_Game/HUD/HitNumber.uasset index 9f299f16..b83b6817 100644 --- a/Content/_Game/HUD/HitNumber.uasset +++ b/Content/_Game/HUD/HitNumber.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c66dd6cf4e53dd1e53bc7766bacb256e98a45075eb4c1af0e2721e2f6a44decd -size 23347 +oid sha256:e6ab5addb8c1010ffbe5638024b2f2cbf1fa30597a5b5c516d6aae2dae6640d4 +size 79550 diff --git a/Content/_Game/Maps/DefaultMap.umap b/Content/_Game/Maps/DefaultMap.umap index e7678225..ad3cfec2 100644 --- a/Content/_Game/Maps/DefaultMap.umap +++ b/Content/_Game/Maps/DefaultMap.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ecf19f29123f9a34d8d52ca003daa57f96d736d8c53cc6f358b3abe12b54f15d +oid sha256:11d94cd5a091fe823d2f70fdc4a479bfdb5abcefee0ff56e81652c66b9aa702e size 238914 diff --git a/Source/Shooter/Enemy.cpp b/Source/Shooter/Enemy.cpp index 9c173d2f..9444119c 100644 --- a/Source/Shooter/Enemy.cpp +++ b/Source/Shooter/Enemy.cpp @@ -20,7 +20,6 @@ AEnemy::AEnemy() : { // Set this character to call Tick() every frame. You can turn this off to improve performance if you don't need it. PrimaryActorTick.bCanEverTick = true; - } // Called when the game starts or when spawned @@ -78,11 +77,26 @@ void AEnemy::DestroyHitNumber(UUserWidget* HitNumber) HitNumber->RemoveFromParent(); } +void AEnemy::UpdateHitNumbers() +{ + for (auto& HitPair : HitNumbers) + { + UUserWidget* HitNumber{ HitPair.Key }; + const FVector Location{ HitPair.Value }; + FVector2D ScreenPosition; + UGameplayStatics::ProjectWorldToScreen(GetWorld()->GetFirstPlayerController(), + Location, ScreenPosition); + + HitNumber->SetPositionInViewport(ScreenPosition); + } +} + // Called every frame void AEnemy::Tick(float DeltaTime) { Super::Tick(DeltaTime); + UpdateHitNumbers(); } // Called to bind functionality to input diff --git a/Source/Shooter/Enemy.h b/Source/Shooter/Enemy.h index 045f9a17..f32b95e2 100644 --- a/Source/Shooter/Enemy.h +++ b/Source/Shooter/Enemy.h @@ -42,6 +42,8 @@ protected: UFUNCTION() void DestroyHitNumber(UUserWidget* HitNumber); + + void UpdateHitNumbers(); private: /** Particles to spawn when hit by bullets */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = true)) @@ -103,5 +105,5 @@ public: FORCEINLINE FString GetHeadBone() const { return HeadBone; } UFUNCTION(BlueprintImplementableEvent) - void ShowHitNumber(int32 Damage, FVector HitLocation); + void ShowHitNumber(int32 Damage, FVector HitLocation, bool bHeadshot); }; diff --git a/Source/Shooter/ShooterCharacter.cpp b/Source/Shooter/ShooterCharacter.cpp index 18fa498f..71b97964 100644 --- a/Source/Shooter/ShooterCharacter.cpp +++ b/Source/Shooter/ShooterCharacter.cpp @@ -678,10 +678,12 @@ void AShooterCharacter::SendBullet() if (BeamHitResult.BoneName.ToString() == HitEnemy->GetHeadBone()) { damageToApply = EquippedWeapon->GetHeadshotDamage(); + HitEnemy->ShowHitNumber(damageToApply, BeamHitResult.Location, true); } else { damageToApply = EquippedWeapon->GetDamage(); + HitEnemy->ShowHitNumber(damageToApply, BeamHitResult.Location, false); } UGameplayStatics::ApplyDamage(HitEnemy, @@ -689,7 +691,6 @@ void AShooterCharacter::SendBullet() GetController(), this, UDamageType::StaticClass()); - HitEnemy->ShowHitNumber(damageToApply, BeamHitResult.Location); } } else