1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 06:51:54 +08:00

fix(Feed): 修复字段应用逻辑并确保数值范围正确

调整字段值应用顺序,先增加值再检查applier回调。如果applier存在且返回true,则减去之前增加的值。最后确保所有字段值在有效范围内。
This commit is contained in:
2026-05-04 21:52:04 +08:00
parent 5c85b4c10c
commit 8137b398a9
+4 -3
View File
@@ -49,10 +49,11 @@ func apply(entity: EntityBase):
for i in range(min(fields.size(), fieldValues.size())):
var field = fields[i]
var value = fieldValues[i]
entity.fields[field] += value
var applier = FieldStore.entityApplier.get(field)
if !applier or applier.call(entity, value):
entity.fields[field] += value
entity.fields[field] = clamp(entity.fields[field], FieldStore.entityMinValueMap.get(field, 0), FieldStore.entityMaxValueMap.get(field, INF))
if applier and applier.call(entity, value):
entity.fields[field] -= value
entity.fields[field] = clamp(entity.fields[field], FieldStore.entityMinValueMap.get(field, 0), FieldStore.entityMaxValueMap.get(field, INF))
for i in weapons:
var instance = i.instantiate() as Weapon
if UIState.player.weaponBag.has(instance.displayName):