@rpg-engine/long-bow 0.8.51 → 0.8.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,6 +8,7 @@ interface IDailyTaskItemProps {
8
8
  itemsAtlasIMG: string;
9
9
  iconAtlasJSON?: Record<string, any>;
10
10
  iconAtlasIMG?: string;
11
+ isRewardClaimed: boolean;
11
12
  }
12
13
  export declare const DailyTaskItem: React.FC<IDailyTaskItemProps>;
13
14
  export {};
@@ -3,6 +3,7 @@ import React from 'react';
3
3
  interface IGlobalTaskProgressProps {
4
4
  tasks: ICharacterDailyTask[];
5
5
  onClaimAllRewards: (tasks: ICollectGlobalRewardRequest) => void;
6
+ globalRewardClaimed: boolean;
6
7
  }
7
8
  export declare const GlobalDailyProgress: React.FC<IGlobalTaskProgressProps>;
8
9
  export {};
@@ -0,0 +1,13 @@
1
+ import { ICollectGlobalRewardRequest, ITaskIdentifier, TaskType } from '@rpg-engine/shared';
2
+ interface IUseDailyTasksStateProps {
3
+ onClaimReward: (task: ITaskIdentifier) => void;
4
+ onClaimGlobalReward: (tasks: ICollectGlobalRewardRequest) => void;
5
+ }
6
+ export declare function useDailyTasksState({ onClaimReward, onClaimGlobalReward, }: IUseDailyTasksStateProps): {
7
+ globalRewardClaimed: boolean;
8
+ claimedTaskKeys: string[];
9
+ isTaskRewardClaimed: (taskKey: string) => boolean;
10
+ handleClaimReward: (taskKey: string, type: TaskType) => void;
11
+ handleClaimGlobalRewards: (tasks: ICollectGlobalRewardRequest) => void;
12
+ };
13
+ export {};
@@ -29313,6 +29313,40 @@ var EmptyState = /*#__PURE__*/styled__default.div.withConfig({
29313
29313
  componentId: "sc-19q95ue-15"
29314
29314
  })(["position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:", ";width:100%;padding:2rem;svg{font-size:3rem;margin-bottom:1rem;opacity:0.7;}p{font-family:'Press Start 2P',cursive;font-size:0.9rem;margin:0;}"], uiColors.lightGray);
29315
29315
 
