mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-09-08 19:02:59 +00:00
Implement anvil fall damage (#5312)
This commit is contained in:
@ -46,6 +46,7 @@ class EntityDamageEvent extends EntityEvent implements Cancellable{
|
||||
public const MODIFIER_TOTEM = 8;
|
||||
public const MODIFIER_WEAPON_ENCHANTMENTS = 9;
|
||||
public const MODIFIER_PREVIOUS_DAMAGE_COOLDOWN = 10;
|
||||
public const MODIFIER_ARMOR_HELMET = 11;
|
||||
|
||||
public const CAUSE_CONTACT = 0;
|
||||
public const CAUSE_ENTITY_ATTACK = 1;
|
||||
@ -63,6 +64,7 @@ class EntityDamageEvent extends EntityEvent implements Cancellable{
|
||||
public const CAUSE_MAGIC = 13;
|
||||
public const CAUSE_CUSTOM = 14;
|
||||
public const CAUSE_STARVATION = 15;
|
||||
public const CAUSE_FALLING_BLOCK = 16;
|
||||
|
||||
private float $baseDamage;
|
||||
private float $originalBase;
|
||||
|
@ -25,6 +25,7 @@ namespace pocketmine\event\player;
|
||||
|
||||
use pocketmine\block\BlockTypeIds;
|
||||
use pocketmine\entity\Living;
|
||||
use pocketmine\entity\object\FallingBlock;
|
||||
use pocketmine\event\entity\EntityDamageByBlockEvent;
|
||||
use pocketmine\event\entity\EntityDamageByEntityEvent;
|
||||
use pocketmine\event\entity\EntityDamageEvent;
|
||||
@ -155,6 +156,19 @@ class PlayerDeathEvent extends EntityDeathEvent{
|
||||
case EntityDamageEvent::CAUSE_MAGIC:
|
||||
return KnownTranslationFactory::death_attack_magic($name);
|
||||
|
||||
case EntityDamageEvent::CAUSE_FALLING_BLOCK:
|
||||
if($deathCause instanceof EntityDamageByEntityEvent){
|
||||
$e = $deathCause->getDamager();
|
||||
if($e instanceof FallingBlock){
|
||||
if($e->getBlock()->getTypeId() === BlockTypeIds::ANVIL){
|
||||
return KnownTranslationFactory::death_attack_anvil($name);
|
||||
}else{
|
||||
return KnownTranslationFactory::death_attack_fallingBlock($name);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case EntityDamageEvent::CAUSE_CUSTOM:
|
||||
break;
|
||||
|
||||
|
Reference in New Issue
Block a user