Skip to content

Commit

Permalink
Merge pull request #2495 from jaccob101/random-thingx
Browse files Browse the repository at this point in the history
Robin Fixes + Thoron Conceptual
  • Loading branch information
SkewedAskew authored Aug 20, 2024
2 parents 928c3e5 + 9793311 commit 1673a41
Show file tree
Hide file tree
Showing 16 changed files with 194 additions and 148 deletions.
6 changes: 5 additions & 1 deletion fighters/bayonetta/src/acmd/specials.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,12 @@ unsafe extern "C" fn game_specialnstarth(agent: &mut L2CAgentBase) {
unsafe extern "C" fn game_specialnendh(agent: &mut L2CAgentBase) {
let lua_state = agent.lua_state_agent;
let boma = agent.boma();
let cancel_frame_param = agent.get_param_int("param_special_n", "cancel_frame") as f32;
let special_lag = agent.get_float(*FIGHTER_BAYONETTA_INSTANCE_WORK_ID_FLOAT_SPECIAL_LANDING_FRAME);
frame(lua_state, 1.0);
MotionModule::set_rate(boma, (58.0 - 1.0)/25.0);//32 > 26
if !agent.is_status(statuses::bayonetta::SPECIAL_N_CANCEL) || special_lag < cancel_frame_param {
MotionModule::set_rate(boma, (58.0 - 1.0)/25.0);//32 > 26
}//do not change motion rate on special lag cancel anim
}

unsafe extern "C" fn game_specialnendf(agent: &mut L2CAgentBase) {
Expand Down
2 changes: 2 additions & 0 deletions fighters/bayonetta/src/opff.rs
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,9 @@ unsafe fn fastfall_specials(fighter: &mut L2CFighterCommon) {
*FIGHTER_BAYONETTA_STATUS_KIND_SPECIAL_N_CHARGE,
*FIGHTER_BAYONETTA_STATUS_KIND_SPECIAL_N_FIRE,
*FIGHTER_BAYONETTA_STATUS_KIND_SPECIAL_N_END,
statuses::bayonetta::SPECIAL_N_CANCEL,
*FIGHTER_BAYONETTA_STATUS_KIND_SPECIAL_HI_JUMP,
*FIGHTER_STATUS_KIND_SPECIAL_S,
*FIGHTER_BAYONETTA_STATUS_KIND_SPECIAL_AIR_S_D_HIT,
*FIGHTER_BAYONETTA_STATUS_KIND_SPECIAL_AIR_S_WALL_END])
&& fighter.is_situation(*SITUATION_KIND_AIR) {
Expand Down
2 changes: 2 additions & 0 deletions fighters/bayonetta/src/status/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ mod specialn;
mod specials;
mod specialhi;
mod jumpaerial;
mod wait;

pub fn install(agent: &mut Agent) {
attack::install(agent);
Expand All @@ -21,4 +22,5 @@ pub fn install(agent: &mut Agent) {
specials::install(agent);
specialhi::install(agent);
jumpaerial::install(agent);
wait::install(agent);
}
144 changes: 83 additions & 61 deletions fighters/bayonetta/src/status/specialn.rs

Large diffs are not rendered by default.

16 changes: 16 additions & 0 deletions fighters/bayonetta/src/status/wait.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
use super::*;

// FIGHTER_STATUS_KIND_WAIT
unsafe extern "C" fn wait_main(fighter: &mut L2CFighterCommon) -> L2CValue {
let status = fighter.global_table[PREV_STATUS_KIND].get_i32();
if status == statuses::bayonetta::SPECIAL_S_KICK {
fighter.global_table[PREV_STATUS_KIND].assign(&L2CValue::I32(*FIGHTER_BAYONETTA_STATUS_KIND_SPECIAL_S_HOLD_END));
} else if status == statuses::bayonetta::SPECIAL_N_CANCEL {
fighter.global_table[PREV_STATUS_KIND].assign(&L2CValue::I32(*FIGHTER_BAYONETTA_STATUS_KIND_SPECIAL_N_END));
} //fixes glitched idle without having to rewrite EVERYTHING
smashline::original_status(Main, fighter, *FIGHTER_STATUS_KIND_WAIT)(fighter)
}

pub fn install(agent: &mut Agent) {
agent.status(Main, *FIGHTER_STATUS_KIND_WAIT, wait_main);
}
28 changes: 10 additions & 18 deletions fighters/reflet/src/acmd/ground.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,22 @@ use super::*;
unsafe extern "C" fn game_attack11(agent: &mut L2CAgentBase) {
let lua_state = agent.lua_state_agent;
let boma = agent.boma();
if is_excute(agent) {
FT_MOTION_RATE(agent, 1.5);
}
FT_MOTION_RATE_RANGE(agent, 1.0, 3.0, 3.0);
frame(lua_state, 2.5);
if is_excute(agent) {
ATTACK(agent, 0, 0, Hash40::new("armr"), 3.0, 361, 25, 0, 30, 3.0, 0.0, 0.0, 0.0, None, None, None, 1.1, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
ATTACK(agent, 1, 0, Hash40::new("sword"), 3.0, 361, 25, 0, 30, 3.0, -2.0, 2.0, 0.0, None, None, None, 1.1, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
ATTACK(agent, 2, 0, Hash40::new("sword"), 3.0, 361, 25, 0, 30, 3.5, -3.0, 6.0, 0.0, None, None, None, 1.1, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
}
frame(lua_state, 3.0);
FT_MOTION_RATE_RANGE(agent, 3.0, 4.0, 2.5);
if is_excute(agent) {
FT_MOTION_RATE(agent, 2.5);
ATTACK(agent, 1, 0, Hash40::new("sword"), 3.0, 361, 25, 0, 30, 3.0, 0.0, 2.0, 0.0, None, None, None, 1.1, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
ATTACK(agent, 2, 0, Hash40::new("sword"), 3.0, 361, 25, 0, 30, 3.5, 0.0, 6.0, 0.0, None, None, None, 1.1, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
}
frame(lua_state, 4.0);
FT_MOTION_RATE_RANGE(agent, 4.0, 22.0, 14.5);
if is_excute(agent) {
FT_MOTION_RATE(agent, 12.0/(22.0-7.0));
AttackModule::clear_all(boma);
}
frame(lua_state, 5.0);
Expand Down Expand Up @@ -55,9 +53,7 @@ unsafe extern "C" fn game_attack12(agent: &mut L2CAgentBase) {
let lua_state = agent.lua_state_agent;
let boma = agent.boma();
frame(lua_state, 3.0);
if is_excute(agent) {
FT_MOTION_RATE(agent, 2.0);
}
FT_MOTION_RATE_RANGE(agent, 3.0, 5.0, 4.0);
frame(lua_state, 4.5);
if is_excute(agent) {
ATTACK(agent, 1, 0, Hash40::new("top"), 3.0, 361, 25, 0, 25, 3.0, 0.0, 8.5, 8.0, None, None, None, 1.1, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
Expand All @@ -66,24 +62,20 @@ unsafe extern "C" fn game_attack12(agent: &mut L2CAgentBase) {
ATTACK(agent, 3, 0, Hash40::new("top"), 3.0, 361, 20, 0, 20, 3.5, 0.0, 8.5, 16.5, None, None, None, 1.1, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_S, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
}
frame(lua_state, 5.0);
FT_MOTION_RATE(agent, 1.0);
if is_excute(agent) {
FT_MOTION_RATE(agent, 1.0);
AttackModule::clear_all(boma);
}
if WorkModule::get_int(boma, *FIGHTER_REFLET_INSTANCE_WORK_ID_INT_SPECIAL_HI_CURRENT_POINT) > 1 {
if is_excute(agent) {
WorkModule::on_flag(boma, *FIGHTER_STATUS_ATTACK_FLAG_ENABLE_100);
if agent.get_int(*FIGHTER_REFLET_INSTANCE_WORK_ID_INT_SPECIAL_HI_CURRENT_POINT) > 0 {
agent.on_flag(*FIGHTER_STATUS_ATTACK_FLAG_ENABLE_100);
}
}
frame(lua_state, 7.0);
if WorkModule::get_float(boma, *FIGHTER_REFLET_INSTANCE_WORK_ID_FLOAT_SPECIAL_S_CURRENT_POINT) > 0.1 {
if is_excute(agent) {
WorkModule::on_flag(boma, *FIGHTER_STATUS_ATTACK_FLAG_ENABLE_COMBO);
}
if agent.get_float(*FIGHTER_REFLET_INSTANCE_WORK_ID_FLOAT_SPECIAL_S_CURRENT_POINT) > 0.0 {
agent.on_flag(*FIGHTER_STATUS_ATTACK_FLAG_ENABLE_COMBO);
}
frame(lua_state, 9.0);
if is_excute(agent) {
WorkModule::off_flag(boma, *FIGHTER_STATUS_ATTACK_FLAG_ENABLE_100);
agent.off_flag(*FIGHTER_STATUS_ATTACK_FLAG_ENABLE_100);
}
}

Expand Down
60 changes: 17 additions & 43 deletions fighters/reflet/src/acmd/specials.rs
Original file line number Diff line number Diff line change
@@ -1,40 +1,34 @@
use super::*;

unsafe extern "C" fn game_specialntronstart(agent: &mut L2CAgentBase) {
let lua_state = agent.lua_state_agent;
let boma = agent.boma();
frame(lua_state, 1.0);
FT_MOTION_RATE(agent, 15.0/(19.0-1.0));
frame(lua_state, 19.0);
FT_MOTION_RATE(agent, 1.0);
//let lua_state = agent.lua_state_agent;
//let boma = agent.boma();
//17 -> 20
}

unsafe extern "C" fn game_specialairntronstart(agent: &mut L2CAgentBase) {
let lua_state = agent.lua_state_agent;
let boma = agent.boma();
frame(lua_state, 1.0);
FT_MOTION_RATE(agent, 15.0/(19.0-1.0));
frame(lua_state, 19.0);
FT_MOTION_RATE(agent, 1.0);
//let lua_state = agent.lua_state_agent;
//let boma = agent.boma();
//17 -> 20
}

unsafe extern "C" fn game_specialntronend(agent: &mut L2CAgentBase) {
let lua_state = agent.lua_state_agent;
let boma = agent.boma();
FT_MOTION_RATE(agent, 0.7); //FAF is frame 61
//let lua_state = agent.lua_state_agent;
//let boma = agent.boma();
//FAF is frame 80/84
}

unsafe extern "C" fn game_specialairntronend(agent: &mut L2CAgentBase) {
let lua_state = agent.lua_state_agent;
let boma = agent.boma();
FT_MOTION_RATE(agent, 0.35); //FAF is frame 63
FT_MOTION_RATE_RANGE(agent, 1.0, 65.0, 47.0); //FAF is frame 80/84
}

unsafe extern "C" fn game_specialhi(agent: &mut L2CAgentBase) {
let lua_state = agent.lua_state_agent;
let boma = agent.boma();
frame(lua_state, 1.0);
FT_MOTION_RATE(agent, 8.0 / 7.0);
FT_MOTION_RATE_RANGE(agent, 1.0, 8.0, 8.0);
frame(lua_state, 8.0);
FT_MOTION_RATE(agent, 1.0);
if is_excute(agent) {
Expand All @@ -46,20 +40,10 @@ unsafe extern "C" fn game_specialhi(agent: &mut L2CAgentBase) {
VarModule::on_flag(agent.battle_object, vars::common::instance::UP_SPECIAL_CANCEL);
}
frame(lua_state, 12.0);
if is_excute(agent) {
if (ControlModule::check_button_on_trriger(boma, *CONTROL_PAD_BUTTON_SPECIAL) || ControlModule::check_button_on_trriger(boma, *CONTROL_PAD_BUTTON_SPECIAL_RAW)) {
WorkModule::on_flag(boma, *FIGHTER_REFLET_STATUS_SPECIAL_HI_FLAG_TRY_2ND);
}
else{
MotionModule::set_rate(boma, 2.0);
}
}
wait(lua_state, 1.0);
MotionModule::set_rate(boma, 2.0);
for _ in 0..30 {
if is_excute(agent) {
if (ControlModule::check_button_on_trriger(boma, *CONTROL_PAD_BUTTON_SPECIAL) || ControlModule::check_button_on_trriger(boma, *CONTROL_PAD_BUTTON_SPECIAL_RAW)) {
WorkModule::on_flag(boma, *FIGHTER_REFLET_STATUS_SPECIAL_HI_FLAG_TRY_2ND);
}
if agent.is_button_trigger(Buttons::Special) {
agent.on_flag(*FIGHTER_REFLET_STATUS_SPECIAL_HI_FLAG_TRY_2ND);
}
wait(lua_state, 1.0);
}
Expand All @@ -78,20 +62,10 @@ unsafe extern "C" fn game_specialairhi(agent: &mut L2CAgentBase) {
VarModule::on_flag(agent.battle_object, vars::common::instance::UP_SPECIAL_CANCEL);
}
frame(lua_state, 12.0);
if is_excute(agent) {
if (ControlModule::check_button_on_trriger(boma, *CONTROL_PAD_BUTTON_SPECIAL) || ControlModule::check_button_on(boma, *CONTROL_PAD_BUTTON_SPECIAL_RAW)) {
WorkModule::on_flag(boma, *FIGHTER_REFLET_STATUS_SPECIAL_HI_FLAG_TRY_2ND);
}
else{
MotionModule::set_rate(boma, 2.0);
}
}
wait(lua_state, 1.0);
MotionModule::set_rate(boma, 2.0);
for _ in 0..30 {
if is_excute(agent) {
if (ControlModule::check_button_on_trriger(boma, *CONTROL_PAD_BUTTON_SPECIAL) || ControlModule::check_button_on(boma, *CONTROL_PAD_BUTTON_SPECIAL_RAW)) {
WorkModule::on_flag(boma, *FIGHTER_REFLET_STATUS_SPECIAL_HI_FLAG_TRY_2ND);
}
if agent.is_button_on(Buttons::Special) {
agent.on_flag(*FIGHTER_REFLET_STATUS_SPECIAL_HI_FLAG_TRY_2ND);
}
wait(lua_state, 1.0);
}
Expand Down
4 changes: 2 additions & 2 deletions fighters/reflet/src/acmd/tilts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ unsafe extern "C" fn game_attacks3(agent: &mut L2CAgentBase) {
let lua_state = agent.lua_state_agent;
let boma = agent.boma();
frame(lua_state, 7.0);
FT_MOTION_RATE(agent, 2.0);
FT_MOTION_RATE_RANGE(agent, 7.0, 10.0, 6.0);
frame(lua_state, 8.0);
if is_excute(agent) {
ATTACK(agent, 0, 0, Hash40::new("top"), 11.0, 35, 59, 0, 67, 3.5, 0.0, 19.0, 4.0, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
Expand All @@ -30,7 +30,7 @@ unsafe extern "C" fn game_attacks3(agent: &mut L2CAgentBase) {
ATTACK(agent, 2, 0, Hash40::new("top"), 11.0, 35, 59, 0, 67, 3.5, 0.0, 9.0, 7.5, None, None, None, 1.0, 1.0, *ATTACK_SETOFF_KIND_ON, *ATTACK_LR_CHECK_POS, false, 0, 0.0, 0, false, false, false, false, true, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_cutup"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_SWORD);
}
frame(lua_state, 10.0);
FT_MOTION_RATE(agent, 17.0/(33.0-13.0));
FT_MOTION_RATE_RANGE(agent, 10.0, 33.0, 20.0);
if is_excute(agent) {
AttackModule::clear_all(boma);
}
Expand Down
18 changes: 10 additions & 8 deletions fighters/reflet/src/opff.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,14 @@ unsafe fn nspecial_cancels(boma: &mut BattleObjectModuleAccessor, status_kind: i
}
}

unsafe fn elwind1_burn(fighter: &mut L2CFighterCommon) {
if fighter.is_status(*FIGHTER_STATUS_KIND_SPECIAL_HI) {
if fighter.global_table[CURRENT_FRAME].get_i32() == 1 {
// burn an extra bar of Elwind on upB1 (totals 2 bars)
WorkModule::dec_int(fighter.module_accessor, *FIGHTER_REFLET_INSTANCE_WORK_ID_INT_SPECIAL_HI_CURRENT_POINT);
unsafe fn elwind_cost(fighter: &mut L2CFighterCommon) {
//cost of each elwind 1 -> 2
//if fighter.is_status_one_of(&[*FIGHTER_STATUS_KIND_SPECIAL_HI, *FIGHTER_REFLET_STATUS_KIND_SPECIAL_HI_2])
if fighter.is_status(*FIGHTER_STATUS_KIND_SPECIAL_HI)
&& StatusModule::is_changing(fighter.module_accessor) {
fighter.dec_int(*FIGHTER_REFLET_INSTANCE_WORK_ID_INT_SPECIAL_HI_CURRENT_POINT);
if fighter.get_int(*FIGHTER_REFLET_INSTANCE_WORK_ID_INT_SPECIAL_HI_CURRENT_POINT) <= 0 {
FighterSpecializer_Reflet::set_flag_to_table(fighter.module_accessor as *mut app::FighterModuleAccessor, *FIGHTER_REFLET_MAGIC_KIND_EL_WIND, true, *FIGHTER_REFLET_INSTANCE_WORK_ID_INT_THROWAWAY_TABLE);
}
}
}
Expand All @@ -41,8 +44,7 @@ unsafe fn levin_leniency(fighter: &mut L2CFighterCommon, boma: &mut BattleObject
])
&& VarModule::get_int(fighter.battle_object, vars::reflet::instance::LEVIN_AERIAL_LENIENCY) > 0 {
VarModule::dec_int(fighter.battle_object, vars::reflet::instance::LEVIN_AERIAL_LENIENCY);
if VarModule::get_int(fighter.battle_object, vars::reflet::instance::LEVIN_AERIAL_LENIENCY) > 0
&& !fighter.is_flag(*FIGHTER_REFLET_INSTANCE_WORK_ID_FLAG_THUNDER_SWORD_ON)
if !fighter.is_flag(*FIGHTER_REFLET_INSTANCE_WORK_ID_FLAG_THUNDER_SWORD_ON)
&& boma.is_button_on(Buttons::Smash | Buttons::SpecialRaw | Buttons::Guard)
&& !StatusModule::is_changing(boma) {
let levin = *FIGHTER_REFLET_INSTANCE_WORK_ID_INT_THUNDER_SWORD_CURRENT_POINT;
Expand Down Expand Up @@ -124,7 +126,7 @@ unsafe fn fastfall_specials(fighter: &mut L2CFighterCommon) {

pub unsafe fn moveset(fighter: &mut L2CFighterCommon, boma: &mut BattleObjectModuleAccessor, id: usize, cat: [i32 ; 4], status_kind: i32, situation_kind: i32, motion_kind: u64, stick_x: f32, stick_y: f32, facing: f32, frame: f32) {
nspecial_cancels(boma, status_kind, situation_kind);
elwind1_burn(fighter);
elwind_cost(fighter);
levin_leniency(fighter, boma);
sword_length(boma);
up_special_freefall(fighter);
Expand Down
14 changes: 5 additions & 9 deletions fighters/reflet/src/status/float.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@ unsafe extern "C" fn float_pre(fighter: &mut L2CFighterCommon) -> L2CValue {
}

unsafe extern "C" fn float_main(fighter: &mut L2CFighterCommon) -> L2CValue {
WorkModule::dec_int(fighter.module_accessor, *FIGHTER_REFLET_INSTANCE_WORK_ID_INT_SPECIAL_HI_CURRENT_POINT);

let eff_handle = EffectModule::req_follow(fighter.module_accessor, Hash40::new("reflet_catch"), Hash40::new("top"), &Vector3f{x: 0.0, y: -6.0, z: -5.3}, &Vector3f::zero(), 0.7, true, 0, 0, 0, 0, 0, false, false);
EffectModule::set_rgb(fighter.module_accessor, eff_handle as u32, 0.0, 1.0, 0.0); // elwind green
let eff_handle = EffectModule::req_follow(fighter.module_accessor, Hash40::new("sys_aura_light"), Hash40::new("bookc"), &Vector3f::zero(), &Vector3f::zero(), 1.5, true, 0, 0, 0, 0, 0, false, false);
Expand Down Expand Up @@ -146,20 +144,15 @@ unsafe extern "C" fn reflet_float_main_loop(fighter: &mut L2CFighterCommon) -> L
WorkModule::set_int(fighter.module_accessor, *FIGHTER_REFLET_MAGIC_KIND_EL_WIND, *FIGHTER_REFLET_INSTANCE_WORK_ID_INT_LAST_USED_MAGIC_KIND);
}

VarModule::dec_int(fighter.battle_object, vars::common::status::FLOAT_FRAME);

if VarModule::get_int(fighter.battle_object, vars::common::status::FLOAT_FRAME) % 10 == 0 {
WorkModule::dec_int(fighter.module_accessor, *FIGHTER_REFLET_INSTANCE_WORK_ID_INT_SPECIAL_HI_CURRENT_POINT);
}

VarModule::dec_int(fighter.battle_object, vars::common::status::FLOAT_FRAME);

if VarModule::get_int(fighter.battle_object, vars::common::status::FLOAT_FRAME) == 0 {
VarModule::set_int(fighter.battle_object, vars::common::status::FLOAT_FRAME, 30);
}

if WorkModule::get_int(fighter.module_accessor, *FIGHTER_REFLET_INSTANCE_WORK_ID_INT_SPECIAL_HI_CURRENT_POINT) <= 0 {
FighterSpecializer_Reflet::set_flag_to_table(fighter.module_accessor as *mut app::FighterModuleAccessor, *FIGHTER_REFLET_MAGIC_KIND_EL_WIND, true, *FIGHTER_REFLET_INSTANCE_WORK_ID_INT_THROWAWAY_TABLE);
VarModule::set_int(fighter.battle_object, vars::common::status::FLOAT_ENABLE_UNIQ, 0);
}
}
if WorkModule::is_enable_transition_term_group(fighter.module_accessor, *FIGHTER_STATUS_TRANSITION_GROUP_CHK_AIR_LANDING) {
fighter.sub_transition_group_check_air_landing();
Expand Down Expand Up @@ -212,6 +205,9 @@ unsafe extern "C" fn reflet_float_main_loop(fighter: &mut L2CFighterCommon) -> L
unsafe extern "C" fn float_end(fighter: &mut L2CFighterCommon) -> L2CValue {
EffectModule::kill_kind(fighter.module_accessor, Hash40::new("reflet_catch"), false, true);
EffectModule::kill_kind(fighter.module_accessor, Hash40::new("sys_aura_light"), false, true);
if WorkModule::get_int(fighter.module_accessor, *FIGHTER_REFLET_INSTANCE_WORK_ID_INT_SPECIAL_HI_CURRENT_POINT) <= 0 {
FighterSpecializer_Reflet::set_flag_to_table(fighter.module_accessor as *mut app::FighterModuleAccessor, *FIGHTER_REFLET_MAGIC_KIND_EL_WIND, true, *FIGHTER_REFLET_INSTANCE_WORK_ID_INT_THROWAWAY_TABLE);
}
float_end_common(fighter)
}

Expand Down
Loading

0 comments on commit 1673a41

Please sign in to comment.