|
|
@@ -19,6 +19,7 @@ use pocketmine\level\Level; |
|
|
|
use pocketmine\event\Listener; |
|
|
|
use pocketmine\math\Vector3; |
|
|
|
use pocketmine\scheduler\PluginTask; |
|
|
|
use pocketmine\command\ConsoleCommandSender; |
|
|
|
|
|
|
|
use Ad5001\HideAndSeek\Main; |
|
|
|
use Ad5001\HideAndSeek\GameManager; |
|
|
@@ -38,7 +39,8 @@ class Game extends PluginTask /* Allows easy game running */ implements Listener |
|
|
|
const ROLE_WAIT = 0; |
|
|
|
const ROLE_SEEK = 1; |
|
|
|
const ROLE_HIDE = 2; |
|
|
|
const ROLE_SPECTATE = 2; |
|
|
|
const ROLE_NEW_SEEK = 3; |
|
|
|
const ROLE_SPECTATE = 4; |
|
|
|
|
|
|
|
// Level based informations |
|
|
|
protected $level; |
|
|
@@ -147,9 +149,29 @@ class Game extends PluginTask /* Allows easy game running */ implements Listener |
|
|
|
if($this->win == self::WIN_SEEKERS) { |
|
|
|
$p->sendMessage(Main::PREFIX . "§aThe last hider got caught ! Seekers won !"); |
|
|
|
$p->sendTip("§a§lSeekers won !"); |
|
|
|
swicth($p->HideAndSeekRole) { |
|
|
|
case self::ROLE_HIDE: |
|
|
|
$this->getMain()->getServer()->dispatchCommand(new ConsoleCommandSencer(), $this->getMain()->getConfig()->get("Losers command")); |
|
|
|
break; |
|
|
|
case self::ROLE_NEW_SEEK: |
|
|
|
$this->getMain()->getServer()->dispatchCommand(new ConsoleCommandSencer(), $this->getMain()->getConfig()->get("Semi winners command")); |
|
|
|
break; |
|
|
|
case self::ROLE_SEEK: |
|
|
|
$this->getMain()->getServer()->dispatchCommand(new ConsoleCommandSencer(), $this->getMain()->getConfig()->get("Winners command")); |
|
|
|
break; |
|
|
|
} |
|
|
|
} elseif($this->win == self::WIN_HIDERS) { |
|
|
|
$p->sendMessage(Main::PREFIX . "§aTimes up ! Hiders won !"); |
|
|
|
$p->sendTip("§a§lHiders won !"); |
|
|
|
swicth($p->HideAndSeekRole) { |
|
|
|
case self::ROLE_SEEK: |
|
|
|
case self::ROLE_NEW_SEEK: |
|
|
|
$this->getMain()->getServer()->dispatchCommand(new ConsoleCommandSencer(), $this->getMain()->getConfig()->get("Losers command")); |
|
|
|
break; |
|
|
|
case self::ROLE_HIDE: |
|
|
|
$this->getMain()->getServer()->dispatchCommand(new ConsoleCommandSencer(), $this->getMain()->getConfig()->get("Winners command")); |
|
|
|
break; |
|
|
|
} |
|
|
|
} else { |
|
|
|
$p->sendMessage(Main::PREFIX . "§aGame cancelled !"); |
|
|
|
} |
|
|
@@ -427,7 +449,7 @@ class Game extends PluginTask /* Allows easy game running */ implements Listener |
|
|
|
$player->playsHideAndSeek = true; |
|
|
|
$this->players[$player->getName()] = $player; |
|
|
|
$player->setGamemode(2); // Set it to adventure so player cannot break blocks. |
|
|
|
$this->sendMessage("§a" . $player->getName() . " joined (" . count($this->players) . "/" . $this->getMaxPlayers() . "). " . (count($this->players) - round($this->getMaxPlayers() * 0.75)) . "players left before starting"); |
|
|
|
$this->sendMessage("§a" . $player->getName() . " joined (" . count($this->players) . "/" . $this->getMaxPlayers() . "). " . (round($this->getMaxPlayers() * 0.75) - count($this->players)) . " players left before starting"); |
|
|
|
} else { |
|
|
|
$this->spectators[$player->getName()] = $player; |
|
|
|
$player->HideAndSeekRole = self::ROLE_SPECTATE; |
|
|
@@ -556,8 +578,8 @@ class Game extends PluginTask /* Allows easy game running */ implements Listener |
|
|
|
if($event instanceof \pocketmine\event\entity\EntityDamageByEntityEvent |
|
|
|
&& $event->getEntity() instanceof Player |
|
|
|
&& $event->getDamager() instanceof Player |
|
|
|
&& (isset($event->getDamager()->HideAndSeekRole) ? $event->getDamager()->HideAndSeekRole : -1) == self::ROLE_SEEK |
|
|
|
&& (isset($event->getEntity()->HideAndSeekRole) ? $event->getEntity()->HideAndSeekRole : -1) == self::ROLE_HIDE) { // Tagging |
|
|
|
&& ($event->getDamager()->HideAndSeekRole : -1) == self::ROLE_SEEK || $event->getDamager()->HideAndSeekRole : -1) == self::ROLE_NEW_SEEK) |
|
|
|
&& $event->getEntity()->HideAndSeekRole : -1) == self::ROLE_HIDE) { // Tagging |
|
|
|
$this->hidersLeft--; |
|
|
|
$event->getEntity()->HideAndSeekRole = self::ROLE_SEEK; |
|
|
|
$event->getEntity()->teleport($this->getSpawn()); |
|
|
@@ -566,6 +588,7 @@ class Game extends PluginTask /* Allows easy game running */ implements Listener |
|
|
|
$this->step = self::STEP_WIN; |
|
|
|
$this->win = self::WIN_SEEKERS; |
|
|
|
} else { |
|
|
|
$event->getEntity()->HideAndSeekRole = self::ROLE_NEW_SEEK; |
|
|
|
$event->getEntity()->sendMessage(Main::PREFIX . "§aYou're now a seeker!"); |
|
|
|
$event->getEntity()->sendMessage("§lSeeker: Seek the hiders ! Catch them all to win in " . $this->getSeekTime() . " minutes to win !"); |
|
|
|
} |