From 35b368d7fee8be775a6d6a89cadde31f2f1a5742 Mon Sep 17 00:00:00 2001
From: MagicBot <MagicBot@magicbane.com>
Date: Thu, 4 Apr 2024 10:37:12 -0400
Subject: [PATCH] rune_speed parsed

---
 src/engine/Enum.java                 | 10 ++++++++++
 src/engine/objects/ItemTemplate.java | 20 +++++++++++++++++++-
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/src/engine/Enum.java b/src/engine/Enum.java
index 3fde661b..9da4fa22 100644
--- a/src/engine/Enum.java
+++ b/src/engine/Enum.java
@@ -1354,6 +1354,16 @@ public class Enum {
         }
     }
 
+    public enum MovementType {
+        WALK,
+        RUN,
+        COMBATWALK,
+        COMBATRUN,
+        FLYWALK,
+        FLYRUN,
+        SWIM;
+    }
+
     public enum SexType {
         NONE,
         MALE,
diff --git a/src/engine/objects/ItemTemplate.java b/src/engine/objects/ItemTemplate.java
index 3f5720e1..aab6cca2 100644
--- a/src/engine/objects/ItemTemplate.java
+++ b/src/engine/objects/ItemTemplate.java
@@ -116,7 +116,7 @@ public class ItemTemplate {
     public int rune_attack;
     public int rune_defense;
     public int rune_level;
-    public HashMap<String, Float> rune_speed = new HashMap<>();
+    public HashMap<Enum.MovementType, Float> rune_speed = new HashMap<>();
     public int rune_group_type;
     public boolean rune_group_is_faction = false;
     public boolean rune_group_is_guild = false;
@@ -455,6 +455,24 @@ public class ItemTemplate {
                 rune_pracs_per_level = ((Long) jsonObject.get("rune_pracs_per_level")).intValue();
                 rune_exp_req_to_level = ((Double) jsonObject.get("rune_exp_req_to_level")).floatValue();
                 rune_sex = Enum.SexType.valueOf((String) jsonObject.get("rune_sex"));
+                rune_class_icon = ((Long) jsonObject.get("rune_class_icon")).intValue();
+                rune_health = ((Double) jsonObject.get("rune_health")).floatValue();
+                rune_mana = ((Long) jsonObject.get("rune_mana")).intValue();
+                rune_stamina = ((Long) jsonObject.get("rune_stamina")).intValue();
+                rune_min_damage = ((Double) jsonObject.get("rune_min_damage")).floatValue();
+                rune_max_damage = ((Double) jsonObject.get("rune_max_damage")).floatValue();
+                rune_attack = ((Long) jsonObject.get("rune_attack")).intValue();
+                rune_defense = ((Long) jsonObject.get("rune_defense")).intValue();
+                rune_level = ((Long) jsonObject.get("rune_level")).intValue();
+
+                JSONObject rune_speed_json = (JSONObject) jsonObject.get("rune_speed");
+
+                for (Object key : rune_speed_json.keySet()) {
+                    Enum.MovementType movementType = Enum.MovementType.valueOf((String) key);
+                    float speed = ((Double) rune_speed_json.get(key)).floatValue();
+                    rune_speed.put(movementType, speed);
+                }
+
 
                 JSONArray attr_adj_json = (JSONArray) jsonObject.get("rune_attr_adj");