aboutsummaryrefslogtreecommitdiff
path: root/src/scalevalapokalypsi/Model/Event.scala
blob: cba611d4bc2dda7fe53bc7173f5113f71e4aba91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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