165 - Spawn Default Weapon
This commit is contained in:
parent
6e741fc764
commit
a39861b510
Binary file not shown.
|
@ -183,6 +183,8 @@ void ABlasterCharacter::BeginPlay()
|
||||||
{
|
{
|
||||||
Super::BeginPlay();
|
Super::BeginPlay();
|
||||||
|
|
||||||
|
SpawnDefaultWeapon();
|
||||||
|
UpdateHUDAmmo();
|
||||||
UpdateHUDHealth();
|
UpdateHUDHealth();
|
||||||
UpdateHUDShield();
|
UpdateHUDShield();
|
||||||
if (HasAuthority())
|
if (HasAuthority())
|
||||||
|
@ -686,6 +688,31 @@ void ABlasterCharacter::UpdateHUDShield()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ABlasterCharacter::UpdateHUDAmmo()
|
||||||
|
{
|
||||||
|
BlasterPlayerController = BlasterPlayerController == nullptr ? Cast<ABlasterPlayerController>(Controller) : BlasterPlayerController;
|
||||||
|
if (BlasterPlayerController && Combat && Combat->EquippedWeapon)
|
||||||
|
{
|
||||||
|
BlasterPlayerController->SetHUDCarriedAmmo(Combat->CarriedAmmo);
|
||||||
|
BlasterPlayerController->SetHUDWeaponAmmo(Combat->EquippedWeapon->GetAmmo());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ABlasterCharacter::SpawnDefaultWeapon()
|
||||||
|
{
|
||||||
|
const ABlasterGameMode* BlasterGameMode = Cast<ABlasterGameMode>(UGameplayStatics::GetGameMode(this));
|
||||||
|
UWorld* World = GetWorld();
|
||||||
|
if (BlasterGameMode && World && !bEliminated && DefaultWeaponClass)
|
||||||
|
{
|
||||||
|
AWeapon* StartingWeapon = World->SpawnActor<AWeapon>(DefaultWeaponClass);
|
||||||
|
StartingWeapon->bDestroyWeapon = true;
|
||||||
|
if (Combat)
|
||||||
|
{
|
||||||
|
Combat->EquipWeapon(StartingWeapon);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ABlasterCharacter::PollInit()
|
void ABlasterCharacter::PollInit()
|
||||||
{
|
{
|
||||||
if (BlasterPlayerState == nullptr)
|
if (BlasterPlayerState == nullptr)
|
||||||
|
|
|
@ -43,6 +43,9 @@ public:
|
||||||
|
|
||||||
void UpdateHUDHealth();
|
void UpdateHUDHealth();
|
||||||
void UpdateHUDShield();
|
void UpdateHUDShield();
|
||||||
|
void UpdateHUDAmmo();
|
||||||
|
|
||||||
|
void SpawnDefaultWeapon();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void BeginPlay() override;
|
virtual void BeginPlay() override;
|
||||||
|
@ -201,6 +204,10 @@ private:
|
||||||
UPROPERTY(EditAnywhere)
|
UPROPERTY(EditAnywhere)
|
||||||
USoundCue* EliminationBotSound;
|
USoundCue* EliminationBotSound;
|
||||||
|
|
||||||
|
// Default weapon
|
||||||
|
UPROPERTY(EditAnywhere)
|
||||||
|
TSubclassOf<AWeapon> DefaultWeaponClass;
|
||||||
|
|
||||||
// Grenade
|
// Grenade
|
||||||
|
|
||||||
UPROPERTY(VisibleAnywhere)
|
UPROPERTY(VisibleAnywhere)
|
||||||
|
|
|
@ -234,6 +234,11 @@ void ABlasterPlayerController::SetHUDWeaponAmmo(int32 Ammo)
|
||||||
FString AmmoText = FString::Printf(TEXT("%d"), Ammo);
|
FString AmmoText = FString::Printf(TEXT("%d"), Ammo);
|
||||||
BlasterHUD->CharacterOverlay->WeaponAmmoValue->SetText(FText::FromString(AmmoText));
|
BlasterHUD->CharacterOverlay->WeaponAmmoValue->SetText(FText::FromString(AmmoText));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bInitializeHUDWeaponAmmo = true;
|
||||||
|
HUDWeaponAmmo = Ammo;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ABlasterPlayerController::SetHUDCarriedAmmo(int32 Ammo)
|
void ABlasterPlayerController::SetHUDCarriedAmmo(int32 Ammo)
|
||||||
|
@ -247,6 +252,11 @@ void ABlasterPlayerController::SetHUDCarriedAmmo(int32 Ammo)
|
||||||
FString AmmoText = FString::Printf(TEXT("%d"), Ammo);
|
FString AmmoText = FString::Printf(TEXT("%d"), Ammo);
|
||||||
BlasterHUD->CharacterOverlay->CarriedAmmoValue->SetText(FText::FromString(AmmoText));
|
BlasterHUD->CharacterOverlay->CarriedAmmoValue->SetText(FText::FromString(AmmoText));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bInitializeCarriedAmmo = true;
|
||||||
|
HUDCarriedAmmo = Ammo;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ABlasterPlayerController::SetHUDGrenades(int32 Grenades)
|
void ABlasterPlayerController::SetHUDGrenades(int32 Grenades)
|
||||||
|
@ -367,6 +377,8 @@ void ABlasterPlayerController::PollInit()
|
||||||
if (bInitializeShield) SetHUDShield(HUDShield, HUDMaxShield);
|
if (bInitializeShield) SetHUDShield(HUDShield, HUDMaxShield);
|
||||||
if (bInitializeScore) SetHUDScore(HUDScore);
|
if (bInitializeScore) SetHUDScore(HUDScore);
|
||||||
if (bInitializeDefeats) SetHUDDefeats(HUDDefeats);
|
if (bInitializeDefeats) SetHUDDefeats(HUDDefeats);
|
||||||
|
if (bInitializeCarriedAmmo) SetHUDCarriedAmmo(HUDCarriedAmmo);
|
||||||
|
if (bInitializeHUDWeaponAmmo) SetHUDWeaponAmmo(HUDWeaponAmmo);
|
||||||
ABlasterCharacter* BlasterCharacter = Cast<ABlasterCharacter>(GetPawn());
|
ABlasterCharacter* BlasterCharacter = Cast<ABlasterCharacter>(GetPawn());
|
||||||
if (BlasterCharacter && BlasterCharacter->GetCombat())
|
if (BlasterCharacter && BlasterCharacter->GetCombat())
|
||||||
{
|
{
|
||||||
|
|
|
@ -119,4 +119,10 @@ private:
|
||||||
bool bInitializeGrenades = false;
|
bool bInitializeGrenades = false;
|
||||||
int32 HUDGrenades;
|
int32 HUDGrenades;
|
||||||
|
|
||||||
|
float bInitializeCarriedAmmo = false;
|
||||||
|
float HUDCarriedAmmo;
|
||||||
|
|
||||||
|
float bInitializeHUDWeaponAmmo = false;
|
||||||
|
float HUDWeaponAmmo;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -255,6 +255,10 @@ void AWeapon::Fire(const FVector& HitTarget)
|
||||||
|
|
||||||
void AWeapon::Dropped()
|
void AWeapon::Dropped()
|
||||||
{
|
{
|
||||||
|
if (bDestroyWeapon)
|
||||||
|
{
|
||||||
|
SetLifeSpan(30.f);
|
||||||
|
}
|
||||||
SetWeaponState(EWeaponState::EWS_Dropped);
|
SetWeaponState(EWeaponState::EWS_Dropped);
|
||||||
const FDetachmentTransformRules DetachRules(EDetachmentRule::KeepWorld, true);
|
const FDetachmentTransformRules DetachRules(EDetachmentRule::KeepWorld, true);
|
||||||
WeaponMesh->DetachFromComponent(DetachRules);
|
WeaponMesh->DetachFromComponent(DetachRules);
|
||||||
|
|
|
@ -70,6 +70,7 @@ public:
|
||||||
// Enable or disable custom depth
|
// Enable or disable custom depth
|
||||||
void EnableCustomDepth(bool bEnabled);
|
void EnableCustomDepth(bool bEnabled);
|
||||||
|
|
||||||
|
bool bDestroyWeapon = false;
|
||||||
protected:
|
protected:
|
||||||
virtual void BeginPlay() override;
|
virtual void BeginPlay() override;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue