From 238bdb7e3eba4f039234998380b2ad70e4162060 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Wed, 25 Sep 2024 17:31:18 +0200 Subject: core: add ::defeated property to participant --- core/include/turns/core/participant.hpp | 6 ++++++ core/src/participant.cpp | 3 +++ 2 files changed, 9 insertions(+) (limited to 'core') diff --git a/core/include/turns/core/participant.hpp b/core/include/turns/core/participant.hpp index cd99fbb..a58e198 100644 --- a/core/include/turns/core/participant.hpp +++ b/core/include/turns/core/participant.hpp @@ -24,6 +24,11 @@ namespace turns::core auto operator<=>(participant const & other) const noexcept -> std::partial_ordering; + auto defeated(this auto && self) + { + return self.m_defeated.get_proxy(); + } + template auto disposition(this Self && self) { @@ -51,6 +56,7 @@ namespace turns::core auto serialize() -> nlohmann::json; private: + Glib::Property m_defeated{*this, "defeated", false}; Glib::Property m_disposition{*this, "disposition", core::disposition::neutral}; Glib::Property m_is_active{*this, "active", false}; Glib::Property m_name{*this, "name", ""}; diff --git a/core/src/participant.cpp b/core/src/participant.cpp index 63df96e..3aadc80 100644 --- a/core/src/participant.cpp +++ b/core/src/participant.cpp @@ -27,8 +27,10 @@ namespace turns::core auto disposition = serialized.value("disposition", disposition::neutral); auto priority = serialized.value("priority", 0.0f); auto name = serialized.value("name", std::string{}); + auto defeated = serialized.value("defeated", false); auto instance = create(name, priority, disposition); + instance->defeated() = defeated; instance->is_active() = active; return instance; @@ -57,6 +59,7 @@ namespace turns::core { return nlohmann::json{ {"active", m_is_active }, + {"defeated", m_defeated }, {"disposition", m_disposition}, {"name", m_name }, {"priority", m_priority }, -- cgit v1.2.3