User:Monster Domosed/common.js: Difference between revisionsGive feedback
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 6: | Line 6: | ||
var R = '}' + '}'; | var R = '}' + '}'; | ||
var GAME_MODE_SECTIONS = [ 'Street Brawl' ]; | var GAME_MODE_SECTIONS = [ 'Street Brawl' ]; | ||
| Line 59: | Line 58: | ||
} else if ( current !== null ) { | } else if ( current !== null ) { | ||
current += ' ' + stripped; | current += ' ' + stripped; | ||
} | } | ||
| Line 104: | Line 102: | ||
} | } | ||
function formatBody( text, heroes, abilities, items ) { | function formatBody( text, heroes, abilities, items, usedHeroes, usedAbilities, usedItems ) { | ||
var protectedTokens = []; | var protectedTokens = []; | ||
| Line 128: | Line 126: | ||
text = text.replace( pattern, function () { | text = text.replace( pattern, function () { | ||
if ( template.indexOf( 'HeroIcon' ) !== -1 ) usedHeroes.add( term ); | |||
if ( template.indexOf( 'ItemIcon' ) !== -1 ) usedItems.add( term ); | |||
if ( template.indexOf( 'AbilityIcon' ) !== -1 ) usedAbilities.add( term ); | |||
return protect( | return protect( | ||
template.replace( '%s', term ) | template.replace( '%s', term ) | ||
| Line 159: | Line 162: | ||
var itemSections = {}, itemOrder = []; | var itemSections = {}, itemOrder = []; | ||
var heroSections = {}, heroOrder = []; | var heroSections = {}, heroOrder = []; | ||
var usedHeroes = new Set(); | |||
var usedItems = new Set(); | |||
var usedAbilities = new Set(); | |||
entries.forEach( function ( entry ) { | entries.forEach( function ( entry ) { | ||
| Line 165: | Line 172: | ||
var kind = c[ 0 ]; | var kind = c[ 0 ]; | ||
var name = c[ 1 ]; | var name = c[ 1 ]; | ||
var body = formatBody( c[ 2 ], heroes, abilities, items ); | |||
var body = formatBody( | |||
c[ 2 ], | |||
heroes, | |||
abilities, | |||
items, | |||
usedHeroes, | |||
usedAbilities, | |||
usedItems | |||
); | |||
if ( kind === 'general' ) { | if ( kind === 'general' ) { | ||
general.push( body ); | general.push( body ); | ||
} else if ( kind === 'mode' ) { | } else if ( kind === 'mode' ) { | ||
if ( !modes[ name ] ) { | if ( !modes[ name ] ) { | ||
modes[ name ] = []; | modes[ name ] = []; | ||
modeOrder.push( name ); | modeOrder.push( name ); | ||
} | } | ||
modes[ name ].push( body ); | modes[ name ].push( body ); | ||
} else if ( kind === 'item' ) { | } else if ( kind === 'item' ) { | ||
if ( !itemSections[ name ] ) { | if ( !itemSections[ name ] ) { | ||
itemSections[ name ] = []; | itemSections[ name ] = []; | ||
itemOrder.push( name ); | itemOrder.push( name ); | ||
} | } | ||
itemSections[ name ].push( body ); | itemSections[ name ].push( body ); | ||
} else if ( kind === 'hero' ) { | } else if ( kind === 'hero' ) { | ||
if ( !heroSections[ name ] ) { | if ( !heroSections[ name ] ) { | ||
heroSections[ name ] = []; | heroSections[ name ] = []; | ||
heroOrder.push( name ); | heroOrder.push( name ); | ||
} | } | ||
heroSections[ name ].push( body ); | heroSections[ name ].push( body ); | ||
} | } | ||
| Line 238: | Line 263: | ||
} | } | ||
return out.join( '\n' ).trim() + '\n'; | return { | ||
text: out.join( '\n' ).trim() + '\n', | |||
stats: { | |||
heroes: usedHeroes.size, | |||
abilities: usedAbilities.size, | |||
items: usedItems.size | |||
} | |||
}; | |||
} | } | ||
| Line 302: | Line 334: | ||
); | ); | ||
outputWidget.setValue( result ); | outputWidget.setValue( result.text ); | ||
status.setLabel( | status.setLabel( | ||
'Done: ' + entries.length + | 'Done: ' + entries.length + | ||
' entries | ' entries | ' + | ||
heroes | result.stats.heroes + ' heroes | ' + | ||
abilities | result.stats.abilities + ' abilities | ' + | ||
items | result.stats.items + ' items' | ||
); | ); | ||
| Line 334: | Line 366: | ||
}() ); | }() ); | ||