Fix a bit of un-researched action handling

This commit is contained in:
StartForKiller 2023-06-05 18:30:03 -04:00 committed by KingRainbow44
parent d933ca6d02
commit 1c9f32cbef
No known key found for this signature in database
GPG Key ID: FC2CB64B00D257BE

View File

@ -1,11 +1,10 @@
package emu.grasscutter.game.ability.actions; package emu.grasscutter.game.ability.actions;
import com.google.protobuf.ByteString; import com.google.protobuf.ByteString;
import emu.grasscutter.Grasscutter;
import emu.grasscutter.data.binout.AbilityModifier.AbilityModifierAction; import emu.grasscutter.data.binout.AbilityModifier.AbilityModifierAction;
import emu.grasscutter.game.ability.Ability; import emu.grasscutter.game.ability.Ability;
import emu.grasscutter.game.entity.EntityClientGadget; import emu.grasscutter.game.entity.*;
import emu.grasscutter.game.entity.EntityGadget;
import emu.grasscutter.game.entity.GameEntity;
@AbilityAction(AbilityModifierAction.Type.SetGlobalValueToOverrideMap) @AbilityAction(AbilityModifierAction.Type.SetGlobalValueToOverrideMap)
public class ActionSetGlobalValueToOverrideMap extends AbilityActionHandler { public class ActionSetGlobalValueToOverrideMap extends AbilityActionHandler {
@ -23,15 +22,18 @@ public class ActionSetGlobalValueToOverrideMap extends AbilityActionHandler {
var globalValueKey = action.globalValueKey; var globalValueKey = action.globalValueKey;
var abilityFormula = action.abilityFormula; 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); var globalValue = entity.getGlobalAbilityValues().getOrDefault(globalValueKey, 0.0f);
if (abilityFormula.compareTo("DummyThrowSpeed") == 0) { if (abilityFormula.compareTo("DummyThrowSpeed") == 0) {
globalValue = ((globalValue * 30.0f) / ((float) Math.sin(0.9424778) * 100.0f)) - 1.0f; globalValue = ((globalValue * 30.0f) / ((float) Math.sin(0.9424778) * 100.0f)) - 1.0f;
} }
entity.getGlobalAbilityValues().put(globalValueKey, globalValue); entity.getGlobalAbilityValues().put(globalValueKey, globalValue); // Research if this is needed.
entity.onAbilityValueUpdate(); ability.getAbilitySpecials().put(action.overrideMapKey, globalValue.floatValue()); // Override our own.
// TODO: ChangeServerGlobalValueNotify // TODO: ChangeServerGlobalValueNotify