Took a break between posting on this. Worked on some offline projects (decorations and all that jazz), spent my weekends barhopping, and, more relevantly, worked on this in increments.
Progress notes:
Hey, look, it's starting to look like a game. A crappy game, but a game. I'm getting nauseous looking at that frame rate. Definitely need to rework the Update crap.
-Redid building spawning since that was a pain.
-Added borders for camera play to both hide a shortcoming in my logic (buildings visibly "pop into" existence visibly from the right edge, and I can't be arsed to mess with my offsets anymore), and give levels a bit of fluff (could add stuff like boss info later, and move the health bar into it, since currently the layout is screwy when it goes into fullscreen. I'd like to keep this game windowed, but that just highlights a shortcoming).
-Animation handler with some very crude sprites of what I want the character to look like (I'm not an animator, so forgive the crappy run cycle). No arms in sprite yet since I want those separate to denote player's move availability (i.e. arms outwards in a guard signal that they can't attack, arms "grasping" an enemy signals that they can't flutter-jump, close-to-torso means they're damaged, etc). Nothing for the mall-ninjas (I'm sticking with that since it's funny) yet since they don't have proper attack logic.
-Prefabs for two buildings, one with enemies, one without.
-Sounds added for player death.
Concerns/To-Do:
-Player is slow right now, even for a first level. Make faster. ✓ (Level speed constants increased.)
-Fix bordering not appearing over enemies, and integrate UI into it so that it doesn't poop the bed when going fullscreen. Add in portraits of player and stage info on side. ✓ (Right border is now also the functioning border for gameplay. Left still allows slack. Note to self: add death timer.)
-While at it for the above two, scale player and enemies down a bit so that they can see what's coming for faster stages ✓ (Transform values)
-Fix initial building spawns. Stabilizes after a few, but at the first few within a stage, they 'smash together.' ✓ (Added in placeholder "ghost" buildings to occupy first slots. Whether or not they mesh is irrelevant. Sidesteps problem, and allows for scripting-object holders as potential building-spawns.)
-Add in a level of variance for how high a building can spawn (currently sets at a hard Y value - set this current value as the cap with some able to spawn lower in order to make more fun gameplay) ✓ (1.5 allows a nice variance.)
-Spawnings: Make player unable to push enemies off building. Add in breakable boxes. Have throwable corpse scale to sprite. ✓ (Boxes are the only thing I haven't done yet, but I'm not too worried since that's just an enemy without attacks at this point. I can handle them when adding Wingfist animations. More importantly, somehow changing the localscale somehow FUCKING CAUSED THE CORPSES TO DISAPPEAR FROM EXISTENCE. LIKE, HOW IN THE FUCK DOES THIS SHIT OF "ADDING INCONSEQUENTIAL LINES BREAKS EVERYTHING" KEEP HAPPENING. CHRIST ON A BIKE, IT'S LITERALLY JUST SETTING A LOCALSCALE. FUCK. <- Entirely my bad from setting an item on the lefthand side of the screen as the "border" for the right.)
-Two mall-ninja variants: standard (momentarily swings sword when player is in range), "hopper" (prepares a strike when player gets within "far distance," jumps up when player gets "near distance", swings and hurts with sword on way down) (Hurtbox instantiation works now. Thank goodness. Secondary global class is responsible for such. Now need to make sprites.) (Half-complete with this. The second enemy type works as intended (jumps, then cleaves as it falls). Need to redo how randomized spawning per building segment works, because that's an even bigger mess than the below.)
-Redo several logic portions to use FixedUpdate instead of regular update, now that we have fixed scrolling (NOTE TO SELF: Only do this for positioning-related (player set pos, death checks, etc.) Too much can go wrong. Save a backup before working on ANY class that uses this.)
-Just fix everything with the update because that cork board is still a fucking mess and it's doing way too much on each frame. (Global loadedlevel pretty much handles most of this. Only ambiguity is how much of it is focused on the camera object. Focus on its role after cleanup from above point. For now, I think I have everything diagrammed:
LoadedLevel - Handles loaded level properties (expected boss, possible building spawns, possible enemies, etc) and behind-the-scenes management (hiding/showing pause elements, transitions, etc). Bound on a self-destructive class run on first frame since instantiation is otherwise wonky.
CameraHandler - Ties the player to the LoadedLevel (sets movement speed, loads building spawns, checks if player's fallen behind, etc. Internally referenced as "GM," which I think is apt: D&D-wise this is the GM, LoadedLevel is the notes.
globals - Static functions. Internally stores LoadedLevel to allow anything to reference its properties (i.e. setting pause elements) or do some meta-function (loading/unloading parts of a level after a stage clear, etc)
Shouldn't be too complacent with how the Updates handle everything, but for now everything is around 30. Yeah, some nerds are going to hate me saying "good enough" here, but, fuggetaboutit, I'm not looking to make this a hyper-polished AAA title, and 30 really doesn't bother me. It's my first game, it's for me to learn and to make gameplay fun, not to fulfill any high expectations, especially my own with "have shit work when I write it." And I'm not fucking with it right now if setting a transform scale somehow fucks my shit up. Really most of the cleanup at this point is removing the Debug.Log shit.)
-CONSIDER BUYING A NEW COMPUTER RATHER THAN THIS TEN YEAR OLD LAPTOP.
-First boss: "Neromo, the Unbound Girl" - Jet-augmented youth who stays in the same Y-axis. Phase 1 launches a missile at regular range against the player with a slight height variance (can be dodged by just not jumping). Phase 2 opens up 3 "missile lanes." Shoots one in each of them per cycle, the order varies. Less variance on the height. Pitch: 4 lanes instead. Sets boss structure (Phase 1: full-60% health. Phase 2: 60% to 10%. Pitch: 10%-defeat. Good gameplay can skip the pitch, but Phase 2 always gets hit if the boss is at Phase 1 (use the damage function for determining).