The problem is related to monsters reloading weapons. In my mod, zombies wield modified weapons which mostly correspond to the new weapons from the player's arsenal (the exception being their strength, which is unchanged, as the new monsters still use their native attack codepointers). Since the weapons feature reloading, zombies should be able to reload them too, so I implemented this ability in the original mod. Now I'm trying to improve the mod a bit, and recently I've got to the monster-weapon-reloading stuff. Now I'm thinking of how to solve the following things:
1. When zombies reload their weapons, they stand still. In fact, I couldn't have done it otherwise - calling A_Wander just for walking around didn't seem a good idea. But the real problem is that during the reload process monsters will always keep facing the same direction. This doesn't look realistic. I was thinking of adding A_FaceTarget calls to zombies' reloading states. If I really should do it, what should be the frequency of calls to A_FaceTarget? Because calling it every 1 tic doesn't look too realistic either (already tried it and decided to revert to the old behavior).
2. The new shotgun, which replaces the old Doom one, is reloaded shell by shell. Of course, zombies also reload it the same way. However, the duration of a full reload cycle is very long (8 shells to be loaded), and the shotgun guy, like other zombies, also doesn't move when he reloads his shotgun. What is really bad, is that he doesn't have any chance to retaliate against the player while in this long-lasting state. Unlike the 1st problem, which is purely aesthetic, this one is gameplay-related and cannot be solved easily. I came up with three possible solutions but I don't know how to tweak them to achieve what I want - each one has its own drawbacks.
So here are the possible solutions:
2.1. One of the possible solutions is to perform a sight check at the end of each shell-loading iteration. If the player is in sight, the zombie jumps to the Missile state and attacks. Then he jumps back and continues reloading. The biggest downside to this approach is that the shooting rate of the zombie severely increases when he enters his reloading state and the player is in sight. This is bad news for the player, and for the gameplay balance.
2.2. Another possible solution is to send the zombie to his See state at the end of each iteration, from where he can chase the player as normal and jump to the Missile state to attack the player. At the end of each iteration of the See state, if the reloading hasn't been done yet (which can be checked with an additional variable / dummy inventory item), the zombie jumps back to reloading state and performs another shell-loading iteration. This approach will increase the duration of the reloading cycle, which is also not good. However, if there are no better approaches, this one at least seems better than 2.1.
2.3. And the last approach I thought of, is making the zombie to reload his weapon partially. For example, after depleting ammo, the zombie will load 2 shells, then chase the player as usual. After some seconds of chasing (or if the ammo is depleted again), he will load additional 2 shells. This is essentially a more sophisticated version of 2.2., which suffers from the same drawback (increased reload duration).
And finally, if all else fails, there's always a fallback solution - abandon the whole idea and remove all these states from the monsters' DECORATE definitions. But this solution is of course not preferred

Some may think that the issues described above are too minor for the complex approaches I'm trying to take to solve them. Well, the first one is. However, the second one is essential as it directly relates to gameplay. Considering that zombies (especially shotgun-armed ones) are one of the most common enemies in Doom, it is rather important not to make them too weak or too strong. So I'm open to further suggestions - any help will be appreciated
