From a98f089035dbcc94c14c9cd6246c3150bee84241 Mon Sep 17 00:00:00 2001 From: Joel Kronqvist Date: Sun, 17 Nov 2024 22:32:25 +0200 Subject: Improved client recovery from singing & added better logic for observations The logic should still be implemented for all observations --- src/scalevalapokalypsi/Model/Event.scala | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/scalevalapokalypsi/Model/Event.scala (limited to 'src/scalevalapokalypsi/Model/Event.scala') diff --git a/src/scalevalapokalypsi/Model/Event.scala b/src/scalevalapokalypsi/Model/Event.scala new file mode 100644 index 0000000..cba611d --- /dev/null +++ b/src/scalevalapokalypsi/Model/Event.scala @@ -0,0 +1,28 @@ +package scalevalapokalypsi.Model + +import scalevalapokalypsi.Model.Entities.Entity + +/** A description of an action. + * + * @param target the entity that was as a target in this event + * @param inFirstPerson textual description of the event in first person + * @param inThirdPerson textual description of the event in third person + */ +class Event( + val target: Entity, + val inFirstPerson: String, + val inThirdPerson: String +): + + /** Gets the description of this event as seen by the given + * entity. Note that this method does no checks whether the given entity + * could even see the event, only what it would have looked like to them. + * + * @param entity the entity whose perspective to use + * @return a textual description of the event + */ + def descriptionFor(entity: Entity): String = + if entity == target then inFirstPerson + else inThirdPerson + +end Event \ No newline at end of file -- cgit v1.2.3