wait hold on, i have no idea why i didn’t write this before i think i just forgot… but i don’t think the array of level platforms would be available on the first frame in the main script (the default script in functions). because the level platform code would run after the main script code. so you will either have to put the ai setup script below the platforms frame, or somehow set up the platforms array before the main script runs (assuming you’d put the ai code in the main frame). out of the two, the former seems more easier to implement.
also i’m not sure why you replaced the health bar with text. there was nothing wrong with the health bar. (and also it kinda makes it harder to see what health you have, since you can’t read the text in your peripheral vision)
I just like to know how much health I have. Is it fine if we just have both, or do i just remove the text?
Meanwhile I’m finishing PKhead’s animations atm.
later, @ 6:12PM:
Ok I have an idea:
so I want to be able to make different recoil instances, like how hitboxes work.
recoil:{
duration: how long until the next recoil (optional, defaults to attack duration)
x: number the player would move backwards (does this by changing its velocity)
y: number the player would move upwards (does this by changing its velocity)
cancel: when true, cancels attacker's movement and replaces it with recoil X and Y
}
I kindof wanted this because we could be able to have the movement match the attack. No other reason. (PS: I just remembered another reason why, I wanted to make them stand mid-air during an attack, and then do a cool forward dash)
Like… if I wanted PKhead to dash forward suddenly after jumping (in an attack), i could use this function to have the-
Okay wait I don’t know if I wanted to continue this. idea.
oh, i guess that makes sense. i guess, in battle, if a player knows how much damage attacks do then they can calculate the final health value after the attack given the initial health value.
i think both would be fine. have the health number on the bar, and move the name to below the health bar like this:
(or maybe you could switch the positions of the name and health bar if you want to. it really doesn’t matter)
pkhead looks weird in that drawing… the feet are too small, the torso is more rectangular than it should be, and it has, like, eye ball curves. i don’t draw eye ball curves when they look. AND THE STEM IS NOT CURVED ON THE SIDE THIS IS THE MOST IMPORTANT DETAIL!!!
i don’t think i was specific enough in my document which detailed on how to draw pkhead without me thinking that it’d look weird. also i thought you’d reference the photo i put of pkhead when drawing him.
am i being too nitpicky?
the torso is actually supposed to be trapezoidal, and the feet are supposed to be cartoonishly big. and they are also supposed to be like how you drew the feet but stretched up a bit – so a semi… oval. also, the feet should be a bit darker. they’re supposed to be black but slightly lighter enough so you can actually see the outline. also, on the pumpkin extrusion thingies on the side, the trench thingy in the drawing you drew is too deep. also the torso bottom extrusion thingy closest to the camera should be bigger. because of how 3D works. also, this is a very minor detail: i don’t draw an outline between the red part of the torso and the yellow part of the torso. really i’m not going to care about if you draw an outline. i’m this pointing this out so you notice.
i know you finished some/most attack animations already and i don’t want you to have to restart all over again because of this. so i can re-make the animations for you if you want me to.
maybe, although it is your own character, so you should have a say in what you want in it.
edit: i actually found pkhead’s old animations for the old FF. it only has the run and jump ones but it’s a start.
edit 2: i accidentally exported the wickobj when it was at 0% opacity. if you want to take a look at the wickobj, make sure you increase the opacity when you put it in the editor.
Ah right! This gif was from a floor attack! I wanted Fighter!pkhead to look away coyly, though I guess thats why he has a mouth. (I didn’t draw his eyes like this in all the animations. good gravy that’ll be a nightmare)
meanwhile what do you think of this?
If i move his torso slightly upward, he’ll look normal. oop
update, @ 5:49
So I finished animating pkhead. What do you guys think?
yeah the animations are really good. the torso is fine, but the feet are not big enough. (i kinda feel like you think it’s weird how disproportionally big the feet are supposed to be)
also, my rule for the mouths is, generally if the mouth would be in a neutral position, then don’t draw it.
I thought the feet was big enough. I’m still fixing that atm
update @ 9:09
So I used an old version of FF to test the animations (because I’m still trying to figure out how to have more than one recoil instance, though i decided to do his animations first)
Hey are we adding a blocking move for all fighters? I was wondering if we can use that as one of the ways to cancel a move. A dash move could trigger when holding down any of the movement keys
1.Blocking is apart of the melee’s ability
So if you press S then either A or D to block in that direction.
2.(if we choose the "you can select your weapons idea) Blocking is ability that all characters can equip, but can be changed out for other weapons if the player decides he can do without
2.5. (again, if we choose the "you can select your weapons idea)blocking is an unchangeable ability of their melee weapons for all characters
Either way a few things will be same with either option:
depending on character, blocking has different stats and abilities
blocking highly reduces knock back
blocking will either completely negate dmg or heavily reduce it
blocking will be something like this:
_(Action of blocking starts)
_(No.frames) frames of “preparing to block _animation”
_(No.) Invincibility/resistant frames
_(short unblocking animation)
_ cool down
Blocking will affect projectiles, block attacks, and cut short dash and similar attacks.
for the fun of it, Toria and alexis will be given the ability to dodge instead of block,
Dodging is similar to blocking BUT
instead of resistance, you are invincible
You are still affected by splash dmg and area of affect attacks
projectiles and players will ignore their hotboxes for a certain amount of time
blocking doesn’t need to become weaker with every use
depending on the character using the block, how resistant, cool down, delay between pressing the button and blocking etc etc may all be different.
Example: Pk’s block may have a shorter cool down time then baron’s, but is less resistant
to make it not brainless, we can make it so that after blocking you have a 1 sec 20% dmg vulnerability. so players will have to wise to know when is the best time to block
… and I finally turned recoil into an array, which gets each instance of the recoil like how pkhead did the hitboxes! Which means I kinda stole it to be able to make it work.
the code is here, click me.
So it gets recoil exactly like how the hitbox does, but it instead just applies recoil.
Why I’ve done this? I find it convenient to be able to control the speed of the recoil at different times, making them move along with the animation!
this could be a bad idea, so I have a separate version of the game without this feature.
Nothing is lost! …well except the attacks I’ve made with it…
One thing i couldn’t figure out is how to make only give a burst of recoil and have it stop constantly add it (when a recoil instance has hold: false/'x'/'y').
This causes the fighters to go so fast that I had to add an invisible wall above the screen to keep baron from flying away.
edit 1: later @ 16:17
Okay I think I’ll yield for today… I’ll try to figure it out tomorrow. For now here’s the mini update without the recoil function. I took the time to add pumpkinhead’s attacks for convenience:
ignore this one, I found a solution in the update below
I tried using do…while loops, booleans. I have no more ideas…
Here’s the thing: the recoil value is not even bigger than 100, and it’s somehow bypassing my conditions.
That’s a good idea though…
edit 2: 6/26/2021, @ 2:46
Huh… it works now!
So… I finally figured out a solution… that i felt like i should’ve thought of earlier
while getting each instance of recoil, give each of them a new boolean variable. Then later when the hold variable is false, toggle the variable to be false so that it runs only once
project.playerAttack = function(player, attackName) {
...
for (let recoil of attack.recoil){
const newRecoil = {
...
burst: false //the boolean
};
...
}
};
///...later, in line 1270
if (recoil.burst === false){
if (recoil.hold === 'x') {
//just give a burst of yv recoil
player.yv += -recoil.y;
} else if (recoil.hold === 'y'){
//just give a burst of xv recoil
player.xv += recoil.x * -player.direction;
} else if (recoil.hold === false) {
//otherwise only give a burst of both recoils
player.xv += recoil.x * -player.direction;
player.yv += -recoil.y;
}
recoil.burst = true;
}
…Now to have some fun with it!
edit 3: 3 hours later
Okay now I’m trying to figure out how to make the player’s hitbox and recoil (mid attack) get instantly removed once hurt. I’ll update on this later.
In case… Should there be a speed cap? Like to “prevent baron from flying away?”
Also @awc95014
What do you think of the block consept I came up with ? And which option do you choose?
also also @anon18187711
In what way are the maps “kinda bad”?
I understand that biggie tree lacks detail and crystal caves needs a bit of improvements and completing platforms… But I think your eyes can see more errors then I can :3 so could you tell me what’s wrong with it?
I personally prefer option 1, except for the actual controls. since S is used to drop down semisolids (ones that permit doing so anyway), running above a semisolid and dropping down it will also trigger a block. but we can’t just choose not to block on semisolids, because who knows when you need to… well… block on a semisolid.
so the solution will either be to make a brand-new key for this (for example, N for player 2) with multi-directional blocking (only 4, not 6), or blocking is one of the “actions” a user can do with their attack key. for example, right + atk = block. I prefer the first one because 1, it can be confusing to have 1 key both attack and block, and 2, it gets rid of more ways to fight (less actions), and it can become a bit bland.