Skip to content

Commit

Permalink
serialize additional feature info for farm hints
Browse files Browse the repository at this point in the history
  • Loading branch information
farin committed Nov 19, 2022
1 parent d433b2c commit 720ce08
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions src/main/java/com/jcloisterzone/engine/StateGsonBuilder.java
Expand Up @@ -8,6 +8,8 @@
import com.jcloisterzone.board.pointer.FeaturePointer;
import com.jcloisterzone.event.*;
import com.jcloisterzone.event.ScoreEvent.ReceivedPoints;
import com.jcloisterzone.feature.Field;
import com.jcloisterzone.feature.Scoreable;
import com.jcloisterzone.feature.Tower;
import com.jcloisterzone.figure.Follower;
import com.jcloisterzone.figure.Meeple;
Expand Down Expand Up @@ -361,6 +363,20 @@ public JsonElement serializeFeatures(GameState root, JsonSerializationContext co
if (f instanceof Tower) {
item.addProperty("height", ((Tower) f).getHeight());
}
if (f instanceof Scoreable) {
JsonArray owners = new JsonArray();
((Scoreable) f).getOwners(root).forEach(p -> owners.add(p.getIndex()));
item.add("owners", owners);
}
if (f instanceof Field) {
Field field = (Field) f;
int cities = field.getAdjoiningCities().size();
if (field.isAdjoiningCityOfCarcassonne()) {
cities++;
}
item.addProperty("cities", cities);
}

features.add(item);
});
return features;
Expand Down

0 comments on commit 720ce08

Please sign in to comment.