Completed
Push — feature/player-elo-v3 ( 8c49df...69db9f )
by Vladimir
03:30
created

ColorTeam::isValid()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
/**
3
 * This file contains functionality relating to the fun match teams
4
 *
5
 * @package    BZiON\Models
6
 * @license    https://github.com/allejo/bzion/blob/master/LICENSE.md GNU General Public License Version 3
7
 */
8
9
/**
10
 * A team identified by its color in BZFlag
11
 * @package    BZiON\Models
12
 */
13
class ColorTeam implements TeamInterface
14
{
15
    /**
16
     * The color of the team
17
     *
18
     * @var string
19
     */
20
    protected $color;
21
22
    /**
23
     * Define a new ColorTeam
24
     * @param string $color The color of the team
25
     */
26
    public function __construct($color)
27
    {
28
        $this->color = strtolower($color);
29
    }
30
31
    /**
32
     * Get a unique identifier for the team
33
     *
34
     * @return string
35
     */
36
    public function getId()
37
    {
38
        return $this->color;
39
    }
40
41
    /**
42
     * {@inheritdoc}
43
     */
44
    public function getName()
45
    {
46
        return ucwords($this->color) . " Team";
47
    }
48
49
    /**
50
     * {@inheritdoc}
51
     */
52
    public function getAvatar()
53
    {
54
        return "assets/imgs/team_" . $this->color . ".png";
55
    }
56
57
    /**
58
     * {@inheritdoc}
59
     */
60
    public function isValid()
61
    {
62
        return true;
63
    }
64
65
    /**
66
     * {@inheritdoc}
67
     */
68
    public function supportsMatchCount()
69
    {
70
        return false;
71
    }
72
73
    /**
74
     * Return whether a team color is valid
75
     *
76
     * @param string $color The color to check
77
     */
78
    public static function isValidTeamColor($color)
79
    {
80
        return in_array($color, array('red', 'green', 'blue', 'purple'));
81
    }
82
83
    /**
84
     * Find out if a team is the same as another team
85
     *
86
     * @param mixed $team The team to compare
87
     * @param bool
88
     */
89
    public function isSameAs($team)
90
    {
91
        $sameType = $this instanceof $team || $team instanceof $this;
92
93
        return $sameType && $this->color === $team->color;
94
    }
95
}
96