bool AAmethystCharacter::Die(float KillingDamage, FDamageEvent const& DamageEvent, AController* Killer, AActor* DamageCauser) { if (!CanDie(KillingDamage, DamageEvent, Killer, DamageCauser)) { return false; } Health = FMath::Min(0.0f, Health); // if this is an environmental death then refer to the previous killer so that they receive credit (knocked into lava pits, etc) UDamageType const* const DamageType = DamageEvent.DamageTypeClass ? DamageEvent.DamageTypeClass->GetDefaultObject<UDamageType>() : GetDefault<UDamageType>(); Killer = GetDamageInstigator(Killer, *DamageType); NetUpdateFrequency = GetDefault<AAmethystCharacter>()->NetUpdateFrequency; CharacterMovement->ForceReplicationUpdate(); OnDeath(KillingDamage, DamageEvent, Killer ? Killer->GetPawn() : NULL, DamageCauser); return true; }
bool AShooterCharacter::Die(float KillingDamage, FDamageEvent const& DamageEvent, AController* Killer, AActor* DamageCauser) { if (!CanDie(KillingDamage, DamageEvent, Killer, DamageCauser)) { return false; } Health = FMath::Min(0.0f, Health); /* Fallback to default DamageType if none is specified */ UDamageType const* const DamageType = DamageEvent.DamageTypeClass ? DamageEvent.DamageTypeClass->GetDefaultObject<UDamageType>() : GetDefault<UDamageType>(); Killer = GetDamageInstigator(Killer, *DamageType); /* Notify the gamemode we got killed for scoring and game over state */ AController* KilledPlayer = Controller ? Controller : Cast<AController>(GetOwner()); OnDeath(KillingDamage, DamageEvent, Killer ? Killer->GetPawn() : NULL, DamageCauser); return true; }
bool ANimModCharacter::Die(float KillingDamage, FDamageEvent const& DamageEvent, AController* Killer, AActor* DamageCauser) { if (!CanDie(KillingDamage, DamageEvent, Killer, DamageCauser)) { return false; } Health = FMath::Min(0, Health); // if this is an environmental death then refer to the previous killer so that they receive credit (knocked into lava pits, etc) UDamageType const* const DamageType = DamageEvent.DamageTypeClass ? DamageEvent.DamageTypeClass->GetDefaultObject<UDamageType>() : GetDefault<UDamageType>(); Killer = GetDamageInstigator(Killer, *DamageType); AController* const KilledPlayer = (Controller != NULL) ? Controller : Cast<AController>(GetOwner()); GetWorld()->GetAuthGameMode<ANimModGameMode>()->Killed(Killer, KilledPlayer, this, DamageType); NetUpdateFrequency = GetDefault<ANimModCharacter>()->NetUpdateFrequency; GetCharacterMovement()->ForceReplicationUpdate(); OnDeath(KillingDamage, DamageEvent, Killer ? Killer->GetPawn() : NULL, DamageCauser); return true; }