Set up thang avatar views with the new db portraits.
Before ![]() (image error) Size: 5.3 KiB |
Before ![]() (image error) Size: 5.3 KiB |
Before ![]() (image error) Size: 700 B |
Before ![]() (image error) Size: 5.3 KiB |
Before ![]() (image error) Size: 5.1 KiB |
Before ![]() (image error) Size: 4.6 KiB |
Before ![]() (image error) Size: 6.6 KiB |
Before ![]() (image error) Size: 5.4 KiB |
Before ![]() (image error) Size: 5.1 KiB |
Before ![]() (image error) Size: 6.2 KiB |
Before ![]() (image error) Size: 2.6 KiB |
Before ![]() (image error) Size: 5.6 KiB |
Before ![]() (image error) Size: 4.6 KiB |
Before ![]() (image error) Size: 1.7 KiB |
Before ![]() (image error) Size: 2.8 KiB |
Before ![]() (image error) Size: 4.9 KiB |
Before ![]() (image error) Size: 4.4 KiB |
Before ![]() (image error) Size: 551 B |
Before ![]() (image error) Size: 671 B |
Before ![]() (image error) Size: 5.7 KiB |
Before ![]() (image error) Size: 6.7 KiB |
Before ![]() (image error) Size: 5.7 KiB |
|
@ -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
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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) ->
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 {}
|
||||
|
|