Merge branch 'master' into production

This commit is contained in:
Nick Winter 2015-06-08 13:23:31 -07:00
commit 1dab44f1bf
11 changed files with 93 additions and 22 deletions

View file

@ -193,6 +193,16 @@ particleKinds =
colorStart: hsl 0.56, 0.97, 0.5 colorStart: hsl 0.56, 0.97, 0.5
colorMiddle: hsl 0.56, 0.57, 0.5 colorMiddle: hsl 0.56, 0.57, 0.5
colorEnd: hsl 0.56, 0.17, 0.5 colorEnd: hsl 0.56, 0.17, 0.5
'level-glacier-premium': ext defaults,
emitter:
colorStart: hsl 0.56, 0.97, 0.5
colorMiddle: hsl 0.56, 0.57, 0.5
colorEnd: hsl 0.56, 0.17, 0.5
'level-volcano-premium': ext defaults,
emitter:
colorStart: hsl 0.56, 0.97, 0.5
colorMiddle: hsl 0.56, 0.57, 0.5
colorEnd: hsl 0.56, 0.17, 0.5
particleKinds['level-dungeon-premium-hero'] = ext particleKinds['level-dungeon-premium'], particleKinds['level-dungeon-premium-hero'] = ext particleKinds['level-dungeon-premium'],
emitter: emitter:
@ -344,3 +354,71 @@ particleKinds['level-mountain-replayable'] = particleKinds['level-mountain-repla
colorStart: hsl 0.17, 0.75, 0.7 colorStart: hsl 0.17, 0.75, 0.7
colorMiddle: hsl 0.17, 0.75, 0.5 colorMiddle: hsl 0.17, 0.75, 0.5
colorEnd: hsl 0.17, 0.75, 0.3 colorEnd: hsl 0.17, 0.75, 0.3
particleKinds['level-glacier-premium-hero'] = ext particleKinds['level-glacier-premium'],
emitter:
particleCount: 200
radius: 1.5
acceleration: vec 0, 4, 0
opacityStart: 0.25
opacityMiddle: 0.5
opacityEnd: 0.75
particleKinds['level-glacier-gate'] = ext particleKinds['level-glacier-premium'],
emitter:
particleCount: 120
velocity: vec 0, 8, 0
colorStart: hsl 0.56, 0.97, 0.3
colorMiddle: hsl 0.56, 0.57, 0.3
colorEnd: hsl 0.56, 0.17, 0.3
colorStartSpread: vec 1, 1, 1
colorMiddleSpread: vec 1.5, 1.5, 1.5
colorEndSpread: vec 2.5, 2.5, 2.5
particleKinds['level-glacier-hero-ladder'] = ext particleKinds['level-glacier-premium'],
emitter:
particleCount: 90
velocity: vec 0, 4, 0
colorStart: hsl 0, 0.95, 0.3
colorMiddle: hsl 0, 1, 0.5
colorEnd: hsl 0, 0.75, 0.1
particleKinds['level-glacier-replayable'] = particleKinds['level-glacier-replayable-premium'] = ext particleKinds['level-glacier-hero-ladder'],
emitter:
colorStart: hsl 0.17, 0.75, 0.7
colorMiddle: hsl 0.17, 0.75, 0.5
colorEnd: hsl 0.17, 0.75, 0.3
particleKinds['level-volcano-premium-hero'] = ext particleKinds['level-volcano-premium'],
emitter:
particleCount: 200
radius: 1.5
acceleration: vec 0, 4, 0
opacityStart: 0.25
opacityMiddle: 0.5
opacityEnd: 0.75
particleKinds['level-volcano-gate'] = ext particleKinds['level-volcano-premium'],
emitter:
particleCount: 120
velocity: vec 0, 8, 0
colorStart: hsl 0.56, 0.97, 0.3
colorMiddle: hsl 0.56, 0.57, 0.3
colorEnd: hsl 0.56, 0.17, 0.3
colorStartSpread: vec 1, 1, 1
colorMiddleSpread: vec 1.5, 1.5, 1.5
colorEndSpread: vec 2.5, 2.5, 2.5
particleKinds['level-volcano-hero-ladder'] = ext particleKinds['level-volcano-premium'],
emitter:
particleCount: 90
velocity: vec 0, 4, 0
colorStart: hsl 0, 0.95, 0.3
colorMiddle: hsl 0, 1, 0.5
colorEnd: hsl 0, 0.75, 0.1
particleKinds['level-volcano-replayable'] = particleKinds['level-volcano-replayable-premium'] = ext particleKinds['level-volcano-hero-ladder'],
emitter:
colorStart: hsl 0.17, 0.75, 0.7
colorMiddle: hsl 0.17, 0.75, 0.5
colorEnd: hsl 0.17, 0.75, 0.3

View file

@ -87,7 +87,7 @@ module.exports = class LankBoss extends CocoClass
console.error 'Lank collision! Already have:', id if @lanks[id] console.error 'Lank collision! Already have:', id if @lanks[id]
@lanks[id] = lank @lanks[id] = lank
@lankArray.push lank @lankArray.push lank
layer ?= @layerAdapters['Obstacle'] if lank.thang?.spriteName.search(/(dungeon|indoor).wall/i) isnt -1 layer ?= @layerAdapters['Obstacle'] if lank.thang?.spriteName.search(/(dungeon|indoor|ice).wall/i) isnt -1
layer ?= @layerForChild lank.sprite, lank layer ?= @layerForChild lank.sprite, lank
layer.addLank lank layer.addLank lank
layer.updateLayerOrder() layer.updateLayerOrder()
@ -252,7 +252,7 @@ module.exports = class LankBoss extends CocoClass
cacheObstacles: (updatedObstacles=null) -> cacheObstacles: (updatedObstacles=null) ->
return if @cachedObstacles and not updatedObstacles return if @cachedObstacles and not updatedObstacles
lankArray = @lankArray lankArray = @lankArray
wallLanks = (lank for lank in lankArray when lank.thangType?.get('name').search(/(dungeon|indoor).wall/i) isnt -1) wallLanks = (lank for lank in lankArray when lank.thangType?.get('name').search(/(dungeon|indoor|ice).wall/i) isnt -1)
return if _.any (s.stillLoading for s in wallLanks) return if _.any (s.stillLoading for s in wallLanks)
walls = (lank.thang for lank in wallLanks) walls = (lank.thang for lank in wallLanks)
@world.calculateBounds() @world.calculateBounds()

View file

@ -1,6 +1,6 @@
SpriteBuilder = require 'lib/sprites/SpriteBuilder' SpriteBuilder = require 'lib/sprites/SpriteBuilder'
floors = ['Dungeon Floor', 'Indoor Floor', 'Grass', 'Grass01', 'Grass02', 'Grass03', 'Grass04', 'Grass05', 'Goal Trigger', 'Obstacle', 'Sand 01', 'Sand 02', 'Sand 03', 'Sand 04', 'Sand 05', 'Sand 06', 'Talus 1', 'Talus 2', 'Talus 3', 'Talus 4', 'Talus 5', 'Talus 6'] floors = ['Dungeon Floor', 'Indoor Floor', 'Grass', 'Grass01', 'Grass02', 'Grass03', 'Grass04', 'Grass05', 'Goal Trigger', 'Obstacle', 'Sand 01', 'Sand 02', 'Sand 03', 'Sand 04', 'Sand 05', 'Sand 06', 'Talus 1', 'Talus 2', 'Talus 3', 'Talus 4', 'Talus 5', 'Talus 6', 'Firn 1', 'Firn 2', 'Firn 3', 'Firn 4', 'Firn 5', 'Firn 6']
module.exports = class SingularSprite extends createjs.Sprite module.exports = class SingularSprite extends createjs.Sprite
childMovieClips: null childMovieClips: null

View file

@ -634,9 +634,9 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
# how_much_5: "We accept discounted one-time purchases and yearly subscription purchases for groups, such as a class or school. Please contact" # how_much_5: "We accept discounted one-time purchases and yearly subscription purchases for groups, such as a class or school. Please contact"
# how_much_6: "for more details." # how_much_6: "for more details."
more_info_title: "Onde posso encontrar mais informação?" more_info_title: "Onde posso encontrar mais informação?"
# more_info_1: "Our" more_info_1: "O nosso"
# more_info_2: "teachers forum" more_info_2: "fórum para professores"
# more_info_3: "is a good place to connect with fellow educators who are using CodeCombat." more_info_3: "é um bom sítio para te ligares a outros professores que também usam o CodeCombat."
sys_requirements_title: "Requisitos do Sistema" sys_requirements_title: "Requisitos do Sistema"
sys_requirements_1: "Um navegador moderno. As versões mais recentes do Chrome, Firefox ou Safari. Internet Explorer 9 ou mais recente." sys_requirements_1: "Um navegador moderno. As versões mais recentes do Chrome, Firefox ou Safari. Internet Explorer 9 ou mais recente."
sys_requirements_2: "O CodeCombat ainda não é suportado em iPad's." sys_requirements_2: "O CodeCombat ainda não é suportado em iPad's."
@ -654,9 +654,9 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
denied_2: "recusada" denied_2: "recusada"
contact_1: "Por favor, contacta" contact_1: "Por favor, contacta"
contact_2: "se tiveres mais questões." contact_2: "se tiveres mais questões."
description_1: "Oferecemos subscrições gratuitas a professores para efeitos de avaliação. Podes encontar mais informações na nossa página de" description_1: "Oferecemos subscrições gratuitas a professores para efeitos de avaliação. Na nossa página para"
description_2: "professores" description_2: "professores"
description_3: "." description_3: ", podes encontar muitas mais informações."
description_4: "Por favor, preenche este pequeno inquérito e nós enviar-te-emos, por e-mail, as instruções de configuração." description_4: "Por favor, preenche este pequeno inquérito e nós enviar-te-emos, por e-mail, as instruções de configuração."
email: "Endereço de E-mail" email: "Endereço de E-mail"
school_city: "Nome da Escola, Cidade" school_city: "Nome da Escola, Cidade"

View file

@ -210,7 +210,7 @@ me.activity = me.object {description: 'Stats on an activity'},
last: me.date() last: me.date()
count: {type: 'integer', minimum: 0} count: {type: 'integer', minimum: 0}
me.terrainString = me.shortString {enum: ['Grass', 'Dungeon', 'Indoor', 'Desert', 'Mountain'], title: 'Terrain', description: 'Which terrain type this is.'} me.terrainString = me.shortString {enum: ['Grass', 'Dungeon', 'Indoor', 'Desert', 'Mountain', 'Glacier', 'Volcano'], title: 'Terrain', description: 'Which terrain type this is.'}
me.HeroConfigSchema = me.object {description: 'Which hero the player is using, equipped with what inventory.'}, me.HeroConfigSchema = me.object {description: 'Which hero the player is using, equipped with what inventory.'},
inventory: inventory:

View file

@ -568,7 +568,7 @@ $gameControlMargin: 30px
background-position: (-2 * $campaignWidth) 0 background-position: (-2 * $campaignWidth) 0
&.mountain &.mountain
background-position: (-3 * $campaignWidth) 0 background-position: (-3 * $campaignWidth) 0
&.ice &.glacier
background-position: (-4 * $campaignWidth) 0 background-position: (-4 * $campaignWidth) 0
&.volcano &.volcano
background-position: (-5 * $campaignWidth) 0 background-position: (-5 * $campaignWidth) 0

View file

@ -61,7 +61,7 @@ if campaign
else else
.portal .portal
.portals .portals
for campaignSlug in ['dungeon', 'forest', 'desert', 'mountain', 'ice', 'volcano'] for campaignSlug in ['dungeon', 'forest', 'desert', 'mountain', 'glacier', 'volcano']
- var campaign = campaigns[campaignSlug]; - var campaign = campaigns[campaignSlug];
- var godmode = me.get('permissions', true).indexOf('godmode') != -1; - var godmode = me.get('permissions', true).indexOf('godmode') != -1;
div(class="campaign #{campaignSlug}" + (campaign ? "" : " silhouette") + (campaign && campaign.locked && !godmode ? " locked" : ""), data-campaign-slug=campaignSlug) div(class="campaign #{campaignSlug}" + (campaign ? "" : " silhouette") + (campaign && campaign.locked && !godmode ? " locked" : ""), data-campaign-slug=campaignSlug)

View file

@ -129,15 +129,8 @@ module.exports = class ClanDetailsView extends RootView
campaignLevelProgression = campaignLevelProgression =
ID: campaign.id ID: campaign.id
slug: campaign.get('slug') slug: campaign.get('slug')
name: campaign.get('name') name: campaign.get('fullName') or campaign.get('name')
levels: [] levels: []
# TODO: Where do these proper names come from?
campaignLevelProgression.name = switch
when campaignLevelProgression.slug is 'dungeon' then 'Kithgard Dungeon'
when campaignLevelProgression.slug is 'forest' then 'Backwoods Forest'
when campaignLevelProgression.slug is 'desert' then 'Sarven Desert'
when campaignLevelProgression.slug is 'mountain' then 'Cloudrip Mountain'
else campaignLevelProgression.name
for levelID, level of campaign.get('levels') for levelID, level of campaign.get('levels')
campaignLevelProgression.levels.push campaignLevelProgression.levels.push
ID: levelID ID: levelID

View file

@ -128,7 +128,7 @@ module.exports = class SystemsTabView extends CocoView
@levelSystemEditView = null @levelSystemEditView = null
onTerrainChanged: (e) -> onTerrainChanged: (e) ->
defaultPathfinding = e.terrain in ['Dungeon', 'Indoor', 'Mountain'] defaultPathfinding = e.terrain in ['Dungeon', 'Indoor', 'Mountain', 'Glacier', 'Volcano']
changed = false changed = false
if AI = @systemsTreema.get 'original=528110f30268d018e3000001' if AI = @systemsTreema.get 'original=528110f30268d018e3000001'
unless AI.config?.findsPaths is defaultPathfinding unless AI.config?.findsPaths is defaultPathfinding

View file

@ -540,7 +540,7 @@ module.exports = class ThangTypeEditView extends RootView
@lastKind = kind @lastKind = kind
Backbone.Mediator.publish 'editor:thang-type-kind-changed', kind: kind Backbone.Mediator.publish 'editor:thang-type-kind-changed', kind: kind
if kind in ['Doodad', 'Floor', 'Wall'] and not @treema.data.terrains if kind in ['Doodad', 'Floor', 'Wall'] and not @treema.data.terrains
@treema.set '/terrains', ['Grass', 'Dungeon', 'Indoor', 'Desert', 'Mountain'] # So editors know to set them. @treema.set '/terrains', ['Grass', 'Dungeon', 'Indoor', 'Desert', 'Mountain', 'Glacier', 'Volcano'] # So editors know to set them.
if not @treema.data.tasks if not @treema.data.tasks
@treema.set '/tasks', (name: t for t in defaultTasks[kind]) @treema.set '/tasks', (name: t for t in defaultTasks[kind])

View file

@ -491,7 +491,7 @@ module.exports = class CampaignView extends RootView
onWindowResize: (e) => onWindowResize: (e) =>
mapHeight = iPadHeight = 1536 mapHeight = iPadHeight = 1536
mapWidth = {dungeon: 2350, forest: 2500, auditions: 2500, desert: 2350, mountain: 2422}[@terrain] or 2350 mapWidth = {dungeon: 2350, forest: 2500, auditions: 2500, desert: 2350, mountain: 2422, glacier: 2421}[@terrain] or 2350
aspectRatio = mapWidth / mapHeight aspectRatio = mapWidth / mapHeight
pageWidth = @$el.width() pageWidth = @$el.width()
pageHeight = @$el.height() pageHeight = @$el.height()