diff --git a/src/posts/crafting-grand-archway_pt1.md b/src/posts/crafting-grand-archway_pt1.md
index de58f6e7..42d88f06 100644
--- a/src/posts/crafting-grand-archway_pt1.md
+++ b/src/posts/crafting-grand-archway_pt1.md
@@ -10,7 +10,7 @@ next:
title: "Part II"
footnotes:
- ref: "1"
- title: "hoarding"
+ anchor: "hoarding"
titleIcon: "cubes"
text: "A key skill of any terrain crafter is identifying 'potentially useful' pieces of rubbish/garbage/trash. However, if living with a partner, you must also become proficient in convinving _them_ that there is some use for it. The problem is you just don't know exactly what it could be yet..."
---
@@ -87,7 +87,7 @@ While the shapes I was adding were simple, enough variety helps to sell the look

-I was enjoying working with the thinner, white foam for detailing, because it was much easier to cut with a knife than the pink stuff. But my gun-ho approach did result in a lot of cutting things after glueing them, trying to be roughly symmetrical.
+I was enjoying working with the thinner, white foam for detailing, because it was much easier to cut with a knife than the pink stuff. But my Gung-ho approach did result in a lot of cutting things after glueing them, trying to be roughly symmetrical.
I'd ever put together - And I wasn't even finished. Because the outside was looking great, it felt right to cover the disgusting exposed cardboad on the inside. I cut some pink pillars to go in the corners and took a few attempts to get the interior facades cut just right, so the gaps were minimal - although I wasn't holding myself to too high of a standard here.
@@ -83,7 +83,7 @@ Then it was a simple job of cutting a piece to cover the remaining card and mark
Obviously I would measure the pieces out and score the bricks before glueing it in place. The extra effort to do the inside really paid off and the piece hard started to feel great to hold and look at - although it was a little wobbly on the table.
-
+
To stabilise the bottom I then cut and glued squares of cardstock on the feet and underside of the roof. I had thought to try some intricate dome shape with bricks - but I'm not _that_ crazy... yet.
@@ -100,7 +100,7 @@ However I was crazy enough to realise that even though no one would ever see the
After inserting and glueing this floor/ceiling bit in I was really starting to feel accomplished! The piece was really getting some weight and heft to it which made it feel more substantial. Despite being an amalgamation of insulation foam, hot glue and cardboard it was almost.. *art*?
-
+
I decided this was a good place to leave it for this 'episode'. [Part III](crafting-grand-archway_pt3) covers the roof and "edge bits".
diff --git a/src/posts/crafting-grand-archway_pt3.md b/src/posts/crafting-grand-archway_pt3.md
index dc4a5c3f..49c76fdf 100644
--- a/src/posts/crafting-grand-archway_pt3.md
+++ b/src/posts/crafting-grand-archway_pt3.md
@@ -19,7 +19,7 @@ footnotes:
import ImgGrid from "../lib/components/layout/ImgGrid.svelte";
-
+
With both sides completed it was looking great, but definitely missing some panache. There were a lot of gaps between my non-perfect cuts of foam that needed filling, and the top needed some detailing. Wanting to consolidate the work I'd already done, before braving more foam, I grabbed some spackle and started slapping it into all the gaps.
@@ -59,7 +59,7 @@ I felt really good glueing this slab onto the top of the build. If I had more ha

