Paste #14601: Untitled Paste

Date: 2015/03/19 18:34:37 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


Damage:
  type: world
  debug: true
  events:
    on player damaged:
    - ^if <context.cause> == ENTITY_ATTACK {
      - queue clear }
# --------------------------------------ENVIRONMENT---------------------------------------------
    - ^if <context.cause> == FALL {
      - narrate "<red>YOU fell for <context.final_damage.round_up> damage!"
      - determine damage }
    - ^if <context.cause> == THORNS {
      - narrate "<red>YOU were injured by thorns for <context.final_damage.round_up> damage!"
      - determine damage }
    - ^if <context.cause> == MAGIC {
      - narrate "<red>YOU were injured by magic for <context.final_damage.round_up> damage!"
      - determine damage }
    - ^if <context.cause> == POISON {
      - narrate "<red>YOU were poisoned for <context.final_damage.round_up> damage!"
      - determine damage }
    - ^if <context.cause> == LIGHTNING {
      - narrate "<red>YOU were shocked by lightning for <context.final_damage.round_up> damage!"
      - determine damage }
    - ^if <context.cause> == DROWNING || <context.cause> == DROWNING {
      - narrate "<red>YOU suffocated for <context.final_damage.round_up> damage!"
      - determine damage }
    - ^if <context.cause> == STARVATION {
      - narrate "<red>YOU hunger for <context.final_damage.round_up> damage!"
      - determine damage }
    - ^if <context.cause> == FALLING_BLOCK {
      - narrate "<red>YOU are injured by a falling <context.damager> for <context.final_damage.round_up> damage!"
      - determine damage }
    - ^if <context.cause> == LAVA || <context.cause> == FIRE || <context.cause> == FIRE_TICK || <context.cause> == BLOCK_EXPLOSION || ENTITY_EXPLOSION {
      - narrate "<red>YOU were burned for <context.final_damage.round_up> damage!"
      - determine damage }

    on entity damages entity:
##-----------------------------------------PvP----------------------------------------------
    - ^if <context.damager.is_player> && <context.entity.is_player> {
      - if !<proc[ValidTargetCheck].context[<context.damager>|<context.entity>|25]> {
        - determine cancelled }
      - if <proc[CustomItemCheck].context[<context.damager.item_in_hand.simple>|<context.damager>]> {
        - define damage <proc[CustomItemDamage].context[<context.damager.item_in_hand.simple>|<context.cause>]>
        - inject s@DamageArmorCalculator
        - inject s@NarrateDamage
        - determine <def[damage]> }
        else {
        - inject s@NarrateDamage
        - determine damage }
      }

#------------------------------------Player vs NPC----------------------------------------
      else if <context.damager.is_player> && <context.entity.is_npc> {
      - if !<proc[ValidTargetCheck].context[<context.damager>|<context.entity>|25]> {
        - determine cancelled }
# ---------------------------------------BOSSES--------------------------------------------
      - ^if <context.entity> == <global.flag[mslowercrypt_npc]> || <context.entity> == <global.flag[VestatheWitch]> {
        - queue clear }

      - if <proc[CustomItemCheck].context[<context.damager.item_in_hand.simple>|<context.damager>]> {
        - define damage <proc[CustomItemDamage].context[<context.damager.item_in_hand.simple>|<context.cause>]>
        - inject s@DamageArmorCalculator
        - inject s@NarrateDamage
        - determine <def[damage]> }
        else {
        - inject s@NarrateDamage
        - determine damage }
      }

