@rpg-engine/long-bow 0.8.50 → 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');
@@ -29415,13 +29449,13 @@ var DailyRewardsTooltip = function DailyRewardsTooltip(_ref) {
29415
29449
  return React__default.createElement(TooltipContainer$1, null, React__default.createElement(CollapsibleHeader, {
29416
29450
  onClick: toggleExpand
29417
29451
  }, React__default.createElement(HeaderText, null, "Rewards?"), React__default.createElement(ExpandIcon, null, isExpanded ? '▼' : '▶')), isExpanded && React__default.createElement(CollapsibleContent, null, React__default.createElement(RewardsList, null, sortedRewards.map(function (reward, index) {
29418
- var _reward$key;
29452
+ var _reward$texturePath, _reward$key;
29419
29453
  return React__default.createElement(RewardItem, {
29420
29454
  key: index
29421
29455
  }, React__default.createElement(SpriteFromAtlas, {
29422
29456
  atlasJSON: itemsAtlasJSON,
29423
29457
  atlasIMG: itemsAtlasIMG,
29424
- spriteKey: reward.type === shared.RewardType.Gold ? 'others/gold-coin-qty-6.png' : reward.type === shared.RewardType.Experience ? 'others/royal-chalice.png' : reward.texturePath || 'others/no-image.png',
29458
+ spriteKey: (_reward$texturePath = reward.texturePath) != null ? _reward$texturePath : 'check.png',
29425
29459
  width: 24,
29426
29460
  height: 24,
29427
29461
  imgScale: 1.75
@@ -29466,7 +29500,7 @@ var ItemContent = /*#__PURE__*/styled__default.div.withConfig({
29466
29500
  var RewardLabel = /*#__PURE__*/styled__default.span.withConfig({
29467
29501
  displayName: "DailyRewardsTooltip__RewardLabel",
29468
29502
  componentId: "sc-wxzcu4-8"
29469
- })(["color:", ";font-size:0.9rem;line-height:1.2;display:inline-flex;align-items:center;"], uiColors.yellow);
29503
+ })(["color:", ";font-size:0.9rem;line-height:1.2;padding-top:15px;display:inline-flex;align-items:center;"], uiColors.yellow);
29470
29504
  var RewardValue = /*#__PURE__*/styled__default.span.withConfig({
29471
29505
  displayName: "DailyRewardsTooltip__RewardValue",
29472
29506
  componentId: "sc-wxzcu4-9"
@@ -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 && allClaimed && React__default.createElement(React__default.Fragment, null, 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",
@@ -29767,35 +29809,16 @@ var DailyTasks = function DailyTasks(_ref) {
29767
29809
  iconAtlasJSON = _ref.iconAtlasJSON,
29768
29810
  iconAtlasIMG = _ref.iconAtlasIMG;
29769
29811
  var _React$useState = React__default.useState(tasks),
29770
- localTasks = _React$useState[0],
29771
- setLocalTasks = _React$useState[1];
29812
+ localTasks = _React$useState[0];
29772
29813
  var size = useResponsiveSize(scale);
29773
- var handleClaimReward = function handleClaimReward(taskKey, type) {
29774
- setLocalTasks(function (prevTasks) {
29775
- return prevTasks.map(function (task) {
29776
- return task.key === taskKey ? _extends({}, task, {
29777
- claimed: true
29778
- }) : task;
29779
- });
29780
- });
29781
- onClaimReward({
29782
- type: type,
29783
- taskKey: taskKey
29784
- });
29785
- };
29786
- var handleClaimAllRewards = function handleClaimAllRewards() {
29787
- var tasksToReward = localTasks.filter(function (task) {
29788
- return task.status === shared.TaskStatus.Completed && !task.claimed;
29789
- }).map(function (task) {
29790
- return {
29791
- type: task.type,
29792
- taskKey: task.key
29793
- };
29794
- });
29795
- onClaimGlobalReward({
29796
- tasks: tasksToReward
29797
- });
29798
- };
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;
29799
29822
  if (!size) return null;
29800
29823
  return React__default.createElement(TasksContainer, {
29801
29824
  type: exports.RPGUIContainerTypes.Framed,
@@ -29808,7 +29831,8 @@ var DailyTasks = function DailyTasks(_ref) {
29808
29831
  className: "tasks-container"
29809
29832
  }, React__default.createElement(GlobalDailyProgress, {
29810
29833
  tasks: localTasks,
29811
- onClaimAllRewards: handleClaimAllRewards
29834
+ onClaimAllRewards: handleClaimGlobalRewards,
29835
+ globalRewardClaimed: globalRewardClaimed
29812
29836
  }), localTasks.map(function (task) {
29813
29837
  return React__default.createElement(DailyTaskItem, {
29814
29838
  key: task.key,
@@ -29818,7 +29842,8 @@ var DailyTasks = function DailyTasks(_ref) {
29818
29842
  itemsAtlasJSON: itemsAtlasJSON,
29819
29843
  itemsAtlasIMG: itemsAtlasIMG,
29820
29844
  iconAtlasJSON: iconAtlasJSON,
29821
- iconAtlasIMG: iconAtlasIMG
29845
+ iconAtlasIMG: iconAtlasIMG,
29846
+ isRewardClaimed: isTaskRewardClaimed(task.key)
29822
29847
  });
29823
29848
  }))));
29824
29849
  };