mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-06-30 15:22:30 +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())):
|
for i in range(min(fields.size(), fieldValues.size())):
|
||||||
var field = fields[i]
|
var field = fields[i]
|
||||||
var value = fieldValues[i]
|
var value = fieldValues[i]
|
||||||
|
entity.fields[field] += value
|
||||||
var applier = FieldStore.entityApplier.get(field)
|
var applier = FieldStore.entityApplier.get(field)
|
||||||
if !applier or applier.call(entity, value):
|
if applier and applier.call(entity, value):
|
||||||
entity.fields[field] += value
|
entity.fields[field] -= value
|
||||||
entity.fields[field] = clamp(entity.fields[field], FieldStore.entityMinValueMap.get(field, 0), FieldStore.entityMaxValueMap.get(field, INF))
|
entity.fields[field] = clamp(entity.fields[field], FieldStore.entityMinValueMap.get(field, 0), FieldStore.entityMaxValueMap.get(field, INF))
|
||||||
for i in weapons:
|
for i in weapons:
|
||||||
var instance = i.instantiate() as Weapon
|
var instance = i.instantiate() as Weapon
|
||||||
if UIState.player.weaponBag.has(instance.displayName):
|
if UIState.player.weaponBag.has(instance.displayName):
|
||||||
|
|||||||
Reference in New Issue
Block a user