From bad86eec93d76fdc48512c21f7be111d7223232a Mon Sep 17 00:00:00 2001 From: Raphi <113795944+RaphiHD@users.noreply.github.com> Date: Thu, 4 Sep 2025 21:29:04 +0200 Subject: [PATCH 1/2] Add Sprite Flip Chance Field to NPCEditor.java --- .../gpl/rpg/atcontentstudio/ui/gamedataeditors/NPCEditor.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/NPCEditor.java b/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/NPCEditor.java index dfda8e2..799fadc 100644 --- a/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/NPCEditor.java +++ b/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/NPCEditor.java @@ -37,6 +37,7 @@ public class NPCEditor extends JSONElementEditor { private JTextField nameField; private JTextField spawnGroupField; private JTextField factionField; + private JSpinner spriteFlipChanceField; private JSpinner experienceField; private MyComboBox dialogueBox; private MyComboBox droplistBox; @@ -130,6 +131,7 @@ public class NPCEditor extends JSONElementEditor { nameField = addTranslatableTextField(pane, "Display name: ", npc.name, npc.writable, listener); spawnGroupField = addTextField(pane, "Spawn group ID: ", npc.spawngroup_id, npc.writable, listener); factionField = addTextField(pane, "Faction ID: ", npc.faction_id, npc.writable, listener); + spriteFlipChanceField = addIntegerField(pane, "Icon Flip Chance: ", npc.spriteFlipChance, npc.writable, listener); experienceField = addIntegerField(pane, "Experience reward: ", npc.getMonsterExperience(), false, false, listener); dialogueBox = addDialogueBox(pane, npc.getProject(), "Initial phrase: ", npc.dialogue, npc.writable, listener); droplistBox = addDroplistBox(pane, npc.getProject(), "Droplist / Shop inventory: ", npc.droplist, npc.writable, listener); @@ -215,6 +217,8 @@ public class NPCEditor extends JSONElementEditor { npc.spawngroup_id = (String) value; } else if (source == factionField) { npc.faction_id = (String) value; + } else if (source == spriteFlipChanceField) { + npc.spriteFlipChance = (Integer) value; } else if (source == dialogueBox) { if (npc.dialogue != null) { npc.dialogue.removeBacklink(npc); From f93d865da735a719dd9a9e16435b4d73f2bddbfe Mon Sep 17 00:00:00 2001 From: Raphi <113795944+RaphiHD@users.noreply.github.com> Date: Thu, 4 Sep 2025 21:41:27 +0200 Subject: [PATCH 2/2] Add spriteFlipChance as attribute in NPC.java --- src/com/gpl/rpg/atcontentstudio/model/gamedata/NPC.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/NPC.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/NPC.java index 632d879..7bf1579 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/NPC.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/NPC.java @@ -38,6 +38,7 @@ public class NPC extends JSONElement { public Integer attack_damage_min = null; public String spawngroup_id = null; public String faction_id = null; + public Integer spriteFlipChance = null; public String dialogue_id = null; public String droplist_id = null; public Integer attack_cost = null; @@ -155,6 +156,7 @@ public class NPC extends JSONElement { } this.spawngroup_id = (String) npcJson.get("spawnGroup"); this.faction_id = (String) npcJson.get("faction"); + this.spriteFlipChance = JSONElement.getInteger((Number) npcJson.get("spriteFlipChance")); this.dialogue_id = (String) npcJson.get("phraseID"); this.droplist_id = (String) npcJson.get("droplistID"); this.attack_cost = JSONElement.getInteger((Number) npcJson.get("attackCost")); @@ -244,6 +246,7 @@ public class NPC extends JSONElement { } clone.droplist_id = this.droplist_id; clone.faction_id = this.faction_id; + clone.spriteFlipChance = this.spriteFlipChance; if (this.hit_effect != null) { clone.hit_effect = new HitEffect(); copyHitEffectValues(clone.hit_effect, this.hit_effect, clone); @@ -302,6 +305,7 @@ public class NPC extends JSONElement { writeMinMaxToMap(npcJson, "attackDamage", this.attack_damage_min, attack_damage_max, 0); if (this.spawngroup_id != null) npcJson.put("spawnGroup", this.spawngroup_id); if (this.faction_id != null) npcJson.put("faction", this.faction_id); + if (this.spriteFlipChance != null) npcJson.put("spriteFlipChance", this.spriteFlipChance); if (this.dialogue != null) { npcJson.put("phraseID", this.dialogue.id); } else if (this.dialogue_id != null) {