@classmethod
def property_functions(cls, prop):
    """Yield a map containing 'set', 'val', 'func', and 'stat' fields for each stat associated with the property."""
    for i in range(1, 8):
        stat = cls.properties.get_data(prop, 'stat{}'.format(i))
        set_ = cls.properties.get_data(prop, 'set{}'.format(i))
        val = cls.properties.get_data(prop, 'val{}'.format(i))
        func = cls.properties.get_data(prop, 'func{}'.format(i))
        if func.dtype == 'bool' or func == -1:
            return
        yield {'stat': stat, 'set_': set_, 'val': val, 'func': func}
