Skip to content

Commit

Permalink
Added the submerged_damage.py example.
Browse files Browse the repository at this point in the history
  • Loading branch information
vinci6k committed Mar 20, 2021
1 parent 9ffbd5f commit 4ef9458
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions examples/submerged_damage/submerged_damage.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# ../submerged_damage/submerged_damage.py

# Source.Python
from entities import TakeDamageInfo
from entities.hooks import EntityCondition, EntityPreHook
from players.entity import Player

# Enki
from enki.constants import WaterLevel


@EntityPreHook(EntityCondition.is_player, 'on_take_damage_alive')
def on_take_damage_alive_pre(stack_data):
"""Called when a player takes damage."""
# Get the Player instance.
player = Player._obj(stack_data[0])

# Is the player fully submerged in water?
if player.water_level == WaterLevel.EYES:
# We need a TakeDamageInfo instance in order to modify the damage.
info = TakeDamageInfo._obj(stack_data[1])
# Lower the damage by half (50%).
info.damage *= 0.5

0 comments on commit 4ef9458

Please sign in to comment.