From a4a4b22068d58485351497b0144b6ce3d411cb27 Mon Sep 17 00:00:00 2001 From: DelvalletQuentin Date: Fri, 13 Mar 2015 16:32:56 +0100 Subject: [PATCH] Repeatable quests Repeatable quests are now usable in ATCS. --- .../atcontentstudio/model/gamedata/Dialogue.java | 6 +++++- .../model/gamedata/Requirement.java | 3 ++- .../ui/gamedataeditors/DialogueEditor.java | 16 +++++++++++++++- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Dialogue.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Dialogue.java index ddc83fa..1381600 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 enum RewardType { removeSpawnArea, deactivateSpawnArea, activateMapChangeArea, - deactivateMapChangeArea + deactivateMapChangeArea, + removeQuestProgress } } @@ -270,6 +271,9 @@ public void link() { case skillIncrease: //Nothing to do (yet ?). break; + case removeQuestProgress: + reward.reward_obj = proj.getQuest(reward.reward_obj_id); + break; } if (reward.reward_obj != null) reward.reward_obj.addBacklink(this); if (reward.map != null) reward.map.addBacklink(this); diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Requirement.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Requirement.java index cb6fde7..ab70783 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Requirement.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Requirement.java @@ -53,7 +53,8 @@ public enum RequirementType { usedItem, spentGold, consumedBonemeals, - hasActorCondition + hasActorCondition, + removeQuestProgress } @Override diff --git a/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/DialogueEditor.java b/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/DialogueEditor.java index 9b19a6a..0e9d05e 100644 --- a/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/DialogueEditor.java +++ b/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/DialogueEditor.java @@ -372,7 +372,12 @@ public void updateRewardsParamsEditorPane(final JPanel pane, final Dialogue.Rewa rewardObj = null; rewardValue = null; break; - + case removeQuestProgress: + rewardMap = null; + rewardObjId = 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; } } pane.revalidate(); @@ -637,6 +642,11 @@ public void updateRequirementParamsEditorPane(final JPanel pane, final Requireme requirementObjId = null; requirementValue = null; break; + case removeQuestProgress: + requirementObj = addQuestBox(pane, project, "Quest: ", (Quest) requirement.required_obj, writable, listener); + requirementObjId = null; + requirementValue = addIntegerField(pane, "Quest stage: ", requirement.required_value, false, writable, listener); + break; } requirementNegated = addBooleanBasedCheckBox(pane, "Negate this requirement.", requirement.negated, writable, listener); } @@ -765,6 +775,10 @@ public Component getListCellRendererComponent(JList list, Object value, int inde case spawnAll: label.setText("Respawn all monsters in spawnarea area "+rewardObjDesc+" on map "+reward.map_name); break; + case removeQuestProgress: + label.setText("Remove quest progress "+rewardObjDesc+":"+reward.reward_value); + if (reward.reward_obj != null) label.setIcon(new ImageIcon(reward.reward_obj.getIcon())); + break; } } else { label.setText("New, undefined reward");