Here's what happened in last night's game, featuring the New Gil and Tactical Juma, as played by someone who looked exactly like Tim. Each PC gets 995 xp.
As the PCs contemplate which set of doors to open in the courtyard, a bright green poison ray shoots down from an arrow slit on the floor above and strikes Gil, followed by a javelin thrown at Juma. The party dash for cover, taking the south-west door into the West Gatehouse. Here, they are attacked by a lone troglodyte mauler, soon reinforced by a pair of javelin-throwing impalers and an elder curse chanter from upstairs, and a second mauler from the East Gatehouse. The PCs battle the foul-smelling reptilians for nine rounds before they are victorious – the narrow staircase makes it hard for the party fighters to get into combat. Gil uses his fey step to teleport in, cast fire shroud and then teleport out with his cloak of translocation, and Juma also uses teleportation to get behind the curse chanter. Hrothgar, stuck behind Ulthar, throws a javelin, killing the last impaler, then charges up the stairs and beheads the curse chanter.
The party explore the upper level of the fortress without running into any more guards. Before heading down the backstairs they notice that the sky is darkening - Hrothgar suspects a sandstorm is on its way.
The stairs lead down into the Great Hall where an eladrin claiming to be Shephatiah, Queen of the Drylands, holds court over a motley group of humans, female eladrin and longtooth shifters; sussur trees grow out of the stone floor. The PCs are suspicious and when Hrothgar spots the dead body of a villager sticking out from under a tree next to the queen's throne, the eladrin orders her men to attack, taking the party somewhat by surprise and surrounding them rapidly. The three eladrin are able to teleport from tree to tree and use plant magic to attack the PCs; the queen blasts the party with a cloud of soporific pollen which dazes Ulthar and Sora. Gil casts ice storm, unfortunately catching Juma in the middle of it, but this spell is very effective, killing several of the human lackeys. Juma is grabbed by an eladrin and dragged off as two displacer beasts charge into the fray. When the first eladrin is killed, she reverts to her natural form, a nasty-looking humanoid plant creature. The displacer beasts are hard to hit and Sora, Ulthar and Hrothgar keep missing as they misjudge exactly where the panther-like creatures are standing.
Finally, Hrothgar slays the last beast and Ulthar finishes off the queen. The PCs search the room, finding some treasure behind the throne, and briefly check the rooms leading off from hall before heading to the first floor and taking an extended rest.
The PCs resume their exploration of Fortress Ironfell at dawn; the sky above the hole in the courtyard still looks ominous and threatening. They head south from the Great Hall, back into the courtyard and west into the stables, home to the behir, and the stable master's quarters (used by the Warden). There's some more treasure here but the great riches of the Karak Lode seem to have eluded the Juma Gang so far!
Going east from the courtyard, the PCs open the doors to an inhabited part of the fortress - a lone guard is standing next to some crates and in front of a portcullis blocking a staircase down. Hrothgar sneaks up on him and drags him back to the others. The hapless lackey promises to tell the party everything he knows but this doesn't seem to be much – the Queen is in the Great Hall, "the lads" are in the barracks and there are a pair of longtooth shifters down in the crypts guarding the gang's one prisoner – an old "birdman" accompanied by some canaries.
Here's what happened in last night's game. Each PC gets 990 xp.
The PCs buy 8 days worth of expensive supplies and head off into the Sunblight Barrens. The extreme heat of the desert proves too much for Hrothgar and the hairy gnoll contracts sun sickness.
Gil conjures a Tenser's floating disk to carry the poorly Hrothgar. Spotting a lush oasis on the horizon, the PCs make for it, only for it to turn out to be a mirage. Confused, they blunder into an ambush by a group of belgoi (bell-ringing fey humanoids) and their pet chathrang - a tortoise-like creature that can fire poisonous tethers from its back. Juma is commanded to attack Gil by the belgoi caller, Ulthar is reeled in by the chathrang and the others are split up by the tingling bells of the other fey. Hrothgar is jumped by a belgoi stalker who dazes him, then stabs him with his claw, doing 15 points ongoing damage! Gil casts ice storm, Sora helps out Hrothgar by taking a hit intended for the gnoll and Juma goes after the caller. Ulthar, meanwhile, escapes the chathrang but is quickly snared again, making it hard for him to help the rest of the PCs with healing magic. The PCs kill the craven minions and then the two belgoi hunters. It's unclear how much Juma's dwarf wall of fire plays a part in this. When this happens, the stalker and the caller withdraw, leaving the PCs to finish off the chathrang.
Hrothgar is still suffering from sun sickness so Gil conjures another Tenser's floating disk to chauffeur the barbarian. The PCs have to make their way across some quite treacherous terrain but manage to reach their destination late in the afternoon. Ahead two guard towers of dwarven construction flank a passage leading into the side of a bluff. Hrothgar and Sora scout ahead, working out that the figures they can see behind the arrow slits are straw dummy decoys. Ahead, a portcullis blocks their path to a pair of gates beyond. Meanwhile, Ji'ad has climbed 50' to the top of the bluff and spotted a large hole leading down inside. He throws down a rope and the others climb up. The PCs make their way towards the opening which is surrounded by large nests.
As they get nearer, a clamour of harpies attacks. Two are killed fairly quickly but the bird-woman are able to use their alluring songs to pull Ji'ad and Hrothgar into the hole; the two PCs fall 50' and land at the many feet of a carrion crawler! On top of the bluff, one harpy goes after Gil, who is hanging back, while the other survivor attacks Sora and Ulthar near the hole. The two fighters kill their opponent but then it's Gil's turn to be pulled into the hole to fall to the courtyard below, where he lands on top of the carrion crawler. Sora and Ulthar slay the last harpy as ongoing damage from Hrothgar (or was it Juma's deadly dwarf wall of fire?!) finishes off the carrion crawler.
Sora and Ulthar use a rope to join the others in the courtyard. Ji'ad finds an amber figurine of three monkeys in the pile of sand.
Here's what happened in last night's game. Each PC gets 1,200 xp.
The battle with Haledon and the dwarves over, the PCs decide to press on for the rest of the day. Ji'ad tries to start an argument with Mag Blackthorn, implying the ranger is going to lead them into a trap of some sort, but the others tell him to shut up. That night, a mountain lion passes by the party's camp, causing a bit of scare.
Hrothgar catches a young wild boar for breakfast getting the day off to a good start. It's all downhill from here though as the PCs take a wrong turn and blunder into an ambush by a band of gnolls led by a pack lord mounted on a manticore. Ulthar falls victim to a bout of demonic frenzy and attacks Gil as two far fang archers open fire from higher ground and three gorgers charge forward. Hrothgar shoves one of the gorgers into the sharp thorn bushes but he too is overcome by demonic influences and attacks Sora. Ji'ad, Sora and Hrothgar defeat the bloodthirtsty gorgers with help from Gil's flaming sphere. Ulthar leaps on top of the rocks to attack one far fang. Hrothgar and Sora kill the pack lord, then go for the other archer. Ji'ad runs through the thorn bushes to help them out, taking 20 hp damage in the process, when going round them might have been simpler! Ulthar finishes off the last gnoll as the manticore flies off. In a bad way, the PCs set up camp early.
Emerging from the Thornwaste, the PCs approach the tiny village of Dunesend; Mag says goodbye and heads back down the trail. In the centre of the community a large gnoll (the Warden) kills a helpless villager as his behir mount looks on. When the party approaches, the gnoll unleashes a stream of insults at Hrothgar, calling him a coward for surviving the massacre of the Ghen'khaz tribe by Yeenoghu's "instrument of vengeance". Hrothgar wants to charge but Gil's ice storm has made this difficult and then the behir's lightning strike pushes him back and knocks him over. Meanwhile, three satyr archers and a piper have appeared from hiding and join the attack. Sora attacks the annoying piper, helped by Ulthar, who charges in and kills him. Gil conjures another flaming sphere to aid Ji'ad and Hrothgar who are attacking the behir. Hrothgar is grabbed by the draconic beast which starts to chew on him; undeterred he attacks the Warden from the behir's jaws, taking him down, then hacks his way out of the creature's clutches! With the Warden and behir out for the count, the surviving satyrs withdraw.
Hrothgar brings the Warden round and tries to find out what he knows about his tribe. His enemy isn't particularly cooperative and dies under the strain of the interrogation. Hrothgar rips out his heart and eats it, freaking out the villagers who had started to come forward sheepishly. Ulthar and Sora are able to calm them down and the smith Darkus Comahni and village elder Lotho Elberesk talk to the party. They explain that the Warden was collecting tribute on behalf of Queen Shephatiah, Queen of the Drylands. It sounds like this queen is based in the Karak mines the PCs are looking for.
Here's what happened in last night's game. Each PC gets 1,180 xp.
Next session, we'll give Fortune Cards another go but divide the cards up into individual decks beforehand to reduce the chance of drawing something useless. I'm going to take this approach in Monday night's game too and will report back!
Hrothgar opens the secret door and sneaks through, followed by the not-so-sneaky Jihad. The gnoll peers round the corner of the corridor and sees a bunch of Golden Scimitars relaxing in a makeshift lounge area hung with stolen tapestries and paintings. The thieves have heard the clumsy genasi though and Damakos the tiefling sorcerer moves into position, blasting Gil when he appears. The eladrin also manages to trigger a concealed pit trap but luckily he avoids falling in and takes out several Scimitars with his fireball.
The PCs charge forward in a less-than-disciplined fashion – Juma's reckless onslaught leads to him falling over and Hrothgar misjudges his leap and falls into the pit. Battle is joined in the tight confines of the corridor with Sora and Jihad in the front line as a goliath and two more human thugs reinforce the enemy. Jihad moves Ulthar into the midst of the fray with dimensional warp. The warlord is confused at first but soon realises the swordmage's astute tactics as he is now in a position to behead first the goliath and then the torn-eared ambusher! Meanwhile Gil has found himself in trouble but finishes off the bald-headed veteran. With all their enemies slain, Jihad removes the goliath' head as a trophy.
The party search the storage room, training area and the bedchambers, then Hrothgar and Jihad manage to set themselves on fire while testing out their newly found thieves tools on a flame jet trap. Next, they head down a corridor leading towards some ancient carved temple doors and trigger another trap. This one is an arcane turret – Hrothgar successfully disables it.
The doors lead into what was once a temple to Ravana, god of the rakshasas, and now headquarters of the Golden Scimitars. Zeno delivers a gloating monologue and then his lackeys attack the PCs who are still in the corridor, with Ulthar and Gil at the front. Gil's spell unfortunately catches Ulthar (again!) and the warlord is then cursed by the warlock Feng Tzu and hit twice by Zeno's men, going down on -26 hp. Hrothgar pours a potion down Ulthar's throat, saving him.
Juma's dragon's teeth power has the effect of drawing several enemies to him including the dangerous Vadim as Zeno attacks Sora with vicious mockery and Feng Tzu slings desiccating curses at Juma and Gil. The PCs near the entrance take down the two gnolls and one ambusher, allowing them to move into the room. Ulthar (bashed up and surgeless) and Sora go after Zeno while Juma and Hrothgar flank Vadim. Juma's signature "dwarf wall of fire" kills the last of the ambushers and Feng Tzu. Zeno and Vadim are tough opponents but Juma delivers the killing blow to the fighter and Hrothgar splits Zeno's skull when Ulthar gives him a commander's strike.
Looting the bodies, Ulthar takes Vadim's +2 reinforcing scale mail and Gil takes Feng Tzu's +2 shadowdance leather armour. Hrothgar scalps the crimelord and Ulthar chops off his hand as a trophy. Then, the PCs search the temple, finding ledgers detailing the accounts of the Golden Scimitars, and also ransack the rooms of Zeno and his lieutenants. A key in Zeno's drawer opens the treasure vault which contains a pair of dwarven sending stones and a small fortune in coins. Take an extended rest.
Here's what happened in last night's game. Each PC gets 840 xp.
After shopping for potions and then returning to their apartment to rest, the PCs head to the Winking Vixen shortly before midnight only to find the brothel is closed. In the Sultry Siren tavern opposite, they find out from the landlord that Eusebia, the Vixen's madam, has been brutally murdered. Back across the street, the PCs knock on the door of the brothel and persuade Tamrin to let them in. The dwarf bouncer blames Vadim, Zeno's henchman, for the murder and tells the party how to access the secret door to the Golden Scimitars hideout beneath the building. The PCs have a look around Eusebia's office but don't find anything that will help them.
Hrothgar opens the secret door and scouts ahead, sneaking down the spiral staircase into the ancient tunnels of the Hidden Quarter. When he gives the all clear the others follow. After a few hundred yards, the gnolls hears crying coming from a side passage - it's a little girl in a red dress - but Hrothgar is suspicious as she is covering her face and runs off when he approaches. The barbarian follows with the other PCs coming right behind as the girl runs through a room in which four ghouls are lurking, ready to ambush the unwary. Fortunately the PCs are alert enough to not be taken by surprise and a battle ensues. Hrothgar is in the front and is attacked and paralysed by two ghouls while Rotten Mursel (the abyssal ghoul pack leader) and a stench ghoul also advance - their hideous stenches make it hard for the PCs to attack and to defend themselves. A fifth ghoul then appears from a door behind the PCs and attacks Juma and Ulthar. The party fight back and whittle their enemies down to just Rotten Mursel who is very tough to kill. Juma and Sora take it in turns to mark the ghoul but the paladin ends up paralysed and down to 5 hp. Luckily Ulthar is on hand to save Sora using his armour of sacrifice. Hrothgar delivers the killing blow to the ghoul who explodes in a necrotic death burst.
With the undead laid to rest, the PCs explore the other passages of the ghoul lair, bursting in on a room with four pathetic goblins dressed in little kids' clothes - including one in a red dress. Gil talks to them before the more bloodthirsty members of the party start swinging axes and swords around; the goblins agree to tell the PCs where to find Mr Mursel's treasure in exchange for their lives, so the party let them go.
The PCs return to the main corridor and continue to head west, heading through a secret door ahead of them. Beyond lies a corridor with arrow slits on both sides, heading into a room. Gil teleports in first and looks through the arrow slits, seeing a pair of gnoll archers lurking behind them. The others rush past the arrow slits, leaving the eladrin to get caught in the crossfire for there are gnolls on the opposite side too! Juma opens the door at the far end of the chamber to reveal two more enemies, a half orc and a human knife fighter, hiding behind it. The half orc falls first, then the gnolls (who take damage from Juma's dwarf-sized wall of fire) and finally the knife fighter with Hrothgar again delivering the finishing move.
The PCs search the room and the bedchamber beyond - as well as some money and potions, they find a map marking the Praying Mantis Dojo in "Tiangao-Town" (near the Temple of Niu Dahan), with the symbol of the Golden Scimitars. They also discover a secret door in the rear wall of the guard room.
Here's what happened in last night's game. Each PC gets 1,000 xp which is more than enough to get you all to 8th level.
The party return to their apartment in Aymara Sabban for the afternoon, before heading to the White Palm in the early evening to meet their patron Dulicitus. At the tavern, the landlord, Kaham al-Vizon, shows them into a private room and has a half-orc waiter bring them Desert Sands lagers, spiced olives and sheesha while they wait for the playwright. There is something suspicious about the waiter - when asked about him, Kaham says he will talk to the PCs after their meeting.
Dulicitus arrives in a foul mood, and Ulthar's account of the PCs' achievements in the investigation fail to impress him. Nevertheless, he pays them for the last three days, demanding they find some dirt on Petronas by the end of the week or provide a copy of his new play. The party are then rudely dismissed.
Next, Kaham takes them down to the yakhchal (cold storage room) to sample some beers as he explains that the Golden Scimitars have installed two spies on his bar staff - Ikar the half-orc and Sufyan the firesoul genasi. The landlord would like the PCs to get rid of them - he can't afford to pay them (and isn't happy to allow Hrothgar to deal pesh on the premises either!) but offers free drinks and food for a month in return. The party agree to help.
As the PCs head back upstairs, they spot a wealthy-looking Akhrani leaving the other private booth in a strop. This is Bahram Peroz, Speaker of the Guild of Weavers and Dyers. Hrothgar sneaks up to the booth and pulls back the curtain to reveal Zeno Meverel and his two Wicked Fang gnoll bodyguards. Hrothgar is spotted so issues a veiled threat to Zeno as the gnolls tell him to go away and stop bothering their master.
Juma heads off to the Winking Vixen for his special private party while the rest of the PCs rest and relax until just before midnight when the genasi returns, sated.
As they wait outside the back entrance to the White Palm to ambush Ikar and Sufyan, they themselves are ambushed by three Golden Scimitars knife fighters who are joined after a round by the PCs' two targets! The knife fighters are dealt with first - Bigby's icy grasp is very effective - but Ikar and Sufyan are more capable fighters. The half-orc charges Sora, slashing at her furiously with his broadsword and knocking her to the ground with his shield, while Sufyan sets first Juma and then Sora on fire. Juma kills Ikar and Ulthar brings down the genasi as he tries to climb up on to the rooftops and escape. The PCs find a note reading "Hippocampus Baths, 2nd hour after midday tomorrow" on one of the bodies.
The PCs take Sufyan to a dark alley and try to interrogate him without success. Even Sora's diplomacy and Hrothgar's teeth don't work and the genasi reacts to his missing finger by setting everyone on fire in retaliation! Hrothgar then kills him so Gil casts the speak with dead ritual to get the answers. Unfortunately he only gets time to ask one question but the PCs do at least learn the names of the people that will be at the bathhouse "meeting" tomorrow.
The party spend the morning asking around after the names they got from Sufyan's spirit in the taverns and coffee houses. Ulthar gives a stirring speech and the PCs head off to the Hippocampus Baths at midday. The bathhouse owner, a block-like female dwarf called Hildvin, welcomes them inside but the PCs must hand in their weapons and armour at the cloakroom. Ulthar isn't keen so waits outside. When he's caught opening the door to the furnace room, he's politely asked to leave and retires to a coffee house opposite to watch the gates. Inside, the rest of the party familiarize themselves with the layout of the baths, and take up positions in the steamy tepidarium and caldarium.
Iancu Petronas, Beatus and Francio arrive at around 1pm, and at 1.30pm Bahram Peroz arrives. When a group of suspicious characters turn up just before 2pm, Ulthar follows them inside. Hrothgar spots that one of these men has a Golden Scimitars tattoo. Then, there's a scream from Hildvin outside - one of the tellaks (attendants) has been murdered. As the PCs go to fetch their weapons - Juma summons his into his hand - it suddenly all kicks off as two of the Scimitars stab Gil several times. The poor wizard falls to the tiled floor, unconscious. The others rush over to help as the three Scimitars move in to attack and the bathers run for their lives. Francio stands and watches, looking uncomfortable.
Ulthar heals Gil as Tuzniq the assassin appears and throws a poisoned dagger at Juma, blinding him. Sora, Gil and Ulthar battle Ramazan and a knife fighter near the entrance; Juma and Hrothgar fight the assassin and the other knife fighter in the tepidarium. Ramazan and the two knife fighters are slain, but the assassin escapes after blinding the gnoll and the warlord. After managing to negotiate the slippery tiles successfully (using his "special human skills"), Ulthar tumbles into the warm pool when he tries to repeat the feat after the battle, followed by the also clumsy Gil.
The PCs search the baths. Juma bursts into a private bath, after hearing moaning from inside, to interrupt an elderly gentleman having a sexual act performed on him by an attendant! The genasi shuts the door and Sora opens the right one, finding Bahram Peroz who has been poisoned. Too tight to give him a healing potion, Juma attempts first aid and fails. Fortunately, the paladin is more generous and administers a potion. Bahram needs to be taken to a temple but is able to tell the PCs Zeno Meverel is behind the attempted murder. The crime lord's base is under the Winking Vixen.
Meanwhile, Hrothgar has found the body of a half-orc tellak in the staff area as well as stairs down to the hypocaust. After taking a short rest, the PCs head down into the low-ceilinged, hot area beneath the baths. Here, the assassin and a third knife fighter are lurking, taking the party by surprise. Tuzniq and the knife fighter are tricky opponents in the cramped environment and they are also reinforced by Varazes the wizard and two Wicked Fang gnolls hiding in the furnace room. However, after a tough battle, the PCs are victorious and their enemies lie dead at their feet.
Here's what happened in this afternoon's game. Each PC gets 790 xp - sorry it's not quite enough to level up but you will definitely reach 8th at the end of the next session!
As the party stroll through the Makers Ward, debating what to do next, they come into a marketplace where two arcanists from the Esoteric Order of the Blue Lotus - a human fire mage and a vanara mantrika - are having a drunken argument over who is the best spellcaster. As they try to prove this to each other, their spells set fire to a woman's washing and scald a donkey. Then, things really get out of hand when the human mage summons an angry fire elemental which knocks both wizards unconscious. The Juma Gang leap into action with Jihad at the front and dispatch the monster without much trouble. The vanara has fled the scene after being healed by Ulthar but the human fire mage, Fazil Al-Zarqa invites Gil to join the Esoteric Order. Annual fees are steep, though, so Gil resolves to find some unusual magic that will allow him to get in for free. Ulthar gives a stirring speech which gets everyone fired up, even Hrothgar who started to wander off to the weapon stalls in the middle of it.
Ulthar buys a +1 distance throwing axe at the stalls; Sora buys a +1 magic holy symbol.
The party return to the Khanduq of the Nightingale's Song in search of answers. Hatim the Fat, blind owner of the Blue Monkey, is helpful and his squabs are jolly tasty but not much information is learned, although the PCs do find out Iancu Petronas lives on the Street of Tesserae. By chatting to the locals, they narrow the address down to about 50 apartments but still don't know exactly where he lives. The party hang round for a while but Iancu doesn't come home so they split up for the evening. Ulthar goes to see The Fey King of Darkwood again; Sora goes to listen to the sitar-players at the Blue Monkey, and the others go to the Winking Vixen where Jihad books two boys and a gnoll for Juma the following night, paying a 5 gp deposit. The PCs try to question Eusebia about Vadim and the Golden Scimitars but the madam gets very uncomfortable.
Later on, together again, the PCs head to Fahil's Floating Palace. Here, Ulthar, Jihad and Hrothgar sign up for the following week's swimming contest, and Jihad persuades Fahil to let him into the VIP part of the club to play high stakes Three Dragon Ante after they spot someone they saw in Orloch's slave auction in this area. Hrothgar spies Francio, one of Iancu Petronas' acting troupe, talking to a shadowy man in the corner (Vadim), before heading upstairs to buy pesh from a dealer. The gnoll follows the dealer, jumps him and takes both his stash and his profits. Hrothgar gives a vial of pesh to Jihad. After losing several hands, the genasi cheats without being spotted and wins back his money!
Later still, the PCs leave Fahil's and wait skulking in a doorway in the Street of Tesserae for Iancu to come home. The actor arrives and the party are able to identify where his apartment is. Returning back to Fahil's before it closes, the PCs chat to the host and win his trust - he is no fan of the Golden Scimitars and promises to send them a message when Vadim is next in. Vadim, it turns out, is an enforcer for Zeno Meverel who owns the Floating Palace. It was Zeno they saw earlier in the VIP area.
Just before bedtime, Hrothgar sells two more vials of pesh to Jihad who snorts one. The genasi then can't get to sleep for hours and awakens unrefreshed the next morning.
The PCs stake out Iancu's apartment building and break into his flat once the actor goes off to have breakfast. Although the place is very untidy, the party find no evidence of an criminal activity - just the manuscript of a new play which Gil stops Juma from stealing.
Later on, the PCs arrive in the Builders Sabban as a Masons vs Potters street fight is about to start. The party spot a halfling rogue and a band of Golden Scimitars dressed as Masons (including a woman the party had fought and let go once before) in the alleys off the main drag. The PCs move in to attack the Golden Scimitars as the two mobs of guild members clash further down the street.
Hrothgar kills the female knife fighter and her male counterpart and Gil finishes off their leader, Yakub, with a flaming sphere. The lackeys are all killed too but the party are unable to stop the halfling getting away.
Juma and Ulthar then try to break up the mob of Masons but end up being pulled over and trampled underfoot. Hrothgar tries to intimidate the rabble into surrendering ("Leave my friends the Potters alone!") and Gil blasts everyone with incendiary detonation. The eladrin's spell does more damage to Ulthar who goes down to -3hp under the boots and pickaxe handles of the mob before Sora is able to scare the mob into submission. As the Masons run for it, the PCs spot Francio amongst them!
Here's what happened in this afternoon's game. Each PC gets 615 xp.
While the others are in inside the Winking Vixen, Ulthar tries to strike up a comradely conversation with Tamrin, the brothel's bouncer, but he fails to impress the gruff dwarf and retires across the street to the Sultry Siren tavern. There, he buys a beer and takes it outside to drink so he can keep an eye on the front door of the Vixen.
Inside, Juma and Hrothgar are unhappy that there are no pretty boys or gnoll women available for hire. Juma tries to get the barman to perform a private dance for him but he's just not interested so the genasi climbs up on the bar himself and starts dancing. This creates enough of a distraction for Hrothgar to sneak up to a door leading to the staff area and listen to the argument going on behind it between an Akhrani man and a woman - he can't make out much but the name "Zeno" is mentioned.
Back outside, Ulthar spots someone peering round an alley, apparently spying on him. When he goes to investigate, he is surprised to find himself facing five attackers: a gnoll, a half-elf and three humans. Luckily, he's wearing the handy cloak of shadowform he took from Cadavra and is able to turn himself insubtantial and move out of reach while Tamrin alerts the other PCs.
Juma tries to leap through a closed window to the warlord's aid but this doesn't work out too well – the genasi crashes through the shutters to land face down in the street! Hrothgar and Sora use the door instead, although the barbarian is hit by the flail-wielding enemy gnoll lurking behind the doorway as he comes outside. Gil casts fireball through the now-open window into the thugs, then Ulthar dispels his shadowform to join his fellow adventurers in melee. The gnoll thug is killed first, then Hrothgar licks his axe and unleashes his frost wolf rage on the half-elf, taking the Grape Lane basher's head clean off. Gil's flaming sphere takes down the hammer-wielder and Sora kills the guy armed with a scourge but the irritating, tumbling knife fighter manages to escape.
The PCs' efforts have been watched by the crowd inside the Winking Vixen, including Iancu Petronas' acting troupe. Always on the look out for a few coins, Juma passes a hat round so they can show their appreciation. Before the watch arrive, Gil casts Tenser's Floating Disk and the party load the hammer-wielder's body on to it. Ulthar chats to Eusebia, the brothel's madam, but doesn't learn anything useful.
Back at their apartment, Gil casts speak with dead on the corpse – the dead thug hasn't heard of Iancu Petronas but reveals he took his orders from someone called Ekrem. Later that night, Hrothgar, Gil and Ulthar take the body down to the waterfront and manage to dispose of it in the Dolphin Strait without being observed.
The PCs head to the Golden Bean Tree coffee house in the Khanduq of the Nightingale's Song for breakfast. Here, they run into Iancu Petronas and Beatus – the playwright offers the PCs free tickets to his play after their heroics the night before but is unwilling to invite Jihad round to his house. After Ulthar tries a bit too hard to flatter him, Iancu and his friend leave.
As the party finish off their coffee, a sinister-looking trio enter the cafe and start threatening Yasmina, the owner as two Wicked Fang gnolls guard the entrances. When two of the thugs start smashing coffee cups, the PCs intervene and a battle ensues. Gil conjures Bigby's Icy Grasp to grab hold of one of the villains as Ulthar and Juma are dazed by the two bodyguards. The two gnolls mark Hrothgar and Ulthar and pull them outside into the khanduq's courtyard as artists and stallholders scatter in all directions. The PCs take down one gnoll and one bodyguard, then Sora knocks the leader unconscious, allowing the others to finish off the last two racketeers. To celebrate, Hrothgar eats the heart of the gnoll he killed!
The city watch arrive and allow the PCs five minutes to interrogate their captive. They learn his name is Ashraf, he works for the Golden Scimitars, reporting into someone called Vadim who can sometimes be found at Fahil's Floating Palace. Juma chops off his little finger, then hands him over to the watch sergeant. Sora claims the gnoll's +2 blood fury greatsword. Ulthar gives Yasmina 10 bezants to pay for the damage done to the Golden Bean Tree; the grateful owner explains that this is the first time she's encountered the Golden Scimitars. A street gang called the Lamplighters used to look after the Maker's Ward.
Unsure what to do next, the PCs ask round in the taverns about Iancu Petronas, trying to find out his address without success. They do hear that the Lamplighters seem to have disappeared in recent weeks and the Golden Scimitars are now moving in. As the Lamplighters used to protect the Potters guild, they head to the guild headquarters and talk to one of the officers. Jihad says the Juma Gang are available for hire as security to protect the Potters from their arch-rivals, the Masons, but the guildsman seems a bit unsure about hiring the party.
Forgot to post this picture yesterday. I love the Hallowed Halls D&D tiles!
Here's what happened in this afternoon's game. Each PC gets 725 xp.
After searching the rest of the windmill, the PCs head back to Parsantium to the Dev'shir estate in the Grand Ward. There, they are surprised when Lady Patricia herself answers the door, obviously in some distress. Apparently her loyal butler Falco went down into the cellar and didn't return. In fact, Lady Patricia says she has heard terrible screaming coming from down there in the last few minutes.
The PCs hurry down into the cellar with Hrothgar and Sora in the lead. Falco lies dead in a pool of blood in the centre of the room; his blood has been used to paint a large, eldritch symbol on the floor. The middle of the chamber where this symbol is inscribed seems somehow darker and colder than the rest of the room which gives the PCs pause. As the party move forward, undead minions of the witch Cadavra appear from behind the curtains at the back and from a doorway. The rubbery-skinned dread zombies and the scythe-wielding reaper move into the middle while the two blazing skeletons hang back, flinging their flaming orbs at Ulthar and Gil. Sora charges the reaper but ends up bloodied by his scythe and his evil gaze as the undead creature fades away, moving out of her reach. Juma is grabbed by a zombie but teleports out of its grasp and attacks the reaper. Gil throws a fireball into the room, catching all the undead, but then the monsters are reinforced by two groups of zombie rotters that move in to engage Juma, Hrothgar, Sora and Ulthar in melee.
As the battle continues, the PCs realise to their annoyance that the dread zombies get up when they've been "killed" and it takes two death blows to put them down permanently. Meanwhile, Ulthar is in a bad way, having been set on fire repeatedly by the skeletons. Sora overcomes her fear of the reaper to finish him off with radiant delirium and then kills the last dread zombie; Hrothgar destroys the last skeleton.
Before there is time for a short rest, the PCs hear a scream from upstairs - something is happening to Lady Patricia. The party rush back up with Gil bravely taking the lead, having hung back in the first fight. In the hall of the mansion are four vampire fleshrippers and beyond, Cadavra is threatening her mother, Lady Patricia.
The witch blasts the PCs with chilling transfer, slowing them down and reducing Ulthar to -17hp. Then, the vampires close in. These minions are despatched swiftly but Cadavra is a much more tricky opponent as she keeps moving and uses her magic to slow down or freeze her enemies to the spot. Gil shouts out to Lady Patricia to run away and the noblewoman doesn't need to be told twice. Sora brings Ulthar back round with a potion and the inspirational warlord is able to give much useful tactical advice, using seize the upper hand & inspire belligerence to help his comrades do extra damage to Cadavra. The necromancer is cornered by Juma and Sora while Hrothgar is too leaden-footed to get into melee and is reduced to throwing javelins. Eventually Juma delivers the killing blow!
The party explain what's been happening to Lady Patricia, how Cadavra escaped from the asylum, took up necromancy and was out for revenge. Hrothgar is a bit too explicit but Sora and Ulthar are able to calm down the noblewoman before she faints. While no one is watching, Juma steals a small but valuable rug, shoving it inside his shirt. Ulthar advises her ladyship to spend the night at the neighbours until the PCs have laid Dugesia's ghost to rest and the matter is considered closed.
The PCs (minus Juma who is off selling the stolen rug) return to the Forest of the Dead and to the Dev'shir mausoleum where Ulthar explains to Dugesia that the party are there to grant her peace. The PCs replace the brick with Dugesia's name in the wall depicting the family tree and put her body back on the bier in her tomb. When they do this, her ghost fades away as her spirit heads off to the afterlife.
The party also visit the sacristy of Mormekar in the cemetery. Here, they tell the priests about the Cauldron of Illserves beneath the Old Mill - the undead-hating clergy promise they will have the dangerous artifact removed and destroyed.
Returning to the Grand Ward, Lady Patricia pays the PCs 2,000 gold bezants for all they've done for her. Ulthar takes charge of the party treasure and divvies it up.
Gil studies his new ritual book, learning four new rituals. He also upgrades the enchantment on Ulthar's armour to +2.
Just as the party are contemplating an expedition to the desert south of Parsantium in search of the Karak Lode, a messenger snake arrives with tickets to the theatre, sent by the dramatist Dulicitus. Hrothgar is a bit confused by the concept but agrees to come along.
At the Theatre of Aymara, the PCs enjoy a performance of Iancu Petronas' play, The Fey King of Darkwood, and meet Dulicitus, Vetranis and Gerontius – three conservative dramatists who want to hire the PCs to find out what Petronas is up to. The prize-winning playwright is rumoured to be connected to the Golden Scimitars so the PCs agree to take the job (although Gil is worried that hanging round the low dives of the Poor Ward might lead Juma into the temptation of gambling).
After the play, Ulthar speaks to Iancu at the stage door. The Urskovian is very charming and makes a good impression, but the playwright and his friends are keen to get going and head off after chatting to their admirers for a few minutes.
The PCs follow Iancu and his acting troupe to the red-light district in the Poor Ward where they head inside a brothel called the Winking Vixen on Grape (aka Gropecunt) Lane. Juma and Hrothgar follow them inside, with Gil and Sora a few minutes behind them. Meanwhile, Ulthar waits outside and talks to the dwarf bouncer.
Here's what happened in this afternoon's game. Each PC gets 965 xp, taking everyone to 7th level. We should definitely finish the adventure next session.
After the battle with Cadavra and her zombies, the PCs take the nearest exit which leads to the witch's living quarters. A plush carpet decorates the cavern and conceals a pit which Jihad falls down, landing on top of a swarm of crawling, skeletal hands which grab hold of him, pulling him over. The others try to help from up above but don't do much damage. Fortunately, the swordmage is able to teleport himself out. The claws and hands can't climb up the smooth walls of the pit so Gil blasts them repeatedly with thunderwave until they stop moving.
The PCs look through Cadavra's books, finding her diary which reveals she is Lakaisha, the daughter of Lady Patricia (which they suspected), and that she had murdered her sister Dugesia. Once she was shipped off to the asylum in Rhodias, she was rescued by a necromancer called Agilis who trained her in the dark arts. She betrayed her master, killing him and stealing the Cauldron of Illserves - a powerful magic item which can create undead. Now Cadavra, she is out for revenge on the Dev'shirs. There are several blank pages in the book. Suspicious that these could be secret pages, the PCs study these carefully but can find no hidden writings. Her other books include a ritual book - something of a bonanza for Gil! The party also find a map of unseen lands in a strongbox under her bed which Hrothgar takes.
Next, the PCs head down the underground river with Hrothgar in the lead. None of the party notice the green slime on the ceiling which falls on the gnoll's head. There's more up ahead - Gil burns it with a fire spell. Realizing that the passage enters a larger cavern ahead, the party return to the big chamber to discuss what to do next. Hrothgar and Sora have another look at Cadavra's diary and find the hidden writings on the secret page - the witch has hidden her undead minions in the Cartways under the Imperial Quarter's Grand Ward, poised to attack the Dev'shir estate through the wine cellar. Gil proposes returning to the city but the others insist on checking out the rest of the lair.
Back in the underground river, Jihad tries to leap past the green slime but a big blob of it falls on his head, inflicting a critical hit. Undeterred, the genasi enters the large cave up ahead. This is Cadavra's "necrotory" - the Cauldron of Illserves stands in the centre, guarded by eight zombies, and the witch herself. As the party advance, Cadavra casts call of the grave to summon four vampire fleshrippers which attack Jihad. Bunched up together, the PCs are easy targets for the necromancer's chilling transfer which takes down Ulthar - Hrothgar feeds him a healing potion to bring the warlord round. Jihad goes after Cadavra as her minions move across the water to attack the other PCs but he soon gets bloodied. Sora and Hrothgar go to help, followed by Ulthar once the zombie rotters and vampire spawn have been dealt with. Gil, of course, hangs back and casts magic missiles.
As the PCs start to surround Cadavra, she flees in shadowform, flying past Gil. The eladrin cleverly teleports behind her and pushes her back with thunderwave. When Juma and Hrothgar give chase, she switches direction and flees via the passage the PCs used to enter the room and gets away.
After a short rest, the PCs head up to the ground floor of the windmill - here, they are attacked by a large salt troll zombie which smashes Ulthar into the mill's machinery for 43 hp damage when he tries to manoeuvre round the back. The undead creature is "killed" but rises again almost immediately and knocks Juma into the gears. Finally, Sora delivers the final blow to put it down for good.
Here's what happened in this afternoon's game. Six encounters in one session of 4e is a record for us! Each PC gets 835 xp.
The PCs head back into the city and sell their excess loot. After this, they travel back down the road towards the old mill. Just as they are about to turn off the main road, the party spot a corpse by the roadside being fed on by an unkindness of ravens. Juma scares most of them away with a hellish rebuke and Ulthar steps forward to investigate. When the warlord gets close up, he realises the body is that of Latimer – the half-orc member of the Crimson Hand who originally sold the Dev'shir necklace at Girik's. The ravens attack - among them is one with several red feathers. Hrothgar rushes up and kills the red-feathered raven; Gil and Sora kill the others.
The fight over, Sora tries to speak with dead using a ritual scroll but fails to learn anything from the corpse.
The PCs approach the windmill, heading into the corn fields surrounding it. Up ahead are several sinister-looking scarecrows - two of them struggle free from the posts they are strapped to and attack the party. Hrothgar sneaks through the corn at speed and then charges one of the living scarecrows who turns out to be an unliving ghoul. Gil casts fireball, blasting all five of the scarecrows. Unfortunately only two are ghouls - the other three are two regular mannequins and an innocent farmer who is burned alive. Obviously, the spell also starts a nice fire which sets the cornfield ablaze.
Further into the fields, the PCs run into some more scarecrow-ghouls. Gil sets fire to another lot of growing corn with fire shroud and Hrothgar charges up to a restrained scarecrow, cutting its head off. Only at the last minute does he realise it's not a ghoul - instead, it's another human captive, this time a woman. He shrugs to himself and apologises to Sora.
Outside the windmill, the PCs encounter the third bunch of scarecrows but these ones are clearly animated creatures rather than ghouls dressed up. Hrothgar charges in, followed by Ulthar and Juma once they've shrugged off the effects of their opponent's frightening pumpkin-head gaze, leaving Sora to stand guard over Gil. Ulthar shouts out "are you going to abandon him or do your duty, Sora?" when it looks like the paladin is contemplating moving. After a short battle, all three scarecrows are destroyed and the PCs head towards the sliding doors at the side of the windmill.
Hrothgar checks the doors but still manages to trigger a glyph of warding, which sets fire to Sora and Ulthar. Gil cast knock but doesn't get the doors open; however, Juma is able to pick the lock, revealing a metal grain chute heading down into darkness. Securing a rope, Ulthar bravely heads down with Gil's light spell shining forth from his greataxe. As the warlord arrives in the cellar below, he is jumped by three giant spiders. Luckily, all of them miss him and two scuttle away to the dark corners of the room. Ulthar strikes back, hitting first with a critical and then spending an action point to follow up with another hit which kills the spider stone dead. The others come below to help out and attempt to corner the spiders but their death from above leaps allow them to jump past the other PCs to attack Gil repeatedly. The wizard's comrades are keen not to see their friend fall though: Hrothgar kills the second spider and Sora slays the third.
After searching the room, the PCs enter the grist chamber. Juma pulls the lever to activate the grist stone mechanism while the others search the small storeroom, finding a secret door. Beyond is a natural-hewn passage heading downwards. Hrothgar takes the lead and the others follow, coming into a large cavern with an underground river bisecting it.
As the party enters the cave, zombies step out of the water; across the stream, the PCs spot Cadavra the witch and a corruption corpse. Cadavra attacks first, striking Hrothgar with her lightning serpent spell as the zombies move in to engage with the party. Gil casts flaming sphere at Cadavra and Jihad teleports across to strike the necromancer with dual lightning strike and burning blade. Hrothgar leaps across the river to join in the attack. His movement draws an opportunity attack from a zombie which triggers Jihad's aegis of assault! The swordmage pings back and kills the zombie but the barbarian fails to hit Cadavra. Meanwhile the corruption corpse hurls gobs of necrotic filth at the gnoll. Sora, Ulthar and Jihad finish off the remaining zombies as the witch dimension doors away from Hrothgar, hits him with a necrotic blast and then disappears! The gnoll charges the corruption corpse with the other PCs hot on his heels but it's Hrothgar that delivers the killing blow. Unfortunately, the undead creature explodes as it's struck, showering the barbarian in unholy goop!
Here's what happened in this afternoon's game – four encounters in one session must be some kind of record (even if one was only with a snake). I've added a (blurry) photo of Hrothgar's new mini below.
Each PC gets 890 xp.
The PCs interrogate their captive, the Crimson Hand bandit Kaz-Gar – he's pretty cooperative but gets a bit freaked out when Juma takes his money then offers to play him at cards so he can win it back. If he loses, the genasi says, he'll be killed or will lose a finger. Kaz-gar isn't keen so Juma starts trying to chop off the bandit's finger before the other PCs intervene. In the end, Juma tells him he's now a member of the Juma Gang, gives him a gold piece and tells him to come to the PCs' address in the Makers Ward with his gambling winnings. The confused bandit makes a run for it and the PCs head through the secret door ahead and further into the mine.
Hrothgar sneaks ahead towards the bandits' mess hall where members of the Crimson Hand lie in wait – they've scattered caltrops on the ground and some have taken cover behind upturned tables. The gnoll leaps across the caltrops to attack the fighter Fenn while Gil throws a fireball into the others. After the first round, the door behind Hrothgar opens and a wererat (Lem) and another bandit (Aneurin) reinforce their comrades, meaning the barbarian is surrounded! Ulthar leaps on to a chair to attack the wererat while Juma finishes off the wizard Finn after teleporting into the room. Sora has also jumped over the caltrops to attack the bandits but is blinded when one throws ashes in her face. Gil fey steps into the middle of the room, casts fire shroud and then uses an action point to withdraw. This spell damages nearly all the enemies and its ongoing damage (plus that from his orbmaster's incendiary detonation) finishes off the regular bandits. Juma inflicts two successive criticals with swordburst, then Ulthar kills Fenn with viper's strike as the fighter tries to shift away. Lem bites Hrothgar, giving him filth fever, but then Juma manages to kill the wererat and Ulthar finishes off Aneurin when the rogue tries to escape. The PCs loot the bodies: Gil takes Finn's +2 robe of eyes, Hrothgar takes Fenn's +2 marauder's hide armour and Juma scores Lem's burglar gloves.
Next, the PCs loot a barracks room before running into the rest of the Crimson Hand gang in the chamber beyond. Gil repeats his fire shroud trick and Juma and Hrothgar both get surrounded in the middle of the room as Sora and Ulthar battle Borsk the half-orc. The warlord hits Borsk with a critical, killing him, and soon only Haledon the bandit leader is left standing. The PCs are finding it hard to get through the fighter's defenses but eventually a critical strike bloodies the bandit chief and he offers to parlay with the party. Haledon tells the PCs where they can find Cadavra the witch – in an abandoned windmill to the southwest – and offers them a treasure map if they leave the mine. The party, however, insist on looting Latimer's chamber where Sora up-ends a laundry basket and gets attacked by the deathrattle viper hiding inside! After the serpent is killed, the PCs loot the room but by the time they've done this, Haledon is nowhere to be seen.
Heading up the corridor, the PCs investigate the cleric's chamber where they find an altar to Tinel and a secret door. Deciding to leave this for the moment, they go into Haledon's room – the bandit chief isn't there but he has left a treasure map leading to the lost mines of the Karak Lode in the desert on his bed. Returning to the cleric's chamber, the PCs head through the secret door and into the temple of Kali belong where they face two wights – the former cleric and a female deathlock wight who pull offs her own head to terrify the party. The deathlock wight is killed first but returns to unlife and has to be killed again. Once she's been dealt with the PCs surround the cleric and finish him off. After searching the chamber, the PCs take a well-earned extended rest, and Sora (with Ulthar's help) cures Hrothgar of his filth fever.
Here's what happened in this afternoon's game, featuring the adventure Scions of Punjar. Each PC gets 650 xp.
Head through the doors into the North Tomb where one of the Dev'shir family's tombs has been smashed open. A quick look at the chunks of broken stone on the floor is enough for Gil who works out the tomb belong to Dugesia Dev'shir, a name that was missing from the family tree in the main chamber. Hrothgar and Juma go inside the burial niche and are attacked by an invisible force. The PCs aren't sure where to direct their attacks until the ghostly form of a young woman covered in horrible burn marks appears – the spirit of Dugesia. Several rounds of frustrating combat follow in which the ghost manages to repeatedly daze the PCs with her wail of the betrayed while the party struggle to hit her and then only do half damage when they do. Ulthar switches tack and tries to reason with Dugesia – he gets off to a good start but his efforts are thwarted by the incompetence of his companions, particularly Juma who tries to intimidate the ghost. The party do at least learn that Dugesia thinks it was her sister Lakaisha who violated her tomb and is working with the grave-robbers. When negotiations break down the PCs start to back away from the tomb although Juma is slow to leave and nearly goes down when Dugesia reveals her burned horrific visage.
Back in the city, the PCs go to visit Lady Patricia again in the Imperial Quarter and learn some of the family's recent troubled past – Dugesia died in a fire ten years ago and Lakaisha may have been involved, leading the family to have her committed to an institution in Rhodias, hundreds of miles away. When the PCs explain that they have met Dugesia's ghost, their patron begs them to make sure they find a way to grant her eternal peace. Lady Patricia says she will send a messenger snake to the asylum in Rhodias to check Lakaisha is still being cared for there.
Back in Flotsam, the PCs have been evicted so are forced to find new lodgings. Fortunately, they are able to rent an apartment for 30 gold bezants per month in Aymara Sabban in the Makers Ward, near the Khanduq of the Nightingale's Song.
Set off for Blood Canyon with Sora back in the party. Following the trail to the abandoned iron mine, the PCs approach boldly and are attacked by two bandits hiding on a tree platform near the mine entrance. Both are dealt with pretty easily although Sora gets stuck half way up the tree and has to be rescued by Juma who uses his dimensional warp sensibly for once. Hrothgar realises a rope going through the canyon walls is attached to an alarm bell and pulls it repeatedly to see if he can lure any bandits outside. When this doesn't work, Gil casts mage hand to keep ringing it while the PCs enter the mine. The party get to a T-junction and a quick plan is hatched but there's some confusion over who's going where so Juma and Hrothgar run in opposite directions. The gnoll triggers a tripwire and a quartet of crossbows open fire on him while Juma runs into five orcs waiting in their mess hall. Hrothgar summons his onyx dog and the PCs move in to attack the orcs. Ulthar takes the head off one with a vicious axe strike and Sora slays the cleric of Gruumsh. The battle over, the PCs search for secret doors, finding one to the north which opens into a corridor with a mine cart track in the middle. When Hrothgar and Rover head round the corner, a mine cart loaded with pointy weapons and alchemist's fire comes hurtling down the track towards them. The pair dash past the other PCs and the cart smashes into Juma and Gil before exploding, inflicting 28 points of damage on the eladrin.
Wary in case there's another cart, Gil casts ghost sound to create a distraction as Hrothgar and his dog go back round the corner. The bandit at the top shoots at them as they approach, "killing" Rover as slow-moving oil runs down the sloping corridor towards the PCs. Ulthar tries to leap over the oil but can't quite jump far enough, landing in the oil and falling over. Juma, Hrothgar and then Sora join him at the top of the passage and the genasi is able to lure the bandit into melee with his lightning lasso. Ganged up on, the hapless bandit surrenders.
Here's what happened in this afternoon's game; a tough challenge without Sora. Each PC gets 1,025 xp.
Gil gives Ranjeet Wind-dancer a gem to take a message to his family who live in an eladrin town in the forest.
Take Mahadevi home to the village of Riverbend and are rewarded with a free night's stay and supper at the Golden Knight inn.
Arrive back in Parsantium. Divide up the treasure found and give Sreedhar his share (the silver sword and the ancient gold coins). Jihad complains that he's not had enough treasure. Shop for potions, magic items and rituals.
Back at their houseboat, the black dragon's head Juma left on his bed has become rotten and has attracted a flock of scavenging seagulls. Jihad buys some new bed linen and then starts trying to get rid of the flesh on the skull. A messenger snake arrives from Lady Patricia Dev'shir, summoning the PCs to her estate in the morning. Later, Gil offers to help Jihad clean up his dragon skull; the wizards sends the head out over the water on a Tenser's floating disc, then launches a fireball at it to burn it clean. Unfortunately this only succeeds in blowing it up!
Ulthar, Jihad and Gil head across to the Imperial Quarter. Jihad tries to pick someone's pockets and fails; Gil trips him up and tries to get him to stop. The PCs eventually arrive at the Dev'shir estate and meet with Lady Patricia who explains someone has broken into the family mausoleum and stolen a necklace belonging to her aunt Cordelia which her son, Elam, found for sale in a pawn shop in the Dock Ward. She wants to hire the PCs to investigate for 1,000 gp. Jihad tries to steal one of Lady P's teacups but is caught in the act and has to put it back.
Head to Girik's Three Gold Coins and intimidate the one-eyed dwarf to reveal that a half-orc named Latimer pawned the necklace.
Ulthar returns to the Dev'shir house to speak to Elam who says he was in the Old Quarter drinking and whoring, and went into Girik's pawnshop out of curiosity. Meanwhile, Jihad and Gil go to Fahil's Floating Palace in search of Latimer. Jihad wins at three dragon ante but has a row with the party's landlord, Glyn Merryfield over the festering dragon's head and ends up getting the PCs thrown out of their houseboat.
Latimer arrives. He plays a couple of hands of cards with Jihad, beating him but the genasi does find out that Latimer is a member of a bandit gang called the Crimson Hand, based outside the city in a hideout in Blood Canyon.
When the half-orc leaves, he is followed out of Fahil's by a tiefling. Suspicious, the PCs follow and end up getting caught in an ambush as the tiefling warlock and thugs from the Golden Scimitars attack Latimer. The half-orc is shot with a poisoned crossbow bolt and goes down; Ulthar and Gil are also hit with poisoned weapons. The battle turns in the PCs' favour when Hrothgar arrives on the scene – the gnoll kills the tiefling and finishes off the last thug. Bringing Latimer round, the party learn that he used to belong to the Golden Scimitars before joining the Crimson Hand. The bandit gang is currently working for a witch who has had them stealing bodies from the Forest of the Dead. The PCs let him go and return to their houseboat.
Head out of the Camel Gate to the Forest of the Dead. Hrothgar visits the sacristy of Mormekar in the Batiaran section of the cemetery. The minister hasn't seen any signs of graverobbing. Hrothgar says a prayer to the god, leaving his grell beak trophy on the altar as an offering.
Find the Dev'shir mausoleum and trigger the glyph of warding hidden in the inscription which blasts Ulthar, Juma and Gil. After Hrothgar can't open the doors to the tomb, Gil casts knock to get inside. The gnoll barbarian heads inside the sepulchre. When he reaches the altar the doors to the left open and seven skeletons attack the party. Hrothgar gets hit several times and goes down, failing one death save, before being revived by Ulthar. Juma gets stuck in among the skeletons, killing two. One of the undead is a boneshard skeleton which explodes when bloodied, and again when its killed. As the PCs finish off the skeletons, the doors opposite open, revealing six tomb motes and three dread zombies. The tomb motes are killed by Gil's incendiary detonation before they can even attack but the zombies are tougher, getting to their feet several times when reduced to 0hp until Gil's flaming sphere puts them down permanently.
The battle over the PCs search the room, finding bricks and engraving tools under the altar, and studying the family tree on the north wall which implies that Lady Patricia and Lord Didymus had two other children. In the process, they trigger another glyph of warding but only Gil takes damage.
The party heads for the Great Temple to the Solar Gods. Deciding to enter via the entrance to the Hall of Savitri (god of the day long sun), Hrothgar walks up the steps and gets shot with an arrow fired by a dusk hag archer. The PCs move forward but remain on the steps and in the entrance corridor rather than going into the temple chamber itself. This makes them somewhat vulnerable to Induma the Moon Hag's howl and she shoves them backwards. Hrothgar attacks the bugbear wardancer, inviting the goblin to hit him first so he can use his Frost Wolf Rage. The hag archer that shot at Hrothgar is killed while the second one starts running round the outside of the temple. The goblins and hobgoblin in the room change into wolf-form – they are barghests – and move to attack as Induma withdraws. Juma follows the hag and hits her hard, bloodying her; then, Hrothgar charges in and finishes her off. As the barghest battle lord attacks the gnoll and the genasi, Gil moves his flaming sphere next to Ulthar and the two smaller barghests – he hits one of the demonic wolves but also clobbers Ulthar twice with fire damage. The second archer appears and starts taking potshots at Gil. Snowy and Ulthar finish off the barghests and go after her as Juma finishes off the battle lord who drops his magic great axe. Hearing this clang to the floor, Ulthar (who is on 2 hp after being hit by the archer's nightmare touch) decides to withdraw from the battle and retreat rapidly in the direction of the loot. Snowy and Gil chase after the archer but she disappears into the woods. Ulthar claims the +2 reckless great axe and the PCs search the Cosmic Chamber of Order which served as Induma and her sisters' living quarters. Juma complains about the small amount of treasure they find there.
Next, the PCs go into the Chamber of Surya (god of the rising & setting sun) – there is no treasure in here either, just goblin beds and graffiti. Juma pushes over a statue of Surya which upsets Sreedhar and Snowy. The room beyond is dedicated to Ushas and is filled with goblins. Gil charges in first and casts fire shroud which kills several goblin cutters, followed by the other PCs. A bugbear strangler who's been hiding behind a pillar leaps out and starts garotting Juma, then switches to Hrothgar when Juma teleports away. Although Hrothgar laughes at the bugbear's teddy-bear like appearance, the strangler is nevertheless able to squeeze the air out of the barbarian and he falls unconscious. Ulthar kills a couple of goblins while being shot at by the hag archer who reappears. Gil uses his Bigby's Icy Grasp* to attack the barghest and Snowy is having all sorts of stuff thrown at her by the goblin delver. Ulthar kills the archer and revives Hrothgar. Juma moves back to help the gnoll and gets strangled again before Snowy kills the bugbear with a commander's strike from the warlord. The dragonborn then kills the delver, causing his bag of tricks to explode, leaving a pile of alchemical goop behind, and Juma finishes off the last goblin. Worn out, the PCs take an extended rest.
Explore the four rathas. The first two are unoccupied but in the third the PCs battle two gricks who are soon joined by a grell. The grell grabs hold of Juma, stuns him with its venom and then drops the genasi down the bottom of the 30' deep pit it emerged from. Hrothgar battles the gricks while the others concentrate on the grell – Gil attacks it with both a flaming sphere and Bigby's Icy Grasp. Sora is also grabbed and dropped down the pit but the PCs are eventually able to overwhelm the monster with Hrothgar delivering the killing blow. The PCs find a silver-plated sword at the bottom of the pit and a gemstone in the fourth ratha. The ruins of Gopura have now been fully explored!
*controversially chosen instead of Fireball as his new 5th level daily power.
Here's what happened in this afternoon's game - for the second time running, we got through three combat encounters as well as some exploration. Each PC gets 575 xp, bringing everyone to 5th level.
Head over to look at the "chariot shrine". Here, the PCs meet Ranjeet Wind-dancer, a faerie dragon, who gives the party some useful information on what can be found in the ruins. Deciding to leave Induma the Moon Hag and the Great Temple for now, the PCs go to the ogre's cave at the far eastern end of Gopura in the hopes of rescuing two human captives.
The passage inside is narrow, damp and smelly and after a short distance the PCs find the body of one of the two missing people stuffed into an alcove. Further in, the tunnel opens into a large cave where the ogre lives with his two pet tigers. While Hrothgar and Sora hold the line against the tigers, Juma uses swiftcurrent to cross the underground river and attack the ogre, telling the big brute to "calm down" as he smashes angrily at the genasi with his club. Gil attacks the ogre with his flaming sphere, egged on by Ranjeet – the extent of his contribution, much to Juma's disappointment. The PCs manage to finish off the first tiger and the ogre, leaving it to Hrothgar who had been missing throughout the battle to kill the last big cat.
The party free the captured villager, a woman called Mahadevi, but there isn't much sensitivity from Hrothgar when he tells her about her dead husband and she bursts into tears. Shrugging his hairy shoulders, the gnoll starts pulling out the ogre's teeth to add to his trophy necklace while the others loot the cave, finding a +2 cloak of translocation. Promising to take Mahadevi back to her village of Riverbend later "if it's on the way", the PCs settle down for an extended rest.
After resting, the PCs bury Mahadevi's husband. Ranjeet volunteers to look after the grieving widow; he will take her to the Monkey Temple for safekeeping. Heading up the slope behind the entrance to the ogre cave, they enter a ratha (small shrine) only to find it has an unstable ceiling which collapses on top of them.
Next, the PCs go inside another ratha overgrown with vines. They're not even remotely surprised when the skeletons on the floor of the temple get up to attack but these aren't the real threat. A trio of vine horrors emerge from behind the garbhagriha, attacking with vicious vines which entangle and strangle the heroes. Juma goes after the spellfiend which blinds Sora with its caustic cloud while the others fight the two other horrors. Gil bravely fey steps into the middle of the shrine to cast fire shroud. The two controllers are killed and the PCs close in on the spellfiend which manages to blind Hrothgar and Juma. Ulthar gets in close and finishes off the plant monster. Amongst the debris, the PCs find an onyx dog figurine.
From here, the party enter the impressive Temple of the Black Leopard, causing a giant four-armed statue and two hooded cobras to animate. The fight inside is another tough one and Ulthar, poisoned and slashed several times with scimitars, ends up unconscious, failing a death save. As the PCs close in on the statue after killing the two snakes, it uses its sweeping whirlwind to knock everyone flying. Getting to his feet, Hrothgar knocks the statue over with his attack and pushes it into the entrance but Sora pulls it back again with call to arms. As everyone gangs up on the construct, Sora finishes it off with a critical hit from her javelin.
With the guardians disposed of, the PCs are able to open the doors to the inner sanctum which holds an enormous statue of Bauhei, the Black Leopard. At the foot of the statue is a sadhu – an ancient mystic named Shankara, who invites the party to walk round the temple and study the carvings to learn the history of Dhak Janjua. The first three storeys of the tower tell the story of Vrishabha's rise to power and his defeat by Srivatsa but the third floor carvings are more interesting, showing Vrishabha's imprisonment in a glacier high in the Pillars of Heaven Mountains, rakshasas in modern-day Parsantium, and then yakfolk sorcerers performing a ritual from an ancient book to free the rakshasa rajah, allowing him to take his revenge on the city. When the PCs return downstairs to talk to the sadhu, he utters a few words about what the PCs have seen just being one possible future before returning to his deep trance.
Here's what happened in this afternoon's action-packed session. Each PC gets 770 xp.
Meet Sreedhar and leave the city of Parsantium for the Feyshore Forest, having bought tents to sleep in. Ulthar recounts what he knows about the ruins of Gopura and the founding of Parsantium to the rest of the party, impressing Sreedhar with his knowledge of history.
Enter the Feyshore Forest where the PCs are attacked by forest imps and bugbear hunters. Although the battle is at times frustrating as the imps buzz around their heads and the bugbears shoot from the cover of the foliage, the PCs emerge the victors after 8 rounds of combat in which Hrothgar (for once) isn't hit at all.
Carrying on further into the forest, the PCs arrive at the ruins of Gopura. Entering the Elephant Gate, they are attacked by a pair of harpies and their goblin servants. The harpies pull the PCs towards them and rooting them to the spot with their alluring songs and then blasting them with their deadly screeches, dazing them. Meanwhile, the goblins move about throwing javelins and firing arrows at the party. This battle is much tougher – Ulthar is knocked unconscious, revived, and then knocked down again, failing two death saves. After the first harpy and most of the goblins have been killed, the surviving harpy and last goblin standing manage to give the PCs the runaround for several rounds before Sora charges the harpy and finishes it off. Feeling exhausted after the encounter, the PCs take an extended rest once they've looted the harpies' nest.
Heading through the carved archway ahead in single file, the PCs approach a temple covered in monkeys. The little animals start climbing all over the party and suddenly two of them run off into the trees with Juma's scroll and Gil's wand. The PCs respond by attacking the thieving monkeys despite Sreedhar's assertions that the animals are sacred. The monkeys are killed easily but the stolen items are caught by others as they fall out of the trees towards the ground. The PCs give chase with Sora trying to tell the others to stop killing monkeys. Eventually, they catch up with the monkeys and get their stuff back – while Sora gives one some food, Juma kills the other one. Returning to the temple, the party are disappointed that there doesn't appear to be any treasure inside, just some carvings of Hanuman helping Shiva defeat Ravana. However, Sora, the only PC who didn't kill any monkeys, notices a glow coming from a brick in the base of the statue of Hanuman. She doesn't say anything to the others but goes back into the temple later when she's on watch. In a hidden compartment, she finds a pair of red leather gloves bearing Hanuman's face.
The PCs go to investigate the three large stupas. As they pass the third giant stone bell, they are attacked by more goblins, one of whom is riding on a carrion crawler. Hrothgar charges in to the fray while Gil casts flaming sphere and orbmaster's incendiary detonation between the bugbear and the 'crawler. Hrothgar and Ulthar both get poisoned by the beast and Gil goes unconscious after being hit by several arrows and javelins from the goblins. Once the bugbear and the carrion crawler are killed, the tide turns in the PCs' favour and the last two goblin sharpshooters run into the woods.
The Ongoing Adventures of the Juma Gang, Tenth Session: Draconic Rematch!
Here's what happened in this afternoon's session. Each PC gets 430 xp.
The PCs head to the Mercantile Quarter to do some shopping (Ulthar's favourite pastime!). While wandering around a crowded market, they hear a cry of "There they are! Get them!" as a group of Golden Scimitars, complete with spitting drake, move in to attack. Their leader, Yorgi, is able to inspire his lackeys to fight on after death so when Sora kills one of the ruffians, he is able to strike back at the paladin before dying. Hrothgar finds himself surrounded by four enemies but uses great cleave to hit them all and push them away from him. Juma attacks Mehmed (flashy swashbuckler) with flaming blades and then teleports over to kill Yorgi with dual lightning strike. Ulthar uses inspired belligerence to give the others combat advantage over Mehmed as Hrothgar is knocked unconscious by Ziper who retaliates after being knocked into a fountain by the gnoll. Gil kills Mehmed with two magic missiles as the tide of battle turns in the PCs' favour. Juma kills the fleeing drake and Sora takes down Ziper with her javelin as Ulthar knocks the only surviving attacker – a woman – unconscious. After quickly looting the bodies – finding a +1 great axe and +1 leather armour of sudden recovery – they drag their captive off before the City Watch arrive.
In the dark of an alley, the PCs interrogate the woman who knows little but confirms that Yorgi was acting on the orders of Zeno. Hrothgar bites her finger off as part of the interrogation as Juma says (in his camp fashion) "Tell him the Juma Gang will persevere and are going to get him! Tell him we killed Orloch too!" The PCs let her go and head back to their houseboat.
Hrothgar and Ulthar head out into the Dolphin's Strait with Orloch's head to visit Jagadamba who performs the speak with dead ritual for 250 gold bezants. Unfortuately, Orloch knows nothing about Hrothgar's tribe and it seems the barbarian has wasted his money. In frustration, he rips a tooth from Orloch's mouth as a tiny trophy.
Meanwhile, Sora polishes her new magic greatsword until it gleams as Juma and Gil head to Fahil's Floating Palace for a night of very low stakes gambling and cheap drinks. Here they run into Glyn Merryfield, landlord of the Fat Grouper, who begs them not to tell his wife they saw him there. He offers to let the party off a week's rent in exchange.
The PCs visit Jagadamba again and buy potions of acid resistance. Returning to Orloch's auction house via the sewers, they emerge on to the dock in the cave where they fought the black dragon. Despite planning to split up, the PCs head into the water – Sora is in a rowboat – grouped quite close together so when Munwithurix the dragon appears she is able to catch Gil, Sora and Juma in her acid breath weapon. The PCs move in to attack: Hrothgar leaps into the fray, literally, but is struck twice by the dragon as he does so. Fortunately, the PCs' new potions work really well and the party are able to ignore the acid dripping from her jaws. As the beast conjures its cloud of darkness, the PCs surround her and Gil sends in his flaming sphere. The dragon slips away under the water to hide but is rediscovered as Sora rows her boat into her! Again the PCs attack from all sides and again Munwithurix conjures her cloud, breathing on the party when she is bloodied by their attacks. Eventually, she is driven off for a second time – she takes to the air and lands on the dry cavern floor to the west. Here the dragon makes a final stand – Sora criticals with holy strike and Gil finishes her off with magic missile. Juma cuts off the dragon's head and the PCs plunder her hoard.


text:
Fraserburgh Golf Club
This unspoilt, traditional links is the oldest club North of St. Andrews.
Aberdeenshire, Scotland
The 13th green is the inspiration for the 9th green at Rio's Olympic course.
Tom Doak reckons the four par 3's are as good as any other set in Scotland!?
Mr Doak also says it is every bit as charming and quirky as its neighbour to the south, Cruden Bay.
Fraserburgh Golf Club Videos
Ru MacDonald's video of the links can be seen here
Watch The Average Golfers video here
The Fraserburgh Golf Club is the 7th oldest golf club in the world, 5th oldest in Scotland and the oldest club with the same name! Although the club itself was founded in 1777, records indicate golf was played on the links as early as 1613!
The club is located on the Corbie Hill dunes of Fraserburgh Bay flanked by Fraserburgh Beach and Waters of Philorth Beach.
Fraserburgh GC Design History
The original 9 hole course was played half a mile north of its present location. Moved to Philorth Links in 1891, it would take until 1922 for James Braid to lay out what would become the foundation of today's Corbie Hill Course. In the 1950s, Holes 15, 16 and 17 were added. Next, Alex Swan and Sir Henry Cotton added the 8th, 9th, 11th and 12th in 1976.
The nine-hole course at Fraserburgh Golf Club, the Rosehill, is made up of 4 of the original James Braid holes and 5 from Jack Pressley in 1996.
Fraserburgh GC Practice Facilities
Proper practice facilities are a rarity for many golf clubs in Scotland. A floodlit driving range with grass tees and a short game zone is conveniently located adjacent to the club, appropriately named the Dunes Golf Centre.
FGC Holes by Architect
1-7, 10, 13, 14 - James Braid
15-17 - Alex Swan?
8, 9, 11, 12 - Alex Swan & Sir Henry Cotton
Cotton, Henry
Swan, Alex
Aberdeenshire, AB43 8TL, Scotland
More courses from the Bang For Your Buck Collection
St Enodoc Golf Club
St Enodoc Golf Club is a James Braid design which dates from 1890. With spectacular views over the Camel Estuary to Padstow and the Atlantic Ocean, this...
R. Sandilands	JCB Golf & Country Club
Formby Ladies Golf Club
Andrew Hastie	JCB Golf & Country Club
Montrose Golf Links
Montrose Golf Links is found in the town of Montrose in Angus, Scotland. On the eastern coast of Scotland overlooking the North Sea, the course is located...

redpajama_set_name: RedPajamaCommonCrawl


Mrs. Ida Ward Bryant, 89 of 1610 Nelson Street, passed away at 9:20 p.m. Wednesday at Parkview Nursing Home. She had been in ill health for a year.
A native of Raleigh, Mississippi, she was born September 14, 1874, the daughter of James C. and Martha Parkhill Ward. She came to Collin County 45 years ago and had lived in McKinney for 42 years. She was a member of the North Baptist Church.
Surviving are five daughters, Mrs. Gertrude Bell, McKinney; Mrs. Anna Vera Oakes, Springfield, Mo.; Mrs. Gladys West, San Antonio; Mrs. Doris Commons, Muleshoe; Mrs. Bernice Moulden, Casper, Wyo.; one son, Col. J. B. (Basil) Bryant of Monmouth, N. J.; brother P,. H. Ward of Arcadia, Calif.; sister Mrs. Lea Dooley, Jackson, Miss., ten grandchildren and six great-grandchildren. Her parents and a daughter, Mrs. Myrtle Gordon of Pueblo, Colo., preceded her in death.


text:
var level    = require('level-test')()
var test     = require('tape')
var sublevel = require('level-sublevel')
var master   = require('../')
var pull     = require('pull-stream')

test('protocol', function (t) {
  var db = sublevel(level('protocol-1'))

  var masterDb = master(db, 'master', 'TEST')

  var ts = Date.now()

  db.put('foo', 'bar', function (err) {
    t.notOk(err)

    var n = 2

    masterDb.createMasterStream({clock: {TEST: 0}})
      .pipe(pull.collect(function (err, all) {
        t.notOk(err)
        console.log('1')
        t.equal(all.length, 1)
        t.equal(all[0].key, 'foo')
        t.equal(all[0].value, 'bar')
        next()
      }))

    masterDb.clock(function (err, clock) {
      masterDb.createMasterStream({clock: clock})
        .pipe(pull.collect(function (err, all) {
          console.log('2')
          console.log(all, clock)
          t.notOk(err)
          t.equal(all.length, 0)
          next()
        }))
    })

    function next () {
      if(--n) return
      t.end()
    }
  })
})

redpajama_set_name: RedPajamaGithub


Bring broth to a boil in a small saucepan; remove from heat. Stir in couscous. Cover and let stand 4 minutes. Place couscous in a small bowl; fluff with a fork. Cool for 10 minutes. Add 1/4 teaspoon salt, 1/4 teaspoon pepper, and next 8 ingredients (through garlic); toss.
Place chicken between 2 sheets of plastic wrap; pound to 1/4-inch thickness. Divide couscous mixture evenly among breast halves; roll up jelly-roll fashion. Secure with wooden picks. Sprinkle chicken with 1/4 teaspoon salt and 1/4 teaspoon pepper.
Heat a large ovenproof skillet over medium-high heat. Coat pan with cooking spray. Add chicken to pan; cook for 6 minutes or until browned; turn chicken over. Bake at 400° for 5 minutes or until chicken is done.


text:
Former Cardinals kicker Phil Dawson retires
Former Cardinals kicker Phil Dawson retires "I guess, you try to look at it glass half-full, I do get to kind of see what's going on and maybe see the mistakes other people are making and try to add different tools and things to my arsenal that I didn't have prior to that," he said. "So it is good from that standpoint." TEMPE, Ariz. — Jonathan Cooper has kind of become the forgotten man on the Arizona Cardinals.The team's first round draft pick out of North Carolina in April, he was set to start for the team at left guard before a broken leg suffered in the team's third preseason game against the San Diego Chargers.The seventh overall selection, he was placed on injured reserve less than a week later, and has only been seen wheeling around the locker room on a scooter with his leg elevated and in a cast. Wednesday, however, Cooper was sitting at his locker, with no scooter or cast to be found. The boot, he said, was removed in the last week or two, though it's not officially gone for good."I try to use it as sparingly as possible," he said. "But under certain circumstances I'll wear it just to be safe."Not surprisingly, Cooper said it's been "very difficult" only being able to watch his teammates, rather than play with them."Of course you'd like to be a part of all of this, especially with how well we're doing, but you kind of learn to deal with it on the front end and just try to do the best you can later."Later is where there is plenty to look forward to for the 6-foot-2, 311-pound player.Unlike some injuries, a broken leg is not the type that should impact Cooper's game once it is finally healed. He says his progress has been coming along well, as he's feeling much better than he was even a couple of weeks ago, when the boot was first removed."It felt great," he said of what that felt like. "I was just happy to walk again, so that was the biggest thing — not being uneven with wearing a boot and all that, so that was great." Top Stories Derrick Hall satisfied with D-backs' buying and selling 0 Comments Share Cooper has maintained a positive outlook during all of this, saying it was much more difficult to deal with early on when the injury first happened. Now, though, he says it is much easier to accept what happened and start preparing for next season.And there's not a doubt in his mind that he'll be ready to go in 2014."Just week to week, the progress is so huge," he said. "So now I feel like at that point in time I should be good to go."The Cardinals are undoubtedly banking on it. Cooper was a first round pick for a reason, and next season he'll be expected to slide in and be the player the team thought it was drafting. But Cooper says he can't worry about that yet. "I try to do week to week, just try to improve," he said. "I guess that is exciting — I am excited to come back, but I know anticipation will kill me if I think about it too much."So I'm just trying to make sure I'm able to run and then do lateral movements and cuts and all that before I think about trying to block somebody."But when that time comes, Cooper says his time off may help him be a more effective player when he returns. Though he'd rather have never gotten hurt, there may be a bit of a silver lining to the dark cloud. The 5: Takeaways from the Coyotes' introduction of Alex Meruelo Grace expects Greinke trade to have emotional impact
上海后花园EM 上海夜网QG 日喀则桑拿 洮南桑拿 爱上海419YD 爱上海GO 爱上海XL 贵族宝贝LL 贵族宝贝QO 贵族宝贝UL
← 0 Comments


text:
import io
import os
import re
import copy

from more_itertools import peekable

elem_re = re.compile(r'(<\?[^>]+\?>|<![^>]+>|<\/|\/>|<|>|[^<>\s]+|\s+)', re.DOTALL | re.MULTILINE)
attrib_re = re.compile(r'\s*([^=]+)="([^"]*)"')
SEQ_TYPES = (list, tuple)

class Element(object):

    def __init__(self, tag=None, parent=None):
        self.tag = tag
        self.parent = parent
        self.children = []
        self.attribs = {}
        self.attrib_keys = []
        self.closed = False

    def __deepcopy__(self, memo):
        result = self.__class__()
        result.tag = self.tag
        result.parent = self.parent
        result.children = copy.deepcopy(self.children, memo)
        for child in result.children:
            child.parent = result
        result.attribs = copy.deepcopy(self.attribs, memo)
        result.attrib_keys = copy.deepcopy(self.attrib_keys, memo)
        result.closed = self.closed
        return result

    def __str__(self):
        l = ['%s:%s[' % (self.tag, hash(self))]
        for key in self.attrib_keys:
            l.append('%s=%s,' % (key, self.attribs[key]))
        l.append(']')
        return ''.join(l)

    def parse(self, src, template):
        contentiter = peekable(elem_re.finditer(src))
        in_tag = False

        current_elem = self

        tag_content = ''

        try:
            while 1:
                text = next(contentiter).group(1)

                if contentiter:
                    peek_next = contentiter.peek()
                    if peek_next is not None:
                        peek_next = peek_next.group(1)

                if text.startswith('<?'):
                    current_elem.children.append(TextElement(text))

                elif text.startswith('<!'):
                    current_elem.children.append(TextElement(text))

                elif text == '</':
                    template.check_element(current_elem)
                    next(contentiter).group(1)

                    current_elem = current_elem.parent

                elif text == '/>':
                    self.__parse_tag(current_elem, tag_content)
                    in_tag = False
                    tag_content = ''
                    template.check_element(current_elem)
                    current_elem.closed = True
                    current_elem = current_elem.parent

                elif text == '<' and peek_next != '=':
                    in_tag = True
                    tag = next(contentiter).group(1)
                    elem = Element(tag, current_elem)
                    current_elem.children.append(elem)
                    current_elem = elem

                elif text == '>' and peek_next != '=':
                    self.__parse_tag(current_elem, tag_content)
                    in_tag = False
                    tag_content = ''

                else:
                    if in_tag:
                        tag_content += text
                    else:
                        # append the text to the prior TextElement if present (otherwise add new)
                        if len(current_elem.children) > 0 and type(current_elem.children[-1]) == TextElement:
                            current_elem.children[-1].content += text
                        else:
                            te = TextElement(text)
                            current_elem.children.append(te)
        except StopIteration:
            pass

    def __parse_tag(self, elem, tag_content):
        for mat in attrib_re.finditer(tag_content):
            key = mat.group(1)
            elem.attribs[key] = mat.group(2)
            elem.attrib_keys.append(key)

    def write(self, buf, translator=None):
        if self.tag:
            buf.write('<')
            buf.write(self.tag)

            for key in self.attrib_keys:
                if key in ('eid', 'aid', 'rid'):
                    continue
                buf.write(' ')
                buf.write(key)
                buf.write('="')
                if translator:
                    buf.write(translator(self.attribs[key]))
                else:
                    buf.write(self.attribs[key])
                buf.write('"')

            if self.closed:
                buf.write(' />')
            else:
                buf.write('>')

        for child in self.children:
            child.write(buf, translator)

        if self.tag and not self.closed:
            buf.write('</')
            buf.write(self.tag)
            buf.write('>')

def find_last_matching_elem(elem, idtype, idval, match=None):
    if elem is not None:
        if elem.attribs and idtype in elem.attribs and elem.attribs[idtype] == idval:
            match = elem

        if elem.children:
            for child in elem.children:
                rtn = find_last_matching_elem(child, idtype, idval, match)
                if rtn:
                    match = rtn
    return match

class TextElement(object):
    def __init__(self, content):
        self.content = content
        self.tag = None
        self.attribs = None
        self.children = None

    def __str__(self):
        s = self.content.rstrip()
        if s == '':
            s = ' '
        return 'text("%s")' % s

    def write(self, buf, translator=None):
        if translator:
            buf.write(translator(str(self.content)))
        else:
            buf.write(str(self.content))

class Template(object):
    class_cache = {}

    def __init__(self, path):
        self.path = path
        self.__element_ids = {}
        self.__attrib_ids = {}
        self.__repeat_ids = {}
        self.root = Element(None)
        with open(self.path) as f:
            content = f.read()
            self.root.parse(content, self)
        self.translator = None

    def check_element(self, elem, check_children=False, next_to_elem=None):
        """
        Given an element, check its attributes for references to the three proton attributes ('eid', 'aid' and 'rid').
        """
        self.__add_element('eid', elem.attribs, self.__element_ids, elem, next_to_elem)
        self.__add_element('aid', elem.attribs, self.__attrib_ids, elem, next_to_elem)
        self.__add_element('rid', elem.attribs, self.__repeat_ids, elem, next_to_elem)
        if check_children and elem.children:
            for child in elem.children:
                self.check_element(child, True, next_to_elem)

    def __add_element(self, idtype, attribs, attribmap, elem, next_to_elem=None):
        if attribs and idtype in attribs:
            idval = attribs[idtype]
            if idval not in attribmap:
                attribmap[idval] = []
            lst = attribmap[idval]

            matching_elem = find_last_matching_elem(next_to_elem, idtype, attribs[idtype])
            if matching_elem and matching_elem in lst:
                pos = lst.index(matching_elem)
                lst.insert(pos + 1, elem)
            else:
                lst.append(elem)

    def append(self, eid, content, idx='*'):
        if eid in self.__element_ids:
            elems = self.__element_ids[eid]
            if idx == '*':
                for elem in elems:
                    self.__append(elem, content)
            elif idx < len(elems):
                self.__append(elems[idx], content)

    def __append(self, elem, content):
        elem.parse(content, self)

    def set_value(self, eid, val, idx='*'):
        """
        Set the content of an xml element marked with the matching eid attribute.
        """
        if eid in self.__element_ids:
            elems = self.__element_ids[eid]
            if type(val) in SEQ_TYPES:
                idx = 0
            if idx == '*':
                for elem in elems:
                    self.__set_value(eid, elem, val, idx)
            elif idx < len(elems):
                self.__set_value(eid, elems[idx], val, idx)

    def __set_value(self, eid, elem, val, idx):
        if type(val) in SEQ_TYPES:
            if idx == '*':
                idx = 0
            self.__repeat(elem, len(val))
            for x in range(0, len(val)):
                self.set_value(eid, val[x], idx + x)
        else:
            elem.children = [TextElement(val)]

    def set_attribute(self, aid, attrib, val, idx='*'):
        """
        Set the value of an xml attribute marked with the matching aid attribute.
        """
        if aid in self.__attrib_ids:
            elems = self.__attrib_ids[aid]
            if idx == '*':
                for elem in elems:
                    self.__set_attribute(elem, attrib, val)
            elif idx < len(elems):
                elem = elems[idx]
                self.__set_attribute(elem, attrib, val)

    def __set_attribute(self, elem, attrib, val):
        if attrib not in elem.attribs:
            elem.attrib_keys.append(attrib)
        elem.attribs[attrib] = val

    def set_properties(self, eid, value, idx='*'):
        """
        Set the value and/or attributes of an xml element, marked with the matching eid attribute, using the
        properties of the specified object.
        """
        if value.__class__ not in Template.class_cache:
            props = []
            for name in dir(value.__class__):
                prop = getattr(value.__class__, name)
                if type(prop) == property and hasattr(prop, 'fget'):
                    props.append((name, prop))
            Template.class_cache[value.__class__] = props
        for (name, prop) in Template.class_cache[value.__class__]:
            new_eid = ''.join([eid, ':', name])
            self.set_value(new_eid, prop.fget(value), idx)
            self.set_attribute(eid, name, prop.fget(value), idx)

    def hide(self, eid, index=0):
        """
        Hide the element with the matching eid. If no match, look for an element with a matching rid.
        """
        elems = None
        if eid in self.__element_ids:
            elems = self.__element_ids[eid]
        elif eid in self.__repeat_ids:
            elems = self.__repeat_ids[eid]

        if elems and index < len(elems):
            elem = elems[index]
            elem.parent.children.remove(elem)

    def repeat(self, rid, count, index=0):
        """
        Repeat an xml element marked with the matching rid.
        """
        elems = None
        if rid in self.__repeat_ids:
            elems = self.__repeat_ids[rid]
        elif rid in self.__element_ids:
            elems = self.__element_ids

        if elems and index < len(elems):
            elem = elems[index]
            self.__repeat(elem, count)

    def __repeat(self, elem, count):
        current_pos = elem.parent.children.index(elem) + 1
        copied_elem = elem
        for x in range(0, count - 1):
            elem_copy = copy.deepcopy(elem)
            self.check_element(elem_copy, True, copied_elem)
            copied_elem = elem_copy
            elem.parent.children.insert(current_pos + x, elem_copy)

    def replace(self, eid, replacement, index=0):
        """
        Replace an xml element marked with the matching eid. If the replacement value is an Element or TextElement,
        it's swapped in untouched. If it's a Template, the children of the root element in the template are used.
        Otherwise the replacement value is wrapped with a TextElement.
        """
        if eid in self.__element_ids:
            elems = self.__element_ids[eid]
        elif eid in self.__repeat_ids:
            elems = self.__repeat_ids[eid]
        else:
            return

        if index < len(elems):
            elem = elems[index]
            current_pos = elem.parent.children.index(elem)
            elem.parent.children.remove(elem)
            replacement_type = type(replacement)
            if replacement_type in (Element, TextElement):
                self.check_element(replacement, True)
                elem.parent.children.insert(current_pos, replacement)
                replacement.parent = elem.parent
            elif replacement_type == Template:
                for child in replacement.root.children:
                    elem.parent.children.insert(current_pos, child)
                    child.parent = elem.parent
                    current_pos += 1
                self.__merge_ids(self.__element_ids, replacement.__element_ids)
                self.__merge_ids(self.__attrib_ids, replacement.__attrib_ids)
                self.__merge_ids(self.__repeat_ids, replacement.__repeat_ids)
            else:
                elem.parent.children.insert(current_pos, TextElement(replacement))

    def __merge_ids(self, self_ids, ids):
        for key, val in ids.items():
            if key in self_ids:
                self_ids[key] += val
            else:
                self_ids[key] = val

    def __str__(self):
        buf = io.StringIO()
        self.root.write(buf, self.translator)
        return buf.getvalue()

base_dir = os.getcwd()
templates = {}

def get_template(name):
    """
    Return a copy of the template with the specified name. If not found, or an error occurs
    during the load, return None.
    """
    path = os.path.join(base_dir, name)
    if path not in templates:
        if not os.path.exists(path):
            raise RuntimeError('No such template %s' % path)
        try:
            templates[path] = Template(path)
        except IOError:
            return None

    return copy.deepcopy(templates[path])