diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Dialogue.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Dialogue.java index 181384c..124e155 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Dialogue.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Dialogue.java @@ -64,7 +64,8 @@ public class Dialogue extends JSONElement { removeSpawnArea, deactivateSpawnArea, activateMapObjectGroup, - deactivateMapObjectGroup + deactivateMapObjectGroup, + changeMapFilter } } @@ -244,6 +245,7 @@ public class Dialogue extends JSONElement { case spawnAll: case removeSpawnArea: case deactivateSpawnArea: + case changeMapFilter: reward.map = reward.map_name != null ? proj.getMap(reward.map_name) : null; break; case actorCondition: diff --git a/src/com/gpl/rpg/atcontentstudio/model/maps/TMXMap.java b/src/com/gpl/rpg/atcontentstudio/model/maps/TMXMap.java index bdacf1a..4aa3cac 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/maps/TMXMap.java +++ b/src/com/gpl/rpg/atcontentstudio/model/maps/TMXMap.java @@ -39,6 +39,7 @@ public class TMXMap extends GameDataElement { public static final String WALKABLE_LAYER_NAME = "Walkable"; public enum ColorFilter { + none, black20, black40, black60, diff --git a/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/DialogueEditor.java b/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/DialogueEditor.java index bf1e8bb..881fcf5 100644 --- a/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/DialogueEditor.java +++ b/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/DialogueEditor.java @@ -91,6 +91,7 @@ public class DialogueEditor extends JSONElementEditor { private JPanel rewardsParamsPane; private MyComboBox rewardMap; private JTextField rewardObjId; + private JComboBox rewardObjIdCombo; private MyComboBox rewardObj; private JSpinner rewardValue; @@ -360,6 +361,14 @@ public class DialogueEditor extends JSONElementEditor { case deactivateMapObjectGroup: rewardMap = addMapBox(pane, ((Dialogue)target).getProject(), "Map Name: ", reward.map, writable, listener); rewardObjId = addTextField(pane, "Group ID: ", reward.reward_obj_id, writable, listener); + rewardObjIdCombo = null; + rewardObj = null; + rewardValue = null; + break; + case changeMapFilter: + rewardMap = addMapBox(pane, ((Dialogue)target).getProject(), "Map Name: ", reward.map, writable, listener); + rewardObjId = null; + rewardObjIdCombo = addEnumValueBox(pane, "Color Filter", TMXMap.ColorFilter.values(), reward.reward_obj_id != null ? TMXMap.ColorFilter.valueOf(reward.reward_obj_id) : TMXMap.ColorFilter.none, writable, listener); rewardObj = null; rewardValue = null; break; @@ -368,30 +377,35 @@ public class DialogueEditor extends JSONElementEditor { case spawnAll: rewardMap = addMapBox(pane, ((Dialogue)target).getProject(), "Map Name: ", reward.map, writable, listener); rewardObjId = addTextField(pane, "Area ID: ", reward.reward_obj_id, writable, listener); + rewardObjIdCombo = null; rewardObj = null; rewardValue = null; break; case actorCondition: rewardMap = null; rewardObjId = null; + rewardObjIdCombo = null; rewardObj = addActorConditionBox(pane, ((Dialogue)target).getProject(), "Actor Condition: ", (ActorCondition) reward.reward_obj, writable, listener); rewardValue = addIntegerField(pane, "Duration: ", reward.reward_value, false, writable, listener); break; case alignmentChange: rewardMap = null; rewardObjId = addTextField(pane, "Faction: ", reward.reward_obj_id, writable, listener); + rewardObjIdCombo = null; rewardObj = null; rewardValue = addIntegerField(pane, "Value: ", reward.reward_value, true, writable, listener); break; case createTimer: rewardMap = null; rewardObjId = addTextField(pane, "Timer ID: ", reward.reward_obj_id, writable, listener); + rewardObjIdCombo = null; rewardObj = null; rewardValue = null; break; case dropList: rewardMap = null; rewardObjId = null; + rewardObjIdCombo = null; rewardObj = addDroplistBox(pane, ((Dialogue)target).getProject(), "Droplist: ", (Droplist) reward.reward_obj, writable, listener); rewardValue = null; break; @@ -404,12 +418,14 @@ public class DialogueEditor extends JSONElementEditor { case questProgress: rewardMap = null; rewardObjId = null; + rewardObjIdCombo = null; rewardObj = addQuestBox(pane, ((Dialogue)target).getProject(), "Quest: ", (Quest) reward.reward_obj, writable, listener); rewardValue = addIntegerField(pane, "Step ID: ", reward.reward_value, false, writable, listener); break; case skillIncrease: rewardMap = null; rewardObjId = addTextField(pane, "Skill ID: ", reward.reward_obj_id, writable, listener); + rewardObjIdCombo = null; rewardObj = null; rewardValue = null; break; @@ -819,6 +835,10 @@ public class DialogueEditor extends JSONElementEditor { label.setText("Respawn all monsters in spawnarea area "+rewardObjDesc+" on map "+reward.map_name); label.setIcon(new ImageIcon(DefaultIcons.getNPCIcon())); break; + case changeMapFilter: + label.setText("Change map filter to "+rewardObjDesc+" on map "+reward.map_name); + label.setIcon(new ImageIcon(DefaultIcons.getReplaceIcon())); + break; } } else { label.setText("New, undefined reward"); @@ -1100,6 +1120,9 @@ public class DialogueEditor extends JSONElementEditor { } else if (source == rewardObjId) { selectedReward.reward_obj_id = rewardObjId.getText(); rewardsListModel.itemChanged(selectedReward); + } else if (source == rewardObjIdCombo) { + selectedReward.reward_obj_id = rewardObjIdCombo.getSelectedItem().toString(); + rewardsListModel.itemChanged(selectedReward); } else if (source == rewardObj) { if (selectedReward.reward_obj != null) { selectedReward.reward_obj.removeBacklink(dialogue); diff --git a/src/com/gpl/rpg/atcontentstudio/ui/map/MapColorFilters.java b/src/com/gpl/rpg/atcontentstudio/ui/map/MapColorFilters.java index 6b1a406..19bf5de 100644 --- a/src/com/gpl/rpg/atcontentstudio/ui/map/MapColorFilters.java +++ b/src/com/gpl/rpg/atcontentstudio/ui/map/MapColorFilters.java @@ -92,6 +92,15 @@ public class MapColorFilters { 0.00f, 0.00f, 0.00f, 1.0f, 0.0f }); break; + case none: + f=1f; + newComp = new MatrixComposite(new float[]{ + f, 0.00f, 0.00f, 0.0f, 0.0f, + 0.00f, f, 0.00f, 0.0f, 0.0f, + 0.00f, 0.00f, f, 0.0f, 0.0f, + 0.00f, 0.00f, 0.00f, 1.0f, 0.0f + }); + break; default: break;