So, technically, maybe it's not a bug, since they are objects, but could it somehow be fixed? Currently, if a projectile lauched by a monster is still between you and him when he is to fire a new one, A_CheckLOF fails. I found it out testing a modified Ophidian:
Code: Select all
Missile:
SNKE F 3 A_FaceTarget
SNKE Z 3 A_FaceTarget
TNT1 A 0 A_CheckLOF("2", CLOFF_JUMPENEMY)
TNT1 A 0 A_Jump(256, "Postfire")
SNKE ZZZ 3 A_SpawnProjectile("SnakeProjA", 32, -11, 0, CMF_CHECKTARGETDEAD)
SNKE ZZZ 3 A_FaceTarget
TNT1 A 0 A_CheckLOF("2", CLOFF_JUMPENEMY)
TNT1 A 0 A_Jump(256, "Postfire")
SNKE Z 3 A_SpawnProjectile("SnakeProjB", 32, -11, 0, CMF_CHECKTARGETDEAD)
SNKE Z 6 A_FaceTarget
Postfire:
SNKE F 3
Goto Chase
If you stay in place, this Ophidian never fires the SnakeProjB. If you circlestrafe around him, SnakeProjB is fired (because SnakeProjA are not in the way). Also if the Ophidian stand right before a low obstacle, that is not considered blocking, but into which the three SnakeProjA crash (and so they are no longer in the way) before the SnakeProjB is launched, then SnakeProjB is fired.
Maybe a new flag that would allow disregarding projectiles, somehing like CLOFF_JUMPMISSILE?