diff --git a/app/core/ParticleMan.coffee b/app/core/ParticleMan.coffee
index 26bdca41a..b63f5d8a4 100644
--- a/app/core/ParticleMan.coffee
+++ b/app/core/ParticleMan.coffee
@@ -239,6 +239,21 @@ particleKinds['level-dungeon-replayable'] = particleKinds['level-dungeon-replaya
     colorMiddle: hsl 0.17, 0.75, 0.5
     colorEnd: hsl 0.17, 0.75, 0.3
 
+particleKinds['level-dungeon-premium-item'] = ext particleKinds['level-dungeon-gate'],
+  emitter:
+    particleCount: 2000
+    radius: 2.5
+    acceleration: vec 0, 8, 1
+    opacityStart: 0
+    opacityMiddle: 0.5
+    opacityEnd: 0.75
+    colorStart: hsl 0.5, 0.75, 0.9
+    colorMiddle: hsl 0.5, 0.75, 0.7
+    colorEnd: hsl 0.5, 0.75, 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-forest-premium-hero'] = ext particleKinds['level-forest-premium'],
   emitter:
     particleCount: 200
diff --git a/app/styles/play/level/modal/hero-victory-modal.sass b/app/styles/play/level/modal/hero-victory-modal.sass
index 418d58e94..e35953e5f 100644
--- a/app/styles/play/level/modal/hero-victory-modal.sass
+++ b/app/styles/play/level/modal/hero-victory-modal.sass
@@ -385,6 +385,9 @@
   .offer
     display: none
 
+    img
+      margin: 5px 10px
+
     p
       color: white
 
diff --git a/app/templates/play/campaign-view.jade b/app/templates/play/campaign-view.jade
index 53bb2bb36..6e69fc9e0 100644
--- a/app/templates/play/campaign-view.jade
+++ b/app/templates/play/campaign-view.jade
@@ -17,6 +17,8 @@ if campaign
           a(href=level.type == 'hero' ? '#' : level.disabled ? "/play" : "/play/#{level.levelPath || 'level'}/#{level.slug}", disabled=level.disabled, data-level-slug=level.slug, data-level-path=level.levelPath || 'level', data-level-name=level.name)
           if level.slug == 'lost-viking'
             img.star(src="/file/db/thang.type/5441c3144e9aeb727cc97111/portrait.png")
+          else if level.slug == 'robot-ragnarok'
+            img.star(src="/file/db/thang.type/54ea35fd2b7506e891ca70d5/portrait.png")
           else if level.requiresSubscription
             img.star(src="/images/pages/play/star.png")
           if levelStatusMap[level.slug] === 'complete'
diff --git a/app/templates/play/level/modal/hero-victory-modal.jade b/app/templates/play/level/modal/hero-victory-modal.jade
index 661edfb2b..59ff8f290 100644
--- a/app/templates/play/level/modal/hero-victory-modal.jade
+++ b/app/templates/play/level/modal/hero-victory-modal.jade
@@ -122,7 +122,7 @@ block modal-footer-content
     button.btn.btn-illustrated.btn-primary.btn-lg.world-map-button.continue-from-offer-button(data-i18n="play_level.victory_become_a_viking") Become a Viking
   .offer.a-mayhem-of-munchkins
     p
-      img.pull-left(src="/file/db/level/55ca29439bc1892c835b0137/bloc-mentor.png")
-      img.pull-right(src="/file/db/level/55ca29439bc1892c835b0137/bloc-logo-square-100x100-white.png")
+      img.pull-left(src="/file/db/level/55ca29439bc1892c835b0137/bloc_warrior.png")
+      img.pull-right(src="/file/db/level/55ca29439bc1892c835b0137/bloc_logo.png")
       span(data-i18n="play_level.victory_bloc")
     button.btn.btn-illustrated.btn-primary.btn-lg.world-map-button.continue-from-offer-button(data-i18n="play_level.victory_bloc_cta")
diff --git a/app/views/play/CampaignView.coffee b/app/views/play/CampaignView.coffee
index f0eb003b6..e896b4f38 100644
--- a/app/views/play/CampaignView.coffee
+++ b/app/views/play/CampaignView.coffee
@@ -267,6 +267,7 @@ module.exports = class CampaignView extends RootView
     level.locked = false if @campaign?.get('name') is 'Auditions'
     level.locked = false if @campaign?.get('name') is 'Intro'
     level.locked = false if me.isInGodMode()
+    level.locked = false if level.slug is 'robot-ragnarok'
     level.disabled = true if level.adminOnly and @levelStatusMap[level.slug] not in ['started', 'complete']
     level.disabled = false if me.isInGodMode()
     level.color = 'rgb(255, 80, 60)'
@@ -323,7 +324,8 @@ module.exports = class CampaignView extends RootView
             me.isPremium() or
             not nextLevel.requiresSubscription or
             (nextLevel.slug is 'boom-and-bust' and not @levelStatusMap['defense-of-plainswood']) or
-            (nextLevel.slug is 'favorable-odds' and not @levelStatusMap['the-raised-sword'])
+            (nextLevel.slug is 'favorable-odds' and not @levelStatusMap['the-raised-sword']) or
+            (nextLevel.slug is 'robot-ragnarok' and @levelStatusMap['the-raised-sword'])
           )
             nextLevel.next = true
             foundNext = true
@@ -379,7 +381,7 @@ module.exports = class CampaignView extends RootView
       particleKey.push 'premium' if level.requiresSubscription
       particleKey.push 'gate' if level.slug in ['kithgard-gates', 'siege-of-stonehold', 'clash-of-clones', 'summits-gate']
       particleKey.push 'hero' if level.unlocksHero and not level.unlockedHero
-      #particleKey.push 'item' if level.slug is 'apocalypse'  # TODO: generalize
+      particleKey.push 'item' if level.slug is 'robot-ragnarok'  # TODO: generalize
       continue if particleKey.length is 2  # Don't show basic levels
       continue unless level.hidden or _.intersection(particleKey, ['item', 'hero-ladder', 'replayable']).length
       @particleMan.addEmitter level.position.x / 100, level.position.y / 100, particleKey.join('-')