-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathPersonalAction.php
65 lines (51 loc) · 1.46 KB
/
PersonalAction.php
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
namespace Component\Entity\Achievement;
use Component\Entity\PlayerInterface;
class PersonalAction implements PersonalActionInterface
{
/** @var int */
protected $id;
/** @var \DateTime */
protected $achievedAt;
/** @var ActionDefinitionInterface */
protected $actionDefinition;
/** @var PlayerInterface */
protected $player;
public function __construct(
PlayerInterface $player,
ActionDefinitionInterface $actionDefinition,
\DateTime $achievedAt = null
) {
$this->setPlayer($player);
$this->setActionDefinition($actionDefinition);
$this->setAchievedAt($achievedAt ?: new \DateTime());
}
public function getAchievedAt(): \DateTime
{
return $this->achievedAt;
}
public function getActionDefinition(): ActionDefinitionInterface
{
return $this->actionDefinition;
}
public function setAchievedAt(\DateTime $achievedAt): void
{
$this->achievedAt = $achievedAt;
}
public function setActionDefinition(ActionDefinitionInterface $actionDefinition): void
{
$this->actionDefinition = $actionDefinition;
}
public function setPlayer(PlayerInterface $player): void
{
$this->player = $player;
}
public function getPlayer(): PlayerInterface
{
return $this->player;
}
public function __toString(): string
{
return $this->getActionDefinition()->getName();
}
}