local CONST = require 'config.const'
local Suspicion = require 'systems.suspicion'
local Base = require 'profession.base'
Base.register('mimic', function(unit, ability)
unit:storage_set('mimic_active', true)
local nearby_area = clicli.area.create_circle_area(unit:get_point(), 10)
local units = nearby_area:get_all_unit_in_area()
nearby_area:remove()
local nearest_npc = nil
for _, u in ipairs(units) do
if u:has_tag('npc') and u:is_alive() then
nearest_npc = u
break
end
end
if nearest_npc then
unit:follow(nearest_npc, 0.5, 2.0, 4.0, 0, false)
end
local mimic_timer = clicli.timer.loop(1.0, function(timer, count)
if count > 10 or not unit:storage_get('mimic_active') then
timer:remove()
unit:stop()
unit:storage_set('mimic_active', false)
return
end
Suspicion.add(unit, -5)
end, '完美模仿', true)
unit:storage_set('mimic_timer', mimic_timer)
end)
return Base