# -------------------------------------------PvE-----------------------------------------------
      else if <context.damager.is_player> && !<context.entity.is_player> {
      - if !<proc[ValidTargetCheck].context[<context.damager>|<context.entity>|25]> {
        - determine cancelled }
# --------------------------------PLAYER ATTACKING CUSTOM MOB-----------------------------------
      - if <proc[CustomMobCheck].context[<context.entity>]> {
        - inject <proc[CustomMobDefend].context[<context.entity>]> }

      - if <proc[CustomItemCheck].context[<context.damager.item_in_hand.simple>|<context.damager>]> {
        - define damage <proc[CustomItemDamage].context[<context.damager.item_in_hand.simple>|<context.cause>]>
        - inject s@DamageArmorCalculator
        - announce "damage <context.damage>, final_damage <context.final_damage>,  multiplier <def[multiplier]>, newdamage <def[damage]>, newfinaldamage <def[newfinaldamage]>, newarmor <def[newarmor]>"
        - inject s@NarrateDamage
        - determine <def[damage]> }
      }

# ------------------------------------NPC vs Player----------------------------------------
      else if <context.damager.is_npc> && <context.entity.is_player> {
# ---------------------------------------BOSSES--------------------------------------------
      - ^if <context.entity> == <global.flag[mslowercrypt_npc]> || <context.entity> == <global.flag[VestatheWitch]> {
        - queue clear }

      - if <proc[CustomItemCheck].context[<context.damager.item_in_hand.simple>|<context.damager>]> {
        - define damage <proc[CustomItemDamage].context[<context.damager.item_in_hand.simple>|<context.cause>]>
        - inject s@DamageArmorCalculator
        - inject s@NarrateDamage
        - determine <def[damage]> }
        else {
        - inject s@NarrateDamage
        - determine damage }
      }

##------------------------------------NPC vs Entity----------------------------------------
      else if <context.damager.is_npc> && !<context.entity.is_player> {
##---------------------------------------BOSSES--------------------------------------------
      # - ^if <context.entity> == <global.flag[mslowercrypt_npc]> || <context.entity> == <global.flag[VestatheWitch]> {
        # - queue clear }

      - if <proc[CustomItemCheck].context[<context.damager.item_in_hand.simple>|<context.damager>]> {
        - define damage <proc[CustomItemDamage].context[<context.damager.item_in_hand.simple>|<context.cause>]>
        - inject s@DamageArmorCalculator
        # - announce "damage <context.damage>, final_damage <context.final_damage>,  multiplier <def[multiplier]>, newdamage <def[damage]>, newfinaldamage <def[newfinaldamage]>, newarmor <def[newarmor]>"
        - inject s@NarrateDamage
        - determine <def[damage]> }
        else {
        - inject s@NarrateDamage
        - determine damage }
      }

#-----------------------------------------EvP----------------------------------------------
      else if !<context.damager.is_player> && <context.entity.is_player> {
#------------------------------CUSTOM MOB ATTACKING PLAYER---------------------------------
      - if <proc[CustomMobCheck].context[<context.damager>]> {
        - inject <proc[CustomMobAttack].context[<context.damager>]>
        - inject s@DamageArmorCalculator
        - inject s@NarrateDamage
        - determine <def[damage]> }
        else {
        - inject s@NarrateDamage
        - determine damage }
      }

#-----------------------------------------EvE----------------------------------------------
      else if !<context.damager.is_player> && !<context.entity.is_player> {
#--------------------------------CUSTOM MOB ATTACKING MOB----------------------------------
      - if <proc[CustomMobCheck].context[<context.damager>]> {
        - inject <proc[CustomMobAttack].context[<context.damager>]>
        - inject s@DamageArmorCalculator
        - determine <def[damage]> }
#-- --------------------------CUSTOM MOB ATTACKING CUSTOM MOB------------------------------
        - if <proc[CustomMobCheck].context[<context.entity>]> {
          - inject <proc[CustomMobDefend].context[<context.entity>]> }
          - inject s@NarrateDamage
        else {
        - inject s@NarrateDamage
        - determine damage }
      }



# -------------------------------------MISCELLANEOUS-------------------------------------------
    - ^if <context.entity.name> == ITEM_FRAME || <context.entity.name> == DROPPED_ITEM {
      - determine damage }