function ElementLaserTrigger:_client_check_state(unit)
	local rule_ok = self:_check_instigator_rules(unit)
	local inside = nil
	local mover = unit:mover()

	if mover then
		for i, connection in ipairs(self._connections) do
			if connection.enabled then
				inside = mover:line_intersection(connection.from.pos, connection.to.pos)

				if inside then
					break
				end
			end
		end
	end

	if table.contains(self._inside, unit) then
		if not inside or not rule_ok then
			table.delete(self._inside, unit)
			managers.network:session():send_to_host("to_server_area_event", 2, self._id, unit)
			ElementAreaTrigger._chk_local_client_execute(self, unit, "on_exit")
		end
	elseif inside and rule_ok then
		table.insert(self._inside, unit)
		managers.network:session():send_to_host("to_server_area_event", 1, self._id, unit)
		ElementAreaTrigger._chk_local_client_execute(self, unit, "on_enter")
	end

	if inside and rule_ok then
		managers.network:session():send_to_host("to_server_area_event", 3, self._id, unit)
		ElementAreaTrigger._chk_local_client_execute(self, unit, "while_inside")
	end
end
