Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Okay, so, I hunted a bit through Combat and Exploration, and tracked down the part where the game distinguishes bandits from captives (or at least, one of the spots):

if defeated.names[index] == 'Captured' || defeated.faction[index] in ['stranger','elf']:

What I would like to do is to reference this in Description, when trying to determine whether the described character is (a) a bandit, (b) someone I just rescued, or (c) someone I just kidnapped, because the described mood should be very different, right?  "Bound at your feet, looking up at you with fear and hatred" doesn't fit someone I just rescued.

So... how do I do this, or is it too complicated to handle at my current skill level?  Is this info I'd need to hand over from Combat/Exploration to Description, instead of having Description query from within its functions?  Would it be best to make a secondary description routine in Description and have Combat/Exploration call it while sending a secondary faction marker?  Is it hidden in the person's code already (e.g. by calling them "bandit" or "captive" before they get named)?

Also does the game rename characters between the "do you want to capture them?" scene and getting them home? because it feels like the names I see at the end of combat aren't the names I see once I look through my haul.

The game doesn't flag the persons available post-combat within their own data; it stores lots of data in arrays within the "defeated" dictionary, using the indexes from the insertion order to track the data. The persons are not renamed at all by the exploration nor mansion code. The captured list label is simply given a few existing strings to display:

newbutton.get_node("Label").set_text(defeated.names[i] + ' ' + person.sex+ ' ' + person.race)


The most obvious approach to improving descriptions is to add a bit of data to each person to track their context. However, that can be somewhat over-complicated unless you plan to incorporate that into other portions of the game, so the simplest alternative would probably be to add a new function or argument to the chain of description functions to pass the context. Another approach is to use the global reference path ("globals.main.exploration.defeated") to the "defeated" dictionary in order to search for the current person to ascertain their context. The indirection of it is a bit complicated but it puts all the problems in a single location.