move getStateId from MagicCopyable back to MagicObject

master
melvinzhang 2017-07-28 23:11:32 +08:00
parent 3a3b2254be
commit f3e695eb38
8 changed files with 3 additions and 32 deletions

View File

@ -4,7 +4,4 @@ public interface MagicCopyable {
default MagicCopyable copy(final MagicCopyMap copyMap) {
return this;
}
default long getStateId() {
return hashCode();
}
}

View File

@ -13,7 +13,7 @@ public class MagicInteger implements MagicCopyable {
}
@Override
public long getStateId() {
public int hashCode() {
return value;
}

View File

@ -25,5 +25,6 @@ public interface MagicObject extends MagicCopyable {
boolean isFriend(final MagicObject other);
boolean isEnemy(final MagicObject other);
long getId();
long getStateId();
MagicCardDefinition getCardDefinition();
}

View File

@ -34,7 +34,7 @@ public class MagicTuple implements MagicCopyable {
}
@Override
public long getStateId() {
public int hashCode() {
final long[] keys = new long[tuple.length];
for (int i = 0; i < tuple.length; i++) {
keys[i] = MagicObjectImpl.getStateId(tuple[i]);

View File

@ -4,7 +4,6 @@ import magic.model.MagicGame;
import magic.model.MagicManaType;
import magic.model.MagicCopyMap;
import magic.model.MagicPlayer;
import magic.model.MurmurHash3;
import magic.model.event.MagicSourceManaActivation;
import magic.model.event.MagicSourceManaActivationResult;
@ -153,19 +152,4 @@ public class MagicBuilderPayManaCostResult implements MagicPayManaCostResult, Co
public long getId() {
return hashCode;
}
@Override
public long getStateId() {
final long[] keys = new long[results.length + 4];
keys[0] = weight;
keys[1] = count;
keys[2] = x;
keys[3] = hashCode;
int idx = 4;
for (final MagicSourceManaActivationResult res : results) {
keys[idx] = res.getStateId();
idx++;
}
return MurmurHash3.hash(keys);
}
}

View File

@ -66,9 +66,4 @@ public class MagicCardChoiceResult extends ArrayList<MagicCard> implements Magic
}
return MurmurHash3.hash(keys);
}
@Override
public long getStateId() {
return getId();
}
}

View File

@ -753,7 +753,6 @@ public class MagicEvent implements MagicCopyable {
return "EVENT: " + source + " " + description + " " + (hasChoice() ? choice.getDescription() : "");
}
@Override
public long getStateId() {
return MurmurHash3.hash(new long[] {
//don't call getStateId if source is MagicItemOnStack to avoid infinite loop

View File

@ -38,9 +38,4 @@ public class MagicSourceManaActivationResult implements MagicCopyable, MagicMapp
public long getId() {
return permanent.getId() * 31 + activation.hashCode();
}
@Override
public long getStateId() {
return permanent.getStateId() ^ activation.hashCode();
}
}