diff --git a/app/assets/images/avatars/ally_small.png b/app/assets/images/avatars/ally_small.png deleted file mode 100644 index 6754b29a3..000000000 Binary files a/app/assets/images/avatars/ally_small.png and /dev/null differ diff --git a/app/assets/images/avatars/archer.png b/app/assets/images/avatars/archer.png deleted file mode 100644 index 3fff33935..000000000 Binary files a/app/assets/images/avatars/archer.png and /dev/null differ diff --git a/app/assets/images/avatars/arrow.png b/app/assets/images/avatars/arrow.png deleted file mode 100755 index f672a2bd2..000000000 Binary files a/app/assets/images/avatars/arrow.png and /dev/null differ diff --git a/app/assets/images/avatars/arrow_tower.png b/app/assets/images/avatars/arrow_tower.png deleted file mode 100644 index 3ecc78528..000000000 Binary files a/app/assets/images/avatars/arrow_tower.png and /dev/null differ diff --git a/app/assets/images/avatars/artillery.png b/app/assets/images/avatars/artillery.png deleted file mode 100644 index 6510dd80f..000000000 Binary files a/app/assets/images/avatars/artillery.png and /dev/null differ diff --git a/app/assets/images/avatars/beam.png b/app/assets/images/avatars/beam.png deleted file mode 100644 index 364e2e700..000000000 Binary files a/app/assets/images/avatars/beam.png and /dev/null differ diff --git a/app/assets/images/avatars/beam_tower.png b/app/assets/images/avatars/beam_tower.png deleted file mode 100644 index 3f2c3abf0..000000000 Binary files a/app/assets/images/avatars/beam_tower.png and /dev/null differ diff --git a/app/assets/images/avatars/captain_anya.png b/app/assets/images/avatars/captain_anya.png deleted file mode 100644 index dfa1425f3..000000000 Binary files a/app/assets/images/avatars/captain_anya.png and /dev/null differ diff --git a/app/assets/images/avatars/enemy_flying.png b/app/assets/images/avatars/enemy_flying.png deleted file mode 100644 index 951b4a44c..000000000 Binary files a/app/assets/images/avatars/enemy_flying.png and /dev/null differ diff --git a/app/assets/images/avatars/enemy_large.png b/app/assets/images/avatars/enemy_large.png deleted file mode 100644 index ac3d401ca..000000000 Binary files a/app/assets/images/avatars/enemy_large.png and /dev/null differ diff --git a/app/assets/images/avatars/enemy_medium.png b/app/assets/images/avatars/enemy_medium.png deleted file mode 100644 index 0b47f7723..000000000 Binary files a/app/assets/images/avatars/enemy_medium.png and /dev/null differ diff --git a/app/assets/images/avatars/enemy_small.png b/app/assets/images/avatars/enemy_small.png deleted file mode 100644 index 927ab3345..000000000 Binary files a/app/assets/images/avatars/enemy_small.png and /dev/null differ diff --git a/app/assets/images/avatars/mage.png b/app/assets/images/avatars/mage.png deleted file mode 100644 index 67c8000a5..000000000 Binary files a/app/assets/images/avatars/mage.png and /dev/null differ diff --git a/app/assets/images/avatars/mushroom.png b/app/assets/images/avatars/mushroom.png deleted file mode 100644 index 664581c61..000000000 Binary files a/app/assets/images/avatars/mushroom.png and /dev/null differ diff --git a/app/assets/images/avatars/peasant.png b/app/assets/images/avatars/peasant.png deleted file mode 100644 index 40dcb84d5..000000000 Binary files a/app/assets/images/avatars/peasant.png and /dev/null differ diff --git a/app/assets/images/avatars/potion.png b/app/assets/images/avatars/potion.png deleted file mode 100644 index d2c42e683..000000000 Binary files a/app/assets/images/avatars/potion.png and /dev/null differ diff --git a/app/assets/images/avatars/shell.png b/app/assets/images/avatars/shell.png deleted file mode 100644 index 292820568..000000000 Binary files a/app/assets/images/avatars/shell.png and /dev/null differ diff --git a/app/assets/images/avatars/spear.png b/app/assets/images/avatars/spear.png deleted file mode 100755 index 81a17bbe2..000000000 Binary files a/app/assets/images/avatars/spear.png and /dev/null differ diff --git a/app/assets/images/avatars/sword.png b/app/assets/images/avatars/sword.png deleted file mode 100644 index 993acfe7d..000000000 Binary files a/app/assets/images/avatars/sword.png and /dev/null differ diff --git a/app/assets/images/avatars/tharin.png b/app/assets/images/avatars/tharin.png deleted file mode 100644 index 8d3590d4a..000000000 Binary files a/app/assets/images/avatars/tharin.png and /dev/null differ diff --git a/app/assets/images/avatars/thoktar.png b/app/assets/images/avatars/thoktar.png deleted file mode 100644 index ab312f361..000000000 Binary files a/app/assets/images/avatars/thoktar.png and /dev/null differ diff --git a/app/assets/images/avatars/thrower.png b/app/assets/images/avatars/thrower.png deleted file mode 100644 index f086fef5a..000000000 Binary files a/app/assets/images/avatars/thrower.png and /dev/null differ diff --git a/app/lib/surface/SpriteBoss.coffee b/app/lib/surface/SpriteBoss.coffee index e8c75c907..14718d136 100644 --- a/app/lib/surface/SpriteBoss.coffee +++ b/app/lib/surface/SpriteBoss.coffee @@ -243,11 +243,10 @@ module.exports = class SpriteBoss extends CocoClass if alive and not @suppressSelectionSounds instance = sprite.playSound 'selected' - if instance.playState is 'playSucceeded' + if instance?.playState is 'playSucceeded' Backbone.Mediator.publish 'thang-began-talking', thang: sprite?.thang instance.addEventListener 'complete', -> Backbone.Mediator.publish 'thang-finished-talking', thang: sprite?.thang - console.log 'select...', instance.playState # Marks diff --git a/app/lib/surface/sprite_utils.coffee b/app/lib/surface/sprite_utils.coffee index c5a80db79..6d106e0aa 100644 --- a/app/lib/surface/sprite_utils.coffee +++ b/app/lib/surface/sprite_utils.coffee @@ -14,27 +14,3 @@ module.exports.createProgressBar = createProgressBar = (color, y, width=PROG_BAR s.width = width s.height = height return s - -module.exports.createAvatar = createAvatar = (spriteName, $image) -> - url = createAvatarURL spriteName - $image ?= $('<img>') - $image.attr('src', url) - $image - -module.exports.createAvatarURL = createAvatarURL = (spriteName) -> - # We destroyed old version of this; this is temp anyway - spriteName = _.string.slugify(spriteName).replace /-/g, '_' - spriteName = { - "anya": "captain_anya" - "soldier": "ally_small" - "ogre_munchkin": "enemy_small" - "ogre": "enemy_medium" - "ogre_brawler": "enemy_large" - "ogre_fangrider": "enemy_flying" - "ogre_shaman": "mage" - "ogre_thrower": "thrower" - "health_potion_small": "potion" - "health_potion_medium": "potion" - "health_potion_large": "potion" - }[spriteName] ? spriteName - "/images/avatars/#{spriteName}.png" diff --git a/app/views/play/level/hud_view.coffee b/app/views/play/level/hud_view.coffee index 0fb17f10d..e41e4ab22 100644 --- a/app/views/play/level/hud_view.coffee +++ b/app/views/play/level/hud_view.coffee @@ -3,7 +3,6 @@ template = require 'templates/play/level/hud' prop_template = require 'templates/play/level/hud_prop' action_template = require 'templates/play/level/hud_action' DialogueAnimator = require './dialogue_animator' -spriteUtils = require 'lib/surface/sprite_utils' module.exports = class HUDView extends View id: 'thang-hud' diff --git a/app/views/play/level/thang_avatar_view.coffee b/app/views/play/level/thang_avatar_view.coffee index dd6b13a37..a03d4a63c 100644 --- a/app/views/play/level/thang_avatar_view.coffee +++ b/app/views/play/level/thang_avatar_view.coffee @@ -1,6 +1,6 @@ View = require 'views/kinds/CocoView' template = require 'templates/play/level/thang_avatar' -{createAvatarURL} = require 'lib/surface/sprite_utils' +ThangType = require 'models/ThangType' module.exports = class ThangAvatarView extends View className: 'thang-avatar-view' @@ -17,7 +17,10 @@ module.exports = class ThangAvatarView extends View getRenderData: (context={}) => context = super context context.thang = @thang - context.avatarURL = createAvatarURL @thang.spriteName + thangs = @supermodel.getModels(ThangType) + thangs = (t for t in thangs when t.get('name') is @thang.spriteName) + thang = thangs[0] + context.avatarURL = thang.getPortraitSource() context.includeName = @includeName context diff --git a/app/views/play/level/tome/spell.coffee b/app/views/play/level/tome/spell.coffee index 93f1c36bc..0c256d751 100644 --- a/app/views/play/level/tome/spell.coffee +++ b/app/views/play/level/tome/spell.coffee @@ -7,7 +7,7 @@ module.exports = class Spell view: null entryView: null - constructor: (programmableMethod, @spellKey, @pathComponents, @session) -> + constructor: (programmableMethod, @spellKey, @pathComponents, @session, @supermodel) -> p = programmableMethod @name = p.name @source = @session.getSourceFor(@spellKey) ? p.source @@ -17,7 +17,8 @@ module.exports = class Spell @thangs = {} @view = new SpellView {spell: @, session: @session} @view.render() # Get it ready and code loaded in advance - @tabView = new SpellListTabEntryView spell: @ + console.log 'spell creates tab entry view', @supermodel + @tabView = new SpellListTabEntryView spell: @, supermodel: @supermodel @tabView.render() addThang: (thang) -> diff --git a/app/views/play/level/tome/spell_list_entry_thangs_view.coffee b/app/views/play/level/tome/spell_list_entry_thangs_view.coffee index 6403b05e5..74e20aa5b 100644 --- a/app/views/play/level/tome/spell_list_entry_thangs_view.coffee +++ b/app/views/play/level/tome/spell_list_entry_thangs_view.coffee @@ -23,7 +23,7 @@ module.exports = class SpellListEntryThangsView extends View @avatars = [] spellName = @spell.name for thang in @thangs - avatar = new ThangAvatarView thang: thang, includeName: true + avatar = new ThangAvatarView thang: thang, includeName: true, supermodel: @supermodel @$el.append avatar.el avatar.render() avatar.setSelected thang is @thang diff --git a/app/views/play/level/tome/spell_list_entry_view.coffee b/app/views/play/level/tome/spell_list_entry_view.coffee index 9499e967b..944326103 100644 --- a/app/views/play/level/tome/spell_list_entry_view.coffee +++ b/app/views/play/level/tome/spell_list_entry_view.coffee @@ -45,7 +45,7 @@ module.exports = class SpellListEntryView extends View super() return unless @options.showTopDivider # Don't repeat Thang avatars when not changed from previous entry return unless spellThang = @getPrimarySpellThang() - @avatar = new ThangAvatarView thang: spellThang.thang, includeName: false + @avatar = new ThangAvatarView thang: spellThang.thang, includeName: false, supermodel: @supermodel @$el.prepend @avatar.el # Before rendering, so render can use parent for popover @avatar.render() @avatar.setSharedThangs _.size @spell.thangs @@ -69,7 +69,7 @@ module.exports = class SpellListEntryView extends View showThangs: => clearTimeout @hideThangsTimeout if @hideThangsTimeout return if @thangsView - @thangsView = new SpellListEntryThangsView thangs: (spellThang.thang for thangID, spellThang of @spell.thangs), thang: @getPrimarySpellThang().thang, spell: @spell + @thangsView = new SpellListEntryThangsView thangs: (spellThang.thang for thangID, spellThang of @spell.thangs), thang: @getPrimarySpellThang().thang, spell: @spell, supermodel: @supermodel @thangsView.render() @$el.append @thangsView.el @thangsView.$el.mouseenter (e) => @onMouseEnterAvatar() diff --git a/app/views/play/level/tome/spell_list_tab_entry_view.coffee b/app/views/play/level/tome/spell_list_tab_entry_view.coffee index 2d4285ea7..9c4092646 100644 --- a/app/views/play/level/tome/spell_list_tab_entry_view.coffee +++ b/app/views/play/level/tome/spell_list_tab_entry_view.coffee @@ -1,7 +1,6 @@ SpellListEntryView = require './spell_list_entry_view' ThangAvatarView = require 'views/play/level/thang_avatar_view' template = require 'templates/play/level/tome/spell_list_tab_entry' -{createAvatarURL} = require 'lib/surface/sprite_utils' Docs = require 'lib/world/docs' module.exports = class SpellListTabEntryView extends SpellListEntryView @@ -35,7 +34,7 @@ module.exports = class SpellListTabEntryView extends SpellListEntryView @buildDocs() unless @docsBuilt buildAvatar: -> - avatar = new ThangAvatarView thang: @thang, includeName: false + avatar = new ThangAvatarView thang: @thang, includeName: false, supermodel: @supermodel if @avatar @avatar.$el.replaceWith avatar.$el @avatar.destroy() diff --git a/app/views/play/level/tome/spell_list_view.coffee b/app/views/play/level/tome/spell_list_view.coffee index 38de566d8..bf09b1ca1 100644 --- a/app/views/play/level/tome/spell_list_view.coffee +++ b/app/views/play/level/tome/spell_list_view.coffee @@ -59,7 +59,7 @@ module.exports = class SpellListView extends View theseThangs = _.keys(spell.thangs) changedThangs = not lastThangs or not _.isEqual theseThangs, lastThangs lastThangs = theseThangs - @entries.push entry = new SpellListEntryView spell: spell, showTopDivider: changedThangs + @entries.push entry = new SpellListEntryView spell: spell, showTopDivider: changedThangs, supermodel: @supermodel for entry in @entries @$el.append entry.el entry.render() # Render after appending so that we can access parent container for popover diff --git a/app/views/play/level/tome/thang_list_entry_view.coffee b/app/views/play/level/tome/thang_list_entry_view.coffee index beb9ebb0d..44b7ca915 100644 --- a/app/views/play/level/tome/thang_list_entry_view.coffee +++ b/app/views/play/level/tome/thang_list_entry_view.coffee @@ -42,7 +42,7 @@ module.exports = class ThangListEntryView extends View afterRender: -> super() - @avatar = new ThangAvatarView thang: @thang, includeName: true + @avatar = new ThangAvatarView thang: @thang, includeName: true, supermodel: @supermodel @$el.append @avatar.el # Before rendering, so render can use parent for popover @avatar.render() @avatar.setSharedThangs @spells.length # A bit weird to call it sharedThangs; could refactor if we like this diff --git a/app/views/play/level/tome/thang_list_view.coffee b/app/views/play/level/tome/thang_list_view.coffee index d7a847628..76f8892e7 100644 --- a/app/views/play/level/tome/thang_list_view.coffee +++ b/app/views/play/level/tome/thang_list_view.coffee @@ -62,7 +62,7 @@ module.exports = class ThangListView extends View section = @$el.find(section).toggle thangs.length > 0 for thang in thangs spells = _.filter @spells, (s) -> thang.id of s.thangs - entry = new ThangListEntryView thang: thang, spells: spells, permission: permission + entry = new ThangListEntryView thang: thang, spells: spells, permission: permission, supermodel: @supermodel section.find('.thang-list').append entry.el # Render after appending so that we can access parent container for popover entry.render() @entries.push entry diff --git a/app/views/play/level/tome/tome_view.coffee b/app/views/play/level/tome/tome_view.coffee index 34ef4608a..e4cacc120 100644 --- a/app/views/play/level/tome/tome_view.coffee +++ b/app/views/play/level/tome/tome_view.coffee @@ -52,15 +52,12 @@ module.exports = class TomeView extends View 'click #spell-view': 'onSpellViewClick' 'click': -> Backbone.Mediator.publish 'focus-editor' - constructor: (options) -> - super options - afterRender: -> super() programmableThangs = _.filter @options.thangs, 'isProgrammable' @createSpells programmableThangs # Do before spellList, thangList, and castButton - @spellList = @insertSubView new SpellListView spells: @spells - @thangList = @insertSubView new ThangListView spells: @spells, thangs: @options.thangs + @spellList = @insertSubView new SpellListView spells: @spells, supermodel: @supermodel + @thangList = @insertSubView new ThangListView spells: @spells, thangs: @options.thangs, supermodel: @supermodel @castButton = @insertSubView new CastButtonView spells: @spells createSpells: (programmableThangs) -> @@ -80,7 +77,7 @@ module.exports = class TomeView extends View spellKey = pathComponents.join '/' @thangSpells[thang.id].push spellKey unless method.cloneOf - spell = @spells[spellKey] = new Spell method, spellKey, pathPrefixComponents.concat(pathComponents), @options.session + spell = @spells[spellKey] = new Spell method, spellKey, pathPrefixComponents.concat(pathComponents), @options.session, @supermodel for thangID, spellKeys of @thangSpells thang = world.getThangByID(thangID) @spells[spellKey].addThang thang for spellKey in spellKeys diff --git a/app/views/play/level_view.coffee b/app/views/play/level_view.coffee index 41369f8a9..336d91deb 100644 --- a/app/views/play/level_view.coffee +++ b/app/views/play/level_view.coffee @@ -128,7 +128,7 @@ module.exports = class PlayLevelView extends View ctx.fillText("Loaded #{@modelsLoaded} thingies",50,50) insertSubviews: -> - @insertSubView @tome = new TomeView levelID: @levelID, session: @session, thangs: @world.thangs + @insertSubView @tome = new TomeView levelID: @levelID, session: @session, thangs: @world.thangs, supermodel: @supermodel @insertSubView new PlaybackView {} @insertSubView new GoalsView {} @insertSubView new HUDView {}