29316
+ function useDailyTasksState(_ref) {
29317
+ var onClaimReward = _ref.onClaimReward,
29318
+ onClaimGlobalReward = _ref.onClaimGlobalReward;
29319
+ var _useState = React.useState(false),
29320
+ globalRewardClaimed = _useState[0],
29321
+ setGlobalRewardClaimed = _useState[1];
29322
+ var _useState2 = React.useState([]),
29323
+ claimedTaskKeys = _useState2[0],
29324
+ setClaimedTaskKeys = _useState2[1];
29325
+ var handleClaimReward = function handleClaimReward(taskKey, type) {
29326
+ onClaimReward({
29327
+ type: type,
29328
+ taskKey: taskKey
29329
+ });
29330
+ setClaimedTaskKeys(function (prev) {
29331
+ return [].concat(prev, [taskKey]);
29332
+ });
29333
+ };
29334
+ var handleClaimGlobalRewards = function handleClaimGlobalRewards(tasks) {
29335
+ onClaimGlobalReward(tasks);
29336
+ setGlobalRewardClaimed(true);
29337
+ };
29338
+ var isTaskRewardClaimed = function isTaskRewardClaimed(taskKey) {
29339
+ return claimedTaskKeys.includes(taskKey);
29340
+ };
29341
+ return {
29342
+ globalRewardClaimed: globalRewardClaimed,
29343
+ claimedTaskKeys: claimedTaskKeys,
29344
+ isTaskRewardClaimed: isTaskRewardClaimed,
29345
+ handleClaimReward: handleClaimReward,
29346
+ handleClaimGlobalRewards: handleClaimGlobalRewards
29347
+ };
29348
+ }
29349
+
29316
29350
  var formatTaskKey = function formatTaskKey(key) {
29317
29351
  var formatted = key.replace(/[-_]/g, ' ');
29318
29352
  formatted = formatted.replace(/([A-Z])/g, ' $1');
@@ -29632,10 +29666,11 @@ var DailyTaskItem = function DailyTaskItem(_ref) {
29632
29666
  itemsAtlasJSON = _ref.itemsAtlasJSON,
29633
29667
  itemsAtlasIMG = _ref.itemsAtlasIMG,
29634
29668
  iconAtlasJSON = _ref.iconAtlasJSON,
29635
- iconAtlasIMG = _ref.iconAtlasIMG;
29669
+ iconAtlasIMG = _ref.iconAtlasIMG,
29670
+ isRewardClaimed = _ref.isRewardClaimed;
29636
29671
  var isMobile = shared.isMobileOrTablet();
29637
29672
  var isCompleted = task.status === shared.TaskStatus.Completed;
29638
- var isClaimed = task.claimed;
29673
+ var isClaimed = task.claimed || isRewardClaimed;
29639
29674
  var handleClaimReward = function handleClaimReward() {
29640
29675
  onClaimReward(task.key, task.type);
29641
29676
  };
@@ -29696,29 +29731,36 @@ var CollectWrapper = /*#__PURE__*/styled__default.div.withConfig({
29696
29731
 
29697
29732
  var GlobalDailyProgress = function GlobalDailyProgress(_ref) {
29698
29733
  var tasks = _ref.tasks,
29699
- onClaimAllRewards = _ref.onClaimAllRewards;
29734
+ onClaimAllRewards = _ref.onClaimAllRewards,
29735
+ globalRewardClaimed = _ref.globalRewardClaimed;
29700
29736
  var totalTasks = tasks.length;
29701
29737
  var completedTasks = tasks.filter(function (task) {
29702
29738
  return task.status === shared.TaskStatus.Completed;
29703
29739
  }).length;
29704
- var claimedTasks = tasks.filter(function (task) {
29740
+ var allCompleted = tasks.length > 0 && tasks.every(function (task) {
29741
+ return task.status === shared.TaskStatus.Completed;
29742
+ });
29743
+ var allClaimed = tasks.length > 0 && tasks.every(function (task) {
29705
29744
  return task.claimed === true;
29706
- }).length;
29707
- var allCompleted = completedTasks === totalTasks;
29708
- var allClaimed = claimedTasks === totalTasks;
29709
- var _React$useState = React__default.useState(false),
29710
- isClaimed = _React$useState[0],
29711
- setIsClaimed = _React$useState[1];
29712
- var handleClaimAll = function handleClaimAll(tasks) {
29713
- onClaimAllRewards(tasks);
29714
- setIsClaimed(true);
29745
+ });
29746
+ var shouldShowGlobalButton = allCompleted && allClaimed && !globalRewardClaimed;
29747
+ var handleClaimAll = function handleClaimAll() {
29748
+ var taskIdentifiers = tasks.map(function (task) {
29749
+ return {
29750
+ taskKey: task.key,
29751
+ type: task.type
29752
+ };
29753
+ });
29754
+ onClaimAllRewards({
29755
+ tasks: taskIdentifiers
29756
+ });
29715
29757
  };
29716
29758
  return React__default.createElement(GlobalProgressContainer, null, React__default.createElement(HeaderContainer$1, null, React__default.createElement(GlobeIcon, null, "\uD83C\uDF0D"), React__default.createElement(ProgressText, null, "Global Tasks Completed: ", completedTasks, "/", totalTasks)), React__default.createElement(ProgressBar, null, React__default.createElement(ProgressFill, {
29717
29759
  percentage: completedTasks / totalTasks * 100
29718
- })), totalTasks > 0 && allCompleted && React__default.createElement(React__default.Fragment, null, allClaimed || isClaimed ? React__default.createElement(ClaimedText$1, null, "Global Rewards Claimed") : React__default.createElement(CollectWrapper$1, null, React__default.createElement(Button, {
29760
+ })), allCompleted && React__default.createElement(React__default.Fragment, null, shouldShowGlobalButton ? React__default.createElement(CollectWrapper$1, null, React__default.createElement(Button, {
29719
29761
  buttonType: exports.ButtonTypes.RPGUIButton,
29720
29762
  onPointerDown: handleClaimAll
29721
- }, "Collect Global Rewards"))));
29763
+ }, "Collect Global Rewards")) : React__default.createElement(ClaimedText$1, null, "Global Rewards Claimed")));
29722
29764
  };
29723
29765
  var GlobalProgressContainer = /*#__PURE__*/styled__default.div.withConfig({
29724
29766
  displayName: "GlobalDailyProgress__GlobalProgressContainer",
@@ -29769,15 +29811,14 @@ var DailyTasks = function DailyTasks(_ref) {
29769
29811
  var _React$useState = React__default.useState(tasks),
29770
29812
  localTasks = _React$useState[0];
29771
29813
  var size = useResponsiveSize(scale);
29772
- var handleClaimReward = function handleClaimReward(taskKey, type) {
29773
- onClaimReward({
29774
- type: type,
29775
- taskKey: taskKey
29776
- });
29777
- };
29778
- var handleClaimGlobalRewards = function handleClaimGlobalRewards(tasks) {
29779
- onClaimGlobalReward(tasks);
29780
- };
29814
+ var _useDailyTasksState = useDailyTasksState({
29815
+ onClaimReward: onClaimReward,
29816
+ onClaimGlobalReward: onClaimGlobalReward
29817
+ }),
29818
+ globalRewardClaimed = _useDailyTasksState.globalRewardClaimed,
29819
+ handleClaimReward = _useDailyTasksState.handleClaimReward,
29820
+ handleClaimGlobalRewards = _useDailyTasksState.handleClaimGlobalRewards,
29821
+ isTaskRewardClaimed = _useDailyTasksState.isTaskRewardClaimed;
29781
29822
  if (!size) return null;
29782
29823
  return React__default.createElement(TasksContainer, {
29783
29824
  type: exports.RPGUIContainerTypes.Framed,
@@ -29790,7 +29831,8 @@ var DailyTasks = function DailyTasks(_ref) {
29790
29831
  className: "tasks-container"
29791
29832
  }, React__default.createElement(GlobalDailyProgress, {
29792
29833
  tasks: localTasks,
29793
- onClaimAllRewards: handleClaimGlobalRewards
29834
+ onClaimAllRewards: handleClaimGlobalRewards,
29835
+ globalRewardClaimed: globalRewardClaimed
29794
29836
  }), localTasks.map(function (task) {
29795
29837
  return React__default.createElement(DailyTaskItem, {
29796
29838
  key: task.key,
@@ -29800,7 +29842,8 @@ var DailyTasks = function DailyTasks(_ref) {
29800
29842
  itemsAtlasJSON: itemsAtlasJSON,
29801
29843
  itemsAtlasIMG: itemsAtlasIMG,
29802
29844
  iconAtlasJSON: iconAtlasJSON,
29803
- iconAtlasIMG: iconAtlasIMG
29845
+ iconAtlasIMG: iconAtlasIMG,
29846
+ isRewardClaimed: isTaskRewardClaimed(task.key)
29804
29847
  });
29805
29848
  }))));
29806
29849
  };