Dedede Down B Rework and other adjustments #2473
Conversation
and also removing an old comment
|
Download the artifacts for this pull request: |
|
|
||
| if MotionModule::is_end(fighter.module_accessor) && | ||
| StatusModule::situation_kind(fighter.module_accessor) == SITUATION_KIND_AIR{ | ||
| MotionModule::change_motion(fighter.module_accessor, Hash40::new("fall_special"), 0.0, 1.0, false, 0.0, false, false); |
There was a problem hiding this comment.
this line shouldn't be necessary if you're already changing into the FALL_SPECIAL status.
|
|
||
| if MotionModule::frame(fighter.module_accessor) > 30.0 && StatusModule::is_situation_changed(fighter.module_accessor){ | ||
| if StatusModule::situation_kind(fighter.module_accessor) == *SITUATION_KIND_AIR { | ||
| MotionModule::change_motion(fighter.module_accessor, Hash40::new("fall_special"), 0.0, 1.0, false, 0.0, false, false); |
| unsafe extern "C" fn special_lw_attack_exec(fighter: &mut L2CFighterCommon) -> L2CValue{ | ||
| //Continue spinning if the button is held down | ||
| if ControlModule::check_button_on(fighter.module_accessor, *CONTROL_PAD_BUTTON_SPECIAL) | ||
| && MotionModule::frame(fighter.module_accessor) < 25.0 |
There was a problem hiding this comment.
Please make these frame checks a status flag that's enabled in ACMD instead
- Remove shield bonk - Re-implement charging - Reduce FAF By 3 frames - Startup increased by 3 frames - Re-implement status scripts - Removing some unused variables
| } | ||
| frame(lua_state, 25.0); | ||
| FT_MOTION_RATE(agent, 35.0 / (65.0-26.0)); | ||
| FT_MOTION_RATE(agent, 31.0 / (65.0-26.0)); |
There was a problem hiding this comment.
FT_MOTION_RATE_RANGE(agent, 26.0, 65.0, 31.0)
new standard is to use this function, rather than math. usage is agent, start_frame, end_frame, duration
| } | ||
| frame(lua_state, 25.0); | ||
| FT_MOTION_RATE(agent, 35.0 / (65.0-26.0)); | ||
| FT_MOTION_RATE(agent, 31.0 / (65.0-26.0)); |
There was a problem hiding this comment.
FT_MOTION_RATE_RANGE(agent, 26.0, 65.0, 31.0)
| } | ||
| } | ||
| frame(lua_state, 9.0); | ||
| FT_MOTION_RATE(agent, 7.0 / (27.0-10.0)); |
There was a problem hiding this comment.
FT_MOTION_RATE_RANGE(agent, 10.0, 27.0, 7.0)
| } | ||
| } | ||
| frame(lua_state, 9.0); | ||
| FT_MOTION_RATE(agent, 7.0 / (27.0-10.0)); |
There was a problem hiding this comment.
FT_MOTION_RATE_RANGE(agent, 10.0, 27.0, 7.0)
| if is_excute(agent) { | ||
| FT_MOTION_RATE(agent, 45.0/(23.0)); | ||
| } |
There was a problem hiding this comment.
avoid using FT_MOTION_RATE or similar motion-rating functions inside an if is_excute(agent) conditional. This often causes problems for statuses that transition between air/ground motions when landing/falling, because the conditional fails in those circumstances
rewrite by just removing the conditional and keeping the motion rate
| if is_excute(agent) { | ||
| KineticModule::clear_speed_all(boma); | ||
| FT_MOTION_RATE(agent, 7.0/(31.0 - 22.0)); | ||
| AttackModule::clear_all(boma); | ||
| } |
| if is_excute(agent) { | ||
| FT_MOTION_RATE(agent, 2.0); | ||
| } |
| if StatusModule::is_situation_changed(fighter.module_accessor){ | ||
| MotionModule::set_rate(fighter.module_accessor, 1.4); | ||
| } |
There was a problem hiding this comment.
what are we doing here..? this will presumably just be overwritten by any motion rating done in the ACMD. maybe you are trying to solve a problem that is caused by placing motion rating calls inside an if is_excute(agent) conditional? Whatever it is, you probably do not need or want to set motion rate to 1.4 on StatusModule::is_situation_changed.
| ModelModule::set_joint_translate(fighter.module_accessor, Hash40::new("shoulderr"), &Vector3f{x:3.0, y:rand, z:-1.0}, false, false); | ||
| ModelModule::set_joint_translate(fighter.module_accessor, Hash40::new("waist"), &Vector3f{x:3.0, y:0.0, z:rand_waist}, false, false); |
There was a problem hiding this comment.
random programmatic animation adjustments in opff... I hate it but it might be necessary for what you're doing? Honestly DSpecial charging should work based on two separate animations and statuses like a smash attack (but I won't ask you to make that change)
| special_hi_failure: | ||
| extra: | ||
| cancel_frame: 41 | ||
| cancel_frame: 98 |
There was a problem hiding this comment.
is this to delay freefall?
- Reformatting motion rates - Adding side b status scripts - Refactoring gordo recatch - Also fixes some small bugs with side b and recatch
A new down b and some other big adjustments for the plus-sized penguin.
Assets: dedede-assets.zip
Changelog
Forward Tilt
The goal here is to make the move more consistent, rather than having people fall out before the final hit.
Old:


New:
Down Tilt
This should make it match P+ frame data
Down Throw
Up Throw
Up Special
Side Special
A small buff, as well as making smash gordo have more of a difference compared to tilt gordo.
Also a QoL change to make it so aerial down angled gordo no longer forces a fastfall.
Gordo
Partial revert of gordo to have knockback scaling again. This should make it better at higher %'s while still keeping it low knockback all around
Gordo Dash
These changes should make gordo dash feel way better and actually worth using
Down Special
Reworked into Jet Hammer Spin! This is a high risk move where Dedede takes out his jet hammer and launches himself forward while spinning. The move can be charged to deal more damage, as well as gaining an extra set of spins for every 30 frames of charge.
unchargedspin.mp4
prayingemoji.mp4
The move can be charged for 80 frames, giving a total of 3 sets of spins.
Other important things to note:
Side Taunt (Facing Right)
TheMask.mp4