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 @@
+
+