@@ -1,4 +0,0 @@ | |||||
melee | |||||
ranged | |||||
carry | |||||
support |
@@ -2,23 +2,40 @@ | |||||
"intents": [ | "intents": [ | ||||
{ | { | ||||
"intent": "RequestIntent", | "intent": "RequestIntent", | ||||
"slot": [ | |||||
"slots": [ | |||||
{ | { | ||||
"name": "Category", | |||||
"type": "CustomSlot" | |||||
"name": "Role", | |||||
"type": "ROLE_TYPES" | |||||
} | } | ||||
] | ] | ||||
}, | }, | ||||
{ | { | ||||
"intent": "RequestTwoIntent", | "intent": "RequestTwoIntent", | ||||
"slot": [ | |||||
"slots": [ | |||||
{ | { | ||||
"name": "Category1", | |||||
"type": "CustomSlot" | |||||
"name": "RoleOne", | |||||
"type": "ROLE_TYPES" | |||||
}, | }, | ||||
{ | { | ||||
"name": "Category2", | |||||
"type": "CustomSlot" | |||||
"name": "RoleTwo", | |||||
"type": "ROLE_TYPES" | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"intent": "RequestThreeIntent", | |||||
"slots": [ | |||||
{ | |||||
"name": "RoleOne", | |||||
"type": "ROLE_TYPES" | |||||
}, | |||||
{ | |||||
"name": "RoleTwo", | |||||
"type": "ROLE_TYPES" | |||||
}, | |||||
{ | |||||
"name": "RoleThree", | |||||
"type": "ROLE_TYPES" | |||||
} | } | ||||
] | ] | ||||
}, | }, | ||||
@@ -0,0 +1,10 @@ | |||||
melee | |||||
ranged | |||||
carry | |||||
support | |||||
strength | |||||
intelligence | |||||
agility | |||||
nuker | |||||
initiator | |||||
escape |
@@ -1,15 +1,21 @@ | |||||
RequestIntent random {Category} | |||||
RequestIntent random {Category} hero | |||||
RequestIntent random any {Category} | |||||
RequestIntent random any {Category} hero | |||||
RequestIntent random another {Category} | |||||
RequestIntent random another {Category} hero | |||||
RequestTwoIntent random {Category1} {Category2} | |||||
RequestIntent random {Category1} {Category2} hero | |||||
RequestIntent random any {Category1} {Category2} | |||||
RequestIntent random any {Category1} {Category2} hero | |||||
RequestIntent random another {Category1} {Category2} | |||||
RequestIntent random another {Category1} {Category2} hero | |||||
RequestIntent random {Role} | |||||
RequestIntent random {Role} hero | |||||
RequestIntent random any {Role} | |||||
RequestIntent random any {Role} hero | |||||
RequestIntent random another {Role} | |||||
RequestIntent random another {Role} hero | |||||
RequestTwoIntent random {RoleOne} {RoleTwo} | |||||
RequestTwoIntent random {RoleOne} {RoleTwo} hero | |||||
RequestTwoIntent random any {RoleOne} {RoleTwo} | |||||
RequestTwoIntent random any {RoleOne} {RoleTwo} hero | |||||
RequestTwoIntent random another {RoleOne} {RoleTwo} | |||||
RequestTwoIntent random another {RoleOne} {RoleTwo} hero | |||||
RequestThreeIntent random {RoleOne} {RoleTwo} {RoleThree} | |||||
RequestThreeIntent random {RoleOne} {RoleTwo} {RoleThree} hero | |||||
RequestThreeIntent random any {RoleOne} {RoleTwo} {RoleThree} | |||||
RequestThreeIntent random any {RoleOne} {RoleTwo} {RoleThree} hero | |||||
RequestThreeIntent random another {RoleOne} {RoleTwo} {RoleThree} | |||||
RequestThreeIntent random another {RoleOne} {RoleTwo} {RoleThree} hero | |||||
AnyRequest random any hero | AnyRequest random any hero | ||||
AnyRequest random any other hero | AnyRequest random any other hero | ||||
Stop stop | Stop stop |
@@ -13,7 +13,7 @@ var handlers = { | |||||
'RequestIntent': function () { | 'RequestIntent': function () { | ||||
var given = [] | var given = [] | ||||
var category = this.event.request.intent.slots.Category | |||||
var category = this.event.request.intent.slots.Role | |||||
given.push(category) | given.push(category) | ||||
randomHero(given, (name) => { | randomHero(given, (name) => { | ||||
@@ -23,8 +23,8 @@ var handlers = { | |||||
'RequestTwoIntent': function () { | 'RequestTwoIntent': function () { | ||||
var given = [] | var given = [] | ||||
var category1 = this.event.request.intent.slots.Category1 | |||||
var category2 = this.event.request.intent.slots.Category2 | |||||
var category1 = this.event.request.intent.slots.RoleOne | |||||
var category2 = this.event.request.intent.slots.RoleTwo | |||||
given.push(category1) | given.push(category1) | ||||
given.push(category2) | given.push(category2) | ||||
@@ -33,6 +33,20 @@ var handlers = { | |||||
}) | }) | ||||
}, | }, | ||||
'RequestThreeIntent': function () { | |||||
var given = [] | |||||
var category1 = this.event.request.intent.slots.RoleOne | |||||
var category2 = this.event.request.intent.slots.RoleTwo | |||||
var category3 = this.event.request.intent.slots.RoleThree | |||||
given.push(category1) | |||||
given.push(category2) | |||||
given.push(category3) | |||||
randomHero(given, (name) => { | |||||
this.emit(':tell', name) | |||||
}) | |||||
}, | |||||
'AnyRequest': function () { | 'AnyRequest': function () { | ||||
var given = [] | var given = [] | ||||
randomHero(given, (name) => { | randomHero(given, (name) => { | ||||
@@ -56,6 +70,19 @@ function randomHero (categories, callback) { | |||||
var location | var location | ||||
httpsGet((heroes) => { | httpsGet((heroes) => { | ||||
var possible = false | |||||
for (var i = 0; i < heroes.length; i++) { | |||||
if (checkCategory(categories, heroes[i])) { | |||||
possible = true | |||||
} | |||||
} | |||||
if (!possible) { | |||||
callback('Random failed') | |||||
return | |||||
} | |||||
do { | do { | ||||
location = random(heroes.length) | location = random(heroes.length) | ||||
} while (!checkCategory(categories, heroes[location])) | } while (!checkCategory(categories, heroes[location])) | ||||
@@ -92,24 +119,16 @@ function random (size) { | |||||
} | } | ||||
function checkCategory (categories, hero) { | function checkCategory (categories, hero) { | ||||
var i = 0 | |||||
var hits = false | var hits = false | ||||
while (i < categories.length) { | |||||
if (categories[i] === hero.primary_attr || categories[i] === hero.attack_type) { | |||||
hits = true | |||||
} else { | |||||
for (var j = 0; j < hero.roles.length; j++) { | |||||
if (categories[i] === hero.roles[j]) { | |||||
hits = true | |||||
break | |||||
} | |||||
for (var i = 0; i < categories.length; i++) { | |||||
for (var j = 0; j < hero.roles.length; j++) { | |||||
if (categories[i].localeCompare(hero.roles[j]) === 0) { | |||||
hits = true | |||||
} | } | ||||
} | } | ||||
if (hits) { | if (hits) { | ||||
i++ | |||||
hits = false | hits = false | ||||
} else { | } else { | ||||
return false | return false | ||||