-- Combat Effects Manager Module local g_module_combateffects_areaoffreeze = 0 local g_module_combateffects_areaoffreezex = 0 local g_module_combateffects_areaoffreezey = 0 local g_module_combateffects_areaoffreezez = 0 local g_module_combateffects_areaoffreezeradius = 0 local g_module_combateffects_areaoffreezeperiod = 0 local g_module_combateffects_areaoffreezedamagetimer = 0 local g_module_combateffects_areaoffreezedamage = 0 local MCE = {} function MCE.ismovementfrozen( e, ai_bot ) local Ent = g_Entity[ e ] -- determine an area of freeze if g_projectileevent_explosion == 1 then if g_projectileevent_name == "fantasy\\magicbolt" then g_module_combateffects_areaoffreeze = 1 g_module_combateffects_areaoffreezex = g_projectileevent_x g_module_combateffects_areaoffreezey = g_projectileevent_y g_module_combateffects_areaoffreezez = g_projectileevent_z g_module_combateffects_areaoffreezeradius = g_projectileevent_radius^2 g_module_combateffects_areaoffreezeperiod = Timer() + 3000 g_module_combateffects_areaoffreezedamagetimer = Timer() + 100 g_module_combateffects_areaoffreezedamage = 1 end g_projectileevent_explosion = 0 end if g_module_combateffects_areaoffreeze == 1 then if Timer() > g_module_combateffects_areaoffreezeperiod then g_module_combateffects_areaoffreeze = 0 end end -- apply damage to entity within areaoffreeze if g_module_combateffects_areaoffreeze == 1 and g_module_combateffects_areaoffreezedamagetimer > 0 then if Timer() > g_module_combateffects_areaoffreezedamagetimer then g_module_combateffects_areaoffreezedamagetimer = Timer() + 100 local newentityhealth = Ent.health - g_module_combateffects_areaoffreezedamage SetEntityHealth( e, newentityhealth ) ai_bot.oldhealth = newentityhealth end end -- is this entity frozen (from magic spell) if g_module_combateffects_areaoffreeze == 1 then tDX = Ent.x - g_module_combateffects_areaoffreezex tDY = Ent.y - g_module_combateffects_areaoffreezey tDZ = Ent.z - g_module_combateffects_areaoffreezez tDist = tDX*tDX + tDY*tDY + tDZ*tDZ if tDist < g_module_combateffects_areaoffreezeradius then return 1 end end return 0 end return MCE