From 5541b5b5637278c60ac49f1883b6000fd594450b Mon Sep 17 00:00:00 2001 From: Ruben Date: Sat, 10 Sep 2016 01:10:37 +0100 Subject: [PATCH] try achievements --- bin/generate_db.php | 13 +++++++++++++ src/Models/Game.php | 29 ++++++++++++++++++++++++++++- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/bin/generate_db.php b/bin/generate_db.php index 5dacba3..275c729 100644 --- a/bin/generate_db.php +++ b/bin/generate_db.php @@ -37,6 +37,19 @@ foreach($queries as $sql){ echo "$sql;\n"; } $tool->updateSchema($classes); +// add achievements +for ($i=1; $i < 10; $i++) { + $achievement = $em->getRepository(EmotionHero\Models\Achievement::class)->find($i); + if(empty($achievement)) + { + $achievement = new EmotionHero\Models\Achievement($i); + $achievement->setTitle("zomaar iets #".$i); + $em->persist($achievement); + $em->flush(); + } +} + + die(); // ADD EMOTIONS diff --git a/src/Models/Game.php b/src/Models/Game.php index 437b574..6ce991b 100644 --- a/src/Models/Game.php +++ b/src/Models/Game.php @@ -56,6 +56,17 @@ class Game */ private $originalGameAt; + + /** + * @var ArrayCollection[Achievements] + * @ORM\ManyToMany(targetEntity="Achievement", cascade={"persist"}) + * @ORM\JoinTable(name="games_achievements", + * joinColumns={@ORM\JoinColumn(name="game_id", referencedColumnName="id")}, + * inverseJoinColumns={@ORM\JoinColumn(name="achievement_id", referencedColumnName="id")} + * ) + */ + private $achievements; + /** * @var \DateTime $created * @@ -67,6 +78,7 @@ class Game public function __construct() { $this->hits = new ArrayCollection(); + $this->achievements = new ArrayCollection(); } public function addHit(Hit $hit) { @@ -241,10 +253,25 @@ class Game if($diffExpression) { /* @var $diffExpressionText string */ $diffExpressionText = $betterHit->getExpressions()::$EXPRESSIONS_2ND_PERSON[$diffExpression]; - $text .= " To show your empathy, you have to " . $diffExpressionText ." " . $diff . "% " . $diffText ."."; + $text .= " To show more empathy, try to " . $diffExpressionText ." " . $diff . "% " . $diffText ."."; } } return $text; } + + /** + * Gets the achievements + * + * @return ArrayCollection[Achievements] + */ + public function getAchievements() + { + return $this->achievements; + } + + public function addAchievement(Achievement $a) + { + $this->achievements->add($a); + } }