Merge branch 'master' of github.com:PocketMine/PocketMine-MP

This commit is contained in:
Shoghi Cervantes 2014-12-19 01:07:13 +01:00
commit 20f9352714
2 changed files with 20 additions and 8 deletions

View File

@ -101,7 +101,7 @@ abstract class Living extends Entity implements Damageable{
$deltaX = $this->x - $e->x; $deltaX = $this->x - $e->x;
$deltaZ = $this->z - $e->z; $deltaZ = $this->z - $e->z;
$yaw = atan2($deltaX, $deltaZ); $yaw = atan2($deltaX, $deltaZ);
$this->knockBack($e, $damage, sin($yaw), cos($yaw)); $this->knockBack($e, $damage, sin($yaw), cos($yaw), $source->getKnockBack());
} }
$this->setHealth($this->getHealth() - $damage); $this->setHealth($this->getHealth() - $damage);
@ -114,9 +114,8 @@ abstract class Living extends Entity implements Damageable{
$this->attackTime = 10; //0.5 seconds cooldown $this->attackTime = 10; //0.5 seconds cooldown
} }
public function knockBack(Entity $attacker, $damage, $x, $z){ public function knockBack(Entity $attacker, $damage, $x, $z, $base = 0.4){
$f = sqrt($x ** 2 + $z ** 2); $f = sqrt($x ** 2 + $z ** 2);
$base = 0.4;
$motion = new Vector3($this->motionX, $this->motionY, $this->motionZ); $motion = new Vector3($this->motionX, $this->motionY, $this->motionZ);

View File

@ -29,16 +29,19 @@ class EntityDamageByEntityEvent extends EntityDamageEvent{
/** @var Entity */ /** @var Entity */
private $damager; private $damager;
/** @var float */
private $knockBack;
/** /**
* @param Entity $damager * @param Entity $damager
* @param Entity $entity * @param Entity $entity
* @param int $cause * @param int $cause
* @param int|int[] $damage * @param int|int[] $damage
* @param float $knockBack
*/ */
public function __construct(Entity $damager, Entity $entity, $cause, $damage){ public function __construct(Entity $damager, Entity $entity, $cause, $damage, $knockBack = 0.4){
$this->damager = $damager; $this->damager = $damager;
$this->knockBack = $knockBack;
parent::__construct($entity, $cause, $damage); parent::__construct($entity, $cause, $damage);
} }
@ -48,6 +51,16 @@ class EntityDamageByEntityEvent extends EntityDamageEvent{
public function getDamager(){ public function getDamager(){
return $this->damager; return $this->damager;
} }
/**
* @return float
*/
public function getKnockBack(){
return $this->knockBack;
}
/**
* @param float $knockBack
*/
public function setKnockBack($knockBack){
$this->knockBack = $knockBack;
}
} }