// Project Lab - NHTV Igad #include "UnrealProject.h" #include "poisonAuraTrigger.h" #include "NetworkCharacter.h" #include "NativeModifiers.h" #include "Modifier.h" ApoisonAuraTrigger::ApoisonAuraTrigger() { } void ApoisonAuraTrigger::BeginPlay() { Super::BeginPlay(); } void ApoisonAuraTrigger::Tick(float deltaTime) { Super::Tick(deltaTime); } void ApoisonAuraTrigger::HitEvent(ANetworkCharacter* otherActor) { ModifierManager* manager = otherActor->GetModifierManager(); if (playerMap.Find(otherActor) == nullptr) { RERROR("2 modifiers in the intimidatin aura"); } if (manager) { ADOTModifier* ASModifier = GetWorld()->SpawnActor(); ASModifier->lifeTime = 0; ASModifier->damagePerTick = damage; ASModifier->target = otherActor; manager->AddModifier(ASModifier); playerMap.Add(otherActor, ASModifier); } return Super::HitEvent(otherActor); } void ApoisonAuraTrigger::LeaveEvent(ANetworkCharacter* otherActor) { auto it = playerMap.Find(otherActor); if (it == nullptr) return Super::LeaveEvent(otherActor); (*it)->ForceDestroy(); playerMap.Remove(otherActor); return Super::LeaveEvent(otherActor); }