new menu for battler shop
This commit is contained in:
parent
edd59cac86
commit
9366905c97
189
index.js
189
index.js
|
@ -1600,60 +1600,82 @@ app.view('downgrade', async (ctx) => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const selectedOption = new Map();
|
||||||
|
const viewId = new Map();
|
||||||
|
|
||||||
|
function initialShop(ctx) {
|
||||||
|
return {
|
||||||
|
"type": "modal",
|
||||||
|
"callback_id": "battlershop",
|
||||||
|
"title": {
|
||||||
|
"type": "plain_text",
|
||||||
|
"text": "Battler Shop",
|
||||||
|
"emoji": true
|
||||||
|
},
|
||||||
|
"submit": {
|
||||||
|
"type": "plain_text",
|
||||||
|
"text": "Select",
|
||||||
|
"emoji": true
|
||||||
|
},
|
||||||
|
"close": {
|
||||||
|
"type": "plain_text",
|
||||||
|
"text": "Never mind",
|
||||||
|
"emoji": true
|
||||||
|
},
|
||||||
|
"blocks": [
|
||||||
|
{
|
||||||
|
"type": "section",
|
||||||
|
text: {
|
||||||
|
type: "mrkdwn",
|
||||||
|
text: `*Battle Special:* Heya <@${ctx.context.userId}>. Choose an accessory type you'd like take a look at.`
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "input",
|
||||||
|
block_id: "bap",
|
||||||
|
"element": {
|
||||||
|
"type": "static_select",
|
||||||
|
"placeholder": {
|
||||||
|
"type": "plain_text",
|
||||||
|
"text": "Select an accessory",
|
||||||
|
"emoji": true
|
||||||
|
},
|
||||||
|
"options": Object.keys(shop).map((x) => {
|
||||||
|
return {
|
||||||
|
"text": {
|
||||||
|
"type": "plain_text",
|
||||||
|
"text": x,
|
||||||
|
"emoji": true
|
||||||
|
},
|
||||||
|
"value": x
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"action_id": "static_select-action"
|
||||||
|
},
|
||||||
|
"label": {
|
||||||
|
"type": "plain_text",
|
||||||
|
"text": "Choose an accessory",
|
||||||
|
"emoji": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
app.command('/battlershop', async (ctx) => {
|
app.command('/battlershop', async (ctx) => {
|
||||||
await ctx.ack();
|
await ctx.ack();
|
||||||
|
|
||||||
await ctx.client.views.open({
|
const v = await ctx.client.views.open({
|
||||||
trigger_id: ctx.payload.trigger_id,
|
trigger_id: ctx.payload.trigger_id,
|
||||||
view: {
|
view: initialShop(ctx)
|
||||||
"type": "modal",
|
});
|
||||||
"callback_id": "battlershop",
|
|
||||||
"title": {
|
//viewId.set(ctx.context.userId, v.view.id)
|
||||||
"type": "plain_text",
|
|
||||||
"text": "Battler Shop",
|
|
||||||
"emoji": true
|
|
||||||
},
|
|
||||||
"submit": {
|
|
||||||
"type": "plain_text",
|
|
||||||
"text": "Select",
|
|
||||||
"emoji": true
|
|
||||||
},
|
|
||||||
"close": {
|
|
||||||
"type": "plain_text",
|
|
||||||
"text": "Never mind",
|
|
||||||
"emoji": true
|
|
||||||
},
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"type": "actions",
|
|
||||||
"elements": Object.entries(shop).map(x => {
|
|
||||||
return {
|
|
||||||
"type": "button",
|
|
||||||
"text": {
|
|
||||||
"type": "plain_text",
|
|
||||||
"text": x[0],
|
|
||||||
"emoji": true
|
|
||||||
},
|
|
||||||
"value": x[0],
|
|
||||||
"action_id": "battlershop-"+x[0]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const selectedOption = new Map();
|
|
||||||
|
|
||||||
app.action(/battlershop-(.+)/, async (ctx) => {
|
|
||||||
await ctx.ack();
|
|
||||||
|
|
||||||
selectedOption.set(ctx.context.userId, ctx.payload.action_id.slice(12));
|
|
||||||
})
|
|
||||||
|
|
||||||
app.view("battlershop", async (ctx) => {
|
app.view("battlershop", async (ctx) => {
|
||||||
const sel = `${selectedOption.get(ctx.context.userId)}`
|
const sel = ctx.view.state.values.bap['static_select-action'].selected_option.value
|
||||||
|
|
||||||
await ctx.ack({ response_action: 'push', view: {
|
await ctx.ack({ response_action: 'push', view: {
|
||||||
"type": "modal",
|
"type": "modal",
|
||||||
|
@ -1672,6 +1694,13 @@ app.view("battlershop", async (ctx) => {
|
||||||
"text": "Back"
|
"text": "Back"
|
||||||
},
|
},
|
||||||
"blocks": [
|
"blocks": [
|
||||||
|
{
|
||||||
|
type: 'section',
|
||||||
|
text: {
|
||||||
|
type: 'mrkdwn',
|
||||||
|
text: `Choose what you'd like to look at and the colour.`
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "actions",
|
"type": "actions",
|
||||||
"elements": [
|
"elements": [
|
||||||
|
@ -1694,46 +1723,48 @@ app.view("battlershop", async (ctx) => {
|
||||||
],
|
],
|
||||||
"action_id": "accessory-type"
|
"action_id": "accessory-type"
|
||||||
},
|
},
|
||||||
{
|
...(sel != "Buddy" ? [
|
||||||
"type": "static_select",
|
{
|
||||||
"placeholder": {
|
"type": "static_select",
|
||||||
"type": "plain_text",
|
"placeholder": {
|
||||||
"text": "Select a colour",
|
"type": "plain_text",
|
||||||
"emoji": true
|
"text": "Select a colour",
|
||||||
},
|
"emoji": true
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"text": {
|
|
||||||
"type": "plain_text",
|
|
||||||
"text": "*plain_text option 0*",
|
|
||||||
"emoji": true
|
|
||||||
},
|
|
||||||
"value": "value-0"
|
|
||||||
},
|
},
|
||||||
{
|
"options": [
|
||||||
"text": {
|
{
|
||||||
"type": "plain_text",
|
"text": {
|
||||||
"text": "*plain_text option 1*",
|
"type": "plain_text",
|
||||||
"emoji": true
|
"text": "*plain_text option 0*",
|
||||||
|
"emoji": true
|
||||||
|
},
|
||||||
|
"value": "value-0"
|
||||||
},
|
},
|
||||||
"value": "value-1"
|
{
|
||||||
},
|
"text": {
|
||||||
{
|
"type": "plain_text",
|
||||||
"text": {
|
"text": "*plain_text option 1*",
|
||||||
"type": "plain_text",
|
"emoji": true
|
||||||
"text": "*plain_text option 2*",
|
},
|
||||||
"emoji": true
|
"value": "value-1"
|
||||||
},
|
},
|
||||||
"value": "value-2"
|
{
|
||||||
}
|
"text": {
|
||||||
],
|
"type": "plain_text",
|
||||||
"action_id": "actionId-1"
|
"text": "*plain_text option 2*",
|
||||||
}
|
"emoji": true
|
||||||
|
},
|
||||||
|
"value": "value-2"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"action_id": "actionId-1"
|
||||||
|
}
|
||||||
|
] : [])
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "image",
|
"type": "image",
|
||||||
"image_url": "https://assets3.thrillist.com/v1/image/1682388/size/tl-horizontal_main.jpg",
|
"image_url": `https://generator.battlemaster.obl.ong/battler.png?${sel.toLowerCase() == "base" ? "colour" : sel.toLowerCase()}=${"None"}`,
|
||||||
"alt_text": "Battler preview"
|
"alt_text": "Battler preview"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in a new issue