initial commit
This commit is contained in:
commit
1e1aa7d461
215 changed files with 35140 additions and 0 deletions
81
app/Warcraft/Classes.php
Normal file
81
app/Warcraft/Classes.php
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
<?php
|
||||
|
||||
namespace App\Warcraft;
|
||||
|
||||
use Illuminate\Support\Collection;
|
||||
|
||||
class Classes extends Collection
|
||||
{
|
||||
/**
|
||||
* Enum constants
|
||||
*/
|
||||
const WARRIOR = 'warrior';
|
||||
const PALADIN = 'paladin';
|
||||
const HUNTER = 'hunter';
|
||||
const ROGUE = 'rogue';
|
||||
const PRIEST = 'priest';
|
||||
const SHAMAN = 'shaman';
|
||||
const MAGE = 'mage';
|
||||
const WARLOCK = 'warlock';
|
||||
const DRUID = 'druid';
|
||||
|
||||
public function __construct($items = null)
|
||||
{
|
||||
if ($items === null) {
|
||||
$this->items = [
|
||||
self::WARRIOR => 'Warrior',
|
||||
self::PALADIN => 'Paladin',
|
||||
self::HUNTER => 'Hunter',
|
||||
self::ROGUE => 'Rogue',
|
||||
self::PRIEST => 'Priest',
|
||||
self::SHAMAN => 'Shaman',
|
||||
self::MAGE => 'Mage',
|
||||
self::WARLOCK => 'Warlock',
|
||||
self::DRUID => 'Druid'
|
||||
];
|
||||
} else {
|
||||
parent::__construct($items);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter classes by race.
|
||||
*/
|
||||
public function race($race) : self
|
||||
{
|
||||
switch($race) {
|
||||
case Races::HUMAN :
|
||||
return $this->only(self::WARRIOR, self::PALADIN, self::ROGUE,
|
||||
self::PRIEST, self::MAGE, self::WARLOCK);
|
||||
case Races::DWARF :
|
||||
return $this->only(self::WARRIOR, self::HUNTER, self::PALADIN,
|
||||
self::ROGUE, self::PRIEST);
|
||||
case Races::GNOME :
|
||||
return $this->only(self::WARRIOR, self::ROGUE, self::MAGE,
|
||||
self::WARLOCK);
|
||||
case Races::NIGHTELF :
|
||||
return $this->only(self::WARRIOR, self::HUNTER, self::ROGUE,
|
||||
self::PRIEST, self::DRUID);
|
||||
case Races::DRAENEI :
|
||||
return $this->only(self::WARRIOR, self::HUNTER, self::PALADIN,
|
||||
self::SHAMAN, self::PRIEST, self::MAGE);
|
||||
case Races::ORC :
|
||||
return $this->only(self::WARRIOR, self::HUNTER, self::ROGUE,
|
||||
self::SHAMAN, self::WARLOCK);
|
||||
case Races::TROLL :
|
||||
return $this->only(self::WARRIOR, self::HUNTER, self::ROGUE,
|
||||
self::PRIEST, self::SHAMAN, self::MAGE);
|
||||
case Races::TAUREN :
|
||||
return $this->only(self::WARRIOR, self::HUNTER, self::SHAMAN,
|
||||
self::DRUID);
|
||||
case Races::UNDEAD :
|
||||
return $this->only(self::WARRIOR, self::ROGUE, self::PRIEST,
|
||||
self::MAGE, self::WARLOCK);
|
||||
case Races::BLOODELF :
|
||||
return $this->only(self::PALADIN, self::HUNTER, self::ROGUE,
|
||||
self::PRIEST, self::MAGE, self::WARLOCK);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
90
app/Warcraft/Races.php
Normal file
90
app/Warcraft/Races.php
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
<?php
|
||||
|
||||
namespace App\Warcraft;
|
||||
|
||||
use Illuminate\Support\Collection;
|
||||
|
||||
class Races extends Collection
|
||||
{
|
||||
/**
|
||||
* Enum constants
|
||||
*/
|
||||
const HUMAN = 'human';
|
||||
const DWARF = 'dwarf';
|
||||
const GNOME = 'gnome';
|
||||
const NIGHTELF = 'night elf';
|
||||
const DRAENEI = 'draenei';
|
||||
const ORC = 'orc';
|
||||
const TROLL = 'troll';
|
||||
const TAUREN = 'tauren';
|
||||
const UNDEAD = 'undead';
|
||||
const BLOODELF = 'blood elf';
|
||||
|
||||
public function __construct($items = null)
|
||||
{
|
||||
if ($items === null) {
|
||||
$this->items = [
|
||||
self::HUMAN => 'Human',
|
||||
self::DWARF => 'Dwarf',
|
||||
self::GNOME => 'Gnome',
|
||||
self::NIGHTELF => 'Night elf',
|
||||
self::DRAENEI => 'Draenei',
|
||||
self::ORC => 'Orc',
|
||||
self::TROLL => 'Troll',
|
||||
self::TAUREN => 'Tauren',
|
||||
self::UNDEAD => 'Undead',
|
||||
self::BLOODELF => 'Blood elf'
|
||||
];
|
||||
} else {
|
||||
parent::__construct($items);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter only alliance races
|
||||
*/
|
||||
public function alliance() : self
|
||||
{
|
||||
return $this->only(self::HUMAN, self::DWARF, self::GNOME, self::NIGHTELF, self::DRAENEI);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter only alliance races
|
||||
*/
|
||||
public function horde() : self
|
||||
{
|
||||
return $this->only(self::ORC, self::TROLL, self::TAUREN, self::UNDEAD, self::BLOODELF);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter races by class.
|
||||
*/
|
||||
public function class($class) : self
|
||||
{
|
||||
switch($class) {
|
||||
case Classes::WARRIOR :
|
||||
return $this->except(self::BLOODELF);
|
||||
case Classes::PALADIN :
|
||||
return $this->only(self::HUMAN, self::DWARF, self::DRAENEI, self::BLOODELF);
|
||||
case Classes::HUNTER :
|
||||
return $this->only(self::HUMAN, self::DWARF, self::NIGHTELF, self::DRAENEI,
|
||||
self::ORC, self::TROLL, self::TAUREN, self::BLOODELF);
|
||||
case Classes::ROGUE :
|
||||
return $this->only(self::HUMAN, self::DWARF, self::NIGHTELF, self::GNOME,
|
||||
self::ORC, self::TROLL, self::UNDEAD, self::BLOODELF);
|
||||
case Classes::PRIEST :
|
||||
return $this->only(self::HUMAN, self::DWARF, self::NIGHTELF, self::DRAENEI,
|
||||
self::TROLL, self::UNDEAD, self::BLOODELF);
|
||||
case Classes::SHAMAN :
|
||||
return $this->only(self::DRAENEI, self::ORC, self::TROLL, self::TAUREN);
|
||||
case Classes::MAGE :
|
||||
return $this->only(self::HUMAN, self::GNOME, self::TROLL, self::UNDEAD, self::BLOODELF);
|
||||
case Classes::WARLOCK :
|
||||
return $this->only(self::HUMAN, self::GNOME, self::ORC, self::UNDEAD, self::BLOODELF);
|
||||
case Classes::DRUID :
|
||||
return $this->only(self::NIGHTELF, self::TAUREN);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
Reference in a new issue