mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-04-01 15:50:11 -04:00
Added some code for the glacier world.
This commit is contained in:
parent
fa273d7535
commit
4e08d453b7
10 changed files with 88 additions and 17 deletions
app
core
lib/surface
schemas
styles/play
templates/play
views
clans
editor
play
|
@ -193,6 +193,16 @@ particleKinds =
|
|||
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-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'],
|
||||
emitter:
|
||||
|
@ -344,3 +354,71 @@ particleKinds['level-mountain-replayable'] = particleKinds['level-mountain-repla
|
|||
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-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
|
||||
|
|
|
@ -87,7 +87,7 @@ module.exports = class LankBoss extends CocoClass
|
|||
console.error 'Lank collision! Already have:', id if @lanks[id]
|
||||
@lanks[id] = 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.addLank lank
|
||||
layer.updateLayerOrder()
|
||||
|
@ -252,7 +252,7 @@ module.exports = class LankBoss extends CocoClass
|
|||
cacheObstacles: (updatedObstacles=null) ->
|
||||
return if @cachedObstacles and not updatedObstacles
|
||||
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)
|
||||
walls = (lank.thang for lank in wallLanks)
|
||||
@world.calculateBounds()
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
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
|
||||
childMovieClips: null
|
||||
|
|
|
@ -210,7 +210,7 @@ me.activity = me.object {description: 'Stats on an activity'},
|
|||
last: me.date()
|
||||
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.'},
|
||||
inventory:
|
||||
|
|
|
@ -568,7 +568,7 @@ $gameControlMargin: 30px
|
|||
background-position: (-2 * $campaignWidth) 0
|
||||
&.mountain
|
||||
background-position: (-3 * $campaignWidth) 0
|
||||
&.ice
|
||||
&.glacier
|
||||
background-position: (-4 * $campaignWidth) 0
|
||||
&.volcano
|
||||
background-position: (-5 * $campaignWidth) 0
|
||||
|
|
|
@ -61,7 +61,7 @@ if campaign
|
|||
else
|
||||
.portal
|
||||
.portals
|
||||
for campaignSlug in ['dungeon', 'forest', 'desert', 'mountain', 'ice', 'volcano']
|
||||
for campaignSlug in ['dungeon', 'forest', 'desert', 'mountain', 'glacier', 'volcano']
|
||||
- var campaign = campaigns[campaignSlug];
|
||||
- var godmode = me.get('permissions', true).indexOf('godmode') != -1;
|
||||
div(class="campaign #{campaignSlug}" + (campaign ? "" : " silhouette") + (campaign && campaign.locked && !godmode ? " locked" : ""), data-campaign-slug=campaignSlug)
|
||||
|
|
|
@ -129,15 +129,8 @@ module.exports = class ClanDetailsView extends RootView
|
|||
campaignLevelProgression =
|
||||
ID: campaign.id
|
||||
slug: campaign.get('slug')
|
||||
name: campaign.get('name')
|
||||
name: campaign.get('fullName') or campaign.get('name')
|
||||
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')
|
||||
campaignLevelProgression.levels.push
|
||||
ID: levelID
|
||||
|
|
|
@ -128,7 +128,7 @@ module.exports = class SystemsTabView extends CocoView
|
|||
@levelSystemEditView = null
|
||||
|
||||
onTerrainChanged: (e) ->
|
||||
defaultPathfinding = e.terrain in ['Dungeon', 'Indoor', 'Mountain']
|
||||
defaultPathfinding = e.terrain in ['Dungeon', 'Indoor', 'Mountain', 'Glacier', 'Volcano']
|
||||
changed = false
|
||||
if AI = @systemsTreema.get 'original=528110f30268d018e3000001'
|
||||
unless AI.config?.findsPaths is defaultPathfinding
|
||||
|
|
|
@ -540,7 +540,7 @@ module.exports = class ThangTypeEditView extends RootView
|
|||
@lastKind = kind
|
||||
Backbone.Mediator.publish 'editor:thang-type-kind-changed', kind: kind
|
||||
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
|
||||
@treema.set '/tasks', (name: t for t in defaultTasks[kind])
|
||||
|
||||
|
|
|
@ -491,7 +491,7 @@ module.exports = class CampaignView extends RootView
|
|||
|
||||
onWindowResize: (e) =>
|
||||
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
|
||||
pageWidth = @$el.width()
|
||||
pageHeight = @$el.height()
|
||||
|
|
Loading…
Add table
Reference in a new issue