mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-05-02 00:43:34 -04:00
Merge branch 'master' of https://github.com/codecombat/codecombat
This commit is contained in:
commit
c8e5cdefec
6 changed files with 80 additions and 64 deletions
app
models
schemas/subscriptions
styles/play/level
views
|
@ -88,3 +88,13 @@ module.exports = class User extends CocoModel
|
||||||
@branchingGroup = 'choice-explicit' if me.isAdmin()
|
@branchingGroup = 'choice-explicit' if me.isAdmin()
|
||||||
application.tracker.identify branchingGroup: @branchingGroup
|
application.tracker.identify branchingGroup: @branchingGroup
|
||||||
@branchingGroup
|
@branchingGroup
|
||||||
|
|
||||||
|
getHighlightArrowSoundGroup: ->
|
||||||
|
return @highlightArrowGroup if @highlightArrowGroup
|
||||||
|
group = me.get('testGroupNumber') % 8
|
||||||
|
@highlightArrowGroup = switch group
|
||||||
|
when 0, 1, 2, 3 then 'sound-off'
|
||||||
|
when 4, 5, 6, 7 then 'sound-on'
|
||||||
|
@highlightArrowGroup = 'sound-off' if me.isAdmin()
|
||||||
|
application.tracker.identify highlightArrowGroup: @highlightArrowGroup
|
||||||
|
@highlightArrowGroup
|
||||||
|
|
|
@ -8,6 +8,7 @@ module.exports =
|
||||||
replacedNoteChain: {type: 'array'}
|
replacedNoteChain: {type: 'array'}
|
||||||
thang: {type: 'object'}
|
thang: {type: 'object'}
|
||||||
killer: {type: 'object'}
|
killer: {type: 'object'}
|
||||||
|
killerHealth: {type: ['number', 'undefined']}
|
||||||
|
|
||||||
'world:thang-touched-goal': c.object {required: ['actor', 'touched']},
|
'world:thang-touched-goal': c.object {required: ['actor', 'touched']},
|
||||||
replacedNoteChain: {type: 'array'}
|
replacedNoteChain: {type: 'array'}
|
||||||
|
|
|
@ -48,9 +48,10 @@
|
||||||
background-image: url(/images/level/hud_right_wing.png)
|
background-image: url(/images/level/hud_right_wing.png)
|
||||||
background-position: left
|
background-position: left
|
||||||
|
|
||||||
&.hide-hud-properties .center .thang-props
|
&.hide-hud-properties .center
|
||||||
visibility: hidden
|
.thang-props, .thang-actions
|
||||||
position: absolute
|
visibility: hidden
|
||||||
|
position: absolute
|
||||||
|
|
||||||
.center
|
.center
|
||||||
width: 560px
|
width: 560px
|
||||||
|
|
|
@ -351,7 +351,8 @@ module.exports = class CocoView extends Backbone.View
|
||||||
animatePointer: =>
|
animatePointer: =>
|
||||||
$pointer = @getPointer()
|
$pointer = @getPointer()
|
||||||
$pointer.css transition: 'all 0.6s ease-out', transform: "rotate(#{@pointerRotation}rad) translate(-3px, #{@pointerRadialDistance-50}px)"
|
$pointer.css transition: 'all 0.6s ease-out', transform: "rotate(#{@pointerRotation}rad) translate(-3px, #{@pointerRadialDistance-50}px)"
|
||||||
#Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'dom_highlight', volume: 0.75 # Never mind, this is currently so annoying
|
if me.getHighlightArrowSoundGroup() is 'sound-on'
|
||||||
|
Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'dom_highlight', volume: 0.5
|
||||||
setTimeout (=> $pointer.css transition: 'all 0.4s ease-in', transform: "rotate(#{@pointerRotation}rad) translate(-3px, #{@pointerRadialDistance}px)"), 800
|
setTimeout (=> $pointer.css transition: 'all 0.4s ease-in', transform: "rotate(#{@pointerRotation}rad) translate(-3px, #{@pointerRadialDistance}px)"), 800
|
||||||
|
|
||||||
endHighlight: ->
|
endHighlight: ->
|
||||||
|
|
|
@ -647,22 +647,35 @@ dungeon = [
|
||||||
x: 54
|
x: 54
|
||||||
y: 9
|
y: 9
|
||||||
nextLevels:
|
nextLevels:
|
||||||
more_practice: 'munchkin-dodger'
|
more_practice: 'kounter-kithwise'
|
||||||
continue: 'true-names'
|
continue: 'true-names'
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name: 'Munchkin Dodger'
|
name: 'Kounter Kithwise'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
difficulty: 1
|
difficulty: 1
|
||||||
id: 'munchkin-dodger'
|
id: 'kounter-kithwise'
|
||||||
original: '541875da4c16460000ab990f'
|
original: '54527a6257e83800009730c7'
|
||||||
description: 'Practice your evasion skills with more guards.'
|
description: 'Practice your evasion skills with more guards.'
|
||||||
x: 61.19
|
x: 61.19
|
||||||
y: 13.80
|
y: 13.80
|
||||||
|
nextLevels:
|
||||||
|
more_practice: 'crawlways-of-kithgard'
|
||||||
|
continue: 'true-names'
|
||||||
|
practice: true
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: 'Crawlways of Kithgard'
|
||||||
|
type: 'hero'
|
||||||
|
difficulty: 1
|
||||||
|
id: 'crawlways-of-kithgard'
|
||||||
|
original: '545287ef57e83800009730d5'
|
||||||
|
description: 'Dart in and grab the gem–at the right moment.'
|
||||||
|
x: 63.19
|
||||||
|
y: 15.80
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'true-names'
|
continue: 'true-names'
|
||||||
practice: true
|
practice: true
|
||||||
disabled: true
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name: 'True Names'
|
name: 'True Names'
|
||||||
|
@ -674,22 +687,21 @@ dungeon = [
|
||||||
x: 74
|
x: 74
|
||||||
y: 12
|
y: 12
|
||||||
nextLevels:
|
nextLevels:
|
||||||
more_practice: 'munchkin-slayer'
|
more_practice: 'favorable-odds'
|
||||||
continue: 'the-raised-sword'
|
continue: 'the-raised-sword'
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name: 'Munchkin Slayer'
|
name: 'Favorable Odds'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
difficulty: 1
|
difficulty: 1
|
||||||
id: 'munchkin-slayer'
|
id: 'favorable-odds'
|
||||||
original: '5418aec24c16460000ab9aa6'
|
original: '5452972f57e83800009730de'
|
||||||
description: 'Test out your battle skills by defeating more munchkins.'
|
description: 'Test out your battle skills by defeating more munchkins.'
|
||||||
x: 80.85
|
x: 80.85
|
||||||
y: 11.85
|
y: 11.85
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'the-raised-sword'
|
continue: 'the-raised-sword'
|
||||||
practice: true
|
practice: true
|
||||||
disabled: true
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name: 'The Raised Sword'
|
name: 'The Raised Sword'
|
||||||
|
@ -709,27 +721,26 @@ dungeon = [
|
||||||
difficulty: 1
|
difficulty: 1
|
||||||
id: 'the-first-kithmaze'
|
id: 'the-first-kithmaze'
|
||||||
original: '5418b9d64c16460000ab9ab4'
|
original: '5418b9d64c16460000ab9ab4'
|
||||||
description: 'The builders of Kith constructed many mazes to confuse travelers.'
|
description: 'The builders of Kithgard constructed many mazes to confuse travelers.'
|
||||||
x: 70
|
x: 70
|
||||||
y: 28
|
y: 28
|
||||||
nextLevels:
|
nextLevels:
|
||||||
more_practice: 'the-one-point-fifth-kithmaze'
|
more_practice: 'descending-further'
|
||||||
continue: 'the-second-kithmaze'
|
continue: 'the-second-kithmaze'
|
||||||
skip_ahead: 'new-sight'
|
skip_ahead: 'new-sight'
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name: 'The One-Point-Fifth Kithmaze'
|
name: 'Descending Further'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
difficulty: 1
|
difficulty: 1
|
||||||
id: 'the-one-point-fifth-kithmaze'
|
id: 'descending-further'
|
||||||
original: '5418cf256bae62f707c7e1c3'
|
original: '5452a84d57e83800009730e4'
|
||||||
description: 'Another day, another maze.'
|
description: 'Another day, another maze.'
|
||||||
x: 78.47
|
x: 78.47
|
||||||
y: 34.38
|
y: 34.38
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'the-second-kithmaze'
|
continue: 'the-second-kithmaze'
|
||||||
practice: true
|
practice: true
|
||||||
disabled: true
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name: 'The Second Kithmaze'
|
name: 'The Second Kithmaze'
|
||||||
|
@ -741,23 +752,8 @@ dungeon = [
|
||||||
x: 55.54
|
x: 55.54
|
||||||
y: 26.96
|
y: 26.96
|
||||||
nextLevels:
|
nextLevels:
|
||||||
more_practice: 'the-two-point-fifth-kithmaze'
|
|
||||||
continue: 'new-sight'
|
continue: 'new-sight'
|
||||||
}
|
}
|
||||||
{
|
|
||||||
name: 'The Two-Point-Fifth Kithmaze'
|
|
||||||
type: 'hero'
|
|
||||||
difficulty: 1
|
|
||||||
id: 'the-two-point-fifth-kithmaze'
|
|
||||||
original: '5418d40f4c16460000ab9ac2'
|
|
||||||
description: 'You must really like doing these mazes!'
|
|
||||||
x: 49.02
|
|
||||||
y: 25.78
|
|
||||||
nextLevels:
|
|
||||||
continue: 'new-sight'
|
|
||||||
practice: true
|
|
||||||
disabled: true
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
name: 'New Sight'
|
name: 'New Sight'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
|
@ -767,8 +763,33 @@ dungeon = [
|
||||||
description: 'A true name can only be seen with the correct lenses.'
|
description: 'A true name can only be seen with the correct lenses.'
|
||||||
x: 67
|
x: 67
|
||||||
y: 41
|
y: 41
|
||||||
|
nextLevels:
|
||||||
|
continue: 'known-enemy'
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: 'Known Enemy'
|
||||||
|
type: 'hero'
|
||||||
|
difficulty: 1
|
||||||
|
id: 'known-enemy'
|
||||||
|
original: '5452adea57e83800009730ee'
|
||||||
|
description: 'Begin to use variables in your battles.'
|
||||||
|
x: 80.17
|
||||||
|
y: 45.31
|
||||||
|
nextLevels:
|
||||||
|
continue: 'master-of-names'
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: 'Master of Names'
|
||||||
|
type: 'hero'
|
||||||
|
difficulty: 1
|
||||||
|
id: 'master-of-names'
|
||||||
|
original: '5452c3ce57e83800009730f7'
|
||||||
|
description: 'Use your glasses to defend yourself from the Kithmen.'
|
||||||
|
x: 84.17
|
||||||
|
y: 45.31
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'lowly-kithmen'
|
continue: 'lowly-kithmen'
|
||||||
|
skip_ahead: 'closing-the-distance'
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name: 'Lowly Kithmen'
|
name: 'Lowly Kithmen'
|
||||||
|
@ -776,28 +797,13 @@ dungeon = [
|
||||||
difficulty: 1
|
difficulty: 1
|
||||||
id: 'lowly-kithmen'
|
id: 'lowly-kithmen'
|
||||||
original: '541b24511ccc8eaae19f3c1f'
|
original: '541b24511ccc8eaae19f3c1f'
|
||||||
description: 'Use your glasses to seek out and attack the Kithmen.'
|
description: 'Now that you can see them, they\'re everywhere!'
|
||||||
x: 74
|
x: 74
|
||||||
y: 48
|
y: 48
|
||||||
nextLevels:
|
nextLevels:
|
||||||
more_practice: 'still-pretty-low-kithmen'
|
|
||||||
continue: 'closing-the-distance'
|
continue: 'closing-the-distance'
|
||||||
skip_ahead: 'the-final-kithmaze'
|
skip_ahead: 'the-final-kithmaze'
|
||||||
}
|
}
|
||||||
{
|
|
||||||
name: 'Still-Pretty-Low Kithmen'
|
|
||||||
type: 'hero'
|
|
||||||
difficulty: 1
|
|
||||||
id: 'still-pretty-low-kithmen'
|
|
||||||
original: '541b288e1ccc8eaae19f3c25'
|
|
||||||
description: 'Now that you can see them, they\'re everywhere!'
|
|
||||||
x: 80.17
|
|
||||||
y: 45.31
|
|
||||||
nextLevels:
|
|
||||||
continue: 'closing-the-distance'
|
|
||||||
practice: true
|
|
||||||
disabled: true
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
name: 'Closing the Distance'
|
name: 'Closing the Distance'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
|
@ -808,22 +814,21 @@ dungeon = [
|
||||||
x: 76
|
x: 76
|
||||||
y: 60
|
y: 60
|
||||||
nextLevels:
|
nextLevels:
|
||||||
more_practice: 'assassinating-more-kithmen'
|
more_practice: 'tactical-strike'
|
||||||
continue: 'the-final-kithmaze'
|
continue: 'the-final-kithmaze'
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name: 'Assassinating More Kithmen'
|
name: 'Tactical Strike'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
difficulty: 1
|
difficulty: 1
|
||||||
id: 'assassinating-more-kithmen'
|
id: 'tactical-strike'
|
||||||
original: '541b434e1ccc8eaae19f3c33'
|
original: '5452cfa706a59e000067e4f5'
|
||||||
description: 'They\'re, uh, coming right for us?'
|
description: 'They\'re, uh, coming right for us! Sneak up behind them.'
|
||||||
x: 80.34
|
x: 80.34
|
||||||
y: 55.60
|
y: 55.60
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'the-final-kithmaze'
|
continue: 'the-final-kithmaze'
|
||||||
practice: true
|
practice: true
|
||||||
disabled: true
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name: 'The Final Kithmaze'
|
name: 'The Final Kithmaze'
|
||||||
|
@ -835,22 +840,21 @@ dungeon = [
|
||||||
x: 82
|
x: 82
|
||||||
y: 70
|
y: 70
|
||||||
nextLevels:
|
nextLevels:
|
||||||
more_practice: 'okay-one-more-kithmaze'
|
more_practice: 'the-gauntlet'
|
||||||
continue: 'kithgard-gates'
|
continue: 'kithgard-gates'
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name: 'Okay, One More Kithmaze'
|
name: 'The Gauntlet'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
difficulty: 1
|
difficulty: 1
|
||||||
id: 'okay-one-more-kithmaze'
|
id: 'the-gauntlet'
|
||||||
original: '541c9a30c6362edfb0f34479'
|
original: '5452d8b906a59e000067e4fa'
|
||||||
description: 'But you really gotta get outside after this, okay?'
|
description: 'Rush for the stairs, battling foes at every turn.'
|
||||||
x: 76.94
|
x: 76.94
|
||||||
y: 74.22
|
y: 74.22
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'kithgard-gates'
|
continue: 'kithgard-gates'
|
||||||
practice: true
|
practice: true
|
||||||
disabled: true
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name: 'Kithgard Gates'
|
name: 'Kithgard Gates'
|
||||||
|
|
|
@ -588,7 +588,6 @@ module.exports = class SpellView extends CocoView
|
||||||
io: '//'
|
io: '//'
|
||||||
commentStart = commentStarts[@spell.language] or '//'
|
commentStart = commentStarts[@spell.language] or '//'
|
||||||
@_singleLineCommentRegexp ?= new RegExp "[ \t]*#{commentStart}[^\"'\n]*", 'g'
|
@_singleLineCommentRegexp ?= new RegExp "[ \t]*#{commentStart}[^\"'\n]*", 'g'
|
||||||
console.log 'got', @_singleLineCommentRegexp, 'from', "[ \t]*#{commentStart}[^\"']*", 'comment start is', commentStart, 'acuse lang is', @spell.language
|
|
||||||
@_singleLineCommentRegexp
|
@_singleLineCommentRegexp
|
||||||
|
|
||||||
preload: ->
|
preload: ->
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue