void AVehiclePawn::Die() { if (CanDie()) { OnDeath(); } }
void ProcessBase::Exec() { switch( GetState() ){ default: DEBUG_ASSERT( 0, "想定外のステータス" ); break; case STATE_INIT: // Init中 if( Init() ){ SetStateNext(); } break; case STATE_UPDATE: // Update中 Update(); break; case STATE_CANDIE: // CanDie中 if( CanDie() ){ SetStateNext(); } break; case STATE_FLOW_WAIT: // エフェクト終了。フローの削除待ち break; } CallPadEvent(); }
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; }