Add task trace Feature. Modify task UI.

This commit is contained in:
Chomper9981
2026-01-29 17:42:34 +07:00
parent 035f313e00
commit 5aff603a47
43 changed files with 6855 additions and 263 deletions
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3d4db99fadd6448b0a060059e0c22a0e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 474bf9c22c7c445aeb9bfb8b1b77ab55
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,143 @@
using UnityEngine;
using TMPro;
using UnityEngine.EventSystems;
using BrewMonster.Scripts.Task.UI;
using System.Collections.Generic;
using BrewMonster.UI;
namespace BrewMonster
{
public class StyledTaskTraceText : MonoBehaviour, IPointerMoveHandler, IPointerExitHandler,IPointerClickHandler
{
public enum LinkType
{
coord,
npc,
monster,
item,
target
}
public TMP_Text tmp;
private List<LinkCommand> linkCommands =new List<LinkCommand>();
int hoveredLink = -1;
LinkType linkType = LinkType.coord;
Color32 normalColor = new Color32(77, 166, 255, 255);
Color32 hoverColor = new Color32(255, 200, 80, 255);
public void SetLinkType( LinkType linkType)
{
this.linkType = linkType;
}
private void Start()
{
tmp.raycastTarget = true;
ResetLinkColor();
tmp.ForceMeshUpdate();
}
public void OnPointerMove(PointerEventData eventData)
{
int linkIndex = TMP_TextUtilities.FindIntersectingLink(
tmp,
eventData.position,
eventData.pressEventCamera
);
if (linkIndex != hoveredLink)
{
ResetLinkColor();
hoveredLink = linkIndex;
if (hoveredLink != -1)
SetLinkColor(hoveredLink, hoverColor);
}
}
public void Set(string text)
{
tmp.text = text;
}
public void OnPointerExit(PointerEventData eventData)
{
ResetLinkColor();
hoveredLink = -1;
}
public void AddToFirstPosition(LinkCommand linkCommand)
{
linkCommands.Insert(0, linkCommand);
}
public void AddToLastPosition(LinkCommand linkCommand)
{
linkCommands.Add(linkCommand);
}
public void AddLinkCommand(LinkCommand linkCommand)
{
linkCommands.Add(linkCommand);
}
public void RemoveLinkCommand(int linkIndex)
{
linkCommands.RemoveAt(linkIndex);
}
public void RefreshLinkCommands()
{
tmp.text = "";
linkCommands.Clear();
}
void SetLinkColor(int linkIndex, Color32 color)
{
TMP_LinkInfo linkInfo = tmp.textInfo.linkInfo[linkIndex];
for (int i = 0; i < linkInfo.linkTextLength; i++)
{
int charIndex = linkInfo.linkTextfirstCharacterIndex + i;
var charInfo = tmp.textInfo.characterInfo[charIndex];
if (!charInfo.isVisible) continue;
int meshIndex = charInfo.materialReferenceIndex;
int vertexIndex = charInfo.vertexIndex;
var colors = tmp.textInfo.meshInfo[meshIndex].colors32;
colors[vertexIndex + 0] = color;
colors[vertexIndex + 1] = color;
colors[vertexIndex + 2] = color;
colors[vertexIndex + 3] = color;
}
tmp.UpdateVertexData(TMP_VertexDataUpdateFlags.Colors32);
}
public void OnPointerClick(PointerEventData eventData)
{
if (hoveredLink == -1) return;
TMP_LinkInfo linkInfo = tmp.textInfo.linkInfo[hoveredLink];
string linkText = linkInfo.GetLinkText();
string entityID = linkInfo.GetLinkID();
switch (linkType)
{
case LinkType.coord:
Debug.Log($"Clicked coord link: ID={entityID} Type={linkType} Text={linkText}");
linkCommands[hoveredLink].Execute(tmp);
//Debug.Log($"[StyledTaskTraceText] OnPointerClick: linkCommands[hoveredLink].Execute(tmp) => {linkCommands[hoveredLink].Execute(tmp)}");
break;
case LinkType.npc:
Debug.Log($"Clicked npc link: ID={entityID} Type={linkType} Text={linkText}");
break;
case LinkType.monster:
Debug.Log($"Clicked monster link: ID={entityID} Type={linkType} Text={linkText}");
break;
}
ResetLinkColor();
hoveredLink = -1;
}
void ResetLinkColor()
{
if (hoveredLink == -1) return;
SetLinkColor(hoveredLink, normalColor);
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 9948396f0593842c9b52db8752b5eeba
@@ -124,7 +124,7 @@ GameObject:
- component: {fileID: 2073914007811294008}
- component: {fileID: 3966264511266465954}
m_Layer: 5
m_Name: OffFrame
m_Name: OnState
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -1138,10 +1138,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 3123454216176481580}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 40.635, y: -16.2}
m_SizeDelta: {x: 50.7351, y: 26.6806}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -15, y: 0}
m_SizeDelta: {x: -30, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7639966540866459946
CanvasRenderer:
@@ -1171,7 +1171,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u0110\xF3ng"
m_text: "M\u1EDF"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
@@ -1198,14 +1198,14 @@ MonoBehaviour:
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 32.5
m_fontSizeBase: 32.5
m_fontSize: 24
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: -4.5
@@ -1236,7 +1236,7 @@ MonoBehaviour:
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: -0.27215576, y: -0.10165405, z: 0, w: 0}
m_margin: {x: 4, y: 0, z: 0, w: 4}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
@@ -4381,7 +4381,8 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 9186753556377915254}
- component: {fileID: 6244284104014817409}
- component: {fileID: 6840182078374811692}
- component: {fileID: 2621128482725560404}
m_Layer: 5
m_Name: ShoTraceToggle
m_TagString: Untagged
@@ -4410,7 +4411,22 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 103.5415, y: 42.7938}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &6244284104014817409
--- !u!114 &6840182078374811692
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4431186934832812115}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 35157c775228541e3ba4a1cf99c8cde0, type: 3}
m_Name:
m_EditorClassIdentifier:
toggle: {fileID: 2621128482725560404}
HideStateObject: {fileID: 3683819913026684851}
ShowStateObject: {fileID: 3123454216176481580}
--- !u!114 &2621128482725560404
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -4429,7 +4445,7 @@ MonoBehaviour:
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Transition: 0
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
@@ -4450,14 +4466,14 @@ MonoBehaviour:
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 2073914007811294008}
m_TargetGraphic: {fileID: 0}
toggleTransition: 1
graphic: {fileID: 6758959852572783852}
graphic: {fileID: 0}
m_Group: {fileID: 0}
onValueChanged:
m_PersistentCalls:
m_Calls: []
m_IsOn: 1
m_IsOn: 0
--- !u!1 &4529600407288641986
GameObject:
m_ObjectHideFlags: 0
@@ -6129,10 +6145,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 3683819913026684851}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 32.2, y: -16.2}
m_SizeDelta: {x: 67.6051, y: 26.6806}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -15, y: 0}
m_SizeDelta: {x: -30, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &153087682357708300
CanvasRenderer:
@@ -6162,7 +6178,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "M\u1EDF"
m_text: "\u0110\xF3ng"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
@@ -6189,14 +6205,14 @@ MonoBehaviour:
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 32.5
m_fontSizeBase: 32.5
m_fontSize: 24
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: -4.5
@@ -6227,7 +6243,7 @@ MonoBehaviour:
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 24.383972, y: -0.10165405, z: 0, w: 0}
m_margin: {x: 4, y: 0, z: 0, w: 4}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
@@ -6406,7 +6422,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -17, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!222 &5693552902337398956
CanvasRenderer:
@@ -7189,11 +7205,11 @@ MonoBehaviour:
m_pBtn_NormalQuest: {fileID: 0}
m_pBtn_SearchQuest: {fileID: 3993402114383519284}
m_pBtn_HaveQuest: {fileID: 8416675113205287645}
m_pBtn_bShowTrace: {fileID: 9136710161848467276}
m_pTog_bShowTrace: {fileID: 2621128482725560404}
m_pBtn_FinishTask: {fileID: 6741042101550509130}
m_pTxt_BaseAward: {fileID: 6764788513594170349}
Btn_TreasureMap: {fileID: 7903297208011070717}
Btn_Focus: {fileID: 2955519617984623694}
Btn_Focus: {fileID: 601347568680326690}
Lab_QuestNO: {fileID: 4208730212235768509}
m_pImg_Item:
- {fileID: 1878888636723388585}
@@ -8457,7 +8473,7 @@ GameObject:
- component: {fileID: 6758959852572783852}
- component: {fileID: 894529387942206273}
m_Layer: 5
m_Name: OnFrame
m_Name: OffState
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -8570,23 +8586,23 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_AnchorMax.x
value: 0.5
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_AnchorMax.y
value: 0.5
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_AnchorMin.x
value: 0.5
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_AnchorMin.y
value: 0.5
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_SizeDelta.x
value: 319.58
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_SizeDelta.y
@@ -8622,11 +8638,11 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_AnchoredPosition.x
value: -151.28992
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_AnchoredPosition.y
value: 336.93
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
@@ -50,7 +50,9 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 8688b7d87bac4c16b9eaa3408f8ea419, type: 3}
m_Name:
m_EditorClassIdentifier:
m_pTreeViewItemPrefab: {fileID: 4314770845850481090, guid: 8752f9e95e4124abfb0d46a2cbe805e4, type: 3}
m_pTreeItemPrefab_Deep1: {fileID: 4314770845850481090, guid: 8752f9e95e4124abfb0d46a2cbe805e4, type: 3}
m_pTreeItemPrefab_Deep2: {fileID: 4314770845850481090, guid: 3cb6791423916496ea0a5b059419fdaa, type: 3}
m_pTreeItemPrefab_Deep3: {fileID: 4314770845850481090, guid: 7b4ec3e05f31a45138f72011c6bf7cf2, type: 3}
_currentSelectedItem: {fileID: 0}
m_aTreeViewItems: []
--- !u!114 &6404897883559725565
@@ -70,7 +72,7 @@ MonoBehaviour:
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 0
m_ChildAlignment: 1
m_Spacing: 0
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 1
@@ -0,0 +1,832 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &65963818834361054
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5340186735755952146}
- component: {fileID: 4037779820030979599}
- component: {fileID: 5018334036525203585}
m_Layer: 5
m_Name: Text (TMP) (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &5340186735755952146
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 65963818834361054}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7277676979067820762}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -0.00048828125, y: 0}
m_SizeDelta: {x: 31, y: 21}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4037779820030979599
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 65963818834361054}
m_CullTransparentMesh: 1
--- !u!114 &5018334036525203585
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 65963818834361054}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: acb875b203dad934ba6728afc54a0457, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &700152255263326765
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5053903421260846465}
- component: {fileID: 4314770845850481090}
- component: {fileID: 4986645933044111193}
- component: {fileID: 1062363862839909147}
m_Layer: 5
m_Name: TreeViewIState1
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5053903421260846465
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 700152255263326765}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2024997316782034639}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 312.2704, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &4314770845850481090
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 700152255263326765}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3428dd2e9dd644e0b0cb408bd3202f21, type: 3}
m_Name:
m_EditorClassIdentifier:
m_text:
legacy: {fileID: 0}
tmp: {fileID: 1383932928540251694}
m_Button: {fileID: 1762532130762754577}
_expandToggle: {fileID: 5502308808383608272}
_expandText:
legacy: {fileID: 0}
tmp: {fileID: 0}
_space: {fileID: 5541755240357469011}
_expandBG: {fileID: 6073336955970910715}
ExpandBGActive: {fileID: 21300000, guid: b545f49a479374ffaaec0c8f123b0c5f, type: 3}
ExpandBGInactive: {fileID: 21300000, guid: e09a5d2cb3c3f4c858754a1e90a44abd, type: 3}
m_uItemData: 0
_treeLevel: 0
isLastItem: 0
OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &4986645933044111193
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 700152255263326765}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 0
m_VerticalFit: 1
--- !u!114 &1062363862839909147
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 700152255263326765}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 1
m_Spacing: 0
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &2040002976300010419
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3882154025378162395}
- component: {fileID: 2230410216357545400}
- component: {fileID: 1762532130762754577}
- component: {fileID: 4801006375863435037}
m_Layer: 5
m_Name: MainButton
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3882154025378162395
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2040002976300010419}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5827054231092576763}
m_Father: {fileID: 2024997316782034639}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2230410216357545400
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2040002976300010419}
m_CullTransparentMesh: 1
--- !u!114 &1762532130762754577
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2040002976300010419}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 0}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &4801006375863435037
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2040002976300010419}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
m_MinWidth: 200
m_MinHeight: -1
m_PreferredWidth: 225
m_PreferredHeight: -1
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 2
--- !u!1 &2916175606199835458
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5827054231092576763}
- component: {fileID: 5842649278580849339}
- component: {fileID: 1383932928540251694}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5827054231092576763
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2916175606199835458}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3882154025378162395}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0.00000023841858}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5842649278580849339
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2916175606199835458}
m_CullTransparentMesh: 1
--- !u!114 &1383932928540251694
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2916175606199835458}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Daily quest
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 24
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 15
m_fontSizeMax: 40
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 10}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &6587684749681441909
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5062486824527634889}
- component: {fileID: 7099288759002186546}
- component: {fileID: 520846459080750772}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5062486824527634889
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6587684749681441909}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7277676979067820762}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -0.00048828125, y: 0}
m_SizeDelta: {x: 31, y: 21}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7099288759002186546
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6587684749681441909}
m_CullTransparentMesh: 1
--- !u!114 &520846459080750772
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6587684749681441909}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 9de07872267c5419b9fa9c849eb45858, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &6592915584227539970
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2930138263853700511}
- component: {fileID: 5541755240357469011}
m_Layer: 5
m_Name: Space
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &2930138263853700511
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6592915584227539970}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2024997316782034639}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: -20}
m_SizeDelta: {x: 0, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &5541755240357469011
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6592915584227539970}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
m_MinWidth: 0
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredHeight: -1
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &6863650808120944178
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7277676979067820762}
- component: {fileID: 885853373149276158}
- component: {fileID: 1569122208421759741}
- component: {fileID: 5502308808383608272}
- component: {fileID: 8681673894369501558}
- component: {fileID: 5023660321199965886}
m_Layer: 5
m_Name: ExpandToggle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7277676979067820762
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6863650808120944178}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5062486824527634889}
- {fileID: 5340186735755952146}
m_Father: {fileID: 2024997316782034639}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &885853373149276158
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6863650808120944178}
m_CullTransparentMesh: 1
--- !u!114 &1569122208421759741
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6863650808120944178}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 252815192406529888, guid: a141ce1b94af3cf46aa0695ab5ed6cdd, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &5502308808383608272
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6863650808120944178}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1569122208421759741}
toggleTransition: 1
graphic: {fileID: 0}
m_Group: {fileID: 0}
onValueChanged:
m_PersistentCalls:
m_Calls: []
m_IsOn: 0
--- !u!114 &8681673894369501558
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6863650808120944178}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: 90
m_PreferredHeight: 90
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!114 &5023660321199965886
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6863650808120944178}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 35157c775228541e3ba4a1cf99c8cde0, type: 3}
m_Name:
m_EditorClassIdentifier:
toggle: {fileID: 5502308808383608272}
HideStateObject: {fileID: 5062486824527634889}
ShowStateObject: {fileID: 5340186735755952146}
--- !u!1 &7973684205123875483
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2024997316782034639}
- component: {fileID: 6485915084394087119}
- component: {fileID: 5819741135621999575}
- component: {fileID: 6073336955970910715}
m_Layer: 5
m_Name: MainContent
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2024997316782034639
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7973684205123875483}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2930138263853700511}
- {fileID: 7277676979067820762}
- {fileID: 3882154025378162395}
m_Father: {fileID: 5053903421260846465}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 313, y: 91}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &6485915084394087119
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7973684205123875483}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 0
m_Spacing: 0
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 1
m_ChildControlWidth: 1
m_ChildControlHeight: 1
m_ChildScaleWidth: 1
m_ChildScaleHeight: 1
m_ReverseArrangement: 0
--- !u!222 &5819741135621999575
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7973684205123875483}
m_CullTransparentMesh: 1
--- !u!114 &6073336955970910715
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7973684205123875483}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: b545f49a479374ffaaec0c8f123b0c5f, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
@@ -13,7 +13,7 @@ GameObject:
- component: {fileID: 4986645933044111193}
- component: {fileID: 1062363862839909147}
m_Layer: 5
m_Name: TreeViewItem
m_Name: TreeViewIState2
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -37,7 +37,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 312.2704, y: 0}
m_SizeDelta: {x: 295, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &4314770845850481090
MonoBehaviour:
@@ -58,8 +58,11 @@ MonoBehaviour:
_expandToggle: {fileID: 5502308808383608272}
_expandText:
legacy: {fileID: 0}
tmp: {fileID: 8373064842616042426}
tmp: {fileID: 0}
_space: {fileID: 5541755240357469011}
_expandBG: {fileID: 6073336955970910715}
ExpandBGActive: {fileID: 21300000, guid: 42074c4f5f76b4cbc9043df8f430af5f, type: 3}
ExpandBGInactive: {fileID: 21300000, guid: e09a5d2cb3c3f4c858754a1e90a44abd, type: 3}
m_uItemData: 0
_treeLevel: 0
isLastItem: 0
@@ -97,7 +100,7 @@ MonoBehaviour:
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 0
m_ChildAlignment: 1
m_Spacing: 0
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1
@@ -116,7 +119,6 @@ GameObject:
m_Component:
- component: {fileID: 3882154025378162395}
- component: {fileID: 2230410216357545400}
- component: {fileID: 9062463037674165507}
- component: {fileID: 1762532130762754577}
- component: {fileID: 4801006375863435037}
m_Layer: 5
@@ -154,36 +156,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2040002976300010419}
m_CullTransparentMesh: 1
--- !u!114 &9062463037674165507
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2040002976300010419}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.011764706}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &1762532130762754577
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -224,7 +196,7 @@ MonoBehaviour:
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 9062463037674165507}
m_TargetGraphic: {fileID: 0}
m_OnClick:
m_PersistentCalls:
m_Calls: []
@@ -241,11 +213,11 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
m_MinWidth: 0
m_MinWidth: 200
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredWidth: 225
m_PreferredHeight: -1
m_FlexibleWidth: 0.5
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 2
--- !u!1 &2916175606199835458
@@ -259,7 +231,6 @@ GameObject:
- component: {fileID: 5827054231092576763}
- component: {fileID: 5842649278580849339}
- component: {fileID: 1383932928540251694}
- component: {fileID: 3802392566423567257}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
@@ -314,7 +285,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: New Text
m_text: Daily quest
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
@@ -379,32 +350,12 @@ MonoBehaviour:
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_margin: {x: 0, y: 0, z: 0, w: 10}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!114 &3802392566423567257
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2916175606199835458}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 1
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredHeight: -1
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &6587684749681441909
GameObject:
m_ObjectHideFlags: 0
@@ -415,7 +366,7 @@ GameObject:
m_Component:
- component: {fileID: 5062486824527634889}
- component: {fileID: 7099288759002186546}
- component: {fileID: 8373064842616042426}
- component: {fileID: 520846459080750772}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
@@ -440,7 +391,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -0.00048828125, y: 0}
m_SizeDelta: {x: 40.883, y: 40}
m_SizeDelta: {x: 31, y: 21}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7099288759002186546
CanvasRenderer:
@@ -450,7 +401,7 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6587684749681441909}
m_CullTransparentMesh: 1
--- !u!114 &8373064842616042426
--- !u!114 &520846459080750772
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -459,7 +410,7 @@ MonoBehaviour:
m_GameObject: {fileID: 6587684749681441909}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@@ -470,77 +421,16 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: +
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
m_Sprite: {fileID: 21300000, guid: 9de07872267c5419b9fa9c849eb45858, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &6592915584227539970
GameObject:
m_ObjectHideFlags: 0
@@ -557,7 +447,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &2930138263853700511
RectTransform:
m_ObjectHideFlags: 0
@@ -572,10 +462,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 2024997316782034639}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: -20}
m_SizeDelta: {x: 0, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &5541755240357469011
MonoBehaviour:
@@ -738,8 +628,8 @@ MonoBehaviour:
m_IgnoreLayout: 0
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: 40
m_PreferredHeight: 40
m_PreferredWidth: 90
m_PreferredHeight: 90
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
@@ -753,6 +643,8 @@ GameObject:
m_Component:
- component: {fileID: 2024997316782034639}
- component: {fileID: 6485915084394087119}
- component: {fileID: 5819741135621999575}
- component: {fileID: 6073336955970910715}
m_Layer: 5
m_Name: MainContent
m_TagString: Untagged
@@ -780,7 +672,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 400, y: 40}
m_SizeDelta: {x: 295, y: 66}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &6485915084394087119
MonoBehaviour:
@@ -808,3 +700,41 @@ MonoBehaviour:
m_ChildScaleWidth: 1
m_ChildScaleHeight: 1
m_ReverseArrangement: 0
--- !u!222 &5819741135621999575
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7973684205123875483}
m_CullTransparentMesh: 1
--- !u!114 &6073336955970910715
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7973684205123875483}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 73873399fec964578b62204f20c40517, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3cb6791423916496ea0a5b059419fdaa
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,740 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &700152255263326765
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5053903421260846465}
- component: {fileID: 4314770845850481090}
- component: {fileID: 4986645933044111193}
- component: {fileID: 1062363862839909147}
m_Layer: 5
m_Name: TreeViewIState3
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5053903421260846465
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 700152255263326765}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2024997316782034639}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 312.2704, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &4314770845850481090
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 700152255263326765}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3428dd2e9dd644e0b0cb408bd3202f21, type: 3}
m_Name:
m_EditorClassIdentifier:
m_text:
legacy: {fileID: 0}
tmp: {fileID: 1383932928540251694}
m_Button: {fileID: 1762532130762754577}
_expandToggle: {fileID: 5502308808383608272}
_expandText:
legacy: {fileID: 0}
tmp: {fileID: 0}
_space: {fileID: 5541755240357469011}
_expandBG: {fileID: 6073336955970910715}
ExpandBGActive: {fileID: 21300000, guid: 42074c4f5f76b4cbc9043df8f430af5f, type: 3}
ExpandBGInactive: {fileID: 21300000, guid: 42074c4f5f76b4cbc9043df8f430af5f, type: 3}
m_uItemData: 0
_treeLevel: 0
isLastItem: 0
OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &4986645933044111193
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 700152255263326765}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 0
m_VerticalFit: 1
--- !u!114 &1062363862839909147
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 700152255263326765}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 1
m_Spacing: 0
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &2040002976300010419
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3882154025378162395}
- component: {fileID: 2230410216357545400}
- component: {fileID: 1762532130762754577}
- component: {fileID: 4801006375863435037}
m_Layer: 5
m_Name: MainButton
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3882154025378162395
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2040002976300010419}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5827054231092576763}
m_Father: {fileID: 2024997316782034639}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2230410216357545400
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2040002976300010419}
m_CullTransparentMesh: 1
--- !u!114 &1762532130762754577
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2040002976300010419}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 0}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &4801006375863435037
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2040002976300010419}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
m_MinWidth: 200
m_MinHeight: -1
m_PreferredWidth: 225
m_PreferredHeight: -1
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 2
--- !u!1 &2916175606199835458
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5827054231092576763}
- component: {fileID: 5842649278580849339}
- component: {fileID: 1383932928540251694}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5827054231092576763
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2916175606199835458}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3882154025378162395}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0.00000023841858}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5842649278580849339
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2916175606199835458}
m_CullTransparentMesh: 1
--- !u!114 &1383932928540251694
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2916175606199835458}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Daily quest
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 24
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 15
m_fontSizeMax: 40
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 10}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &6587684749681441909
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5062486824527634889}
- component: {fileID: 7099288759002186546}
- component: {fileID: 520846459080750772}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5062486824527634889
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6587684749681441909}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7277676979067820762}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -0.00048828125, y: 0}
m_SizeDelta: {x: 48, y: 48}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7099288759002186546
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6587684749681441909}
m_CullTransparentMesh: 1
--- !u!114 &520846459080750772
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6587684749681441909}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 00976b2e066af4e1f85ff5f3c94b5d48, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &6592915584227539970
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2930138263853700511}
- component: {fileID: 5541755240357469011}
m_Layer: 5
m_Name: Space
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &2930138263853700511
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6592915584227539970}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2024997316782034639}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: -20}
m_SizeDelta: {x: 0, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &5541755240357469011
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6592915584227539970}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
m_MinWidth: 0
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredHeight: -1
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &6863650808120944178
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7277676979067820762}
- component: {fileID: 885853373149276158}
- component: {fileID: 1569122208421759741}
- component: {fileID: 5502308808383608272}
- component: {fileID: 8681673894369501558}
m_Layer: 5
m_Name: ExpandToggle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7277676979067820762
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6863650808120944178}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5062486824527634889}
m_Father: {fileID: 2024997316782034639}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &885853373149276158
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6863650808120944178}
m_CullTransparentMesh: 1
--- !u!114 &1569122208421759741
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6863650808120944178}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 00976b2e066af4e1f85ff5f3c94b5d48, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &5502308808383608272
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6863650808120944178}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1569122208421759741}
toggleTransition: 1
graphic: {fileID: 0}
m_Group: {fileID: 0}
onValueChanged:
m_PersistentCalls:
m_Calls: []
m_IsOn: 0
--- !u!114 &8681673894369501558
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6863650808120944178}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: 90
m_PreferredHeight: 90
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &7973684205123875483
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2024997316782034639}
- component: {fileID: 6485915084394087119}
- component: {fileID: 5819741135621999575}
- component: {fileID: 6073336955970910715}
m_Layer: 5
m_Name: MainContent
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2024997316782034639
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7973684205123875483}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2930138263853700511}
- {fileID: 7277676979067820762}
- {fileID: 3882154025378162395}
m_Father: {fileID: 5053903421260846465}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 290, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &6485915084394087119
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7973684205123875483}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 0
m_Spacing: 0
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 1
m_ChildControlWidth: 1
m_ChildControlHeight: 1
m_ChildScaleWidth: 1
m_ChildScaleHeight: 1
m_ReverseArrangement: 0
--- !u!222 &5819741135621999575
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7973684205123875483}
m_CullTransparentMesh: 1
--- !u!114 &6073336955970910715
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7973684205123875483}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 42074c4f5f76b4cbc9043df8f430af5f, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 7b4ec3e05f31a45138f72011c6bf7cf2
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+223
View File
@@ -3195,6 +3195,7 @@ RectTransform:
- {fileID: 6484535971067043072}
- {fileID: 4528532603973220147}
- {fileID: 4742272256638967314}
- {fileID: 7160948805882967074}
m_Father: {fileID: 3233441867675090637}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -6477,6 +6478,228 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1001 &1491425768019977722
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 3483809415181351540}
m_Modifications:
- target: {fileID: 261981060290751465, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 261981060290751465, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 261981060290751465, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 261981060290751465, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 261981060290751465, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2135374639804663431, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_Name
value: TaskTracePanel
objectReference: {fileID: 0}
- target: {fileID: 3329664456688940810, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3329664456688940810, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3329664456688940810, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3329664456688940810, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3329664456688940810, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5916681925339953764, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5916681925339953764, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5916681925339953764, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5916681925339953764, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5916681925339953764, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6132532718725710246, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6132532718725710246, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6132532718725710246, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6132532718725710246, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6132532718725710246, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8409588769955971680, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8409588769955971680, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8409588769955971680, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8409588769955971680, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8409588769955971680, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchorMax.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchorMax.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchorMin.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchorMin.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_SizeDelta.x
value: 400
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_SizeDelta.y
value: 300
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9079729967523171228, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9079729967523171228, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9079729967523171228, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9079729967523171228, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9079729967523171228, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
--- !u!224 &7160948805882967074 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 8634059274107523544, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
m_PrefabInstance: {fileID: 1491425768019977722}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &1664243948601541739
PrefabInstance:
m_ObjectHideFlags: 0
@@ -33,3 +33,5 @@ MonoBehaviour:
prefab: {fileID: 5910006447059157136, guid: 22d3972b131ebdb4288f9cbdf996d691, type: 3}
- id: Win_Enchase
prefab: {fileID: 5636724581774400035, guid: de6ac6f2630425044a55299c703670f1, type: 3}
- id: Win_QuestMinion
prefab: {fileID: 2135374639804663431, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

@@ -0,0 +1,117 @@
fileFormatVersion: 2
guid: 5346df76337624cc9ab94bb030214bae
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,35 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 757291f3b49ff4f309f9a726204f6260, type: 3}
m_Name: TaskTreeStateMap
m_EditorClassIdentifier:
resources:
- state: 0
Rto_ButtonSprite: {fileID: 21300000, guid: b545f49a479374ffaaec0c8f123b0c5f, type: 3}
BackgroundSprite: {fileID: 21300000, guid: 5346df76337624cc9ab94bb030214bae, type: 3}
TextColor: {r: 1, g: 1, b: 1, a: 1}
- state: 1
Rto_ButtonSprite: {fileID: 21300000, guid: e09a5d2cb3c3f4c858754a1e90a44abd, type: 3}
BackgroundSprite: {fileID: 21300000, guid: 9de07872267c5419b9fa9c849eb45858, type: 3}
TextColor: {r: 1, g: 1, b: 1, a: 1}
- state: 2
Rto_ButtonSprite: {fileID: 21300000, guid: 73873399fec964578b62204f20c40517, type: 3}
BackgroundSprite: {fileID: 21300000, guid: 5346df76337624cc9ab94bb030214bae, type: 3}
TextColor: {r: 1, g: 1, b: 1, a: 1}
- state: 3
Rto_ButtonSprite: {fileID: 21300000, guid: 42074c4f5f76b4cbc9043df8f430af5f, type: 3}
BackgroundSprite: {fileID: 21300000, guid: 9de07872267c5419b9fa9c849eb45858, type: 3}
TextColor: {r: 0.9528302, g: 0.8330688, b: 0.4809096, a: 1}
- state: 4
Rto_ButtonSprite: {fileID: 21300000, guid: 42074c4f5f76b4cbc9043df8f430af5f, type: 3}
BackgroundSprite: {fileID: 21300000, guid: 00976b2e066af4e1f85ff5f3c94b5d48, type: 3}
TextColor: {r: 1, g: 1, b: 1, a: 1}
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 27e9cc22629754e65aa6498753b8de6d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
@@ -2676,6 +2676,7 @@ namespace BrewMonster
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
public ushort[] name; // name, max 15 chars
public string Name => ByteToStringUtils.UshortArrayToUnicodeString(name);
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public ushort[] prop; // properties
@@ -5349,6 +5350,7 @@ namespace BrewMonster
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
public ushort[] name; // name, max 15 characters
public string Name => ByteToStringUtils.UshortArrayToCP936String(name);
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
public uint[] id_tasks; // task IDs
@@ -8,6 +8,7 @@ using System.Globalization;
using System.IO;
using UnityEngine;
using UnityEngine.AddressableAssets;
using CSNetwork.GPDataType;
namespace BrewMonster.Network
{
public partial class EC_Game
@@ -324,12 +325,6 @@ namespace BrewMonster.Network
//
////////////////////////////////////////////////////////////////////////////////
private struct OBJECT_COORD
{
public string strMap;
public Vector3 vPos;
}
private static readonly Dictionary<string, List<OBJECT_COORD>> m_CoordTab =
new Dictionary<string, List<OBJECT_COORD>>(StringComparer.OrdinalIgnoreCase);
@@ -414,7 +409,7 @@ namespace BrewMonster.Network
var coord = new OBJECT_COORD
{
strMap = map,
vPos = new Vector3(x, y, z),
vPos = new A3DVECTOR3(x, y, z),
};
if (!m_CoordTab.TryGetValue(key, out var list))
@@ -447,7 +442,7 @@ namespace BrewMonster.Network
return false;
}
pos = list[0].vPos;
pos = new Vector3(list[0].vPos.x, list[0].vPos.y, list[0].vPos.z);
map = list[0].strMap;
return true;
}
@@ -529,8 +524,23 @@ namespace BrewMonster.Network
}
return iIndex;
}
public static int GetObjectCoord(string strTargetID, ref List<OBJECT_COORD> TargetCoord)
{
int count = 0;
foreach(var coord in TargetCoord)
{
if(coord.strMap == strTargetID)
{
count++;
TargetCoord.Add(coord);
}
}
return count;
}
#endregion
}
}
@@ -135,7 +135,7 @@ public class CECNPCServer : CECNPC
m_TaskIcon = IconTaskType.QI_NONE;
uint taskFlag = 0;
BMLogger.Log($"[UpdateCurTaskIcon] NPC {m_NPCInfo.nid}, id_task_in_service={m_pDBEssence.Value.id_task_in_service}, id_task_out_service={m_pDBEssence.Value.id_task_out_service}");
//BMLogger.Log($"[UpdateCurTaskIcon] NPC {m_NPCInfo.nid}, id_task_in_service={m_pDBEssence.Value.id_task_in_service}, id_task_out_service={m_pDBEssence.Value.id_task_out_service}");
if (m_pDBEssence.Value.id_task_in_service != 0)
{
DATA_TYPE dt = DATA_TYPE.DT_INVALID;
@@ -244,7 +244,7 @@ public class CECNPCServer : CECNPC
if (idTask <= 0)
continue;
BMLogger.Log($"[UpdateCurTaskIcon] Check OUT task {idTask}, CanShow={pTask.CanShowTask(idTask)}, CanDeliver={pTask.CanDeliverTask(idTask)}");
//BMLogger.Log($"[UpdateCurTaskIcon] Check OUT task {idTask}, CanShow={pTask.CanShowTask(idTask)}, CanDeliver={pTask.CanDeliverTask(idTask)}");
if (!pTask.CanShowTask(idTask))
continue;
@@ -258,7 +258,7 @@ public class CECNPCServer : CECNPC
if (pTaskTemp.IsKeyTask())
{
m_TaskIcon = IconTaskType.QI_OUT_K;
BMLogger.Log($"[UpdateCurTaskIcon] Set icon QI_OUT_K for task {idTask}");
//BMLogger.Log($"[UpdateCurTaskIcon] Set icon QI_OUT_K for task {idTask}");
UpdateTaskIconUI();
return;
}
@@ -307,7 +307,7 @@ public class CECNPCServer : CECNPC
else if ((taskFlag & TASK_CANNOTGET) != 0)
m_TaskIcon = IconTaskType.QI_OUT_N;
BMLogger.Log($"[UpdateCurTaskIcon] Final icon {m_TaskIcon}, taskFlag={taskFlag}");
//BMLogger.Log($"[UpdateCurTaskIcon] Final icon {m_TaskIcon}, taskFlag={taskFlag}");
UpdateTaskIconUI();
}
@@ -878,6 +878,15 @@ namespace CSNetwork.GPDataType
public int matter_id;
public int who;
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct OBJECT_COORD
{
public string strMap;
public A3DVECTOR3 vPos;
//bool operator == (const ACString& rhsStr) const {return strMap == rhsStr;}
public bool Equals(string rhsStr) {return strMap == rhsStr;}
//override == method
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct A3DVECTOR3
@@ -1377,6 +1377,19 @@ namespace BrewMonster.Scripts.Task
Addressables.Release(handle);
}
}
public TASK_DICE_BY_WEIGHT_CONFIG GetWeightTasksEssence(uint idStorage, out bool result)
{
result = false;
if (!m_WeightEssenseMap.TryGetValue(idStorage, out uint essenceId))
return default;
DATA_TYPE dt = DATA_TYPE.DT_INVALID;
var temp = m_pEleDataMan.get_data_ptr((uint)essenceId, ID_SPACE.ID_SPACE_CONFIG, ref dt);
if (temp == null && dt != DATA_TYPE.DT_TASK_DICE_BY_WEIGHT_CONFIG)
return default;
result = true;
return (TASK_DICE_BY_WEIGHT_CONFIG)temp;
}
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
@@ -1686,23 +1686,23 @@ namespace BrewMonster.Scripts.Task
public void TakeAwayTaskItem(uint ulTemplId, uint ulNum) {}
public void TakeAwayGold(uint ulNum) {}
public void TakeAwayFactionConsumeContrib(int ulNum){}
public void OnGiveupTask(int iTaskID)
{
UnityEngine.Debug.Log($"[CECTaskInterface] OnGiveupTask: TaskID={iTaskID}");
ATaskTempl pTempl = GetTaskTemplMan().GetTaskTemplByID((uint)iTaskID);
if (pTempl != null &&
pTempl.m_FixedData.m_enumMethod == (uint)TaskCompletionMethod.enumTMSimpleClientTaskForceNavi)
public void OnGiveupTask(int iTaskID)
{
UnityEngine.Debug.Log($"[CECTaskInterface] OnGiveupTask: Task {iTaskID} is force navigate task, triggering EM_END");
// Trigger navigation end event // 触发导航结束事件
m_pHost.OnNaviageEvent(iTaskID, (int)CECNavigateCtrl.NavigateEvent.EM_END);
SetForceNavigateFinishFlag(false);
UnityEngine.Debug.Log($"[CECTaskInterface] OnGiveupTask: TaskID={iTaskID}");
ATaskTempl pTempl = GetTaskTemplMan().GetTaskTemplByID((uint)iTaskID);
if (pTempl != null &&
pTempl.m_FixedData.m_enumMethod == (uint)TaskCompletionMethod.enumTMSimpleClientTaskForceNavi)
{
UnityEngine.Debug.Log($"[CECTaskInterface] OnGiveupTask: Task {iTaskID} is force navigate task, triggering EM_END");
// Trigger navigation end event // 触发导航结束事件
m_pHost.OnNaviageEvent(iTaskID, (int)CECNavigateCtrl.NavigateEvent.EM_END);
SetForceNavigateFinishFlag(false);
}
else
{
UnityEngine.Debug.Log($"[CECTaskInterface] OnGiveupTask: Task {iTaskID} is not a force navigate task");
}
}
else
{
UnityEngine.Debug.Log($"[CECTaskInterface] OnGiveupTask: Task {iTaskID} is not a force navigate task");
}
}
// Handle task text click in UI - trigger navigation if it's a force navigate task // 处理任务UI文本点击 - 如果是强制导航任务则触发导航
// This is called when user clicks on task name/link in the task UI // 当用户在任务UI中点击任务名称/链接时调用
@@ -1868,6 +1868,32 @@ namespace BrewMonster.Scripts.Task
}
}
}
public int GetWorldContribution()
{
return m_pHost.GetWorldContribution();
}
public bool CanFinishTaskSpendingWorldContribution(int taskID)
{
var pTempl = GetTaskTemplMan().GetTaskTemplByID((uint)taskID);
return pTempl != null && pTempl.m_FixedData.m_iWorldContribution <= GetWorldContribution();
}
public void FinishTaskSpendingWorldContribution(int taskID, int choice = 2)
{
if (CanFinishTaskSpendingWorldContribution(taskID))
NotifyServer(new byte[] { (byte)taskID, (byte)choice }, 2);
}
public int GetWorldContributionSpend()
{
return m_pHost.GetWorldContributionSpend();
}
public bool PlayerCanSpendContributionAsWill()
{
return m_pHost.HaveHealthStones();
}
// void CECTaskInterface::UpdateTaskEmotionAction(unsigned int task_id)
// {
// if (m_emotionTask.find(task_id)!=m_emotionTask.end())
+15 -1
View File
@@ -550,12 +550,26 @@ namespace BrewMonster.Scripts.Task
// CECUIHelper.OnTaskProcessUpdated(pNotify.task);
}
// Handle task completion or give up notification
else if (pNotify.reason == TaskTemplConstants.TASK_SVR_NOTIFY_COMPLETE || pNotify.reason == TaskTemplConstants.TASK_SVR_NOTIFY_GIVE_UP)
else if (pNotify.reason == TaskTemplConstants.TASK_SVR_NOTIFY_COMPLETE )
{
// TODO: CECUIHelper.OnTaskCompleted not found; implement UI update if needed
// CECUIHelper.OnTaskCompleted(pNotify.task);
}
else if (pNotify.reason == TaskTemplConstants.TASK_SVR_NOTIFY_GIVE_UP)
{
ActiveTaskList pLst = TryGetActiveList(pTask);
if (pLst != null)
{
pLst.ClearTask(pTask, pEntry, false);
}
pLst.ClearTask(pTask, pEntry, false);
if (pTempl.m_FixedData.m_bDisplayInTitleTaskUI)
pTask.UpdateTaskUI(pTempl.m_FixedData.m_ID, TaskTemplConstants.TASK_SVR_NOTIFY_GIVE_UP);
//if ((pTempl.m_FixedData.m_enumMethod == (uint)TaskCompletionMethod.enumTMSimpleClientTask) && pTempl.m_FixedData.m_uiEmotion > 0)
//pTask.UpdateTaskUI(pTempl.m_FixedData.m_ID, TaskTemplConstants.TASK_SVR_NOTIFY_GIVE_UP);
pTask.OnGiveupTask((int)pTempl.m_FixedData.m_ID);
}
// Validate template was found
if (pTempl == null)
{
+11 -6
View File
@@ -1706,14 +1706,14 @@ namespace BrewMonster.Scripts.Task
/* ÈÎÎñ½áÊøºóµÄ½±Àø */
public uint m_ID => m_FixedData.m_ID;
uint m_ulAwardType_S => m_FixedData.m_ulAwardType_S;
uint m_ulAwardType_F => m_FixedData.m_ulAwardType_F;
public uint GetAwardType_S() => m_FixedData.m_ulAwardType_S;
public uint GetAwardType_F() => m_FixedData.m_ulAwardType_F;
// ʱ¼äÏÞÖÆ
uint m_ulTimeLimit => m_FixedData.m_ulTimeLimit;
/* ÆÕͨºÍ°´Ã¿¸ö·½Ê½ */
AWARD_DATA m_Award_S => m_FixedData.m_Award_S; /* ³É¹¦ */
AWARD_DATA m_Award_F => m_FixedData.m_Award_F; /* ʧ°Ü */
public AWARD_DATA m_Award_S => m_FixedData.m_Award_S; /* ³É¹¦ */
public AWARD_DATA m_Award_F => m_FixedData.m_Award_F; /* ʧ°Ü */
/* ʱ¼ä±ÈÀý·½Ê½ */
AWARD_RATIO_SCALE m_AwByRatio_S => m_FixedData.m_AwByRatio_S;
AWARD_RATIO_SCALE m_AwByRatio_F => m_FixedData.m_AwByRatio_F;
@@ -4561,7 +4561,7 @@ namespace BrewMonster.Scripts.Task
uint ulTaskTime,
uint ulCurTime)
{
var ulType = (pEntry.IsSuccess() ? m_ulAwardType_S : m_ulAwardType_F);
var ulType = (pEntry.IsSuccess() ? m_FixedData.m_ulAwardType_S : m_FixedData.m_ulAwardType_F);
switch (ulType)
{
case (uint)TaskAwardType.enumTATNormal:
@@ -4606,7 +4606,7 @@ namespace BrewMonster.Scripts.Task
ref AWARD_DATA pAward,
ActiveTaskEntry pEntry)
{
AWARD_ITEMS_SCALE p = (pEntry.IsSuccess() ? m_AwByItems_S : m_AwByItems_F);
AWARD_ITEMS_SCALE p = (pEntry.IsSuccess() ? m_AwByItems_S : m_AwByItems_F);
uint ulCount = (uint)pTask.GetTaskItemCount(p.m_ulItemId), i;
for (i = 0; i < p.m_ulScales; i++)
@@ -5440,5 +5440,10 @@ namespace BrewMonster.Scripts.Task
if(m_pNextSibling!= null) NextSiblingID = m_pNextSibling.m_ID;
if(m_pFirstChild!= null) FirstChildID = m_pFirstChild.m_ID;
}
public string GetName()
{
return ByteToStringUtils.UshortArrayToUnicodeString(m_FixedData.m_szName);
}
}
}
@@ -0,0 +1,269 @@
using UnityEngine;
using UnityEngine.EventSystems;
using System.Collections.Generic;
using TMPro;
using CSNetwork.Protocols;
using System;
using CSNetwork.GPDataType;
using BrewMonster.Network;
using BrewMonster.Scripts.Task;
using BrewMonster.Scripts.Task.UI;
using BrewMonster.Scripts.World;
namespace BrewMonster.UI
{
using CommandMap = Dictionary<string, LinkCommand>;
[Serializable]
public class StringRef
{
public string Value;
}
public class DlgNameLink : AUIDialog
{
public string m_TargetName;
public Vector3 m_TargetPos;
public List<Vector3> m_Targets;
public int m_TargetId;
public int m_TaskId;
private CommandMap m_Commands = new Dictionary<string, LinkCommand>();
public bool BindLinkCommand(TMP_Text pArea, string pName, LinkCommand pCmdType)
{
// pAres's name combined with input name to make the key
if(pArea == null || string.IsNullOrEmpty(pName))
return false;
string key="";
if(pArea)
key = pArea.name;
if(!string.IsNullOrEmpty(pName))
key += pName;
bool isDuplicated = false;
if(m_Commands.TryGetValue(key, out LinkCommand pTmp))
{
m_Commands.Remove(key);
isDuplicated = true;
}
if(pCmdType != null)
{
pTmp = pCmdType.Clone();
pTmp.m_pArea = pArea;
pTmp.AppendText();
m_Commands[key] = pTmp;
}
return isDuplicated;
}
public LinkCommand GetLinkCommand(TMP_Text pArea, string pName)
{
if(pArea != null && !string.IsNullOrEmpty(pName))
{
string key = pArea.name;
key += pName;
if(m_Commands.TryGetValue(key, out LinkCommand pTmp))
{
return m_Commands[key];
}
}
if(pArea != null)
{
string key = pArea.name;
if(m_Commands.TryGetValue(key, out LinkCommand pTmp))
{
return m_Commands[key];
}
}
if(pName != null)
{
string key = pName;
if(m_Commands.TryGetValue(key, out LinkCommand pTmp))
{
return m_Commands[key];
}
}
return null;
}
public void ClearCommands()
{
foreach(var cmd in m_Commands)
{
cmd.Value.m_pArea = null;
}
m_Commands.Clear();
}
public override void Release()
{
ClearCommands();
base.Release();
}
}
// command pattern for click a hyper link in textarea
public abstract class LinkCommand
{
public TMP_Text m_pArea =null;
public abstract bool Execute(TMP_Text pArea);
public TMP_Text GetTxtArea() {return m_pArea;}
public virtual void AppendText(){
m_pArea.text += GetLinkText();
}
public abstract LinkCommand Clone();
public abstract string GetLinkText();
public LinkCommand(TMP_Text pArea)
{
m_pArea = pArea;
}
public LinkCommand()
{
m_pArea = null;
}
}
// click this textarea will cause player move to the specific target
public class MoveToLinkCommand : LinkCommand
{
public string m_TargetName;
public A3DVECTOR3 m_TargetPos;
public List<OBJECT_COORD> m_Targets;
public int m_TargetId;
public int m_TaskId;
public MoveToLinkCommand(int idTarget, string targetName, int idTask = 0){
m_TargetId = idTarget;
m_TargetName = targetName;
m_TaskId = idTask;
m_TargetPos = new A3DVECTOR3(0, 0, 0);
bool bInTable = false;
m_TargetPos = EC_Game.GetGameRun().GetHostPlayer().GetObjectCoordinates(
idTarget, ref m_Targets, ref bInTable);
//todo: add map feature here.
if(!bInTable && /*MAJOR_MAP*/1 == CECWorld.Instance.GetInstanceID())
{
ATaskTemplMan pMan = EC_Game.GetTaskTemplateMan();
if(pMan.TryGetTaskNPCInfo((uint)idTarget, out NPC_INFO pInfo))
{
m_TargetPos.Set(pInfo.x, pInfo.z, pInfo.y);
}
}
}
public MoveToLinkCommand(int idTarget, A3DVECTOR3 targetPos, string targetName, int idTask = 0){
m_TargetId = idTarget;
m_TargetName = targetName;
m_TaskId = idTask;
m_TargetPos = targetPos;
OBJECT_COORD coor = new OBJECT_COORD();
coor.vPos = m_TargetPos;
m_Targets.Add(coor);
}
/// <summary>
/// Get the first position from the targets list
/// </summary>
/// <param name="targets"></param>
/// <param name="targetName"></param>
public MoveToLinkCommand(List<OBJECT_COORD> targets, string targetName){
m_TargetName = targetName;
m_Targets = targets;
m_TargetPos = new A3DVECTOR3(0, 0, 0);
m_TargetId = 0;
m_TaskId = 0;
if(targets.Count > 0)
{
m_TargetPos = m_Targets[0].vPos;
}
}
public MoveToLinkCommand(MoveToLinkCommand rhs){
m_TargetId = rhs.m_TargetId;
m_TargetName = rhs.m_TargetName;
m_TaskId = rhs.m_TaskId;
m_TargetPos = rhs.m_TargetPos;
m_Targets = rhs.m_Targets;
}
public override string GetLinkText()
{
if(m_TargetPos.IsZero())
{
return m_TargetName;
}
else
{
string szNameLink = string.Format("<color=#00FF00><u>{0}</u></color><color=#FFFFFF>", m_TargetName);
return szNameLink;
}
}
public override LinkCommand Clone() => new MoveToLinkCommand(this);
public override bool Execute(TMP_Text pLink){
if (pLink)
{
if (!m_TargetPos.IsZero())
{
// show the flag on worldmap
DlgTask.SetTracePosition(m_Targets, m_TargetName);
return true;
}
else
{
Debug.LogError("MoveToLinkCommand: Invalid target position");
//EC_Game.GetGameRun().AddFixedMessage(FIXMSG_ERR_FC_INVALID_OPERATION);
}
}
return false;
}
}
//////////////////////////////////////////////////////////////////////////
// TaskNameHoverCommand
//////////////////////////////////////////////////////////////////////////
// ȷĸ
public class TaskNameHoverCommand : LinkCommand
{
public StringRef m_Buffer;
public string m_TaskName;
public bool m_bError;
public int m_iTaskID;
public bool m_bCanContributionFinish;
public TaskNameHoverCommand(StringRef buffer, string strName, int task_id, bool bError, bool bCanContributionFinish)
{
m_Buffer = buffer;
m_TaskName = strName;
m_iTaskID = task_id;
m_bError = bError;
m_bCanContributionFinish = bCanContributionFinish;
}
public TaskNameHoverCommand(TaskNameHoverCommand rhs)
{
m_Buffer = rhs.m_Buffer;
m_TaskName = rhs.m_TaskName;
m_iTaskID = rhs.m_iTaskID;
m_bError = rhs.m_bError;
m_bCanContributionFinish = rhs.m_bCanContributionFinish;
}
public override string GetLinkText()
{
string szNameLink = string.Format("<color=#FF0000>{0}", m_TaskName);//red
if (m_bError)
szNameLink = string.Format("<color=#FF0000>{0}", m_TaskName);//red
else
szNameLink = string.Format("<color=#FFFF00>{0}", m_TaskName);//yellow
return szNameLink;
}
public override void AppendText()
{
m_Buffer.Value += GetLinkText();
}
public override LinkCommand Clone()
{
return new TaskNameHoverCommand(this);
}
public override bool Execute(TMP_Text pLink)
{
return true;
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: c1f5700d6e50348a188e5a289150751f
+347 -24
View File
@@ -36,7 +36,7 @@ namespace BrewMonster.Scripts.Task.UI
// Keep original macro as constant for array sizing
public const int CDLGTASK_AWARDITEM_MAX = 8;
public const int TickRate = 1000;
// ===== Nested structs (converted from C++), keep naming, public with explicit layout =====
// [中文] 任务目标位置
@@ -99,7 +99,7 @@ namespace BrewMonster.Scripts.Task.UI
[SerializeField] protected Button m_pBtn_NormalQuest; // PAUISTILLIMAGEBUTTON -> Button
[SerializeField] protected Button m_pBtn_SearchQuest; // PAUISTILLIMAGEBUTTON -> Button
[SerializeField] protected Button m_pBtn_HaveQuest; // PAUISTILLIMAGEBUTTON -> Button
[SerializeField] protected Button m_pBtn_bShowTrace; // PAUISTILLIMAGEBUTTON -> Button
[SerializeField] protected Toggle m_pTog_bShowTrace; // PAUISTILLIMAGEBUTTON -> Button
[SerializeField] protected Button m_pBtn_FinishTask; // PAUISTILLIMAGEBUTTON -> Button
[SerializeField] protected TMP_Text m_pTxt_BaseAward; // PAUILABEL -> TMP_Text
@@ -126,7 +126,7 @@ namespace BrewMonster.Scripts.Task.UI
// [中文] 目标坐标集合
// [English] Target coordinates collection
private static List<Vector3> m_TargetCoord = new List<Vector3>();
private static List<OBJECT_COORD> m_TargetCoord = new List<OBJECT_COORD>();
private static string m_strTraceName = string.Empty; // ACString -> string
@@ -163,10 +163,16 @@ namespace BrewMonster.Scripts.Task.UI
OnEventLButtonDown_Tv_Quest(evt.Data);
});
m_pBtn_HaveQuest.onClick.AddListener(OnCommand_havequest);
m_pBtn_SearchQuest.onClick.AddListener(OnCommand_searchquest);
m_pBtn_Abandon.onClick.AddListener(OnCommand_abandon);
m_pBtn_HaveQuest.onClick.AddListener(OnCommand_havequest);
m_pBtn_SearchQuest.onClick.AddListener(OnCommand_searchquest);
m_pBtn_Abandon.onClick.AddListener(OnCommand_abandon);
Btn_Focus.onClick.AddListener(() => OnCommand_focus());
if (m_pTog_bShowTrace)
{
m_pTog_bShowTrace.onValueChanged.AddListener((state) => OnCommand_showtrace(null,state));
m_pTog_bShowTrace.isOn = false;
}
// Convert exactly like C++ OnEventLButtonDown_Txt_QuestItem // 完全按照C++ OnEventLButtonDown_Txt_QuestItem转换
// C++ uses WM_LBUTTONDOWN event, we use EventTrigger PointerClick // C++使用WM_LBUTTONDOWN事件,我们使用EventTrigger PointerClick
if (m_pTxt_QuestItem != null)
@@ -329,10 +335,14 @@ namespace BrewMonster.Scripts.Task.UI
// C++: ChangeFocus(NULL); // C++: ChangeFocus(NULL);
// TODO: Implement ChangeFocus if needed // TODO: 如果需要,实现ChangeFocus
}
public static void SetTracePosition(List<OBJECT_COORD> targetPos, string targetName)
{
CECUIHelper.FollowCoord(targetPos, targetName);
}
private new void Update()
{
Tick();
{
Tick();
}
#endregion
@@ -347,7 +357,6 @@ namespace BrewMonster.Scripts.Task.UI
// PAUIOBJECT pObj = GetDlgItem("Img_New");
// if (pObj && IsShow()) pObj->Show(false);
// if(GetDlgItem("Lab_Trace")) GetDlgItem("Lab_Trace")->Show(false);
if(m_pBtn_bShowTrace) m_pBtn_bShowTrace.gameObject.SetActive(false);
m_pBtn_Abandon.gameObject.SetActive(false);
Btn_Focus.gameObject.SetActive(false);
Lab_QuestNO.gameObject.SetActive(false);
@@ -360,7 +369,6 @@ namespace BrewMonster.Scripts.Task.UI
{
m_iType = 0;
// TODO: if(GetDlgItem("Lab_Trace")) GetDlgItem("Lab_Trace")->Show(true);
if(m_pBtn_bShowTrace) m_pBtn_bShowTrace.gameObject.SetActive(true);
m_pBtn_Abandon.gameObject.SetActive(true);
Btn_Focus.gameObject.SetActive(true);
Lab_QuestNO.gameObject.SetActive(true);
@@ -369,8 +377,124 @@ namespace BrewMonster.Scripts.Task.UI
m_pBtn_HaveQuest.interactable = false;
UpdateTask();
}
public void OnCommand_showtrace(string szCommand) {}
public void OnCommand_focus(string szCommand) {}
public void OnCommand_showtrace(string szCommand,bool state) {
m_bShowTrace = state;
// hide the trace window
// Get AUIManager, fallback to GetGameUIMan() if m_pAUIManager is not set yet
// 获取AUIManager,如果m_pAUIManager尚未设置则回退到GetGameUIMan()
AUIManager auiManager = GetAUIManager();
if (auiManager == null) {
// Try to get it from GetGameUIMan() as fallback
// 尝试从GetGameUIMan()获取作为回退
CECGameUIMan gameUIMan = GetGameUIMan();
auiManager = gameUIMan;
}
AUIDialog pTrace = auiManager.GetDialog("Win_QuestMinion");
if (pTrace) {
Debug.Log($"[DlgTask] OnCommand_showtrace: Show trace window {m_bShowTrace}");
pTrace.Show(m_bShowTrace);
}
}
public void OnCommand_focus(string szCommand="") {
var pTree = m_pTv_Quest;
var pItem = pTree?.GetSelectedItem();
if (pItem == null)
{
BMLogger.LogWarning("Cannot focus task: No task is currently selected");
return;
}
var idTask = pTree?.GetItemData(pItem);
if (idTask == 0)
{
BMLogger.LogWarning("Cannot focus task: Selected item has no valid task ID");
return;
}
m_pTog_bShowTrace.onValueChanged.Invoke(true);
SwitchTaskTrace((int)idTask);
}
void SwitchTaskTrace(int idTask)
{
var pDlg =
m_pAUIManager?.GetDialog("Win_QuestMinion");
pDlg?.Show(true);
if (IsPQTaskOrSubTask(idTask))
return;
if(!IsTaskTraceable(idTask))
return;
var pTask = GetHostPlayer()?.GetTaskInterface();
bool bFinishedTask = pTask?.CanFinishTask((uint)idTask) ?? false;
// Toggle behavior: if task is already in a list, remove it; otherwise add it
bool isInCanFinish = m_vecTasksCanFinish.Contains(idTask);
bool isInUnFinish = m_vecTasksUnFinish.Contains(idTask);
if (isInCanFinish || isInUnFinish)
{
// Second click: remove from both lists (toggle off)
m_vecTasksCanFinish.Remove(idTask);
m_vecTasksUnFinish.Remove(idTask);
}
else
{
// First click: add to appropriate list (toggle on)
if(bFinishedTask)
{
m_vecTasksCanFinish.Add(idTask);
m_vecTasksUnFinish.Remove(idTask); // Remove from other list if present
}
else
{
m_vecTasksUnFinish.Add(idTask);
m_vecTasksCanFinish.Remove(idTask); // Remove from other list if present
}
}
}
bool IsTaskTraceable(int idTask)
{
var pMan = EC_Game.GetTaskTemplateMan();
var pTemp = pMan?.GetTaskTemplByID((uint)idTask);
// ׷
if (IsQuestionTask(pTemp)) {
return false;
}
Task_State_info tsi = default;
var pTask = GetHostPlayer()?.GetTaskInterface();
pTask?.GetTaskStateInfo((uint)idTask, ref tsi);
bool bTrace = tsi.m_ulTimeLimit > 0 ||
tsi.m_ulProtectTime > 0 ||
tsi.m_ulNPCToProtect > 0 ||
tsi.m_MonsterWanted[0].m_ulMonstersToKill > 0 ||
tsi.m_PlayerWanted[0].m_ulPlayersToKill > 0 ||
tsi.m_ItemsWanted[0].m_ulItemId > 0 ||
tsi.m_ulWaitTime > 0 ||
tsi.m_TaskCharArr._finish > 0 ||
tsi.m_ulReachLevel > 0 ||
tsi.m_ulReachRealm > 0 ||
tsi.m_ulReachReincarnation > 0;
// check the condition from template
if(!bTrace)
{
if (pTemp.m_FixedData.m_ulReachSiteCnt > 0 ||
(pTemp.m_FixedData.m_ulAwardNPC > 0 && (pTask?.CanFinishTask((uint)idTask) ?? false))){
bTrace = true;
}
}
return bTrace;
}
bool IsPQTaskOrSubTask(int idTask)
{
var pMan = EC_Game.GetTaskTemplateMan();
var pTemp = pMan?.GetTaskTemplByID((uint)idTask);
return (pTemp!=null && (pTemp.m_FixedData.m_bPQTask || pTemp.m_FixedData.m_bPQSubTask));
}
public void OnCommand_abandon()
{
// [中文] 放弃任务:发送通知到服务器 // [English] Abandon task: send notification to server
@@ -398,6 +522,14 @@ namespace BrewMonster.Scripts.Task.UI
return;
}
// Check if the task is actually active before allowing abandon
// This prevents trying to abandon a task that's already been abandoned
if (!pTask.HasTask(selectedTaskId))
{
BMLogger.LogWarning($"Cannot abandon task: Task {selectedTaskId} is not active");
return;
}
// Get the task template to find the top-level task
ATaskTemplMan pMan = EC_Game.GetTaskTemplateMan();
ATaskTempl pTempl = pMan?.GetTaskTemplByID(selectedTaskId);
@@ -411,8 +543,31 @@ namespace BrewMonster.Scripts.Task.UI
ATaskTempl pTopTask = pTempl.GetTopTask();
uint topTaskId = pTopTask != null ? pTopTask.GetID() : selectedTaskId;
// Verify the top-level task is also active
if (!pTask.HasTask(topTaskId))
{
BMLogger.LogWarning($"Cannot abandon task: Top-level task {topTaskId} is not active");
return;
}
// Remove task from trace lists immediately (optimistic update)
// This prevents the abandoned task from showing in the task trace UI
int taskIdInt = (int)topTaskId;
m_vecTasksCanFinish.Remove(taskIdInt);
m_vecTasksUnFinish.Remove(taskIdInt);
// Send notification to server to abandon the currently selected task
TaskClient._notify_svr(pTask, (byte)ClientNotificationConstants.TASK_CLT_NOTIFY_CHECK_GIVEUP, (ushort)topTaskId);
// Refresh UI immediately to reflect the change
// The server confirmation will trigger another refresh, but this gives immediate feedback
RefreshTaskTrace();
// Clear selection if the abandoned task was selected
if (m_idSelTask == (int)topTaskId)
{
m_idSelTask = 0;
}
}
public void OnCommand_CANCEL(string szCommand) {}
public void OnCommand_TreasureMap(string szCommand) {}
@@ -451,6 +606,7 @@ namespace BrewMonster.Scripts.Task.UI
// }
m_idSelTask = idTask;
Debug.Log($"[DlgTask] OnEventLButtonDown_Tv_Quest: {idTask}");
}
// void OnEventMouseMove_Txt_QuestItem(WPARAM wParam, LPARAM lParam, AUIObject *pObj);
// void OnEventLButtonDown_Txt_QuestItem(WPARAM wParam, LPARAM lParam, AUIObject *pObj);
@@ -539,7 +695,6 @@ namespace BrewMonster.Scripts.Task.UI
}
Color result;
EC_Utility.STRING_TO_A3DCOLOR(GetStringFromTable(idType - (int)ENUM_TASK_TYPE.enumTTDaily + 3121), out result);
Debug.Log("[DlgTask] GetTaskColor result : " + result);
return result;
// return UnityEngine.Color.white;
}
@@ -552,6 +707,8 @@ namespace BrewMonster.Scripts.Task.UI
//
private bool Tick()
{
Debug.Log("[DlgTask] Tick");
RefreshTaskTrace();
// Time-window task refresh: while in Search view, refresh the list when server time crosses a minute boundary.
// This is throttled to avoid rebuilding large task lists every frame.
if (m_iType == 1)
@@ -572,7 +729,6 @@ namespace BrewMonster.Scripts.Task.UI
// Rebuild available task list according to current time-based prerequisites.
SearchForTask(-1);
// Restore selection best-effort (TaskTreeView selection is driven by EventBus).
if (_pendingReselectTaskId != 0u)
{
@@ -652,8 +808,146 @@ namespace BrewMonster.Scripts.Task.UI
return true;
}
//
// void RefreshTaskTrace();
public void TickTaskTrace()
{
if (m_TaskTraceCounter.IncCounter(EC_Game.GetRealTickTime())) {
m_TaskTraceCounter.Reset();
RefreshTaskTrace();
}
}
public void RefreshTaskTrace()
{
Debug.Log("[DlgTask] RefreshTaskTrace");
// Get AUIManager, fallback to GetGameUIMan() if m_pAUIManager is not set yet
// 获取AUIManager,如果m_pAUIManager尚未设置则回退到GetGameUIMan()
AUIManager auiManager = GetAUIManager();
if (auiManager == null) {
CECGameUIMan gameUIMan = GetGameUIMan();
if (gameUIMan == null) {
return;
}
auiManager = gameUIMan;
}
DlgTaskTrace pDlgTaskTrace = auiManager.GetDialog("Win_QuestMinion") as DlgTaskTrace;
if (pDlgTaskTrace == null)
return;
if (m_pTog_bShowTrace && !m_bShowTrace)
return;
ShowType showType = pDlgTaskTrace.GetShowType();
// bool bShow = showType == ShowType.ST_TRACED || showType == ShowType.ST_TITLE;
bool bShow =true;//for test
if (bShow)
{
CECHostPlayer host = GetHostPlayer();
CECTaskInterface pTask = host.GetTaskInterface();
if( m_vecTasksCanFinish.Count > 0 )
{
for(int i = 0; i < m_vecTasksCanFinish.Count; i++ )
{
int idTask = m_vecTasksCanFinish[i];
bool bCanFinish = pTask.CanFinishTask((uint)idTask);
bool bHasTask = pTask.HasTask((uint)idTask);
if(!bHasTask || !bCanFinish)
{
// 任务未完成,状态变化要删除
m_vecTasksCanFinish.RemoveAt(i);
i--;
if (bHasTask && !bCanFinish) {
if (!m_vecTasksUnFinish.Contains(idTask))
m_vecTasksUnFinish.Add(idTask);
}
}
}
}
if( m_vecTasksUnFinish.Count > 0 )
{
for(int i = 0; i < m_vecTasksUnFinish.Count; i++ )
{
int idTask = m_vecTasksUnFinish[i];
bool bCanFinish = pTask.CanFinishTask((uint)idTask);
bool bHasTask = pTask.HasTask((uint)idTask);
if(!bHasTask || bCanFinish)
{
// ûˣ״̬仯ҪƳ
m_vecTasksUnFinish.RemoveAt(i);
i--;
if (bHasTask && bCanFinish) {
if (!m_vecTasksCanFinish.Contains(idTask))
m_vecTasksCanFinish.Add(idTask);
}
}
}
}
List<int> tasks = new List<int>();
tasks.Capacity = m_vecTasksCanFinish.Count + m_vecTasksUnFinish.Count;
tasks.AddRange(m_vecTasksCanFinish);
tasks.AddRange(m_vecTasksUnFinish);
List<ATaskTempl> titlle_list = new List<ATaskTempl>();
List<int> titletask_list = new List<int>();
//Dictionary<int, int> title_map = new Dictionary<int, int>();
if (pDlgTaskTrace.GetShowType() == ShowType.ST_TITLE)
{
ATaskTemplMan pMan = EC_Game.GetTaskTemplateMan();
//pMan.GetTitleTasks(pTask, titlle_list);
for (int i = 0; i < titlle_list.Count; i++) {
if (IsTaskTraceable(titlle_list[i].GetID()))
titletask_list.Add((int)titlle_list[i].GetID());
}
}
// Always refresh task trace, even when lists are empty, to clear/update the display
if (!(GetHostPlayer().IsDead() || GetHostPlayer().IsTrading() || 0 != GetHostPlayer().GetBoothState()))
{
pDlgTaskTrace.RefreshTaskTrace(tasks.ToArray(), tasks.Count, titletask_list.ToArray(), titletask_list.Count, true);
}
} else if (showType == ShowType.ST_CONTRIBUTION)
{
pDlgTaskTrace.UpdateContributionTask();
}
}
public bool IsTaskTraceable(uint idTask)
{
ATaskTemplMan pMan = EC_Game.GetTaskTemplateMan();
ATaskTempl pTemp = pMan.GetTaskTemplByID(idTask);
// ׷
if (IsQuestionTask(pTemp)) {
return false;
}
Task_State_info tsi = new Task_State_info();
CECTaskInterface pTask = GetHostPlayer().GetTaskInterface();
pTask.GetTaskStateInfo(idTask, ref tsi);
bool bTrace = tsi.m_ulTimeLimit > 0 ||
tsi.m_ulProtectTime > 0 ||
tsi.m_ulNPCToProtect > 0 ||
tsi.m_MonsterWanted[0].m_ulMonstersToKill > 0 ||
tsi.m_PlayerWanted[0].m_ulPlayersToKill > 0 ||
tsi.m_ItemsWanted[0].m_ulItemId > 0 ||
tsi.m_ulWaitTime > 0 ||
tsi.m_TaskCharArr._finish > 0 ||
tsi.m_ulReachLevel > 0 ||
tsi.m_ulReachRealm > 0 ||
tsi.m_ulReachReincarnation > 0;
// check the condition from template
if(!bTrace)
{
if (pTemp.m_FixedData.m_ulReachSiteCnt > 0 ||
(pTemp.m_FixedData.m_ulAwardNPC > 0 && pTask.CanFinishTask((uint)idTask))){
bTrace = true;
}
}
return bTrace;
}
public bool IsQuestionTask(ATaskTempl pTemp){
return pTemp.m_FixedData.m_ulType == (uint)ENUM_TASK_TYPE.enumTTQuestion;
}
public bool UpdateTask(int idTask = -1)
{
// Only rebuild the list if viewing "Have Quest" (m_iType == 0)
@@ -975,7 +1269,36 @@ namespace BrewMonster.Scripts.Task.UI
// void OnTaskPush(); // µĿɽ
// void OnTaskProcessUpdated(int idTask); // ѽҪǰʾ
// void OnTaskItemGained(int idItem);
public static MINE_ESSENCE SearchTaskMine(int idTask, out bool found)
{
if(idTask <= 0)
{
found = false;
return default;
}
if (m_TaskMines.Count == 0)
{
var pDataMan = ElementDataManProvider.GetElementDataMan();
foreach (var kv in pDataMan.essence_id_data_type_map)
{
if (kv.Value == DATA_TYPE.DT_MINE_ESSENCE && kv.Key != 0)
{
DATA_TYPE dt = DATA_TYPE.DT_INVALID;
var pMine = (MINE_ESSENCE)pDataMan.get_data_ptr(kv.Key, ID_SPACE.ID_SPACE_ESSENCE, ref dt);
m_TaskMines[(int)pMine.task_in] = pMine;
}
}
// avoid duplicated init
m_TaskMines[0] = null;
}
var itr = m_TaskMines.TryGetValue(idTask, out var value);
found =itr;
return itr ? (MINE_ESSENCE)value : default;
}
#endregion
#region PRIVATE METHODS
@@ -1047,6 +1370,7 @@ namespace BrewMonster.Scripts.Task.UI
// virtual bool OnInitDialog();
void OnShowDialog()
{
OnCommand_showtrace(null,m_bShowTrace);
if (m_idSelTask != 0)
UpdateTask();
}
@@ -1117,7 +1441,6 @@ namespace BrewMonster.Scripts.Task.UI
ATaskTempl childTempl = pMan.GetTaskTemplByID(childId);
Color disPlayColor=Color.white;
string text = childTempl != null ? GetTaskNameWithColor(childTempl,out disPlayColor) : $"Task {childId}";
Debug.Log("[DlgTask] InsertActiveTaskChildren text: " + text);
var pItem = pTreeTask.InsertItem(text, pRoot, null);
pItem.SetItemTextColor(disPlayColor);
if (pItem != null)
@@ -1337,7 +1660,7 @@ namespace BrewMonster.Scripts.Task.UI
strText += sb.ToString();
}
private static string FormatTime(int nSec, string desc, int timeLimit)
public static string FormatTime(int nSec, string desc, int timeLimit)
{
var ts = System.TimeSpan.FromSeconds(System.Math.Max(0, nSec));
string label = string.IsNullOrEmpty(desc) ? string.Empty : desc;
@@ -1498,7 +1821,7 @@ namespace BrewMonster.Scripts.Task.UI
{
// Resolve monster name
// 解析怪物名称
string strName = "^00FF00????^FFFFFF";
string strName = "<color=#00FF00>????<color=#FFFFFF>";
var edm = BrewMonster.ElementDataManProvider.GetElementDataMan();
if (edm != null && edm.essence_id_data_type_map.TryGetValue(id, out var dtype)
&& dtype == DATA_TYPE.DT_MONSTER_ESSENCE
@@ -1557,7 +1880,7 @@ namespace BrewMonster.Scripts.Task.UI
if (tsi.m_ulReachReincarnation != 0)
{
int iLevel = GetReincarnationCount(pHost);
string strColor = (iLevel < (int)tsi.m_ulReachReincarnation) ? "^ff0000" : "^00ff00";
string strColor = (iLevel < (int)tsi.m_ulReachReincarnation) ? "<color=#ff0000>" : "<color=#00ff00>";
if (iLevel < (int)tsi.m_ulReachReincarnation)
{
strHint += Format(GetStringFromTable(11144), iLevel);
@@ -1571,7 +1894,7 @@ namespace BrewMonster.Scripts.Task.UI
if (tsi.m_ulReachLevel != 0 && pHost != null)
{
int iLevel = pHost.GetBasicProps().iLevel;
string strColor = (iLevel < (int)tsi.m_ulReachLevel) ? "^ff0000" : "^00ff00";
string strColor = (iLevel < (int)tsi.m_ulReachLevel) ? "<color=#ff0000>" : "<color=#00ff00>";
if (iLevel < (int)tsi.m_ulReachLevel)
{
strHint += Format(GetStringFromTable(11143), iLevel);
@@ -1585,7 +1908,7 @@ namespace BrewMonster.Scripts.Task.UI
if (tsi.m_ulReachRealm != 0 && pHost != null)
{
int iLevel = GetRealmLevel(pHost);
string strColor = (iLevel < (int)tsi.m_ulReachRealm) ? "^ff0000" : "^00ff00";
string strColor = (iLevel < (int)tsi.m_ulReachRealm) ? "<color=#ff0000>" : "<color=#00ff00>";
if (iLevel < (int)tsi.m_ulReachRealm)
{
strHint += Format(GetStringFromTable(11145), iLevel);
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: bac01b5537b4341a7885fe2392d32eaa
@@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public enum TaskTreeState
{
Rto_Button1Active,
Rto_Button1Inactive,
Rto_Button2Active,
Rto_Button2Inactive,
Rto_Button3Active,
Rto_Button3Inactive
}
[CreateAssetMenu(fileName = "TaskTreeStateUIResource", menuName = "Task/TaskTreeStateUIResource")]
public class TaskTreeStateMap: ScriptableObject
{
public List<TaskTreeStateUIResource> resources;
public TaskTreeStateUIResource GetTaskTreeStateUIResource(int state)
{
return resources.Find(resource => (int)resource.state == state);
}
}
[Serializable]
public class TaskTreeStateUIResource
{
public TaskTreeState state;
public Sprite Rto_ButtonSprite;
public Sprite BackgroundSprite;
public Color TextColor;
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 757291f3b49ff4f309f9a726204f6260
@@ -6,11 +6,14 @@ namespace BrewMonster.Scripts.Task.UI
{
public class TaskTreeView : MonoBehaviour, IRefreshLayout
{
[SerializeField] private TaskTreeViewItem m_pTreeViewItemPrefab;
[SerializeField] private TaskTreeViewItem m_pTreeItemPrefab_Deep1;
[SerializeField] private TaskTreeViewItem m_pTreeItemPrefab_Deep2;
[SerializeField] private TaskTreeViewItem m_pTreeItemPrefab_Deep3;
[Header("DEBUG")]
[SerializeField] private TaskTreeViewItem _currentSelectedItem = null;
[SerializeField] private TaskTreeViewItem[] m_aTreeViewItems;
private void Start()
{
@@ -27,6 +30,8 @@ namespace BrewMonster.Scripts.Task.UI
public uint GetItemData(TaskTreeViewItem item)
{
if (item == null)
return 0;
return item.GetItemData();
}
@@ -51,8 +56,22 @@ namespace BrewMonster.Scripts.Task.UI
public TaskTreeViewItem InsertItem(string text, TaskTreeViewItem pParent, TaskTreeViewItem pAfter)
{
//caculate treelevel first
int treeLevel = pParent != null ? pParent.GetTreeLevel() + 1 : 0;
// Create a new item GameObject and component
TaskTreeViewItem pItem = Instantiate(m_pTreeViewItemPrefab);
TaskTreeViewItem pItem = null;
switch (treeLevel)
{
case 0:
pItem = Instantiate(m_pTreeItemPrefab_Deep1);
break;
case 1:
pItem = Instantiate(m_pTreeItemPrefab_Deep2);
break;
default:
pItem = Instantiate(m_pTreeItemPrefab_Deep3);
break;
}
if(pParent != null)
{
pParent.SetLastItem(false);
@@ -81,7 +100,7 @@ namespace BrewMonster.Scripts.Task.UI
// var label = go.GetComponentInChildren<TMPro.TMP_Text>(true);
// if (label != null) label.text = text ?? string.Empty;
pItem.SetItemText(text);
pItem.SetTreeLevel(pParent != null ? pParent.GetTreeLevel() + 1 : 0);
pItem.SetTreeLevel(treeLevel);
// Refresh local cache of items
m_aTreeViewItems = GetComponentsInChildren<TaskTreeViewItem>(true);
@@ -146,6 +165,7 @@ namespace BrewMonster.Scripts.Task.UI
void SetSelectedItem(uint idItem)
{
_currentSelectedItem = GetItemByData(idItem);
Debug.Log($"[TaskTreeView] SetSelectedItem: {idItem}");
}
public void RefreshLayout()
@@ -14,7 +14,9 @@ namespace BrewMonster.Scripts.Task.UI
[SerializeField] private Toggle _expandToggle;
[SerializeField] private TextOutlet _expandText;
[SerializeField] private LayoutElement _space;
[SerializeField] private Image _expandBG;
[SerializeField] private Sprite ExpandBGActive;
[SerializeField] private Sprite ExpandBGInactive;
[Header("DEBUG")]
[SerializeField] private uint m_uItemData;
[SerializeField] private int _treeLevel;
@@ -109,7 +111,7 @@ namespace BrewMonster.Scripts.Task.UI
if(children[i].GetTreeLevel() == _treeLevel + 1)
children[i].gameObject.SetActive(expand);
}
_expandBG.sprite = expand ? ExpandBGActive : ExpandBGInactive;
//_expandButton.gameObject.SetActive(!expand);
//_collapseButton.gameObject.SetActive(expand);
@@ -148,6 +150,7 @@ namespace BrewMonster.Scripts.Task.UI
{
OnClick.Invoke(m_uItemData);
EventBus.Publish(new TaskItemClickEvent() { Data = m_uItemData });
Debug.Log($"[TaskTreeViewItem] OnBtnClick: {m_uItemData}");
}
void OnExpandBtnClicked()
+2 -3
View File
@@ -42,7 +42,7 @@ namespace BrewMonster.UI
ImportStringTable("Assets/Addressable/ingame.txt");
ImportAuiDialogStringTable("Assets/Addressable/msgbox.txt");
}
public string Translate(ushort[] str)
{
if (str == null || str.Length == 0)
@@ -318,7 +318,7 @@ namespace BrewMonster.UI
}
else
{
var prefab = m_dialogResouce.GetPrefabDialog(pszName);
var prefab = m_dialogResouce.GetPrefabDialog(pszName);
if(prefab != null)
{
var instance = GameObject.Instantiate(prefab, m_canvas.transform);
@@ -336,7 +336,6 @@ namespace BrewMonster.UI
}
}
return null;
}
}
@@ -13,11 +13,12 @@ namespace BrewMonster.UI
protected uint m_dwData;
protected object m_pvData;
protected AUIManager m_pAUIManager = null;
string m_szName;
protected string m_szName;
public virtual void Show(bool value)
{
gameObject.SetActive(value);
m_bShow = value;
OnShowDialogue();
}
public string GetName()
@@ -86,6 +87,182 @@ namespace BrewMonster.UI
return str;
}
/// <summary>
/// Format a string table entry that may still use printf-style placeholders (e.g. "%d", "%s").
/// This converts printf-style placeholders into C# string.Format placeholders ("{0}", "{1}", ...).
/// </summary>
protected string FormatFromTable(int idString, params object[] args)
{
return FormatPrintf(GetStringFromTable(idString), args);
}
/// <summary>
/// Convert/format printf-style strings (e.g. "ID:%d Name:%s") with C# args.
/// Supports common specifiers and keeps "%%" as a literal percent.
/// </summary>
protected static string FormatPrintf(string formatStr, params object[] args)
{
if (string.IsNullOrEmpty(formatStr))
return formatStr;
var sb = new System.Text.StringBuilder();
int paramIndex = 0;
for (int i = 0; i < formatStr.Length; i++)
{
if (formatStr[i] == '%' && i + 1 < formatStr.Length)
{
// "%%" -> literal '%'
if (formatStr[i + 1] == '%')
{
sb.Append('%');
i++;
continue;
}
int startPos = i;
int j = i + 1;
// Parse flags (skip; best-effort)
bool hasMinus = false;
bool hasZero = false;
bool hasPlus = false;
while (j < formatStr.Length)
{
char c = formatStr[j];
if (c == '-')
{
hasMinus = true;
j++;
}
else if (c == '0')
{
hasZero = true;
j++;
}
else if (c == '+')
{
hasPlus = true;
j++;
}
else
{
break;
}
}
// Parse width
int width = 0;
int widthStart = j;
while (j < formatStr.Length && char.IsDigit(formatStr[j]))
j++;
if (j > widthStart)
int.TryParse(formatStr.Substring(widthStart, j - widthStart), out width);
// Parse precision (e.g. ".2")
int precision = -1;
if (j < formatStr.Length && formatStr[j] == '.')
{
j++;
int precStart = j;
while (j < formatStr.Length && char.IsDigit(formatStr[j]))
j++;
if (j > precStart)
int.TryParse(formatStr.Substring(precStart, j - precStart), out precision);
}
// Final type char
if (j >= formatStr.Length)
{
sb.Append('%');
continue;
}
char typeChar = formatStr[j];
bool recognized =
typeChar == 'd' || typeChar == 'i' || typeChar == 'u' ||
typeChar == 's' || typeChar == 'c' ||
typeChar == 'f' || typeChar == 'F' ||
typeChar == 'e' || typeChar == 'E' ||
typeChar == 'g' || typeChar == 'G';
if (!recognized)
{
// Not a recognized printf placeholder: keep original char(s)
sb.Append(formatStr[startPos]);
continue;
}
// Build C# placeholder, preserving common width/precision behavior (best-effort).
string csharpFormatSpec = string.Empty;
// Alignment for width: left/right
if (width > 0 && (typeChar == 'd' || typeChar == 'i' || typeChar == 'u' || typeChar == 's' || typeChar == 'c'))
{
// C# alignment: {0,10} right-aligned; {0,-10} left-aligned
int align = hasMinus ? -width : width;
csharpFormatSpec = $",{align}";
}
// Precision for float: %.2f -> {0:F2}
if (precision >= 0 && (typeChar == 'f' || typeChar == 'F' || typeChar == 'e' || typeChar == 'E' || typeChar == 'g' || typeChar == 'G'))
{
string floatFmt =
(typeChar == 'e' || typeChar == 'E') ? $"E{precision}" :
(typeChar == 'g' || typeChar == 'G') ? $"G{precision}" :
$"F{precision}";
if (csharpFormatSpec.StartsWith(","))
csharpFormatSpec += $":{floatFmt}";
else
csharpFormatSpec = $":{floatFmt}";
}
// %+d -> show sign (best-effort)
if (hasPlus && (typeChar == 'd' || typeChar == 'i') && string.IsNullOrEmpty(csharpFormatSpec))
{
csharpFormatSpec = ":+0;-0";
}
// %0Nd -> zero-padded integers (best-effort)
if (hasZero && width > 0 && (typeChar == 'd' || typeChar == 'i' || typeChar == 'u'))
{
if (!csharpFormatSpec.StartsWith(","))
csharpFormatSpec = $":D{width}";
}
if (!string.IsNullOrEmpty(csharpFormatSpec))
{
if (csharpFormatSpec.StartsWith(",") || csharpFormatSpec.StartsWith(":"))
sb.Append($"{{{paramIndex}{csharpFormatSpec}}}");
else
sb.Append($"{{{paramIndex}:{csharpFormatSpec}}}");
}
else
{
sb.Append($"{{{paramIndex}}}");
}
paramIndex++;
i = j; // skip the full specifier
}
else
{
sb.Append(formatStr[i]);
}
}
try
{
return string.Format(sb.ToString(), args);
}
catch (System.FormatException)
{
Debug.LogWarning($"[AUIDialog] FormatPrintf failed for string: {formatStr}, expected {paramIndex} args, got {args?.Length ?? 0}");
return formatStr;
}
}
public AUIManager GetAUIManager()
{
return m_pAUIManager;
@@ -129,5 +306,14 @@ namespace BrewMonster.UI
{
return false;
}
public virtual void Release()
{
m_StringTable.Clear();
m_strDataName = "";
m_strDataPtrName = "";
m_dwData = 0;
m_pvData = null;
m_szName = "";
}
}
}
+81 -2
View File
@@ -1,9 +1,10 @@
using System.Collections.Generic;
using BrewMonster.Network;
using BrewMonster.Managers;
using BrewMonster.Scripts.Task;
using BrewMonster.Scripts;
using CSNetwork.GPDataType;
using CSNetwork;
namespace BrewMonster.Scripts.UI
{
public class CECUIHelper
@@ -89,7 +90,7 @@ namespace BrewMonster.Scripts.UI
// }
// return ret;
}
// Follow coord like C++ CECUIHelper::FollowCoord(enumEICoord, taskId)
// 像C++的CECUIHelper::FollowCoord(enumEICoord, taskId)一样跟随坐标
public static bool FollowCoord(int id, int taskId)
@@ -241,5 +242,83 @@ namespace BrewMonster.Scripts.UI
UnityEngine.Debug.Log($"[CECUIHelper] FollowCoord: Started auto-move to ({vPos.x},{vPos.y},{vPos.z}) for id={id}, taskId={taskId}");
return true;
}
// Follow coord using target coordinate list and trace name
// 使用目标坐标列表和追踪名称跟随坐标
public static bool FollowCoord(List<OBJECT_COORD> m_TargetCoord, string m_strTraceName)
{
// Validate inputs
// 验证输入
if (m_TargetCoord == null || m_TargetCoord.Count == 0)
{
UnityEngine.Debug.LogWarning($"[CECUIHelper] FollowCoord: m_TargetCoord is null or empty, traceName={m_strTraceName} (will not move)");
return false;
}
// Use the first coordinate from the list
// 使用列表中的第一个坐标
OBJECT_COORD targetCoord = m_TargetCoord[0];
A3DVECTOR3 vPos = targetCoord.vPos;
// Log map information if available (for debugging)
// 如果可用,记录地图信息(用于调试)
if (!string.IsNullOrEmpty(targetCoord.strMap))
{
UnityEngine.Debug.Log($"[CECUIHelper] FollowCoord: Target map='{targetCoord.strMap}', traceName={m_strTraceName}");
}
// Start auto-move work to destination (this is what actually moves the player in this project)
// 启动自动移动工作(这才是本项目中真正驱动角色移动的系统)
CECHostPlayer host = EC_Game.GetGameRun()?.GetHostPlayer();
if (host == null)
{
UnityEngine.Debug.LogError($"[CECUIHelper] FollowCoord: Host player is null, traceName={m_strTraceName}");
return false;
}
CECHPWorkMan wm = host.GetWorkMan();
if (wm == null)
{
UnityEngine.Debug.LogError($"[CECUIHelper] FollowCoord: WorkMan is null, traceName={m_strTraceName}");
return false;
}
CECHPWorkMove work = wm.CreateWork(CECHPWork.Host_work_ID.WORK_MOVETOPOS) as CECHPWorkMove;
if (work == null)
{
UnityEngine.Debug.LogError($"[CECUIHelper] FollowCoord: Failed to create WORK_MOVETOPOS, traceName={m_strTraceName}");
return false;
}
// Prefer AutoPF intelligent route (original PW behavior) instead of naive straight-line.
// 优先使用 AutoPF 智能寻路(原版 PW 行为),而不是简单直线移动。
work.SetDestination(CECHPWorkMove.DestTypes.DEST_AUTOPF, vPos);
// If trace name is provided and there are multiple coordinates, we might want to trace through them
// 如果提供了追踪名称且有多个坐标,我们可能想要追踪它们
// Note: SetTaskNPCInfo might not be applicable here since we don't have taskId/id
// 注意:SetTaskNPCInfo 可能不适用于此,因为我们没有 taskId/id
wm.StartWork_p2(work);
UnityEngine.Debug.Log($"[CECUIHelper] FollowCoord: Started auto-move to ({vPos.x},{vPos.y},{vPos.z}) map={targetCoord.strMap}, traceName={m_strTraceName}, coordCount={m_TargetCoord.Count}");
return true;
}
public static void AutoMoveStartComplex(A3DVECTOR3 dst, int targetId = 0, int taskId = 0)
{
UnityEngine.Debug.Log($"[CECUIHelper] AutoMoveStartComplex: dst={dst}, targetId={targetId}, taskId={taskId}");
// TODO: Implement this method properly
// if( CECAutoPolicy.Instance.IsAutoPolicyEnabled() )
// return;
ECMSG msg = new ECMSG();
msg.iManager = 0;
msg.iSubID = 0;
msg.dwParam1 = (uint)dst.x;
msg.dwParam2 = (uint)dst.y;
msg.dwParam3 = (uint)dst.z;
msg.dwParam4 = new MsgDataAutoMove(0, targetId, taskId);
EC_ManMessage.PostMessage(0, 0, 0, msg);
}
}
}
@@ -89,14 +89,14 @@ namespace BrewMonster.UI
public bool UpdateTask(uint idTask, int reason)
{
// TODO:
// CDlgTaskTrace* pDlg = dynamic_cast<CDlgTaskTrace*>(GetDialog("Win_QuestMinion"));
// if (pDlg) {
// pDlg->SetBtnUnTraceY(-1, 0);
// pDlg->UpdateContributionTask();
// if (reason == TASK_SVR_NOTIFY_NEW)
// pDlg->OnTaskNew(idTask);
// }
Debug.Log($"[EC_GameUIMan] UpdateTask: idTask={idTask}, reason={reason}");
DlgTaskTrace pDlg = GetDialog("Win_QuestMinion").GetComponent<DlgTaskTrace>();
if (pDlg) {
//pDlg->SetBtnUnTraceY(-1, 0);
pDlg.UpdateContributionTask();
if (reason == TaskTemplConstants.TASK_SVR_NOTIFY_NEW)
pDlg.OnTaskNew(idTask);
}
// TODO
// ´
@@ -153,6 +153,16 @@ namespace BrewMonster.UI
{
pImgPic.SetImage(m_IconMap[(byte)iCONS_SKILL].Item2.FirstOrDefault(s => s.name == nameImage));
}
public string GetRealmName(int realmLevel)
{
string strRealm = string.Empty;
if (realmLevel > 0){
int layer = CECHostPlayer.GetRealmLayer(realmLevel);
int subLevel = CECHostPlayer.GetRealmSubLevel(realmLevel);
strRealm = string.Format(GetStringFromTable(11100), GetStringFromTable(11100+layer), GetStringFromTable(11120+subLevel));
}
return strRealm;
}
}
public enum EC_GAMEUI_ICONS : byte
@@ -0,0 +1,21 @@
using UnityEngine;
using UnityEngine.UI;
public class TwoStateToggle : MonoBehaviour
{
[SerializeField] Toggle toggle;
[SerializeField] Transform HideStateObject;
[SerializeField] Transform ShowStateObject;
protected void Awake()
{
toggle.onValueChanged.AddListener(SetState);
}
protected void OnDestroy()
{
toggle.onValueChanged.RemoveAllListeners();
}
public void SetState(bool state)
{
HideStateObject.gameObject.SetActive(!state);
ShowStateObject.gameObject.SetActive(state);
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 35157c775228541e3ba4a1cf99c8cde0
+96 -2
View File
@@ -3,7 +3,6 @@ using BrewMonster.Assets.PerfectWorld.Scripts.Players;
using BrewMonster.Managers;
using BrewMonster.Network;
using BrewMonster.PerfectWorld.Scripts.Vfx;
using BrewMonster.PerfectWorld.Scripts.Vfx;
using BrewMonster.Scripts;
using BrewMonster.Scripts.Managers;
using BrewMonster.Scripts.Skills;
@@ -28,7 +27,7 @@ using static BrewMonster.Scripts.Managers.EC_Inventory;
using cmd_select_target = CSNetwork.GPDataType.cmd_select_target;
using Host_work_ID = BrewMonster.Scripts.CECHPWork.Host_work_ID;
using Trace_reason = BrewMonster.CECHPWorkTrace.Trace_reason;
using ObjectCoords = System.Collections.Generic.List<CSNetwork.GPDataType.OBJECT_COORD>;
namespace BrewMonster
{
public partial class CECHostPlayer : CECPlayer
@@ -87,6 +86,8 @@ namespace BrewMonster
List<ushort> m_aWayPoints = new List<ushort>(); // Active way points
bool m_bIsInKingService = false; // ÊÇ·ñÕýÔÚ½øÐйúÍõ·þÎñ²Ù×÷
CECActionSwitcherBase m_pActionSwitcher;
private int m_iWorldContribution;
private int m_iWorldContributionSpend;
private bool m_bSpellDSkill;
private CECSkill m_pCurSkill;
private CECSkill m_pTargetItemSkill; // Target item skill
@@ -220,6 +221,8 @@ namespace BrewMonster
}
// Get navigate player // 获取导航玩家
public int GetWorldContribution() { return m_iWorldContribution; }
public int GetWorldContributionSpend() { return m_iWorldContributionSpend; }
private CECHostNavigatePlayer m_pNavigatePlayer = null;
public CECHostNavigatePlayer GetNavigatePlayer()
{
@@ -7059,5 +7062,96 @@ namespace BrewMonster
{
return m_pPetCorral;
}
// Get key object(NPC..) coordinates
public A3DVECTOR3 GetObjectCoordinates(int idTarget,ref ObjectCoords TargetCoord, ref bool bInTable)
{
if(TargetCoord == null)
{
TargetCoord = new ObjectCoords();
}
TargetCoord.Clear();
A3DVECTOR3 vDestPos = new A3DVECTOR3(0, 0, 0);
bInTable = false;
// Get object coordinates from CECGame::m_CoordTab
string szText = idTarget.ToString();
List<OBJECT_COORD> tempCoord = new List<OBJECT_COORD>();
int iCount = EC_Game.GetObjectCoord(szText, ref tempCoord);
if(iCount == 0)
{
return vDestPos;
}
float fMinDist = 99999999.0f;
// Get Current map name, such as 'a32' etc.
int idInstance = CECGameRun.Instance.GetWorld().GetInstanceID();
CECInstance pInstance = CECGameRun.Instance.GetInstance(idInstance);
string strCurMap = pInstance.GetPath();
// ȼͬһͼǷҪҵƷ
bool bHasObjectInCurrentInstance = tempCoord.Any(coord => coord.strMap == strCurMap);
for(int i=0;i<iCount;i++)
{
OBJECT_COORD objCoord = tempCoord[i];
if(strCurMap == objCoord.strMap)
{
TargetCoord.Add(objCoord);
// Check if this is the nearest target
float tempDist = (objCoord.vPos - GetPos()).Magnitude();
if(tempDist < fMinDist)
{
fMinDist = tempDist;
bInTable = true;
vDestPos = objCoord.vPos;
}
}
// ǰͼûĿĻĿڵͼڵǰͼ
else if (!bHasObjectInCurrentInstance)
{
// find the entrance of instance
List<OBJECT_COORD> instCoord = new List<OBJECT_COORD>();
int iCount2 = EC_Game.GetObjectCoord(objCoord.strMap, ref instCoord);
for (int j = 0; j < iCount2; ++j)
{
if (instCoord[j].strMap == strCurMap)
{
TargetCoord.Add(instCoord[j]);
// Check if this is the nearest target
float tempDist = (instCoord[i].vPos - GetPos()).Magnitude();
if(tempDist < fMinDist)
{
fMinDist = tempDist;
bInTable = true;
vDestPos = instCoord[j].vPos;
}
}
}
}
}
return vDestPos;
}
public int GetRealmLayer() {return m_RealmLevel / 100; }
public int GetRealmSubLevel(){ return m_RealmLevel % 100; }
public static int GetRealmLayer(int realmLevel){return realmLevel > 0 ? (realmLevel + 9) / 10 : 0;}
public static int GetRealmSubLevel(int realmLevel){return realmLevel > 0 ? (realmLevel % 10 > 0 ? realmLevel % 10 : 10) : 0;}
public bool HaveHealthStones()
{
var pPack = GetPack();
var items = new int[] {36764, 36765, 36766, 36767};
for (int i = 0; i < items.Length; ++ i) {
if (pPack.FindItem(items[i]) >= 0)
return true;
}
return false;
}
}
}