* Fixed a problem that Emblems created by permanents where its owner left the game caused errors in clients. Some handling cganges of emblems.

This commit is contained in:
LevelX2 2016-12-27 16:00:22 +01:00
parent 81caed134f
commit 8075ea2e50
56 changed files with 894 additions and 850 deletions

View file

@ -1426,19 +1426,21 @@ public abstract class GameImpl implements Game, Serializable {
}
@Override
public void addEmblem(Emblem emblem, Ability source) {
addEmblem(emblem, source, null);
public void addEmblem(Emblem emblem, MageObject sourceObject, Ability source) {
addEmblem(emblem, sourceObject, source.getControllerId());
}
/**
*
* @param emblem
* @param sourceObject
* @param toPlayerId controller and owner of the emblem
*/
@Override
public void addEmblem(Emblem emblem, Ability source, UUID toPlayerId) {
public void addEmblem(Emblem emblem, MageObject sourceObject, UUID toPlayerId) {
Emblem newEmblem = emblem.copy();
newEmblem.setSourceId(source.getSourceId());
if (toPlayerId == null) {
newEmblem.setControllerId(source.getControllerId());
} else {
newEmblem.setControllerId(toPlayerId);
}
newEmblem.setSourceObject(sourceObject);
newEmblem.setControllerId(toPlayerId);
newEmblem.assignNewId();
newEmblem.getAbilities().newId();
for (Ability ability : newEmblem.getAbilities()) {