DamageMobj
virtual int DamageMobj (Actor inflictor, Actor source, int damage, Name mod [, int flags = 0 [, double angle = 0]])
Usage
Called by the actor whenever it takes damage. Returns the amount of damage the caller actually took from the attack.
Can be both overridden on a specific actor in order to add something to the moment they take damage, and also called on an actor directly to deal damage to them.
Parameters
- inflictor - The actor dealing the damage. This is the missile for projectiles and the puff for hitscan attacks. For monster melee attacks this is the same as the source.
- source - The actor responsible for the inflictor.
- damage - The amount of damage to deal.
- mod - The damage type applied to the attack.
- flags - The damage flags to use in the attack:
- DMG_NO_ARMOR - Don't call AbsorbDamage on any of the victim's inventory items.
- DMG_NO_PAIN - Tell the victim not to enter their Pain state.
- DMG_INFLICTOR_IS_PUFF - Used by ApplyKickback to determine whether the origin should be the source (if the flag is set) or the inflictor. Automatically set by hitscan attacks.
- DMG_THRUSTLESS - Don't call ApplyKickback on the victim.
- DMG_FORCED - Ignores all damage negation flags/properties the victim has such as NODAMAGE and doesn't call special damage functions e.g. TakeSpecialDamage. Players with the NODAMAGE flag, god2, or buddha2 cheats are immune due to potential abuse.
- DMG_NO_FACTOR - Don't apply the victim's damage factors.
- DMG_PLAYERATTACK - The attack came from a hitscan weapon fired by a player.
- DMG_FOILINVUL - Ignore the INVULNERABLE flag if the victim has it set.
- DMG_FOILBUDDHA - Ignore the BUDDHA flag if the victim has it set.
- DMG_NO_PROTECT - Don't call ModifyDamage on any of the victim's inventory items.
- DMG_NO_ENHANCE - Don't call ModifyDamage on any of the source's inventory items.
- DMG_USEANGLE - Use the angle parameter when applying kickback instead of having ApplyKickback calculate the angle from the origin of the attack.
- DMG_EXPLOSION - Marks the attack as splash damage from an explosion. Does not do anything by default.
- angle - The absolute angle for thrusting enemies from the damage if DMG_USEANGLE is set.
Examples
This version of the Zombieman will take no damage from projectiles:
class ProjectilesCantHurtMe : Zombieman
{
override int DamageMobj (Actor inflictor, Actor source, int damage, Name mod, int flags, double angle)
{
if (inflictor && inflictor.bMISSILE)
{
return 0;
}
return super.DamageMobj(inflictor, source, damage, mod, flags, angle);
}
}
See also
This article is issued from Zdoom. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.