18 repeatDelaySec = dmg.repeat_delay_sec;
24void TouchDamage::onIntersect(
Npc& n) {
29void TouchDamage::tick(uint64_t dt) {
36 bool mask[zenkit::DamageType::NUM] = {};
37 mask[zenkit::DamageType::BARRIER] = barrier;
38 mask[zenkit::DamageType::BLUNT] = blunt;
39 mask[zenkit::DamageType::EDGE] = edge;
40 mask[zenkit::DamageType::FIRE] = fire;
41 mask[zenkit::DamageType::FLY] = fly;
42 mask[zenkit::DamageType::MAGIC] = magic;
43 mask[zenkit::DamageType::POINT] = point;
44 mask[zenkit::DamageType::FALL] = fall;
46 auto& hnpc = npc->handle();
47 for(
size_t i=0; i<zenkit::DamageType::NUM; ++i) {
50 takeDamage(*npc,int32_t(damage),hnpc.protection[i]);
60void TouchDamage::takeDamage(
Npc& npc, int32_t val, int32_t prot) {
const std::vector< Npc * > & intersections() const
virtual void onIntersect(Npc &n)
virtual void tick(uint64_t dt)
void changeAttribute(Attribute a, int32_t val, bool allowUnconscious)
TouchDamage(Vob *parent, World &world, const zenkit::VTouchDamage &data, Flags flags)
uint64_t tickCount() const