-I then started adding definition to the strips of foam on the eges, giving them impression they were great slabs. After making a pig's ear of the first one, I measured out the marks on the other sides. Fortunately, mistakes are somewhat easily covered up at this stage with more grout.
+I then started adding definition to the strips of foam on the edges, giving them impression they were great slabs. After making a pig's ear of the first one, I measured out the marks on the other sides. Fortunately, mistakes are somewhat easily covered up at this stage with more grout.
import CarouselGallery from "../lib/components/layout/CarouselGallery.svelte";
import { DIORAMA_GALLERY } from "../lib/data/galleries.ts";
+ import FaIcon from "../lib/components/utils/FaIcon.svelte";
+
+
+
+
+About a year ago I finished my first diorama project. As far as miniature dioramas go it is fairly static, but I'd like to think it tells a bit of a story. I have always loved miniature dioramas, since I first opened the pages of the Lord of the Rings Warhammer rule book, and saw how they made the rivers, rocks and little walls from cork and stones. I think it was important to keep it simple for the first one, and we can get more ambitious as time goes on!
+
+# The Mini
+
+I wanted to paint a mini as a gift for a good friend. Initially I had no idea what I would do for him, so I went to my local hobby store and rummaged through the D&D bins until I found this guy. We hadn't known each other very long at the time, but I knew he liked [Hearthstone](https://hearthstone.blizzard.com/en-gb). The mini was a sort of boar-man with these epaulets that felt very on brand for a character in that world or [World of Warcraft](https://worldofwarcraft.blizzard.com/en-gb/) - the same kind of colourful fantasy.
+
+
+
+The cogs started whirring and an idea began to form in my head. I wanted to paint it in bright colours, purples and greens, and have him standing on a clifftop in the moonlight. I had never done any OSL (object source lighting) before but I wanted to try and capture that in the final piece.
+
+I did find that the way the resin had been cast resulted in the details being slightly less crisp than other minis - and to to define the intricate bits was quite challening. But I was careful enough to capture the essence of what I wanted. I have learned my lesson about painting these kind of resin models! Nonetheless I forged on.
+
+
+
+I tried to capture the colder moonlight by mixing a light blue into all my colours for highlights. I think it worked to tie the colours together but I don't think it particularly has much contrast. There aren't any shadows that one would expect to see when a light source is directly above.
+
+# Telling a story with the Base
+
+The real inspiration I had for doing this was trying to find something to be a plinth. I found the lid of a glass coffee container actually made a really cool plinth. The story I wanted to tell was this rogue Warlock/Druid fellow making a long journey, probably on a quest to do something nefarious. The scene shows him having set up his last camp, looking down into a deep valley at a town or village where his final task awaits him, to which he will attend first thing in the morning. I wanted to add the campsite in with a fire because I felt that my painting skills weren't quite enough to really emphasise this was a night time scene.
+
+## Building
+
+I started with cork roughly stacked on the plinth as jagged rocks. I covered these in ultrathin superglue to harden them up. I wanted to stack up a pile to become a cliff top, whilst leaving a flat area for the campsite below.
+
+
+
+I then smoothed out all the cork layers with polyfilla, which actually gave a really good rock texture - I'll bear that in mind for future endeavours. I selected an appropriate piece of orchid bark for a Lion-King-esque cliff edge, jutting out over the edge of a valley. This was supported by a build up of milliput, which I textured with the round side of a metal sculpting tool.
+
+
+
+To make everything a bit more uniform I covered the piece in texture paste, leaving the odd rock jutting out here and there. I then laid out a cascade of round rocks to match the somewhat cartoonish aesthetic that we were going for, and then some smaller rocks with some sand on top. I locked all of this down with a layer of ultrathin superglue, which has a very low surface tension and covers surfaces evenly.
+
+
+
+
+After the rocks were down I started working on the campsite. It didn't need to be too complex, just a campfire and some gear resting nearby. I actually went back and forth a few times on how to achieve this, whether to include another weapon (he was already holding his staff though) or whether to try and make it more of a scene with some leftover food or something. Erring on the side of keeping things simple I ended up opting for a backpack, which comes from an [Ogre Kingdoms](https://www.warhammer.com/en-GB/shop/Gutbusters-Ogors-2018?queryID=44b2bd7346096639eb3e9524ee085fdc) kit (as they were called when I bought them), and a length of rope which possibly comes from [Frostgrave Soldiers](https://www.northstarfigures.com/prod.php?prod=7467).
+
+The campfire is just pieces of sprue, shaved at jaunty angles to try to play into the wonky Hearthstone/WoW aesthetic.
+
+
+
+I was already pleased with the outcome - it had this anticlockwise spiral moving up from the flattened area up to the edge of the cliff.
+
+I wanted to draw the eye up from the campsite to the top of the cliff, and tried a few things before settling on a wee cat critter. This came from the [Frostgrave](https://www.ospreypublishing.com/uk/frostgrave-second-edition-9781472834683/) [Wizards II](https://www.northstarfigures.com/prod.php?prod=14244) sprue and really helps to tell the story of this piece. Cats tend to be associated with the night time, and I think it turns the perception of what this guy's mission might be - initially I was thinking a clandestine assassination but now perhaps he is delivering an important message, or maybe still in the darker realm of things, planting a shamanic cursed item within the Lord's abode...
+
+
+
+# Painting the base
+
+I wish I had more photos of this process, but I put it together quite quickly in the end. I began with watered down browns, purples, greens and even a bit of khaki just building up thin layers and blending the hell out of them.
+
+Then to try to achieve a moonlight glow I built up a light blue drybrush over the whole backside of the piece. I also dusted the plants with the same blue to tie them into the piece, after they were attached of course.
+
+
+
+I tried to include more browns and warmer tones towards the front of the piece where the light was going to be coming from the campfire. I applied a very very thin layer of a dark red over the whole area, careful to try to leave shadows where they would be cast by the campfire. Then I painted a white over the campfire area before covering it in layers of orange, and building up to yellow. The logs themselves I tried to keep dark on the top. I tried to catch gentle bits of red under the cliff where light would flicker, and even put a tiny bit of red under the guy's hand.
+
+Overall, it came out okay - I think it sells the effect I'm after. But I think if the piece had more detail I would need to do a better job of bringing contrast into the piece. We can imagine it's a cartoonish scene where there's more artificial light than in reality. Given the overall vibe I'm going for is whimsical fantasy, I'm pretty pleased!
+
+
+My friend who this was a gift for is an artist. He has done commissions for MTG before and I think he nearly ended up doing some art for Hearthstone. So I knew his standards would be pretty high, but I think he appreciated the work that I put into this. We don't live in the same country anymore, so I'm glad I was able to give it to him before I left.
+
+
+
+In the end I learned a lot by trying to challenge myself to go out of my comfort zone. I thoroughly enjoyed diorama building and already have ideas for more in the future, so watch this space.
+
+
+
+I thought this background was corny when I was initially putting the images together, but coming back to it I kind of like it. I think next time I could paint something behind which would really add to the scene...
+
+Alright, I'm off to bed. For at dawn...we strike!
diff --git a/src/posts/dnd-initiative-tracker.md b/src/posts/dnd-initiative-tracker.md
index dde5df47..ba761625 100644
--- a/src/posts/dnd-initiative-tracker.md
+++ b/src/posts/dnd-initiative-tracker.md
@@ -1,5 +1,5 @@
---
-title: D&D Initaitve Tracker
+title: D&D Initiaitve Tracker
description: An aesthetic and functional tool for the Dungeon Master to track combat in D&D. A single page, serverless svelte app that makes use of local storage for saving and recovering state between browser sessions.
date: 05/09/2023
projectId: programming
@@ -8,26 +8,37 @@ published: true
technologies: [ TypeScript, Svelte ]
---
-
Deployed at: [https://edpacca.github.io/ednd-initiative/](https://edpacca.github.io/ednd-initiative/)
+(_not optimised for mobile use_)
- If you're unfaimilar with DnD and curious then I guess [go read this](https://en.wikipedia.org/wiki/Player%27s_Handbook). When playing in-person, I have always found tracking intiative in DnD combat to be too fiddly and complicated.From trying to write everyone's names down in order to tracking the HP of 11 goblins with their own hopes and dreams there's always room for error - not to mention each time you have to scribble things down it pulls you out of any immersive role-play, and often just ends up being indecipherable anyway. Therefore as part of an ongoing project to develop my idealised set of DM tools I present the [Ed 'n Dragons initiative tracker](https://edpacca.github.io/ednd-initiative/).
+ If you're unfaimilar with DnD and curious then I guess [go read this](https://en.wikipedia.org/wiki/Player%27s_Handbook). When playing in-person, I have always found tracking intiative in DnD combat to be fiddly and complicated - from writing everyone's names down in order as 5 people yell out numbers at the same time, to individually tracking the HP of 11 goblins with their own hopes and dreams. There's always room for error, not to mention that frantically scribbling things down pulls you out of any immersive role-play that may be happened. And if you've my handwriting, it often just ends up being indecipherable anyway. Hence I develoepd the [Ed 'n Dragons initiative tracker](https://edpacca.github.io/ednd-initiative/), as part of an (eternally) ongoing project to develop an idealised set of DM tools. As with nearly all my projects, this is programmed from scratch relying on as few external libraries as possible.

-# The Problems
+# The Problem we're solving
+
+For some people tracking initiative on paper is sufficient - it helps them organised their thoughts, or perhaps they simply enjoy the open freedom of the page. For me though it doesn't tend to work. I can't write fast enough and I like to stay as focussed on the game as possible, and I end up with a jumbled mess on the page and ultimately needing to spend time figuring out or fixing my shoddy notes. There's many areas that software could aid here, but for a start I wanted the combat tracker to do the following:
+
+- Set up a new session quickly
+- Show data clearly and neatly
+- Be able to load preset monster stats
+- Keep track of hit-points
+- Look good!
-For some people tracking initiative on paper is fine and helps them organise their thoughts. For me, I like to stay as focussed on the game itself as possible. The tracker should enable me to do the following:
+It ultimately ended up meeting all these requirements. I actually had such a blast coding this and new ideas kept coming to me, and it also does the following:
-- Set up a new combat quickly
-- Find the relevant information in a clear interface
-- Handle changes to combat e.g. add new combatants, change initiative value etc
-- Update HP quickly and accurately
+- Is deployed on the web, accessible from anywhere
+- Save and load groups of entities
+- Keeps track of history, with undo functionality
+- Tracks conditions
+- Change the theme
-I ended up using Svelte (again) as it had quickly becoming my frontend framework of choice, allowing me to easily develop a complex system of interlocking UI components whilst also providing an easy to manage and store the state of the application. Now in hindsight, the state managememnt reached a level of complexity that would have benefitted from using Redux, but this was not realised until deeper into the project.
+and probably some more things that I'll remember as I finish this.
-## DnD stuff to track or show
-In DnD terms this is the current list of attributes and values that can be tracked with the app:
+I ended up using pure Svelte (again) as it had quickly become a favoured framework for Javascript and component based frontents. It allowed me to easily develop a complex system of interlocking UI components, whilst also easily handling and updating the state of the application. Now in hindsight, the state managememnt reached a level of complexity that would have benefitted from using Redux, but this was not realised until deeper into the project.
+
+## DnD stuff to track or display
+In DnD terms this is the current list of attributes and values that can be tracked or displayed with the app:
- Initiative order
- Current turn
@@ -39,6 +50,22 @@ In DnD terms this is the current list of attributes and values that can be track
- Legendary actions
- Lair actions
- Now this list seems amibitous but in truth there are many variations and exceptions for specific creatures in DnD. So this is the most generic and useful shortlist that I could think of. In fact, the way this project developed it started simple, growing and morphing into it's current form; this list was grown with the app and wasn't fully realised when development started.
+ Now this list seems amibitous but in truth there are many variations and exceptions for specific creatures in DnD. So this is the most generic and useful shortlist that I came up with, and it serves for most things. I think adding notes may be a good future feature - but I also want to keep it as streamlined as possible.
+
+ The creature specific attribtues are all tracked on a single line. I tried to ensure they were all clearly displayed and distinguished from one another. I didn't label them as I felt it added visual clutter but I did add tooltips for certain actions that aren't immediately obvious.
+
+
+
+
+## Minions!
+Being able to make 'minions' is one of the most useful features I've found while using this in the wild. The idea with 'minions' is to have a multiple individually tracked entities that all go on the same initiative. With a standard tracker you would need to make a new entity for each one if you wanted to track all their health values, but not with mine.
+
+
+
+Clicking on the creature's icon will cycle between different types of enemy trackers. The 'Minion' type supports multiple entities under the single tracker while the 'Legendary' type gives you a legendary actions tracker.
+
+The real power of the Minion though is when it comes to damage and conditions. When in combat mode, you can just deal damange and healing directly to a given entity - but additionally all creatures and players have the option to open a modal focussed on that creature, shown below. Here it's a doddle to mange things, especially with the minions.
+
+
-*to be continued...*
+...writeup to be continued...
diff --git a/src/posts/mafia-infiltration-prototype.md b/src/posts/mafia-infiltration-prototype.md
new file mode 100644
index 00000000..ba090f06
--- /dev/null
+++ b/src/posts/mafia-infiltration-prototype.md
@@ -0,0 +1,10 @@
+---
+title: Mafia Infiltration
+description: An aesthetic and functional tool for the Dungeon Master to track combat in D&D. A single page, serverless svelte app that makes use of local storage for saving and recovering state between browser sessions.
+date: 04/22/2023
+projectId: programming
+coverImage: dnd-initiative/initiative-icon.svg
+published: false
+dev: true
+technologies: [ TypeScript, Svelte ]
+---
diff --git a/static/images/dnd-initiative/creatures-0.webp b/static/images/dnd-initiative/creatures-0.webp
new file mode 100644
index 00000000..ef9090ef
Binary files /dev/null and b/static/images/dnd-initiative/creatures-0.webp differ
diff --git a/static/images/dnd-initiative/minions-0.webp b/static/images/dnd-initiative/minions-0.webp
new file mode 100644
index 00000000..2bbcee68
Binary files /dev/null and b/static/images/dnd-initiative/minions-0.webp differ
diff --git a/static/images/dnd-initiative/minions.gif b/static/images/dnd-initiative/minions.gif
new file mode 100644
index 00000000..7a4db563
Binary files /dev/null and b/static/images/dnd-initiative/minions.gif differ
diff --git a/static/images/dnd-initiative/tooltip-0.webp b/static/images/dnd-initiative/tooltip-0.webp
new file mode 100644
index 00000000..c74c590f
Binary files /dev/null and b/static/images/dnd-initiative/tooltip-0.webp differ