diff --git a/AndorsTrailEdit/controllers.js b/AndorsTrailEdit/controllers.js index b30ff476e..98c3f324b 100644 --- a/AndorsTrailEdit/controllers.js +++ b/AndorsTrailEdit/controllers.js @@ -23,7 +23,7 @@ var ATEditor = (function(ATEditor, model, importExport, exampleData) { }; $scope.clear = function(section) { if(!confirm("Are you sure you want to clear all " + section.name + " ?")) return; - section.items = []; + section.clear(); }; $scope.getName = function(section, obj) { return section.getName(obj); @@ -173,7 +173,33 @@ var ATEditor = (function(ATEditor, model, importExport, exampleData) { }; controllers.DialogueController = function($scope, $routeParams) { $scope.datasource = model.dialogue; - $scope.obj = $scope.datasource.findById($routeParams.id); + $scope.rootPhrase = $scope.datasource.findById($routeParams.id); + + $scope.phrase = $scope.rootPhrase; + $scope.reply = null; + $scope.removeReward = function(phrase, reward) { + var idx = phrase.rewards.indexOf(reward); + phrase.rewards.splice(idx, 1); + }; + $scope.addReward = function(phrase) { + phrase.rewards.push({}); + }; + $scope.followNextReply = function(nextPhraseID) { + }; + $scope.selectReply = function(reply) { + $scope.reply = reply; + }; + $scope.removeReply = function(phrase, reply) { + var idx = phrase.replies.indexOf(reply); + phrase.replies.splice(idx, 1); + if ($scope.reply === reply) { $scope.reply = null; } + }; + $scope.addReply = function(phrase) { + var reply = {}; + ATEditor.defaults.addDefaults('reply', reply); + phrase.replies.push(reply); + $scope.reply = reply; + }; }; controllers.MonsterController = function($scope, $routeParams) { $scope.datasource = model.monsters; diff --git a/AndorsTrailEdit/datastore.js b/AndorsTrailEdit/datastore.js index 7a2e11a65..f203fa0b4 100644 --- a/AndorsTrailEdit/datastore.js +++ b/AndorsTrailEdit/datastore.js @@ -28,7 +28,9 @@ var ATEditor = (function(ATEditor, _) { this.addNew = function() { var obj = { }; obj[options.idField] = 'new_' + options.id; - obj[options.nameField] = 'New ' + options.id; + if (options.idField != options.nameField) { + obj[options.nameField] = 'New ' + options.id; + } this.ensureUniqueId(obj); items.push(obj); return obj; @@ -48,6 +50,10 @@ var ATEditor = (function(ATEditor, _) { items.splice(idx, 1); } }; + this.clear = function() { + items = []; + this.items = items; + }; this.findFirstFreeId = function(id) { if(!this.hasObjectWithId(id)) { diff --git a/AndorsTrailEdit/defaults.js b/AndorsTrailEdit/defaults.js index b0b7f99f3..a0902e4f9 100644 --- a/AndorsTrailEdit/defaults.js +++ b/AndorsTrailEdit/defaults.js @@ -43,6 +43,9 @@ var ATEditor = (function(ATEditor, _) { ,inventorySlot: -1 ,size: 0 } + ,reply: { + requires: { item: { requireType: 0 } } + } }; ATEditor.defaults = { diff --git a/AndorsTrailEdit/edit_dialogue.html b/AndorsTrailEdit/edit_dialogue.html index 5ebda8664..35f5228e5 100644 --- a/AndorsTrailEdit/edit_dialogue.html +++ b/AndorsTrailEdit/edit_dialogue.html @@ -1,5 +1,142 @@ -
id: {{obj.id}}
-