Skip to content

Instantly share code, notes, and snippets.

View shawndeprey's full-sized avatar
💭
If you stop learning, you stop living.

Shawn Deprey shawndeprey

💭
If you stop learning, you stop living.
View GitHub Profile

The Burning Crusade consists of seven zones. The optimal route for experiencing the storyline would be to follow the zones in this order: Hellfire Peninsula, Zangarmarsh, Terokkar Forest, Nagrand, Blade's Edge Mountains, Netherstorm, and Shadowmoon Valley. While there are many questlines in each zone, for the sake of efficiency, I will focus on key quest chains.

1. Hellfire Peninsula

Quest Chain: The Dark Portal

  • Quest Giver: Watch Commander Relthorn Netherwane
  • Description: This quest chain serves as the introduction to Outland, involving defense against the invading forces of the Burning Legion at the Stair of Destiny.

2. Zangarmarsh

source 'https://rubygems.org'
ruby '2.5.6'
gem 'strip_attributes'
gem 'bundler', '= 1.17.3'
gem 'rails', '~> 6'
gem 'pg', '~> 1.1.4'
gem 'puma', '~> 4.1'
gem 'puma_worker_killer', '~> 0.1.1'
gem 'will_paginate', '~> 3.2.1'
@shawndeprey
shawndeprey / main.js
Last active November 14, 2019 14:32
IdleVue implementation for SPA timeout article
import IdleVue from "idle-vue"
const eventsHub = new Vue()
Vue.use(IdleVue, {
eventEmitter: eventsHub,
idleTime: 900000, // 15 Minutes
})
new Vue({
// ...Your vue config will be here. Below it add:
onIdle() {
// Replace the following 2 lines to match 1) How you store your sessions in your vue app and 2) your signin/login route.
@shawndeprey
shawndeprey / axios.js
Last active November 13, 2019 21:11
Axios configuration for the SPA timeout article
axios.interceptors.response.use(
function(response) {
return response
},
function(error) {
return new Promise((resolve, reject) => {
if (error && error.response && error.response.status === 440) {
// Replace the following 2 lines to match 1) How you store your sessions in your vue app and 2) your signin/login route.
store.dispatch("auth/destroySession")
router.replace("signin")
@shawndeprey
shawndeprey / application_controller.rb
Last active November 13, 2019 20:19
Application controller example for SPA timeout article
class ApplicationController < ActionController::API
before_action :check_timeout
def check_timeout
@user = User.find_by(id: session[:identity])
return render json: {errors:["A user is required."]}, status: 401 if @user.blank?
if @user.should_session_remain_active?
@user.set_timeout!
else
reset_session
return render json: {errors:["Session timed out."]}, status: 440
@shawndeprey
shawndeprey / user.rb
Last active November 13, 2019 20:19
User code snippit for SPA article
class User < ApplicationRecord
def set_timeout!
self.timeout = 15.minutes.from_now
self.save
end
def should_session_remain_active?
return false if timeout.blank?
timeout.future?
end
{
"session"=>{
"user_id"=>"2n0",
"group_id"=>"GJ",
"network_id"=>"6B"
},
"users"=>{
"id"=>"2n0",
"created_at"=>"2019-01-02T16:43:43.737Z",
"updated_at"=>"2019-01-02T16:43:43.737Z",
  • Game Does Not Handhold (Combat will be difficult and you need to be careful, enemy agro distance needs to be carefully considered, enemies your same level or lower can still be powerful adversaries)
  • Leveling takes a very long time.
  • Many of your skills are based on actions you take such as you defense or ability with a weapon.
  • Terrain, map locations, NPCs, etc. need to be known by the player. The map can help, but only as much as a real map for the most part.
  • Quest tracking is not on for a quest by default.
  • You may need to read the actual content of a quest to understand what to do.
  • Different levels of skills can always be used even if you get a stronger version of that skill.
  • Bag space is very important, Get more bags early.
  • There are helpful NPCs damn near everywhere. Pretty much every building and area is worth exploring.
  • It's good to specialize instead of trying to do everything since it takes a really long time to do anything. (i.e. focus on crafting particular types of armor)