When I went to Port Royale church to make the donation on behalf of Artois Voysey, Two Dogs Fighting appeared, said he didn't want to serve with a spineless worm, and deserted.
That's because of this in case "artois_donate_done":
A 'DumpAttributes' on Two Dogs showed him to have alignment "bad", loyality (sic) 1. And it raises several issues.
First, who decided that Two Dogs should be evil and disloyal? Not me, and as that's my character for use in my storyline, that ought to count for something! It turns out that any character who doesn't have the "loyality" and "alignment" attributes, which is most of them, has them randomly assigned by "Leveling.c" - and in this game, Two Dogs was randomly assigned "bad" alignment and minimum loyalty.
Next: quest characters must be made immune to this. For Two Dogs to desert is very annoying but not disastrous as his part in the storyline is early on. It would be worse if Lucia were to desert like this. And it would derail "Tales of a Sea Hawk" if Danielle decided to quit. Likewise, "Hoist The Colours" would probably break if Joshamee Gibbs left unexpectedly.
And: do we really want this? To the player, it appears as though the character deserts randomly for no apparent reason and with no chance to prevent it. OK, there's a mechanism behind it, but nowhere is this explained to the player - and effectively it is random, as the attributes which control it are set randomly. Perhaps show the officer's alignment and loyalty somewhere? Or, at least, give some indication - maybe the first time he doesn't like something the player did, he complains but doesn't desert right away. Then maybe allow the player to bargain with him or threaten disciplinary action - desertion or mutiny are both grounds for stringing the officer up!
That's because of this in case "artois_donate_done":
Code:
OfficersReaction("good");
First, who decided that Two Dogs should be evil and disloyal? Not me, and as that's my character for use in my storyline, that ought to count for something! It turns out that any character who doesn't have the "loyality" and "alignment" attributes, which is most of them, has them randomly assigned by "Leveling.c" - and in this game, Two Dogs was randomly assigned "bad" alignment and minimum loyalty.
Next: quest characters must be made immune to this. For Two Dogs to desert is very annoying but not disastrous as his part in the storyline is early on. It would be worse if Lucia were to desert like this. And it would derail "Tales of a Sea Hawk" if Danielle decided to quit. Likewise, "Hoist The Colours" would probably break if Joshamee Gibbs left unexpectedly.
And: do we really want this? To the player, it appears as though the character deserts randomly for no apparent reason and with no chance to prevent it. OK, there's a mechanism behind it, but nowhere is this explained to the player - and effectively it is random, as the attributes which control it are set randomly. Perhaps show the officer's alignment and loyalty somewhere? Or, at least, give some indication - maybe the first time he doesn't like something the player did, he complains but doesn't desert right away. Then maybe allow the player to bargain with him or threaten disciplinary action - desertion or mutiny are both grounds for stringing the officer up!