From 112a1fe515b22dd74449c1968ee2d5ef01c791db Mon Sep 17 00:00:00 2001 From: kuroppoi <68156848+kuroppoi@users.noreply.github.com> Date: Mon, 26 Jun 2023 17:53:25 +0200 Subject: [PATCH] Add option to choose encounter gender --- .../model/player/DreamEncounter.java | 17 +++++++++++++---- .../http/dashboard/DashboardHandler.java | 2 ++ .../network/http/pgl/PglHandler.java | 2 +- src/main/resources/dashboard/profile.html | 6 ++++++ src/main/resources/dashboard/scripts/profile.js | 3 +++ 5 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/main/java/entralinked/model/player/DreamEncounter.java b/src/main/java/entralinked/model/player/DreamEncounter.java index 44db730..e5dd88b 100644 --- a/src/main/java/entralinked/model/player/DreamEncounter.java +++ b/src/main/java/entralinked/model/player/DreamEncounter.java @@ -2,8 +2,17 @@ package entralinked.model.player; import com.fasterxml.jackson.annotation.JsonProperty; +import entralinked.model.pkmn.PkmnGender; + public record DreamEncounter( - @JsonProperty(required = true) int species, - @JsonProperty(required = true) int move, - @JsonProperty(required = true) int form, - @JsonProperty(required = true) DreamAnimation animation) {} + @JsonProperty(required = true) int species, + @JsonProperty(required = true) int move, + @JsonProperty(required = true) int form, + @JsonProperty(required = false) PkmnGender gender, // Can't require cuz it's new + @JsonProperty(required = true) DreamAnimation animation) { + + @Override + public PkmnGender gender() { + return gender == null ? PkmnGender.GENDERLESS : gender; // Default to genderless (random gender) if not present + } +} diff --git a/src/main/java/entralinked/network/http/dashboard/DashboardHandler.java b/src/main/java/entralinked/network/http/dashboard/DashboardHandler.java index da1fc25..203b0a0 100644 --- a/src/main/java/entralinked/network/http/dashboard/DashboardHandler.java +++ b/src/main/java/entralinked/network/http/dashboard/DashboardHandler.java @@ -195,6 +195,8 @@ public class DashboardHandler implements HttpHandler { return "Species is out of range."; } else if(encounter.move() < 1 || encounter.move() > 559) { return "Move ID is out of range."; + } else if(encounter.gender() == null) { + return "Gender is undefined."; } else if(encounter.animation() == null) { return "Animation is undefined."; } diff --git a/src/main/java/entralinked/network/http/pgl/PglHandler.java b/src/main/java/entralinked/network/http/pgl/PglHandler.java index c2613ae..9579f91 100644 --- a/src/main/java/entralinked/network/http/pgl/PglHandler.java +++ b/src/main/java/entralinked/network/http/pgl/PglHandler.java @@ -214,7 +214,7 @@ public class PglHandler implements HttpHandler { outputStream.writeShort(encounter.species()); outputStream.writeShort(encounter.move()); outputStream.write(encounter.form()); - outputStream.write(0); // unknown + outputStream.write(encounter.gender().ordinal()); // Genderless = 2 = random outputStream.write(encounter.animation().ordinal()); outputStream.write(0); // unknown } diff --git a/src/main/resources/dashboard/profile.html b/src/main/resources/dashboard/profile.html index d6e6dde..732d2b9 100644 --- a/src/main/resources/dashboard/profile.html +++ b/src/main/resources/dashboard/profile.html @@ -138,6 +138,12 @@ + +