push for xavo review

This commit is contained in:
RabbyDevs 2025-05-17 20:35:40 +03:00
parent b3c5e03786
commit ce265b89ca
4 changed files with 464 additions and 431 deletions

View 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)
}

View file

@ -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(_) => {

View file

@ -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) {

View file

@ -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,