52 lines
1.7 KiB
Rust
52 lines
1.7 KiB
Rust
//! NPC 写入命令。
|
|
//!
|
|
//! 用于表达聊天、帮助、送礼、招募、开战和切磋等输入。
|
|
|
|
use crate::domain::{NpcSocialActionKind, NpcStanceProfile};
|
|
use serde::{Deserialize, Serialize};
|
|
#[cfg(feature = "spacetime-types")]
|
|
use spacetimedb::SpacetimeType;
|
|
|
|
#[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))]
|
|
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
|
pub struct NpcStateUpsertInput {
|
|
pub runtime_session_id: String,
|
|
pub npc_id: String,
|
|
pub npc_name: String,
|
|
pub affinity: i32,
|
|
pub help_used: bool,
|
|
pub chatted_count: u32,
|
|
pub gifts_given: u32,
|
|
pub recruited: bool,
|
|
pub trade_stock_signature: Option<String>,
|
|
pub revealed_facts: Vec<String>,
|
|
pub known_attribute_rumors: Vec<String>,
|
|
pub first_meaningful_contact_resolved: bool,
|
|
pub seen_backstory_chapter_ids: Vec<String>,
|
|
pub stance_profile: Option<NpcStanceProfile>,
|
|
pub updated_at_micros: i64,
|
|
}
|
|
|
|
#[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))]
|
|
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
|
pub struct ResolveNpcSocialActionInput {
|
|
pub runtime_session_id: String,
|
|
pub npc_id: String,
|
|
pub npc_name: String,
|
|
pub action_kind: NpcSocialActionKind,
|
|
pub affinity_gain_override: Option<i32>,
|
|
pub note: Option<String>,
|
|
pub updated_at_micros: i64,
|
|
}
|
|
|
|
#[cfg_attr(feature = "spacetime-types", derive(SpacetimeType))]
|
|
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
|
pub struct ResolveNpcInteractionInput {
|
|
pub runtime_session_id: String,
|
|
pub npc_id: String,
|
|
pub npc_name: String,
|
|
pub interaction_function_id: String,
|
|
pub release_npc_id: Option<String>,
|
|
pub updated_at_micros: i64,
|
|
}
|