module Game.Antisplice.Dungeon.Ironforge where
import Text.Chatty.Printer
import Text.Chatty.Scanner
import Text.Chatty.Expansion
import Text.Chatty.Expansion.Vars
import System.Chatty.Misc
import Text.Chatty.Extended.Printer
import Game.Antisplice
import Game.Antisplice.Dungeon.Ironforge.Cambridge
import Game.Antisplice.Dungeon.Ironforge.IronforgeCity
import Game.Antisplice.Dungeon.Ironforge.School
import Control.Monad
import Control.Monad.Error.Class
import Data.Monoid
ironforge :: Constructor ()
ironforge = do
money <- registerCurrency "Money" "Money is measured in Iron Dollars."
(greatForge, stationW, commonsW) <- ironforgeCity
stationC <- cambridge money
insertVocab "tram" Noun
withRoom stationW $
addRoomObject $ do
setObjectTitle "the tram"
setObjectDesc "This is the tram to Cambridge, Massachusetts."
addObjectName "tram"
addDescSeg "Enter the tram and ride to Cambridge, Massachusetts."
onEnter $ do
mprintLn "Immediately after you entered the tram, the overseer blows the whistle and the train departs."
mprintLn "You have arrived at your destination: Cambridge, Massachusetts."
enterAndAnnounce stationC
withRoom stationC $
addRoomObject $ do
setObjectTitle "the tram"
setObjectDesc "This is the tram to Ironforge, Dun Morogh."
addObjectName "tram"
addDescSeg "Enter the tram and ride to Ironforge, Dun Morogh."
onEnter $ do
mprintLn "The whistle is so loud that you almost get a tinnitus. The train begins to roll."
mprintLn "You have arrived at your destination: Ironforge, Dun Morogh."
enterAndAnnounce stationW
(schoolStart,schoolEnd) <- school
unipath greatForge schoolStart Down
unipath schoolEnd greatForge Up
steDef <- registerStereoM $ do
mergeStereo defaultStereo
mergeStereoM visualStereo
mergeStereoM manualStereo
mergeSkillM $ skill "oink" !+ bareAction (\_ -> mprintLn "Oink!") !+ implyGlobalCooldownA !+> implyCooldownA 5000
subscribePlayer $ do
setPlayerRoom greatForge
setStatM Strength 6
setStatM Agility 3
setStatM Stamina 5
setStatM Intelligence 1
setStatM Spirit 2
setStatM Armor 0
setStatM AttackPower 5
setStatM Haste 5
setStatM CooldownDuration 1000
addStereo steDef
modifyCurrency money (+2000)