From 4fa586e6480503a737303eef4b9823a51a01765e Mon Sep 17 00:00:00 2001 From: Kingsmedia Date: Sat, 28 May 2022 22:21:03 +0200 Subject: [PATCH] 208 - Spawning the Crown --- .../Character/BP_BlasterCharacter.uasset | Bin 122738 -> 123081 bytes Source/Blaster/Character/BlasterCharacter.cpp | 45 ++++++++++++- Source/Blaster/Character/BlasterCharacter.h | 16 ++++- .../Components/LagCompensationComponent.cpp | 62 +----------------- .../Components/LagCompensationComponent.h | 1 - Source/Blaster/GameMode/BlasterGameMode.cpp | 25 +++++++ Source/Blaster/GameState/BlasterGameState.cpp | 1 - Source/Blaster/Weapon/HitScanWeapon.cpp | 2 - 8 files changed, 84 insertions(+), 68 deletions(-) diff --git a/Content/Blueprints/Character/BP_BlasterCharacter.uasset b/Content/Blueprints/Character/BP_BlasterCharacter.uasset index 8005537b95c1ea93d10dd091dae6f7cccf486ac3..cf71e470af45110f456cfff07559183a8d049dd6 100644 GIT binary patch delta 31868 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 B3P=C| delta 32997 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 Bo1_2$ diff --git a/Source/Blaster/Character/BlasterCharacter.cpp b/Source/Blaster/Character/BlasterCharacter.cpp index 41e1cce..b0b7ec4 100644 --- a/Source/Blaster/Character/BlasterCharacter.cpp +++ b/Source/Blaster/Character/BlasterCharacter.cpp @@ -3,11 +3,14 @@ #include "BlasterCharacter.h" +#include "NiagaraComponent.h" +#include "NiagaraFunctionLibrary.h" #include "Blaster/Blaster.h" #include "Blaster/Components/BuffComponent.h" #include "Blaster/Components/CombatComponent.h" #include "Blaster/Components/LagCompensationComponent.h" #include "Blaster/GameMode/BlasterGameMode.h" +#include "Blaster/GameState/BlasterGameState.h" #include "Blaster/PlayerController/BlasterPlayerController.h" #include "Blaster/PlayerState/BlasterPlayerState.h" #include "Blaster/Weapon/Weapon.h" @@ -231,7 +234,10 @@ void ABlasterCharacter::MulticastEliminated_Implementation(bool bPlayerLeftGame) { ShowSniperScopeWidget(false); } - + if (CrownComponent) + { + CrownComponent->DestroyComponent(); + } GetWorldTimerManager().SetTimer( EliminationTimer, this, @@ -281,6 +287,36 @@ void ABlasterCharacter::Destroyed() } } +void ABlasterCharacter::MulticastGainedTheLead_Implementation() +{ + if (CrownSystem == nullptr) return; + if (CrownComponent == nullptr) + { + CrownComponent = UNiagaraFunctionLibrary::SpawnSystemAttached( + CrownSystem, + GetCapsuleComponent(), + FName(), + GetActorLocation() + FVector(0.f, 0.f, 110.f), + GetActorRotation(), + EAttachLocation::KeepWorldPosition, + false + ); + } + + if (CrownComponent) + { + CrownComponent->Activate(); + } +} + +void ABlasterCharacter::MulticastLostTheLead_Implementation() +{ + if (CrownComponent) + { + CrownComponent->DestroyComponent(); + } +} + void ABlasterCharacter::BeginPlay() { Super::BeginPlay(); @@ -864,8 +900,15 @@ void ABlasterCharacter::PollInit() // Initialize Score now we have the PlayerState BlasterPlayerState->IncreaseScore(0.f); BlasterPlayerState->IncreaseDefeats(0); + + const ABlasterGameState* BlasterGameState = Cast(UGameplayStatics::GetGameState(this)); + if (BlasterGameState && BlasterGameState->TopScoringPlayers.Contains(BlasterPlayerState)) + { + MulticastGainedTheLead(); + } } } + } void ABlasterCharacter::UpdateDissolveMaterial(float DissolveValue) diff --git a/Source/Blaster/Character/BlasterCharacter.h b/Source/Blaster/Character/BlasterCharacter.h index c9632c2..f079a3c 100644 --- a/Source/Blaster/Character/BlasterCharacter.h +++ b/Source/Blaster/Character/BlasterCharacter.h @@ -60,6 +60,13 @@ public: void ServerLeaveGame(); FOnLeftGame OnLeftGame; + + UFUNCTION(NetMulticast, Reliable) + void MulticastGainedTheLead(); + + UFUNCTION(NetMulticast, Reliable) + void MulticastLostTheLead(); + protected: virtual void BeginPlay() override; @@ -273,7 +280,7 @@ private: UPROPERTY(EditAnywhere, Category = Elimination) UMaterialInstance* DissolveMaterialInstance; - // Elimination bot + // Elimination effects UPROPERTY(EditAnywhere) UParticleSystem* EliminationBotEffect; @@ -283,12 +290,17 @@ private: UPROPERTY(EditAnywhere) USoundCue* EliminationBotSound; + UPROPERTY(EditAnywhere) + class UNiagaraSystem* CrownSystem; + + UPROPERTY() + class UNiagaraComponent* CrownComponent; + // Default weapon UPROPERTY(EditAnywhere) TSubclassOf DefaultWeaponClass; // Grenade - UPROPERTY(VisibleAnywhere) UStaticMeshComponent* AttachedGrenade; diff --git a/Source/Blaster/Components/LagCompensationComponent.cpp b/Source/Blaster/Components/LagCompensationComponent.cpp index 5a56320..0d1f08e 100644 --- a/Source/Blaster/Components/LagCompensationComponent.cpp +++ b/Source/Blaster/Components/LagCompensationComponent.cpp @@ -13,12 +13,6 @@ ULagCompensationComponent::ULagCompensationComponent() PrimaryComponentTick.bCanEverTick = true; } -void ULagCompensationComponent::BeginPlay() -{ - Super::BeginPlay(); - -} - void ULagCompensationComponent::ServerScoreRequest_Implementation(ABlasterCharacter* HitCharacter, const FVector_NetQuantize& TraceStart, const FVector_NetQuantize& HitLocation, float HitTime, AWeapon* DamageCauser) { @@ -26,7 +20,6 @@ void ULagCompensationComponent::ServerScoreRequest_Implementation(ABlasterCharac if (Character && HitCharacter && DamageCauser && Confirm.bHitConfirmed) { - UGameplayStatics::ApplyDamage( HitCharacter, DamageCauser->GetDamage(), @@ -44,7 +37,6 @@ void ULagCompensationComponent::ProjectileServerScoreRequest_Implementation(ABla if (Character && HitCharacter && Confirm.bHitConfirmed) { - UGameplayStatics::ApplyDamage( HitCharacter, Character->GetPrimaryWeapon()->GetDamage(), @@ -103,7 +95,6 @@ void ULagCompensationComponent::SaveFramePackage() FFramePackage ThisFrame; SaveFramePackage(ThisFrame); FrameHistory.AddHead(ThisFrame); - // ShowFramePackage(ThisFrame, FColor::Red); } } @@ -167,8 +158,7 @@ FServerSideRewindResult ULagCompensationComponent::ConfirmHit(const FFramePackag HeadBox->SetCollisionResponseToChannel(ECC_HitBox, ECR_Block); const FVector TraceEnd = TraceStart + (HitLocation - TraceStart) * 1.25f; - UWorld* World = GetWorld(); - if (World) + if (UWorld* World = GetWorld()) { FHitResult ConfirmHitResult; World->LineTraceSingleByChannel( @@ -180,14 +170,6 @@ FServerSideRewindResult ULagCompensationComponent::ConfirmHit(const FFramePackag if (ConfirmHitResult.bBlockingHit) // we hit the head, return early { - if (ConfirmHitResult.Component.IsValid()) - { - UBoxComponent* Box = Cast(ConfirmHitResult.Component); - if (Box) - { - DrawDebugBox(GetWorld(), Box->GetComponentLocation(), Box->GetScaledBoxExtent(), FQuat(Box->GetComponentRotation()), FColor::Red, false, 8.f); - } - } ResetHitBoxes(HitCharacter, CurrentFrame); EnableCharacterMeshCollision(HitCharacter, ECollisionEnabled::QueryAndPhysics); return FServerSideRewindResult{ true, true }; @@ -212,14 +194,6 @@ FServerSideRewindResult ULagCompensationComponent::ConfirmHit(const FFramePackag if (ConfirmHitResult.bBlockingHit) { - if (ConfirmHitResult.Component.IsValid()) - { - UBoxComponent* Box = Cast(ConfirmHitResult.Component); - if (Box) - { - DrawDebugBox(GetWorld(), Box->GetComponentLocation(), Box->GetScaledBoxExtent(), FQuat(Box->GetComponentRotation()), FColor::Blue, false, 8.f); - } - } ResetHitBoxes(HitCharacter, CurrentFrame); EnableCharacterMeshCollision(HitCharacter, ECollisionEnabled::QueryAndPhysics); return FServerSideRewindResult{ true, false }; @@ -253,22 +227,12 @@ FServerSideRewindResult ULagCompensationComponent::ProjectileConfirmHit(const FF PathParams.ProjectileRadius = 5.f; PathParams.TraceChannel = ECC_HitBox; PathParams.ActorsToIgnore.Add(GetOwner()); - PathParams.DrawDebugTime = 5.f; - PathParams.DrawDebugType = EDrawDebugTrace::ForDuration; FPredictProjectilePathResult PathResult; UGameplayStatics::PredictProjectilePath(this, PathParams, PathResult); if (PathResult.HitResult.bBlockingHit) // we hit the head, return early { - if (PathResult.HitResult.Component.IsValid()) - { - UBoxComponent* Box = Cast(PathResult.HitResult.Component); - if (Box) - { - DrawDebugBox(GetWorld(), Box->GetComponentLocation(), Box->GetScaledBoxExtent(), FQuat(Box->GetComponentRotation()), FColor::Red, false, 8.f); - } - } ResetHitBoxes(HitCharacter, CurrentFrame); EnableCharacterMeshCollision(HitCharacter, ECollisionEnabled::QueryAndPhysics); return FServerSideRewindResult{ true, true }; @@ -287,14 +251,6 @@ FServerSideRewindResult ULagCompensationComponent::ProjectileConfirmHit(const FF UGameplayStatics::PredictProjectilePath(this, PathParams, PathResult); if (PathResult.HitResult.bBlockingHit) { - if (PathResult.HitResult.Component.IsValid()) - { - UBoxComponent* Box = Cast(PathResult.HitResult.Component); - if (Box) - { - DrawDebugBox(GetWorld(), Box->GetComponentLocation(), Box->GetScaledBoxExtent(), FQuat(Box->GetComponentRotation()), FColor::Blue, false, 8.f); - } - } ResetHitBoxes(HitCharacter, CurrentFrame); EnableCharacterMeshCollision(HitCharacter, ECollisionEnabled::QueryAndPhysics); return FServerSideRewindResult{ true, false }; @@ -353,14 +309,6 @@ FShotgunServerSideRewindResult ULagCompensationComponent::ShotgunConfirmHit(cons ABlasterCharacter* BlasterCharacter = Cast(ConfirmHitResult.GetActor()); if (BlasterCharacter) { - if (ConfirmHitResult.Component.IsValid()) - { - UBoxComponent* Box = Cast(ConfirmHitResult.Component); - if (Box) - { - DrawDebugBox(GetWorld(), Box->GetComponentLocation(), Box->GetScaledBoxExtent(), FQuat(Box->GetComponentRotation()), FColor::Red, false, 8.f); - } - } if (ShotgunResult.Headshots.Contains(BlasterCharacter)) { ShotgunResult.Headshots[BlasterCharacter]++; @@ -405,14 +353,6 @@ FShotgunServerSideRewindResult ULagCompensationComponent::ShotgunConfirmHit(cons ABlasterCharacter* BlasterCharacter = Cast(ConfirmHitResult.GetActor()); if (BlasterCharacter) { - if (ConfirmHitResult.Component.IsValid()) - { - UBoxComponent* Box = Cast(ConfirmHitResult.Component); - if (Box) - { - DrawDebugBox(GetWorld(), Box->GetComponentLocation(), Box->GetScaledBoxExtent(), FQuat(Box->GetComponentRotation()), FColor::Blue, false, 8.f); - } - } if (ShotgunResult.BodyShots.Contains(BlasterCharacter)) { ShotgunResult.BodyShots[BlasterCharacter]++; diff --git a/Source/Blaster/Components/LagCompensationComponent.h b/Source/Blaster/Components/LagCompensationComponent.h index 2779d47..908d07d 100644 --- a/Source/Blaster/Components/LagCompensationComponent.h +++ b/Source/Blaster/Components/LagCompensationComponent.h @@ -122,7 +122,6 @@ public: ); protected: - virtual void BeginPlay() override; void SaveFramePackage(); void SaveFramePackage(FFramePackage& Package); FFramePackage InterpBetweenFrames(const FFramePackage& OlderFrame, const FFramePackage& YoungerFrame, float HitTime); diff --git a/Source/Blaster/GameMode/BlasterGameMode.cpp b/Source/Blaster/GameMode/BlasterGameMode.cpp index f732d65..0c045da 100644 --- a/Source/Blaster/GameMode/BlasterGameMode.cpp +++ b/Source/Blaster/GameMode/BlasterGameMode.cpp @@ -83,8 +83,33 @@ void ABlasterGameMode::PlayerEliminated(class ABlasterCharacter* EliminatedChara if (AttackerPlayerState && AttackerPlayerState != VictimPlayerState && BlasterGameState) { + TArray PlayersCurrentlyInTheLead; + for (auto LeadPlayer : BlasterGameState->TopScoringPlayers) + { + PlayersCurrentlyInTheLead.Add(LeadPlayer); + } AttackerPlayerState->IncreaseScore(1.f); BlasterGameState->UpdateTopScore(AttackerPlayerState); + + if (BlasterGameState->TopScoringPlayers.Contains(AttackerPlayerState)) + { + ABlasterCharacter* Leader = Cast(AttackerPlayerState->GetPawn()); + if (Leader) + { + Leader->MulticastGainedTheLead(); + } + } + for (int32 i = 0; i < PlayersCurrentlyInTheLead.Num(); i++) + { + if (!BlasterGameState->TopScoringPlayers.Contains(PlayersCurrentlyInTheLead[i])) + { + ABlasterCharacter* Loser = Cast(PlayersCurrentlyInTheLead[i]->GetPawn()); + if (Loser) + { + Loser->MulticastLostTheLead(); + } + } + } } if (VictimPlayerState) { diff --git a/Source/Blaster/GameState/BlasterGameState.cpp b/Source/Blaster/GameState/BlasterGameState.cpp index 7077045..8fa3ce8 100644 --- a/Source/Blaster/GameState/BlasterGameState.cpp +++ b/Source/Blaster/GameState/BlasterGameState.cpp @@ -30,5 +30,4 @@ void ABlasterGameState::UpdateTopScore(ABlasterPlayerState* ScoringPlayer) TopScoringPlayers.AddUnique(ScoringPlayer); TopScore = ScoringPlayer->GetScore(); } - } diff --git a/Source/Blaster/Weapon/HitScanWeapon.cpp b/Source/Blaster/Weapon/HitScanWeapon.cpp index e1dd7b9..a76c95f 100644 --- a/Source/Blaster/Weapon/HitScanWeapon.cpp +++ b/Source/Blaster/Weapon/HitScanWeapon.cpp @@ -111,8 +111,6 @@ void AHitScanWeapon::WeaponTraceHit(const FVector& TraceStart, const FVector& Hi { BeamEnd = OutHit.ImpactPoint; } - - // DrawDebugSphere(GetWorld(), BeamEnd, 16.f, 12, FColor::Orange, true); if (BeamParticles) {