... a bug report, and a humble patch submission to make Copper detect, and automatically correct, this sort of bug.
I found that I was unable to get 100% kills in udob2 on Normal skill: I was stuck at 53 of 54. I did some investigating, and it appears that the culprit is the monster_fish at "-928 -88 -224". This fish is configured to be present on Normal and Hard, has the SPAWN_TRIGGERED spawnflag, and has the targetname "fishyfishy". However, the trigger_relay that targets "fishyfishy" is only configured to be present on Hard, so on Normal the poor fish cannot be triggered, and remains stuck in the cosmic interstice.
I should preface the rest of this post by explaining that I am a cleptomaniac player who always wants to finish every map with 100% kills and 100% secrets. I am not sure whether this is normal, or even whether it is healthy.
In any case, it's my experience that this sort of bug -- where a triggered-spawn monster cannot be triggered, either because it has an unmatched targetname (possibly limited to a specific skill setting), or no targetname at all -- is historically very common in maps for any mod that implements triggered-spawn monsters. It's just so easy for this sort of thing to slip through.
Because I am the sort of player I am, I have long since taken to fixing kill-count bugs in maps and mods for my own playing pleasure. In general, I've found that it's best to make a mod detect and automatically correct map bugs whenever possible. In the case of a mod like Copper, where other mappers are encouraged to make maps for the mod, this seems even more desirable.
It would be really great if Copper could do the following for triggered-spawn monsters:
* On map start, check whether the monster has a targetname and whether the targetname is matched by the target (or target2, target3, or target4) field of another entity.
* If the targetname is matched, finish setting up the entity, and update the total_monsters count.
* If the targetname is unmatched, then the monster cannot be triggered, so print a warning message (for the mapper's benefit), and remove the entity without adding it to the total_monsters count.
I have created a patch that implements this behaviour, which I've uploaded here:
The only changes are as follows:
* monsters.qc: modified monster_spawnsetup
* monsters.qc: added monster_spawnsetup_go
* utility.qc: added dprint7
The comments for the functions should hopefully explain why I've done things the way I have.
Lunaran, please do absolutely whatever you like with this submission, including ignoring it if it's presumptuous.