[Note: This review will contain SPOILERS for The Whitefire Crossing, so if for some reason you haven’t read it (and you should) go and read it and then come back to this review.]
If you’ve been following my blog since February of last year, you probably read my review of The Whitefire Crossing, a book that was very good, surprisingly good, maybe not super amazing, but definitely worthy of a peek at the sequel.
When we last left Dev and Kiran, they had made it to their destination in Alathia only to be captured by the Alathians, with Dev being sent to work in the mines by the Alathian Council, a hostage to ensure Kiran’s good behaviour. When the Council offers Dev freedom in exchange for aiding them in a clandestine mission to Ninavel, Dev accepts, if only so he can keep the vow he made to his mentor and friend to keep his daughter safe. However, it turns out a killer who’s targeting Ninavel’s mages is the least of his worries, as he and Kiran find themselves betrayed by friends and forced into an uneasy truce with their deadliest enemy.
This book was actually very frustrating for me as a reader, and it’s not because the writing is shit (the writing is very definitely not shitty). My major issue with this book is that Dev and Kiran’s relationship essentially gets a giant reset button, leaving me feeling like all the character development in The Whitefire Crossing didn’t matter. If I were feeling cynical I’d say that it feels like a cheap ploy for yet more character development. On the plus side, the characters are much more nuanced this time around. Characters that you might have thought were selfish dicks in the first book have a bit more light shed on their motivations, a couple characters who were only given mentions in the previous book have a larger role to play in this one. We get to see much more of Ruslan, Mikhail, and Lizaveta, and what Kiran’s life was like before Kiran’s flight from Ruslan. Overall, The Tainted City does a much better job of highlighting just how morally grey the entire world is. some of those shades of grey are much darker than others, mind you, but overall the world doesn’t seem nearly as black and white as The Whitefire Crossing sometimes had you believe, even Ruslan’s actions are somewhat understandable yet fucked up at the same time. After wading through book after book with stupid love triangles, it’s also refreshing to read about characters who aren’t completely motivated by a love interest. Dev is motivated by the promise he made to his friend/mentor Sethan to rescue Melly, and he’s also motivated by his friendship with Kiran to keep him safe and away from Ruslan.
Another thing I liked was the way the city and the characters who live in it seem real, but Schafer didn’t feel the need to infodump you every five minutes (something which many fantasy authors, self included, have trouble doing). My one issue is that sometimes it’s difficult to nail down the exact rules for magic (particularly which spells require magical channels and which don’t) fortunately, the rules aren’t so exhaustive that you need an entire magic textbook to figure them out. Also, everyone, this is how you write the second book in a trilogy, you take the great ideas from the first book and you expand upon them, play with them a little more, develop characters that weren’t very developed in the last book.
In terms of diversity, many major and minor characters alike are POCs, protagonists and antagonists alike, and there’s a bit more overt queerness (and nobody seems to really care) which is certainly an improvement on the last book. Unfortunately, I’ve never been so completely disturbed when one of my favourite slash pairings becomes canon, and I would very much appreciate more queer relationships with less betrayal and villainy in general.
Having said that, I’m eagerly anticipating the last book in the series, because the second book took a very, very interesting turn towards the end, and hopefully this last book will not involve a relationship reset button.