float InTopSpeedMS, float InMaxBiteDmg, float InMaxHealth, const FVector2D& InPosM, bool bInServerAI, int32 InSimIndex) { CharacterId = InCharacterId; RepSpeciesSlug = InSpeciesSlug; TopSpeedMS = InTopSpeedMS; MaxBiteDmg = InMaxBiteDmg; MaxHealth = FMath::Max(InMaxHealth, 1.f); Health = MaxHealth; PosM = InPosM; bServerAI = bInServerAI; SimIndex = InSimIndex; // WOUNDS & BLEED: the attacker's bleed potency comes from the SAME registry the // bite damage does — read here keyed on the species slug, so nothing hardcodes a // creature stat. A Deinosuchus (bleed 60) opens a far worse wound than a Troodon // (bleed 15). Sourced for AI too: an AI attacker still bleeds a player it bites. BleedPotency = 0.f; BleedFrac = 0.f; RepBleed = 0; if (const UAoESpeciesRegistrySubsystem* Reg = UAoESpeciesRegistrySubsystem::Get()) { FAoESpecies Sp; if (Reg->GetSpeciesBySlug(InSpeciesSlug, Sp)) { BleedPotency = FMath::Max(0.f, Sp.Bleed); } }