mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-29 02:25:37 -05:00
Merge branch 'master' into production
This commit is contained in:
commit
d6b9551aca
4 changed files with 41 additions and 14 deletions
|
@ -128,17 +128,26 @@ module.exports = class SystemsTabView extends CocoView
|
||||||
|
|
||||||
onTerrainChanged: (e) ->
|
onTerrainChanged: (e) ->
|
||||||
defaultPathfinding = e.terrain in ['Dungeon', 'Indoor']
|
defaultPathfinding = e.terrain in ['Dungeon', 'Indoor']
|
||||||
return unless AI = @systemsTreema.get 'original=528110f30268d018e3000001'
|
changed = false
|
||||||
return if AI.config?.findsPaths is defaultPathfinding
|
if AI = @systemsTreema.get 'original=528110f30268d018e3000001'
|
||||||
AI.config ?= {}
|
unless AI.config?.findsPaths is defaultPathfinding
|
||||||
AI.config.findsPaths = defaultPathfinding
|
AI.config ?= {}
|
||||||
@systemsTreema.set 'original=528110f30268d018e3000001', AI
|
AI.config.findsPaths = defaultPathfinding
|
||||||
noty {
|
@systemsTreema.set 'original=528110f30268d018e3000001', AI
|
||||||
text: "AI System defaulted pathfinding to #{defaultPathfinding} for terrain #{e.terrain}."
|
changed = true
|
||||||
layout: 'topCenter'
|
if Vision = @systemsTreema.get 'original=528115040268d018e300001b'
|
||||||
timeout: 5000
|
unless Vision.config?.checksLineOfSight is defaultPathfinding
|
||||||
type: 'information'
|
Vision.config ?= {}
|
||||||
}
|
Vision.config.checksLineOfSight = defaultPathfinding
|
||||||
|
@systemsTreema.set 'original=528115040268d018e300001b', Vision
|
||||||
|
changed = true
|
||||||
|
if changed
|
||||||
|
noty {
|
||||||
|
text: "AI/Vision System defaulted pathfinding/line-of-sight to #{defaultPathfinding} for terrain #{e.terrain}."
|
||||||
|
layout: 'topCenter'
|
||||||
|
timeout: 5000
|
||||||
|
type: 'information'
|
||||||
|
}
|
||||||
|
|
||||||
buildDefaultSystems: ->
|
buildDefaultSystems: ->
|
||||||
[
|
[
|
||||||
|
|
|
@ -72,7 +72,7 @@ module.exports = class InventoryModal extends ModalView
|
||||||
@itemGroups.availableItems = new Backbone.Collection()
|
@itemGroups.availableItems = new Backbone.Collection()
|
||||||
@itemGroups.restrictedItems = new Backbone.Collection()
|
@itemGroups.restrictedItems = new Backbone.Collection()
|
||||||
@itemGroups.lockedItems = new Backbone.Collection()
|
@itemGroups.lockedItems = new Backbone.Collection()
|
||||||
itemGroup.comparator = ((m) -> m.get('gems') ? m.get('tier')) for itemGroup in _.values @itemGroups
|
itemGroup.comparator = ((m) -> m.get('tier') ? m.get('gems')) for itemGroup in _.values @itemGroups
|
||||||
|
|
||||||
equipped = _.values(@equipment)
|
equipped = _.values(@equipment)
|
||||||
@sortItem(item, equipped) for item in @items.models
|
@sortItem(item, equipped) for item in @items.models
|
||||||
|
|
|
@ -621,7 +621,7 @@ forest = [
|
||||||
name: 'Endangered Burl'
|
name: 'Endangered Burl'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
id: 'endangered-burl'
|
id: 'endangered-burl'
|
||||||
original: ''
|
original: '546e97033f1c1c1be898402b'
|
||||||
description: 'Hunt ogres in the woods, but watch out for lumbering beasts.'
|
description: 'Hunt ogres in the woods, but watch out for lumbering beasts.'
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'village-guard'
|
continue: 'village-guard'
|
||||||
|
@ -665,6 +665,7 @@ forest = [
|
||||||
name: 'Ogre Encampment'
|
name: 'Ogre Encampment'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
id: 'ogre-encampment'
|
id: 'ogre-encampment'
|
||||||
|
original: '5456b3c8d5ada30000525605'
|
||||||
description: 'Recover stolen treasure from an ogre encampment.'
|
description: 'Recover stolen treasure from an ogre encampment.'
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'woodland-cleaver'
|
continue: 'woodland-cleaver'
|
||||||
|
@ -675,6 +676,7 @@ forest = [
|
||||||
name: 'Woodland Cleaver'
|
name: 'Woodland Cleaver'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
id: 'woodland-cleaver'
|
id: 'woodland-cleaver'
|
||||||
|
original: '5456bb8dd5ada30000525613'
|
||||||
description: 'Use your new cleave ability to fend off munchkins.'
|
description: 'Use your new cleave ability to fend off munchkins.'
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'shield-rush'
|
continue: 'shield-rush'
|
||||||
|
@ -685,6 +687,7 @@ forest = [
|
||||||
name: 'Shield Rush'
|
name: 'Shield Rush'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
id: 'shield-rush'
|
id: 'shield-rush'
|
||||||
|
original: '5459570bb4461871053292f5'
|
||||||
description: 'Combine cleave and shield to endure an ogre onslaught.'
|
description: 'Combine cleave and shield to endure an ogre onslaught.'
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'peasant-protection'
|
continue: 'peasant-protection'
|
||||||
|
@ -697,6 +700,7 @@ forest = [
|
||||||
name: 'Peasant Protection'
|
name: 'Peasant Protection'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
id: 'peasant-protection'
|
id: 'peasant-protection'
|
||||||
|
original: '545ec477e7f60fd6c55760e9'
|
||||||
description: 'Stay close to Victor.'
|
description: 'Stay close to Victor.'
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'munchkin-swarm'
|
continue: 'munchkin-swarm'
|
||||||
|
@ -707,6 +711,7 @@ forest = [
|
||||||
name: 'Munchkin Swarm'
|
name: 'Munchkin Swarm'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
id: 'munchkin-swarm'
|
id: 'munchkin-swarm'
|
||||||
|
original: '545edba9e7f60fd6c5576133'
|
||||||
description: 'Loot a gigantic chest while surrounded by a swarm of ogre munchkins.'
|
description: 'Loot a gigantic chest while surrounded by a swarm of ogre munchkins.'
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'coinucopia'
|
continue: 'coinucopia'
|
||||||
|
@ -719,6 +724,7 @@ forest = [
|
||||||
name: 'Munchkin Harvest'
|
name: 'Munchkin Harvest'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
id: 'munchkin-harvest'
|
id: 'munchkin-harvest'
|
||||||
|
original: '5470001860f6cc376131525d'
|
||||||
description: 'Join forces with a new hero: Amara Arrowhead.'
|
description: 'Join forces with a new hero: Amara Arrowhead.'
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'swift-dagger'
|
continue: 'swift-dagger'
|
||||||
|
@ -730,6 +736,7 @@ forest = [
|
||||||
name: 'Swift Dagger'
|
name: 'Swift Dagger'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
id: 'swift-dagger'
|
id: 'swift-dagger'
|
||||||
|
original: '54701f7860f6cc37613152a1'
|
||||||
description: 'Deal damage from a distance with your new hero.'
|
description: 'Deal damage from a distance with your new hero.'
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'shrapnel'
|
continue: 'shrapnel'
|
||||||
|
@ -741,6 +748,7 @@ forest = [
|
||||||
name: 'Shrapnel'
|
name: 'Shrapnel'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
id: 'shrapnel'
|
id: 'shrapnel'
|
||||||
|
original: '5470291c60f6cc37613152d1'
|
||||||
description: 'Explore the explosive arts.'
|
description: 'Explore the explosive arts.'
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'coinucopia'
|
continue: 'coinucopia'
|
||||||
|
@ -754,6 +762,7 @@ forest = [
|
||||||
name: 'Arcane Ally'
|
name: 'Arcane Ally'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
id: 'arcane-ally'
|
id: 'arcane-ally'
|
||||||
|
original: '5470b98ceb739dbc9d2402c7'
|
||||||
description: 'Stand your ground against large ogres with a new hero: Ms. Hushbaum.'
|
description: 'Stand your ground against large ogres with a new hero: Ms. Hushbaum.'
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'touch-of-death'
|
continue: 'touch-of-death'
|
||||||
|
@ -765,6 +774,7 @@ forest = [
|
||||||
name: 'Touch of Death'
|
name: 'Touch of Death'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
id: 'touch-of-death'
|
id: 'touch-of-death'
|
||||||
|
original: '5470ca33eb739dbc9d2402ee'
|
||||||
description: 'Learn your first spell to siphon life from your foes.'
|
description: 'Learn your first spell to siphon life from your foes.'
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'bonemender'
|
continue: 'bonemender'
|
||||||
|
@ -776,6 +786,7 @@ forest = [
|
||||||
name: 'Bonemender'
|
name: 'Bonemender'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
id: 'bonemender'
|
id: 'bonemender'
|
||||||
|
original: '5470d013eb739dbc9d240323'
|
||||||
description: 'Cast regeneration on allied soldiers to withstand a siege.'
|
description: 'Cast regeneration on allied soldiers to withstand a siege.'
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'coinucopia'
|
continue: 'coinucopia'
|
||||||
|
@ -788,6 +799,7 @@ forest = [
|
||||||
name: 'Coinucopia'
|
name: 'Coinucopia'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
id: 'coinucopia'
|
id: 'coinucopia'
|
||||||
|
original: '545bb1181e649a4495f887df'
|
||||||
description: 'Start playing in real-time with input flags as you collect gold coins!'
|
description: 'Start playing in real-time with input flags as you collect gold coins!'
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'copper-meadows'
|
continue: 'copper-meadows'
|
||||||
|
@ -798,6 +810,7 @@ forest = [
|
||||||
name: 'Copper Meadows'
|
name: 'Copper Meadows'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
id: 'copper-meadows'
|
id: 'copper-meadows'
|
||||||
|
original: '5462491c688f333d05d8af38'
|
||||||
description: 'This level exercises: if/else, object members, variables, flag placement, and collection.'
|
description: 'This level exercises: if/else, object members, variables, flag placement, and collection.'
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'drop-the-flag'
|
continue: 'drop-the-flag'
|
||||||
|
@ -808,6 +821,7 @@ forest = [
|
||||||
name: 'Drop the Flag'
|
name: 'Drop the Flag'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
id: 'drop-the-flag'
|
id: 'drop-the-flag'
|
||||||
|
original: '54626472f3c64b7b0598590c'
|
||||||
description: 'This level exercises: flag position, object members.'
|
description: 'This level exercises: flag position, object members.'
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'deadly-pursuit'
|
continue: 'deadly-pursuit'
|
||||||
|
@ -818,6 +832,7 @@ forest = [
|
||||||
name: 'Deadly Pursuit'
|
name: 'Deadly Pursuit'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
id: 'deadly-pursuit'
|
id: 'deadly-pursuit'
|
||||||
|
original: '54626f270cacde3f055434ac'
|
||||||
description: 'This level exercises: if/else, flag placement and timing, item collection.'
|
description: 'This level exercises: if/else, flag placement and timing, item collection.'
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'rich-forager'
|
continue: 'rich-forager'
|
||||||
|
@ -828,6 +843,7 @@ forest = [
|
||||||
name: 'Rich Forager'
|
name: 'Rich Forager'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
id: 'rich-forager'
|
id: 'rich-forager'
|
||||||
|
original: '546283ddfdd66af405fa8209'
|
||||||
description: 'This level exercises: if/else if, collection, combat.'
|
description: 'This level exercises: if/else if, collection, combat.'
|
||||||
nextLevels:
|
nextLevels:
|
||||||
continue: 'multiplayer-treasure-grove'
|
continue: 'multiplayer-treasure-grove'
|
||||||
|
@ -838,6 +854,7 @@ forest = [
|
||||||
name: 'Siege of Stonehold'
|
name: 'Siege of Stonehold'
|
||||||
type: 'hero'
|
type: 'hero'
|
||||||
id: 'siege-of-stonehold'
|
id: 'siege-of-stonehold'
|
||||||
|
original: '54712072eb739dbc9d24034b'
|
||||||
description: 'Unlock the desert world, if you are strong enough to win this epic battle!'
|
description: 'Unlock the desert world, if you are strong enough to win this epic battle!'
|
||||||
#nextLevels:
|
#nextLevels:
|
||||||
# continue: ''
|
# continue: ''
|
||||||
|
@ -849,6 +866,7 @@ forest = [
|
||||||
name: 'Multiplayer Treasure Grove'
|
name: 'Multiplayer Treasure Grove'
|
||||||
type: 'hero-ladder'
|
type: 'hero-ladder'
|
||||||
id: 'multiplayer-treasure-grove'
|
id: 'multiplayer-treasure-grove'
|
||||||
|
original: '5469643c37600b40e0e09c5b'
|
||||||
description: 'Mix collection, flags, and combat in this multiplayer coin-gathering arena.'
|
description: 'Mix collection, flags, and combat in this multiplayer coin-gathering arena.'
|
||||||
x: 67.54
|
x: 67.54
|
||||||
y: 25.94
|
y: 25.94
|
||||||
|
|
|
@ -87,7 +87,7 @@ module.exports = class PlayItemsModal extends ModalView
|
||||||
category = slotToCategory[model.getAllowedSlots()[0]] or 'misc'
|
category = slotToCategory[model.getAllowedSlots()[0]] or 'misc'
|
||||||
@itemCategoryCollections[category] ?= new Backbone.Collection()
|
@itemCategoryCollections[category] ?= new Backbone.Collection()
|
||||||
collection = @itemCategoryCollections[category]
|
collection = @itemCategoryCollections[category]
|
||||||
collection.comparator = (m) -> m.get('gems') ? m.get('tier')
|
collection.comparator = (m) -> m.get('tier') ? m.get('gems')
|
||||||
collection.add(model)
|
collection.add(model)
|
||||||
model.name = utils.i18n model.attributes, 'name'
|
model.name = utils.i18n model.attributes, 'name'
|
||||||
model.affordable = cost <= gemsOwned
|
model.affordable = cost <= gemsOwned
|
||||||
|
|
Loading…
Reference in a new issue