Skip to content

Commit

Permalink
Declutter
Browse files Browse the repository at this point in the history
Fix for #11
Took me more time than it should have
  • Loading branch information
MHIGists committed Aug 10, 2020
1 parent 6fb6c5a commit 9b6cc11
Show file tree
Hide file tree
Showing 6 changed files with 100 additions and 101 deletions.
59 changes: 41 additions & 18 deletions src/TheClimbing/RPGLike/EventListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,76 +13,99 @@
use pocketmine\event\player\PlayerJoinEvent;
use pocketmine\event\player\PlayerExperienceChangeEvent;
use pocketmine\event\player\PlayerDeathEvent;

use pocketmine\event\player\PlayerQuitEvent;

use TheClimbing\RPGLike\Forms\RPGForms;
use TheClimbing\RPGLike\Players\PlayerManager;
use TheClimbing\RPGLike\Players\RPGPlayer;

class EventListener implements Listener
{
private $rpg;
private $main;

public function __construct(RPGLike $rpg)
{
$this->rpg = $rpg;
$this->main = $rpg;
}

public function onJoin(PlayerJoinEvent $event)
{
$player = $event->getPlayer();
if ($player->getXpLevel() <= 0)
{
$player->setXpLevel(1);
}
PlayerManager::makePlayer($player);
RPGLike::getInstance()->applyDexterityBonus($player);
RPGLike::getInstance()->applyVitalityBonus($player);
$player->applyDexterityBonus();
$player->applyVitalityBonus();
}
public function playerCreate(PlayerCreationEvent $event)
{
$event->setPlayerClass("TheClimbing\RPGLike\Players\RPGPlayer");
$player = new RPGPlayer($event->getInterface(), $event->getAddress(), $event->getPort());

}
public function onMove(PlayerMoveEvent $event)
{
$player = $event->getPlayer();
$playerSkills = $player->getSkills();
if(!empty($playerSkills)){
foreach($playerSkills as $playerSkill){
$playerSkill->checkRange($player);
if ($playerSkill->getMaxEntInRange() > 1)
{
$playerSkill->checkRange();
}
}
}

if ($player->getMaxHealth() != (20 + $player->getVITBonus()))
{
$player->applyVitalityBonus();
}
}
public function dealDamageEvent(EntityDamageByEntityEvent $event)
{
$this->rpg->applyDamageBonus($event);
$this->rpg->applyDefenseBonus($event);
$player = $event->getDamager();
if ($player instanceof RPGPlayer)
{
$player->applyDamageBonus($event);
$player->applyDefenseBonus($event);
}

}

public function onLevelUp(PlayerExperienceChangeEvent $event)
{
$player = $event->getEntity();

$new_lvl = $event->getNewLevel();
$old_level = $event->getOldLevel();

if($new_lvl !== null) {
if($new_lvl > $old_level) {
if($player instanceof RPGPlayer) {
$spleft = $new_lvl - $old_level;

RPGForms::upgradeStatsForm($player, $spleft);

$this->rpg->applyVitalityBonus($player);
$this->rpg->applyDexterityBonus($player);
RPGForms::upgradeStatsForm($player, $spleft);


$player->applyVitalityBonus();
$player->applyDexterityBonus();
}
}
}
}

public function onDeath(PlayerDeathEvent $event)
{
$event->getPlayer()->reset();
$player = $event->getPlayer();
if ($player instanceof RPGPlayer)
{
$player->setDEX(1);
$player->setSTR(1);
$player->setVIT(1);
$player->setDEF(1);
$player->resetSkills();
$player->setXpLevel(1);
}

}
public function onLeave(PlayerQuitEvent $event)
{
Expand Down
19 changes: 12 additions & 7 deletions src/TheClimbing/RPGLike/Forms/RPGForms.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@

class RPGForms
{
private static $main;
public function __construct(RPGLike $rpg)
{
self::$main = $rpg;
}

public static function upgradeStatsForm(RPGPlayer $player, int $spleft)
{
Expand All @@ -40,7 +45,7 @@ public static function upgradeStatsForm(RPGPlayer $player, int $spleft)
case "vitality":
$player->setVIT($player->getVIT() + 1);
$spleft--;
RPGLike::getInstance()->applyVitalityBonus($pl);
$player->applyVitalityBonus();
break;
case "defense":
$player->setDEF($player->getDEF() + 1);
Expand All @@ -49,7 +54,7 @@ public static function upgradeStatsForm(RPGPlayer $player, int $spleft)
case "dexterity":
$player->setDEX($player->getDEX() + 1);
$spleft--;
RPGLike::getInstance()->applyDexterityBonus($pl);
$player->applyDexterityBonus();
break;
case "exit":
if ($spleft > 0)
Expand Down Expand Up @@ -79,15 +84,15 @@ public static function upgradeStatsForm(RPGPlayer $player, int $spleft)

public static function skillHelpForm(RPGPlayer $player, string $skillName)
{
$skillDescription = Utils::parseArrayKeywords(RPGLike::getInstance()->consts, SkillsManager::getSkillDescription($skillName));
$skillDescription = Utils::parseArrayKeywords(self::$main->consts, SkillsManager::getSkillDescription($skillName));
$form = new SimpleForm(function(Player $pl, $data) use ($player) {
switch($data) {
case 'Back':
self::skillsHelpForm($player);
break;
}
});
$form->setTitle(RPGLike::getInstance()->getMessages()['Forms']['SkillInfo']['title']);
$form->setTitle(self::$main->getMessages()['Forms']['SkillInfo']['title']);
$form->setContent($skillDescription['description'] . TextFormat::EOL . $skillDescription['unlocks']);
$form->addButton('Back to menu', -1, '', 'Back');
$player->sendForm($form);
Expand Down Expand Up @@ -129,7 +134,7 @@ public static function menuForm(RPGPlayer $player)
if(array_key_exists('content', $menuStrings)){
$form->setContent($menuStrings['content']);
}else{
RPGLike::getInstance()->getLogger()->alert('Please check messages.yml Menu Form contents are empty');
self::$main->getLogger()->alert('Please check messages.yml Menu Form contents are empty');
}
$player->sendForm($form);
}
Expand Down Expand Up @@ -157,12 +162,12 @@ public static function skillsHelpForm(RPGPlayer $player)
}
public static function parseMessages(RPGPlayer $player ,string $type, int $spleft = 0) : array
{
$messages = RPGLike::getInstance()->getMessages()['Forms'][$type];
$messages = self::$main->getMessages()['Forms'][$type];
$stats = $player->getAttributes();
$stats['PLAYER'] = $player->getName();
$stats['SPLEFT'] = $spleft;

$joined = array_merge($stats, RPGLike::getInstance()->consts);
$joined = array_merge($stats, self::$main->consts);
return Utils::parseArrayKeywords($joined, $messages);
}
}
13 changes: 5 additions & 8 deletions src/TheClimbing/RPGLike/Players/PlayerManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@
class PlayerManager
{
/* @var PlayerManager */
private static $instance;
private static $main;

public function __construct()
public function __construct(RPGLike $rpg)
{
self::$instance = $this;
self::$main = $rpg;
}
public static function makePlayer(Player $player)
{
Expand Down Expand Up @@ -49,7 +49,7 @@ public static function makePlayer(Player $player)

public static function getCachedPlayers()
{
return RPGLike::getInstance()->getConfig()->getNested('Players');
return self::$main->getConfig()->getNested('Players');
}

/**
Expand All @@ -70,8 +70,5 @@ public static function hasPlayed(string $playerName)
return false;
}
}
public static function getInstance() : PlayerManager
{
return self::$instance;
}

}
63 changes: 31 additions & 32 deletions src/TheClimbing/RPGLike/Players/RPGPlayer.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

namespace TheClimbing\RPGLike\Players;

use pocketmine\entity\Attribute;
use pocketmine\event\entity\EntityDamageByEntityEvent;
use pocketmine\Player;

use TheClimbing\RPGLike\Forms\RPGForms;
Expand Down Expand Up @@ -97,7 +99,6 @@ public function setVIT(int $vit) : void
{
$this->vit = $vit;
$this->calcVITBonus();
RPGLike::getInstance()->applyVitalityBonus($this);
}
public function getVIT() : int
{
Expand All @@ -123,7 +124,7 @@ public function setDEX(int $dex) : void
{
$this->dex = $dex;
$this->calcDEXBonus();
RPGLike::getInstance()->applyDexterityBonus($this);
$this->applyDexterityBonus();
}
public function getDEX() : int
{
Expand Down Expand Up @@ -237,26 +238,39 @@ public function getSPleft()
{
return $this->spleft;
}
public function reset()
public function resetSkills()
{
$this->setXPLevel(1);

$this->setDEX(1);
$this->setSTR(1);
$this->setVIT(1);
$this->setDEF(1);

$this->calcDEXBonus();
$this->calcDEFBonus();
$this->calcVITBonus();
$this->calcSTRBonus();

$this->skills = [];
}
public function applyDamageBonus(EntityDamageByEntityEvent $event) : void
{
$damager = $event->getDamager();
if($damager instanceof RPGPlayer) {
$baseDamage = $event->getBaseDamage();
$event->setBaseDamage($baseDamage + $damager->getSTRBonus());
}
}

RPGLike::getInstance()->applyDexterityBonus($this);
RPGLike::getInstance()->applyVitalityBonus($this);
public function applyVitalityBonus()
{
$this->setMaxHealth(20 + $this->getVITBonus());
$this->setHealth(20 + $this->getVITBonus());
}

public function applyDefenseBonus(EntityDamageByEntityEvent $event) : void
{
$receiver = $event->getEntity();
if($receiver instanceof RPGPlayer) {
$receiver->setAbsorption($receiver->getAbsorption() + $receiver->getDEFBonus());
}
}

public function applyDexterityBonus()
{
$dex = $this->getDEXBonus();
$movement = $this->getAttributeMap()->getAttribute(Attribute::MOVEMENT_SPEED);
$movement->setValue($movement->getValue() * (1 + $dex));
}
public function savePlayerVariables() : void
{
$playerVars = [
Expand All @@ -271,20 +285,5 @@ public function savePlayerVariables() : void
$this->config->save();
}

/**
* @return float
*/
public function getX()
{
return $this->lastX;
}

/**
* @return float
*/
public function getZ()
{
return $this->lastZ;
}
}

37 changes: 5 additions & 32 deletions src/TheClimbing/RPGLike/RPGLike.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class RPGLike extends PluginBase

public function onLoad()
{
self::$instance = $this;


$this->saveDefaultConfig();
$this->saveResource('messages.yml');
Expand All @@ -38,8 +38,8 @@ public function onLoad()
$messages = (new Config($this->getDataFolder() . 'messages.yml', Config::YAML))->getAll();
$this->messages = $messages;

new RPGForms();
new PlayerManager();
new RPGForms($this);
new PlayerManager($this);
new SkillsManager($this);
}

Expand All @@ -54,6 +54,7 @@ public function onEnable()
$this->getServer()->getPluginManager()->registerEvents(new EventListener($this), $this);

$this->getSkillUnlocks();
self::$instance = $this;
}


Expand Down Expand Up @@ -97,35 +98,7 @@ public function getSkillUnlocks() : void
{
$this->skillUnlocks = $this->getConfig()->getNested('SkillUpgrades');
}
public function applyDamageBonus(EntityDamageByEntityEvent $event) : void
{
$damager = $event->getDamager();
if($damager instanceof RPGPlayer) {
$baseDamage = $event->getBaseDamage();
$event->setBaseDamage($baseDamage + $damager->getSTRBonus());
}
}

public function applyVitalityBonus(RPGPlayer $player)
{
$player->setMaxHealth(20 + $player->getVITBonus());
$player->setHealth(20 + $player->getVITBonus());
}

public function applyDefenseBonus(EntityDamageByEntityEvent $event) : void
{
$receiver = $event->getEntity();
if($receiver instanceof RPGPlayer) {
$receiver->setAbsorption($receiver->getAbsorption() + $receiver->getDEFBonus());
}
}

public function applyDexterityBonus(RPGPlayer $player)
{
$dex = $player->getDEXBonus();
$movement = $player->getAttributeMap()->getAttribute(Attribute::MOVEMENT_SPEED);
$movement->setValue($movement->getValue() * (1 + $dex));
}




Expand Down
Loading

0 comments on commit 9b6cc11

Please sign in to comment.