Time to add more semi-final mobs.
First of all, Shieldbot:
This is just a hard-to-kill slow mob with a shield mechanic. All these “new” sprites are temporary (basically a quick mash-up of existing ones), but they do roughly approximate what I am going for.
I did a cowering mechanic, so I am thinking I might just do the same thing for the shieldbot — have it deploy a temporary shield for protection.
So I am reusing the cowering AI and making a cowering animation:
But I do want to add something extra to it as well, so a shield seems reasonable for a shieldbot:
Ha, cute! The only problem is that it looks silly in-game with the weapon out:
So I’m having the weapon hidden when the shield is active:
This also telegraphs to the player that the mob is not “in the attack mode”. Same applies to the cowerbot:
At this point, I basically “made” a mob without doing much. I just added another sprite as a requirement and already-needed balancing of values. On one hand, it’s not exactly a “new” mob, but then again my systems support making these changes quickly enough that it doesn’t even feel like I’ve done anything. I guess what I’m saying is that I have done all the preliminary work already and now I’m collecting the benefits or something. This is also one of the first three mobs, so I don’t need it to have a very unique and different behaviour.
Of course, I say that, and I have no idea what to do with my other bots.
I also made a Copterbot:
This is a fast one that’s another flying mob. Not exactly sure what unique mechanic to add, but at least it’s a unique-ish visual — drone-like copter blade instead of the jet hover. The only thing I need is animation — I can’t actually animate sprites for my animator yet, so I need to add that. This has been a feature I’ve needed for a while, so now is as good a time to add it as any.
First of all, I need my entry to have a checkbox for switching to a fully animated mode (last “A?” here):
This shows a list of sprites instead of one main sprite like other entries. I’m doing it this way instead of a “main” sprite list, because I don’t have enough space in my inspector for everything, especially a row of sprites. So I wrap these onto a new line, since I don’t expect many animated sprites.
And I also need to add an animation period:
I didn’t add custom animated sprites to different state entries, so it’s always the same animation for all states (unless it’s an overridden sprite without animation). I’m not sure if I need animations for states, although it feels like I will, especially for bosses.
Then to wire it all and have the mob swap sprites every X seconds as per period value (0.05 sec here, which is probably faster than the GIF can show it properly):
And they look okayish. Although, while I’m testing killing my mobs, I realize the death part drop logic is pretty horrible:
The parts “explode” from the ground and just slide along a it, but they don’t actually “fly off” vertically. The forces already are better then nothing, but it’s very uncanny. So I’m adding a few parameters to control elevation and “vertical force” the parts are spawned with:
And to wire props to have “gravity”, which is just elevation force being increase “towards” the ground until the prop reached 0 elevation. So a bit of tweaking makes the part explosions a bit nicer:
Of course, I don’t have the mob death explosion visuals/effects, so it’s still a bit ugly with the mob transforming into the parts instantly. I’ll deal with that when I’m adding effects.
Another issue with bots is their navigation. I increase their collision sizes mainly so they get hit by the player easier. Unfortunately, I have a single “collsion size” parameter:
Which means mobs now get stuck on walls, because anything about 1 is closer than 0.5 units to a wall and thus collide with walls and can never push themselves into a tile next to a wall. This makes AIs spaz out trying to push themselves into a spot until eventually giving up. SO I’m adding a wall collision size value which is smaller than entity collision value:
This solves most of the problems. But not all, since I can’t make collision size too big or too small or mobs now can’t move next to other mobs and props. And the player colliding with them looks weird. In fact, I need another separate parameter for projectile hits specifically:
A bit of a mess, but something other games do too. “Organic” entities colliding with solid geometry is not the same as two organic entities colliding, and is not the same as player’s expectation of hitting them. Of course, I have to wonder why my simple game is so complex that it needs such logic…
Well, as always there’s a hundred extra things to do. But hopefully I’m heading in the right direction. It’s still super-slow, even though I’m “just” adding mobs.