Refactor event handling for character death: Updated the EventsWorker to ensure only player characters are notified of sudden child deaths, while NPCs are excluded. Adjusted health update logic to prevent player characters from reaching zero health due to accidents or illnesses. Enhanced SQL queries to filter characters based on user ID, improving clarity and functionality.
This commit is contained in:
@@ -18,10 +18,11 @@ pub const QUERY_GET_RANDOM_USER: &str = r#"
|
||||
SELECT id FROM falukant_data.falukant_user ORDER BY RANDOM() LIMIT 1;
|
||||
"#;
|
||||
|
||||
/// Nur NPC-Kleinkinder (user_id IS NULL); Spieler-Charaktere sind von plötzlichem Kindstod ausgenommen.
|
||||
pub const QUERY_GET_RANDOM_INFANT: &str = r#"
|
||||
SELECT c.id AS character_id, c.user_id, CURRENT_DATE - c.birthdate::date AS age_days
|
||||
FROM falukant_data."character" c
|
||||
WHERE c.user_id IS NOT NULL AND c.health > 0 AND CURRENT_DATE - c.birthdate::date <= 730
|
||||
WHERE c.user_id IS NULL AND c.health > 0 AND CURRENT_DATE - c.birthdate::date <= 730
|
||||
ORDER BY RANDOM() LIMIT 1;
|
||||
"#;
|
||||
|
||||
@@ -522,7 +523,7 @@ UPDATE falukant_data."character" SET health = $1 WHERE id = $2;
|
||||
"#;
|
||||
|
||||
pub const QUERY_GET_REGION_CHARACTERS: &str = r#"
|
||||
SELECT id, health FROM falukant_data."character" WHERE region_id = $1 AND health > 0;
|
||||
SELECT id, health, user_id FROM falukant_data."character" WHERE region_id = $1 AND health > 0;
|
||||
"#;
|
||||
|
||||
pub const QUERY_DELETE_DIRECTOR: &str = r#"
|
||||
@@ -605,6 +606,7 @@ pub const QUERY_GET_USERS_TO_UPDATE: &str = r#"
|
||||
WHERE user_id IS NOT NULL;
|
||||
"#;
|
||||
|
||||
/// Spieler-Charaktere mit Health <= 0 werden periodisch zum Tod verarbeitet.
|
||||
pub const QUERY_GET_CHARACTERS_ZERO_HEALTH: &str = r#"
|
||||
SELECT id FROM falukant_data."character"
|
||||
WHERE user_id IS NOT NULL AND health <= 0;
|
||||
|
||||
Reference in New Issue
Block a user