Power Ups Challenge: C++/Blueprints

Power Ups Challenge: C++/Blueprints es el noveno reto propuesto por el curso Unreal Engine 4 Mastery: Create Multiplayer Games with C++ de Tom Looman certificado por Epic Games disponible en la plataforma Udemy.

A lo largo del curso se desarrollarán dos juegos con base en C++ y extendiendo la funcionalidad con Blueprints. Los dos juegos son multijugador y se profundizará también en AI y para reforzar los diferentes temas se proponen distintos retos.

En esta ocasión he implementado un Power Up de tipo escudo. Mientras está activo no puedes recibir daño alguno.

Destacado SCharacter.h

UPROPERTY(Replicated, BlueprintReadOnly, Category = "Player")
bool bShield;

bool beShield();

UFUNCTION(BlueprintCallable, Category = "Player")
void SetShield(bool NewValue);

Destacado SHealthComponent.cpp

void USHealthComponent::HandleTakeAnyDamage(AActor* DamagedActor, float Damage, const class UDamageType* DamageType, class AController* InstigatedBy, AActor* DamageCauser)
{
  
  bool CharacterShield = false;
  AActor* MyOwner = GetOwner();
  if (MyOwner)
  {

    ASCharacter* MyOwnerSCharacter = Cast<ASCharacter>(MyOwner);
    if (MyOwnerSCharacter)
    {
      CharacterShield = MyOwnerSCharacter->beShield();
    }

  }



  if (Damage <= 0.0f || CharacterShield)
  {
    return;
  }

  // Update Health Clamped
  Health = FMath::Clamp(Health - Damage, 0.0f, DefaultHealth);

  //UE_LOG(LogTemp, Log, TEXT("Health Changed: %s"), *FString::SanitizeFloat(Health));
  if (DebugHealthComponentDrawing > 0) UE_LOG(LogTemp, Log, TEXT("Object State: Name= %s - Health=%s"), *GetOwner()->GetName(), *FString::SanitizeFloat(Health));

  OnHealthChanged.Broadcast(this, Health, Damage, DamageType, InstigatedBy, DamageCauser);
}

A continuación os dejaré los enlaces al código, demo y al video en youtube para que podáis ver más. De momento me está gustando el curso pero al final compartiré una valoración general por si a alguien le pueda interesar que sepa más o menos que esperar del mismo.

Repositorio: Power Ups Challenge: C++/Blueprints [project]

Demo: Power Ups Challenge: C++/Blueprints [demo]

Curso: Unreal Engine 4 Mastery: Create Multiplayer Games with C++