Thanks for reading - I kinda had a sense from your posts that you were a little verbose too so figured you might not mind as much as some people I encounter, though I really did try
Okay ran another test and a few things;
The 'hit the dino and run away' problem I mentioned in the ramble seems to be a non-issue, I guess colliding with a tile sets the 'Last Collided Actor' to null (or something similar to 'null' that doesn't trigger null pointer errors anywhere else in that code... regardless the point is you don't continue to take damage if you are running from the dino)
On the flip side, sometimes I run straight into the dino and run back and forth without flashing at all. I actually have to 'stop' or 'run slower' before a flash triggers. The flip side is if I just stand there and let the dino come to me, it also doesn't hurt. (EDIT: Actually maybe that's the same reason - maybe colliding with the tiles reset it and I actually have to stop before it registers? Something to try. Gosh I'm spending more time obsessing over this and a few other posts on here today than on my own code, I guess 'procrastination' or something... even though I'm still coding just not on my stuff.)
Oh interesting. I think I figured it out
. At least the 'does not take damage while standing still' part, and it has NOTHING to do with the collision groups. I was kind of wondering why the dino didn't run through me and then do some kind of a zig-zag often happens when a 'follow' script nears or is at the target point.
It 'stops' when it looks like its touching the player, my first thought was that the non-sensor blocking collisions were involved.. but then I figured it out
When it was stopped next to me I moved forward just a little and it turned around and began whapping me with it's tail.
The 'location' of an actor is always the top left corner of the 'square' for the animation graphic. Estimating where that would be, I get why it seems to 'stop' at the player. I suspect that the hit locations are not actually touching here - the dino's body might be a *smidge* too far away (even one or two pixels)
Because the 'Run and Gun' game does not have code for this, I don't know what you are using for the 'Follow Player', but whatever it is you'll need to change one thing,
Anything that references;
([x] of [self])
With regards to location and determing which direction to move.
replace that with;
({[x] of [self]} + {[half-width] of [self]})
That *should* cause the dino to run up to you all the way until it's middle lines up with your left side (you could do the same with the [(x) of player] - then it's middle will line up with your middle until it stops. I would make a few other changes so that it runs past you and turns around - but I'm obsessive that way).
If that code makes it stop further away, then change the + to a - (though I'm pretty sure + is the one you want here.)
If the dino runs all the way into you and you still do not take damage, then there's a few more debugging ideas we can try (basically adding if statements for actor and group type checks and printing debug text to console which is much more immediate than 'flashing' animations. Print statements go to the console which can be opened with the '~' key - if it comes to this I'll make a few blocks up and take screen caps to work through it.)