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:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user