mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-26 00:58:00 -05:00
Merge branch 'master' into production
This commit is contained in:
commit
cf3aebc1d8
33 changed files with 156 additions and 42 deletions
BIN
app/assets/images/pages/play/play-spritesheet.png
Normal file
BIN
app/assets/images/pages/play/play-spritesheet.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
|
@ -77,6 +77,13 @@ initializeUtilityServices = ->
|
|||
require('core/services/segmentio')()
|
||||
|
||||
setupConsoleLogging = ->
|
||||
# IE9 doesn't expose console object unless debugger tools are loaded
|
||||
unless console?
|
||||
window.console =
|
||||
info: ->
|
||||
log: ->
|
||||
error: ->
|
||||
debug: ->
|
||||
unless console.debug
|
||||
# Needed for IE10 and earlier
|
||||
console.debug = console.log
|
||||
|
|
|
@ -19,6 +19,13 @@ class CocoModel extends Backbone.Model
|
|||
@on 'error', @onError, @
|
||||
@on 'add', @onLoaded, @
|
||||
@saveBackup = _.debounce(@saveBackup, 500)
|
||||
# IE9 doesn't expose console object unless debugger tools are loaded
|
||||
unless console?
|
||||
window.console =
|
||||
info: ->
|
||||
log: ->
|
||||
error: ->
|
||||
debug: ->
|
||||
console.debug = console.log unless console.debug # Needed for IE10 and earlier
|
||||
|
||||
setProjection: (project) ->
|
||||
|
|
|
@ -95,7 +95,7 @@ $user-achievements-scale: 0.8
|
|||
padding: $overall-scale * 24px $overall-scale * 30px $overall-scale * 20px $overall-scale * 60px
|
||||
|
||||
.achievement-title
|
||||
font-family: Open Sans Condensed
|
||||
font-family: $headings-font-family
|
||||
font-variant: small-caps
|
||||
font-size: $overall-scale * 28px
|
||||
padding-left: $overall-scale * -50px
|
||||
|
|
|
@ -75,7 +75,7 @@ $font-size-h6: ceil($font-size-base * 0.85) !default; // ~12px
|
|||
$line-height-base: 1.428571429 !default; // 20/14
|
||||
$line-height-computed: floor($font-size-base * $line-height-base) !default; // ~20px
|
||||
|
||||
$headings-font-family: 'Open Sans Condensed', cursive; // empty to use BS default, $baseFontFamily;
|
||||
$headings-font-family: 'Open Sans Condensed', "Helvetica Neue", Helvetica, Arial, sans-serif; // empty to use BS default, $baseFontFamily;
|
||||
$headings-font-weight: 700 !default;
|
||||
$headings-line-height: 1.1 !default;
|
||||
$headings-color: #317EAC;
|
||||
|
|
|
@ -140,12 +140,12 @@ table.table
|
|||
|
||||
body[lang='ja']
|
||||
h1, h2, h3, h4, h5, h6
|
||||
font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", 'Open Sans Condensed', sans-serif
|
||||
font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", 'Open Sans Condensed', 'Helvetica Neue', Helvetica, Arial, sans-serif
|
||||
font-variant: small-caps
|
||||
letter-spacing: -1px !important
|
||||
|
||||
.header-font
|
||||
font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", 'Open Sans Condensed', sans-serif
|
||||
font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", 'Open Sans Condensed', 'Helvetica Neue', Helvetica, Arial, sans-serif
|
||||
font-variant: small-caps
|
||||
letter-spacing: -1px !important
|
||||
|
||||
|
@ -216,6 +216,10 @@ kbd
|
|||
width: 25px
|
||||
height: 25px
|
||||
|
||||
&.gem-30
|
||||
width: 30px
|
||||
height: 30px
|
||||
|
||||
&.gem-40
|
||||
width: 40px
|
||||
height: 40px
|
||||
|
@ -225,6 +229,7 @@ kbd
|
|||
height: 60px
|
||||
|
||||
.popover
|
||||
border-style: solid
|
||||
border-image: url(/images/level/popover_background.png) 29 39 fill stretch
|
||||
border-width: 15px 20px
|
||||
.arrow
|
||||
|
@ -238,16 +243,19 @@ kbd
|
|||
border: 0
|
||||
border-radius: 0
|
||||
@include box-shadow(none)
|
||||
border-style: solid
|
||||
border-image: url(/images/common/button-background-active-border.png) 14 20 20 20 fill round
|
||||
border-width: 7px 10px 10px 10px
|
||||
padding: 0
|
||||
font-family: Open Sans Condensed
|
||||
font-family: $headings-font-family
|
||||
text-transform: uppercase
|
||||
font-weight: bold
|
||||
color: rgb(248, 197, 146)
|
||||
|
||||
&.btn-lg
|
||||
border-width: 14px 20px 20px 20px
|
||||
height: 60px
|
||||
line-height: 34px
|
||||
|
||||
&.btn-primary
|
||||
border-image-source: url(/images/common/button-background-primary-active-border.png)
|
||||
|
|
|
@ -68,7 +68,7 @@
|
|||
& > a, button, select
|
||||
font-size: 18px
|
||||
text-transform: uppercase
|
||||
font-family: Open Sans Condensed
|
||||
font-family: $headings-font-family
|
||||
margin: 0 7px
|
||||
|
||||
button, select
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
@import "app/styles/bootstrap/variables"
|
||||
@import "app/styles/mixins"
|
||||
|
||||
#game-menu-modal
|
||||
|
@ -67,7 +68,7 @@
|
|||
color: rgb(195,153,124)
|
||||
font-weight: bold
|
||||
padding: 14px 20px
|
||||
font-family: Open Sans Condensed
|
||||
font-family: $headings-font-family
|
||||
text-transform: uppercase
|
||||
|
||||
.glyphicon
|
||||
|
|
|
@ -92,7 +92,7 @@
|
|||
label
|
||||
font-size: 20px
|
||||
text-transform: uppercase
|
||||
font-family: 'Open Sans Condensed'
|
||||
font-family: $headings-font-family
|
||||
margin-bottom: 0
|
||||
|
||||
//- Check boxes
|
||||
|
@ -146,6 +146,7 @@
|
|||
height: 70px
|
||||
font-size: 32px
|
||||
line-height: 42px
|
||||
border-style: solid
|
||||
border-image: url(/images/level/code_toolbar_submit_button_active.png) 14 20 20 20 fill round
|
||||
border-width: 14px 20px 20px 20px
|
||||
color: white
|
||||
|
@ -235,7 +236,7 @@
|
|||
width: 200px
|
||||
color: rgb(254,188,68)
|
||||
font-size: 20px
|
||||
font-family: 'Open Sans Condensed'
|
||||
font-family: $headings-font-family
|
||||
font-weight: bold
|
||||
text-transform: uppercase
|
||||
text-shadow: black 1px 1px 0, black -1px -1px 0, black 1px -1px 0, black -1px 1px 0, black 1px 0px 0, black 0px -1px 0, black -1px 0px 0, black 0px 1px 0
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
.overlay-text
|
||||
color: $yellow
|
||||
font-family: Open Sans Condensed
|
||||
font-family: $headings-font-family
|
||||
font-variant: small-caps
|
||||
@include transition(color .10s linear)
|
||||
|
||||
|
|
|
@ -187,7 +187,7 @@ $level-resize-transition-time: 0.5s
|
|||
|
||||
#play-footer
|
||||
text-align: center
|
||||
font-family: "Open Sans Condensed"
|
||||
font-family: $headings-font-family
|
||||
font-variant: small-caps
|
||||
font-size: 25px
|
||||
padding: 10px 0
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
position: absolute
|
||||
z-index: 6
|
||||
text-transform: uppercase
|
||||
font-family: Open Sans Condensed
|
||||
font-family: $headings-font-family
|
||||
font-weight: bold
|
||||
|
||||
&.controls-disabled
|
||||
|
@ -100,6 +100,7 @@
|
|||
height: 60px
|
||||
margin: 0 auto
|
||||
padding: 8px
|
||||
border-style: solid
|
||||
border-image: url(/images/level/control_bar_level_name_background.png) 30 fill round
|
||||
border-width: 0 15px 15px 15px
|
||||
text-align: center
|
||||
|
@ -128,6 +129,7 @@
|
|||
height: 60px
|
||||
margin: 0 auto
|
||||
padding: 8px
|
||||
border-style: solid
|
||||
border-image: url(/images/level/control_bar_level_name_background.png) 30 fill round
|
||||
border-width: 0 15px 15px 15px
|
||||
text-align: center
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
left: -15px
|
||||
top: -100px
|
||||
@include transition(0.5s ease-in-out)
|
||||
border-style: solid
|
||||
border-image: url(/images/level/goals_background.png) 15 20 51 15 fill stretch
|
||||
border-width: 8px 10px 25px 8px
|
||||
margin: -8px -10px -25px -8px
|
||||
|
|
|
@ -98,7 +98,7 @@
|
|||
background-image: url(/images/level/hud_background.png)
|
||||
color: white
|
||||
text-transform: uppercase
|
||||
font-family: Open Sans Condensed
|
||||
font-family: $headings-font-family
|
||||
font-weight: bold
|
||||
font-size: 16px
|
||||
z-index: 4
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
width: 750px
|
||||
background: transparent
|
||||
border: 0px solid transparent
|
||||
border-style: solid
|
||||
border-image: url("/images/pages/play/level/modal/victory_modal_border_background.png") 250 0 100 0 fill round
|
||||
border-width: 250px 0 100px 0
|
||||
border-radius: 12px
|
||||
|
@ -114,7 +115,7 @@
|
|||
color: $hero-yellow-text
|
||||
font-weight: bold
|
||||
text-transform: uppercase
|
||||
font-family: 'Open Sans Condensed'
|
||||
font-family: $headings-font-family
|
||||
white-space: nowrap
|
||||
overflow: hidden
|
||||
text-overflow: ellipsis
|
||||
|
@ -258,7 +259,7 @@
|
|||
color: rgb(103, 92, 76)
|
||||
text-transform: uppercase
|
||||
font-weight: bold
|
||||
font-family: 'Open Sans Condensed'
|
||||
font-family: $headings-font-family
|
||||
font-size: 18px
|
||||
margin-top: 13px
|
||||
line-height: 18px
|
||||
|
@ -302,7 +303,7 @@
|
|||
|
||||
.sign-up-blurb
|
||||
width: 175px
|
||||
font-family: 'Open Sans Condensed'
|
||||
font-family: $headings-font-family
|
||||
font-weight: bold
|
||||
text-transform: uppercase
|
||||
font-size: 18px
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
@import "app/styles/mixins"
|
||||
@import "app/styles/bootstrap/variables"
|
||||
|
||||
#level-victory-modal
|
||||
.victory-banner
|
||||
float: right
|
||||
|
@ -55,4 +58,4 @@ body.ipad #level-victory-modal
|
|||
|
||||
.modal-body
|
||||
font-size: 30px
|
||||
font-family: Open Sans Condensed
|
||||
font-family: $headings-font-family
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
width: 45%
|
||||
width: -webkit-calc(50% - 10px)
|
||||
width: calc(50% - 10px)
|
||||
border-style: solid
|
||||
border-image: url(/images/level/code_toolbar_run_button_active.png) 14 20 20 20 fill round
|
||||
border-width: 7px 10px 10px 10px
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
text-shadow: none
|
||||
color: white
|
||||
word-wrap: break-word
|
||||
border-style: solid
|
||||
border-image: url(/images/level/code_editor_error_background.png) 16 20 fill round
|
||||
border-width: 16px 20px
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
min-width: 250px
|
||||
max-width: 400px
|
||||
padding: 10px
|
||||
border-style: solid
|
||||
border-image: url(/images/level/popover_background.png) 18 fill round
|
||||
border-width: 8px
|
||||
.progress
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
left: 0%
|
||||
right: 10%
|
||||
padding: 4%
|
||||
border-style: solid
|
||||
border-image: url(/images/level/popover_background.png) 18 fill round
|
||||
border-width: 15px
|
||||
|
||||
|
|
|
@ -93,7 +93,7 @@
|
|||
margin-top: 10px
|
||||
text-transform: uppercase
|
||||
display: inline-block
|
||||
font-family: Open Sans Condensed
|
||||
font-family: $headings-font-family
|
||||
font-weight: bold
|
||||
|
||||
.method-label
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
max-height: 500px
|
||||
overflow: scroll
|
||||
padding: 4%
|
||||
border-style: solid
|
||||
border-image: url(/images/level/popover_background.png) 18 fill round
|
||||
border-width: 15px
|
||||
|
||||
|
|
|
@ -55,6 +55,7 @@ body:not(.dialogue-view-active)
|
|||
// Only those popovers which are our direct children (spell documentation)
|
||||
max-width: 600px
|
||||
padding: 0
|
||||
border-style: solid
|
||||
border-image: url(/images/level/popover_background.png) 29 39 fill stretch
|
||||
border-width: 15px 20px
|
||||
@include box-shadow(0 0 0 #000)
|
||||
|
|
|
@ -82,6 +82,7 @@
|
|||
position: absolute
|
||||
z-index: 10
|
||||
pointer-events: none
|
||||
border-style: solid
|
||||
border-image: url(/images/level/popover_background.png) 29 39 fill stretch
|
||||
padding: 0
|
||||
border-width: 15px 20px
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
|
||||
.popover
|
||||
padding: 10px 10px 30px 10px
|
||||
border-style: solid
|
||||
border-image: url(/images/level/popover_background.png) 18 fill round
|
||||
border-width: 15px
|
||||
@include box-shadow(0 0 0 #000)
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
@import "app/styles/bootstrap/variables"
|
||||
@import "app/styles/mixins"
|
||||
|
||||
#item-details-view
|
||||
|
||||
.big-font
|
||||
text-transform: uppercase
|
||||
font-family: "Open Sans Condensed"
|
||||
font-family: $headings-font-family
|
||||
font-weight: bold
|
||||
|
||||
.one-line
|
||||
|
|
|
@ -44,7 +44,7 @@ $heroCanvasHeight: 265px
|
|||
top: 470px
|
||||
|
||||
#gems-count
|
||||
font-family: 'Open Sans Condensed'
|
||||
font-family: $headings-font-family
|
||||
font-size: 24.5px
|
||||
color: lighten(rgb(1,64,91), 50%)
|
||||
|
||||
|
@ -302,7 +302,7 @@ $heroCanvasHeight: 265px
|
|||
text-align: center
|
||||
text-transform: uppercase
|
||||
font-size: 24.5px
|
||||
font-family: Open Sans Condensed
|
||||
font-family: $headings-font-family
|
||||
color: white
|
||||
|
||||
#purchase-hero-button
|
||||
|
@ -406,7 +406,7 @@ $heroCanvasHeight: 265px
|
|||
text-align: center
|
||||
text-transform: uppercase
|
||||
font-size: 26px
|
||||
font-family: Open Sans Condensed
|
||||
font-family: $headings-font-family
|
||||
color: white
|
||||
|
||||
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
@import "app/styles/bootstrap/variables"
|
||||
@import "app/styles/mixins"
|
||||
|
||||
#play-items-modal
|
||||
|
||||
.big-font
|
||||
text-transform: uppercase
|
||||
font-family: "Open Sans Condensed"
|
||||
font-family: $headings-font-family
|
||||
font-weight: bold
|
||||
|
||||
.one-line
|
||||
|
@ -287,7 +288,7 @@
|
|||
top: 70px
|
||||
font-size: 20px
|
||||
line-height: 20px
|
||||
font-family: Open Sans Condensed
|
||||
font-family: $headings-font-family
|
||||
text-transform: uppercase
|
||||
font-weight: bold
|
||||
z-index: 2
|
||||
|
|
|
@ -63,7 +63,7 @@
|
|||
font-weight: bold
|
||||
line-height: 18px
|
||||
color: black
|
||||
font-family: 'Open Sans Condensed'
|
||||
font-family: $headings-font-family
|
||||
font-size: 18px
|
||||
|
||||
.point
|
||||
|
@ -100,6 +100,7 @@
|
|||
top: 430px
|
||||
font-size: 32px
|
||||
line-height: 42px
|
||||
border-style: solid
|
||||
border-image: url(/images/level/code_toolbar_submit_button_active.png) 14 20 20 20 fill round
|
||||
border-width: 14px 20px 20px 20px
|
||||
color: darken(white, 5%)
|
||||
|
|
|
@ -218,6 +218,7 @@ $gameControlMargin: 30px
|
|||
border-width: 15px
|
||||
// Using modernizr-mixin for compat detection
|
||||
@include yep(borderimage)
|
||||
border-style: solid
|
||||
border-image: url(/images/level/popover_background.png) 18 fill round
|
||||
@include nope(borderimage)
|
||||
background-color: rgb(247, 242, 218)
|
||||
|
@ -318,17 +319,74 @@ $gameControlMargin: 30px
|
|||
.tooltip
|
||||
font-size: 24px
|
||||
|
||||
.tooltip-arrow
|
||||
display: none
|
||||
|
||||
.user-status
|
||||
position: absolute
|
||||
bottom: 1%
|
||||
left: 1%
|
||||
bottom: 16px
|
||||
left: 8px
|
||||
text-align: center
|
||||
font-size: 24px
|
||||
color: white
|
||||
text-shadow: 1px 1px 0px black
|
||||
text-shadow: 0px 2px 1px black, 0px -2px 1px black, -2px 0px 1px black, 2px 0px 1px black
|
||||
height: 32px
|
||||
line-height: 32px
|
||||
|
||||
button
|
||||
.user-status-line
|
||||
position: relative
|
||||
|
||||
button.btn.btn-illustrated
|
||||
margin-left: 10px
|
||||
min-width: 90px
|
||||
height: 32px
|
||||
color: white
|
||||
|
||||
.gem, .player-level-icon, .player-hero-icon
|
||||
position: absolute
|
||||
top: 1px
|
||||
|
||||
#gems-count
|
||||
margin-left: 40px
|
||||
|
||||
.player-level
|
||||
margin-left: 34px
|
||||
|
||||
.player-name
|
||||
margin-left: 45px
|
||||
|
||||
$spriteSheetSize: 30px
|
||||
|
||||
.player-level-icon, .player-hero-icon
|
||||
background: transparent url(/images/pages/play/play-spritesheet.png)
|
||||
background-size: cover
|
||||
background-position: (-2 * $spriteSheetSize) 0
|
||||
display: inline-block
|
||||
width: 30px
|
||||
height: 30px
|
||||
margin: 0px 2px
|
||||
|
||||
.player-hero-icon
|
||||
margin-left: 10px
|
||||
background-position: (-4 * $spriteSheetSize) 0
|
||||
|
||||
&.knight
|
||||
background-position: (-5 * $spriteSheetSize) 0
|
||||
&.librarian
|
||||
background-position: (-6 * $spriteSheetSize) 0
|
||||
&.ninja
|
||||
background-position: (-7 * $spriteSheetSize) 0
|
||||
&.potion-master
|
||||
background-position: (-8 * $spriteSheetSize) 0
|
||||
&.samurai
|
||||
background-position: (-9 * $spriteSheetSize) 0
|
||||
&.trapper
|
||||
background-position: (-10 * $spriteSheetSize) 0
|
||||
&.forest-archer
|
||||
background-position: (-11 * $spriteSheetSize) 0
|
||||
&.sorcerer
|
||||
background-position: (-12 * $spriteSheetSize) 0
|
||||
|
||||
|
||||
#volume-button
|
||||
position: absolute
|
||||
|
|
|
@ -63,15 +63,18 @@
|
|||
// a.btn.settings(href='/account', data-i18n="[title]play.settings")
|
||||
|
||||
.user-status.header-font
|
||||
span.gem.gem-20
|
||||
.user-status-line
|
||||
span.gem.gem-30
|
||||
span#gems-count.spr= me.gems()
|
||||
span.spl.spr(data-i18n="general.player_level")
|
||||
span.spr= me.level()
|
||||
span.player-level-icon
|
||||
span.player-level.spr= me.level()
|
||||
span.player-hero-icon
|
||||
if me.get('anonymous')
|
||||
span.spr(data-i18n="play.anonymous") Anonymous Player
|
||||
button.btn.btn-default.btn-flat.btn-sm(data-toggle='coco-modal', data-target='core/AuthModal', data-i18n="login.log_in")
|
||||
span.player-name.spr(data-i18n="play.anonymous") Anonymous Player
|
||||
button.btn.btn-illustrated.login-button.btn-warning(data-i18n="login.log_in")
|
||||
button.btn.btn-illustrated.signup-button.btn-danger(data-i18n="signup.sign_up")
|
||||
else
|
||||
span.spr= me.get('name')
|
||||
span.player-name.spr= me.get('name')
|
||||
button#logout-button.btn.btn-default.btn-flat.btn-sm(data-i18n="login.log_out") Log Out
|
||||
|
||||
button.btn.btn-lg.btn-inverse#volume-button(title="Adjust volume")
|
||||
|
|
|
@ -74,6 +74,7 @@ module.exports = class WorldMapView extends RootView
|
|||
@hadEverChosenHero = me.get('heroConfig')?.thangType
|
||||
@listenTo me, 'change:purchased', -> @renderSelectors('#gems-count')
|
||||
@listenTo me, 'change:spent', -> @renderSelectors('#gems-count')
|
||||
@listenTo me, 'change:heroConfig', -> @updateHero()
|
||||
window.tracker?.trackEvent 'Loaded World Map', category: 'World Map', ['Google Analytics']
|
||||
|
||||
# If it's a new player who didn't appear to come from Hour of Code, we register her here without setting the hourOfCode property.
|
||||
|
@ -141,8 +142,10 @@ module.exports = class WorldMapView extends RootView
|
|||
level.color = 'rgb(80, 130, 200)'
|
||||
level.hidden = level.locked or level.disabled
|
||||
|
||||
# put lower levels in last, so in the world map they layer over one another properly.
|
||||
context.campaign.levels = (_.sortBy context.campaign.levels, 'y').reverse()
|
||||
## put lower levels in last, so in the world map they layer over one another properly.
|
||||
#context.campaign.levels = (_.sortBy context.campaign.levels, 'y').reverse()
|
||||
# Actually, there's some logic that depends on the order of iteration of levels to determine
|
||||
# which one to do next when you're coming here not from a level; can we do this another way?
|
||||
|
||||
context.levelStatusMap = @levelStatusMap
|
||||
context.levelPlayCountMap = @levelPlayCountMap
|
||||
|
@ -167,6 +170,7 @@ module.exports = class WorldMapView extends RootView
|
|||
console.log "#{$(@).data('level-id')}\n x: #{(100 * x).toFixed(2)}\n y: #{(100 * y).toFixed(2)}\n"
|
||||
@$el.addClass _.string.slugify @terrain
|
||||
@updateVolume()
|
||||
@updateHero()
|
||||
unless window.currentModal or not @fullyRendered
|
||||
@highlightElement '.level.next', delay: 500, duration: 60000, rotation: 0, sides: ['top']
|
||||
if levelID = @$el.find('.level.next').data('level-id')
|
||||
|
@ -345,6 +349,12 @@ module.exports = class WorldMapView extends RootView
|
|||
newI = 2
|
||||
@updateVolume volumes[newI]
|
||||
|
||||
updateHero: ->
|
||||
return unless hero = me.get('heroConfig')?.thangType
|
||||
for slug, original of ThangType.heroes when original is hero
|
||||
@$el.find('.player-hero-icon').removeClass().addClass('player-hero-icon ' + slug)
|
||||
return
|
||||
console.error "WorldMapView hero update couldn't find hero slug for original:", hero
|
||||
|
||||
dungeon = [
|
||||
{
|
||||
|
|
|
@ -202,6 +202,7 @@ module.exports = class PlayItemsModal extends ModalView
|
|||
unlockButton.popover(
|
||||
animation: true
|
||||
trigger: 'manual'
|
||||
placement: 'top'
|
||||
content: ' ' # template has it
|
||||
container: @$el
|
||||
template: popoverTemplate
|
||||
|
|
Loading…
Reference in a new issue