Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(1 edit)

I'm still working through this but I'll point out something it took me a long time (probably over a year) of modding to realise as it's different from more rigid languages. You can add extra data elements to dictionaries, these elements will persist through load and save, and existing Strive code is unaffected by these elements. This means you can do something like

var person = CreateCustomCharacter(name)
If !globals.state.has('customcreations') : globals.state.customcreations = []
globals.state.customcreations.append[person.unique]

As it stands, I think your custom slaves can be killed and still return later. I can see why you just did a check on the current lists though as tracking the status of these slaves throughout the code will be troublesome.

You're right, if a custom slave dies they could be brought back. This is because I've switched permadeath off when I've first started playing and then completely forgotten the whole setting even exists, thus being totally unaware they could even die... Thanks for pointing that out, it needs to be fixed.

(1 edit)

I think you will need this line when importing a bodyguard custom slave. Assassins have their bonus hard coded in combat.gd.

 if person.effects.has('bodyguardeffect'): person.add_effect(globals.effectdict.bodyguardeffect, true)

I think I might skip out on the whole problems of slave origins/exits and make the custom images a renaming and reimaging feature. This way will be less fun but the player then self manages reappearance and similar issues. Slave renaming would be a good feature to add anyway as it is missing from the game (nicknames and amnesia potion aside). Custom characters occuring randomly in the game could be added as step two.

Most significant problem with my code is that I've never properly studied this system or even Python, I just started twiddling with the code for my own amusement by tweaking variables and it all started snowballing, resulting in a web of features where everything is more or less tangled together. To make matters worse, I didn't even mark my own lines to separate them from original code. That's why my "creations" aren't exactly shareable, at least easily. But hopefully any of this gave even some useful ideas.

I started much the same way. I'm a lapsed software developer who had started in ancient languages like COBOL with fixed data storage so although I knew C as well I was essentially treating GD script as extended basic.

Thanks for your post. The more I think about this the more I see this as a portrait extension plus a custom slave finder, two good ideas in one.