mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-02-26 06:24:45 -05:00
Merge branch 'master' of https://github.com/codecombat/codecombat
This commit is contained in:
commit
ddea7d1531
10 changed files with 182 additions and 46 deletions
|
@ -62,6 +62,7 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
||||||
@actionQueue = []
|
@actionQueue = []
|
||||||
@marks = {}
|
@marks = {}
|
||||||
@labels = {}
|
@labels = {}
|
||||||
|
@handledAoEs = {}
|
||||||
@age = 0
|
@age = 0
|
||||||
@displayObject = new createjs.Container()
|
@displayObject = new createjs.Container()
|
||||||
if @thangType.get('actions')
|
if @thangType.get('actions')
|
||||||
|
@ -178,9 +179,35 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
||||||
@updateAction()
|
@updateAction()
|
||||||
@updateStats()
|
@updateStats()
|
||||||
@updateGold()
|
@updateGold()
|
||||||
|
@showAreaOfEffects()
|
||||||
@updateMarks()
|
@updateMarks()
|
||||||
@updateLabels()
|
@updateLabels()
|
||||||
|
|
||||||
|
showAreaOfEffects: ->
|
||||||
|
return unless @thang?.currentEvents
|
||||||
|
for event in @thang.currentEvents
|
||||||
|
continue unless event.startsWith 'aoe-'
|
||||||
|
continue if @handledAoEs[event]
|
||||||
|
|
||||||
|
@handledAoEs[event] = true
|
||||||
|
args = JSON.parse(event[4...])
|
||||||
|
pos = @options.camera.worldToSurface {x:args[0], y:args[1]}
|
||||||
|
circle = new createjs.Shape()
|
||||||
|
circle.graphics.beginFill(args[3]).drawCircle(0, 0, args[2]*Camera.PPM)
|
||||||
|
circle.x = pos.x
|
||||||
|
circle.y = pos.y
|
||||||
|
circle.scaleY = @options.camera.y2x * 0.7
|
||||||
|
circle.scaleX = 0.7
|
||||||
|
circle.alpha = 0.2
|
||||||
|
circle
|
||||||
|
@options.groundLayer.addChild circle
|
||||||
|
createjs.Tween.get(circle)
|
||||||
|
.to({alpha: 0.6, scaleY: @options.camera.y2x, scaleX: 1}, 100, createjs.Ease.circOut)
|
||||||
|
.to({alpha: 0, scaleY: 0, scaleX: 0}, 700, createjs.Ease.circIn)
|
||||||
|
.call =>
|
||||||
|
@options.groundLayer.removeChild circle
|
||||||
|
delete @handledAoEs[event]
|
||||||
|
|
||||||
cache: ->
|
cache: ->
|
||||||
bounds = @imageObject.getBounds()
|
bounds = @imageObject.getBounds()
|
||||||
@displayObject.cache 0, 0, bounds.width, bounds.height
|
@displayObject.cache 0, 0, bounds.width, bounds.height
|
||||||
|
|
|
@ -44,4 +44,4 @@ module.exports.hslToHex = (hsl) ->
|
||||||
toHex = (n) ->
|
toHex = (n) ->
|
||||||
h = Math.floor(n).toString(16)
|
h = Math.floor(n).toString(16)
|
||||||
h = '0'+h if h.length is 1
|
h = '0'+h if h.length is 1
|
||||||
h
|
h
|
||||||
|
|
|
@ -81,6 +81,7 @@ module.exports = nativeDescription: "English", englishDescription: "English", tr
|
||||||
campaign_player_created: "Player-Created"
|
campaign_player_created: "Player-Created"
|
||||||
campaign_player_created_description: "... in which you battle against the creativity of your fellow <a href=\"/contribute#artisan\">Artisan Wizards</a>."
|
campaign_player_created_description: "... in which you battle against the creativity of your fellow <a href=\"/contribute#artisan\">Artisan Wizards</a>."
|
||||||
level_difficulty: "Difficulty: "
|
level_difficulty: "Difficulty: "
|
||||||
|
play_as: "Play As "
|
||||||
|
|
||||||
contact:
|
contact:
|
||||||
contact_us: "Contact CodeCombat"
|
contact_us: "Contact CodeCombat"
|
||||||
|
@ -275,6 +276,7 @@ module.exports = nativeDescription: "English", englishDescription: "English", tr
|
||||||
commit_msg: "Commit Message"
|
commit_msg: "Commit Message"
|
||||||
history: "History"
|
history: "History"
|
||||||
version_history_for: "Version History for: "
|
version_history_for: "Version History for: "
|
||||||
|
result: "Result"
|
||||||
results: "Results"
|
results: "Results"
|
||||||
description: "Description"
|
description: "Description"
|
||||||
or: "or"
|
or: "or"
|
||||||
|
@ -282,6 +284,17 @@ module.exports = nativeDescription: "English", englishDescription: "English", tr
|
||||||
password: "Password"
|
password: "Password"
|
||||||
message: "Message"
|
message: "Message"
|
||||||
code: "Code"
|
code: "Code"
|
||||||
|
ladder: "Ladder"
|
||||||
|
when: "When"
|
||||||
|
rank: "Rank"
|
||||||
|
score: "Score"
|
||||||
|
win: "Win"
|
||||||
|
loss: "Loss"
|
||||||
|
tie: "Tie"
|
||||||
|
easy: "Easy"
|
||||||
|
medium: "Medium"
|
||||||
|
hard: "Hard"
|
||||||
|
|
||||||
|
|
||||||
about:
|
about:
|
||||||
who_is_codecombat: "Who is CodeCombat?"
|
who_is_codecombat: "Who is CodeCombat?"
|
||||||
|
@ -475,3 +488,35 @@ module.exports = nativeDescription: "English", englishDescription: "English", tr
|
||||||
ambassador_title_description: "(Support)"
|
ambassador_title_description: "(Support)"
|
||||||
counselor_title: "Counselor"
|
counselor_title: "Counselor"
|
||||||
counselor_title_description: "(Expert/Teacher)"
|
counselor_title_description: "(Expert/Teacher)"
|
||||||
|
|
||||||
|
ladder:
|
||||||
|
please_login: "Please log in first before playing a ladder game."
|
||||||
|
my_matches: "My Matches"
|
||||||
|
simulate: "Simulate"
|
||||||
|
simulation_explanation: "By simulating games you can get your game ranked faster!"
|
||||||
|
simulate_games: "Simulate Games!"
|
||||||
|
simulate_all: "RESET AND SIMULATE GAMES"
|
||||||
|
leaderboard: "Leaderboard"
|
||||||
|
battle_as: "Battle as "
|
||||||
|
summary_your: "Your "
|
||||||
|
summary_matches: "Matches - "
|
||||||
|
summary_wins: " Wins, "
|
||||||
|
summary_losses: " Losses"
|
||||||
|
rank_no_code: "No New Code to Rank"
|
||||||
|
rank_my_game: "Rank My Game!"
|
||||||
|
rank_submitting: "Submitting..."
|
||||||
|
rank_submitted: "Submitted for Ranking"
|
||||||
|
rank_failed: "Failed to Rank"
|
||||||
|
rank_being_ranked: "Game Being Ranked"
|
||||||
|
code_being_simulated: "Your new code is being simulated by other players for ranking. This will refresh as new matches come in."
|
||||||
|
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"
|
||||||
|
tutorial_play: "Play Tutorial"
|
||||||
|
tutorial_recommended: "Recommended if you've never played before"
|
||||||
|
tutorial_skip: "Skip Tutorial"
|
||||||
|
tutorial_not_sure: "Not sure what's going on?"
|
||||||
|
tutorial_play_first: "Play the Tutorial first."
|
||||||
|
simple_ai: "Simple AI"
|
||||||
|
warmup: "Warmup"
|
||||||
|
vs: "VS"
|
||||||
|
|
|
@ -269,12 +269,23 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
|
||||||
commit_msg: "Commit Bericht"
|
commit_msg: "Commit Bericht"
|
||||||
history: "Geschiedenis"
|
history: "Geschiedenis"
|
||||||
version_history_for: "Versie geschiedenis voor: "
|
version_history_for: "Versie geschiedenis voor: "
|
||||||
|
result: "Resultaat"
|
||||||
results: "Resultaten"
|
results: "Resultaten"
|
||||||
description: "Beschrijving"
|
description: "Beschrijving"
|
||||||
or: "of"
|
or: "of"
|
||||||
email: "Email"
|
email: "Email"
|
||||||
message: "Bericht"
|
message: "Bericht"
|
||||||
code: "Code"
|
code: "Code"
|
||||||
|
ladder: "Ladder"
|
||||||
|
when: "Wanneer"
|
||||||
|
rank: "Rang"
|
||||||
|
score: "Score"
|
||||||
|
win: "Win"
|
||||||
|
loss: "Verlies"
|
||||||
|
tie: "Gelijk"
|
||||||
|
easy: "Gemakkelijk"
|
||||||
|
medium: "Medium"
|
||||||
|
hard: "Moeilijk"
|
||||||
|
|
||||||
about:
|
about:
|
||||||
who_is_codecombat: "Wie is CodeCombat?"
|
who_is_codecombat: "Wie is CodeCombat?"
|
||||||
|
@ -468,3 +479,35 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
|
||||||
ambassador_title_description: "(Ondersteuning)"
|
ambassador_title_description: "(Ondersteuning)"
|
||||||
counselor_title: "Raadgever"
|
counselor_title: "Raadgever"
|
||||||
counselor_title_description: "(Expert/Leraar)"
|
counselor_title_description: "(Expert/Leraar)"
|
||||||
|
|
||||||
|
ladder:
|
||||||
|
please_login: "Log alstublieft eerst in voordat u een ladderspel speelt."
|
||||||
|
my_matches: "Mijn Wedstrijden"
|
||||||
|
simulate: "Simuleer"
|
||||||
|
simulation_explanation: "Door spellen te simuleren kan je zelf sneller beoordeeld worden!"
|
||||||
|
simulate_games: "Simuleer spellen!"
|
||||||
|
simulate_all: "RESET EN SIMULEER SPELLEN"
|
||||||
|
leaderboard: "Leaderboard"
|
||||||
|
battle_as: "Vecht als "
|
||||||
|
summary_your: "Jouw "
|
||||||
|
summary_matches: "Wedstrijden - "
|
||||||
|
summary_wins: " Overwinningen, "
|
||||||
|
summary_losses: " Nederlagen"
|
||||||
|
rank_no_code: "Geen nieuwe code om te Beoordelen!"
|
||||||
|
rank_my_game: "Beoordeel mijn spel!"
|
||||||
|
rank_submitting: "Verzenden..."
|
||||||
|
rank_submitted: "Verzonden voor Beoordeling"
|
||||||
|
rank_failed: "Beoordeling mislukt"
|
||||||
|
rank_being_ranked: "Spel wordt Beoordeeld"
|
||||||
|
code_being_simulated: "Uw nieuwe code wordt gesimuleerd door andere spelers om te beoordelen. Dit wordt vernieuwd zodra nieuwe matches binnenkomen."
|
||||||
|
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"
|
||||||
|
tutorial_play: "Speel de Tutorial"
|
||||||
|
tutorial_recommended: "Aanbevolen als je nog niet eerder hebt gespeeld"
|
||||||
|
tutorial_skip: "Sla Tutorial over"
|
||||||
|
tutorial_not_sure: "Niet zeker wat er aan de gang is?"
|
||||||
|
tutorial_play_first: "Speel eerst de Tutorial."
|
||||||
|
simple_ai: "Simpele AI"
|
||||||
|
warmup: "Opwarming"
|
||||||
|
vs: "tegen"
|
||||||
|
|
11
app/templates/editor/level/versions.jade
Normal file
11
app/templates/editor/level/versions.jade
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
extends /templates/modal/modal_base
|
||||||
|
include /templates/kinds/versions
|
||||||
|
|
||||||
|
block modal-header-content
|
||||||
|
h3(data-i18n="general.version_history") Version History
|
||||||
|
|
||||||
|
block modal-body-content
|
||||||
|
if dataList
|
||||||
|
+version-history-body()
|
||||||
|
|
||||||
|
block modal-footer-content
|
|
@ -10,7 +10,7 @@ block content
|
||||||
if me.get('anonymous')
|
if me.get('anonymous')
|
||||||
div#must-log-in
|
div#must-log-in
|
||||||
p
|
p
|
||||||
strong Please log in first before playing a ladder game.
|
strong(data-i18n="ladder.please_login") Please log in first before playing a ladder game.
|
||||||
button.btn.btn-primary(data-toggle="coco-modal", data-target="modal/login", data-i18n="login.log_in") Log In
|
button.btn.btn-primary(data-toggle="coco-modal", data-target="modal/login", data-i18n="login.log_in") Log In
|
||||||
button.btn.btn-primary(data-toggle="coco-modal", data-target="modal/signup", data-i18n="login.sign_up") Create Account
|
button.btn.btn-primary(data-toggle="coco-modal", data-target="modal/signup", data-i18n="login.sign_up") Create Account
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ block content
|
||||||
for team in teams
|
for team in teams
|
||||||
div.column.col-md-4
|
div.column.col-md-4
|
||||||
a(style="background-color: #{team.primaryColor}", data-team=team.id).play-button.btn.btn-danger.btn-block.btn-lg
|
a(style="background-color: #{team.primaryColor}", data-team=team.id).play-button.btn.btn-danger.btn-block.btn-lg
|
||||||
span Play As
|
span(data-i18n="play.play_as") Play As
|
||||||
span= team.name
|
span= team.name
|
||||||
div.column.col-md-2
|
div.column.col-md-2
|
||||||
|
|
||||||
|
@ -29,11 +29,11 @@ block content
|
||||||
|
|
||||||
ul.nav.nav-pills
|
ul.nav.nav-pills
|
||||||
li.active
|
li.active
|
||||||
a(href="#ladder", data-toggle="tab") Ladder
|
a(href="#ladder", data-toggle="tab", data-i18n="general.ladder") Ladder
|
||||||
li
|
li
|
||||||
a(href="#my-matches", data-toggle="tab") My Matches
|
a(href="#my-matches", data-toggle="tab", data-i18n="ladder.my_matches") My Matches
|
||||||
li
|
li
|
||||||
a(href="#simulate", data-toggle="tab") Simulate
|
a(href="#simulate", data-toggle="tab", data-i18n="ladder.simulate") Simulate
|
||||||
|
|
||||||
div.tab-content
|
div.tab-content
|
||||||
.tab-pane.active.well#ladder
|
.tab-pane.active.well#ladder
|
||||||
|
@ -45,9 +45,9 @@ block content
|
||||||
if simulationStatus
|
if simulationStatus
|
||||||
| #{simulationStatus}
|
| #{simulationStatus}
|
||||||
else
|
else
|
||||||
| By simulating games you can get your game ranked faster!
|
span(data-i18n="ladder.simulation_explanation") By simulating games you can get your game ranked faster!
|
||||||
p
|
p
|
||||||
button.btn.btn-warning.btn-lg.highlight#simulate-button() Simulate Games!
|
button(data-i18n="ladder.simulate_games").btn.btn-warning.btn-lg.highlight#simulate-button Simulate Games!
|
||||||
if me.isAdmin()
|
if me.isAdmin()
|
||||||
p
|
p
|
||||||
button.btn.btn-danger.btn-lg.highlight#simulate-all-button() RESET AND SIMULATE GAMES
|
button(data-i18n="ladder.simulate_all").btn.btn-danger.btn-lg.highlight#simulate-all-button RESET AND SIMULATE GAMES
|
|
@ -5,11 +5,11 @@ div#columns.row
|
||||||
tr
|
tr
|
||||||
th(colspan=4, style="color: #{team.primaryColor}")
|
th(colspan=4, style="color: #{team.primaryColor}")
|
||||||
span= team.name
|
span= team.name
|
||||||
span Leaderboard
|
span(data-i18n="ladder.leaderboard") Leaderboard
|
||||||
tr
|
tr
|
||||||
th Rank
|
th(data-i18n="general.rank") Rank
|
||||||
th Score
|
th(data-i18n="general.score") Score
|
||||||
th.name-col-cell Name
|
th(data-i18n="general.name").name-col-cell Name
|
||||||
th
|
th
|
||||||
|
|
||||||
for session, rank in team.leaderboard.topPlayers.models
|
for session, rank in team.leaderboard.topPlayers.models
|
||||||
|
@ -20,4 +20,5 @@ div#columns.row
|
||||||
td.name-col-cell= session.get('creatorName') || "Anonymous"
|
td.name-col-cell= session.get('creatorName') || "Anonymous"
|
||||||
td
|
td
|
||||||
a(href="/play/level/#{level.get('slug') || level.id}/?team=#{team.otherTeam}&opponent=#{session.id}")
|
a(href="/play/level/#{level.get('slug') || level.id}/?team=#{team.otherTeam}&opponent=#{session.id}")
|
||||||
span Battle as #{team.otherTeam}!
|
span(data-i18n="ladder.battle_as") Battle as
|
||||||
|
| #{team.otherTeam}!
|
|
@ -11,16 +11,22 @@ div#columns.row
|
||||||
|
|
||||||
tr
|
tr
|
||||||
th(colspan=4, style="color: #{team.primaryColor}")
|
th(colspan=4, style="color: #{team.primaryColor}")
|
||||||
span Your #{team.name} Matches - #{team.wins} Wins, #{team.losses} Losses
|
span(data-i18n="ladder.summary_your") Your
|
||||||
|
|#{team.name}
|
||||||
|
span(data-i18n="ladder.summary_matches") Matches -
|
||||||
|
|#{team.wins}
|
||||||
|
span(data-i18n="ladder.summary_wins") Wins,
|
||||||
|
|#{team.losses}
|
||||||
|
span(data-i18n="ladder.summary_losses") Losses
|
||||||
|
|
||||||
if team.session
|
if team.session
|
||||||
button.btn.btn-sm.btn-warning.pull-right.rank-button(data-session-id=team.session.id)
|
button.btn.btn-sm.btn-warning.pull-right.rank-button(data-session-id=team.session.id)
|
||||||
span.unavailable.hidden No New Code to Rank
|
span(data-i18n="ladder.rank_no_code").unavailable.hidden No New Code to Rank
|
||||||
span.rank.hidden Rank My Game!
|
span(data-i18n="ladder.rank_my_game").rank.hidden Rank My Game!
|
||||||
span.submitting.hidden Submitting...
|
span(data-i18n="ladder.rank_submitting").submitting.hidden Submitting...
|
||||||
span.submitted.hidden Submitted for Ranking
|
span(data-i18n="ladder.rank_submitted").submitted.hidden Submitted for Ranking
|
||||||
span.failed.hidden Failed to Rank
|
span(data-i18n="ladder.rank_failed").failed.hidden Failed to Rank
|
||||||
span.ranking.hidden Game Being Ranked
|
span(data-i18n="ladder.rank_being_ranked").ranking.hidden Game Being Ranked
|
||||||
|
|
||||||
if team.chartData
|
if team.chartData
|
||||||
tr
|
tr
|
||||||
|
@ -28,19 +34,19 @@ div#columns.row
|
||||||
img(src="https://chart.googleapis.com/chart?chs=450x125&cht=lxy&chco=#{team.chartColor}&chtt=Score%3A+#{team.currentScore}&chts=#{team.chartColor},16,r&chf=a,s,000000FF&chls=2&chm=o,#{team.chartColor},0,4&chd=t:#{team.chartData}")
|
img(src="https://chart.googleapis.com/chart?chs=450x125&cht=lxy&chco=#{team.chartColor}&chtt=Score%3A+#{team.currentScore}&chts=#{team.chartColor},16,r&chf=a,s,000000FF&chls=2&chm=o,#{team.chartColor},0,4&chd=t:#{team.chartData}")
|
||||||
|
|
||||||
tr
|
tr
|
||||||
th Result
|
th(data-i18n="general.result") Result
|
||||||
th Opponent
|
th(data-i18n="general.opponent") Opponent
|
||||||
th When
|
th(data-i18n="general.when") When
|
||||||
th
|
th
|
||||||
for match in team.matches
|
for match in team.matches
|
||||||
tr(class=(match.stale ? "stale " : "") + match.state)
|
tr(class=(match.stale ? "stale " : "") + match.state)
|
||||||
td.state-cell
|
td.state-cell
|
||||||
if match.state === 'win'
|
if match.state === 'win'
|
||||||
span.win Win
|
span(data-i18n="general.win").win Win
|
||||||
if match.state === 'loss'
|
if match.state === 'loss'
|
||||||
span.loss Loss
|
span(data-i18n="general.loss").loss Loss
|
||||||
if match.state === 'tie'
|
if match.state === 'tie'
|
||||||
span.tie Tie
|
span(data-i18n="general.tie").tie Tie
|
||||||
td.name-cell= match.opponentName || "Anonymous"
|
td.name-cell= match.opponentName || "Anonymous"
|
||||||
td.time-cell= match.when
|
td.time-cell= match.when
|
||||||
td.battle-cell
|
td.battle-cell
|
||||||
|
@ -51,10 +57,12 @@ div#columns.row
|
||||||
tr
|
tr
|
||||||
if team.isRanking
|
if team.isRanking
|
||||||
td(colspan=4).alert.alert-info
|
td(colspan=4).alert.alert-info
|
||||||
| Your new code is being simulated by other players for ranking.
|
span(data-i18n="ladder.code_being_simulated")
|
||||||
| This will refresh as new matches come in.
|
| Your new code is being simulated by other players for ranking.
|
||||||
|
| This will refresh as new matches come in.
|
||||||
else
|
else
|
||||||
td(colspan=4).alert.alert-warning
|
td(colspan=4).alert.alert-warning
|
||||||
| No ranked matches for the #{team.name} team!
|
span(data-i18n="ladder.no_ranked_matches_pre") No ranked matches for the
|
||||||
| Play against some competitors and then come back here to get your game ranked.
|
| #{team.name}
|
||||||
|
span(data-i18n="ladder.no_ranked_matches_post") team! Play against some competitors and then come back here to get your game ranked.
|
||||||
|
|
||||||
|
|
|
@ -1,23 +1,23 @@
|
||||||
extends /templates/modal/modal_base
|
extends /templates/modal/modal_base
|
||||||
|
|
||||||
block modal-header-content
|
block modal-header-content
|
||||||
h3 Choose an Opponent
|
h3(data-i18n="ladder.choose_opponent") Choose an Opponent
|
||||||
|
|
||||||
block modal-body-content
|
block modal-body-content
|
||||||
|
|
||||||
div#noob-view.secret
|
div#noob-view.secret
|
||||||
a(href="/play/level/#{levelID}-tutorial").btn.btn-success.btn-block.btn-lg
|
a(href="/play/level/#{levelID}-tutorial").btn.btn-success.btn-block.btn-lg
|
||||||
p
|
p
|
||||||
strong Play Tutorial
|
strong(data-i18n="ladder.tutorial_play") Play Tutorial
|
||||||
span Recommended if you've never played before
|
span(data-i18n="ladder.tutorial_recommended") Recommended if you've never played before
|
||||||
span.btn.btn-primary.btn-block.btn-lg#skip-tutorial-button Skip Tutorial
|
span.btn.btn-primary.btn-block.btn-lg#skip-tutorial-button(data-i18n="ladder.tutorial_skip") Skip Tutorial
|
||||||
|
|
||||||
div#normal-view
|
div#normal-view
|
||||||
|
|
||||||
p.tutorial-suggestion
|
p.tutorial-suggestion
|
||||||
strong Not sure what's going on?
|
strong(data-i18n="ladder.tutorial_not_sure") Not sure what's going on?
|
||||||
|
|
|
|
||||||
a(href="/play/level/#{levelID}-tutorial") Play the tutorial first.
|
a(href="/play/level/#{levelID}-tutorial", data-i18n="ladder.tutorial_play_first") Play the tutorial first.
|
||||||
|
|
||||||
a(href="/play/level/#{levelID}?team=#{teamID}")
|
a(href="/play/level/#{levelID}?team=#{teamID}")
|
||||||
div.play-option
|
div.play-option
|
||||||
|
@ -28,10 +28,10 @@ block modal-body-content
|
||||||
div.my-name.name-label.only-one
|
div.my-name.name-label.only-one
|
||||||
span= myName
|
span= myName
|
||||||
div.opponent-name.name-label
|
div.opponent-name.name-label
|
||||||
span Simple AI
|
span(data-i18n="ladder.simple_ai") Simple AI
|
||||||
div.difficulty
|
div.difficulty
|
||||||
span Warmup
|
span(data-i18n="ladder.warmup") Warmup
|
||||||
div.vs VS
|
div(data-i18n="ladder.vs").vs VS
|
||||||
|
|
||||||
if challengers.easy
|
if challengers.easy
|
||||||
a(href="/play/level/#{levelID}?team=#{teamID}&opponent=#{challengers.easy.sessionID}")
|
a(href="/play/level/#{levelID}?team=#{teamID}&opponent=#{challengers.easy.sessionID}")
|
||||||
|
@ -45,8 +45,8 @@ block modal-body-content
|
||||||
div.opponent-name.name-label
|
div.opponent-name.name-label
|
||||||
span= challengers.easy.opponentName
|
span= challengers.easy.opponentName
|
||||||
div.difficulty
|
div.difficulty
|
||||||
span Easy
|
span(data-i18n="general.easy") Easy
|
||||||
div.vs VS
|
div(data-i18n="ladder.vs").vs VS
|
||||||
|
|
||||||
if challengers.medium
|
if challengers.medium
|
||||||
a(href="/play/level/#{levelID}?team=#{teamID}&opponent=#{challengers.medium.sessionID}")
|
a(href="/play/level/#{levelID}?team=#{teamID}&opponent=#{challengers.medium.sessionID}")
|
||||||
|
@ -60,8 +60,8 @@ block modal-body-content
|
||||||
div.opponent-name.name-label
|
div.opponent-name.name-label
|
||||||
span= challengers.medium.opponentName
|
span= challengers.medium.opponentName
|
||||||
div.difficulty
|
div.difficulty
|
||||||
span Medium
|
span(data-i18n="general.medium") Medium
|
||||||
div.vs VS
|
div(data-i18n="ladder.vs").vs VS
|
||||||
|
|
||||||
if challengers.hard
|
if challengers.hard
|
||||||
a(href="/play/level/#{levelID}?team=#{teamID}&opponent=#{challengers.hard.sessionID}")
|
a(href="/play/level/#{levelID}?team=#{teamID}&opponent=#{challengers.hard.sessionID}")
|
||||||
|
@ -75,7 +75,7 @@ block modal-body-content
|
||||||
div.opponent-name.name-label
|
div.opponent-name.name-label
|
||||||
span= challengers.hard.opponentName
|
span= challengers.hard.opponentName
|
||||||
div.difficulty
|
div.difficulty
|
||||||
span Hard
|
span(data-i18n="general.hard") Hard
|
||||||
div.vs VS
|
div(data-i18n="ladder.vs").vs VS
|
||||||
|
|
||||||
block modal-footer
|
block modal-footer
|
|
@ -128,6 +128,7 @@ module.exports = class PlayLevelView extends View
|
||||||
|
|
||||||
onLevelLoaderProgressChanged: ->
|
onLevelLoaderProgressChanged: ->
|
||||||
return if @seenDocs
|
return if @seenDocs
|
||||||
|
return unless @levelLoader.session.loaded and @levelLoader.level.loaded
|
||||||
return unless showFrequency = @levelLoader.level.get('showsGuide')
|
return unless showFrequency = @levelLoader.level.get('showsGuide')
|
||||||
session = @levelLoader.session
|
session = @levelLoader.session
|
||||||
diff = new Date().getTime() - new Date(session.get('created')).getTime()
|
diff = new Date().getTime() - new Date(session.get('created')).getTime()
|
||||||
|
|
Loading…
Reference in a new issue