diff --git a/src/main/java/emu/grasscutter/game/ability/actions/ActionSetGlobalValueToOverrideMap.java b/src/main/java/emu/grasscutter/game/ability/actions/ActionSetGlobalValueToOverrideMap.java index f2982cade..c9e3ee41c 100644 --- a/src/main/java/emu/grasscutter/game/ability/actions/ActionSetGlobalValueToOverrideMap.java +++ b/src/main/java/emu/grasscutter/game/ability/actions/ActionSetGlobalValueToOverrideMap.java @@ -1,11 +1,10 @@ package emu.grasscutter.game.ability.actions; import com.google.protobuf.ByteString; +import emu.grasscutter.Grasscutter; import emu.grasscutter.data.binout.AbilityModifier.AbilityModifierAction; import emu.grasscutter.game.ability.Ability; -import emu.grasscutter.game.entity.EntityClientGadget; -import emu.grasscutter.game.entity.EntityGadget; -import emu.grasscutter.game.entity.GameEntity; +import emu.grasscutter.game.entity.*; @AbilityAction(AbilityModifierAction.Type.SetGlobalValueToOverrideMap) public class ActionSetGlobalValueToOverrideMap extends AbilityActionHandler { @@ -23,15 +22,18 @@ public class ActionSetGlobalValueToOverrideMap extends AbilityActionHandler { var globalValueKey = action.globalValueKey; var abilityFormula = action.abilityFormula; - if (!entity.getGlobalAbilityValues().containsKey(globalValueKey)) return false; + if (!entity.getGlobalAbilityValues().containsKey(globalValueKey)) { + Grasscutter.getLogger().debug("Action does not contains {} global key", globalValueKey); + return true; + } var globalValue = entity.getGlobalAbilityValues().getOrDefault(globalValueKey, 0.0f); if (abilityFormula.compareTo("DummyThrowSpeed") == 0) { globalValue = ((globalValue * 30.0f) / ((float) Math.sin(0.9424778) * 100.0f)) - 1.0f; } - entity.getGlobalAbilityValues().put(globalValueKey, globalValue); - entity.onAbilityValueUpdate(); + entity.getGlobalAbilityValues().put(globalValueKey, globalValue); // Research if this is needed. + ability.getAbilitySpecials().put(action.overrideMapKey, globalValue.floatValue()); // Override our own. // TODO: ChangeServerGlobalValueNotify