mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-03-14 07:00:01 -04:00
Merged in master
This commit is contained in:
commit
a60451368e
99 changed files with 685 additions and 222 deletions
|
@ -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
|
||||
c = map[js] = eval js
|
||||
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
|
|
@ -9,9 +9,9 @@
|
|||
display: block
|
||||
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
|
||||
|
|
|
@ -95,7 +95,17 @@
|
|||
span
|
||||
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
|
||||
|
@ -145,4 +155,4 @@
|
|||
top: 35px
|
||||
font-size: 40px
|
||||
font-weight: bolder
|
||||
color: black
|
||||
color: black
|
||||
|
|
|
@ -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
|
||||
|
@ -110,4 +117,4 @@ html.no-borderimage
|
|||
border-width: 0
|
||||
border-image: none
|
||||
background: transparent url(/images/level/code_editor_tab_background.png) no-repeat
|
||||
background-size: 100% 100%
|
||||
background-size: 100% 100%
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
extends /templates/base
|
||||
|
||||
block content
|
||||
|
||||
|
||||
h1(data-i18n="community.main_title") CodeCombat Community
|
||||
|
||||
p There are dozens of ways you can get involved with CodeCombat. Check out the resources we've built, decide what sounds the most fun, and we look forward to working with you!
|
||||
|
@ -15,13 +15,13 @@ block content
|
|||
p We have built several tools that enable users to get not only edit, but also build new game content!
|
||||
|
||||
ul
|
||||
li
|
||||
li
|
||||
a(href="/editor/level", data-i18n="community.level_editor")
|
||||
| : fork, edit, or build your own CodeCombat levels. New levels can be kept private or published to the community.
|
||||
li
|
||||
li
|
||||
a(href="/editor/thang", data-i18n="editor.thang_title")
|
||||
| : modify or import new art assets for the game using our powerful editor.
|
||||
li
|
||||
li
|
||||
a(href="/editor/article", data-i18n="editor.article_title")
|
||||
| : edit or create documentation used in CodeCombat levels.
|
||||
|
||||
|
@ -35,51 +35,51 @@ block content
|
|||
|
||||
ul
|
||||
|
||||
li We write about our progress and current projects on our
|
||||
a(href="http://blog.codecombat.com", data-i18n="nav.blog")
|
||||
li We write about our progress and current projects on our
|
||||
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")
|
||||
li Participate in our active user community by checking out our
|
||||
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")
|
||||
li For regular news about learning to code, games, and education, check out our
|
||||
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")
|
||||
li For realtime status or to have a quick chat, follow us on
|
||||
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")
|
||||
li Don't like Facebook? We're on
|
||||
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")
|
||||
li You can also find us in our
|
||||
a.spl(href="http://www.hipchat.com/g3plnOKqa", data-i18n="editor.hipchat_url")
|
||||
|
||||
.community_columns
|
||||
|
||||
h2 Contribute
|
||||
|
||||
p Put your skills to use helping us teach the world to code. We have a lot of roles you can consider, and if we don't have a role for you, let us know:
|
||||
p Put your skills to use helping us teach the world to code. We have a lot of roles you can consider, and if we don't have a role for you, let us know:
|
||||
|
||||
ul
|
||||
|
||||
li
|
||||
a(href="/contribute#archmage", data-i18n="classes.archmage_title")
|
||||
li
|
||||
a(href="/contribute#archmage", data-i18n="classes.archmage_title")
|
||||
| : contribute by writing code.
|
||||
li
|
||||
a(href="/contribute#artisan", data-i18n="classes.artisan_title")
|
||||
li
|
||||
a(href="/contribute#artisan", data-i18n="classes.artisan_title")
|
||||
| : build new game levels.
|
||||
li
|
||||
a(href="/contribute#adventurer", data-i18n="classes.adventurer_title")
|
||||
li
|
||||
a(href="/contribute#adventurer", data-i18n="classes.adventurer_title")
|
||||
| : test new game levels.
|
||||
li
|
||||
a(href="/contribute#scribe", data-i18n="classes.scribe_title")
|
||||
li
|
||||
a(href="/contribute#scribe", data-i18n="classes.scribe_title")
|
||||
| : write educational documentation.
|
||||
li
|
||||
a(href="/contribute#diplomat", data-i18n="classes.diplomat_title")
|
||||
li
|
||||
a(href="/contribute#diplomat", data-i18n="classes.diplomat_title")
|
||||
| : translate site content.
|
||||
li
|
||||
a(href="/contribute#ambassador", data-i18n="classes.ambassador_title")
|
||||
li
|
||||
a(href="/contribute#ambassador", data-i18n="classes.ambassador_title")
|
||||
| : 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")
|
||||
| Your Wizardly Name:
|
||||
input#wizard-settings-name(name="name", type="text", value="#{me.get('name')||''}")
|
||||
form.form-horizontal
|
||||
div.form-group
|
||||
.row
|
||||
label.control-label.col-sm-6(for="name")
|
||||
| Your Wizardly 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")
|
||||
i.icon-fullscreen
|
||||
i.icon-resize-small
|
||||
|
||||
.btn.btn-small.reload-code(title="Reload original code for " + spell.name)
|
||||
i.icon-repeat
|
||||
.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)
|
||||
i.icon-repeat
|
||||
|
||||
.btn.btn-small.beautify-code(title="Ctrl+Shift+B: Beautify code for " + spell.name)
|
||||
i.icon-magnet
|
||||
|
||||
.btn.btn-small.beautify-code(title="Ctrl+Shift+B: Beautify code for " + spell.name)
|
||||
i.icon-magnet
|
||||
|
||||
|
||||
.clearfix
|
||||
.clearfix
|
|
@ -249,9 +249,9 @@ class JavaScriptTreema extends CodeTreema
|
|||
class InternationalizationNode extends TreemaNode.nodeMap.object
|
||||
findLanguageName: (languageCode) ->
|
||||
# to get around mongoose emtpy object bug, there's a prop in the object which needs to be ignored
|
||||
return '' if languageCode is '-'
|
||||
return '' if languageCode is '-'
|
||||
locale[languageCode]?.nativeDescription or "#{languageCode} Not Found"
|
||||
|
||||
|
||||
getChildren: ->
|
||||
res = super(arguments...)
|
||||
res = (r for r in res when r[0] isnt '-')
|
||||
|
@ -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)
|
||||
@thangs.push {
|
||||
'id': @getRandomThang(preset.borders)
|
||||
'pos': {
|
||||
'x': i
|
||||
'y': 0-sizes.floorSize.x/2
|
||||
for j in _.range(sizes.borderSize.thickness)
|
||||
@thangs.push {
|
||||
'id': @getRandomThang(preset.borders)
|
||||
'pos': {
|
||||
'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
|
||||
@thangs.push {
|
||||
'id': @getRandomThang(preset.borders)
|
||||
'pos': {
|
||||
'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)
|
||||
@thangs.push {
|
||||
'id': @getRandomThang(preset.borders)
|
||||
'pos': {
|
||||
'x': 0-sizes.floorSize.x/2+sizes.borderSize.x
|
||||
'y': i
|
||||
for j in _.range(3)
|
||||
@thangs.push {
|
||||
'id': @getRandomThang(preset.borders)
|
||||
'pos': {
|
||||
'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
|
||||
@thangs.push {
|
||||
'id': @getRandomThang(preset.borders)
|
||||
'pos': {
|
||||
'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,8 +401,15 @@ module.exports = class ThangsTabView extends View
|
|||
id = treema?.data?.id
|
||||
@editThang thangID: id if id
|
||||
|
||||
addThang: (thangType, pos) ->
|
||||
thangID = Thang.nextID(thangType.get('name'), @world) until thangID and not @thangsTreema.get "id=#{thangID}"
|
||||
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"
|
||||
@selectAddThang null
|
||||
|
@ -408,7 +419,10 @@ 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
|
||||
@thangsTreema.insert '', thang
|
||||
if batchInsert
|
||||
@thangsBatch.push thang
|
||||
else
|
||||
@thangsTreema.insert '', thang
|
||||
|
||||
editThang: (e) ->
|
||||
if e.target # click event
|
||||
|
|
|
@ -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) ->
|
||||
|
|
|
@ -70,16 +70,24 @@ setupMiddlewareToSendOldBrowserWarningWhenPlayersViewLevelDirectly = (app) ->
|
|||
return next() if req.query['try-old-browser-anyway'] or not isOldBrowser req
|
||||
res.sendfile(path.join(__dirname, 'public', 'index_old_browser.html'))
|
||||
|
||||
<<<<<<< HEAD
|
||||
setupRedirectMiddleware = (app) ->
|
||||
app.all '/account/profile/*', (req, res, next) ->
|
||||
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()
|
||||
>>>>>>> master
|
||||
|
||||
exports.setupMiddleware = (app) ->
|
||||
setupMiddlewareToSendOldBrowserWarningWhenPlayersViewLevelDirectly app
|
||||
setupExpressMiddleware app
|
||||
setupPassportMiddleware app
|
||||
setupOneSecondDelayMiddleware app
|
||||
setupTrailingSlashRemovingMiddleware app
|
||||
setupRedirectMiddleware app
|
||||
|
||||
###Routing function implementations###
|
||||
|
|
Loading…
Reference in a new issue