def parse_passive_buff(text):
    ret_effs = []
    scope = 'Scope.my_self'
    m = re.match('(.+)が(\\d+)[％%]上昇.*', text, re.UNICODE)
    if m:
        effs_str = m.group(1)
        effs = parse_effs(effs_str)
        effs = [e for e in effs if ('Ability' not in e)]
        up_val = int(m.group(2))
        up_val /= 100
        enum_str = gen_eff_str(effs, scope, up_val)
        ret_effs.append(enum_str)
    m = re.match('.*毎ターン(.+)が(\\d+)[％%]回復.*', text, re.UNICODE)
    if m:
        effs_str = m.group(1)
        effs = parse_effs(effs_str)
        up_val = int(m.group(2))
        up_val /= 100
        enum_str = gen_eff_str(effs, scope, up_val)
        ret_effs.append(enum_str)
    return ', '.join(ret_effs)
def parse_passive_buff(text):
    ret_effs = []
    scope = 'Scope.my_self'
    m = re.match('(.+)が(\\d+)[％%]上昇.*', text, re.UNICODE)
    if m:
        effs_str = m.group(1)
        effs = parse_effs(effs_str)
        effs = [e for e in effs if ('Ability' not in e)]
        up_val = int(m.group(2))
        up_val /= 100
        enum_str = gen_eff_str(effs, scope, up_val)
        ret_effs.append(enum_str)
    m = re.match('.*毎ターン(.+)が(\\d+)[％%]回復.*', text, re.UNICODE)
    if m:
        effs_str = m.group(1)
        effs = parse_effs(effs_str)
        up_val = int(m.group(2))
        up_val /= 100
        enum_str = gen_eff_str(effs, scope, up_val)
        ret_effs.append(enum_str)
    return ', '.join(ret_effs)