/** * Removes momentum for deconstructing a buildable. */ float G_RemoveMomentumForDecon( gentity_t *buildable, gentity_t *deconner ) { float value; team_t team; // sanity check buildable if ( !buildable || buildable->s.eType != entityType_t::ET_BUILDABLE ) { return 0.0f; } team = BG_Buildable( buildable->s.modelindex )->team; if ( buildable->momentumEarned ) { value = buildable->momentumEarned; } else { // assume the buildable has just been placed value = G_PredictMomentumForBuilding( buildable ); } // Remove only partial momentum as the lost health fraction awards momentum to the enemy. value *= buildable->entity->Get<HealthComponent>()->HealthFraction(); return AddMomentum( CONF_DECONSTRUCTING, team, -value, deconner, false ); }
/** * Removes momentum for deconstructing a buildable. */ float G_RemoveMomentumForDecon(gentity_t* buildable, gentity_t* deconner) { float value; team_t team; // sanity check buildable if (!buildable || buildable->s.eType != ET_BUILDABLE) { return 0.0f; } team = BG_Buildable(buildable->s.modelindex)->team; if (buildable->momentumEarned) { value = buildable->momentumEarned; } else { // assume the buildable has just been placed value = G_PredictMomentumForBuilding(buildable); } value *= buildable->deconHealthFrac; return AddMomentum(CONF_DECONSTRUCTING, team, -value, deconner, false); }