-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathability.js
More file actions
122 lines (108 loc) · 3.44 KB
/
ability.js
File metadata and controls
122 lines (108 loc) · 3.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
"use strict";
var names = {};
var descs = {};
var menu = `<td>
<select class="menu" onchange="activate($(this).closest('tr').index())">
<option value="SET_PLAYER_ACTION_BLOCK">SET_PLAYER_ACTION_BLOCK</option>
<option value="SET_SPEED">SET_SPEED</option>
<option value=""></option>
</select>
</td>`;
function update(mode = 0)
{
if(mode === 1)
{
if($('#name').val() === '')
delete names[$('#lang_name').val()];
else
names[$('#lang_name').val()] = $('#name').val();
}
else if(mode === 2)
{
if($('#desc').val() === '')
delete descs[$('#lang_desc').val()];
else
descs[$('#lang_desc').val()] = $('#desc').val();
}
var ability = {};
ability['name'] = {};
for(var lang in names)
if(names[lang] !== '')
ability['name'][lang] = names[lang];
if(JSON.stringify(names) === '{}')
delete ability['name'];
ability['desc'] = {};
for(var lang in descs)
if(descs[lang] !== '')
ability['desc'][lang] = descs[lang];
if(JSON.stringify(descs) === '{}')
delete ability['desc'];
ability['dmgType'] = $('#dmgType').val();
ability['stunType'] = $('#stunType').val();
ability['status'] = $('#status').is(':checked');
ability['steps'] = [];
$('.menu').each(function(i)
{
var action = $(this).val();
ability['steps'][i] = {'type': action};
if(action === 'SET_PLAYER_ACTION_BLOCK')
{
$(this).closest('tr').children().each(function(index)
{
if(index === 2)
{
ability['steps'][i]['blockData'] = {};
ability['steps'][i]['blockData']['dash'] = Number($(this).find('input[name="dash"]').val());
ability['steps'][i]['blockData']['action'] = Number($(this).find('input[name="action"]').val());
ability['steps'][i]['blockData']['move'] = Number($(this).find('input[name="move"]').val());
ability['steps'][i]['blockData']['reaim'] = Number($(this).find('input[name="reaim"]').val());
}
});
}
else if(action === 'SET_SPEED')
{
$(this).closest('tr').children().each(function(index)
{
if(index === 2)
{
ability['steps'][i]['value'] = Number($(this).find('input[name="speed"]').val());
}
});
}
});
$('#output').val(JSON.stringify(ability));
}
function activate(match = -1)
{
$('.menu').each(function(i)
{
if(i === match)
{
var action = $(this).val();
if(action === 'SET_PLAYER_ACTION_BLOCK')
{
$(this).closest('tr').children().each(function(index)
{
if(index === 2)
$(this).empty().append('Dash: <input type="number" oninput="update()" class="small" name="dash"></input><br>Action: <input type="number" oninput="update()" class="small" name="action"></input><br>Move: <input type="number" oninput="update()" class="small" name="move"></input><br>Re-Aim: <input type="number" oninput="update()" class="small" name="reaim"></input>');
});
}
else if(action === 'SET_SPEED')
{
$(this).closest('tr').children().each(function(index)
{
if(index === 2)
$(this).empty().append('<input type="number" oninput="update()" class="small" name="speed"></input>');
});
}
}
});
update();
}
function swap_name() {$('#name').val(names[$('#lang_name').val()]);}
function swap_desc() {$('#desc').val(descs[$('#lang_desc').val()]);}
$(document).ready(function()
{
$('#steps').on('click', '.delete', function() {$(this).closest('tr').remove(); update();});
$('#add').click(function() {$('#steps').append('<tr><td><button class="delete">Delete</button></td>' + menu + '<td></td></tr>'); activate($('.menu').length-1); update();});
});