diff --git a/src/magic/model/event/MagicEvent.java b/src/magic/model/event/MagicEvent.java index 60a350aabb..e1b94600c1 100644 --- a/src/magic/model/event/MagicEvent.java +++ b/src/magic/model/event/MagicEvent.java @@ -194,10 +194,12 @@ public class MagicEvent implements MagicCopyable { public long getEventId() { long[] keys = { - (player != null ? player.getIndex() : 7), - (source != null ? source.getId() : 7), - (action != null ? action.hashCode() : 7), - (data.length > 0 && data[0] instanceof MagicTarget) ? ((MagicTarget)data[0]).getId() : 7, + (player != null ? player.getIndex() : -1L), + (source != null ? source.getId() : -1L), + (action != null ? action.hashCode() : -1L), + (data.length > 0 && data[0] instanceof MagicTarget) ? ((MagicTarget)data[0]).getId() : -1L, + (data.length > 1 && data[1] instanceof MagicTarget) ? ((MagicTarget)data[1]).getId() : -1L, + (data.length > 2 && data[2] instanceof MagicTarget) ? ((MagicTarget)data[2]).getId() : -1L, }; return magic.MurmurHash3.hash(keys); } diff --git a/src/magic/model/stack/MagicItemOnStack.java b/src/magic/model/stack/MagicItemOnStack.java index 94b55a2d20..2b63e9f68b 100644 --- a/src/magic/model/stack/MagicItemOnStack.java +++ b/src/magic/model/stack/MagicItemOnStack.java @@ -145,10 +145,16 @@ public abstract class MagicItemOnStack implements MagicTarget { } public long getItemId() { - return - event.getEventId() + + final long[] keys = { + event.getEventId(), ((choiceResults.length > 0 && choiceResults[0] instanceof MagicTarget) ? - ((MagicTarget)choiceResults[0]).getId() : 7); + ((MagicTarget)choiceResults[0]).getId() : -1L), + ((choiceResults.length > 1 && choiceResults[1] instanceof MagicTarget) ? + ((MagicTarget)choiceResults[1]).getId() : -1L), + ((choiceResults.length > 2 && choiceResults[2] instanceof MagicTarget) ? + ((MagicTarget)choiceResults[2]).getId() : -1L), + }; + return magic.MurmurHash3.hash(keys); } public abstract boolean isSpell();