boseiju/ability_tree/event/creature_action_event/
creature_dies_action.rs1use crate::ability_tree::AbilityTreeNode;
2use crate::ability_tree::MAX_CHILDREN_PER_NODE;
3
4#[derive(serde::Serialize, serde::Deserialize)]
9#[derive(Debug, Clone, PartialEq, Eq)]
10pub struct CreatureDiesAction {
11 #[cfg(feature = "spanned_tree")]
12 pub span: crate::ability_tree::span::TreeSpan,
13}
14
15impl AbilityTreeNode for CreatureDiesAction {
16 fn node_id(&self) -> usize {
17 use idris::Idris;
18 crate::ability_tree::NodeKind::CreatureDiesAction.id()
19 }
20
21 fn children(&self) -> arrayvec::ArrayVec<&dyn AbilityTreeNode, MAX_CHILDREN_PER_NODE> {
22 arrayvec::ArrayVec::new_const()
23 }
24
25 fn display(&self, out: &mut crate::utils::TreeFormatter<'_>) -> std::io::Result<()> {
26 use std::io::Write;
27 write!(out, "creature dies")?;
28 Ok(())
29 }
30
31 fn node_tag(&self) -> &'static str {
32 "creature action: dies"
33 }
34
35 #[cfg(feature = "spanned_tree")]
36 fn node_span(&self) -> crate::ability_tree::span::TreeSpan {
37 self.span
38 }
39}
40
41#[cfg(feature = "parser")]
42impl crate::utils::DummyInit for CreatureDiesAction {
43 fn dummy_init() -> Self {
44 Self {
45 #[cfg(feature = "spanned_tree")]
46 span: Default::default(),
47 }
48 }
49}