forked from wickedwaifus/wicked-waifus-rs
push for xavo review
This commit is contained in:
parent
b3c5e03786
commit
ce265b89ca
4 changed files with 464 additions and 431 deletions
80
wicked-waifus-game-server/src/logic/handler/action.rs
Normal file
80
wicked-waifus-game-server/src/logic/handler/action.rs
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
use wicked_waifus_data::pb_components::action::{CollectParams, UnlockTeleportTrigger};
|
||||||
|
use wicked_waifus_protocol::{ItemRewardNotify, NormalItemUpdateNotify, RewardItemInfo, WR};
|
||||||
|
|
||||||
|
use crate::logic::{
|
||||||
|
player::{ItemUsage, Player},
|
||||||
|
};
|
||||||
|
|
||||||
|
pub fn collect_action(
|
||||||
|
player: &mut Player,
|
||||||
|
_entity_id: i64,
|
||||||
|
level_entity_data: &wicked_waifus_data::LevelEntityConfigData,
|
||||||
|
template_config: &wicked_waifus_data::TemplateConfigData,
|
||||||
|
_: CollectParams
|
||||||
|
) {
|
||||||
|
if let Some(reward_component) = level_entity_data
|
||||||
|
.components_data
|
||||||
|
.reward_component
|
||||||
|
.as_ref()
|
||||||
|
.or(template_config.components_data.reward_component.as_ref())
|
||||||
|
{
|
||||||
|
if reward_component.disabled.unwrap_or(false) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// TODO: check the use of reward_type and drop_on_event
|
||||||
|
// Seems type 0 is reward from preview, while 1 and 2 is unknown
|
||||||
|
if let Some(reward_id) = reward_component.reward_id {
|
||||||
|
let drop = wicked_waifus_data::drop_package_data::get(&reward_id).unwrap();
|
||||||
|
let usages = drop
|
||||||
|
.drop_preview
|
||||||
|
.iter()
|
||||||
|
.map(|(&id, &quantity)| ItemUsage { id, quantity })
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
let updated_items = player.inventory.add_items(&usages);
|
||||||
|
let normal_item_list = player
|
||||||
|
.inventory
|
||||||
|
.to_normal_item_list_filtered(updated_items.keys().cloned().collect::<Vec<i32>>());
|
||||||
|
player.notify(NormalItemUpdateNotify {
|
||||||
|
normal_item_list,
|
||||||
|
no_tips: false,
|
||||||
|
});
|
||||||
|
// UpdateHandBookActiveStateMapNotify
|
||||||
|
let mut rewards: HashMap<i32, WR> = HashMap::new();
|
||||||
|
rewards.insert(
|
||||||
|
0,
|
||||||
|
WR {
|
||||||
|
item_list: drop
|
||||||
|
.drop_preview
|
||||||
|
.iter()
|
||||||
|
.map(|(&id, &quantity)| RewardItemInfo {
|
||||||
|
show_plan_id: 0, // TODO: Check how to get this
|
||||||
|
item_id: id,
|
||||||
|
count: quantity,
|
||||||
|
incr_id: 0,
|
||||||
|
})
|
||||||
|
.collect::<Vec<_>>(),
|
||||||
|
},
|
||||||
|
);
|
||||||
|
player.notify(ItemRewardNotify {
|
||||||
|
drop_id: reward_id,
|
||||||
|
reason: 15000,
|
||||||
|
magnification: 1,
|
||||||
|
reward_items: rewards,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// TODO: Should we remove entity?? get pcap
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[inline(always)]
|
||||||
|
fn unlock_teleport_trigger_action(
|
||||||
|
player: &mut Player,
|
||||||
|
_entity_id: i64,
|
||||||
|
_level_entity_data: &wicked_waifus_data::LevelEntityConfigData,
|
||||||
|
_template_config: &wicked_waifus_data::TemplateConfigData,
|
||||||
|
action: UnlockTeleportTrigger
|
||||||
|
) {
|
||||||
|
player.unlock_teleport(action.teleport_id)
|
||||||
|
}
|
|
@ -2,8 +2,8 @@ use wicked_waifus_protocol::{EntityAccessInfo, EntityAccessRangeRequest, EntityA
|
||||||
|
|
||||||
use wicked_waifus_data::pb_components::option::OptionType;
|
use wicked_waifus_data::pb_components::option::OptionType;
|
||||||
|
|
||||||
|
use crate::logic::handler::handle_action;
|
||||||
use crate::{logic, logic::ecs::component::ComponentContainer, logic::player::Player, query_components};
|
use crate::{logic, logic::ecs::component::ComponentContainer, logic::player::Player, query_components};
|
||||||
use crate::logic::utils::action_utils::perform_action;
|
|
||||||
use crate::logic::utils::condition_utils::check_condition;
|
use crate::logic::utils::condition_utils::check_condition;
|
||||||
|
|
||||||
pub fn on_entity_active_request(
|
pub fn on_entity_active_request(
|
||||||
|
@ -190,7 +190,7 @@ pub fn on_entity_interact_request(
|
||||||
match option_type {
|
match option_type {
|
||||||
OptionType::Actions(actions) => {
|
OptionType::Actions(actions) => {
|
||||||
for action in actions.actions {
|
for action in actions.actions {
|
||||||
perform_action(player, request.entity_id, &entity, template_config, action);
|
handle_action(player, request.entity_id, &entity, template_config, action);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
OptionType::Flow(_) => {
|
OptionType::Flow(_) => {
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
pub use action::*;
|
||||||
pub use attribute::*;
|
pub use attribute::*;
|
||||||
pub use advice::*;
|
pub use advice::*;
|
||||||
pub use animal::*;
|
pub use animal::*;
|
||||||
|
@ -21,6 +22,7 @@ pub use skill::*;
|
||||||
pub use teleport::*;
|
pub use teleport::*;
|
||||||
pub use tutorial::*;
|
pub use tutorial::*;
|
||||||
|
|
||||||
|
mod action;
|
||||||
mod attribute;
|
mod attribute;
|
||||||
mod advice;
|
mod advice;
|
||||||
mod animal;
|
mod animal;
|
||||||
|
@ -113,7 +115,7 @@ macro_rules! handle_push {
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! handle_action {
|
macro_rules! handle_action {
|
||||||
($($variant:ident);* $(,)?) => {
|
($($variant:ident),*) => {
|
||||||
use wicked_waifus_data::pb_components::action::Action;
|
use wicked_waifus_data::pb_components::action::Action;
|
||||||
use crate::logic::player::Player;
|
use crate::logic::player::Player;
|
||||||
|
|
||||||
|
@ -129,10 +131,10 @@ macro_rules! handle_action {
|
||||||
$(
|
$(
|
||||||
Action::$variant(inner) => {
|
Action::$variant(inner) => {
|
||||||
paste::paste! {
|
paste::paste! {
|
||||||
[<$variant:snake _action>](player, entity_id, level_entity_data, template_config, inner)
|
[<$variant:snake _action>](player, entity_id, level_entity_data, template_config, inner.params)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_ => tracing::debug!("hi")
|
_ => tracing::debug!("hi"),
|
||||||
)*
|
)*
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -318,190 +320,190 @@ handle_push! {
|
||||||
}
|
}
|
||||||
|
|
||||||
handle_action! {
|
handle_action! {
|
||||||
ExecBattleAction(_);
|
ExecBattleAction,
|
||||||
WaitBattleCondition(_);
|
WaitBattleCondition,
|
||||||
SetBattleState(_);
|
SetBattleState,
|
||||||
Action::PlayFlow(action) => unimplemented_action! { action },
|
PlayFlow,
|
||||||
Action::Collect(_) => collect_action(player, level_entity_data, template_config),
|
Collect,
|
||||||
Action::LeisureInteract(action) => unimplemented_action! { action },
|
LeisureInteract,
|
||||||
Action::UnlockTeleportTrigger(action) => unlock_teleport_trigger(player, action.params),
|
UnlockTeleportTrigger,
|
||||||
Action::EnableTemporaryTeleport(action) => unimplemented_action! { action },
|
EnableTemporaryTeleport,
|
||||||
Action::OpenSystemBoard(action) => unimplemented_action! { action },
|
OpenSystemBoard,
|
||||||
Action::OpenSystemFunction(action) => unimplemented_action! { action },
|
OpenSystemFunction,
|
||||||
Action::ChangeSelfEntityState(action) => change_self_entity_state(player, entity_id, level_entity_data, template_config, action.params),
|
ChangeSelfEntityState,
|
||||||
Action::SetPlayerOperationRestriction(action) => unimplemented_action! { action },
|
SetPlayerOperationRestriction,
|
||||||
Action::Wait(action) => unimplemented_action! { action },
|
Wait,
|
||||||
Action::ChangeEntityState(action) => unimplemented_action! { action },
|
ChangeEntityState,
|
||||||
Action::Log(action) => unimplemented_action! { action },
|
Log,
|
||||||
Action::EnableNearbyTracking(action) => unimplemented_action! { action },
|
EnableNearbyTracking,
|
||||||
Action::TeleportDungeon(action) => unimplemented_action! { action },
|
TeleportDungeon,
|
||||||
Action::DestroySelf(action) => unimplemented_action! { action },
|
DestroySelf,
|
||||||
Action::CameraLookAt(action) => unimplemented_action! { action },
|
CameraLookAt,
|
||||||
Action::StopCameraLookAt(action) => unimplemented_action! { action },
|
StopCameraLookAt,
|
||||||
Action::EnterOrbitalCamera(action) => unimplemented_action! { action },
|
EnterOrbitalCamera,
|
||||||
Action::ExitOrbitalCamera(action) => unimplemented_action! { action },
|
ExitOrbitalCamera,
|
||||||
Action::SendAiEvent(action) => unimplemented_action! { action },
|
SendAiEvent,
|
||||||
Action::SetInteractionLockState(action) => unimplemented_action! { action },
|
SetInteractionLockState,
|
||||||
Action::AwakeEntity(action) => unimplemented_action! { action },
|
AwakeEntity,
|
||||||
Action::ChangeLiftTarget(action) => unimplemented_action! { action },
|
ChangeLiftTarget,
|
||||||
Action::CalculateVar(action) => unimplemented_action! { action },
|
CalculateVar,
|
||||||
Action::AddBuffToPlayer(action) => unimplemented_action! { action },
|
AddBuffToPlayer,
|
||||||
Action::RemoveBuffFromPlayer(action) => unimplemented_action! { action },
|
RemoveBuffFromPlayer,
|
||||||
Action::AddBuffToEntity(action) => unimplemented_action! { action },
|
AddBuffToEntity,
|
||||||
Action::RemoveBuffFromEntity(action) => unimplemented_action! { action },
|
RemoveBuffFromEntity,
|
||||||
Action::Prompt(action) => unimplemented_action! { action },
|
Prompt,
|
||||||
Action::SetEntityVisible(action) => unimplemented_action! { action },
|
SetEntityVisible,
|
||||||
Action::DestroyEntity(action) => unimplemented_action! { action },
|
DestroyEntity,
|
||||||
Action::GuideTrigger(action) => unimplemented_action! { action },
|
GuideTrigger,
|
||||||
Action::TriggerCameraShake(action) => unimplemented_action! { action },
|
TriggerCameraShake,
|
||||||
Action::SetVar(action) => unimplemented_action! { action },
|
SetVar,
|
||||||
Action::VehicleEnter(action) => unimplemented_action! { action },
|
VehicleEnter,
|
||||||
Action::VehicleExitPlayer(action) => unimplemented_action! { action },
|
VehicleExitPlayer,
|
||||||
Action::LockEntity(action) => unimplemented_action! { action },
|
LockEntity,
|
||||||
Action::UnlockEntity(action) => unimplemented_action! { action },
|
UnlockEntity,
|
||||||
Action::CommonTip(action) => unimplemented_action! { action },
|
CommonTip,
|
||||||
Action::CommonTip2(action) => unimplemented_action! { action },
|
CommonTip2,
|
||||||
Action::PostAkEvent(action) => unimplemented_action! { action },
|
PostAkEvent,
|
||||||
Action::VehicleEnterNpc(action) => unimplemented_action! { action },
|
VehicleEnterNpc,
|
||||||
Action::VehicleExitNpc(action) => unimplemented_action! { action },
|
VehicleExitNpc,
|
||||||
Action::PlayerLookAt(action) => unimplemented_action! { action },
|
PlayerLookAt,
|
||||||
Action::PlayBubble(action) => unimplemented_action! { action },
|
PlayBubble,
|
||||||
Action::AddPlayBubble(action) => unimplemented_action! { action },
|
AddPlayBubble,
|
||||||
Action::ClearPlayBubble(action) => unimplemented_action! { action },
|
ClearPlayBubble,
|
||||||
Action::ExecRiskHarvestEffect(action) => unimplemented_action! { action },
|
ExecRiskHarvestEffect,
|
||||||
Action::EnableLevelPlay(action) => unimplemented_action! { action },
|
EnableLevelPlay,
|
||||||
Action::ClaimLevelPlayReward(action) => unimplemented_action! { action },
|
ClaimLevelPlayReward,
|
||||||
Action::SettlementDungeon(action) => unimplemented_action! { action },
|
SettlementDungeon,
|
||||||
Action::ExitDungeon(action) => unimplemented_action! { action },
|
ExitDungeon,
|
||||||
Action::FinishDungeon(action) => unimplemented_action! { action },
|
FinishDungeon,
|
||||||
Action::RecordDungeonEvent(action) => unimplemented_action! { action },
|
RecordDungeonEvent,
|
||||||
Action::RecoverDurability(action) => unimplemented_action! { action },
|
RecoverDurability,
|
||||||
Action::FadeInScreen(action) => unimplemented_action! { action },
|
FadeInScreen,
|
||||||
Action::FadeOutScreen(action) => unimplemented_action! { action },
|
FadeOutScreen,
|
||||||
Action::ChangeNpcPerformState(action) => unimplemented_action! { action },
|
ChangeNpcPerformState,
|
||||||
Action::EntityTurnTo(action) => unimplemented_action! { action },
|
EntityTurnTo,
|
||||||
Action::EntityLookAt(action) => unimplemented_action! { action },
|
EntityLookAt,
|
||||||
Action::ToggleMapMarkState(action) => unimplemented_action! { action },
|
ToggleMapMarkState,
|
||||||
Action::RandomVar(action) => unimplemented_action! { action },
|
RandomVar,
|
||||||
Action::ModifySceneItemAttributeTag(action) => unimplemented_action! { action },
|
ModifySceneItemAttributeTag,
|
||||||
Action::VehicleWaterfallClimbing(action) => unimplemented_action! { action },
|
VehicleWaterfallClimbing,
|
||||||
Action::VehicleTeleport(action) => unimplemented_action! { action },
|
VehicleTeleport,
|
||||||
Action::RogueGotoNextFloor(action) => unimplemented_action! { action },
|
RogueGotoNextFloor,
|
||||||
Action::RogueReceiveReward(action) => unimplemented_action! { action },
|
RogueReceiveReward,
|
||||||
Action::RogueSelectRoom(action) => unimplemented_action! { action },
|
RogueSelectRoom,
|
||||||
Action::RogueActivatePortal(action) => unimplemented_action! { action },
|
RogueActivatePortal,
|
||||||
Action::MowingTowerGotoNextFloor(action) => unimplemented_action! { action },
|
MowingTowerGotoNextFloor,
|
||||||
Action::SlashAndTowerGotoNextFloor(action) => unimplemented_action! { action },
|
SlashAndTowerGotoNextFloor,
|
||||||
Action::PlayMontage(action) => unimplemented_action! { action },
|
PlayMontage,
|
||||||
Action::OpenSystemBoardWithReturn(action) => unimplemented_action! { action },
|
OpenSystemBoardWithReturn,
|
||||||
Action::UnlockSystemItem(action) => unimplemented_action! { action },
|
UnlockSystemItem,
|
||||||
Action::SetSportsState(action) => unimplemented_action! { action },
|
SetSportsState,
|
||||||
Action::OpenSimpleGameplay(action) => unimplemented_action! { action },
|
OpenSimpleGameplay,
|
||||||
Action::PlayEffect(action) => unimplemented_action! { action },
|
PlayEffect,
|
||||||
Action::PlayEffect2(action) => unimplemented_action! { action },
|
PlayEffect2,
|
||||||
Action::RestorePlayerCameraAdjustment(action) => unimplemented_action! { action },
|
RestorePlayerCameraAdjustment,
|
||||||
Action::AdjustPlayerCamera(action) => unimplemented_action! { action },
|
AdjustPlayerCamera,
|
||||||
Action::SetPlayerPos(action) => unimplemented_action! { action },
|
SetPlayerPos,
|
||||||
Action::MoveWithSpline(action) => unimplemented_action! { action },
|
MoveWithSpline,
|
||||||
Action::EnableSplineMoveModel(action) => unimplemented_action! { action },
|
EnableSplineMoveModel,
|
||||||
Action::ToggleScanSplineEffect(action) => unimplemented_action! { action },
|
ToggleScanSplineEffect,
|
||||||
Action::MoveSceneItem(action) => unimplemented_action! { action },
|
MoveSceneItem,
|
||||||
Action::StopSceneItemMove(action) => unimplemented_action! { action },
|
StopSceneItemMove,
|
||||||
Action::FireBullet(action) => unimplemented_action! { action },
|
FireBullet,
|
||||||
Action::ClearFishingCabinInSaleItems(action) => unimplemented_action! { action },
|
ClearFishingCabinInSaleItems,
|
||||||
Action::AcceptFishingEntrust(action) => unimplemented_action! { action },
|
AcceptFishingEntrust,
|
||||||
Action::DestroyFishingBoat(action) => unimplemented_action! { action },
|
DestroyFishingBoat,
|
||||||
Action::SetJigsawItem(action) => unimplemented_action! { action },
|
SetJigsawItem,
|
||||||
Action::SetJigsawFoundation(action) => unimplemented_action! { action },
|
SetJigsawFoundation,
|
||||||
Action::SetTeleControl(action) => unimplemented_action! { action },
|
SetTeleControl,
|
||||||
Action::SetEntityClientVisible(action) => unimplemented_action! { action },
|
SetEntityClientVisible,
|
||||||
Action::ToggleHighlightExploreUi(action) => unimplemented_action! { action },
|
ToggleHighlightExploreUi,
|
||||||
Action::ExecAlertSystemAction(action) => unimplemented_action! { action },
|
ExecAlertSystemAction,
|
||||||
Action::AddFlowInteractOption(action) => unimplemented_action! { action },
|
AddFlowInteractOption,
|
||||||
Action::RemoveFlowInteractOption(action) => unimplemented_action! { action },
|
RemoveFlowInteractOption,
|
||||||
Action::EnableHostility(action) => unimplemented_action! { action },
|
EnableHostility,
|
||||||
Action::ChangePhantomFormation(action) => unimplemented_action! { action },
|
ChangePhantomFormation,
|
||||||
Action::RestorePhantomFormation(action) => unimplemented_action! { action },
|
RestorePhantomFormation,
|
||||||
Action::ChangeTimer(action) => unimplemented_action! { action },
|
ChangeTimer,
|
||||||
Action::ToggleTimerPauseState(action) => unimplemented_action! { action },
|
ToggleTimerPauseState,
|
||||||
Action::ChangeFightTeam(action) => unimplemented_action! { action },
|
ChangeFightTeam,
|
||||||
Action::AddTrialFollowShooter(action) => unimplemented_action! { action },
|
AddTrialFollowShooter,
|
||||||
Action::RemoveTrialFollowShooter(action) => unimplemented_action! { action },
|
RemoveTrialFollowShooter,
|
||||||
Action::AddTrialCharacter(action) => unimplemented_action! { action },
|
AddTrialCharacter,
|
||||||
Action::RemoveTrialCharacter(action) => unimplemented_action! { action },
|
RemoveTrialCharacter,
|
||||||
Action::SetAreaState(action) => unimplemented_action! { action },
|
SetAreaState,
|
||||||
Action::SwitchSubLevels(action) => unimplemented_action! { action },
|
SwitchSubLevels,
|
||||||
Action::ChangeTeamPosition(action) => unimplemented_action! { action },
|
ChangeTeamPosition,
|
||||||
Action::GetItem(action) => unimplemented_action! { action },
|
GetItem,
|
||||||
Action::CreatePrefab(action) => unimplemented_action! { action },
|
CreatePrefab,
|
||||||
Action::DestroyPrefab(action) => unimplemented_action! { action },
|
DestroyPrefab,
|
||||||
Action::CompleteGuide(action) => unimplemented_action! { action },
|
CompleteGuide,
|
||||||
Action::PlayDynamicSettlement(action) => unimplemented_action! { action },
|
PlayDynamicSettlement,
|
||||||
Action::UsePhantomSkill(action) => unimplemented_action! { action },
|
UsePhantomSkill,
|
||||||
Action::HideTargetRange(action) => unimplemented_action! { action },
|
HideTargetRange,
|
||||||
Action::ChangeOtherState(action) => unimplemented_action! { action },
|
ChangeOtherState,
|
||||||
Action::SetRegionConfig(action) => unimplemented_action! { action },
|
SetRegionConfig,
|
||||||
Action::SetReviveRegion(action) => unimplemented_action! { action },
|
SetReviveRegion,
|
||||||
Action::ExecResurrection(action) => unimplemented_action! { action },
|
ExecResurrection,
|
||||||
Action::ShowTargetRange(action) => unimplemented_action! { action },
|
ShowTargetRange,
|
||||||
Action::SetTime(action) => unimplemented_action! { action },
|
SetTime,
|
||||||
Action::SetTimeLockState(action) => unimplemented_action! { action },
|
SetTimeLockState,
|
||||||
Action::EnableSystem(action) => unimplemented_action! { action },
|
EnableSystem,
|
||||||
Action::EnableAoiNotify(action) => unimplemented_action! { action },
|
EnableAoiNotify,
|
||||||
Action::SetForceLock(action) => unimplemented_action! { action },
|
SetForceLock,
|
||||||
Action::PlayRegisteredMontage(action) => unimplemented_action! { action },
|
PlayRegisteredMontage,
|
||||||
Action::SetAudioState(action) => unimplemented_action! { action },
|
SetAudioState,
|
||||||
Action::HideGroup(action) => unimplemented_action! { action },
|
HideGroup,
|
||||||
Action::ShowHidedGroup(action) => unimplemented_action! { action },
|
ShowHidedGroup,
|
||||||
Action::HideSpecificEntities(action) => unimplemented_action! { action },
|
HideSpecificEntities,
|
||||||
Action::ShowSpecificEntities(action) => unimplemented_action! { action },
|
ShowSpecificEntities,
|
||||||
Action::RemovePreloadResource(action) => unimplemented_action! { action },
|
RemovePreloadResource,
|
||||||
Action::Preload(action) => unimplemented_action! { action },
|
Preload,
|
||||||
Action::EnableAI(action) => unimplemented_action! { action },
|
EnableAI,
|
||||||
Action::SwitchDataLayers(action) => unimplemented_action! { action },
|
SwitchDataLayers,
|
||||||
Action::DestroyQuest(action) => unimplemented_action! { action },
|
DestroyQuest,
|
||||||
Action::DestroyQuestItem(action) => unimplemented_action! { action },
|
DestroyQuestItem,
|
||||||
Action::PromptQuestChapterUI(action) => unimplemented_action! { action },
|
PromptQuestChapterUI,
|
||||||
Action::TakePlotPhoto(action) => unimplemented_action! { action },
|
TakePlotPhoto,
|
||||||
Action::SetWuYinQuState(action) => unimplemented_action! { action },
|
SetWuYinQuState,
|
||||||
Action::RunActions(action) => unimplemented_action! { action },
|
RunActions,
|
||||||
Action::ManualOccupations(action) => unimplemented_action! { action },
|
ManualOccupations,
|
||||||
Action::SetWeather(action) => unimplemented_action! { action },
|
SetWeather,
|
||||||
Action::SendNpcMail(action) => unimplemented_action! { action },
|
SendNpcMail,
|
||||||
Action::EnableFunction(action) => unimplemented_action! { action },
|
EnableFunction,
|
||||||
Action::FocusOnMapMark(action) => unimplemented_action! { action },
|
FocusOnMapMark,
|
||||||
Action::CharacterLookAt(action) => unimplemented_action! { action },
|
CharacterLookAt,
|
||||||
Action::AddGuestCharacter(action) => unimplemented_action! { action },
|
AddGuestCharacter,
|
||||||
Action::RemoveGuestCharacter(action) => unimplemented_action! { action },
|
RemoveGuestCharacter,
|
||||||
Action::TeleportToAndEnterVehicle(action) => unimplemented_action! { action },
|
TeleportToAndEnterVehicle,
|
||||||
Action::SetAreaTimeState(action) => unimplemented_action! { action },
|
SetAreaTimeState,
|
||||||
Action::ResetPlayerCameraFocus(action) => unimplemented_action! { action },
|
ResetPlayerCameraFocus,
|
||||||
Action::ResetLevelPlay(action) => unimplemented_action! { action },
|
ResetLevelPlay,
|
||||||
Action::VehicleSprint(action) => unimplemented_action! { action },
|
VehicleSprint,
|
||||||
Action::VehicleMoveWithPathLine(action) => unimplemented_action! { action },
|
VehicleMoveWithPathLine,
|
||||||
Action::ClientPreEnableSubLevels(action) => unimplemented_action! { action },
|
ClientPreEnableSubLevels,
|
||||||
Action::GuestOperateUiAnimation(action) => unimplemented_action! { action },
|
GuestOperateUiAnimation,
|
||||||
Action::ChangeEntityCamp(action) => unimplemented_action! { action },
|
ChangeEntityCamp,
|
||||||
Action::NewMoveWithSpline(action) => unimplemented_action! { action },
|
NewMoveWithSpline,
|
||||||
Action::DangoAbyssActivatePortal(action) => unimplemented_action! { action },
|
DangoAbyssActivatePortal,
|
||||||
Action::DangoAbyssCreateRewardTreasureBox(action) => unimplemented_action! { action },
|
DangoAbyssCreateRewardTreasureBox,
|
||||||
Action::DangoAbyssGotoNextFloor(action) => unimplemented_action! { action },
|
DangoAbyssGotoNextFloor,
|
||||||
Action::DangoAbyssReceiveReward(action) => unimplemented_action! { action },
|
DangoAbyssReceiveReward,
|
||||||
Action::SummonEntity(action) => unimplemented_action! { action },
|
SummonEntity,
|
||||||
Action::GetRewardByInteract(action) => unimplemented_action! { action },
|
GetRewardByInteract,
|
||||||
Action::OpenQte(action) => unimplemented_action! { action },
|
OpenQte,
|
||||||
Action::ActiveAntiGravitySafePoint(action) => unimplemented_action! { action },
|
ActiveAntiGravitySafePoint,
|
||||||
Action::BvbPlayDialog(action) => unimplemented_action! { action },
|
BvbPlayDialog,
|
||||||
Action::BvbSendSystemEvent(action) => unimplemented_action! { action },
|
BvbSendSystemEvent,
|
||||||
Action::BvbSendAiEvent(action) => unimplemented_action! { action },
|
BvbSendAiEvent,
|
||||||
Action::BvbPlayerOperationConstraint(action) => unimplemented_action! { action },
|
BvbPlayerOperationConstraint,
|
||||||
Action::ExecClientBattleAction(action) => unimplemented_action! { action },
|
ExecClientBattleAction,
|
||||||
Action::TriggerSpecificScanEffect(action) => unimplemented_action! { action },
|
TriggerSpecificScanEffect,
|
||||||
Action::SetActorVar(action) => unimplemented_action! { action },
|
SetActorVar,
|
||||||
Action::RunActorCustomEvent(action) => unimplemented_action! { action },
|
RunActorCustomEvent,
|
||||||
Action::StopUiScreenEffect(action) => unimplemented_action! { action },
|
StopUiScreenEffect,
|
||||||
Action::StopNewMoveWithSpline(action) => unimplemented_action! { action },
|
StopNewMoveWithSpline,
|
||||||
Action::RequestSystemFunctiony
|
RequestSystemFunction
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn handle_logic_message(player: &mut super::player::Player, msg: Message) {
|
pub fn handle_logic_message(player: &mut super::player::Player, msg: Message) {
|
||||||
|
|
|
@ -19,249 +19,200 @@ macro_rules! unimplemented_action {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn perform_action(player: &mut Player,
|
// pub fn perform_action(player: &mut Player,
|
||||||
entity_id: i64,
|
// entity_id: i64,
|
||||||
level_entity_data: &wicked_waifus_data::LevelEntityConfigData,
|
// level_entity_data: &wicked_waifus_data::LevelEntityConfigData,
|
||||||
template_config: &wicked_waifus_data::TemplateConfigData,
|
// template_config: &wicked_waifus_data::TemplateConfigData,
|
||||||
element: Action) {
|
// element: Action) {
|
||||||
match element {
|
// match element {
|
||||||
Action::SetBattleState(action) => unimplemented_action! { action },
|
// Action::SetBattleState(action) => unimplemented_action! { action },
|
||||||
Action::ExecBattleAction(action) => unimplemented_action! { action },
|
// Action::ExecBattleAction(action) => unimplemented_action! { action },
|
||||||
Action::WaitBattleCondition(action) => unimplemented_action! { action },
|
// Action::WaitBattleCondition(action) => unimplemented_action! { action },
|
||||||
Action::PlayFlow(action) => unimplemented_action! { action },
|
// Action::PlayFlow(action) => unimplemented_action! { action },
|
||||||
Action::Collect(_) => collect_action(player, level_entity_data, template_config),
|
// Action::Collect(_) => collect_action(player, level_entity_data, template_config),
|
||||||
Action::LeisureInteract(action) => unimplemented_action! { action },
|
// Action::LeisureInteract(action) => unimplemented_action! { action },
|
||||||
Action::UnlockTeleportTrigger(action) => unlock_teleport_trigger(player, action.params),
|
// Action::UnlockTeleportTrigger(action) => unlock_teleport_trigger(player, action.params),
|
||||||
Action::EnableTemporaryTeleport(action) => unimplemented_action! { action },
|
// Action::EnableTemporaryTeleport(action) => unimplemented_action! { action },
|
||||||
Action::OpenSystemBoard(action) => unimplemented_action! { action },
|
// Action::OpenSystemBoard(action) => unimplemented_action! { action },
|
||||||
Action::OpenSystemFunction(action) => unimplemented_action! { action },
|
// Action::OpenSystemFunction(action) => unimplemented_action! { action },
|
||||||
Action::ChangeSelfEntityState(action) => change_self_entity_state(player, entity_id, level_entity_data, template_config, action.params),
|
// Action::ChangeSelfEntityState(action) => change_self_entity_state(player, entity_id, level_entity_data, template_config, action.params),
|
||||||
Action::SetPlayerOperationRestriction(action) => unimplemented_action! { action },
|
// Action::SetPlayerOperationRestriction(action) => unimplemented_action! { action },
|
||||||
Action::Wait(action) => unimplemented_action! { action },
|
// Action::Wait(action) => unimplemented_action! { action },
|
||||||
Action::ChangeEntityState(action) => unimplemented_action! { action },
|
// Action::ChangeEntityState(action) => unimplemented_action! { action },
|
||||||
Action::Log(action) => unimplemented_action! { action },
|
// Action::Log(action) => unimplemented_action! { action },
|
||||||
Action::EnableNearbyTracking(action) => unimplemented_action! { action },
|
// Action::EnableNearbyTracking(action) => unimplemented_action! { action },
|
||||||
Action::TeleportDungeon(action) => unimplemented_action! { action },
|
// Action::TeleportDungeon(action) => unimplemented_action! { action },
|
||||||
Action::DestroySelf(action) => unimplemented_action! { action },
|
// Action::DestroySelf(action) => unimplemented_action! { action },
|
||||||
Action::CameraLookAt(action) => unimplemented_action! { action },
|
// Action::CameraLookAt(action) => unimplemented_action! { action },
|
||||||
Action::StopCameraLookAt(action) => unimplemented_action! { action },
|
// Action::StopCameraLookAt(action) => unimplemented_action! { action },
|
||||||
Action::EnterOrbitalCamera(action) => unimplemented_action! { action },
|
// Action::EnterOrbitalCamera(action) => unimplemented_action! { action },
|
||||||
Action::ExitOrbitalCamera(action) => unimplemented_action! { action },
|
// Action::ExitOrbitalCamera(action) => unimplemented_action! { action },
|
||||||
Action::SendAiEvent(action) => unimplemented_action! { action },
|
// Action::SendAiEvent(action) => unimplemented_action! { action },
|
||||||
Action::SetInteractionLockState(action) => unimplemented_action! { action },
|
// Action::SetInteractionLockState(action) => unimplemented_action! { action },
|
||||||
Action::AwakeEntity(action) => unimplemented_action! { action },
|
// Action::AwakeEntity(action) => unimplemented_action! { action },
|
||||||
Action::ChangeLiftTarget(action) => unimplemented_action! { action },
|
// Action::ChangeLiftTarget(action) => unimplemented_action! { action },
|
||||||
Action::CalculateVar(action) => unimplemented_action! { action },
|
// Action::CalculateVar(action) => unimplemented_action! { action },
|
||||||
Action::AddBuffToPlayer(action) => unimplemented_action! { action },
|
// Action::AddBuffToPlayer(action) => unimplemented_action! { action },
|
||||||
Action::RemoveBuffFromPlayer(action) => unimplemented_action! { action },
|
// Action::RemoveBuffFromPlayer(action) => unimplemented_action! { action },
|
||||||
Action::AddBuffToEntity(action) => unimplemented_action! { action },
|
// Action::AddBuffToEntity(action) => unimplemented_action! { action },
|
||||||
Action::RemoveBuffFromEntity(action) => unimplemented_action! { action },
|
// Action::RemoveBuffFromEntity(action) => unimplemented_action! { action },
|
||||||
Action::Prompt(action) => unimplemented_action! { action },
|
// Action::Prompt(action) => unimplemented_action! { action },
|
||||||
Action::SetEntityVisible(action) => unimplemented_action! { action },
|
// Action::SetEntityVisible(action) => unimplemented_action! { action },
|
||||||
Action::DestroyEntity(action) => unimplemented_action! { action },
|
// Action::DestroyEntity(action) => unimplemented_action! { action },
|
||||||
Action::GuideTrigger(action) => unimplemented_action! { action },
|
// Action::GuideTrigger(action) => unimplemented_action! { action },
|
||||||
Action::TriggerCameraShake(action) => unimplemented_action! { action },
|
// Action::TriggerCameraShake(action) => unimplemented_action! { action },
|
||||||
Action::SetVar(action) => unimplemented_action! { action },
|
// Action::SetVar(action) => unimplemented_action! { action },
|
||||||
Action::VehicleEnter(action) => unimplemented_action! { action },
|
// Action::VehicleEnter(action) => unimplemented_action! { action },
|
||||||
Action::VehicleExitPlayer(action) => unimplemented_action! { action },
|
// Action::VehicleExitPlayer(action) => unimplemented_action! { action },
|
||||||
Action::LockEntity(action) => unimplemented_action! { action },
|
// Action::LockEntity(action) => unimplemented_action! { action },
|
||||||
Action::UnlockEntity(action) => unimplemented_action! { action },
|
// Action::UnlockEntity(action) => unimplemented_action! { action },
|
||||||
Action::CommonTip(action) => unimplemented_action! { action },
|
// Action::CommonTip(action) => unimplemented_action! { action },
|
||||||
Action::CommonTip2(action) => unimplemented_action! { action },
|
// Action::CommonTip2(action) => unimplemented_action! { action },
|
||||||
Action::PostAkEvent(action) => unimplemented_action! { action },
|
// Action::PostAkEvent(action) => unimplemented_action! { action },
|
||||||
Action::VehicleEnterNpc(action) => unimplemented_action! { action },
|
// Action::VehicleEnterNpc(action) => unimplemented_action! { action },
|
||||||
Action::VehicleExitNpc(action) => unimplemented_action! { action },
|
// Action::VehicleExitNpc(action) => unimplemented_action! { action },
|
||||||
Action::PlayerLookAt(action) => unimplemented_action! { action },
|
// Action::PlayerLookAt(action) => unimplemented_action! { action },
|
||||||
Action::PlayBubble(action) => unimplemented_action! { action },
|
// Action::PlayBubble(action) => unimplemented_action! { action },
|
||||||
Action::AddPlayBubble(action) => unimplemented_action! { action },
|
// Action::AddPlayBubble(action) => unimplemented_action! { action },
|
||||||
Action::ClearPlayBubble(action) => unimplemented_action! { action },
|
// Action::ClearPlayBubble(action) => unimplemented_action! { action },
|
||||||
Action::ExecRiskHarvestEffect(action) => unimplemented_action! { action },
|
// Action::ExecRiskHarvestEffect(action) => unimplemented_action! { action },
|
||||||
Action::EnableLevelPlay(action) => unimplemented_action! { action },
|
// Action::EnableLevelPlay(action) => unimplemented_action! { action },
|
||||||
Action::ClaimLevelPlayReward(action) => unimplemented_action! { action },
|
// Action::ClaimLevelPlayReward(action) => unimplemented_action! { action },
|
||||||
Action::SettlementDungeon(action) => unimplemented_action! { action },
|
// Action::SettlementDungeon(action) => unimplemented_action! { action },
|
||||||
Action::ExitDungeon(action) => unimplemented_action! { action },
|
// Action::ExitDungeon(action) => unimplemented_action! { action },
|
||||||
Action::FinishDungeon(action) => unimplemented_action! { action },
|
// Action::FinishDungeon(action) => unimplemented_action! { action },
|
||||||
Action::RecordDungeonEvent(action) => unimplemented_action! { action },
|
// Action::RecordDungeonEvent(action) => unimplemented_action! { action },
|
||||||
Action::RecoverDurability(action) => unimplemented_action! { action },
|
// Action::RecoverDurability(action) => unimplemented_action! { action },
|
||||||
Action::FadeInScreen(action) => unimplemented_action! { action },
|
// Action::FadeInScreen(action) => unimplemented_action! { action },
|
||||||
Action::FadeOutScreen(action) => unimplemented_action! { action },
|
// Action::FadeOutScreen(action) => unimplemented_action! { action },
|
||||||
Action::ChangeNpcPerformState(action) => unimplemented_action! { action },
|
// Action::ChangeNpcPerformState(action) => unimplemented_action! { action },
|
||||||
Action::EntityTurnTo(action) => unimplemented_action! { action },
|
// Action::EntityTurnTo(action) => unimplemented_action! { action },
|
||||||
Action::EntityLookAt(action) => unimplemented_action! { action },
|
// Action::EntityLookAt(action) => unimplemented_action! { action },
|
||||||
Action::ToggleMapMarkState(action) => unimplemented_action! { action },
|
// Action::ToggleMapMarkState(action) => unimplemented_action! { action },
|
||||||
Action::RandomVar(action) => unimplemented_action! { action },
|
// Action::RandomVar(action) => unimplemented_action! { action },
|
||||||
Action::ModifySceneItemAttributeTag(action) => unimplemented_action! { action },
|
// Action::ModifySceneItemAttributeTag(action) => unimplemented_action! { action },
|
||||||
Action::VehicleWaterfallClimbing(action) => unimplemented_action! { action },
|
// Action::VehicleWaterfallClimbing(action) => unimplemented_action! { action },
|
||||||
Action::VehicleTeleport(action) => unimplemented_action! { action },
|
// Action::VehicleTeleport(action) => unimplemented_action! { action },
|
||||||
Action::RogueGotoNextFloor(action) => unimplemented_action! { action },
|
// Action::RogueGotoNextFloor(action) => unimplemented_action! { action },
|
||||||
Action::RogueReceiveReward(action) => unimplemented_action! { action },
|
// Action::RogueReceiveReward(action) => unimplemented_action! { action },
|
||||||
Action::RogueSelectRoom(action) => unimplemented_action! { action },
|
// Action::RogueSelectRoom(action) => unimplemented_action! { action },
|
||||||
Action::RogueActivatePortal(action) => unimplemented_action! { action },
|
// Action::RogueActivatePortal(action) => unimplemented_action! { action },
|
||||||
Action::MowingTowerGotoNextFloor(action) => unimplemented_action! { action },
|
// Action::MowingTowerGotoNextFloor(action) => unimplemented_action! { action },
|
||||||
Action::SlashAndTowerGotoNextFloor(action) => unimplemented_action! { action },
|
// Action::SlashAndTowerGotoNextFloor(action) => unimplemented_action! { action },
|
||||||
Action::PlayMontage(action) => unimplemented_action! { action },
|
// Action::PlayMontage(action) => unimplemented_action! { action },
|
||||||
Action::OpenSystemBoardWithReturn(action) => unimplemented_action! { action },
|
// Action::OpenSystemBoardWithReturn(action) => unimplemented_action! { action },
|
||||||
Action::UnlockSystemItem(action) => unimplemented_action! { action },
|
// Action::UnlockSystemItem(action) => unimplemented_action! { action },
|
||||||
Action::SetSportsState(action) => unimplemented_action! { action },
|
// Action::SetSportsState(action) => unimplemented_action! { action },
|
||||||
Action::OpenSimpleGameplay(action) => unimplemented_action! { action },
|
// Action::OpenSimpleGameplay(action) => unimplemented_action! { action },
|
||||||
Action::PlayEffect(action) => unimplemented_action! { action },
|
// Action::PlayEffect(action) => unimplemented_action! { action },
|
||||||
Action::PlayEffect2(action) => unimplemented_action! { action },
|
// Action::PlayEffect2(action) => unimplemented_action! { action },
|
||||||
Action::RestorePlayerCameraAdjustment(action) => unimplemented_action! { action },
|
// Action::RestorePlayerCameraAdjustment(action) => unimplemented_action! { action },
|
||||||
Action::AdjustPlayerCamera(action) => unimplemented_action! { action },
|
// Action::AdjustPlayerCamera(action) => unimplemented_action! { action },
|
||||||
Action::SetPlayerPos(action) => unimplemented_action! { action },
|
// Action::SetPlayerPos(action) => unimplemented_action! { action },
|
||||||
Action::MoveWithSpline(action) => unimplemented_action! { action },
|
// Action::MoveWithSpline(action) => unimplemented_action! { action },
|
||||||
Action::EnableSplineMoveModel(action) => unimplemented_action! { action },
|
// Action::EnableSplineMoveModel(action) => unimplemented_action! { action },
|
||||||
Action::ToggleScanSplineEffect(action) => unimplemented_action! { action },
|
// Action::ToggleScanSplineEffect(action) => unimplemented_action! { action },
|
||||||
Action::MoveSceneItem(action) => unimplemented_action! { action },
|
// Action::MoveSceneItem(action) => unimplemented_action! { action },
|
||||||
Action::StopSceneItemMove(action) => unimplemented_action! { action },
|
// Action::StopSceneItemMove(action) => unimplemented_action! { action },
|
||||||
Action::FireBullet(action) => unimplemented_action! { action },
|
// Action::FireBullet(action) => unimplemented_action! { action },
|
||||||
Action::ClearFishingCabinInSaleItems(action) => unimplemented_action! { action },
|
// Action::ClearFishingCabinInSaleItems(action) => unimplemented_action! { action },
|
||||||
Action::AcceptFishingEntrust(action) => unimplemented_action! { action },
|
// Action::AcceptFishingEntrust(action) => unimplemented_action! { action },
|
||||||
Action::DestroyFishingBoat(action) => unimplemented_action! { action },
|
// Action::DestroyFishingBoat(action) => unimplemented_action! { action },
|
||||||
Action::SetJigsawItem(action) => unimplemented_action! { action },
|
// Action::SetJigsawItem(action) => unimplemented_action! { action },
|
||||||
Action::SetJigsawFoundation(action) => unimplemented_action! { action },
|
// Action::SetJigsawFoundation(action) => unimplemented_action! { action },
|
||||||
Action::SetTeleControl(action) => unimplemented_action! { action },
|
// Action::SetTeleControl(action) => unimplemented_action! { action },
|
||||||
Action::SetEntityClientVisible(action) => unimplemented_action! { action },
|
// Action::SetEntityClientVisible(action) => unimplemented_action! { action },
|
||||||
Action::ToggleHighlightExploreUi(action) => unimplemented_action! { action },
|
// Action::ToggleHighlightExploreUi(action) => unimplemented_action! { action },
|
||||||
Action::ExecAlertSystemAction(action) => unimplemented_action! { action },
|
// Action::ExecAlertSystemAction(action) => unimplemented_action! { action },
|
||||||
Action::AddFlowInteractOption(action) => unimplemented_action! { action },
|
// Action::AddFlowInteractOption(action) => unimplemented_action! { action },
|
||||||
Action::RemoveFlowInteractOption(action) => unimplemented_action! { action },
|
// Action::RemoveFlowInteractOption(action) => unimplemented_action! { action },
|
||||||
Action::EnableHostility(action) => unimplemented_action! { action },
|
// Action::EnableHostility(action) => unimplemented_action! { action },
|
||||||
Action::ChangePhantomFormation(action) => unimplemented_action! { action },
|
// Action::ChangePhantomFormation(action) => unimplemented_action! { action },
|
||||||
Action::RestorePhantomFormation(action) => unimplemented_action! { action },
|
// Action::RestorePhantomFormation(action) => unimplemented_action! { action },
|
||||||
Action::ChangeTimer(action) => unimplemented_action! { action },
|
// Action::ChangeTimer(action) => unimplemented_action! { action },
|
||||||
Action::ToggleTimerPauseState(action) => unimplemented_action! { action },
|
// Action::ToggleTimerPauseState(action) => unimplemented_action! { action },
|
||||||
Action::ChangeFightTeam(action) => unimplemented_action! { action },
|
// Action::ChangeFightTeam(action) => unimplemented_action! { action },
|
||||||
Action::AddTrialFollowShooter(action) => unimplemented_action! { action },
|
// Action::AddTrialFollowShooter(action) => unimplemented_action! { action },
|
||||||
Action::RemoveTrialFollowShooter(action) => unimplemented_action! { action },
|
// Action::RemoveTrialFollowShooter(action) => unimplemented_action! { action },
|
||||||
Action::AddTrialCharacter(action) => unimplemented_action! { action },
|
// Action::AddTrialCharacter(action) => unimplemented_action! { action },
|
||||||
Action::RemoveTrialCharacter(action) => unimplemented_action! { action },
|
// Action::RemoveTrialCharacter(action) => unimplemented_action! { action },
|
||||||
Action::SetAreaState(action) => unimplemented_action! { action },
|
// Action::SetAreaState(action) => unimplemented_action! { action },
|
||||||
Action::SwitchSubLevels(action) => unimplemented_action! { action },
|
// Action::SwitchSubLevels(action) => unimplemented_action! { action },
|
||||||
Action::ChangeTeamPosition(action) => unimplemented_action! { action },
|
// Action::ChangeTeamPosition(action) => unimplemented_action! { action },
|
||||||
Action::GetItem(action) => unimplemented_action! { action },
|
// Action::GetItem(action) => unimplemented_action! { action },
|
||||||
Action::CreatePrefab(action) => unimplemented_action! { action },
|
// Action::CreatePrefab(action) => unimplemented_action! { action },
|
||||||
Action::DestroyPrefab(action) => unimplemented_action! { action },
|
// Action::DestroyPrefab(action) => unimplemented_action! { action },
|
||||||
Action::CompleteGuide(action) => unimplemented_action! { action },
|
// Action::CompleteGuide(action) => unimplemented_action! { action },
|
||||||
Action::PlayDynamicSettlement(action) => unimplemented_action! { action },
|
// Action::PlayDynamicSettlement(action) => unimplemented_action! { action },
|
||||||
Action::UsePhantomSkill(action) => unimplemented_action! { action },
|
// Action::UsePhantomSkill(action) => unimplemented_action! { action },
|
||||||
Action::HideTargetRange(action) => unimplemented_action! { action },
|
// Action::HideTargetRange(action) => unimplemented_action! { action },
|
||||||
Action::ChangeOtherState(action) => unimplemented_action! { action },
|
// Action::ChangeOtherState(action) => unimplemented_action! { action },
|
||||||
Action::SetRegionConfig(action) => unimplemented_action! { action },
|
// Action::SetRegionConfig(action) => unimplemented_action! { action },
|
||||||
Action::SetReviveRegion(action) => unimplemented_action! { action },
|
// Action::SetReviveRegion(action) => unimplemented_action! { action },
|
||||||
Action::ExecResurrection(action) => unimplemented_action! { action },
|
// Action::ExecResurrection(action) => unimplemented_action! { action },
|
||||||
Action::ShowTargetRange(action) => unimplemented_action! { action },
|
// Action::ShowTargetRange(action) => unimplemented_action! { action },
|
||||||
Action::SetTime(action) => unimplemented_action! { action },
|
// Action::SetTime(action) => unimplemented_action! { action },
|
||||||
Action::SetTimeLockState(action) => unimplemented_action! { action },
|
// Action::SetTimeLockState(action) => unimplemented_action! { action },
|
||||||
Action::EnableSystem(action) => unimplemented_action! { action },
|
// Action::EnableSystem(action) => unimplemented_action! { action },
|
||||||
Action::EnableAoiNotify(action) => unimplemented_action! { action },
|
// Action::EnableAoiNotify(action) => unimplemented_action! { action },
|
||||||
Action::SetForceLock(action) => unimplemented_action! { action },
|
// Action::SetForceLock(action) => unimplemented_action! { action },
|
||||||
Action::PlayRegisteredMontage(action) => unimplemented_action! { action },
|
// Action::PlayRegisteredMontage(action) => unimplemented_action! { action },
|
||||||
Action::SetAudioState(action) => unimplemented_action! { action },
|
// Action::SetAudioState(action) => unimplemented_action! { action },
|
||||||
Action::HideGroup(action) => unimplemented_action! { action },
|
// Action::HideGroup(action) => unimplemented_action! { action },
|
||||||
Action::ShowHidedGroup(action) => unimplemented_action! { action },
|
// Action::ShowHidedGroup(action) => unimplemented_action! { action },
|
||||||
Action::HideSpecificEntities(action) => unimplemented_action! { action },
|
// Action::HideSpecificEntities(action) => unimplemented_action! { action },
|
||||||
Action::ShowSpecificEntities(action) => unimplemented_action! { action },
|
// Action::ShowSpecificEntities(action) => unimplemented_action! { action },
|
||||||
Action::RemovePreloadResource(action) => unimplemented_action! { action },
|
// Action::RemovePreloadResource(action) => unimplemented_action! { action },
|
||||||
Action::Preload(action) => unimplemented_action! { action },
|
// Action::Preload(action) => unimplemented_action! { action },
|
||||||
Action::EnableAI(action) => unimplemented_action! { action },
|
// Action::EnableAI(action) => unimplemented_action! { action },
|
||||||
Action::SwitchDataLayers(action) => unimplemented_action! { action },
|
// Action::SwitchDataLayers(action) => unimplemented_action! { action },
|
||||||
Action::DestroyQuest(action) => unimplemented_action! { action },
|
// Action::DestroyQuest(action) => unimplemented_action! { action },
|
||||||
Action::DestroyQuestItem(action) => unimplemented_action! { action },
|
// Action::DestroyQuestItem(action) => unimplemented_action! { action },
|
||||||
Action::PromptQuestChapterUI(action) => unimplemented_action! { action },
|
// Action::PromptQuestChapterUI(action) => unimplemented_action! { action },
|
||||||
Action::TakePlotPhoto(action) => unimplemented_action! { action },
|
// Action::TakePlotPhoto(action) => unimplemented_action! { action },
|
||||||
Action::SetWuYinQuState(action) => unimplemented_action! { action },
|
// Action::SetWuYinQuState(action) => unimplemented_action! { action },
|
||||||
Action::RunActions(action) => unimplemented_action! { action },
|
// Action::RunActions(action) => unimplemented_action! { action },
|
||||||
Action::ManualOccupations(action) => unimplemented_action! { action },
|
// Action::ManualOccupations(action) => unimplemented_action! { action },
|
||||||
Action::SetWeather(action) => unimplemented_action! { action },
|
// Action::SetWeather(action) => unimplemented_action! { action },
|
||||||
Action::SendNpcMail(action) => unimplemented_action! { action },
|
// Action::SendNpcMail(action) => unimplemented_action! { action },
|
||||||
Action::EnableFunction(action) => unimplemented_action! { action },
|
// Action::EnableFunction(action) => unimplemented_action! { action },
|
||||||
Action::FocusOnMapMark(action) => unimplemented_action! { action },
|
// Action::FocusOnMapMark(action) => unimplemented_action! { action },
|
||||||
Action::CharacterLookAt(action) => unimplemented_action! { action },
|
// Action::CharacterLookAt(action) => unimplemented_action! { action },
|
||||||
Action::AddGuestCharacter(action) => unimplemented_action! { action },
|
// Action::AddGuestCharacter(action) => unimplemented_action! { action },
|
||||||
Action::RemoveGuestCharacter(action) => unimplemented_action! { action },
|
// Action::RemoveGuestCharacter(action) => unimplemented_action! { action },
|
||||||
Action::TeleportToAndEnterVehicle(action) => unimplemented_action! { action },
|
// Action::TeleportToAndEnterVehicle(action) => unimplemented_action! { action },
|
||||||
Action::SetAreaTimeState(action) => unimplemented_action! { action },
|
// Action::SetAreaTimeState(action) => unimplemented_action! { action },
|
||||||
Action::ResetPlayerCameraFocus(action) => unimplemented_action! { action },
|
// Action::ResetPlayerCameraFocus(action) => unimplemented_action! { action },
|
||||||
Action::ResetLevelPlay(action) => unimplemented_action! { action },
|
// Action::ResetLevelPlay(action) => unimplemented_action! { action },
|
||||||
Action::VehicleSprint(action) => unimplemented_action! { action },
|
// Action::VehicleSprint(action) => unimplemented_action! { action },
|
||||||
Action::VehicleMoveWithPathLine(action) => unimplemented_action! { action },
|
// Action::VehicleMoveWithPathLine(action) => unimplemented_action! { action },
|
||||||
Action::ClientPreEnableSubLevels(action) => unimplemented_action! { action },
|
// Action::ClientPreEnableSubLevels(action) => unimplemented_action! { action },
|
||||||
Action::GuestOperateUiAnimation(action) => unimplemented_action! { action },
|
// Action::GuestOperateUiAnimation(action) => unimplemented_action! { action },
|
||||||
Action::ChangeEntityCamp(action) => unimplemented_action! { action },
|
// Action::ChangeEntityCamp(action) => unimplemented_action! { action },
|
||||||
Action::NewMoveWithSpline(action) => unimplemented_action! { action },
|
// Action::NewMoveWithSpline(action) => unimplemented_action! { action },
|
||||||
Action::DangoAbyssActivatePortal(action) => unimplemented_action! { action },
|
// Action::DangoAbyssActivatePortal(action) => unimplemented_action! { action },
|
||||||
Action::DangoAbyssCreateRewardTreasureBox(action) => unimplemented_action! { action },
|
// Action::DangoAbyssCreateRewardTreasureBox(action) => unimplemented_action! { action },
|
||||||
Action::DangoAbyssGotoNextFloor(action) => unimplemented_action! { action },
|
// Action::DangoAbyssGotoNextFloor(action) => unimplemented_action! { action },
|
||||||
Action::DangoAbyssReceiveReward(action) => unimplemented_action! { action },
|
// Action::DangoAbyssReceiveReward(action) => unimplemented_action! { action },
|
||||||
Action::SummonEntity(action) => unimplemented_action! { action },
|
// Action::SummonEntity(action) => unimplemented_action! { action },
|
||||||
Action::GetRewardByInteract(action) => unimplemented_action! { action },
|
// Action::GetRewardByInteract(action) => unimplemented_action! { action },
|
||||||
Action::OpenQte(action) => unimplemented_action! { action },
|
// Action::OpenQte(action) => unimplemented_action! { action },
|
||||||
Action::ActiveAntiGravitySafePoint(action) => unimplemented_action! { action },
|
// Action::ActiveAntiGravitySafePoint(action) => unimplemented_action! { action },
|
||||||
Action::BvbPlayDialog(action) => unimplemented_action! { action },
|
// Action::BvbPlayDialog(action) => unimplemented_action! { action },
|
||||||
Action::BvbSendSystemEvent(action) => unimplemented_action! { action },
|
// Action::BvbSendSystemEvent(action) => unimplemented_action! { action },
|
||||||
Action::BvbSendAiEvent(action) => unimplemented_action! { action },
|
// Action::BvbSendAiEvent(action) => unimplemented_action! { action },
|
||||||
Action::BvbPlayerOperationConstraint(action) => unimplemented_action! { action },
|
// Action::BvbPlayerOperationConstraint(action) => unimplemented_action! { action },
|
||||||
Action::ExecClientBattleAction(action) => unimplemented_action! { action },
|
// Action::ExecClientBattleAction(action) => unimplemented_action! { action },
|
||||||
Action::TriggerSpecificScanEffect(action) => unimplemented_action! { action },
|
// Action::TriggerSpecificScanEffect(action) => unimplemented_action! { action },
|
||||||
Action::SetActorVar(action) => unimplemented_action! { action },
|
// Action::SetActorVar(action) => unimplemented_action! { action },
|
||||||
Action::RunActorCustomEvent(action) => unimplemented_action! { action },
|
// Action::RunActorCustomEvent(action) => unimplemented_action! { action },
|
||||||
Action::StopUiScreenEffect(action) => unimplemented_action! { action },
|
// Action::StopUiScreenEffect(action) => unimplemented_action! { action },
|
||||||
Action::StopNewMoveWithSpline(action) => unimplemented_action! { action },
|
// Action::StopNewMoveWithSpline(action) => unimplemented_action! { action },
|
||||||
Action::RequestSystemFunction(action) => unimplemented_action! { action },
|
// Action::RequestSystemFunction(action) => unimplemented_action! { action },
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
fn collect_action(player: &mut Player,
|
fn change_self_entity_state_action(player: &mut Player,
|
||||||
level_entity_data: &wicked_waifus_data::LevelEntityConfigData,
|
|
||||||
template_config: &wicked_waifus_data::TemplateConfigData) {
|
|
||||||
if let Some(reward_component) = level_entity_data.components_data.reward_component
|
|
||||||
.as_ref()
|
|
||||||
.or(template_config.components_data.reward_component.as_ref()) {
|
|
||||||
if reward_component.disabled.unwrap_or(false) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// TODO: check the use of reward_type and drop_on_event
|
|
||||||
// Seems type 0 is reward from preview, while 1 and 2 is unknown
|
|
||||||
if let Some(reward_id) = reward_component.reward_id {
|
|
||||||
let drop = wicked_waifus_data::drop_package_data::get(&reward_id).unwrap();
|
|
||||||
let usages = drop.drop_preview.iter()
|
|
||||||
.map(|(&id, &quantity)| ItemUsage { id, quantity })
|
|
||||||
.collect::<Vec<_>>();
|
|
||||||
let updated_items = player.inventory.add_items(&usages);
|
|
||||||
let normal_item_list = player.inventory.to_normal_item_list_filtered(
|
|
||||||
updated_items.keys().cloned().collect::<Vec<i32>>()
|
|
||||||
);
|
|
||||||
player.notify(NormalItemUpdateNotify { normal_item_list, no_tips: false });
|
|
||||||
// UpdateHandBookActiveStateMapNotify
|
|
||||||
let mut rewards: HashMap<i32, WR> = HashMap::new();
|
|
||||||
rewards.insert(0, WR {
|
|
||||||
item_list: drop.drop_preview.iter()
|
|
||||||
.map(|(&id, &quantity)| RewardItemInfo {
|
|
||||||
show_plan_id: 0, // TODO: Check how to get this
|
|
||||||
item_id: id,
|
|
||||||
count: quantity,
|
|
||||||
incr_id: 0,
|
|
||||||
})
|
|
||||||
.collect::<Vec<_>>(),
|
|
||||||
});
|
|
||||||
player.notify(ItemRewardNotify {
|
|
||||||
drop_id: reward_id,
|
|
||||||
reason: 15000,
|
|
||||||
magnification: 1,
|
|
||||||
reward_items: rewards,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
// TODO: Should we remove entity?? get pcap
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[inline(always)]
|
|
||||||
fn unlock_teleport_trigger(player: &mut Player, action: UnlockTeleportTrigger) {
|
|
||||||
player.unlock_teleport(action.teleport_id)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn change_self_entity_state(player: &mut Player,
|
|
||||||
entity_id: i64,
|
entity_id: i64,
|
||||||
level_entity_data: &wicked_waifus_data::LevelEntityConfigData,
|
level_entity_data: &wicked_waifus_data::LevelEntityConfigData,
|
||||||
template_config: &wicked_waifus_data::TemplateConfigData,
|
template_config: &wicked_waifus_data::TemplateConfigData,
|
||||||
|
|
Loading…
Reference in a new issue