merge
This commit is contained in:
commit
1f1ff25a5a
99 changed files with 683 additions and 222 deletions
app
assets/javascripts/workers
lib
locale
ar.coffeebg.coffeeca.coffeecs.coffeeda.coffeede-AT.coffeede-CH.coffeede-DE.coffeede.coffeeel.coffeeen-AU.coffeeen-GB.coffeeen-US.coffeeen.coffeees-419.coffeees-ES.coffeees.coffeefa.coffeefi.coffeefr.coffeehe.coffeehi.coffeehu.coffeeid.coffeeit.coffeeja.coffeeko.coffeelt.coffeems.coffeenb.coffeenl-BE.coffeenl-NL.coffeenl.coffeenn.coffeeno.coffeepl.coffeept-BR.coffeept-PT.coffeept.coffeero.coffeeru.coffeesk.coffeesl.coffeesr.coffeesv.coffeeth.coffeetr.coffeeuk.coffeeur.coffeevi.coffeezh-HANS.coffeezh-HANT.coffeezh-WUU-HANS.coffeezh-WUU-HANT.coffeezh.coffee
models
schemas
styles
templates
treema-ext.coffeeviews
headless_client
server
server_setup.coffee
|
@ -298,6 +298,9 @@ self.setupDebugWorldToRunUntilFrame = function (args) {
|
|||
}
|
||||
Math.random = self.debugWorld.rand.randf; // so user code is predictable
|
||||
Aether.replaceBuiltin("Math", Math);
|
||||
replacedLoDash = _.runInContext(self);
|
||||
for(var key in replacedLoDash)
|
||||
_[key] = replacedLoDash[key];
|
||||
}
|
||||
self.debugWorld.totalFrames = args.frame; //hack to work around error checking
|
||||
self.currentDebugWorldFrame = args.frame;
|
||||
|
@ -353,6 +356,9 @@ self.runWorld = function runWorld(args) {
|
|||
}
|
||||
Math.random = self.world.rand.randf; // so user code is predictable
|
||||
Aether.replaceBuiltin("Math", Math);
|
||||
replacedLoDash = _.runInContext(self);
|
||||
for(var key in replacedLoDash)
|
||||
_[key] = replacedLoDash[key];
|
||||
self.postMessage({type: 'start-load-frames'});
|
||||
self.world.loadFrames(self.onWorldLoaded, self.onWorldError, self.onWorldLoadProgress);
|
||||
};
|
||||
|
|
|
@ -23,7 +23,9 @@ module.exports = class CocoRouter extends Backbone.Router
|
|||
# 'account(/:subview)(/*rest)': 'accountView'
|
||||
|
||||
# Direct links
|
||||
'test': go('TestView')
|
||||
'test/*subpath': go('TestView')
|
||||
'demo': go('DemoView')
|
||||
'demo/*subpath': go('DemoView')
|
||||
'play/ladder/:levelID': go('play/ladder/ladder_view')
|
||||
'play/ladder': go('play/ladder_home')
|
||||
|
|
|
@ -320,6 +320,7 @@ module.exports = ScriptManager = class ScriptManager extends CocoClass
|
|||
if ((noteGroup.script?.skippable) is false) and not options.force
|
||||
@noteGroupQueue = @noteGroupQueue[i..]
|
||||
@run()
|
||||
@notifyScriptStateChanged()
|
||||
return
|
||||
|
||||
@processNoteGroup(noteGroup)
|
||||
|
@ -331,6 +332,7 @@ module.exports = ScriptManager = class ScriptManager extends CocoClass
|
|||
@noteGroupQueue = []
|
||||
|
||||
@resetThings()
|
||||
@notifyScriptStateChanged()
|
||||
|
||||
onNoteGroupTimeout: (noteGroup) ->
|
||||
return unless noteGroup is @currentNoteGroup
|
||||
|
|
|
@ -25,9 +25,11 @@ module.exports = class CoordinateDisplay extends createjs.Container
|
|||
@mouseEnabled = @mouseChildren = false
|
||||
@addChild @background = new createjs.Shape()
|
||||
@addChild @label = new createjs.Text('', 'bold 16px Arial', '#FFFFFF')
|
||||
@addChild @pointMarker = new createjs.Shape()
|
||||
@label.name = 'Coordinate Display Text'
|
||||
@label.shadow = new createjs.Shadow('#000000', 1, 1, 0)
|
||||
@background.name = 'Coordinate Display Background'
|
||||
@pointMarker.name = 'Point Marker'
|
||||
|
||||
onMouseOver: (e) -> @mouseInBounds = true
|
||||
onMouseOut: (e) -> @mouseInBounds = false
|
||||
|
@ -60,26 +62,58 @@ module.exports = class CoordinateDisplay extends createjs.Container
|
|||
return unless @label.parent
|
||||
@removeChild @label
|
||||
@removeChild @background
|
||||
@removeChild @pointMarker
|
||||
@uncache()
|
||||
|
||||
updateSize: ->
|
||||
margin = 3
|
||||
radius = 2.5
|
||||
width = @label.getMeasuredWidth() + 2 * margin
|
||||
height = @label.getMeasuredHeight() + 2 * margin
|
||||
@label.regX = @background.regX = width / 2
|
||||
@label.regY = @background.regY = height / 2
|
||||
@label.regX -= margin
|
||||
@label.regY -= margin
|
||||
contentWidth = @label.getMeasuredWidth() + (2 * margin)
|
||||
contentHeight = @label.getMeasuredHeight() + (2 * margin)
|
||||
|
||||
# Shift all contents up so marker is at pointer (affects container cache position)
|
||||
@label.regY = @background.regY = @pointMarker.regY = contentHeight
|
||||
|
||||
pointMarkerStroke = 2
|
||||
pointMarkerLength = 3
|
||||
contributionsToTotalSize = []
|
||||
contributionsToTotalSize = contributionsToTotalSize.concat @updateCoordinates contentWidth, contentHeight, pointMarkerStroke
|
||||
contributionsToTotalSize = contributionsToTotalSize.concat @updatePointMarker contentHeight, pointMarkerLength, pointMarkerStroke
|
||||
|
||||
totalWidth = contentWidth + contributionsToTotalSize.reduce (a, b) -> a + b
|
||||
totalHeight = contentHeight + contributionsToTotalSize.reduce (a, b) -> a + b
|
||||
[totalWidth, totalHeight]
|
||||
|
||||
updateCoordinates: (contentWidth, contentHeight, initialXYOffset) ->
|
||||
gap = 2
|
||||
labelAndBgMarkerOffset = initialXYOffset * gap
|
||||
|
||||
# Center label horizontally and vertically
|
||||
@label.x = contentWidth / 2 - (@label.getMeasuredWidth() / 2) + labelAndBgMarkerOffset
|
||||
@label.y = contentHeight / 2 - (@label.getMeasuredHeight() / 2) - labelAndBgMarkerOffset
|
||||
|
||||
@background.graphics
|
||||
.clear()
|
||||
.beginFill('rgba(0,0,0,0.4)')
|
||||
.beginStroke('rgba(0,0,0,0.6)')
|
||||
.setStrokeStyle(1)
|
||||
.drawRoundRect(0, 0, width, height, radius)
|
||||
.setStrokeStyle(backgroundStroke = 1)
|
||||
.drawRoundRect(labelAndBgMarkerOffset, -labelAndBgMarkerOffset, contentWidth, contentHeight, radius = 2.5)
|
||||
.endFill()
|
||||
.endStroke()
|
||||
[width, height]
|
||||
contributionsToTotalSize = [labelAndBgMarkerOffset, backgroundStroke]
|
||||
|
||||
updatePointMarker: (contentHeight, length, strokeSize) ->
|
||||
shiftToLineupWithGrid = strokeSize / 2
|
||||
pointMarkerInitialX = strokeSize - shiftToLineupWithGrid
|
||||
pointMarkerInitialY = contentHeight - strokeSize + shiftToLineupWithGrid
|
||||
@pointMarker.graphics
|
||||
.beginStroke('rgb(142, 198, 67')
|
||||
.setStrokeStyle(strokeSize, 'square')
|
||||
.moveTo(pointMarkerInitialX, pointMarkerInitialY)
|
||||
.lineTo(pointMarkerInitialX, pointMarkerInitialY - length)
|
||||
.moveTo(pointMarkerInitialX, pointMarkerInitialY)
|
||||
.lineTo(pointMarkerInitialX + length, pointMarkerInitialY)
|
||||
.endStroke()
|
||||
contributionsToTotalSize = [strokeSize]
|
||||
|
||||
show: =>
|
||||
return unless @mouseInBounds and @lastPos and not @destroyed
|
||||
|
@ -87,8 +121,9 @@ module.exports = class CoordinateDisplay extends createjs.Container
|
|||
[width, height] = @updateSize()
|
||||
sup = @camera.worldToSurface @lastPos
|
||||
@x = sup.x
|
||||
@y = sup.y - 2.5
|
||||
@y = sup.y
|
||||
@addChild @background
|
||||
@addChild @label
|
||||
@cache -width / 2, -height / 2, width, height
|
||||
@addChild @pointMarker
|
||||
@cache 0, -height, width, height
|
||||
Backbone.Mediator.publish 'surface:coordinates-shown', {}
|
||||
|
|
|
@ -106,7 +106,7 @@ module.exports = class SpriteBoss extends CocoClass
|
|||
|
||||
createOpponentWizard: (opponent) ->
|
||||
# TODO: colorize name and cloud by team, colorize wizard by user's color config, level-specific wizard spawn points
|
||||
sprite = @createWizardSprite thangID: opponent.id, name: opponent.name
|
||||
sprite = @createWizardSprite thangID: opponent.id, name: opponent.name, codeLanguage: opponent.codeLanguage
|
||||
if not opponent.levelSlug or opponent.levelSlug is 'brawlwood'
|
||||
sprite.targetPos = if opponent.team is 'ogres' then {x: 52, y: 52} else {x: 28, y: 28}
|
||||
else if opponent.levelSlug is 'dungeon-arena'
|
||||
|
|
|
@ -608,7 +608,7 @@ module.exports = Surface = class Surface extends CocoClass
|
|||
ratio = current % 1
|
||||
@world.frames[next].restorePartialState ratio if next > 1
|
||||
frame.clearEvents() if parseInt(@currentFrame) is parseInt(@lastFrame)
|
||||
@spriteBoss.updateSounds()
|
||||
@spriteBoss.updateSounds() if parseInt(@currentFrame) isnt parseInt(@lastFrame)
|
||||
|
||||
updateState: (frameChanged) ->
|
||||
# world state must have been restored in @restoreWorldState
|
||||
|
|
|
@ -54,6 +54,11 @@ module.exports = class WizardSprite extends IndieSprite
|
|||
@updateRotation()
|
||||
# Don't call general update() because Thang isn't built yet
|
||||
|
||||
setNameLabel: (name) ->
|
||||
if @options.codeLanguage and @options.codeLanguage isnt 'javascript' and not @isSelf
|
||||
name += " (#{@options.codeLanguage})" # TODO: move on second line, capitalize properly
|
||||
super name
|
||||
|
||||
onPlayerStatesChanged: (e) ->
|
||||
for playerID, state of e.states
|
||||
continue unless playerID is @thang.id
|
||||
|
|
|
@ -54,6 +54,7 @@ module.exports.i18n = (say, target, language=me.lang(), fallback='en') ->
|
|||
generalName = matches[0] if matches
|
||||
|
||||
for localeName, locale of say.i18n
|
||||
continue if localeName is '-'
|
||||
if target of locale
|
||||
result = locale[target]
|
||||
else continue
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
class Vector
|
||||
@className: 'Vector'
|
||||
# Class methods for nondestructively operating
|
||||
for name in ['add', 'subtract', 'multiply', 'divide', 'limit', 'normalize']
|
||||
for name in ['add', 'subtract', 'multiply', 'divide', 'limit', 'normalize', 'rotate']
|
||||
do (name) ->
|
||||
Vector[name] = (a, b, useZ) ->
|
||||
a.copy()[name](b, useZ)
|
||||
|
||||
isVector: true
|
||||
apiProperties: ['x', 'y', 'z', 'magnitude', 'heading', 'distance', 'dot', 'equals', 'copy', 'distanceSquared']
|
||||
apiProperties: ['x', 'y', 'z', 'magnitude', 'heading', 'distance', 'dot', 'equals', 'copy', 'distanceSquared', 'rotate']
|
||||
|
||||
constructor: (@x=0, @y=0, @z=0) ->
|
||||
|
||||
|
|
|
@ -207,7 +207,11 @@ module.exports = class World
|
|||
map = if kind is 'component' then @componentCodeClassMap else @systemCodeClassMap
|
||||
c = map[js]
|
||||
return c if c
|
||||
try
|
||||
c = map[js] = eval js
|
||||
catch err
|
||||
console.error "Couldn't compile #{kind} code:", err, "\n", js
|
||||
c = map[js] = {}
|
||||
c.className = name
|
||||
c
|
||||
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "български език", englishDescri
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "български език", englishDescri
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
|||
revert_models: "Models zurücksetzen."
|
||||
fork_title: "Forke neue Version"
|
||||
fork_creating: "Erzeuge Fork..."
|
||||
# randomize: "Randomize"
|
||||
more: "Mehr"
|
||||
wiki: "Wiki"
|
||||
live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
choose_opponent: "Wähle einen Gegner"
|
||||
# select_your_language: "Select your language!"
|
||||
tutorial_play: "Spiele Tutorial"
|
||||
tutorial_recommended: "Empfohlen, wenn du noch nie zuvor gespielt hast."
|
||||
tutorial_skip: "Überspringe Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
|
|||
revert_models: "Models zurücksetzen."
|
||||
fork_title: "Forke neue Version"
|
||||
fork_creating: "Erzeuge Fork..."
|
||||
# randomize: "Randomize"
|
||||
more: "Mehr"
|
||||
wiki: "Wiki"
|
||||
live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
choose_opponent: "Wähle einen Gegner"
|
||||
# select_your_language: "Select your language!"
|
||||
tutorial_play: "Spiele Tutorial"
|
||||
tutorial_recommended: "Empfohlen, wenn du noch nie zuvor gespielt hast."
|
||||
tutorial_skip: "Überspringe Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -482,7 +482,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
|
|||
# twitter: "Twitter"
|
||||
# gplus: "Google+"
|
||||
|
||||
# editor:
|
||||
editor:
|
||||
# main_title: "CodeCombat Editors"
|
||||
# main_description: "Build your own levels, campaigns, units and educational content. We provide all the tools you need!"
|
||||
# article_title: "Article Editor"
|
||||
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
randomize: "Randomise"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -499,8 +499,12 @@
|
|||
back: "Back"
|
||||
revert: "Revert"
|
||||
revert_models: "Revert Models"
|
||||
pick_a_terrain: "Pick A Terrain"
|
||||
small: "Small"
|
||||
grassy: "Grassy"
|
||||
fork_title: "Fork New Version"
|
||||
fork_creating: "Creating Fork..."
|
||||
randomize: "Randomize"
|
||||
more: "More"
|
||||
wiki: "Wiki"
|
||||
live_chat: "Live Chat"
|
||||
|
@ -801,6 +805,7 @@
|
|||
no_ranked_matches_pre: "No ranked matches for the "
|
||||
no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
choose_opponent: "Choose an Opponent"
|
||||
select_your_language: "Select your language!"
|
||||
tutorial_play: "Play Tutorial"
|
||||
tutorial_recommended: "Recommended if you've never played before"
|
||||
tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
|
|||
no_ranked_matches_pre: "Sin partidas clasificadas para el "
|
||||
no_ranked_matches_post: " equipo! Juega en contra de algunos competidores y luego vuelve aquí para ver tu juego clasificado."
|
||||
choose_opponent: "Escoge un Oponente"
|
||||
# select_your_language: "Select your language!"
|
||||
tutorial_play: "Juega el Tutorial"
|
||||
tutorial_recommended: "Recomendado si nunca has jugado antes"
|
||||
tutorial_skip: "Saltar Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
|
|||
revert_models: "Revertir Modelos"
|
||||
fork_title: "Bifurcar nueva versión"
|
||||
fork_creating: "Creando bifurcación..."
|
||||
# randomize: "Randomize"
|
||||
more: "Más"
|
||||
wiki: "Wiki"
|
||||
live_chat: "Chat en directo"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
|
|||
no_ranked_matches_pre: "No hay partidas calificadas para "
|
||||
no_ranked_matches_post: " equipo! Juega contra otros competidores y luego vuelve aquí para que tu partida aparezca en la clasificación."
|
||||
choose_opponent: "Elige un contrincante"
|
||||
# select_your_language: "Select your language!"
|
||||
tutorial_play: "Jugar el Tutorial"
|
||||
tutorial_recommended: "Recomendado si no has jugado antes."
|
||||
tutorial_skip: "Saltar el Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
tutorial_play: "Jugar Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
tutorial_skip: "Saltar Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
revert_models: "Annuler les modèles"
|
||||
fork_title: "Fork une nouvelle version"
|
||||
fork_creating: "Créer un Fork..."
|
||||
# randomize: "Randomize"
|
||||
more: "Plus"
|
||||
wiki: "Wiki"
|
||||
live_chat: "Chat en live"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
no_ranked_matches_pre: "Pas de match classé pour l'équipe "
|
||||
no_ranked_matches_post: "! Affronte d'autres compétiteurs et reviens ici pour classer ta partie."
|
||||
choose_opponent: "Choisir un Adversaire"
|
||||
# select_your_language: "Select your language!"
|
||||
tutorial_play: "Jouer au Tutoriel"
|
||||
tutorial_recommended: "Recommendé si tu n'as jamais joué avant"
|
||||
tutorial_skip: "Passer le Tutoriel"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -173,8 +173,8 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
|||
email_announcements: "Bejelentések"
|
||||
email_announcements_description: "Szeretnél levelet kapni a legújabb fejlesztéseinkről?"
|
||||
email_notifications: "Értesítések"
|
||||
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
|
||||
email_any_notes: "Bármely értesítés"
|
||||
email_notifications_summary: "CodeCombat tevékenységedre vonatkozó személyre szóló, automatikus értesítések beállításai."
|
||||
email_any_notes: "Bármely megjegyzés"
|
||||
email_any_notes_description: "Minden tevékenységgel kapcsolatos e-mail értesítés letiltása."
|
||||
email_recruit_notes: "Álláslehetőségek"
|
||||
email_recruit_notes_description: "Ha igazán jól játszol lehet, hogy felveszzük veled a kapcsolatot és megbeszéljük, hogy szerezzünk-e neked egy (jobb) állást."
|
||||
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
|||
no_ranked_matches_pre: "Nessuna partita valutata per "
|
||||
no_ranked_matches_post: " squadra! Gioca contro altri avversari e poi torna qui affinchè la tua partita venga valutata."
|
||||
choose_opponent: "Scegli un avversario"
|
||||
# select_your_language: "Select your language!"
|
||||
tutorial_play: "Gioca il Tutorial"
|
||||
tutorial_recommended: "Consigliato se questa è la tua primissima partita"
|
||||
tutorial_skip: "Salta il Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
|||
revert_models: "모델 되돌리기"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
|
|||
revert_models: "keer wijziging model terug"
|
||||
fork_title: "Kloon naar nieuwe versie"
|
||||
fork_creating: "Kloon aanmaken..."
|
||||
# randomize: "Randomize"
|
||||
more: "Meer"
|
||||
wiki: "Wiki"
|
||||
live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
|
|||
no_ranked_matches_pre: "Geen beoordeelde wedstrijden voor het"
|
||||
no_ranked_matches_post: " team! Speel tegen enkele tegenstanders en kom terug hier om uw spel te laten beoordelen."
|
||||
choose_opponent: "Kies een tegenstander"
|
||||
# select_your_language: "Select your language!"
|
||||
tutorial_play: "Speel de Tutorial"
|
||||
tutorial_recommended: "Aanbevolen als je nog niet eerder hebt gespeeld"
|
||||
tutorial_skip: "Sla Tutorial over"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
|
|||
revert_models: "keer wijziging model terug"
|
||||
fork_title: "Kloon naar nieuwe versie"
|
||||
fork_creating: "Kloon aanmaken..."
|
||||
# randomize: "Randomize"
|
||||
more: "Meer"
|
||||
wiki: "Wiki"
|
||||
live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
|
|||
no_ranked_matches_pre: "Geen beoordeelde wedstrijden voor het"
|
||||
no_ranked_matches_post: " team! Speel tegen enkele tegenstanders en kom terug hier om uw spel te laten beoordelen."
|
||||
choose_opponent: "Kies een tegenstander"
|
||||
# select_your_language: "Select your language!"
|
||||
tutorial_play: "Speel de Tutorial"
|
||||
tutorial_recommended: "Aanbevolen als je nog niet eerder hebt gespeeld"
|
||||
tutorial_skip: "Sla Tutorial over"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
|
|||
revert_models: "keer wijziging model terug"
|
||||
fork_title: "Kloon naar nieuwe versie"
|
||||
fork_creating: "Kloon aanmaken..."
|
||||
# randomize: "Randomize"
|
||||
more: "Meer"
|
||||
wiki: "Wiki"
|
||||
live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
|
|||
no_ranked_matches_pre: "Geen beoordeelde wedstrijden voor het"
|
||||
no_ranked_matches_post: " team! Speel tegen enkele tegenstanders en kom terug hier om uw spel te laten beoordelen."
|
||||
choose_opponent: "Kies een tegenstander"
|
||||
# select_your_language: "Select your language!"
|
||||
tutorial_play: "Speel de Tutorial"
|
||||
tutorial_recommended: "Aanbevolen als je nog niet eerder hebt gespeeld"
|
||||
tutorial_skip: "Sla Tutorial over"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
|
|||
revert_models: "Przywróć wersję"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
|
|||
no_ranked_matches_pre: "Brak ocenionych pojedynków dla drużyny "
|
||||
no_ranked_matches_post: " ! Zagraj przeciwko kilku oponentom i wróc tutaj, aby uzyskać ocenę gry."
|
||||
choose_opponent: "Wybierz przeciwnika"
|
||||
# select_your_language: "Select your language!"
|
||||
tutorial_play: "Rozegraj samouczek"
|
||||
tutorial_recommended: "Zalecane, jeśli wcześniej nie grałeś"
|
||||
tutorial_skip: "Pomiń samouczek"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
|
|||
revert_models: "Reverter Modelos"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
more: "Mais"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
|
|||
no_ranked_matches_pre: "Sem partidas classificadas para o "
|
||||
no_ranked_matches_post: " time! Jogue contra alguns competidores e então volte aqui para ter seu jogo classificado."
|
||||
choose_opponent: "Escolha um Oponente"
|
||||
# select_your_language: "Select your language!"
|
||||
tutorial_play: "Jogue o Tutorial"
|
||||
tutorial_recommended: "Recomendado se você nunca jogou antes"
|
||||
tutorial_skip: "Pular Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
|||
revert_models: "Reverter Modelos"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
|||
no_ranked_matches_pre: "Sem jogos classificados pela equipa "
|
||||
no_ranked_matches_post: "! Joga contra alguns adversários e volta aqui para veres o teu jogo classificado."
|
||||
choose_opponent: "Escolhe um Adversário"
|
||||
# select_your_language: "Select your language!"
|
||||
tutorial_play: "Jogar Tutorial"
|
||||
tutorial_recommended: "Recomendado se nunca jogaste antes"
|
||||
tutorial_skip: "Saltar Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
|
|||
revert_models: "Resetează Modelele"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
|
|||
no_ranked_matches_pre: "Nici un meci de clasament pentru "
|
||||
no_ranked_matches_post: " echipă! Joacă împotriva unor concurenți și revino apoi aici pentr a-ți plasa meciul in clasament."
|
||||
choose_opponent: "Alege un adversar"
|
||||
# select_your_language: "Select your language!"
|
||||
tutorial_play: "Joacă Tutorial-ul"
|
||||
tutorial_recommended: "Recomandat dacă nu ai mai jucat niciodată înainte"
|
||||
tutorial_skip: "Sari peste Tutorial"
|
||||
|
|
|
@ -173,7 +173,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
|||
email_announcements: "Оповещения"
|
||||
email_announcements_description: "Получать email-оповещения о последних новостях CodeCombat."
|
||||
email_notifications: "Уведомления"
|
||||
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
|
||||
email_notifications_summary: "Настройки автоматических email-уведомлений, основанных на вашей активности на CodeCombat."
|
||||
email_any_notes: "Все уведомления"
|
||||
email_any_notes_description: "Отключите, чтобы больше не получать извещения."
|
||||
email_recruit_notes: "Возможности для работы"
|
||||
|
@ -399,8 +399,8 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
|||
editor_config_keybindings_label: "Сочетания клавиш"
|
||||
editor_config_keybindings_default: "По умолчанию (Ace)"
|
||||
editor_config_keybindings_description: "Добавляет дополнительные сочетания, известные из популярных редакторов."
|
||||
# editor_config_livecompletion_label: "Live Autocompletion"
|
||||
# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing."
|
||||
editor_config_livecompletion_label: "Автозаполнение"
|
||||
editor_config_livecompletion_description: "Отображение вариантов автозаполнения во время печати."
|
||||
editor_config_invisibles_label: "Показывать непечатные символы"
|
||||
editor_config_invisibles_description: "Отображение непечатных символов, таких как пробелы или табуляции."
|
||||
editor_config_indentguides_label: "Показывать направляющие отступов"
|
||||
|
@ -451,8 +451,8 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
|||
enter: "Enter"
|
||||
escape: "Escape"
|
||||
cast_spell: "Произнести текущее заклинание."
|
||||
# continue_script: "Continue past current script."
|
||||
# skip_scripts: "Skip past all skippable scripts."
|
||||
continue_script: "Продолжить текущий скрипт."
|
||||
skip_scripts: "Пропустить все возможные скрипты."
|
||||
toggle_playback: "Переключить проигрывание/паузу."
|
||||
scrub_playback: "Перемотка назад и вперед во времени."
|
||||
# single_scrub_playback: "Scrub back and forward through time by a single frame."
|
||||
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
|||
revert_models: "Откатить Модели"
|
||||
fork_title: "Форк новой версии"
|
||||
fork_creating: "Создание форка..."
|
||||
# randomize: "Randomize"
|
||||
more: "Ещё"
|
||||
wiki: "Вики"
|
||||
live_chat: "Онлайн-чат"
|
||||
|
@ -535,10 +536,10 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
|||
new_thang_title: "Создать новый тип объектов"
|
||||
new_level_title: "Создать новый уровень"
|
||||
new_article_title_login: "Войти, чтобы создать новую статью"
|
||||
# new_thang_title_login: "Log In to Create a New Thang Type"
|
||||
new_level_title_login: "Войти чтобы создать новый уровень"
|
||||
# new_achievement_title: "Create a New Achievement"
|
||||
# new_achievement_title_login: "Log In to Create a New Achievement"
|
||||
new_thang_title_login: "Войти, чтобы создать новый тип объектов"
|
||||
new_level_title_login: "Войти, чтобы создать новый уровень"
|
||||
new_achievement_title: "Создать новое достижение"
|
||||
new_achievement_title_login: "Войти, чтобы создать новое достижение"
|
||||
article_search_title: "Искать статьи"
|
||||
thang_search_title: "Искать типы объектов"
|
||||
level_search_title: "Искать уровни"
|
||||
|
@ -795,12 +796,13 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
|||
rank_submitted: "Отправлено для оценки"
|
||||
rank_failed: "Сбой в оценке"
|
||||
rank_being_ranked: "Игра оценивается"
|
||||
# rank_last_submitted: "submitted "
|
||||
# help_simulate: "Help simulate games?"
|
||||
rank_last_submitted: "отправлено "
|
||||
help_simulate: "Нужна помощь в симуляции игр?"
|
||||
code_being_simulated: "Ваш новый код участвует в симуляции других игроков для оценки. Обновление будет при поступлении новых матчей."
|
||||
no_ranked_matches_pre: "Нет оценённых матчей для команды"
|
||||
no_ranked_matches_post: "! Сыграйте против нескольких противников и возвращайтесь сюда для оценки вашей игры."
|
||||
choose_opponent: "Выберите противника"
|
||||
# select_your_language: "Select your language!"
|
||||
tutorial_play: "Пройти обучение"
|
||||
tutorial_recommended: "Рекомендуется, если вы раньше никогда не играли"
|
||||
tutorial_skip: "Пропустить обучение"
|
||||
|
@ -809,19 +811,19 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
|||
simple_ai: "Простой ИИ"
|
||||
warmup: "Разминка"
|
||||
vs: "против"
|
||||
# friends_playing: "Friends Playing"
|
||||
# log_in_for_friends: "Log in to play with your friends!"
|
||||
# social_connect_blurb: "Connect and play against your friends!"
|
||||
friends_playing: "Друзья в игре"
|
||||
log_in_for_friends: "Войти, чтобы поиграть с друзьями!"
|
||||
social_connect_blurb: "Свяжите учетную запись и играйте против друзей!"
|
||||
invite_friends_to_battle: "Пригласить друзей присоединиться к вам в сражении!"
|
||||
fight: "В бой!"
|
||||
# watch_victory: "Watch your victory"
|
||||
# defeat_the: "Defeat the"
|
||||
# tournament_ends: "Tournament ends"
|
||||
# tournament_ended: "Tournament ended"
|
||||
# tournament_rules: "Tournament Rules"
|
||||
# tournament_blurb: "Write code, collect gold, build armies, crush foes, win prizes, and upgrade your career in our $40,000 Greed tournament! Check out the details"
|
||||
# tournament_blurb_blog: "on our blog"
|
||||
# rules: "Rules"
|
||||
watch_victory: "Наблюдать за победой"
|
||||
defeat_the: "Победить"
|
||||
tournament_ends: "Турнир заканчивается"
|
||||
tournament_ended: "Турнир закончился"
|
||||
tournament_rules: "Правила турнира"
|
||||
tournament_blurb: "Пишите код, собирайте золото, стройте армию, крушите противников, получайте призы и улучшайте вашу карьеру в нашем \"$40,000 турнире жадности\"! Узнайте больше"
|
||||
tournament_blurb_blog: "в нашем блоге"
|
||||
rules: "Правила"
|
||||
winners: "Победители"
|
||||
|
||||
# ladder_prizes:
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
revert_models: "Återställ modeller"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
no_ranked_matches_pre: "Inga rankade matcher för "
|
||||
no_ranked_matches_post: " laget! Spela mot några motståndare och kom sedan tillbaka it för att få din match rankad."
|
||||
choose_opponent: "Välj en motståndare"
|
||||
# select_your_language: "Select your language!"
|
||||
tutorial_play: "Spela tutorial"
|
||||
tutorial_recommended: "Rekommenderas om du aldrig har spelat tidigare"
|
||||
tutorial_skip: "Hoppa över tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
|
|||
revert_models: "Önceki Modeller"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "українська мова", englishDesc
|
|||
revert_models: "Моделі повернення"
|
||||
fork_title: "Нова версія Форк"
|
||||
fork_creating: "Створення Форк..."
|
||||
# randomize: "Randomize"
|
||||
more: "Більше"
|
||||
wiki: "Wiki"
|
||||
live_chat: "Online чат"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "українська мова", englishDesc
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
|
|||
revert_models: "还原模式"
|
||||
fork_title: "派生新版本"
|
||||
fork_creating: "正在执行派生..."
|
||||
# randomize: "Randomize"
|
||||
more: "更多"
|
||||
wiki: "维基"
|
||||
live_chat: "在线聊天"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
choose_opponent: "选择一个对手"
|
||||
# select_your_language: "Select your language!"
|
||||
tutorial_play: "玩教程"
|
||||
tutorial_recommended: "如果你从未玩过的话,推荐先玩下教程"
|
||||
tutorial_skip: "跳过教材"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
|
|||
revert_models: "還原模式"
|
||||
fork_title: "派生新版本"
|
||||
fork_creating: "徠搭執行派生..."
|
||||
# randomize: "Randomize"
|
||||
more: "無數"
|
||||
wiki: "維基"
|
||||
live_chat: "上線白嗒"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
choose_opponent: "揀一個對手"
|
||||
# select_your_language: "Select your language!"
|
||||
tutorial_play: "攪教程"
|
||||
tutorial_recommended: "假使爾從來朆攪過個話,建議爾先畀教程攪攪相"
|
||||
tutorial_skip: "跳過教程"
|
||||
|
|
|
@ -501,6 +501,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
|
|||
# revert_models: "Revert Models"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
|
@ -801,6 +802,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
|
|||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
# tutorial_play: "Play Tutorial"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
# tutorial_skip: "Skip Tutorial"
|
||||
|
|
|
@ -30,7 +30,7 @@ module.exports = class Level extends CocoModel
|
|||
visit = (system) ->
|
||||
return if system.original of originalsSeen
|
||||
systemModel = _.find systemModels, {original: system.original}
|
||||
console.error 'Couldn\'t find model for original', system.original, 'from', systemModels unless systemModel
|
||||
return console.error 'Couldn\'t find model for original', system.original, 'from', systemModels unless systemModel
|
||||
for d in systemModel.dependencies or []
|
||||
system2 = _.find levelSystems, {original: d.original}
|
||||
visit system2
|
||||
|
@ -61,7 +61,7 @@ module.exports = class Level extends CocoModel
|
|||
for d in lc.dependencies or []
|
||||
c2 = _.find thang.components, {original: d.original}
|
||||
console.error thang.id, 'couldn\'t find dependent Component', d.original, 'from', lc.name unless c2
|
||||
visit c2
|
||||
visit c2 if c2
|
||||
if lc.name is 'Collides'
|
||||
allied = _.find levelComponents, {name: 'Allied'}
|
||||
if allied
|
||||
|
|
|
@ -7,6 +7,7 @@ module.exports = class User extends CocoModel
|
|||
@className: 'User'
|
||||
@schema: require 'schemas/models/user'
|
||||
urlRoot: '/db/user'
|
||||
notyErrors: false
|
||||
|
||||
defaults:
|
||||
points: 0
|
||||
|
|
|
@ -239,6 +239,9 @@ _.extend LevelSessionSchema.properties,
|
|||
title: 'Opponent Rank'
|
||||
description: 'The opponent\'s ranking in a given match'
|
||||
type: 'number'
|
||||
codeLanguage:
|
||||
type: 'string'
|
||||
description: 'What submittedCodeLanguage the opponent used during the match'
|
||||
|
||||
c.extendBasicProperties LevelSessionSchema, 'level.session'
|
||||
c.extendPermissionsProperties LevelSessionSchema, 'level.session'
|
||||
|
|
|
@ -9,6 +9,9 @@ module.exports =
|
|||
'note-group-ended':
|
||||
{} # TODO schema
|
||||
|
||||
'modal-opened':
|
||||
{} # TODO schema
|
||||
|
||||
'modal-closed':
|
||||
{} # TODO schema
|
||||
|
||||
|
|
|
@ -32,9 +32,6 @@ module.exports =
|
|||
'level-set-grid':
|
||||
{} # TODO schema
|
||||
|
||||
'tome:cast-spell':
|
||||
{} # TODO schema
|
||||
|
||||
'level:restarted':
|
||||
{} # TODO schema
|
||||
|
||||
|
|
|
@ -1,74 +1,217 @@
|
|||
module.exports =
|
||||
'tome:cast-spell':
|
||||
{} # TODO schema
|
||||
"tome:cast-spell":
|
||||
title: "Cast Spell"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when a spell is cast"
|
||||
type: ["object", "undefined"]
|
||||
properties:
|
||||
spell:
|
||||
type: "object"
|
||||
thang:
|
||||
type: "object"
|
||||
preload:
|
||||
type: "boolean"
|
||||
required: []
|
||||
additionalProperties: false
|
||||
|
||||
# TODO do we really need both 'cast-spell' and 'cast-spells'?
|
||||
'tome:cast-spells':
|
||||
{} # TODO schema
|
||||
"tome:cast-spells":
|
||||
title: "Cast Spells"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when spells are cast"
|
||||
type: ["object", "undefined"]
|
||||
properties:
|
||||
spells:
|
||||
type: "object"
|
||||
preload:
|
||||
type: "boolean"
|
||||
required: []
|
||||
additionalProperties: false
|
||||
|
||||
'tome:manual-cast':
|
||||
{} # TODO schema
|
||||
"tome:manual-cast":
|
||||
title: "Manually Cast Spells"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when you wish to manually recast all spells"
|
||||
type: "object"
|
||||
properties: {}
|
||||
required: []
|
||||
additionalProperties: false
|
||||
|
||||
'tome:spell-created':
|
||||
{} # TODO schema
|
||||
"tome:spell-created":
|
||||
title: "Spell Created"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published after a new spell has been created"
|
||||
type: "object"
|
||||
properties:
|
||||
"spell": "object"
|
||||
required: ["spell"]
|
||||
additionalProperties: false
|
||||
|
||||
'tome:spell-debug-property-hovered':
|
||||
{} # TODO schema
|
||||
"tome:spell-debug-property-hovered":
|
||||
title: "Spell Debug Property Hovered"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when you hover over a spell property"
|
||||
type: "object"
|
||||
properties:
|
||||
"property": "string"
|
||||
"owner": "string"
|
||||
required: []
|
||||
additionalProperties: false
|
||||
|
||||
'tome:toggle-spell-list':
|
||||
{} # TODO schema
|
||||
"tome:toggle-spell-list":
|
||||
title: "Toggle Spell List"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when you toggle the dropdown for a thang's spells"
|
||||
type: "undefined"
|
||||
additionalProperties: false
|
||||
|
||||
'tome:reload-code':
|
||||
{} # TODO schema
|
||||
"tome:reload-code":
|
||||
title: "Reload Code"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when you reset a spell to its original source"
|
||||
type: "object"
|
||||
properties:
|
||||
"spell": "object"
|
||||
required: ["spell"]
|
||||
additionalProperties: false
|
||||
|
||||
'tome:palette-hovered':
|
||||
{} # TODO schema
|
||||
"tome:palette-hovered":
|
||||
title: "Palette Hovered"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when you hover over a Thang in the spell palette"
|
||||
type: "object"
|
||||
properties:
|
||||
"thang": "object"
|
||||
"prop": "string"
|
||||
"entry": "object"
|
||||
required: ["thang", "prop", "entry"]
|
||||
additionalProperties: false
|
||||
|
||||
'tome:palette-pin-toggled':
|
||||
{} # TODO schema
|
||||
"tome:palette-pin-toggled":
|
||||
title: "Palette Pin Toggled"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when you pin or unpin the spell palette"
|
||||
type: "object"
|
||||
properties:
|
||||
"entry": "object"
|
||||
"pinned": "boolean"
|
||||
required: ["entry", "pinned"]
|
||||
additionalProperties: false
|
||||
|
||||
'tome:palette-clicked':
|
||||
{} # TODO schema
|
||||
"tome:palette-clicked":
|
||||
title: "Palette Clicked"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when you click on the spell palette"
|
||||
type: "object"
|
||||
properties:
|
||||
"thang": "object"
|
||||
"prop": "string"
|
||||
"entry": "object"
|
||||
required: ["thang", "prop", "entry"]
|
||||
additionalProperties: false
|
||||
|
||||
'tome:spell-statement-index-updated':
|
||||
{} # TODO schema
|
||||
"tome:spell-statement-index-updated":
|
||||
title: "Spell Statement Index Updated"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when the spell index is updated"
|
||||
type: "object"
|
||||
properties:
|
||||
"statementIndex": "object"
|
||||
"ace": "object"
|
||||
required: ["statementIndex", "ace"]
|
||||
additionalProperties: false
|
||||
|
||||
# TODO proposition: refactor 'tome' into spell events
|
||||
'spell-beautify':
|
||||
{} # TODO schema
|
||||
"spell-beautify":
|
||||
title: "Beautify"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when you click the \"beautify\" button"
|
||||
type: "object"
|
||||
properties:
|
||||
"spell": "object"
|
||||
required: []
|
||||
additionalProperties: false
|
||||
|
||||
'spell-step-forward':
|
||||
{} # TODO schema
|
||||
"spell-step-forward":
|
||||
title: "Step Forward"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when you step forward in time"
|
||||
type: "undefined"
|
||||
additionalProperties: false
|
||||
|
||||
'spell-step-backward':
|
||||
{} # TODO schema
|
||||
"spell-step-backward":
|
||||
title: "Step Backward"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when you step backward in time"
|
||||
type: "undefined"
|
||||
additionalProperties: false
|
||||
|
||||
'tome:spell-loaded':
|
||||
{} # TODO schema
|
||||
"tome:spell-loaded":
|
||||
title: "Spell Loaded"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when a spell is loaded"
|
||||
type: "object"
|
||||
properties:
|
||||
"spell": "object"
|
||||
required: ["spell"]
|
||||
additionalProperties: false
|
||||
|
||||
'tome:cast-spell':
|
||||
{} # TODO schema
|
||||
"tome:spell-changed":
|
||||
title: "Spell Changed"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when a spell is changed"
|
||||
type: "object"
|
||||
properties:
|
||||
"spell": "object"
|
||||
required: ["spell"]
|
||||
additionalProperties: false
|
||||
|
||||
'tome:spell-changed':
|
||||
{} # TODO schema
|
||||
"tome:editing-began":
|
||||
title: "Editing Began"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when you have begun changing code"
|
||||
type: "undefined"
|
||||
additionalProperties: false
|
||||
|
||||
'tome:editing-ended':
|
||||
{} # TODO schema
|
||||
"tome:editing-ended":
|
||||
title: "Editing Ended"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when you have stopped changing code"
|
||||
type: "undefined"
|
||||
additionalProperties: false
|
||||
|
||||
'tome:editing-began':
|
||||
{} # TODO schema
|
||||
"tome:problems-updated":
|
||||
title: "Problems Updated"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when problems have been updated"
|
||||
type: "object"
|
||||
properties:
|
||||
"spell": "object"
|
||||
"problems": "array"
|
||||
"isCast": "boolean"
|
||||
required: ["spell", "problems", "isCast"]
|
||||
additionalProperties: false
|
||||
|
||||
'tome:problems-updated':
|
||||
{} # TODO schema
|
||||
"tome:thang-list-entry-popover-shown":
|
||||
title: "Thang List Entry Popover Shown"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when we show the popover for a thang in the master list"
|
||||
type: "object"
|
||||
properties:
|
||||
"entry": "object"
|
||||
required: ["entry"]
|
||||
additionalProperties: false
|
||||
|
||||
'tome:thang-list-entry-popover-shown':
|
||||
{} # TODO schema
|
||||
|
||||
'tome:spell-shown':
|
||||
{} # TODO schema
|
||||
|
||||
'tome:focus-editor':
|
||||
{} # TODO schema
|
||||
"tome:spell-shown":
|
||||
title: "Spell Shown"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when we show a spell"
|
||||
type: "object"
|
||||
properties:
|
||||
"thang": "object"
|
||||
"spell": "object"
|
||||
required: ["thang", "spell"]
|
||||
additionalProperties: false
|
||||
|
||||
'tome:change-language':
|
||||
title: 'Tome Change Language'
|
||||
|
@ -93,3 +236,37 @@ module.exports =
|
|||
language:
|
||||
type: 'string'
|
||||
required: ['spell']
|
||||
|
||||
"tome:comment-my-code":
|
||||
title: "Comment My Code"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when we comment out a chunk of your code"
|
||||
type: "undefined"
|
||||
additionalProperties: false
|
||||
|
||||
"tome:change-config":
|
||||
title: "Change Config"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when you change your tome settings"
|
||||
type: "undefined"
|
||||
additionalProperties: false
|
||||
|
||||
"tome:update-snippets":
|
||||
title: "Update Snippets"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when we need to add Zatanna Snippets"
|
||||
type: "object"
|
||||
properties:
|
||||
"propGroups": "object"
|
||||
"allDocs": "object"
|
||||
"language": "string"
|
||||
required: ["propGroups", "allDocs"]
|
||||
additionalProperties: false
|
||||
|
||||
# TODO proposition: add tome to name
|
||||
"focus-editor":
|
||||
title: "Focus Editor"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published whenever we want to give focus back to the editor"
|
||||
type: "undefined"
|
||||
additionalProperties: false
|
||||
|
|
1
app/styles/bootstrap.scss
vendored
1
app/styles/bootstrap.scss
vendored
|
@ -1 +0,0 @@
|
|||
@import "bootstrap/bootstrap";
|
|
@ -1,4 +1,4 @@
|
|||
#terrain-randomise-modal
|
||||
#terrain-randomize-modal
|
||||
|
||||
.choose-option
|
||||
margin-bottom: 15px
|
|
@ -10,8 +10,8 @@
|
|||
float: none
|
||||
background: white
|
||||
|
||||
.wizard-name-line
|
||||
#wizard-settings-name-wrapper
|
||||
padding-left: 0px !important
|
||||
|
||||
.help-block
|
||||
text-align: center
|
||||
margin-bottom: 10px
|
||||
label
|
||||
margin-right: 10px
|
|
@ -50,3 +50,9 @@
|
|||
|
||||
td
|
||||
padding: 1px 2px
|
||||
|
||||
.code-language-cell
|
||||
padding: 0 10px
|
||||
background: transparent url(/images/pages/home/language_logo_javascript.png) no-repeat center center
|
||||
background-size: contain
|
||||
height: 19px
|
||||
|
|
|
@ -37,3 +37,9 @@
|
|||
|
||||
td
|
||||
padding: 1px 2px
|
||||
|
||||
.code-language-cell
|
||||
padding: 0 10px
|
||||
background: transparent url(/images/pages/home/language_logo_javascript.png) no-repeat center center
|
||||
background-size: contain
|
||||
height: 19px
|
||||
|
|
|
@ -96,6 +96,16 @@
|
|||
position: relative
|
||||
top: 1px
|
||||
|
||||
.code-language
|
||||
position: absolute
|
||||
background: transparent url(/images/pages/home/language_logo_javascript.png) no-repeat center center
|
||||
background-size: contain
|
||||
width: 40px
|
||||
height: 40px
|
||||
right: -5px
|
||||
top: -15px
|
||||
display: block
|
||||
|
||||
.my-name
|
||||
border-right: 15px solid transparent
|
||||
left: 0
|
||||
|
|
|
@ -13,13 +13,14 @@
|
|||
$childMargin: 2px
|
||||
$childSize: $height - 2 * $childMargin
|
||||
height: $height
|
||||
width: 80%
|
||||
width: -webkit-calc(100% - 100px)
|
||||
width: calc(100% - 100px)
|
||||
width: 90%
|
||||
width: -webkit-calc(100% - 50px)
|
||||
width: calc(100% - 50px)
|
||||
padding: 0px 8px
|
||||
border-width: 3px
|
||||
border-image: url(/images/level/code_editor_tab_background.png) 4 fill repeat
|
||||
text-align: center
|
||||
white-space: nowrap
|
||||
position: relative
|
||||
|
||||
&.read-only
|
||||
background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.2) 100%), url(/images/level/code_editor_tab_background.png)
|
||||
|
@ -34,6 +35,11 @@
|
|||
.spell-list-button, .thang-avatar-wrapper
|
||||
float: left
|
||||
|
||||
.spell-tool-buttons
|
||||
position: absolute
|
||||
right: 0px
|
||||
top: 0px
|
||||
|
||||
.reload-code
|
||||
float: right
|
||||
display: none
|
||||
|
@ -66,6 +72,7 @@
|
|||
|
||||
code
|
||||
margin-top: 7px
|
||||
font-size: 1vw
|
||||
|
||||
.spell-list-entry-view:not(.spell-tab)
|
||||
cursor: pointer
|
||||
|
|
|
@ -36,22 +36,22 @@ block content
|
|||
ul
|
||||
|
||||
li We write about our progress and current projects on our
|
||||
a(href="http://blog.codecombat.com", data-i18n="nav.blog")
|
||||
a.spl(href="http://blog.codecombat.com", data-i18n="nav.blog")
|
||||
| .
|
||||
li Participate in our active user community by checking out our
|
||||
a(href="http://discourse.codecombat.com", data-i18n="nav.forum")
|
||||
a.spl(href="http://discourse.codecombat.com", data-i18n="nav.forum")
|
||||
| .
|
||||
li For regular news about learning to code, games, and education, check out our
|
||||
a(href="https://www.facebook.com/codecombat", data-i18n="community.facebook")
|
||||
a.spl(href="https://www.facebook.com/codecombat", data-i18n="community.facebook")
|
||||
| .
|
||||
li For realtime status or to have a quick chat, follow us on
|
||||
a(href="https://twitter.com/CodeCombat", data-i18n="community.twitter")
|
||||
a.spl(href="https://twitter.com/CodeCombat", data-i18n="community.twitter")
|
||||
| .
|
||||
li Don't like Facebook? We're on
|
||||
a(href="https://plus.google.com/115285980638641924488/posts", data-i18n="community.gplus")
|
||||
a.spl(href="https://plus.google.com/115285980638641924488/posts", data-i18n="community.gplus")
|
||||
| .
|
||||
li You can also find us in our
|
||||
a(href="http://www.hipchat.com/g3plnOKqa", data-i18n="editor.hipchat_url")
|
||||
a.spl(href="http://www.hipchat.com/g3plnOKqa", data-i18n="editor.hipchat_url")
|
||||
|
||||
.community_columns
|
||||
|
||||
|
@ -81,5 +81,5 @@ block content
|
|||
| : support our community of educators and coders.
|
||||
|
||||
| Check out the
|
||||
a(href="/contribute", data-i18n="nav.contribute")
|
||||
a.spl(href="/contribute", data-i18n="nav.contribute")
|
||||
| page to find out more about the roles and how you can get started.
|
||||
|
|
|
@ -49,7 +49,7 @@ block header
|
|||
|
||||
if level.get('type') === 'ladder'
|
||||
li.dropdown
|
||||
a(data-toggle='dropdown')
|
||||
a(data-toggle='dropdown').play-with-team-parent
|
||||
span.glyphicon-play.glyphicon
|
||||
ul.dropdown-menu
|
||||
li.dropdown-header Play As Which Team?
|
||||
|
@ -70,17 +70,17 @@ block header
|
|||
a#level-watch-button
|
||||
span.watch
|
||||
span.glyphicon.glyphicon-eye-open
|
||||
span.spl Watch
|
||||
span.spl(data-i18n="common.watch") Watch
|
||||
span.unwatch.secret
|
||||
span.glyphicon.glyphicon-eye-close
|
||||
span.spl Unwatch
|
||||
span.spl(data-i18n="common.unwatch") Unwatch
|
||||
|
||||
li(class=anonymous ? "disabled": "")
|
||||
a(data-i18n="common.fork")#fork-level-start-button Fork
|
||||
li(class=anonymous ? "disabled": "")
|
||||
a(data-toggle="coco-modal", data-target="modal/revert", data-i18n="editor.revert")#revert-button Revert
|
||||
li(class=anonymous ? "disabled": "")
|
||||
a(data-toggle="coco-modal", data-target="modal/terrain_randomise", data-i18n="editor.randomise")#randomise-button Randomise
|
||||
a(data-toggle="coco-modal", data-target="editor/level/modal/terrain_randomize", data-i18n="editor.randomize")#randomize-button Randomize
|
||||
li(class=anonymous ? "disabled": "")
|
||||
a(data-i18n="editor.pop_i18n")#pop-level-i18n-button Populate i18n
|
||||
li.divider
|
||||
|
|
|
@ -8,8 +8,8 @@ block modal-body-content
|
|||
a(href="#")
|
||||
div.choose-option(data-preset-type="grassy", data-preset-size="small")
|
||||
div.preset-size.name-label
|
||||
span(data-i18n="ladder.small") Small
|
||||
span(data-i18n="editor.small") Small
|
||||
div.preset-name
|
||||
span(data-i18n="ladder.grassy") Grassy
|
||||
span(data-i18n="editor.grassy") Grassy
|
||||
//- for model in models
|
||||
block modal-footer
|
|
@ -4,10 +4,13 @@ block modal-header-content
|
|||
h3(data-i18n="wizard_settings.title2") Customize Your Character
|
||||
|
||||
block modal-body-content
|
||||
div.wizard-name-line.form-group
|
||||
label.control-label(for="name")
|
||||
form.form-horizontal
|
||||
div.form-group
|
||||
.row
|
||||
label.control-label.col-sm-6(for="name")
|
||||
| Your Wizardly Name:
|
||||
input#wizard-settings-name(name="name", type="text", value="#{me.get('name')||''}")
|
||||
#wizard-settings-name-wrapper.col-sm-4
|
||||
input#wizard-settings-name.form-control.input-sm(name="name", type="text", value="#{me.get('name')||''}")
|
||||
|
||||
#wizard-settings-view
|
||||
|
||||
|
|
|
@ -4,13 +4,13 @@ div#columns.row
|
|||
div(id="histogram-display-#{team.name}", class="histogram-display",data-team-name=team.name)
|
||||
table.table.table-bordered.table-condensed.table-hover
|
||||
tr
|
||||
th
|
||||
th(colspan=2)
|
||||
th(colspan=3, style="color: #{team.primaryColor}")
|
||||
span= team.name
|
||||
span
|
||||
span(data-i18n="ladder.leaderboard") Leaderboard
|
||||
tr
|
||||
th
|
||||
th(colspan=2)
|
||||
th(data-i18n="general.score") Score
|
||||
th(data-i18n="general.name").name-col-cell Name
|
||||
th
|
||||
|
@ -21,6 +21,7 @@ div#columns.row
|
|||
for session, rank in topSessions
|
||||
- var myRow = session.get('creator') == me.id
|
||||
tr(class=myRow ? "success" : "", data-player-id=session.get('creator'), data-session-id=session.id)
|
||||
td.code-language-cell(style="background-image: url(/images/pages/home/language_logo_" + session.get('submittedCodeLanguage') + ".png)")
|
||||
td.rank-cell= rank + 1
|
||||
td.score-cell= Math.round(session.get('totalScore') * 100)
|
||||
td.name-col-cell= session.get('creatorName') || "Anonymous"
|
||||
|
@ -34,6 +35,7 @@ div#columns.row
|
|||
for session in team.leaderboard.nearbySessions()
|
||||
- var myRow = session.get('creator') == me.id
|
||||
tr(class=myRow ? "success" : "", data-player-id=session.get('creator'), data-session-id=session.id)
|
||||
td.code-language-cell(style="background-image: url(/images/pages/home/language_logo_" + session.get('submittedCodeLanguage') + ".png)")
|
||||
td.rank-cell= session.rank
|
||||
td.score-cell= Math.round(session.get('totalScore') * 100)
|
||||
td.name-col-cell= session.get('creatorName') || "Anonymous"
|
||||
|
|
|
@ -4,7 +4,7 @@ div#columns.row
|
|||
table.table.table-bordered.table-condensed
|
||||
|
||||
tr
|
||||
th(colspan=4, style="color: #{team.primaryColor}")
|
||||
th(colspan=5, style="color: #{team.primaryColor}")
|
||||
span(data-i18n="ladder.summary_your") Your
|
||||
|#{team.name}
|
||||
|
|
||||
|
@ -16,16 +16,17 @@ div#columns.row
|
|||
|
||||
if team.session
|
||||
tr
|
||||
th(colspan=4)
|
||||
th(colspan=5)
|
||||
.ladder-submission-view(data-session-id=team.session.id)
|
||||
|
||||
if team.scoreHistory
|
||||
tr
|
||||
th(colspan=4, style="color: #{team.primaryColor}")
|
||||
th(colspan=5, style="color: #{team.primaryColor}")
|
||||
div(class="score-chart-wrapper", data-team-name=team.name, id="score-chart-#{team.name}")
|
||||
|
||||
tr
|
||||
th(data-i18n="general.result") Result
|
||||
th
|
||||
th(data-i18n="general.opponent") Opponent
|
||||
th(data-i18n="general.when") When
|
||||
th
|
||||
|
@ -38,6 +39,7 @@ div#columns.row
|
|||
span(data-i18n="general.loss").loss Loss
|
||||
if match.state === 'tie'
|
||||
span(data-i18n="general.tie").tie Tie
|
||||
td.code-language-cell(style="background-image: url(/images/pages/home/language_logo_" + match.codeLanguage + ".png)")
|
||||
td.name-cell= match.opponentName || "Anonymous"
|
||||
td.time-cell= match.when
|
||||
td.battle-cell
|
||||
|
|
|
@ -13,13 +13,16 @@ block modal-body-content
|
|||
span.btn.btn-primary.btn-block.btn-lg#skip-tutorial-button(data-i18n="ladder.tutorial_skip") Skip Tutorial
|
||||
|
||||
div#normal-view
|
||||
|
||||
if tutorialLevelExists
|
||||
p.tutorial-suggestion
|
||||
strong(data-i18n="ladder.tutorial_not_sure") Not sure what's going on?
|
||||
|
|
||||
a(href="/play/level/#{levelID}-tutorial", data-i18n="ladder.tutorial_play_first") Play the tutorial first.
|
||||
|
||||
h4.language-selection(data-i18n="ladder.select_your_language") Select your language!
|
||||
.form-group.select-group
|
||||
select#tome-language(name="language")
|
||||
for option in languages
|
||||
option(value=option.id selected=(language === option.id))= option.name
|
||||
a(href="/play/level/#{levelID}?team=#{teamID}")
|
||||
div.play-option
|
||||
img(src=myPortrait).my-icon.only-one
|
||||
|
@ -30,6 +33,7 @@ block modal-body-content
|
|||
span= myName
|
||||
div.opponent-name.name-label
|
||||
span(data-i18n="ladder.simple_ai") Simple AI
|
||||
//span.code-language(style="background-image: url(/images/pages/home/language_logo_javascript.png)")
|
||||
div.difficulty
|
||||
span(data-i18n="ladder.warmup") Warmup
|
||||
div(data-i18n="ladder.vs").vs VS
|
||||
|
@ -45,6 +49,8 @@ block modal-body-content
|
|||
span= myName
|
||||
div.opponent-name.name-label
|
||||
span= challengers.easy.opponentName
|
||||
if challengers.easy.codeLanguage
|
||||
span.code-language(style="background-image: url(/images/pages/home/language_logo_" + challengers.easy.codeLanguage + ".png)")
|
||||
div.difficulty
|
||||
span(data-i18n="general.easy") Easy
|
||||
div(data-i18n="ladder.vs").vs VS
|
||||
|
@ -60,6 +66,8 @@ block modal-body-content
|
|||
span= myName
|
||||
div.opponent-name.name-label
|
||||
span= challengers.medium.opponentName
|
||||
if challengers.medium.codeLanguage
|
||||
span.code-language(style="background-image: url(/images/pages/home/language_logo_" + challengers.medium.codeLanguage + ".png)")
|
||||
div.difficulty
|
||||
span(data-i18n="general.medium") Medium
|
||||
div(data-i18n="ladder.vs").vs VS
|
||||
|
@ -75,6 +83,8 @@ block modal-body-content
|
|||
span= myName
|
||||
div.opponent-name.name-label
|
||||
span= challengers.hard.opponentName
|
||||
if challengers.hard.codeLanguage
|
||||
span.code-language(style="background-image: url(/images/pages/home/language_logo_" + challengers.hard.codeLanguage + ".png)")
|
||||
div.difficulty
|
||||
span(data-i18n="general.hard") Hard
|
||||
div(data-i18n="ladder.vs").vs VS
|
||||
|
|
|
@ -4,15 +4,15 @@
|
|||
|
||||
code #{methodSignature}
|
||||
|
||||
.btn.btn-small.fullscreen-code(title="Expand code editor")
|
||||
.spell-tool-buttons
|
||||
.btn.btn-small.fullscreen-code(title="Expand code editor")
|
||||
i.icon-fullscreen
|
||||
i.icon-resize-small
|
||||
|
||||
.btn.btn-small.reload-code(title="Reload original code for " + spell.name)
|
||||
.btn.btn-small.reload-code(title="Reload original code for " + spell.name)
|
||||
i.icon-repeat
|
||||
|
||||
.btn.btn-small.beautify-code(title="Ctrl+Shift+B: Beautify code for " + spell.name)
|
||||
.btn.btn-small.beautify-code(title="Ctrl+Shift+B: Beautify code for " + spell.name)
|
||||
i.icon-magnet
|
||||
|
||||
|
||||
.clearfix
|
||||
.clearfix
|
|
@ -322,7 +322,7 @@ class LatestVersionReferenceNode extends TreemaNode
|
|||
return unless term
|
||||
@lastTerm = term
|
||||
@getSearchResultsEl().empty().append('Searching')
|
||||
@collection = new LatestVersionCollection()
|
||||
@collection = new LatestVersionCollection([], model: @model)
|
||||
|
||||
# HACK while search is broken
|
||||
# @collection.url = "#{@url}?term=#{term}&project=true"
|
||||
|
|
|
@ -26,6 +26,7 @@ module.exports = class EditorLevelView extends View
|
|||
events:
|
||||
'click #play-button': 'onPlayLevel'
|
||||
'click .play-with-team-button': 'onPlayLevel'
|
||||
'click .play-with-team-parent': 'onPlayLevelTeamSelect'
|
||||
'click #commit-level-start-button': 'startCommittingLevel'
|
||||
'click #fork-level-start-button': 'startForkingLevel'
|
||||
'click #level-history-button': 'showVersionHistory'
|
||||
|
@ -77,6 +78,12 @@ module.exports = class EditorLevelView extends View
|
|||
@listenTo @patchesView, 'accepted-patch', -> location.reload()
|
||||
@$el.find('#level-watch-button').find('> span').toggleClass('secret') if @level.watching()
|
||||
|
||||
onPlayLevelTeamSelect: (e) ->
|
||||
if @childWindow and not @childWindow.closed
|
||||
# We already have a child window open, so we don't need to ask for a team; we'll use its existing team.
|
||||
e.stopImmediatePropagation()
|
||||
@onPlayLevel e
|
||||
|
||||
onPlayLevel: (e) ->
|
||||
team = $(e.target).data('team')
|
||||
sendLevel = =>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
ModalView = require 'views/kinds/ModalView'
|
||||
template = require 'templates/modal/terrain_randomise'
|
||||
template = require 'templates/editor/level/modal/terrain_randomize'
|
||||
CocoModel = require 'models/CocoModel'
|
||||
|
||||
clusters = {
|
||||
|
@ -66,16 +66,17 @@ sizes = {
|
|||
'borderSize': {
|
||||
'x':4
|
||||
'y':4
|
||||
'thickness':2
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = class TerrainRandomiseModal extends ModalView
|
||||
id: 'terrain-randomise-modal'
|
||||
module.exports = class TerrainRandomizeModal extends ModalView
|
||||
id: 'terrain-randomize-modal'
|
||||
template: template
|
||||
thangs = []
|
||||
|
||||
events:
|
||||
'click .choose-option': 'onRandomise'
|
||||
'click .choose-option': 'onRandomize'
|
||||
|
||||
onRevertModel: (e) ->
|
||||
id = $(e.target).val()
|
||||
|
@ -83,25 +84,25 @@ module.exports = class TerrainRandomiseModal extends ModalView
|
|||
$(e.target).closest('tr').remove()
|
||||
@reloadOnClose = true
|
||||
|
||||
onRandomise: (e) ->
|
||||
onRandomize: (e) ->
|
||||
target = $(e.target)
|
||||
presetType = target.attr 'data-preset-type'
|
||||
presetSize = target.attr 'data-preset-size'
|
||||
@randomiseThangs presetType, presetSize
|
||||
Backbone.Mediator.publish('randomise:terrain-generated',
|
||||
@randomizeThangs presetType, presetSize
|
||||
Backbone.Mediator.publish('randomize:terrain-generated',
|
||||
'thangs': @thangs
|
||||
)
|
||||
@hide()
|
||||
|
||||
randomiseThangs: (presetName, presetSize) ->
|
||||
randomizeThangs: (presetName, presetSize) ->
|
||||
preset = presets[presetName]
|
||||
presetSize = sizes[presetSize]
|
||||
@thangs = []
|
||||
@randomiseFloor preset, presetSize
|
||||
@randomiseBorder preset, presetSize
|
||||
@randomiseDecorations preset, presetSize
|
||||
@randomizeFloor preset, presetSize
|
||||
@randomizeBorder preset, presetSize
|
||||
@randomizeDecorations preset, presetSize
|
||||
|
||||
randomiseFloor: (preset, presetSize) ->
|
||||
randomizeFloor: (preset, presetSize) ->
|
||||
for i in _.range(0, presetSize.x, sizes.floorSize.x)
|
||||
for j in _.range(0, presetSize.y, sizes.floorSize.y)
|
||||
@thangs.push {
|
||||
|
@ -112,40 +113,42 @@ module.exports = class TerrainRandomiseModal extends ModalView
|
|||
}
|
||||
}
|
||||
|
||||
randomiseBorder: (preset, presetSize) ->
|
||||
randomizeBorder: (preset, presetSize) ->
|
||||
for i in _.range(0-sizes.floorSize.x/2+sizes.borderSize.x, presetSize.x-sizes.floorSize.x/2, sizes.borderSize.x)
|
||||
for j in _.range(sizes.borderSize.thickness)
|
||||
@thangs.push {
|
||||
'id': @getRandomThang(preset.borders)
|
||||
'pos': {
|
||||
'x': i
|
||||
'y': 0-sizes.floorSize.x/2
|
||||
'x': i + _.random(-sizes.borderSize.x/2, sizes.borderSize.x/2)
|
||||
'y': 0 - sizes.floorSize.x/2 + _.random(-sizes.borderSize.x/2, sizes.borderSize.x/2)
|
||||
}
|
||||
}
|
||||
@thangs.push {
|
||||
'id': @getRandomThang(preset.borders)
|
||||
'pos': {
|
||||
'x': i
|
||||
'y': presetSize.y - sizes.borderSize.y
|
||||
'x': i + _.random(-sizes.borderSize.x/2, sizes.borderSize.x/2)
|
||||
'y': presetSize.y - sizes.borderSize.y + _.random(-sizes.borderSize.x/2, sizes.borderSize.x/2)
|
||||
}
|
||||
}
|
||||
|
||||
for i in _.range(0-sizes.floorSize.y/2, presetSize.y-sizes.borderSize.y, sizes.borderSize.y)
|
||||
for j in _.range(3)
|
||||
@thangs.push {
|
||||
'id': @getRandomThang(preset.borders)
|
||||
'pos': {
|
||||
'x': 0-sizes.floorSize.x/2+sizes.borderSize.x
|
||||
'y': i
|
||||
'x': 0-sizes.floorSize.x/2+sizes.borderSize.x + _.random(-sizes.borderSize.y/2, sizes.borderSize.y/2)
|
||||
'y': i + _.random(-sizes.borderSize.y/2, sizes.borderSize.y/2)
|
||||
}
|
||||
}
|
||||
@thangs.push {
|
||||
'id': @getRandomThang(preset.borders)
|
||||
'pos': {
|
||||
'x': presetSize.x - sizes.borderSize.x - sizes.floorSize.x/2
|
||||
'y': i
|
||||
'x': presetSize.x - sizes.borderSize.x - sizes.floorSize.x/2 + _.random(-sizes.borderSize.y/2, sizes.borderSize.y/2)
|
||||
'y': i + _.random(-sizes.borderSize.y/2, sizes.borderSize.y/2)
|
||||
}
|
||||
}
|
||||
|
||||
randomiseDecorations: (preset, presetSize)->
|
||||
randomizeDecorations: (preset, presetSize)->
|
||||
for name, decoration of preset.decorations
|
||||
for num in _.range(_.random(decoration.num[0], decoration.num[1]))
|
||||
center =
|
|
@ -43,7 +43,7 @@ module.exports = class ThangsTabView extends View
|
|||
'sprite:mouse-up': 'onSpriteMouseUp'
|
||||
'sprite:double-clicked': 'onSpriteDoubleClicked'
|
||||
'surface:stage-mouse-up': 'onStageMouseUp'
|
||||
'randomise:terrain-generated': 'onRandomiseTerrain'
|
||||
'randomize:terrain-generated': 'onRandomizeTerrain'
|
||||
|
||||
events:
|
||||
'click #extant-thangs-filter button': 'onFilterExtantThangs'
|
||||
|
@ -224,10 +224,14 @@ module.exports = class ThangsTabView extends View
|
|||
return unless e.thang
|
||||
@editThang thangID: e.thang.id
|
||||
|
||||
onRandomiseTerrain: (e) ->
|
||||
onRandomizeTerrain: (e) ->
|
||||
@thangsBatch = []
|
||||
nonRandomThangs = (thang for thang in @thangsTreema.get('') when not /Random/.test thang.id)
|
||||
@thangsTreema.set '', nonRandomThangs
|
||||
for thang in e.thangs
|
||||
@selectAddThangType thang.id
|
||||
@addThang @addThangType, thang.pos
|
||||
@addThang @addThangType, thang.pos, true
|
||||
@batchInsert()
|
||||
@selectAddThangType null
|
||||
|
||||
# TODO: figure out a good way to have all Surface clicks and Treema clicks just proxy in one direction, so we can maintain only one way of handling selection and deletion
|
||||
|
@ -397,7 +401,14 @@ module.exports = class ThangsTabView extends View
|
|||
id = treema?.data?.id
|
||||
@editThang thangID: id if id
|
||||
|
||||
addThang: (thangType, pos) ->
|
||||
batchInsert: ->
|
||||
@thangsTreema.set '', @thangsTreema.get('').concat(@thangsBatch)
|
||||
@thangsBatch = []
|
||||
|
||||
addThang: (thangType, pos, batchInsert=false) ->
|
||||
if batchInsert
|
||||
thangID = "Random #{thangType.get('name')} #{@thangsBatch.length}"
|
||||
else
|
||||
thangID = Thang.nextID(thangType.get('name'), @world) until thangID and not @thangsTreema.get "id=#{thangID}"
|
||||
if @cloneSourceThang
|
||||
components = _.cloneDeep @thangsTreema.get "id=#{@cloneSourceThang.id}/components"
|
||||
|
@ -408,6 +419,9 @@ module.exports = class ThangsTabView extends View
|
|||
physical = _.find components, (c) -> c.config?.pos?
|
||||
physical.config.pos = x: pos.x, y: pos.y, z: physical.config.pos.z if physical
|
||||
thang = thangType: thangType.get('original'), id: thangID, components: components
|
||||
if batchInsert
|
||||
@thangsBatch.push thang
|
||||
else
|
||||
@thangsTreema.insert '', thang
|
||||
|
||||
editThang: (e) ->
|
||||
|
|
|
@ -177,6 +177,7 @@ module.exports = class CocoView extends Backbone.View
|
|||
$('#modal-wrapper .modal').modal(modalOptions).on 'hidden.bs.modal', @modalClosed
|
||||
window.currentModal = modalView
|
||||
@getRootView().stopListeningToShortcuts(true)
|
||||
Backbone.Mediator.publish 'modal-opened', {}
|
||||
|
||||
modalClosed: =>
|
||||
visibleModal.willDisappear() if visibleModal
|
||||
|
@ -190,7 +191,7 @@ module.exports = class CocoView extends Backbone.View
|
|||
@openModalView(wm)
|
||||
else
|
||||
@getRootView().listenToShortcuts(true)
|
||||
Backbone.Mediator.publish 'modal-closed'
|
||||
Backbone.Mediator.publish 'modal-closed', {}
|
||||
|
||||
# Loading RootViews
|
||||
|
||||
|
|
|
@ -73,6 +73,7 @@ module.exports = class MyMatchesTabView extends CocoView
|
|||
sessionID: opponent.sessionID
|
||||
stale: match.date < submitDate
|
||||
fresh: fresh
|
||||
codeLanguage: match.codeLanguage
|
||||
}
|
||||
|
||||
for team in @teams
|
||||
|
|
|
@ -15,6 +15,15 @@ module.exports = class LadderPlayModal extends View
|
|||
|
||||
events:
|
||||
'click #skip-tutorial-button': 'hideTutorialButtons'
|
||||
'change #tome-language': 'updateLanguage'
|
||||
|
||||
defaultAceConfig:
|
||||
language: 'javascript'
|
||||
keyBindings: 'default'
|
||||
invisibles: false
|
||||
indentGuides: false
|
||||
behaviors: false
|
||||
liveCompletion: true
|
||||
|
||||
constructor: (options, @level, @session, @team) ->
|
||||
super(options)
|
||||
|
@ -23,8 +32,14 @@ module.exports = class LadderPlayModal extends View
|
|||
@startLoadingChallengersMaybe()
|
||||
@wizardType = ThangType.loadUniversalWizard()
|
||||
|
||||
# PART 1: Load challengers from the db unless some are in the matches
|
||||
updateLanguage: ->
|
||||
aceConfig = _.cloneDeep me.get('aceConfig') ? {}
|
||||
aceConfig = _.defaults aceConfig, @defaultAceConfig
|
||||
aceConfig.language = @$el.find('#tome-language').val()
|
||||
me.set 'aceConfig', aceConfig
|
||||
me.patch()
|
||||
|
||||
# PART 1: Load challengers from the db unless some are in the matches
|
||||
startLoadingChallengersMaybe: ->
|
||||
matches = @session?.get('matches')
|
||||
if matches?.length then @loadNames() else @loadChallengers()
|
||||
|
@ -73,7 +88,14 @@ module.exports = class LadderPlayModal extends View
|
|||
ctx.teamID = @team
|
||||
ctx.otherTeamID = @otherTeam
|
||||
ctx.tutorialLevelExists = @tutorialLevelExists
|
||||
|
||||
ctx.languages = [
|
||||
{id: 'javascript', name: 'JavaScript'}
|
||||
{id: 'coffeescript', name: 'CoffeeScript'}
|
||||
{id: 'python', name: 'Python (Experimental)'}
|
||||
{id: 'clojure', name: 'Clojure (Experimental)'}
|
||||
{id: 'lua', name: 'Lua (Experimental)'}
|
||||
{id: 'io', name: 'Io (Experimental)'}
|
||||
]
|
||||
teamsList = teamDataFromLevel @level
|
||||
teams = {}
|
||||
teams[team.id] = team for team in teamsList
|
||||
|
@ -154,7 +176,8 @@ module.exports = class LadderPlayModal extends View
|
|||
return unless session
|
||||
return {
|
||||
sessionID: session.id
|
||||
opponentID: session.get('creator')
|
||||
opponentID: session.get 'creator'
|
||||
codeLanguage: session.get 'submittedCodeLanguage'
|
||||
}
|
||||
|
||||
challengeInfoFromMatches: (matches) ->
|
||||
|
@ -164,6 +187,7 @@ module.exports = class LadderPlayModal extends View
|
|||
return {
|
||||
sessionID: opponent.sessionID
|
||||
opponentID: opponent.userID
|
||||
codeLanguage: opponent.codeLanguage
|
||||
}
|
||||
|
||||
class ChallengersData
|
||||
|
|
|
@ -138,7 +138,13 @@ module.exports = class PlayLevelView extends View
|
|||
supermodel: @supermodel
|
||||
firstOnly: true
|
||||
@openModalView(new DocsModal(options), true)
|
||||
Backbone.Mediator.subscribeOnce 'modal-closed', @onLevelStarted, @
|
||||
onGuideOpened = ->
|
||||
@guideOpenTime = new Date()
|
||||
onGuideClosed = ->
|
||||
application.tracker?.trackTiming new Date() - @guideOpenTime, 'Intro Guide Time', @levelID, @levelID, 100
|
||||
@onLevelStarted()
|
||||
Backbone.Mediator.subscribeOnce 'modal-opened', onGuideOpened, @
|
||||
Backbone.Mediator.subscribeOnce 'modal-closed', onGuideClosed, @
|
||||
return true
|
||||
|
||||
getRenderData: ->
|
||||
|
@ -281,7 +287,7 @@ module.exports = class PlayLevelView extends View
|
|||
@surface.showLevel()
|
||||
if @otherSession
|
||||
# TODO: colorize name and cloud by team, colorize wizard by user's color config
|
||||
@surface.createOpponentWizard id: @otherSession.get('creator'), name: @otherSession.get('creatorName'), team: @otherSession.get('team'), levelSlug: @level.get('slug')
|
||||
@surface.createOpponentWizard id: @otherSession.get('creator'), name: @otherSession.get('creatorName'), team: @otherSession.get('team'), levelSlug: @level.get('slug'), codeLanguage: @otherSession.get('submittedCodeLanguage')
|
||||
@loadingView?.unveil()
|
||||
|
||||
onLoadingViewUnveiled: (e) ->
|
||||
|
|
|
@ -64,7 +64,7 @@ exports.config =
|
|||
'stylesheets/app.css': /^(app|vendor|bower_components)/
|
||||
order:
|
||||
before: [
|
||||
'app/styles/bootstrap.scss'
|
||||
'app/styles/bootstrap/*'
|
||||
'vendor/styles/nanoscroller.scss'
|
||||
]
|
||||
templates:
|
||||
|
|
|
@ -91,6 +91,8 @@ work = () ->
|
|||
return
|
||||
Math.random = self.world.rand.randf # so user code is predictable
|
||||
Aether.replaceBuiltin('Math', Math)
|
||||
replacedLoDash = _.runInContext(self)
|
||||
_[key] = replacedLoDash[key] for key, val of replacedLoDash
|
||||
console.log 'Loading frames.'
|
||||
|
||||
self.postMessage type: 'start-load-frames'
|
||||
|
|
|
@ -155,7 +155,7 @@ LevelHandler = class LevelHandler extends Handler
|
|||
|
||||
sortParameters =
|
||||
'totalScore': req.query.order
|
||||
selectProperties = ['totalScore', 'creatorName', 'creator']
|
||||
selectProperties = ['totalScore', 'creatorName', 'creator', 'submittedCodeLanguage']
|
||||
|
||||
query = Session
|
||||
.find(sessionsQueryParameters)
|
||||
|
|
|
@ -579,6 +579,7 @@ addMatchToSessions = (newScoreObject, callback) ->
|
|||
matchObject.opponents[sessionID].totalScore = session.totalScore
|
||||
matchObject.opponents[sessionID].metrics = {}
|
||||
matchObject.opponents[sessionID].metrics.rank = Number(newScoreObject[sessionID]?.gameRanking ? 0)
|
||||
matchObject.opponents[sessionID].codeLanguage = newScoreObject[sessionID].submittedCodeLanguage
|
||||
|
||||
#log.info "Match object computed, result: #{matchObject}"
|
||||
#log.info 'Writing match object to database...'
|
||||
|
@ -595,6 +596,7 @@ updateMatchesInSession = (matchObject, sessionID, callback) ->
|
|||
opponentsClone = _.omit opponentsClone, sessionID
|
||||
opponentsArray = _.toArray opponentsClone
|
||||
currentMatchObject.opponents = opponentsArray
|
||||
currentMatchObject.codeLanguage = matchObject.opponents[opponentsArray[0].sessionID].codeLanguage
|
||||
LevelSession.findOne {'_id': sessionID}, (err, session) ->
|
||||
session = session.toObject()
|
||||
currentMatchObject.playtime = session.playtime ? 0
|
||||
|
@ -770,6 +772,7 @@ retrieveOldSessionData = (sessionID, callback) ->
|
|||
'meanStrength': session.meanStrength ? 25
|
||||
'totalScore': session.totalScore ? (25 - 1.8*(25/3))
|
||||
'id': sessionID
|
||||
'submittedCodeLanguage': session.submittedCodeLanguage
|
||||
callback err, oldScoreObject
|
||||
|
||||
markSessionAsDoneRanking = (sessionID, cb) ->
|
||||
|
|
|
@ -75,11 +75,17 @@ setupRedirectMiddleware = (app) ->
|
|||
nameOrID = req.path.split('/')[3]
|
||||
res.redirect 301, "/user/#{nameOrID}/profile"
|
||||
|
||||
setupTrailingSlashRemovingMiddleware = (app) ->
|
||||
app.use (req, res, next) ->
|
||||
return res.redirect 301, req.url[...-1] if req.url.length > 1 and req.url.slice(-1) is '/'
|
||||
next()
|
||||
|
||||
exports.setupMiddleware = (app) ->
|
||||
setupMiddlewareToSendOldBrowserWarningWhenPlayersViewLevelDirectly app
|
||||
setupExpressMiddleware app
|
||||
setupPassportMiddleware app
|
||||
setupOneSecondDelayMiddleware app
|
||||
setupTrailingSlashRemovingMiddleware app
|
||||
setupRedirectMiddleware app
|
||||
|
||||
###Routing function implementations###
|
||||
|
|
Reference in a new issue