Merge remote-tracking branch 'origin/develop' into feature/mini-map
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3d4db99fadd6448b0a060059e0c22a0e
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -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: 2073914007811294008}
|
||||||
- component: {fileID: 3966264511266465954}
|
- component: {fileID: 3966264511266465954}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: OffFrame
|
m_Name: OnState
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@@ -1138,10 +1138,10 @@ RectTransform:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 3123454216176481580}
|
m_Father: {fileID: 3123454216176481580}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
m_AnchoredPosition: {x: 40.635, y: -16.2}
|
m_AnchoredPosition: {x: -15, y: 0}
|
||||||
m_SizeDelta: {x: 50.7351, y: 26.6806}
|
m_SizeDelta: {x: -30, y: 0}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &7639966540866459946
|
--- !u!222 &7639966540866459946
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
@@ -1171,7 +1171,7 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_text: "\u0110\xF3ng"
|
m_text: "M\u1EDF"
|
||||||
m_isRightToLeft: 0
|
m_isRightToLeft: 0
|
||||||
m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||||
m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||||
@@ -1198,14 +1198,14 @@ MonoBehaviour:
|
|||||||
m_faceColor:
|
m_faceColor:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
rgba: 4294967295
|
rgba: 4294967295
|
||||||
m_fontSize: 32.5
|
m_fontSize: 24
|
||||||
m_fontSizeBase: 32.5
|
m_fontSizeBase: 24
|
||||||
m_fontWeight: 400
|
m_fontWeight: 400
|
||||||
m_enableAutoSizing: 0
|
m_enableAutoSizing: 0
|
||||||
m_fontSizeMin: 18
|
m_fontSizeMin: 18
|
||||||
m_fontSizeMax: 72
|
m_fontSizeMax: 72
|
||||||
m_fontStyle: 0
|
m_fontStyle: 0
|
||||||
m_HorizontalAlignment: 1
|
m_HorizontalAlignment: 2
|
||||||
m_VerticalAlignment: 512
|
m_VerticalAlignment: 512
|
||||||
m_textAlignment: 65535
|
m_textAlignment: 65535
|
||||||
m_characterSpacing: -4.5
|
m_characterSpacing: -4.5
|
||||||
@@ -1236,7 +1236,7 @@ MonoBehaviour:
|
|||||||
m_VertexBufferAutoSizeReduction: 0
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
m_useMaxVisibleDescender: 1
|
m_useMaxVisibleDescender: 1
|
||||||
m_pageToDisplay: 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_isUsingLegacyAnimationComponent: 0
|
||||||
m_isVolumetricText: 0
|
m_isVolumetricText: 0
|
||||||
m_hasFontAssetChanged: 0
|
m_hasFontAssetChanged: 0
|
||||||
@@ -4381,7 +4381,8 @@ GameObject:
|
|||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 9186753556377915254}
|
- component: {fileID: 9186753556377915254}
|
||||||
- component: {fileID: 6244284104014817409}
|
- component: {fileID: 6840182078374811692}
|
||||||
|
- component: {fileID: 2621128482725560404}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: ShoTraceToggle
|
m_Name: ShoTraceToggle
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@@ -4410,7 +4411,22 @@ RectTransform:
|
|||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: 103.5415, y: 42.7938}
|
m_SizeDelta: {x: 103.5415, y: 42.7938}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
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:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
@@ -4429,7 +4445,7 @@ MonoBehaviour:
|
|||||||
m_SelectOnDown: {fileID: 0}
|
m_SelectOnDown: {fileID: 0}
|
||||||
m_SelectOnLeft: {fileID: 0}
|
m_SelectOnLeft: {fileID: 0}
|
||||||
m_SelectOnRight: {fileID: 0}
|
m_SelectOnRight: {fileID: 0}
|
||||||
m_Transition: 1
|
m_Transition: 0
|
||||||
m_Colors:
|
m_Colors:
|
||||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
@@ -4450,14 +4466,14 @@ MonoBehaviour:
|
|||||||
m_SelectedTrigger: Selected
|
m_SelectedTrigger: Selected
|
||||||
m_DisabledTrigger: Disabled
|
m_DisabledTrigger: Disabled
|
||||||
m_Interactable: 1
|
m_Interactable: 1
|
||||||
m_TargetGraphic: {fileID: 2073914007811294008}
|
m_TargetGraphic: {fileID: 0}
|
||||||
toggleTransition: 1
|
toggleTransition: 1
|
||||||
graphic: {fileID: 6758959852572783852}
|
graphic: {fileID: 0}
|
||||||
m_Group: {fileID: 0}
|
m_Group: {fileID: 0}
|
||||||
onValueChanged:
|
onValueChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_IsOn: 1
|
m_IsOn: 0
|
||||||
--- !u!1 &4529600407288641986
|
--- !u!1 &4529600407288641986
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -6129,10 +6145,10 @@ RectTransform:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 3683819913026684851}
|
m_Father: {fileID: 3683819913026684851}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
m_AnchoredPosition: {x: 32.2, y: -16.2}
|
m_AnchoredPosition: {x: -15, y: 0}
|
||||||
m_SizeDelta: {x: 67.6051, y: 26.6806}
|
m_SizeDelta: {x: -30, y: 0}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &153087682357708300
|
--- !u!222 &153087682357708300
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
@@ -6162,7 +6178,7 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_text: "M\u1EDF"
|
m_text: "\u0110\xF3ng"
|
||||||
m_isRightToLeft: 0
|
m_isRightToLeft: 0
|
||||||
m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||||
m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||||
@@ -6189,14 +6205,14 @@ MonoBehaviour:
|
|||||||
m_faceColor:
|
m_faceColor:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
rgba: 4294967295
|
rgba: 4294967295
|
||||||
m_fontSize: 32.5
|
m_fontSize: 24
|
||||||
m_fontSizeBase: 32.5
|
m_fontSizeBase: 24
|
||||||
m_fontWeight: 400
|
m_fontWeight: 400
|
||||||
m_enableAutoSizing: 0
|
m_enableAutoSizing: 0
|
||||||
m_fontSizeMin: 18
|
m_fontSizeMin: 18
|
||||||
m_fontSizeMax: 72
|
m_fontSizeMax: 72
|
||||||
m_fontStyle: 0
|
m_fontStyle: 0
|
||||||
m_HorizontalAlignment: 1
|
m_HorizontalAlignment: 2
|
||||||
m_VerticalAlignment: 512
|
m_VerticalAlignment: 512
|
||||||
m_textAlignment: 65535
|
m_textAlignment: 65535
|
||||||
m_characterSpacing: -4.5
|
m_characterSpacing: -4.5
|
||||||
@@ -6227,7 +6243,7 @@ MonoBehaviour:
|
|||||||
m_VertexBufferAutoSizeReduction: 0
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
m_useMaxVisibleDescender: 1
|
m_useMaxVisibleDescender: 1
|
||||||
m_pageToDisplay: 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_isUsingLegacyAnimationComponent: 0
|
||||||
m_isVolumetricText: 0
|
m_isVolumetricText: 0
|
||||||
m_hasFontAssetChanged: 0
|
m_hasFontAssetChanged: 0
|
||||||
@@ -6406,7 +6422,7 @@ RectTransform:
|
|||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 1, y: 1}
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: -17, y: 0}
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
m_Pivot: {x: 0, y: 1}
|
m_Pivot: {x: 0, y: 1}
|
||||||
--- !u!222 &5693552902337398956
|
--- !u!222 &5693552902337398956
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
@@ -7189,11 +7205,11 @@ MonoBehaviour:
|
|||||||
m_pBtn_NormalQuest: {fileID: 0}
|
m_pBtn_NormalQuest: {fileID: 0}
|
||||||
m_pBtn_SearchQuest: {fileID: 3993402114383519284}
|
m_pBtn_SearchQuest: {fileID: 3993402114383519284}
|
||||||
m_pBtn_HaveQuest: {fileID: 8416675113205287645}
|
m_pBtn_HaveQuest: {fileID: 8416675113205287645}
|
||||||
m_pBtn_bShowTrace: {fileID: 9136710161848467276}
|
m_pTog_bShowTrace: {fileID: 2621128482725560404}
|
||||||
m_pBtn_FinishTask: {fileID: 6741042101550509130}
|
m_pBtn_FinishTask: {fileID: 6741042101550509130}
|
||||||
m_pTxt_BaseAward: {fileID: 6764788513594170349}
|
m_pTxt_BaseAward: {fileID: 6764788513594170349}
|
||||||
Btn_TreasureMap: {fileID: 7903297208011070717}
|
Btn_TreasureMap: {fileID: 7903297208011070717}
|
||||||
Btn_Focus: {fileID: 2955519617984623694}
|
Btn_Focus: {fileID: 601347568680326690}
|
||||||
Lab_QuestNO: {fileID: 4208730212235768509}
|
Lab_QuestNO: {fileID: 4208730212235768509}
|
||||||
m_pImg_Item:
|
m_pImg_Item:
|
||||||
- {fileID: 1878888636723388585}
|
- {fileID: 1878888636723388585}
|
||||||
@@ -8457,7 +8473,7 @@ GameObject:
|
|||||||
- component: {fileID: 6758959852572783852}
|
- component: {fileID: 6758959852572783852}
|
||||||
- component: {fileID: 894529387942206273}
|
- component: {fileID: 894529387942206273}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: OnFrame
|
m_Name: OffState
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@@ -8570,23 +8586,23 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
|
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
|
||||||
propertyPath: m_AnchorMax.x
|
propertyPath: m_AnchorMax.x
|
||||||
value: 0.5
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
|
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0.5
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
|
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
|
||||||
propertyPath: m_AnchorMin.x
|
propertyPath: m_AnchorMin.x
|
||||||
value: 0.5
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
|
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_AnchorMin.y
|
||||||
value: 0.5
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
|
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
|
||||||
propertyPath: m_SizeDelta.x
|
propertyPath: m_SizeDelta.x
|
||||||
value: 319.58
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
|
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
|
||||||
propertyPath: m_SizeDelta.y
|
propertyPath: m_SizeDelta.y
|
||||||
@@ -8622,11 +8638,11 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
|
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
value: -151.28992
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
|
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
value: 336.93
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
|
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
|
||||||
propertyPath: m_LocalEulerAnglesHint.x
|
propertyPath: m_LocalEulerAnglesHint.x
|
||||||
|
|||||||
@@ -50,7 +50,9 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 8688b7d87bac4c16b9eaa3408f8ea419, type: 3}
|
m_Script: {fileID: 11500000, guid: 8688b7d87bac4c16b9eaa3408f8ea419, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
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}
|
_currentSelectedItem: {fileID: 0}
|
||||||
m_aTreeViewItems: []
|
m_aTreeViewItems: []
|
||||||
--- !u!114 &6404897883559725565
|
--- !u!114 &6404897883559725565
|
||||||
@@ -70,7 +72,7 @@ MonoBehaviour:
|
|||||||
m_Right: 0
|
m_Right: 0
|
||||||
m_Top: 0
|
m_Top: 0
|
||||||
m_Bottom: 0
|
m_Bottom: 0
|
||||||
m_ChildAlignment: 0
|
m_ChildAlignment: 1
|
||||||
m_Spacing: 0
|
m_Spacing: 0
|
||||||
m_ChildForceExpandWidth: 0
|
m_ChildForceExpandWidth: 0
|
||||||
m_ChildForceExpandHeight: 1
|
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: 4986645933044111193}
|
||||||
- component: {fileID: 1062363862839909147}
|
- component: {fileID: 1062363862839909147}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: TreeViewItem
|
m_Name: TreeViewIState2
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@@ -37,7 +37,7 @@ RectTransform:
|
|||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
m_AnchoredPosition: {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}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!114 &4314770845850481090
|
--- !u!114 &4314770845850481090
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
@@ -58,8 +58,11 @@ MonoBehaviour:
|
|||||||
_expandToggle: {fileID: 5502308808383608272}
|
_expandToggle: {fileID: 5502308808383608272}
|
||||||
_expandText:
|
_expandText:
|
||||||
legacy: {fileID: 0}
|
legacy: {fileID: 0}
|
||||||
tmp: {fileID: 8373064842616042426}
|
tmp: {fileID: 0}
|
||||||
_space: {fileID: 5541755240357469011}
|
_space: {fileID: 5541755240357469011}
|
||||||
|
_expandBG: {fileID: 6073336955970910715}
|
||||||
|
ExpandBGActive: {fileID: 21300000, guid: 42074c4f5f76b4cbc9043df8f430af5f, type: 3}
|
||||||
|
ExpandBGInactive: {fileID: 21300000, guid: e09a5d2cb3c3f4c858754a1e90a44abd, type: 3}
|
||||||
m_uItemData: 0
|
m_uItemData: 0
|
||||||
_treeLevel: 0
|
_treeLevel: 0
|
||||||
isLastItem: 0
|
isLastItem: 0
|
||||||
@@ -97,7 +100,7 @@ MonoBehaviour:
|
|||||||
m_Right: 0
|
m_Right: 0
|
||||||
m_Top: 0
|
m_Top: 0
|
||||||
m_Bottom: 0
|
m_Bottom: 0
|
||||||
m_ChildAlignment: 0
|
m_ChildAlignment: 1
|
||||||
m_Spacing: 0
|
m_Spacing: 0
|
||||||
m_ChildForceExpandWidth: 1
|
m_ChildForceExpandWidth: 1
|
||||||
m_ChildForceExpandHeight: 1
|
m_ChildForceExpandHeight: 1
|
||||||
@@ -116,7 +119,6 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 3882154025378162395}
|
- component: {fileID: 3882154025378162395}
|
||||||
- component: {fileID: 2230410216357545400}
|
- component: {fileID: 2230410216357545400}
|
||||||
- component: {fileID: 9062463037674165507}
|
|
||||||
- component: {fileID: 1762532130762754577}
|
- component: {fileID: 1762532130762754577}
|
||||||
- component: {fileID: 4801006375863435037}
|
- component: {fileID: 4801006375863435037}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
@@ -154,36 +156,6 @@ CanvasRenderer:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 2040002976300010419}
|
m_GameObject: {fileID: 2040002976300010419}
|
||||||
m_CullTransparentMesh: 1
|
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
|
--- !u!114 &1762532130762754577
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -224,7 +196,7 @@ MonoBehaviour:
|
|||||||
m_SelectedTrigger: Selected
|
m_SelectedTrigger: Selected
|
||||||
m_DisabledTrigger: Disabled
|
m_DisabledTrigger: Disabled
|
||||||
m_Interactable: 1
|
m_Interactable: 1
|
||||||
m_TargetGraphic: {fileID: 9062463037674165507}
|
m_TargetGraphic: {fileID: 0}
|
||||||
m_OnClick:
|
m_OnClick:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
@@ -241,11 +213,11 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_IgnoreLayout: 0
|
m_IgnoreLayout: 0
|
||||||
m_MinWidth: 0
|
m_MinWidth: 200
|
||||||
m_MinHeight: -1
|
m_MinHeight: -1
|
||||||
m_PreferredWidth: -1
|
m_PreferredWidth: 225
|
||||||
m_PreferredHeight: -1
|
m_PreferredHeight: -1
|
||||||
m_FlexibleWidth: 0.5
|
m_FlexibleWidth: -1
|
||||||
m_FlexibleHeight: -1
|
m_FlexibleHeight: -1
|
||||||
m_LayoutPriority: 2
|
m_LayoutPriority: 2
|
||||||
--- !u!1 &2916175606199835458
|
--- !u!1 &2916175606199835458
|
||||||
@@ -259,7 +231,6 @@ GameObject:
|
|||||||
- component: {fileID: 5827054231092576763}
|
- component: {fileID: 5827054231092576763}
|
||||||
- component: {fileID: 5842649278580849339}
|
- component: {fileID: 5842649278580849339}
|
||||||
- component: {fileID: 1383932928540251694}
|
- component: {fileID: 1383932928540251694}
|
||||||
- component: {fileID: 3802392566423567257}
|
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Text (TMP)
|
m_Name: Text (TMP)
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@@ -314,7 +285,7 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_text: New Text
|
m_text: Daily quest
|
||||||
m_isRightToLeft: 0
|
m_isRightToLeft: 0
|
||||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
@@ -379,32 +350,12 @@ MonoBehaviour:
|
|||||||
m_VertexBufferAutoSizeReduction: 0
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
m_useMaxVisibleDescender: 1
|
m_useMaxVisibleDescender: 1
|
||||||
m_pageToDisplay: 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_isUsingLegacyAnimationComponent: 0
|
||||||
m_isVolumetricText: 0
|
m_isVolumetricText: 0
|
||||||
m_hasFontAssetChanged: 0
|
m_hasFontAssetChanged: 0
|
||||||
m_baseMaterial: {fileID: 0}
|
m_baseMaterial: {fileID: 0}
|
||||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 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
|
--- !u!1 &6587684749681441909
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -415,7 +366,7 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 5062486824527634889}
|
- component: {fileID: 5062486824527634889}
|
||||||
- component: {fileID: 7099288759002186546}
|
- component: {fileID: 7099288759002186546}
|
||||||
- component: {fileID: 8373064842616042426}
|
- component: {fileID: 520846459080750772}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Text (TMP)
|
m_Name: Text (TMP)
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@@ -440,7 +391,7 @@ RectTransform:
|
|||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
m_AnchoredPosition: {x: -0.00048828125, y: 0}
|
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}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &7099288759002186546
|
--- !u!222 &7099288759002186546
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
@@ -450,7 +401,7 @@ CanvasRenderer:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 6587684749681441909}
|
m_GameObject: {fileID: 6587684749681441909}
|
||||||
m_CullTransparentMesh: 1
|
m_CullTransparentMesh: 1
|
||||||
--- !u!114 &8373064842616042426
|
--- !u!114 &520846459080750772
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
@@ -459,7 +410,7 @@ MonoBehaviour:
|
|||||||
m_GameObject: {fileID: 6587684749681441909}
|
m_GameObject: {fileID: 6587684749681441909}
|
||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
m_EditorHideFlags: 0
|
m_EditorHideFlags: 0
|
||||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_Material: {fileID: 0}
|
m_Material: {fileID: 0}
|
||||||
@@ -470,77 +421,16 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_text: +
|
m_Sprite: {fileID: 21300000, guid: 9de07872267c5419b9fa9c849eb45858, type: 3}
|
||||||
m_isRightToLeft: 0
|
m_Type: 0
|
||||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
m_PreserveAspect: 0
|
||||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
m_FillCenter: 1
|
||||||
m_fontSharedMaterials: []
|
m_FillMethod: 4
|
||||||
m_fontMaterial: {fileID: 0}
|
m_FillAmount: 1
|
||||||
m_fontMaterials: []
|
m_FillClockwise: 1
|
||||||
m_fontColor32:
|
m_FillOrigin: 0
|
||||||
serializedVersion: 2
|
m_UseSpriteMesh: 0
|
||||||
rgba: 4294967295
|
m_PixelsPerUnitMultiplier: 1
|
||||||
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}
|
|
||||||
--- !u!1 &6592915584227539970
|
--- !u!1 &6592915584227539970
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -557,7 +447,7 @@ GameObject:
|
|||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 0
|
||||||
--- !u!224 &2930138263853700511
|
--- !u!224 &2930138263853700511
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -572,10 +462,10 @@ RectTransform:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 2024997316782034639}
|
m_Father: {fileID: 2024997316782034639}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 0, y: -20}
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
m_SizeDelta: {x: 0, y: 40}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!114 &5541755240357469011
|
--- !u!114 &5541755240357469011
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
@@ -738,8 +628,8 @@ MonoBehaviour:
|
|||||||
m_IgnoreLayout: 0
|
m_IgnoreLayout: 0
|
||||||
m_MinWidth: -1
|
m_MinWidth: -1
|
||||||
m_MinHeight: -1
|
m_MinHeight: -1
|
||||||
m_PreferredWidth: 40
|
m_PreferredWidth: 90
|
||||||
m_PreferredHeight: 40
|
m_PreferredHeight: 90
|
||||||
m_FlexibleWidth: -1
|
m_FlexibleWidth: -1
|
||||||
m_FlexibleHeight: -1
|
m_FlexibleHeight: -1
|
||||||
m_LayoutPriority: 1
|
m_LayoutPriority: 1
|
||||||
@@ -753,6 +643,8 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 2024997316782034639}
|
- component: {fileID: 2024997316782034639}
|
||||||
- component: {fileID: 6485915084394087119}
|
- component: {fileID: 6485915084394087119}
|
||||||
|
- component: {fileID: 5819741135621999575}
|
||||||
|
- component: {fileID: 6073336955970910715}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: MainContent
|
m_Name: MainContent
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@@ -780,7 +672,7 @@ RectTransform:
|
|||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
m_AnchoredPosition: {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}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!114 &6485915084394087119
|
--- !u!114 &6485915084394087119
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
@@ -808,3 +700,41 @@ MonoBehaviour:
|
|||||||
m_ChildScaleWidth: 1
|
m_ChildScaleWidth: 1
|
||||||
m_ChildScaleHeight: 1
|
m_ChildScaleHeight: 1
|
||||||
m_ReverseArrangement: 0
|
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:
|
||||||
@@ -33,5 +33,8 @@ MonoBehaviour:
|
|||||||
prefab: {fileID: 5910006447059157136, guid: 22d3972b131ebdb4288f9cbdf996d691, type: 3}
|
prefab: {fileID: 5910006447059157136, guid: 22d3972b131ebdb4288f9cbdf996d691, type: 3}
|
||||||
- id: Win_Enchase
|
- id: Win_Enchase
|
||||||
prefab: {fileID: 5636724581774400035, guid: de6ac6f2630425044a55299c703670f1, type: 3}
|
prefab: {fileID: 5636724581774400035, guid: de6ac6f2630425044a55299c703670f1, type: 3}
|
||||||
|
- id: Win_QuestMinion
|
||||||
|
prefab: {fileID: 2135374639804663431, guid: 474bf9c22c7c445aeb9bfb8b1b77ab55, type: 3}
|
||||||
- id: Win_Character
|
- id: Win_Character
|
||||||
prefab: {fileID: 6310702841431484757, guid: 6620f766cee7c8f4cb00dd457ac77675, type: 3}
|
prefab: {fileID: 6310702841431484757, guid: 6620f766cee7c8f4cb00dd457ac77675, type: 3}
|
||||||
|
|
||||||
|
|||||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: f666d782d2b84fa48912bb3166f214aa
|
guid: 5346df76337624cc9ab94bb030214bae
|
||||||
TextureImporter:
|
TextureImporter:
|
||||||
internalIDToNameTable: []
|
internalIDToNameTable: []
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
@@ -43,7 +43,7 @@ TextureImporter:
|
|||||||
nPOTScale: 0
|
nPOTScale: 0
|
||||||
lightmap: 0
|
lightmap: 0
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
spriteMode: 2
|
spriteMode: 1
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
@@ -93,49 +93,14 @@ TextureImporter:
|
|||||||
ignorePlatformSupport: 0
|
ignorePlatformSupport: 0
|
||||||
androidETC2FallbackOverride: 0
|
androidETC2FallbackOverride: 0
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: Android
|
|
||||||
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:
|
spriteSheet:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
sprites:
|
sprites: []
|
||||||
- serializedVersion: 2
|
|
||||||
name: iconTask4_0
|
|
||||||
rect:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 67
|
|
||||||
y: 108
|
|
||||||
width: 330
|
|
||||||
height: 312
|
|
||||||
alignment: 0
|
|
||||||
pivot: {x: 0, y: 0}
|
|
||||||
border: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
customData:
|
|
||||||
outline: []
|
|
||||||
physicsShape: []
|
|
||||||
tessellationDetail: 0
|
|
||||||
bones: []
|
|
||||||
spriteID: 591aabfa2f20afb4ea7673f8c6f3b77b
|
|
||||||
internalID: 799372409
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
outline: []
|
outline: []
|
||||||
customData:
|
customData:
|
||||||
physicsShape: []
|
physicsShape: []
|
||||||
bones: []
|
bones: []
|
||||||
spriteID: c8e66269510e1524eb24b5af756fb09f
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
internalID: 0
|
internalID: 0
|
||||||
vertices: []
|
vertices: []
|
||||||
indices:
|
indices:
|
||||||
@@ -144,8 +109,7 @@ TextureImporter:
|
|||||||
secondaryTextures: []
|
secondaryTextures: []
|
||||||
spriteCustomMetadata:
|
spriteCustomMetadata:
|
||||||
entries: []
|
entries: []
|
||||||
nameFileIdTable:
|
nameFileIdTable: {}
|
||||||
iconTask4_0: 799372409
|
|
||||||
mipmapLimitGroupName:
|
mipmapLimitGroupName:
|
||||||
pSDRemoveMatte: 0
|
pSDRemoveMatte: 0
|
||||||
userData:
|
userData:
|
||||||
@@ -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:
|
||||||
@@ -663,7 +663,7 @@ namespace BrewMonster.Common
|
|||||||
{
|
{
|
||||||
int piMax = -1;
|
int piMax = -1;
|
||||||
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
|
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
|
||||||
if (pHost.GetCoolTime((int)CSNetwork.GPDataType.CoolTimeIndex.GP_CT_QUERY_MAFIA_PVP_INFO, ref piMax) == 0)
|
if (pHost.GetCoolTime((int)CSNetwork.GPDataType.CoolTimeIndex.GP_CT_QUERY_MAFIA_PVP_INFO, out piMax) == 0)
|
||||||
{
|
{
|
||||||
UnityGameSession.Instance.GameSession.c2s_SendCmdQueryFactionPVPInfo(idFaction);
|
UnityGameSession.Instance.GameSession.c2s_SendCmdQueryFactionPVPInfo(idFaction);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2678,6 +2678,7 @@ namespace BrewMonster
|
|||||||
|
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
|
||||||
public ushort[] name; // name, max 15 chars
|
public ushort[] name; // name, max 15 chars
|
||||||
|
public string Name => ByteToStringUtils.UshortArrayToUnicodeString(name);
|
||||||
|
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
|
||||||
public ushort[] prop; // properties
|
public ushort[] prop; // properties
|
||||||
@@ -5351,6 +5352,7 @@ namespace BrewMonster
|
|||||||
|
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
|
||||||
public ushort[] name; // name, max 15 characters
|
public ushort[] name; // name, max 15 characters
|
||||||
|
public string Name => ByteToStringUtils.UshortArrayToCP936String(name);
|
||||||
|
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
||||||
public uint[] id_tasks; // task IDs
|
public uint[] id_tasks; // task IDs
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ using System.Globalization;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.AddressableAssets;
|
using UnityEngine.AddressableAssets;
|
||||||
|
using CSNetwork.GPDataType;
|
||||||
namespace BrewMonster.Network
|
namespace BrewMonster.Network
|
||||||
{
|
{
|
||||||
public partial class EC_Game
|
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 =
|
private static readonly Dictionary<string, List<OBJECT_COORD>> m_CoordTab =
|
||||||
new Dictionary<string, List<OBJECT_COORD>>(StringComparer.OrdinalIgnoreCase);
|
new Dictionary<string, List<OBJECT_COORD>>(StringComparer.OrdinalIgnoreCase);
|
||||||
|
|
||||||
@@ -414,7 +409,7 @@ namespace BrewMonster.Network
|
|||||||
var coord = new OBJECT_COORD
|
var coord = new OBJECT_COORD
|
||||||
{
|
{
|
||||||
strMap = map,
|
strMap = map,
|
||||||
vPos = new Vector3(x, y, z),
|
vPos = new A3DVECTOR3(x, y, z),
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!m_CoordTab.TryGetValue(key, out var list))
|
if (!m_CoordTab.TryGetValue(key, out var list))
|
||||||
@@ -447,7 +442,7 @@ namespace BrewMonster.Network
|
|||||||
return false;
|
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;
|
map = list[0].strMap;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -529,8 +524,23 @@ namespace BrewMonster.Network
|
|||||||
}
|
}
|
||||||
return iIndex;
|
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
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -601,7 +601,7 @@ namespace BrewMonster.Scripts
|
|||||||
case CECHPWork.Host_work_ID.WORK_TRACEOBJECT: pWork = new CECHPWorkTrace(this); break;
|
case CECHPWork.Host_work_ID.WORK_TRACEOBJECT: pWork = new CECHPWorkTrace(this); break;
|
||||||
case CECHPWork.Host_work_ID.WORK_HACKOBJECT: pWork = new CECHPWorkMelee(this); break;
|
case CECHPWork.Host_work_ID.WORK_HACKOBJECT: pWork = new CECHPWorkMelee(this); break;
|
||||||
case CECHPWork.Host_work_ID.WORK_SPELLOBJECT: pWork = new CECHPWorkSpell(this); break;
|
case CECHPWork.Host_work_ID.WORK_SPELLOBJECT: pWork = new CECHPWorkSpell(this); break;
|
||||||
//case CECHPWork.Host_work_ID.WORK_USEITEM: pWork = new CECHPWorkUse(this); break;
|
case CECHPWork.Host_work_ID.WORK_USEITEM: pWork = new CECHPWorkUse(this); break;
|
||||||
//case CECHPWork.Host_work_ID.WORK_DEAD: pWork = new CECHPWorkDead(this); break;
|
//case CECHPWork.Host_work_ID.WORK_DEAD: pWork = new CECHPWorkDead(this); break;
|
||||||
//case CECHPWork.Host_work_ID.WORK_FOLLOW: pWork = new CECHPWorkFollow(this); break;
|
//case CECHPWork.Host_work_ID.WORK_FOLLOW: pWork = new CECHPWorkFollow(this); break;
|
||||||
case CECHPWork.Host_work_ID.WORK_FLYOFF: pWork = new CECHPWorkFly(this); break;
|
case CECHPWork.Host_work_ID.WORK_FLYOFF: pWork = new CECHPWorkFly(this); break;
|
||||||
|
|||||||
@@ -0,0 +1,189 @@
|
|||||||
|
using BrewMonster.Scripts;
|
||||||
|
using BrewMonster.Scripts.Managers;
|
||||||
|
using CSNetwork.GPDataType;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace BrewMonster.Scripts
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Host player work: Use item
|
||||||
|
/// 主角玩家工作:使用物品
|
||||||
|
/// </summary>
|
||||||
|
public class CECHPWorkUse : CECHPWork
|
||||||
|
{
|
||||||
|
// Fields / 字段
|
||||||
|
private int m_idItem; // Item template ID / 物品模板ID
|
||||||
|
private int m_idTarget; // Target object ID / 目标对象ID
|
||||||
|
private bool m_bWorkForMonsterSpirit; // Is this work for monster spirit gathering? / 是否为命轮采集工作
|
||||||
|
private CECCounter m_UseTimeCnt; // Use time counter / 使用时间计数器
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Constructor / 构造函数
|
||||||
|
/// </summary>
|
||||||
|
public CECHPWorkUse(CECHPWorkMan pWorkMan) : base(Host_work_ID.WORK_USEITEM, pWorkMan)
|
||||||
|
{
|
||||||
|
m_dwMask = Work_mask.MASK_USEITEM;
|
||||||
|
m_dwTransMask = Work_mask.MASK_STAND | Work_mask.MASK_MOVETOPOS;
|
||||||
|
Reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Reset work / 重置工作
|
||||||
|
/// </summary>
|
||||||
|
public override void Reset()
|
||||||
|
{
|
||||||
|
base.Reset();
|
||||||
|
|
||||||
|
m_idItem = 0;
|
||||||
|
m_idTarget = 0;
|
||||||
|
m_bWorkForMonsterSpirit = false;
|
||||||
|
|
||||||
|
if (m_UseTimeCnt == null)
|
||||||
|
m_UseTimeCnt = new CECCounter();
|
||||||
|
|
||||||
|
m_UseTimeCnt.SetPeriod(100);
|
||||||
|
m_UseTimeCnt.Reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Copy work data / 复制工作数据
|
||||||
|
/// </summary>
|
||||||
|
public override bool CopyData(CECHPWork pWork)
|
||||||
|
{
|
||||||
|
if (!base.CopyData(pWork))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
CECHPWorkUse pSrc = pWork as CECHPWorkUse;
|
||||||
|
if (pSrc == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
m_idItem = pSrc.m_idItem;
|
||||||
|
m_idTarget = pSrc.m_idTarget;
|
||||||
|
m_bWorkForMonsterSpirit = pSrc.m_bWorkForMonsterSpirit;
|
||||||
|
|
||||||
|
m_UseTimeCnt.SetPeriod(pSrc.m_UseTimeCnt.GetPeriod());
|
||||||
|
m_UseTimeCnt.SetCounter(pSrc.m_UseTimeCnt.GetCounter());
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// On first tick / 第一帧执行
|
||||||
|
/// </summary>
|
||||||
|
protected override void OnFirstTick()
|
||||||
|
{
|
||||||
|
if (m_pHost == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
m_pHost.m_iMoveMode = (int)MoveMode.MOVE_STAND;
|
||||||
|
|
||||||
|
EC_IvtrItem pItem = EC_IvtrItem.CreateItem(m_idItem, 0, 1);
|
||||||
|
if (pItem == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (m_bWorkForMonsterSpirit)
|
||||||
|
{
|
||||||
|
// Play gather monster spirit action / 播放采集命轮动作
|
||||||
|
// TODO: Implement PlayGatherMonsterSpiritAction if needed
|
||||||
|
// m_pHost.PlayGatherMonsterSpiritAction();
|
||||||
|
Debug.Log($"[CECHPWorkUse] Playing gather monster spirit action for item {m_idItem}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Play start use item action / 播放开始使用物品动作
|
||||||
|
// TODO: Implement PlayStartUseItemAction if needed
|
||||||
|
// m_pHost.PlayStartUseItemAction(m_idItem);
|
||||||
|
Debug.Log($"[CECHPWorkUse] Playing start use item action for item {m_idItem}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Work is cancelled / 工作被取消
|
||||||
|
/// </summary>
|
||||||
|
public override void Cancel()
|
||||||
|
{
|
||||||
|
if (m_idTarget != 0 && m_pHost != null)
|
||||||
|
{
|
||||||
|
m_pHost.TurnFaceTo(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
base.Cancel();
|
||||||
|
|
||||||
|
// TODO: Implement AP_ActionEvent if needed
|
||||||
|
// AP_ActionEvent(AP_EVENT_STOPUSEITEM);
|
||||||
|
Debug.Log("[CECHPWorkUse] Work cancelled - STOPUSEITEM event");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Set parameters / 设置参数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idItem">Item template ID / 物品模板ID</param>
|
||||||
|
/// <param name="dwUseTime">Use time in milliseconds / 使用时间(毫秒)</param>
|
||||||
|
/// <param name="idTarget">Target object ID / 目标对象ID</param>
|
||||||
|
/// <param name="bWorkForMonsterSpirit">Is for monster spirit gathering / 是否为命轮采集</param>
|
||||||
|
public void SetParams(int idItem, float dwUseTime, int idTarget, bool bWorkForMonsterSpirit)
|
||||||
|
{
|
||||||
|
m_idItem = idItem;
|
||||||
|
m_idTarget = idTarget;
|
||||||
|
m_bWorkForMonsterSpirit = bWorkForMonsterSpirit;
|
||||||
|
|
||||||
|
m_UseTimeCnt.SetPeriod(dwUseTime);
|
||||||
|
m_UseTimeCnt.Reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Tick routine / 每帧更新
|
||||||
|
/// </summary>
|
||||||
|
public override bool Tick(float dwDeltaTime)
|
||||||
|
{
|
||||||
|
base.Tick(dwDeltaTime);
|
||||||
|
|
||||||
|
// Update use time counter / 更新使用时间计数器
|
||||||
|
if (m_UseTimeCnt.IncCounter(dwDeltaTime))
|
||||||
|
{
|
||||||
|
m_UseTimeCnt.Reset(true);
|
||||||
|
m_bFinished = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Turn face to target if needed / 如果有目标则面向目标
|
||||||
|
if (m_idTarget != 0 && m_pHost != null)
|
||||||
|
{
|
||||||
|
m_pHost.TurnFaceTo(m_idTarget);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get item template ID / 获取物品模板ID
|
||||||
|
/// </summary>
|
||||||
|
public int GetItem()
|
||||||
|
{
|
||||||
|
return m_idItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get target object ID / 获取目标对象ID
|
||||||
|
/// </summary>
|
||||||
|
public int GetTarget()
|
||||||
|
{
|
||||||
|
return m_idTarget;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Is this work for monster spirit gathering? / 是否为命轮采集工作
|
||||||
|
/// </summary>
|
||||||
|
public bool IsWorkForMonsterSpirit()
|
||||||
|
{
|
||||||
|
return m_bWorkForMonsterSpirit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get use time counter / 获取使用时间计数器
|
||||||
|
/// </summary>
|
||||||
|
public CECCounter GetUseTimeCnt()
|
||||||
|
{
|
||||||
|
return m_UseTimeCnt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 965c8f617755486429a9f1bb88521065
|
||||||
@@ -305,5 +305,15 @@ namespace BrewMonster.Scripts.Managers
|
|||||||
{
|
{
|
||||||
return m_aItems.Length;
|
return m_aItems.Length;
|
||||||
}
|
}
|
||||||
|
// Unfreeze all items
|
||||||
|
public void UnfreezeAllItems()
|
||||||
|
{
|
||||||
|
// Release all items
|
||||||
|
for (int i=0; i < m_aItems.Length; i++)
|
||||||
|
{
|
||||||
|
if (m_aItems[i] != null)
|
||||||
|
m_aItems[i].Freeze(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -134,6 +134,66 @@ namespace BrewMonster.Scripts.Managers
|
|||||||
{
|
{
|
||||||
RefreshAll();
|
RefreshAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UpdateCooldownOverlays();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Update all cooldown overlays
|
||||||
|
/// 更新所有冷却遮罩
|
||||||
|
/// </summary>
|
||||||
|
public void UpdateCooldownOverlays()
|
||||||
|
{
|
||||||
|
// Update inventory pack cooldowns
|
||||||
|
// 更新背包冷却
|
||||||
|
UpdatePackageCooldowns(inventoryPackButtons, PKG_INVENTORY);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Update cooldown overlays for a specific package
|
||||||
|
/// 更新特定包裹的冷却遮罩
|
||||||
|
/// </summary>
|
||||||
|
private void UpdatePackageCooldowns(List<Button> buttons, byte package)
|
||||||
|
{
|
||||||
|
if (buttons == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarning($"[UpdatePackageCooldowns] Buttons list is null for package {package}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var items = model.GetInventoryData(package);
|
||||||
|
if (items == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarning($"[UpdatePackageCooldowns] Items dictionary is null for package {package}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Debug.Log($"[UpdatePackageCooldowns] Updating package {package} with {buttons.Count} buttons and {items.Count} items");
|
||||||
|
|
||||||
|
for (int slot = 0; slot < buttons.Count; slot++)
|
||||||
|
{
|
||||||
|
var button = buttons[slot];
|
||||||
|
if (button == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// Get item at this slot
|
||||||
|
// 获取此槽位的物品
|
||||||
|
EC_IvtrItem itemData = null;
|
||||||
|
bool hasItem = items.TryGetValue(slot, out itemData) && itemData != null;
|
||||||
|
|
||||||
|
if (hasItem)
|
||||||
|
{
|
||||||
|
// Use InventoryView's method to update cooldown
|
||||||
|
// 使用 InventoryView 的方法更新冷却
|
||||||
|
view.UpdateCooldownOverlay(button, itemData);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//// Hide overlay for empty slots
|
||||||
|
//// 空槽位隐藏遮罩
|
||||||
|
//view.HideCooldownOverlay(button);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RefreshAll()
|
public void RefreshAll()
|
||||||
@@ -335,14 +395,23 @@ namespace BrewMonster.Scripts.Managers
|
|||||||
{
|
{
|
||||||
if (currentSelectedItem == null)
|
if (currentSelectedItem == null)
|
||||||
{
|
{
|
||||||
Debug.LogWarning("[InventoryUI] No item selected for equip/unequip operation");
|
Debug.LogWarning("[InventoryUI] No item selected for operation");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentSelectedPackage == PKG_INVENTORY)
|
if (currentSelectedPackage == PKG_INVENTORY)
|
||||||
{
|
{
|
||||||
// Equipping from inventory
|
// Check if item is equipment
|
||||||
EquipItem();
|
if (currentSelectedItem.IsEquipment())
|
||||||
|
{
|
||||||
|
// Equipping from inventory
|
||||||
|
EquipItem();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Use item from inventory
|
||||||
|
UseItem();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (currentSelectedPackage == PKG_EQUIPMENT)
|
else if (currentSelectedPackage == PKG_EQUIPMENT)
|
||||||
{
|
{
|
||||||
@@ -351,7 +420,56 @@ namespace BrewMonster.Scripts.Managers
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Debug.LogWarning($"[InventoryUI] Equip/Unequip not supported for package {currentSelectedPackage}");
|
Debug.LogWarning($"[InventoryUI] Operation not supported for package {currentSelectedPackage}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Use the currently selected item from inventory
|
||||||
|
/// </summary>
|
||||||
|
private void UseItem()
|
||||||
|
{
|
||||||
|
if (currentSelectedItem == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarning("[InventoryUI] No item selected for use");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentSelectedPackage != PKG_INVENTORY)
|
||||||
|
{
|
||||||
|
Debug.LogWarning("[InventoryUI] Can only use items from inventory package");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Debug.Log($"[UseItem] Attempting to use item {currentSelectedItem.m_tid} from slot {currentSelectedSlot}");
|
||||||
|
|
||||||
|
// Get host player to call UseItemInPack
|
||||||
|
var host = CECGameRun.Instance?.GetHostPlayer();
|
||||||
|
if (host == null)
|
||||||
|
{
|
||||||
|
Debug.LogError("[InventoryUI] Cannot get host player");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Call UseItemInPack with current package and slot
|
||||||
|
bool success = host.UseItemInPack(currentSelectedPackage, currentSelectedSlot, true);
|
||||||
|
|
||||||
|
if (success)
|
||||||
|
{
|
||||||
|
Debug.Log($"[UseItem] Successfully used item {currentSelectedItem.m_tid} from slot {currentSelectedSlot}");
|
||||||
|
|
||||||
|
// Close detail panel after using item
|
||||||
|
ShowDetailPanel(false);
|
||||||
|
|
||||||
|
// Refresh inventory to reflect changes
|
||||||
|
RefreshAll();
|
||||||
|
|
||||||
|
Debug.Log($"[UseItem] Calling UpdateCooldownOverlays after item use");
|
||||||
|
UpdateCooldownOverlays();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.LogWarning($"[UseItem] Failed to use item {currentSelectedItem.m_tid} from slot {currentSelectedSlot}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -598,6 +716,8 @@ namespace BrewMonster.Scripts.Managers
|
|||||||
{
|
{
|
||||||
private static readonly Dictionary<Image, Sprite> _defaultSprites = new Dictionary<Image, Sprite>();
|
private static readonly Dictionary<Image, Sprite> _defaultSprites = new Dictionary<Image, Sprite>();
|
||||||
|
|
||||||
|
private static readonly Dictionary<Button, Image> _overlayImages = new Dictionary<Button, Image>();
|
||||||
|
|
||||||
public void RenderPackage(List<Button> buttons, Dictionary<int, EC_IvtrItem> items, byte package, System.Action<byte, int> onClick, System.Func<int, EC_IvtrItem, string> getDisplayText)
|
public void RenderPackage(List<Button> buttons, Dictionary<int, EC_IvtrItem> items, byte package, System.Action<byte, int> onClick, System.Func<int, EC_IvtrItem, string> getDisplayText)
|
||||||
{
|
{
|
||||||
if (buttons == null)
|
if (buttons == null)
|
||||||
@@ -615,34 +735,41 @@ namespace BrewMonster.Scripts.Managers
|
|||||||
|
|
||||||
EC_IvtrItem itemData = null;
|
EC_IvtrItem itemData = null;
|
||||||
bool hasItem = items != null && items.TryGetValue(slot, out itemData);
|
bool hasItem = items != null && items.TryGetValue(slot, out itemData);
|
||||||
|
|
||||||
button.onClick.RemoveAllListeners();
|
button.onClick.RemoveAllListeners();
|
||||||
int capturedSlot = slot;
|
int capturedSlot = slot;
|
||||||
button.onClick.AddListener(() => onClick(package, capturedSlot));
|
button.onClick.AddListener(() => onClick(package, capturedSlot));
|
||||||
// Optional visual tweaks based on state/count
|
|
||||||
|
// Update icon and count
|
||||||
var image = button.GetComponent<Image>();
|
var image = button.GetComponent<Image>();
|
||||||
if (image != null)
|
if (image != null)
|
||||||
{
|
{
|
||||||
// Store the default sprite if we haven't seen this image before
|
// Store default sprite
|
||||||
if (!_defaultSprites.ContainsKey(image))
|
if (!_defaultSprites.ContainsKey(image))
|
||||||
{
|
{
|
||||||
_defaultSprites[image] = image.sprite;
|
_defaultSprites[image] = image.sprite;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set icon sprite based on item TemplateId
|
// Set icon sprite based on item
|
||||||
if (hasItem && itemData != null && itemData.m_iCount > 0)
|
if (hasItem && itemData != null && itemData.m_iCount > 0)
|
||||||
{
|
{
|
||||||
var sprite = EC_IvtrItemUtils.Instance.ResolveItemIconSprite(itemData.m_tid);
|
var sprite = EC_IvtrItemUtils.Instance.ResolveItemIconSprite(itemData.m_tid);
|
||||||
image.sprite = sprite;
|
image.sprite = sprite;
|
||||||
image.enabled = true;
|
image.enabled = true;
|
||||||
|
|
||||||
|
UpdateItemCountText(button, itemData.m_iCount);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Restore the default sprite instead of setting to null
|
// Restore default sprite
|
||||||
image.sprite = _defaultSprites[image];
|
image.sprite = _defaultSprites[image];
|
||||||
image.enabled = true;
|
image.enabled = true;
|
||||||
|
|
||||||
|
UpdateItemCountText(button, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Setup drag-drop events
|
||||||
var eventTrigger = button.GetComponent<EventTrigger>();
|
var eventTrigger = button.GetComponent<EventTrigger>();
|
||||||
if (eventTrigger == null)
|
if (eventTrigger == null)
|
||||||
eventTrigger = button.gameObject.AddComponent<EventTrigger>();
|
eventTrigger = button.gameObject.AddComponent<EventTrigger>();
|
||||||
@@ -662,6 +789,166 @@ namespace BrewMonster.Scripts.Managers
|
|||||||
AddEvent(EventTriggerType.Drop, (data) => ((EC_InventoryUI)button.GetComponentInParent<EC_InventoryUI>()).OnDrop((PointerEventData)data));
|
AddEvent(EventTriggerType.Drop, (data) => ((EC_InventoryUI)button.GetComponentInParent<EC_InventoryUI>()).OnDrop((PointerEventData)data));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Update cooldown overlay for item
|
||||||
|
/// 更新物品冷却遮罩
|
||||||
|
/// </summary>
|
||||||
|
public void UpdateCooldownOverlay(Button button, EC_IvtrItem itemData)
|
||||||
|
{
|
||||||
|
if (button == null || itemData == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarning("[UpdateCooldownOverlay] Button or itemData is null");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find or cache overlay image
|
||||||
|
// 查找或缓存遮罩图片
|
||||||
|
Image overlay = null;
|
||||||
|
if (_overlayImages.TryGetValue(button, out overlay))
|
||||||
|
{
|
||||||
|
if (overlay == null)
|
||||||
|
{
|
||||||
|
// Cached but destroyed, remove and search again
|
||||||
|
// 已缓存但被销毁,移除并重新查找
|
||||||
|
Debug.LogWarning($"[UpdateCooldownOverlay] Cached overlay was destroyed for button {button.name}");
|
||||||
|
_overlayImages.Remove(button);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (overlay == null)
|
||||||
|
{
|
||||||
|
// Find image_overlay in button's children
|
||||||
|
// 在按钮子物体中查找 image_overlay
|
||||||
|
var overlayTransform = button.transform.Find("image_overlay");
|
||||||
|
if (overlayTransform != null)
|
||||||
|
{
|
||||||
|
overlay = overlayTransform.GetComponent<Image>();
|
||||||
|
if (overlay != null)
|
||||||
|
{
|
||||||
|
_overlayImages[button] = overlay;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.LogWarning($"[UpdateCooldownOverlay] Found transform but no Image component on image_overlay for button {button.name}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.LogWarning($"[UpdateCooldownOverlay] Cannot find image_overlay child in button {button.name}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (overlay == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get cooldown info from item
|
||||||
|
// 从物品获取冷却信息
|
||||||
|
int maxCooldown = -1;
|
||||||
|
int currentCooldown = itemData.GetCoolTime(out maxCooldown);
|
||||||
|
|
||||||
|
if (currentCooldown > 0)
|
||||||
|
{
|
||||||
|
// Show overlay and set fill amount
|
||||||
|
// 显示遮罩并设置填充量
|
||||||
|
overlay.gameObject.SetActive(true);
|
||||||
|
|
||||||
|
// Calculate fill amount (1 = full cooldown, 0 = ready)
|
||||||
|
// 计算填充量(1=完全冷却,0=就绪)
|
||||||
|
if (maxCooldown > 0)
|
||||||
|
{
|
||||||
|
float fillAmount = (float)currentCooldown / maxCooldown;
|
||||||
|
overlay.fillAmount = fillAmount;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Hide overlay when not in cooldown
|
||||||
|
// 不在冷却时隐藏遮罩
|
||||||
|
overlay.gameObject.SetActive(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hide cooldown overlay
|
||||||
|
/// 隐藏冷却遮罩
|
||||||
|
/// </summary>
|
||||||
|
public void HideCooldownOverlay(Button button)
|
||||||
|
{
|
||||||
|
if (button == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Image overlay = null;
|
||||||
|
if (_overlayImages.TryGetValue(button, out overlay) && overlay != null)
|
||||||
|
{
|
||||||
|
overlay.gameObject.SetActive(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Update or create text component to show item count on the button
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="button">The inventory button</param>
|
||||||
|
/// <param name="count">Item count (0 to hide)</param>
|
||||||
|
private void UpdateItemCountText(Button button, int count)
|
||||||
|
{
|
||||||
|
if (button == null) return;
|
||||||
|
|
||||||
|
TMPro.TextMeshProUGUI tmpText = null;
|
||||||
|
Text legacyText = null;
|
||||||
|
|
||||||
|
// Find text component
|
||||||
|
var textTransform = button.transform.Find("text_quality");
|
||||||
|
|
||||||
|
if (textTransform != null)
|
||||||
|
{
|
||||||
|
tmpText = textTransform.GetComponent<TMPro.TextMeshProUGUI>();
|
||||||
|
legacyText = textTransform.GetComponent<Text>();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Fallback: find any text in children
|
||||||
|
tmpText = button.GetComponentInChildren<TMPro.TextMeshProUGUI>();
|
||||||
|
if (tmpText == null)
|
||||||
|
{
|
||||||
|
legacyText = button.GetComponentInChildren<Text>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update text
|
||||||
|
if (count > 1)
|
||||||
|
{
|
||||||
|
string countText = count.ToString();
|
||||||
|
|
||||||
|
if (tmpText != null)
|
||||||
|
{
|
||||||
|
tmpText.text = countText;
|
||||||
|
tmpText.gameObject.SetActive(true);
|
||||||
|
}
|
||||||
|
else if (legacyText != null)
|
||||||
|
{
|
||||||
|
legacyText.text = countText;
|
||||||
|
legacyText.gameObject.SetActive(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Hide when count <= 1
|
||||||
|
if (tmpText != null)
|
||||||
|
{
|
||||||
|
tmpText.text = "";
|
||||||
|
tmpText.gameObject.SetActive(false);
|
||||||
|
}
|
||||||
|
else if (legacyText != null)
|
||||||
|
{
|
||||||
|
legacyText.text = "";
|
||||||
|
legacyText.gameObject.SetActive(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// === Detail Panel Helpers ===
|
// === Detail Panel Helpers ===
|
||||||
|
|||||||
@@ -76,6 +76,8 @@ namespace PerfectWorld.Scripts.Managers
|
|||||||
protected ARMOR_MAJOR_TYPE m_pDBMajorType;
|
protected ARMOR_MAJOR_TYPE m_pDBMajorType;
|
||||||
protected ARMOR_SUB_TYPE m_pDBSubType;
|
protected ARMOR_SUB_TYPE m_pDBSubType;
|
||||||
protected ARMOR_ESSENCE m_pDBEssence;
|
protected ARMOR_ESSENCE m_pDBEssence;
|
||||||
|
|
||||||
|
public ARMOR_ESSENCE GetDBEssence() { return m_pDBEssence; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Constructor for armor item (Mu + Ao + Quan + Giay) / Constructor for armor item (Helmet + Armor + Pants + Boots)
|
/// Constructor for armor item (Mu + Ao + Quan + Giay) / Constructor for armor item (Helmet + Armor + Pants + Boots)
|
||||||
|
|||||||
@@ -165,10 +165,11 @@ namespace PerfectWorld.Scripts.Managers
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get item cool time
|
// Get item cool time
|
||||||
public int GetCoolTime(ref int piMax)
|
public override int GetCoolTime(out int piMax)
|
||||||
{
|
{
|
||||||
|
piMax = 0;
|
||||||
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
|
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
|
||||||
return pHost != null ? pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_AUTOHP, ref piMax) : 0;
|
return pHost != null ? pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_AUTOHP, out piMax) : 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ namespace PerfectWorld.Scripts.Managers
|
|||||||
public int GetCoolTime(ref int piMax)
|
public int GetCoolTime(ref int piMax)
|
||||||
{
|
{
|
||||||
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
|
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
|
||||||
return pHost != null ? pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_AUTOMP, ref piMax) : 0;
|
return pHost != null ? pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_AUTOMP, out piMax) : 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,6 +48,8 @@ namespace PerfectWorld.Scripts.Managers
|
|||||||
protected DECORATION_MAJOR_TYPE m_pDBMajorType;
|
protected DECORATION_MAJOR_TYPE m_pDBMajorType;
|
||||||
protected DECORATION_SUB_TYPE m_pDBSubType;
|
protected DECORATION_SUB_TYPE m_pDBSubType;
|
||||||
protected DECORATION_ESSENCE m_pDBEssence;
|
protected DECORATION_ESSENCE m_pDBEssence;
|
||||||
|
|
||||||
|
public DECORATION_ESSENCE GetDBEssence() { return m_pDBEssence; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Constructor for decoration item (cac loai trang suc) / Constructor for decoration item (various types of decorations)
|
/// Constructor for decoration item (cac loai trang suc) / Constructor for decoration item (various types of decorations)
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
|
using BrewMonster;
|
||||||
using BrewMonster.Scripts.Managers;
|
using BrewMonster.Scripts.Managers;
|
||||||
namespace PerfectWorld.Scripts.Managers
|
namespace PerfectWorld.Scripts.Managers
|
||||||
{
|
{
|
||||||
public class EC_IvtrDoubleExp : EC_IvtrItem
|
public class EC_IvtrDoubleExp : EC_IvtrItem
|
||||||
{
|
{
|
||||||
|
private DOUBLE_EXP_ESSENCE m_pDBEssence;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Not create logic yet (add summary later)
|
/// Not create logic yet (add summary later)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -15,6 +18,11 @@ namespace PerfectWorld.Scripts.Managers
|
|||||||
public EC_IvtrDoubleExp(EC_IvtrDoubleExp other) : base(other)
|
public EC_IvtrDoubleExp(EC_IvtrDoubleExp other) : base(other)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DOUBLE_EXP_ESSENCE GetDBEssence()
|
||||||
|
{
|
||||||
|
return m_pDBEssence;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -705,6 +705,9 @@ namespace BrewMonster.Scripts.Managers
|
|||||||
public bool m_bLocalDetailData; // true, data from GetDetailDataFromLocal
|
public bool m_bLocalDetailData; // true, data from GetDetailDataFromLocal
|
||||||
|
|
||||||
public EC_Inventory m_pDescIvtr; // Inventory only used to get item description
|
public EC_Inventory m_pDescIvtr; // Inventory only used to get item description
|
||||||
|
|
||||||
|
private ushort m_dwData;
|
||||||
|
private string m_strDataName;
|
||||||
|
|
||||||
#region Constructors
|
#region Constructors
|
||||||
|
|
||||||
@@ -1138,9 +1141,9 @@ namespace BrewMonster.Scripts.Managers
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Get item cool time in milliseconds (0 by default).</summary>
|
/// <summary>Get item cool time in milliseconds (0 by default).</summary>
|
||||||
public virtual int GetCoolTime(out int? piMax)
|
public virtual int GetCoolTime(out int piMax)
|
||||||
{
|
{
|
||||||
piMax = null;
|
piMax = -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2114,6 +2117,17 @@ namespace BrewMonster.Scripts.Managers
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
// public ushort GetData(string strName = "")
|
||||||
|
// {
|
||||||
|
// // if (0 != m_dwData && strName != m_strDataName)
|
||||||
|
// // AUI_ReportError(__LINE__, 1, "AUIObject::GetData(), data name not match");
|
||||||
|
// return m_dwData;
|
||||||
|
// }
|
||||||
|
// public void SetData(ushort dwData, string strName)
|
||||||
|
// {
|
||||||
|
// m_strDataName = strName;
|
||||||
|
// m_dwData = dwData;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -65,8 +65,9 @@ namespace PerfectWorld.Scripts.Managers
|
|||||||
{
|
{
|
||||||
return m_pDBEssence.Name;
|
return m_pDBEssence.Name;
|
||||||
}
|
}
|
||||||
public int GetCoolTime(ref int piMax/* NULL */)
|
public override int GetCoolTime(out int piMax/* NULL */)
|
||||||
{
|
{
|
||||||
|
piMax = 1;
|
||||||
CECHostPlayer pHost = CECGameRun.Instance.GetHostPlayer();
|
CECHostPlayer pHost = CECGameRun.Instance.GetHostPlayer();
|
||||||
if (!pHost)
|
if (!pHost)
|
||||||
return 0;
|
return 0;
|
||||||
@@ -75,11 +76,11 @@ namespace PerfectWorld.Scripts.Managers
|
|||||||
|
|
||||||
switch (m_pDBMajorType.id)
|
switch (m_pDBMajorType.id)
|
||||||
{
|
{
|
||||||
case 1810: iTime = pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_REJUVENATION_POTION, ref piMax); break;
|
case 1810: iTime = pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_REJUVENATION_POTION, out piMax); break;
|
||||||
case 1794: iTime = pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_HP_POTION, ref piMax); break;
|
case 1794: iTime = pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_HP_POTION, out piMax); break;
|
||||||
case 1802: iTime = pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_MP_POTION, ref piMax); break;
|
case 1802: iTime = pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_MP_POTION, out piMax); break;
|
||||||
case 1815:
|
case 1815:
|
||||||
case 2038: iTime = pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_ANTIDOTE_POTION, ref piMax); break;
|
case 2038: iTime = pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_ANTIDOTE_POTION, out piMax); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return iTime;
|
return iTime;
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ namespace PerfectWorld.Scripts.Managers
|
|||||||
if (!pHost)
|
if (!pHost)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
int iTime = pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_FEED_PET, ref piMax);
|
int iTime = pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_FEED_PET, out piMax);
|
||||||
return iTime;
|
return iTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,14 @@
|
|||||||
|
using BrewMonster;
|
||||||
using BrewMonster.Scripts.Managers;
|
using BrewMonster.Scripts.Managers;
|
||||||
|
using ModelRenderer.Scripts.GameData;
|
||||||
|
|
||||||
namespace PerfectWorld.Scripts.Managers
|
namespace PerfectWorld.Scripts.Managers
|
||||||
{
|
{
|
||||||
public class EC_IvtrStone : EC_IvtrItem
|
public class EC_IvtrStone : EC_IvtrItem
|
||||||
{
|
{
|
||||||
|
// Data in database
|
||||||
|
private STONE_ESSENCE m_pDBEssence;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Not create logic yet (add summary later)
|
/// Not create logic yet (add summary later)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -10,11 +16,29 @@ namespace PerfectWorld.Scripts.Managers
|
|||||||
/// <param name="expire_date">Expire date</param>
|
/// <param name="expire_date">Expire date</param>
|
||||||
public EC_IvtrStone(int tid, int expire_date) : base(tid, expire_date)
|
public EC_IvtrStone(int tid, int expire_date) : base(tid, expire_date)
|
||||||
{
|
{
|
||||||
|
m_iCID = (int)EC_IvtrEquip.EQUIP_CLASS_ID.ICID_STONE;
|
||||||
|
|
||||||
|
// Get database data
|
||||||
|
elementdataman pDB = ElementDataManProvider.GetElementDataMan();
|
||||||
|
DATA_TYPE DataType = default;
|
||||||
|
m_pDBEssence = (STONE_ESSENCE)pDB.get_data_ptr((uint)tid, ID_SPACE.ID_SPACE_ESSENCE,ref DataType);
|
||||||
|
// m_pDBSubType = (STONE_SUB_TYPE*)pDB->get_data_ptr(m_pDBEssence->id_sub_type, ID_SPACE_ESSENCE, DataType);
|
||||||
|
|
||||||
|
m_iPileLimit = m_pDBEssence.pile_num_max;
|
||||||
|
m_iPrice = m_pDBEssence.price;
|
||||||
|
m_iShopPrice = m_pDBEssence.shop_price;
|
||||||
|
m_iProcType = (int)m_pDBEssence.proc_type;
|
||||||
|
m_i64EquipMask = 0;
|
||||||
|
m_bEmbeddable = true;
|
||||||
|
|
||||||
|
m_bNeedUpdate = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public EC_IvtrStone(EC_IvtrStone other) : base(other)
|
public EC_IvtrStone(EC_IvtrStone other) : base(other)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public STONE_ESSENCE GetDBEssence() { return m_pDBEssence; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,14 @@
|
|||||||
|
using BrewMonster;
|
||||||
using BrewMonster.Scripts.Managers;
|
using BrewMonster.Scripts.Managers;
|
||||||
namespace PerfectWorld.Scripts.Managers
|
namespace PerfectWorld.Scripts.Managers
|
||||||
{
|
{
|
||||||
public class EC_IvtrTargetItem : EC_IvtrItem
|
public class EC_IvtrTargetItem : EC_IvtrItem
|
||||||
{
|
{
|
||||||
|
private CECSkill m_pTargetSkill;
|
||||||
|
|
||||||
|
private TARGET_ITEM_ESSENCE m_pDBEssence;
|
||||||
|
private bool m_bEssenceLoaded = false; // Flag to track if essence is loaded
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Not create logic yet (add summary later)
|
/// Not create logic yet (add summary later)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -15,6 +21,33 @@ namespace PerfectWorld.Scripts.Managers
|
|||||||
public EC_IvtrTargetItem(EC_IvtrTargetItem other) : base(other)
|
public EC_IvtrTargetItem(EC_IvtrTargetItem other) : base(other)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TARGET_ITEM_ESSENCE GetDBEssence()
|
||||||
|
{
|
||||||
|
if (!m_bEmbeddable)
|
||||||
|
{
|
||||||
|
DATA_TYPE DataType = DATA_TYPE.DT_INVALID;
|
||||||
|
var pDataBuf = ElementDataManProvider.GetElementDataMan()
|
||||||
|
.get_data_ptr((uint)m_tid, ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
|
||||||
|
|
||||||
|
if (DataType == DATA_TYPE.DT_TARGET_ITEM_ESSENCE && pDataBuf != null)
|
||||||
|
{
|
||||||
|
m_pDBEssence = (TARGET_ITEM_ESSENCE)pDataBuf;
|
||||||
|
m_bEssenceLoaded = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return m_pDBEssence;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsEssenceLoaded()
|
||||||
|
{
|
||||||
|
return m_bEssenceLoaded;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CECSkill GetTargetSkill()
|
||||||
|
{
|
||||||
|
return m_pTargetSkill;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using BrewMonster;
|
||||||
using BrewMonster.Scripts.Managers;
|
using BrewMonster.Scripts.Managers;
|
||||||
namespace PerfectWorld.Scripts.Managers
|
namespace PerfectWorld.Scripts.Managers
|
||||||
{
|
{
|
||||||
@@ -15,6 +16,13 @@ namespace PerfectWorld.Scripts.Managers
|
|||||||
public EC_IvtrTossMat(EC_IvtrTossMat other) : base(other)
|
public EC_IvtrTossMat(EC_IvtrTossMat other) : base(other)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected TOSSMATTER_ESSENCE m_pDBEssence;
|
||||||
|
|
||||||
|
public TOSSMATTER_ESSENCE GetDBEssence()
|
||||||
|
{
|
||||||
|
return m_pDBEssence;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ namespace PerfectWorld.Scripts.Managers
|
|||||||
public int GetCoolTime(ref int piMax)
|
public int GetCoolTime(ref int piMax)
|
||||||
{
|
{
|
||||||
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
|
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
|
||||||
return pHost ? pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_TOWNSCROLL, ref piMax) : 0;
|
return pHost ? pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_TOWNSCROLL, out piMax) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override string GetNormalDesc(bool bRepair)
|
protected override string GetNormalDesc(bool bRepair)
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ namespace PerfectWorld.Scripts.Managers
|
|||||||
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
|
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
|
||||||
if (!pHost)
|
if (!pHost)
|
||||||
return 0;
|
return 0;
|
||||||
int iTime = pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_TOWNSCROLL, ref piMax);
|
int iTime = pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_TOWNSCROLL, out piMax);
|
||||||
return iTime;
|
return iTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ namespace PerfectWorld.Scripts.Managers
|
|||||||
protected WEAPON_MAJOR_TYPE m_pDBMajorType;
|
protected WEAPON_MAJOR_TYPE m_pDBMajorType;
|
||||||
protected WEAPON_SUB_TYPE m_pDBSubType;
|
protected WEAPON_SUB_TYPE m_pDBSubType;
|
||||||
protected WEAPON_ESSENCE m_pDBEssence;
|
protected WEAPON_ESSENCE m_pDBEssence;
|
||||||
|
public WEAPON_ESSENCE GetDBEssence() { return m_pDBEssence; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Constructor for weapon item (cac loai vu khi)
|
/// Constructor for weapon item (cac loai vu khi)
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ namespace BrewMonster
|
|||||||
protected ROLEBASICPROP m_BasicProps;
|
protected ROLEBASICPROP m_BasicProps;
|
||||||
public int m_iMoveEnv = Move_environment.MOVEENV_GROUND; // Move environment
|
public int m_iMoveEnv = Move_environment.MOVEENV_GROUND; // Move environment
|
||||||
public bool m_bWalkRun = true;
|
public bool m_bWalkRun = true;
|
||||||
|
public bool m_bInSanctuary = true;
|
||||||
public A3DAABB m_aabbServer = new A3DAABB(); // Óë·þÎñÆ÷±£³ÖÒ»ÖµÄaabb£¬ ²»ÊÜËõ·ÅÓ°Ïì
|
public A3DAABB m_aabbServer = new A3DAABB(); // Óë·þÎñÆ÷±£³ÖÒ»ÖµÄaabb£¬ ²»ÊÜËõ·ÅÓ°Ïì
|
||||||
public A3DAABB m_aabb = new A3DAABB(); // Player's aabb£¬ÓÃÓÚÏÔʾµÄaabb£¬ÊÜËõ·ÅÓ°Ïì
|
public A3DAABB m_aabb = new A3DAABB(); // Player's aabb£¬ÓÃÓÚÏÔʾµÄaabb£¬ÊÜËõ·ÅÓ°Ïì
|
||||||
public int m_iProfession; // Profession
|
public int m_iProfession; // Profession
|
||||||
@@ -261,6 +262,11 @@ namespace BrewMonster
|
|||||||
return (m_dwStates & PlayerNPCState.GP_STATE_INVISIBLE) != 0;
|
return (m_dwStates & PlayerNPCState.GP_STATE_INVISIBLE) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool IsInSanctuary()
|
||||||
|
{
|
||||||
|
return m_bInSanctuary;
|
||||||
|
}
|
||||||
|
|
||||||
public bool IsValidAction(int iIndex)
|
public bool IsValidAction(int iIndex)
|
||||||
{
|
{
|
||||||
return (iIndex >= 0 && iIndex < (int)PLAYER_ACTION_TYPE.ACT_MAX) ? true : false;
|
return (iIndex >= 0 && iIndex < (int)PLAYER_ACTION_TYPE.ACT_MAX) ? true : false;
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ public class CECNPCServer : CECNPC
|
|||||||
m_TaskIcon = IconTaskType.QI_NONE;
|
m_TaskIcon = IconTaskType.QI_NONE;
|
||||||
uint taskFlag = 0;
|
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)
|
if (m_pDBEssence.Value.id_task_in_service != 0)
|
||||||
{
|
{
|
||||||
DATA_TYPE dt = DATA_TYPE.DT_INVALID;
|
DATA_TYPE dt = DATA_TYPE.DT_INVALID;
|
||||||
@@ -243,9 +243,6 @@ public class CECNPCServer : CECNPC
|
|||||||
uint idTask = outService.id_tasks[i];
|
uint idTask = outService.id_tasks[i];
|
||||||
if (idTask <= 0)
|
if (idTask <= 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
BMLogger.Log($"[UpdateCurTaskIcon] Check OUT task {idTask}, CanShow={pTask.CanShowTask(idTask)}, CanDeliver={pTask.CanDeliverTask(idTask)}");
|
|
||||||
|
|
||||||
if (!pTask.CanShowTask(idTask))
|
if (!pTask.CanShowTask(idTask))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@@ -258,7 +255,6 @@ public class CECNPCServer : CECNPC
|
|||||||
if (pTaskTemp.IsKeyTask())
|
if (pTaskTemp.IsKeyTask())
|
||||||
{
|
{
|
||||||
m_TaskIcon = IconTaskType.QI_OUT_K;
|
m_TaskIcon = IconTaskType.QI_OUT_K;
|
||||||
BMLogger.Log($"[UpdateCurTaskIcon] Set icon QI_OUT_K for task {idTask}");
|
|
||||||
UpdateTaskIconUI();
|
UpdateTaskIconUI();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -307,7 +303,7 @@ public class CECNPCServer : CECNPC
|
|||||||
else if ((taskFlag & TASK_CANNOTGET) != 0)
|
else if ((taskFlag & TASK_CANNOTGET) != 0)
|
||||||
m_TaskIcon = IconTaskType.QI_OUT_N;
|
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();
|
UpdateTaskIconUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1459,6 +1459,14 @@ namespace CSNetwork.S2CCommand
|
|||||||
public int idItem;
|
public int idItem;
|
||||||
public uint dwCount;
|
public uint dwCount;
|
||||||
}
|
}
|
||||||
|
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||||
|
public struct EmbedCONTENT
|
||||||
|
{
|
||||||
|
public ushort wStoneIdx;
|
||||||
|
public ushort wEquipIdx;
|
||||||
|
public int tidStone;
|
||||||
|
public int tidEquip;
|
||||||
|
}
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||||
public struct SevLearnSkillCONTENT
|
public struct SevLearnSkillCONTENT
|
||||||
@@ -1574,14 +1582,14 @@ namespace CSNetwork.S2CCommand
|
|||||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||||
public struct cmd_embed_item
|
public struct cmd_embed_item
|
||||||
{
|
{
|
||||||
public int chip_idx;
|
public byte chip_idx;
|
||||||
public int equip_idx;
|
public byte equip_idx;
|
||||||
}
|
}
|
||||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||||
public struct cmd_get_item_info
|
public struct cmd_get_item_info
|
||||||
{
|
{
|
||||||
public byte byPackage;
|
public byte byPackage;
|
||||||
public int bySlot;
|
public byte bySlot;
|
||||||
}
|
}
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ using BrewMonster;
|
|||||||
using CSNetwork.GPDataType;
|
using CSNetwork.GPDataType;
|
||||||
using CSNetwork.S2CCommand;
|
using CSNetwork.S2CCommand;
|
||||||
using System;
|
using System;
|
||||||
|
using System.IO;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@@ -825,6 +826,25 @@ namespace CSNetwork.C2SCommand
|
|||||||
return SerializeCommand(CommandID.USE_ITEM, pCmd);
|
return SerializeCommand(CommandID.USE_ITEM, pCmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Octets CreateUseItemWithTarget(byte byPackage, byte bySlot, int tid, byte byPVPMask)
|
||||||
|
{
|
||||||
|
using (var stream = new MemoryStream())
|
||||||
|
using (var writer = new BinaryWriter(stream))
|
||||||
|
{
|
||||||
|
// Write command header
|
||||||
|
writer.Write((ushort)CommandID.USE_ITEM_T);
|
||||||
|
|
||||||
|
// Write cmd_use_item structure
|
||||||
|
writer.Write(byPackage); // where
|
||||||
|
writer.Write((byte)1); // byCount (always 1 for target items)
|
||||||
|
writer.Write((ushort)bySlot); // index
|
||||||
|
writer.Write(tid); // item_id
|
||||||
|
writer.Write(byPVPMask); // pvp_mask
|
||||||
|
|
||||||
|
return new Octets(stream.ToArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static Octets CreateGivePresentCmd(int roleid, int mail_id, int goods_id, int goods_index, int goods_slot)
|
public static Octets CreateGivePresentCmd(int roleid, int mail_id, int goods_id, int goods_index, int goods_slot)
|
||||||
{
|
{
|
||||||
cmd_player_give_present pCmd = new cmd_player_give_present();
|
cmd_player_give_present pCmd = new cmd_player_give_present();
|
||||||
@@ -874,20 +894,19 @@ namespace CSNetwork.C2SCommand
|
|||||||
pCmd.faction_id = faction_id;
|
pCmd.faction_id = faction_id;
|
||||||
return SerializeCommand(CommandID.QUERY_MAFIA_PVP_INFO, pCmd);
|
return SerializeCommand(CommandID.QUERY_MAFIA_PVP_INFO, pCmd);
|
||||||
}
|
}
|
||||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
|
||||||
public struct EmbedCONTENT
|
|
||||||
{
|
|
||||||
public ushort wStoneIdx;
|
|
||||||
public ushort wEquipIdx;
|
|
||||||
public int tidStone;
|
|
||||||
public int tidEquip;
|
|
||||||
}
|
|
||||||
public static Octets CreateNPCSevEmbedCmd(
|
public static Octets CreateNPCSevEmbedCmd(
|
||||||
ushort wStoneIdx,
|
ushort wStoneIdx,
|
||||||
ushort wEquipIdx,
|
ushort wEquipIdx,
|
||||||
int tidStone,
|
int tidStone,
|
||||||
int tidEquip)
|
int tidEquip)
|
||||||
{
|
{
|
||||||
|
// cmd_sevnpc_serve
|
||||||
|
cmd_sevnpc_serve cmd = new cmd_sevnpc_serve
|
||||||
|
{
|
||||||
|
service_type = (int)NPC_service_type.GP_NPCSEV_EMBED,
|
||||||
|
len = (uint)Marshal.SizeOf<EmbedCONTENT>()
|
||||||
|
};
|
||||||
// CONTENT
|
// CONTENT
|
||||||
EmbedCONTENT content = new EmbedCONTENT
|
EmbedCONTENT content = new EmbedCONTENT
|
||||||
{
|
{
|
||||||
@@ -896,26 +915,19 @@ namespace CSNetwork.C2SCommand
|
|||||||
tidStone = tidStone,
|
tidStone = tidStone,
|
||||||
tidEquip = tidEquip
|
tidEquip = tidEquip
|
||||||
};
|
};
|
||||||
|
|
||||||
// cmd_sevnpc_serve
|
|
||||||
cmd_sevnpc_serve cmd = new cmd_sevnpc_serve
|
|
||||||
{
|
|
||||||
service_type = (int)NPC_service_type.GP_NPCSEV_EMBED,
|
|
||||||
len = (uint)Marshal.SizeOf<EmbedCONTENT>()
|
|
||||||
};
|
|
||||||
|
|
||||||
return SerializeCommand(
|
return SerializeCommand(
|
||||||
CommandID.USE_ITEM,
|
CommandID.SEVNPC_SERVE,
|
||||||
cmd,
|
cmd,
|
||||||
content
|
content
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
public static Octets CreateGetItemInfoCmd(byte byPackage, int bySlot)
|
public static Octets CreateGetItemInfoCmd(byte byPackage, byte bySlot)
|
||||||
{
|
{
|
||||||
cmd_get_item_info pCmd = new cmd_get_item_info();
|
cmd_get_item_info pCmd = new cmd_get_item_info();
|
||||||
pCmd.byPackage = byPackage;
|
pCmd.byPackage = byPackage;
|
||||||
pCmd.bySlot = bySlot;
|
pCmd.bySlot = bySlot;
|
||||||
return SerializeCommand(CommandID.QUERY_MAFIA_PVP_INFO, pCmd);
|
return SerializeCommand(CommandID.GET_ITEM_INFO, pCmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Octets CreateSetStatusPtCmd(int vitality, int energy, int strength, int agility)
|
public static Octets CreateSetStatusPtCmd(int vitality, int energy, int strength, int agility)
|
||||||
|
|||||||
@@ -872,12 +872,30 @@ namespace CSNetwork.GPDataType
|
|||||||
public int line;
|
public int line;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||||
|
public struct cmd_host_use_item
|
||||||
|
{
|
||||||
|
public byte byPackage;
|
||||||
|
public byte bySlot;
|
||||||
|
public int item_id;
|
||||||
|
public ushort use_count;
|
||||||
|
}
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||||
public struct cmd_matter_pickup
|
public struct cmd_matter_pickup
|
||||||
{
|
{
|
||||||
public int matter_id;
|
public int matter_id;
|
||||||
public int who;
|
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)]
|
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||||
public struct A3DVECTOR3
|
public struct A3DVECTOR3
|
||||||
|
|||||||
@@ -474,6 +474,13 @@ namespace CSNetwork
|
|||||||
SendProtocol(gamedatasendRequest);
|
SendProtocol(gamedatasendRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void c2s_SendCmdUseItemWithTarget(byte byPackage, byte bySlot, int tid, byte byPVPMask)
|
||||||
|
{
|
||||||
|
gamedatasend gamedatasend = new gamedatasend();
|
||||||
|
gamedatasend.Data = C2SCommandFactory.CreateUseItemWithTarget(byPackage, bySlot, tid, byPVPMask);
|
||||||
|
SendProtocol(gamedatasend);
|
||||||
|
}
|
||||||
|
|
||||||
public void RequestOwnItemInfoAsync(
|
public void RequestOwnItemInfoAsync(
|
||||||
byte byPackage,
|
byte byPackage,
|
||||||
byte bySlot,
|
byte bySlot,
|
||||||
@@ -795,11 +802,15 @@ namespace CSNetwork
|
|||||||
|
|
||||||
if (pCmd.iMessage != 0)
|
if (pCmd.iMessage != 0)
|
||||||
{
|
{
|
||||||
// string szMsg = m_ErrorMsgs.GetWideString(pCmd.iMessage);
|
// string szMsg = m_ErrorMsgs.GetWideString(pCmd.iMessage);
|
||||||
// if (string.IsNullOrEmpty(szMsg))
|
// if (string.IsNullOrEmpty(szMsg))
|
||||||
// BMLogger.LogError("SERVER - unknown error !");
|
// BMLogger.LogError("SERVER - unknown error !");
|
||||||
//else if (pCmd.iMessage != 2)
|
// else
|
||||||
//g_pGame.GetGameRun().AddChatMessage(szMsg, GP_CHAT_MISC);
|
// {
|
||||||
|
// BMLogger.LogError("SERVER - error: "+szMsg);
|
||||||
|
// }
|
||||||
|
// else if (pCmd.iMessage != 2)
|
||||||
|
// g_pGame.GetGameRun().AddChatMessage(szMsg, GP_CHAT_MISC);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pCmd.iMessage == 2)
|
if (pCmd.iMessage == 2)
|
||||||
@@ -957,6 +968,9 @@ namespace CSNetwork
|
|||||||
case CommandID.SET_COOLDOWN:
|
case CommandID.SET_COOLDOWN:
|
||||||
EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_SETCOOLTIME, MANAGER_INDEX.MAN_PLAYER, 0, pDataBuf, pCmdHeader);
|
EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_SETCOOLTIME, MANAGER_INDEX.MAN_PLAYER, 0, pDataBuf, pCmdHeader);
|
||||||
break;
|
break;
|
||||||
|
case CommandID.HOST_USE_ITEM:
|
||||||
|
EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_USEITEM, MANAGER_INDEX.MAN_PLAYER, 0, pDataBuf, pCmdHeader);
|
||||||
|
break;
|
||||||
case CommandID.COMBO_SKILL_PREPARE:
|
case CommandID.COMBO_SKILL_PREPARE:
|
||||||
EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_COMBO_SKILL_PREPARE, MANAGER_INDEX.MAN_PLAYER, 0, pDataBuf, pCmdHeader, dwDataSize);
|
EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_COMBO_SKILL_PREPARE, MANAGER_INDEX.MAN_PLAYER, 0, pDataBuf, pCmdHeader, dwDataSize);
|
||||||
break;
|
break;
|
||||||
@@ -1758,7 +1772,7 @@ namespace CSNetwork
|
|||||||
gamedatasend.Data = C2SCommandFactory.CreateNPCSevEmbedCmd(wStoneIdx, wEquipIdx, tidStone, tidEquip);
|
gamedatasend.Data = C2SCommandFactory.CreateNPCSevEmbedCmd(wStoneIdx, wEquipIdx, tidStone, tidEquip);
|
||||||
SendProtocol(gamedatasend);
|
SendProtocol(gamedatasend);
|
||||||
}
|
}
|
||||||
public void c2s_SendCmdGetItemInfo(byte byPackage, int bySlot)
|
public void c2s_SendCmdGetItemInfo(byte byPackage, byte bySlot)
|
||||||
{
|
{
|
||||||
gamedatasend gamedatasend = new gamedatasend();
|
gamedatasend gamedatasend = new gamedatasend();
|
||||||
gamedatasend.Data = C2SCommandFactory.CreateGetItemInfoCmd(byPackage, bySlot);
|
gamedatasend.Data = C2SCommandFactory.CreateGetItemInfoCmd(byPackage, bySlot);
|
||||||
|
|||||||
@@ -235,6 +235,10 @@ namespace BrewMonster.Network
|
|||||||
{
|
{
|
||||||
Instance._gameSession.RequestReviveByPlayer();
|
Instance._gameSession.RequestReviveByPlayer();
|
||||||
}
|
}
|
||||||
|
public static void c2s_SendCmdUseItemWithTarget(byte byPackage, byte bySlot, int tid, byte byPVPMask)
|
||||||
|
{
|
||||||
|
Instance._gameSession.c2s_SendCmdUseItemWithTarget(byPackage, bySlot, tid, byPVPMask);
|
||||||
|
}
|
||||||
|
|
||||||
public void RequestMallShopping(uint count, int good_id, int good_index, int good_pos)
|
public void RequestMallShopping(uint count, int good_id, int good_index, int good_pos)
|
||||||
{
|
{
|
||||||
@@ -457,7 +461,7 @@ namespace BrewMonster.Network
|
|||||||
{
|
{
|
||||||
Instance._gameSession.c2s_SendCmdNPCSevEmbed(wStoneIdx, wEquipIdx, tidStone, tidEquip);
|
Instance._gameSession.c2s_SendCmdNPCSevEmbed(wStoneIdx, wEquipIdx, tidStone, tidEquip);
|
||||||
}
|
}
|
||||||
public static void c2s_CmdGetItemInfo(byte byPackage, int bySlot)
|
public static void c2s_CmdGetItemInfo(byte byPackage, byte bySlot)
|
||||||
{
|
{
|
||||||
Instance._gameSession.c2s_SendCmdGetItemInfo(byPackage, bySlot);
|
Instance._gameSession.c2s_SendCmdGetItemInfo(byPackage, bySlot);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -787,6 +787,17 @@ namespace BrewMonster
|
|||||||
return new CECShortcut();
|
return new CECShortcut();
|
||||||
}
|
}
|
||||||
public virtual bool Execute() { return true; }
|
public virtual bool Execute() { return true; }
|
||||||
|
|
||||||
|
public virtual int GetCoolTime(ref int piMax)
|
||||||
|
{
|
||||||
|
piMax = 0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual string GetIconFile()
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CECSCCommand : CECShortcut
|
public class CECSCCommand : CECShortcut
|
||||||
|
|||||||
@@ -1377,6 +1377,19 @@ namespace BrewMonster.Scripts.Task
|
|||||||
Addressables.Release(handle);
|
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)]
|
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||||
|
|||||||
@@ -1686,23 +1686,23 @@ namespace BrewMonster.Scripts.Task
|
|||||||
public void TakeAwayTaskItem(uint ulTemplId, uint ulNum) {}
|
public void TakeAwayTaskItem(uint ulTemplId, uint ulNum) {}
|
||||||
public void TakeAwayGold(uint ulNum) {}
|
public void TakeAwayGold(uint ulNum) {}
|
||||||
public void TakeAwayFactionConsumeContrib(int ulNum){}
|
public void TakeAwayFactionConsumeContrib(int ulNum){}
|
||||||
public void OnGiveupTask(int iTaskID)
|
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)
|
|
||||||
{
|
{
|
||||||
UnityEngine.Debug.Log($"[CECTaskInterface] OnGiveupTask: Task {iTaskID} is force navigate task, triggering EM_END");
|
UnityEngine.Debug.Log($"[CECTaskInterface] OnGiveupTask: TaskID={iTaskID}");
|
||||||
// Trigger navigation end event // 触发导航结束事件
|
ATaskTempl pTempl = GetTaskTemplMan().GetTaskTemplByID((uint)iTaskID);
|
||||||
m_pHost.OnNaviageEvent(iTaskID, (int)CECNavigateCtrl.NavigateEvent.EM_END);
|
if (pTempl != null &&
|
||||||
SetForceNavigateFinishFlag(false);
|
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文本点击 - 如果是强制导航任务则触发导航
|
// 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中点击任务名称/链接时调用
|
// 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)
|
// void CECTaskInterface::UpdateTaskEmotionAction(unsigned int task_id)
|
||||||
// {
|
// {
|
||||||
// if (m_emotionTask.find(task_id)!=m_emotionTask.end())
|
// if (m_emotionTask.find(task_id)!=m_emotionTask.end())
|
||||||
|
|||||||
@@ -550,12 +550,26 @@ namespace BrewMonster.Scripts.Task
|
|||||||
// CECUIHelper.OnTaskProcessUpdated(pNotify.task);
|
// CECUIHelper.OnTaskProcessUpdated(pNotify.task);
|
||||||
}
|
}
|
||||||
// Handle task completion or give up notification
|
// 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
|
// TODO: CECUIHelper.OnTaskCompleted not found; implement UI update if needed
|
||||||
// CECUIHelper.OnTaskCompleted(pNotify.task);
|
// 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
|
// Validate template was found
|
||||||
if (pTempl == null)
|
if (pTempl == null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1706,14 +1706,14 @@ namespace BrewMonster.Scripts.Task
|
|||||||
/* ÈÎÎñ½áÊøºóµÄ½±Àø */
|
/* ÈÎÎñ½áÊøºóµÄ½±Àø */
|
||||||
|
|
||||||
public uint m_ID => m_FixedData.m_ID;
|
public uint m_ID => m_FixedData.m_ID;
|
||||||
uint m_ulAwardType_S => m_FixedData.m_ulAwardType_S;
|
public uint GetAwardType_S() => m_FixedData.m_ulAwardType_S;
|
||||||
uint m_ulAwardType_F => m_FixedData.m_ulAwardType_F;
|
public uint GetAwardType_F() => m_FixedData.m_ulAwardType_F;
|
||||||
// ʱ¼äÏÞÖÆ
|
// ʱ¼äÏÞÖÆ
|
||||||
uint m_ulTimeLimit => m_FixedData.m_ulTimeLimit;
|
uint m_ulTimeLimit => m_FixedData.m_ulTimeLimit;
|
||||||
|
|
||||||
/* ÆÕͨºÍ°´Ã¿¸ö·½Ê½ */
|
/* ÆÕͨºÍ°´Ã¿¸ö·½Ê½ */
|
||||||
AWARD_DATA m_Award_S => m_FixedData.m_Award_S; /* ³É¹¦ */
|
public 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_F => m_FixedData.m_Award_F; /* ʧ°Ü */
|
||||||
/* ʱ¼ä±ÈÀý·½Ê½ */
|
/* ʱ¼ä±ÈÀý·½Ê½ */
|
||||||
AWARD_RATIO_SCALE m_AwByRatio_S => m_FixedData.m_AwByRatio_S;
|
AWARD_RATIO_SCALE m_AwByRatio_S => m_FixedData.m_AwByRatio_S;
|
||||||
AWARD_RATIO_SCALE m_AwByRatio_F => m_FixedData.m_AwByRatio_F;
|
AWARD_RATIO_SCALE m_AwByRatio_F => m_FixedData.m_AwByRatio_F;
|
||||||
@@ -4561,7 +4561,7 @@ namespace BrewMonster.Scripts.Task
|
|||||||
uint ulTaskTime,
|
uint ulTaskTime,
|
||||||
uint ulCurTime)
|
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)
|
switch (ulType)
|
||||||
{
|
{
|
||||||
case (uint)TaskAwardType.enumTATNormal:
|
case (uint)TaskAwardType.enumTATNormal:
|
||||||
@@ -4606,7 +4606,7 @@ namespace BrewMonster.Scripts.Task
|
|||||||
ref AWARD_DATA pAward,
|
ref AWARD_DATA pAward,
|
||||||
ActiveTaskEntry pEntry)
|
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;
|
uint ulCount = (uint)pTask.GetTaskItemCount(p.m_ulItemId), i;
|
||||||
|
|
||||||
for (i = 0; i < p.m_ulScales; 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_pNextSibling!= null) NextSiblingID = m_pNextSibling.m_ID;
|
||||||
if(m_pFirstChild!= null) FirstChildID = m_pFirstChild.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
|
||||||
@@ -36,7 +36,7 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
|
|
||||||
// Keep original macro as constant for array sizing
|
// Keep original macro as constant for array sizing
|
||||||
public const int CDLGTASK_AWARDITEM_MAX = 8;
|
public const int CDLGTASK_AWARDITEM_MAX = 8;
|
||||||
|
public const int TickRate = 1000;
|
||||||
// ===== Nested structs (converted from C++), keep naming, public with explicit layout =====
|
// ===== 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_NormalQuest; // PAUISTILLIMAGEBUTTON -> Button
|
||||||
[SerializeField] protected Button m_pBtn_SearchQuest; // PAUISTILLIMAGEBUTTON -> Button
|
[SerializeField] protected Button m_pBtn_SearchQuest; // PAUISTILLIMAGEBUTTON -> Button
|
||||||
[SerializeField] protected Button m_pBtn_HaveQuest; // 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 Button m_pBtn_FinishTask; // PAUISTILLIMAGEBUTTON -> Button
|
||||||
[SerializeField] protected TMP_Text m_pTxt_BaseAward; // PAUILABEL -> TMP_Text
|
[SerializeField] protected TMP_Text m_pTxt_BaseAward; // PAUILABEL -> TMP_Text
|
||||||
|
|
||||||
@@ -126,7 +126,7 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
|
|
||||||
// [中文] 目标坐标集合
|
// [中文] 目标坐标集合
|
||||||
// [English] Target coordinates collection
|
// [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
|
private static string m_strTraceName = string.Empty; // ACString -> string
|
||||||
|
|
||||||
@@ -163,10 +163,16 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
OnEventLButtonDown_Tv_Quest(evt.Data);
|
OnEventLButtonDown_Tv_Quest(evt.Data);
|
||||||
});
|
});
|
||||||
|
|
||||||
m_pBtn_HaveQuest.onClick.AddListener(OnCommand_havequest);
|
m_pBtn_HaveQuest.onClick.AddListener(OnCommand_havequest);
|
||||||
m_pBtn_SearchQuest.onClick.AddListener(OnCommand_searchquest);
|
m_pBtn_SearchQuest.onClick.AddListener(OnCommand_searchquest);
|
||||||
m_pBtn_Abandon.onClick.AddListener(OnCommand_abandon);
|
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转换
|
// 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
|
// C++ uses WM_LBUTTONDOWN event, we use EventTrigger PointerClick // C++使用WM_LBUTTONDOWN事件,我们使用EventTrigger PointerClick
|
||||||
if (m_pTxt_QuestItem != null)
|
if (m_pTxt_QuestItem != null)
|
||||||
@@ -329,10 +335,14 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
// C++: ChangeFocus(NULL); // C++: ChangeFocus(NULL);
|
// C++: ChangeFocus(NULL); // C++: ChangeFocus(NULL);
|
||||||
// TODO: Implement ChangeFocus if needed // TODO: 如果需要,实现ChangeFocus
|
// 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()
|
private new void Update()
|
||||||
{
|
{
|
||||||
Tick();
|
Tick();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -347,7 +357,6 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
// PAUIOBJECT pObj = GetDlgItem("Img_New");
|
// PAUIOBJECT pObj = GetDlgItem("Img_New");
|
||||||
// if (pObj && IsShow()) pObj->Show(false);
|
// if (pObj && IsShow()) pObj->Show(false);
|
||||||
// if(GetDlgItem("Lab_Trace")) GetDlgItem("Lab_Trace")->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);
|
m_pBtn_Abandon.gameObject.SetActive(false);
|
||||||
Btn_Focus.gameObject.SetActive(false);
|
Btn_Focus.gameObject.SetActive(false);
|
||||||
Lab_QuestNO.gameObject.SetActive(false);
|
Lab_QuestNO.gameObject.SetActive(false);
|
||||||
@@ -360,7 +369,6 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
{
|
{
|
||||||
m_iType = 0;
|
m_iType = 0;
|
||||||
// TODO: if(GetDlgItem("Lab_Trace")) GetDlgItem("Lab_Trace")->Show(true);
|
// 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);
|
m_pBtn_Abandon.gameObject.SetActive(true);
|
||||||
Btn_Focus.gameObject.SetActive(true);
|
Btn_Focus.gameObject.SetActive(true);
|
||||||
Lab_QuestNO.gameObject.SetActive(true);
|
Lab_QuestNO.gameObject.SetActive(true);
|
||||||
@@ -369,8 +377,123 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
m_pBtn_HaveQuest.interactable = false;
|
m_pBtn_HaveQuest.interactable = false;
|
||||||
UpdateTask();
|
UpdateTask();
|
||||||
}
|
}
|
||||||
public void OnCommand_showtrace(string szCommand) {}
|
public void OnCommand_showtrace(string szCommand,bool state) {
|
||||||
public void OnCommand_focus(string szCommand) {}
|
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) {
|
||||||
|
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()
|
public void OnCommand_abandon()
|
||||||
{
|
{
|
||||||
// [中文] 放弃任务:发送通知到服务器 // [English] Abandon task: send notification to server
|
// [中文] 放弃任务:发送通知到服务器 // [English] Abandon task: send notification to server
|
||||||
@@ -398,6 +521,14 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
return;
|
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
|
// Get the task template to find the top-level task
|
||||||
ATaskTemplMan pMan = EC_Game.GetTaskTemplateMan();
|
ATaskTemplMan pMan = EC_Game.GetTaskTemplateMan();
|
||||||
ATaskTempl pTempl = pMan?.GetTaskTemplByID(selectedTaskId);
|
ATaskTempl pTempl = pMan?.GetTaskTemplByID(selectedTaskId);
|
||||||
@@ -411,8 +542,31 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
ATaskTempl pTopTask = pTempl.GetTopTask();
|
ATaskTempl pTopTask = pTempl.GetTopTask();
|
||||||
uint topTaskId = pTopTask != null ? pTopTask.GetID() : selectedTaskId;
|
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
|
// Send notification to server to abandon the currently selected task
|
||||||
TaskClient._notify_svr(pTask, (byte)ClientNotificationConstants.TASK_CLT_NOTIFY_CHECK_GIVEUP, (ushort)topTaskId);
|
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_CANCEL(string szCommand) {}
|
||||||
public void OnCommand_TreasureMap(string szCommand) {}
|
public void OnCommand_TreasureMap(string szCommand) {}
|
||||||
@@ -451,6 +605,7 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
m_idSelTask = idTask;
|
m_idSelTask = idTask;
|
||||||
|
Debug.Log($"[DlgTask] OnEventLButtonDown_Tv_Quest: {idTask}");
|
||||||
}
|
}
|
||||||
// void OnEventMouseMove_Txt_QuestItem(WPARAM wParam, LPARAM lParam, AUIObject *pObj);
|
// void OnEventMouseMove_Txt_QuestItem(WPARAM wParam, LPARAM lParam, AUIObject *pObj);
|
||||||
// void OnEventLButtonDown_Txt_QuestItem(WPARAM wParam, LPARAM lParam, AUIObject *pObj);
|
// void OnEventLButtonDown_Txt_QuestItem(WPARAM wParam, LPARAM lParam, AUIObject *pObj);
|
||||||
@@ -539,7 +694,6 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
}
|
}
|
||||||
Color result;
|
Color result;
|
||||||
EC_Utility.STRING_TO_A3DCOLOR(GetStringFromTable(idType - (int)ENUM_TASK_TYPE.enumTTDaily + 3121), out 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 result;
|
||||||
// return UnityEngine.Color.white;
|
// return UnityEngine.Color.white;
|
||||||
}
|
}
|
||||||
@@ -552,6 +706,8 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
//
|
//
|
||||||
private bool Tick()
|
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.
|
// 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.
|
// This is throttled to avoid rebuilding large task lists every frame.
|
||||||
if (m_iType == 1)
|
if (m_iType == 1)
|
||||||
@@ -572,7 +728,6 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
|
|
||||||
// Rebuild available task list according to current time-based prerequisites.
|
// Rebuild available task list according to current time-based prerequisites.
|
||||||
SearchForTask(-1);
|
SearchForTask(-1);
|
||||||
|
|
||||||
// Restore selection best-effort (TaskTreeView selection is driven by EventBus).
|
// Restore selection best-effort (TaskTreeView selection is driven by EventBus).
|
||||||
if (_pendingReselectTaskId != 0u)
|
if (_pendingReselectTaskId != 0u)
|
||||||
{
|
{
|
||||||
@@ -652,8 +807,146 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
|
|
||||||
return true;
|
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)
|
public bool UpdateTask(int idTask = -1)
|
||||||
{
|
{
|
||||||
// Only rebuild the list if viewing "Have Quest" (m_iType == 0)
|
// Only rebuild the list if viewing "Have Quest" (m_iType == 0)
|
||||||
@@ -975,7 +1268,36 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
// void OnTaskPush(); // ���µĿɽ�����
|
// void OnTaskPush(); // ���µĿɽ�����
|
||||||
// void OnTaskProcessUpdated(int idTask); // �ѽ�����������Ҫ��ǰ��ʾ��
|
// void OnTaskProcessUpdated(int idTask); // �ѽ�����������Ҫ��ǰ��ʾ��
|
||||||
// void OnTaskItemGained(int idItem);
|
// 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
|
#endregion
|
||||||
|
|
||||||
#region PRIVATE METHODS
|
#region PRIVATE METHODS
|
||||||
@@ -1047,6 +1369,7 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
// virtual bool OnInitDialog();
|
// virtual bool OnInitDialog();
|
||||||
void OnShowDialog()
|
void OnShowDialog()
|
||||||
{
|
{
|
||||||
|
OnCommand_showtrace(null,m_bShowTrace);
|
||||||
if (m_idSelTask != 0)
|
if (m_idSelTask != 0)
|
||||||
UpdateTask();
|
UpdateTask();
|
||||||
}
|
}
|
||||||
@@ -1117,7 +1440,6 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
ATaskTempl childTempl = pMan.GetTaskTemplByID(childId);
|
ATaskTempl childTempl = pMan.GetTaskTemplByID(childId);
|
||||||
Color disPlayColor=Color.white;
|
Color disPlayColor=Color.white;
|
||||||
string text = childTempl != null ? GetTaskNameWithColor(childTempl,out disPlayColor) : $"Task {childId}";
|
string text = childTempl != null ? GetTaskNameWithColor(childTempl,out disPlayColor) : $"Task {childId}";
|
||||||
Debug.Log("[DlgTask] InsertActiveTaskChildren text: " + text);
|
|
||||||
var pItem = pTreeTask.InsertItem(text, pRoot, null);
|
var pItem = pTreeTask.InsertItem(text, pRoot, null);
|
||||||
pItem.SetItemTextColor(disPlayColor);
|
pItem.SetItemTextColor(disPlayColor);
|
||||||
if (pItem != null)
|
if (pItem != null)
|
||||||
@@ -1337,7 +1659,7 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
strText += sb.ToString();
|
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));
|
var ts = System.TimeSpan.FromSeconds(System.Math.Max(0, nSec));
|
||||||
string label = string.IsNullOrEmpty(desc) ? string.Empty : desc;
|
string label = string.IsNullOrEmpty(desc) ? string.Empty : desc;
|
||||||
@@ -1498,7 +1820,7 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
{
|
{
|
||||||
// Resolve monster name
|
// Resolve monster name
|
||||||
// 解析怪物名称
|
// 解析怪物名称
|
||||||
string strName = "^00FF00????^FFFFFF";
|
string strName = "<color=#00FF00>????<color=#FFFFFF>";
|
||||||
var edm = BrewMonster.ElementDataManProvider.GetElementDataMan();
|
var edm = BrewMonster.ElementDataManProvider.GetElementDataMan();
|
||||||
if (edm != null && edm.essence_id_data_type_map.TryGetValue(id, out var dtype)
|
if (edm != null && edm.essence_id_data_type_map.TryGetValue(id, out var dtype)
|
||||||
&& dtype == DATA_TYPE.DT_MONSTER_ESSENCE
|
&& dtype == DATA_TYPE.DT_MONSTER_ESSENCE
|
||||||
@@ -1557,7 +1879,7 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
if (tsi.m_ulReachReincarnation != 0)
|
if (tsi.m_ulReachReincarnation != 0)
|
||||||
{
|
{
|
||||||
int iLevel = GetReincarnationCount(pHost);
|
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)
|
if (iLevel < (int)tsi.m_ulReachReincarnation)
|
||||||
{
|
{
|
||||||
strHint += Format(GetStringFromTable(11144), iLevel);
|
strHint += Format(GetStringFromTable(11144), iLevel);
|
||||||
@@ -1571,7 +1893,7 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
if (tsi.m_ulReachLevel != 0 && pHost != null)
|
if (tsi.m_ulReachLevel != 0 && pHost != null)
|
||||||
{
|
{
|
||||||
int iLevel = pHost.GetBasicProps().iLevel;
|
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)
|
if (iLevel < (int)tsi.m_ulReachLevel)
|
||||||
{
|
{
|
||||||
strHint += Format(GetStringFromTable(11143), iLevel);
|
strHint += Format(GetStringFromTable(11143), iLevel);
|
||||||
@@ -1585,7 +1907,7 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
if (tsi.m_ulReachRealm != 0 && pHost != null)
|
if (tsi.m_ulReachRealm != 0 && pHost != null)
|
||||||
{
|
{
|
||||||
int iLevel = GetRealmLevel(pHost);
|
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)
|
if (iLevel < (int)tsi.m_ulReachRealm)
|
||||||
{
|
{
|
||||||
strHint += Format(GetStringFromTable(11145), iLevel);
|
strHint += Format(GetStringFromTable(11145), iLevel);
|
||||||
|
|||||||
@@ -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
|
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")]
|
[Header("DEBUG")]
|
||||||
[SerializeField] private TaskTreeViewItem _currentSelectedItem = null;
|
[SerializeField] private TaskTreeViewItem _currentSelectedItem = null;
|
||||||
[SerializeField] private TaskTreeViewItem[] m_aTreeViewItems;
|
[SerializeField] private TaskTreeViewItem[] m_aTreeViewItems;
|
||||||
|
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
@@ -27,6 +30,8 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
|
|
||||||
public uint GetItemData(TaskTreeViewItem item)
|
public uint GetItemData(TaskTreeViewItem item)
|
||||||
{
|
{
|
||||||
|
if (item == null)
|
||||||
|
return 0;
|
||||||
return item.GetItemData();
|
return item.GetItemData();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,8 +56,22 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
|
|
||||||
public TaskTreeViewItem InsertItem(string text, TaskTreeViewItem pParent, TaskTreeViewItem pAfter)
|
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
|
// 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)
|
if(pParent != null)
|
||||||
{
|
{
|
||||||
pParent.SetLastItem(false);
|
pParent.SetLastItem(false);
|
||||||
@@ -81,7 +100,7 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
// var label = go.GetComponentInChildren<TMPro.TMP_Text>(true);
|
// var label = go.GetComponentInChildren<TMPro.TMP_Text>(true);
|
||||||
// if (label != null) label.text = text ?? string.Empty;
|
// if (label != null) label.text = text ?? string.Empty;
|
||||||
pItem.SetItemText(text);
|
pItem.SetItemText(text);
|
||||||
pItem.SetTreeLevel(pParent != null ? pParent.GetTreeLevel() + 1 : 0);
|
pItem.SetTreeLevel(treeLevel);
|
||||||
|
|
||||||
// Refresh local cache of items
|
// Refresh local cache of items
|
||||||
m_aTreeViewItems = GetComponentsInChildren<TaskTreeViewItem>(true);
|
m_aTreeViewItems = GetComponentsInChildren<TaskTreeViewItem>(true);
|
||||||
@@ -146,6 +165,7 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
void SetSelectedItem(uint idItem)
|
void SetSelectedItem(uint idItem)
|
||||||
{
|
{
|
||||||
_currentSelectedItem = GetItemByData(idItem);
|
_currentSelectedItem = GetItemByData(idItem);
|
||||||
|
Debug.Log($"[TaskTreeView] SetSelectedItem: {idItem}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RefreshLayout()
|
public void RefreshLayout()
|
||||||
|
|||||||
@@ -14,7 +14,9 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
[SerializeField] private Toggle _expandToggle;
|
[SerializeField] private Toggle _expandToggle;
|
||||||
[SerializeField] private TextOutlet _expandText;
|
[SerializeField] private TextOutlet _expandText;
|
||||||
[SerializeField] private LayoutElement _space;
|
[SerializeField] private LayoutElement _space;
|
||||||
|
[SerializeField] private Image _expandBG;
|
||||||
|
[SerializeField] private Sprite ExpandBGActive;
|
||||||
|
[SerializeField] private Sprite ExpandBGInactive;
|
||||||
[Header("DEBUG")]
|
[Header("DEBUG")]
|
||||||
[SerializeField] private uint m_uItemData;
|
[SerializeField] private uint m_uItemData;
|
||||||
[SerializeField] private int _treeLevel;
|
[SerializeField] private int _treeLevel;
|
||||||
@@ -109,7 +111,7 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
if(children[i].GetTreeLevel() == _treeLevel + 1)
|
if(children[i].GetTreeLevel() == _treeLevel + 1)
|
||||||
children[i].gameObject.SetActive(expand);
|
children[i].gameObject.SetActive(expand);
|
||||||
}
|
}
|
||||||
|
_expandBG.sprite = expand ? ExpandBGActive : ExpandBGInactive;
|
||||||
//_expandButton.gameObject.SetActive(!expand);
|
//_expandButton.gameObject.SetActive(!expand);
|
||||||
//_collapseButton.gameObject.SetActive(expand);
|
//_collapseButton.gameObject.SetActive(expand);
|
||||||
|
|
||||||
@@ -148,6 +150,7 @@ namespace BrewMonster.Scripts.Task.UI
|
|||||||
{
|
{
|
||||||
OnClick.Invoke(m_uItemData);
|
OnClick.Invoke(m_uItemData);
|
||||||
EventBus.Publish(new TaskItemClickEvent() { Data = m_uItemData });
|
EventBus.Publish(new TaskItemClickEvent() { Data = m_uItemData });
|
||||||
|
Debug.Log($"[TaskTreeViewItem] OnBtnClick: {m_uItemData}");
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnExpandBtnClicked()
|
void OnExpandBtnClicked()
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ namespace BrewMonster.UI
|
|||||||
ImportStringTable("Assets/Addressable/ingame.txt");
|
ImportStringTable("Assets/Addressable/ingame.txt");
|
||||||
ImportAuiDialogStringTable("Assets/Addressable/msgbox.txt");
|
ImportAuiDialogStringTable("Assets/Addressable/msgbox.txt");
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Translate(ushort[] str)
|
public string Translate(ushort[] str)
|
||||||
{
|
{
|
||||||
if (str == null || str.Length == 0)
|
if (str == null || str.Length == 0)
|
||||||
@@ -318,7 +318,7 @@ namespace BrewMonster.UI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var prefab = m_dialogResouce.GetPrefabDialog(pszName);
|
var prefab = m_dialogResouce.GetPrefabDialog(pszName);
|
||||||
if(prefab != null)
|
if(prefab != null)
|
||||||
{
|
{
|
||||||
var instance = GameObject.Instantiate(prefab, m_canvas.transform);
|
var instance = GameObject.Instantiate(prefab, m_canvas.transform);
|
||||||
@@ -336,7 +336,6 @@ namespace BrewMonster.UI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,11 +13,14 @@ namespace BrewMonster.UI
|
|||||||
protected uint m_dwData;
|
protected uint m_dwData;
|
||||||
protected object m_pvData;
|
protected object m_pvData;
|
||||||
protected AUIManager m_pAUIManager = null;
|
protected AUIManager m_pAUIManager = null;
|
||||||
string m_szName;
|
protected string m_szName;
|
||||||
|
|
||||||
|
private bool m_bUpdateRenderTarget = false;
|
||||||
|
|
||||||
public virtual void Show(bool value)
|
public virtual void Show(bool value)
|
||||||
{
|
{
|
||||||
gameObject.SetActive(value);
|
gameObject.SetActive(value);
|
||||||
|
m_bShow = value;
|
||||||
OnShowDialogue();
|
OnShowDialogue();
|
||||||
}
|
}
|
||||||
public string GetName()
|
public string GetName()
|
||||||
@@ -89,6 +92,182 @@ namespace BrewMonster.UI
|
|||||||
return str;
|
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()
|
public AUIManager GetAUIManager()
|
||||||
{
|
{
|
||||||
return m_pAUIManager;
|
return m_pAUIManager;
|
||||||
@@ -137,8 +316,32 @@ namespace BrewMonster.UI
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
public virtual void Release()
|
||||||
|
{
|
||||||
|
m_StringTable.Clear();
|
||||||
|
m_strDataName = "";
|
||||||
|
m_strDataPtrName = "";
|
||||||
|
m_dwData = 0;
|
||||||
|
m_pvData = null;
|
||||||
|
m_szName = "";
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>Override in dialogs that support attribute-point reset (e.g. DlgCharacter). No-op by default.</summary>
|
/// <summary>Override in dialogs that support attribute-point reset (e.g. DlgCharacter). No-op by default.</summary>
|
||||||
public virtual void ResetPoints() { }
|
public virtual void ResetPoints() { }
|
||||||
|
|
||||||
|
public virtual void UpdateRenderTarget()
|
||||||
|
{
|
||||||
|
m_bUpdateRenderTarget = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool NeedRenderTargetUpdate()
|
||||||
|
{
|
||||||
|
return m_bUpdateRenderTarget;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ResetRenderTargetFlag()
|
||||||
|
{
|
||||||
|
m_bUpdateRenderTarget = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ using PerfectWorld.Scripts.Task;
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using BrewMonster.Scripts;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.EventSystems;
|
using UnityEngine.EventSystems;
|
||||||
@@ -28,7 +29,7 @@ namespace BrewMonster
|
|||||||
|
|
||||||
[Header("Buttons and Money")]
|
[Header("Buttons and Money")]
|
||||||
[SerializeField] private TextMeshProUGUI m_TxtMoney;
|
[SerializeField] private TextMeshProUGUI m_TxtMoney;
|
||||||
[SerializeField] private Button m_BtnInstall;
|
[SerializeField] private Button m_BtnMerge;
|
||||||
[SerializeField] private Button m_BtnCancel;
|
[SerializeField] private Button m_BtnCancel;
|
||||||
|
|
||||||
[SerializeField] private Sprite khung_item;
|
[SerializeField] private Sprite khung_item;
|
||||||
@@ -38,6 +39,7 @@ namespace BrewMonster
|
|||||||
|
|
||||||
private int m_FirstInvSlot = -1;
|
private int m_FirstInvSlot = -1;
|
||||||
private int m_SecondInvSlot = -1;
|
private int m_SecondInvSlot = -1;
|
||||||
|
private int m_install_price = -1;
|
||||||
|
|
||||||
public override void Awake()
|
public override void Awake()
|
||||||
{
|
{
|
||||||
@@ -48,7 +50,22 @@ namespace BrewMonster
|
|||||||
RegisterClick(m_SlotSecondlParent, OnClickMaterialSlot);
|
RegisterClick(m_SlotSecondlParent, OnClickMaterialSlot);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnpenInstall(uint npcId)
|
public override void OnEnable()
|
||||||
|
{
|
||||||
|
base.OnEnable();
|
||||||
|
//todo need to set from other class
|
||||||
|
// SetName("Win_Enchase");
|
||||||
|
m_BtnMerge.onClick.AddListener(OnClickedMerge);
|
||||||
|
m_install_price = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnDisable()
|
||||||
|
{
|
||||||
|
base.OnDisable();
|
||||||
|
m_BtnMerge.onClick.RemoveListener(OnClickedMerge);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OpenInstall(uint npcId)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -98,9 +115,7 @@ namespace BrewMonster
|
|||||||
|
|
||||||
return list[slot];
|
return list[slot];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void RegisterDrop(Transform target, Action<PointerEventData> callback)
|
private void RegisterDrop(Transform target, Action<PointerEventData> callback)
|
||||||
{
|
{
|
||||||
var trigger = target.GetComponent<EventTrigger>();
|
var trigger = target.GetComponent<EventTrigger>();
|
||||||
@@ -156,8 +171,7 @@ namespace BrewMonster
|
|||||||
ClearMaterialSlot();
|
ClearMaterialSlot();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private EC_IvtrItem GetItemFromDrag(PointerEventData eventData)
|
private EC_IvtrItem GetItemFromDrag(PointerEventData eventData)
|
||||||
{
|
{
|
||||||
if (eventData.pointerDrag == null)
|
if (eventData.pointerDrag == null)
|
||||||
@@ -203,6 +217,7 @@ namespace BrewMonster
|
|||||||
else
|
else
|
||||||
detailedItem.GetDetailDataFromLocal();
|
detailedItem.GetDetailDataFromLocal();
|
||||||
|
|
||||||
|
m_SelectedEquip?.Freeze(false);
|
||||||
m_SelectedEquip = detailedItem;
|
m_SelectedEquip = detailedItem;
|
||||||
m_FirstInvSlot = slotIndex;
|
m_FirstInvSlot = slotIndex;
|
||||||
|
|
||||||
@@ -210,11 +225,12 @@ namespace BrewMonster
|
|||||||
SetSlotIcon(m_SlotFirstParent, detailedItem);
|
SetSlotIcon(m_SlotFirstParent, detailedItem);
|
||||||
|
|
||||||
SetInventorySlotGray(btn, true);
|
SetInventorySlotGray(btn, true);
|
||||||
|
|
||||||
|
detailedItem.Freeze(true);
|
||||||
|
|
||||||
Debug.Log($"[Install] Equipment: {detailedItem.m_tid} from slot {slotIndex}");
|
Debug.Log($"[Install] Equipment: {detailedItem.m_tid} from slot {slotIndex}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void OnDropMaterial(PointerEventData eventData)
|
private void OnDropMaterial(PointerEventData eventData)
|
||||||
{
|
{
|
||||||
if (eventData.pointerDrag == null)
|
if (eventData.pointerDrag == null)
|
||||||
@@ -236,13 +252,51 @@ namespace BrewMonster
|
|||||||
else
|
else
|
||||||
detailedItem.GetDetailDataFromLocal();
|
detailedItem.GetDetailDataFromLocal();
|
||||||
|
|
||||||
|
m_SelectedMaterial?.Freeze(false);
|
||||||
m_SelectedMaterial = detailedItem;
|
m_SelectedMaterial = detailedItem;
|
||||||
|
m_SelectedMaterial?.Freeze(true);
|
||||||
m_SecondInvSlot = slotIndex;
|
m_SecondInvSlot = slotIndex;
|
||||||
|
|
||||||
m_TxtSecondName.text = detailedItem.GetName();
|
m_TxtSecondName.text = detailedItem.GetName();
|
||||||
SetSlotIcon(m_SlotSecondlParent, detailedItem);
|
SetSlotIcon(m_SlotSecondlParent, detailedItem);
|
||||||
|
|
||||||
SetInventorySlotGray(btn, true);
|
SetInventorySlotGray(btn, true);
|
||||||
|
|
||||||
|
// GetGameUIMan().PlayItemSound(pIvtrSrc, true);
|
||||||
|
EC_IvtrStone pStone = null;
|
||||||
|
STONE_ESSENCE pEssence;
|
||||||
|
// ACHAR szText[40] = _AL("0");
|
||||||
|
|
||||||
|
//check if material is stone and show price to merge
|
||||||
|
if(m_SelectedMaterial.GetClassID() == (int)EC_IvtrEquip.EQUIP_CLASS_ID.ICID_STONE)
|
||||||
|
{
|
||||||
|
pStone = (EC_IvtrStone)m_SelectedMaterial;
|
||||||
|
pEssence = pStone.GetDBEssence();
|
||||||
|
m_TxtMoney.text = $"{pEssence.install_price}";
|
||||||
|
// a_sprintf(szText, _AL("%d"), pEssence->install_price);
|
||||||
|
// m_pTxtGold->SetText(szText);
|
||||||
|
}
|
||||||
|
// else if( 0 == stricmp(this->GetName(), "Win_Disenchase")
|
||||||
|
// && pIvtrSrc->IsEquipment() )
|
||||||
|
// {
|
||||||
|
// a_LogOutput(1, "[Dat Embed] OnItemDragDrop stricmp(this->GetName(), Win_Disenchase");
|
||||||
|
// int i, nAmount = 0, idItem;
|
||||||
|
// CECIvtrEquip *pEquip = (CECIvtrEquip *)pIvtrSrc;
|
||||||
|
//
|
||||||
|
// for( i = 0; i < pEquip->GetHoleNum(); i++ )
|
||||||
|
// {
|
||||||
|
// idItem = pEquip->GetHoleItem(i);
|
||||||
|
// if( idItem <= 0 ) continue;
|
||||||
|
//
|
||||||
|
// pStone = (CECIvtrStone *)CECIvtrItem::CreateItem(idItem, 0, 1);
|
||||||
|
// pEssence = (STONE_ESSENCE *)pStone->GetDBEssence();
|
||||||
|
// nAmount += pEssence->uninstall_price;
|
||||||
|
// delete pStone;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// a_sprintf(szText, _AL("%d"), nAmount);
|
||||||
|
// m_pTxtGold->SetText(szText);
|
||||||
|
// }
|
||||||
|
|
||||||
Debug.Log($"[Install] Material: {detailedItem.m_tid} from slot {slotIndex}");
|
Debug.Log($"[Install] Material: {detailedItem.m_tid} from slot {slotIndex}");
|
||||||
}
|
}
|
||||||
@@ -261,7 +315,6 @@ namespace BrewMonster
|
|||||||
: Color.white;
|
: Color.white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void SetSlotIcon(Transform slot, EC_IvtrItem item)
|
private void SetSlotIcon(Transform slot, EC_IvtrItem item)
|
||||||
{
|
{
|
||||||
if (slot == null || item == null)
|
if (slot == null || item == null)
|
||||||
@@ -289,6 +342,8 @@ namespace BrewMonster
|
|||||||
|
|
||||||
private void ClearEquipSlot()
|
private void ClearEquipSlot()
|
||||||
{
|
{
|
||||||
|
m_SelectedEquip?.Freeze(false);
|
||||||
|
m_SelectedMaterial?.Freeze(false);
|
||||||
m_SelectedEquip = null;
|
m_SelectedEquip = null;
|
||||||
m_FirstInvSlot = -1;
|
m_FirstInvSlot = -1;
|
||||||
m_TxtFirstName.text = "___";
|
m_TxtFirstName.text = "___";
|
||||||
@@ -318,5 +373,116 @@ namespace BrewMonster
|
|||||||
|
|
||||||
img.sprite = khung_item;
|
img.sprite = khung_item;
|
||||||
}
|
}
|
||||||
|
private void OnClickedMerge()
|
||||||
|
{
|
||||||
|
// PAUIDIALOG pMsgBox;
|
||||||
|
CECHostPlayer pHost = GetHostPlayer();
|
||||||
|
|
||||||
|
// if( !m_pItema->GetDataPtr("ptr_CECIvtrItem") ) return;
|
||||||
|
string message = "";
|
||||||
|
|
||||||
|
int nMoney = m_install_price;
|
||||||
|
if( nMoney > pHost.GetMoneyAmount() )
|
||||||
|
{
|
||||||
|
message = GetGameUIMan().GetStringFromTable(226);
|
||||||
|
Debug.LogError(message);
|
||||||
|
// GetGameUIMan()->MessageBox("", GetGameUIMan().GetStringFromTable(226), MB_OK,
|
||||||
|
// A3DCOLORRGBA(255, 255, 255, 160), &pMsgBox);
|
||||||
|
// pMsgBox->SetLife(3);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
EC_IvtrItem pIvtrA = m_SelectedEquip;
|
||||||
|
if( !pIvtrA.IsEquipment() )
|
||||||
|
{
|
||||||
|
message = GetGameUIMan().GetStringFromTable(223);
|
||||||
|
Debug.LogError(message);
|
||||||
|
// GetGameUIMan().MessageBox("", GetGameUIMan().GetStringFromTable(223), MB_OK,
|
||||||
|
// A3DCOLORRGBA(255, 255, 255, 160), &pMsgBox);
|
||||||
|
// pMsgBox.SetLife(3);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
EC_IvtrEquip pEquipA = (EC_IvtrEquip)pIvtrA;
|
||||||
|
// a_LogOutput(1, "[Dat Embed] Send protocol here");
|
||||||
|
// if( 0 == string.CompareOrdinal(GetName(), "Win_Enchase") )
|
||||||
|
// {
|
||||||
|
if( pEquipA.GetEmptyHoleNum() <= 0 )
|
||||||
|
{
|
||||||
|
message = GetGameUIMan().GetStringFromTable(224);
|
||||||
|
Debug.LogError(message);
|
||||||
|
// GetGameUIMan().MessageBox("", GetGameUIMan()->GetStringFromTable(224), MB_OK,
|
||||||
|
// A3DCOLORRGBA(255, 255, 255, 160), &pMsgBox);
|
||||||
|
// pMsgBox.SetLife(3);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
EC_IvtrItem pIvtrB = m_SelectedMaterial;
|
||||||
|
if(pIvtrB == null || !pIvtrB.IsEmbeddable() )
|
||||||
|
{
|
||||||
|
message = GetGameUIMan().GetStringFromTable(225);
|
||||||
|
Debug.LogError(message);
|
||||||
|
// GetGameUIMan().MessageBox("", GetGameUIMan().GetStringFromTable(225), MB_OK,
|
||||||
|
// A3DCOLORRGBA(255, 255, 255, 160), &pMsgBox);
|
||||||
|
// pMsgBox.SetLife(3);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( pIvtrB.GetClassID() != (int)EC_IvtrEquip.EQUIP_CLASS_ID.ICID_STONE)
|
||||||
|
return;
|
||||||
|
|
||||||
|
int nStoneLevel = ((EC_IvtrStone)pIvtrB).GetDBEssence().level;
|
||||||
|
int nEquipLevel = -1;
|
||||||
|
switch( pEquipA.GetClassID() )
|
||||||
|
{
|
||||||
|
case (int)EC_IvtrEquip.EQUIP_CLASS_ID.ICID_WEAPON:
|
||||||
|
nEquipLevel = ((EC_IvtrWeapon)pEquipA).GetDBEssence().level;
|
||||||
|
break;
|
||||||
|
case (int)EC_IvtrEquip.EQUIP_CLASS_ID.ICID_ARMOR:
|
||||||
|
nEquipLevel = ((EC_IvtrArmor)pEquipA).GetDBEssence().level;
|
||||||
|
break;
|
||||||
|
case (int)EC_IvtrEquip.EQUIP_CLASS_ID.ICID_DECORATION:
|
||||||
|
nEquipLevel = ((EC_IvtrDecoration)pEquipA).GetDBEssence().level;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( nStoneLevel > nEquipLevel )
|
||||||
|
{
|
||||||
|
message = GetGameUIMan().GetStringFromTable(300);
|
||||||
|
Debug.LogError(message);
|
||||||
|
// GetGameUIMan().MessageBox("", GetGameUIMan().GetStringFromTable(300), MB_OK,
|
||||||
|
// A3DCOLORRGBA(255, 255, 255, 160), &pMsgBox);
|
||||||
|
// pMsgBox.SetLife(3);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//pr
|
||||||
|
UnityGameSession.c2s_CmdNPCSevEmbed(
|
||||||
|
(ushort)m_SecondInvSlot, (ushort)m_FirstInvSlot,
|
||||||
|
pIvtrB.GetTemplateID(), pIvtrA.GetTemplateID());
|
||||||
|
// ClearEquipment();
|
||||||
|
// ClearStone();
|
||||||
|
pHost.GetPack(InventoryConst.IVTRTYPE_PACK).UnfreezeAllItems();
|
||||||
|
|
||||||
|
message = GetGameUIMan().GetStringFromTable(228);
|
||||||
|
Debug.LogError(message);
|
||||||
|
// GetGameUIMan().MessageBox("", GetGameUIMan().GetStringFromTable(228),
|
||||||
|
// MB_OK, A3DCOLORRGBA(255, 255, 255, 160), &pMsgBox);
|
||||||
|
// pMsgBox.SetLife(3);
|
||||||
|
// }
|
||||||
|
// else if( 0 == stricmp(GetName(), "Win_Disenchase") )
|
||||||
|
// {
|
||||||
|
// a_LogOutput(1, "[Dat Embed] Win_Disenchase");
|
||||||
|
// if( pEquipA->GetEmptyHoleNum() == pEquipA->GetHoleNum() )
|
||||||
|
// {
|
||||||
|
// GetGameUIMan()->MessageBox("", GetGameUIMan()->GetStringFromTable(227), MB_OK,
|
||||||
|
// A3DCOLORRGBA(255, 255, 255, 160), &pMsgBox);
|
||||||
|
// pMsgBox->SetLife(3);
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// GetGameUIMan()->MessageBox("Game_Disenchase", GetGameUIMan()->GetStringFromTable(229),
|
||||||
|
// MB_OKCANCEL, A3DCOLORRGBA(255, 255, 255, 160));
|
||||||
|
// }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3425,7 +3425,7 @@ namespace BrewMonster.UI
|
|||||||
|
|
||||||
if(dlgInstall != null)
|
if(dlgInstall != null)
|
||||||
{
|
{
|
||||||
dlgInstall.OnpenInstall(npcID);
|
dlgInstall.OpenInstall(npcID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//pShow1 = m_pAUIManager.GetDialog("Win_Enchase");
|
//pShow1 = m_pAUIManager.GetDialog("Win_Enchase");
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
using BrewMonster.Network;
|
using BrewMonster.Network;
|
||||||
using BrewMonster.Managers;
|
using BrewMonster.Managers;
|
||||||
using BrewMonster.Scripts.Task;
|
using BrewMonster.Scripts.Task;
|
||||||
using BrewMonster.Scripts;
|
using BrewMonster.Scripts;
|
||||||
using CSNetwork.GPDataType;
|
using CSNetwork.GPDataType;
|
||||||
|
using CSNetwork;
|
||||||
namespace BrewMonster.Scripts.UI
|
namespace BrewMonster.Scripts.UI
|
||||||
{
|
{
|
||||||
public class CECUIHelper
|
public class CECUIHelper
|
||||||
@@ -89,7 +90,7 @@ namespace BrewMonster.Scripts.UI
|
|||||||
// }
|
// }
|
||||||
// return ret;
|
// return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Follow coord like C++ CECUIHelper::FollowCoord(enumEICoord, taskId)
|
// Follow coord like C++ CECUIHelper::FollowCoord(enumEICoord, taskId)
|
||||||
// 像C++的CECUIHelper::FollowCoord(enumEICoord, taskId)一样跟随坐标
|
// 像C++的CECUIHelper::FollowCoord(enumEICoord, taskId)一样跟随坐标
|
||||||
public static bool FollowCoord(int id, int 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}");
|
UnityEngine.Debug.Log($"[CECUIHelper] FollowCoord: Started auto-move to ({vPos.x},{vPos.y},{vPos.z}) for id={id}, taskId={taskId}");
|
||||||
return true;
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using System;
|
using BrewMonster.UI;
|
||||||
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@@ -20,6 +21,12 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
|
|||||||
[SerializeField] int cooldownTime;
|
[SerializeField] int cooldownTime;
|
||||||
[SerializeField] AUIClockIcon m_ClockCounter;
|
[SerializeField] AUIClockIcon m_ClockCounter;
|
||||||
|
|
||||||
|
private Color m_color = Color.white;
|
||||||
|
private bool m_bUpdateRenderTarget;
|
||||||
|
private bool m_bForceDynamicRender;
|
||||||
|
|
||||||
|
private AUIDialog m_pParent;
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
if (skillbutton == null)
|
if (skillbutton == null)
|
||||||
@@ -27,6 +34,7 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
|
|||||||
Debug.LogError("Skill Button is not assigned in AUIImagePicture");
|
Debug.LogError("Skill Button is not assigned in AUIImagePicture");
|
||||||
}
|
}
|
||||||
skillbutton.onClick.AddListener(Execute);
|
skillbutton.onClick.AddListener(Execute);
|
||||||
|
m_pParent = GetComponentInParent<AUIDialog>();
|
||||||
}
|
}
|
||||||
public void SetDataPtr(CECShortcut pvData, string strName)
|
public void SetDataPtr(CECShortcut pvData, string strName)
|
||||||
{
|
{
|
||||||
@@ -69,6 +77,24 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
|
|||||||
skillbutton.interactable = true;
|
skillbutton.interactable = true;
|
||||||
}
|
}
|
||||||
public AUIClockIcon GetClockIcon() => m_ClockCounter;
|
public AUIClockIcon GetClockIcon() => m_ClockCounter;
|
||||||
|
|
||||||
|
public void SetColor(Color color)
|
||||||
|
{
|
||||||
|
if (m_color != color)
|
||||||
|
UpdateRenderTargert();
|
||||||
|
m_color = color;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateRenderTargert()
|
||||||
|
{
|
||||||
|
if (!NeedDynamicRender())
|
||||||
|
m_pParent.UpdateRenderTarget();
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool NeedDynamicRender()
|
||||||
|
{
|
||||||
|
return m_bUpdateRenderTarget || m_bForceDynamicRender;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
public struct OpenSkillUIEvent
|
public struct OpenSkillUIEvent
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
using BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay;
|
using BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay;
|
||||||
using BrewMonster.Network;
|
using BrewMonster.Network;
|
||||||
using BrewMonster.Scripts;
|
using BrewMonster.Scripts;
|
||||||
|
using BrewMonster.Scripts.Managers;
|
||||||
using BrewMonster.Scripts.Skills;
|
using BrewMonster.Scripts.Skills;
|
||||||
using BrewMonster.UI;
|
using BrewMonster.UI;
|
||||||
|
using CSNetwork.GPDataType;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@@ -197,6 +199,125 @@ namespace BrewMonster
|
|||||||
pClock->SetColor(A3DCOLORRGBA(0, 0, 0, 128));
|
pClock->SetColor(A3DCOLORRGBA(0, 0, 0, 128));
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
|
else if(pSC.GetType() == (int)CECShortcut.ShortcutType.SCT_ITEM)
|
||||||
|
{
|
||||||
|
iIconFile = (int)EC_GAMEUI_ICONS.ICONS_INVENTORY;
|
||||||
|
pCell.SetColor(new Color(1f, 1f, 1f));
|
||||||
|
CECSCItem pSCItem = (CECSCItem)pSC;
|
||||||
|
EC_Inventory pIvtr = pHost.GetPack(pSCItem.GetInventory());
|
||||||
|
EC_IvtrItem pItem = pIvtr?.GetItem(pSCItem.GetIvtrSlot());
|
||||||
|
|
||||||
|
if (pItem != null)
|
||||||
|
{
|
||||||
|
int maxNullable = -1;
|
||||||
|
int coolTime = pItem.GetCoolTime(out maxNullable);
|
||||||
|
nMax = maxNullable > 0 ? maxNullable: 0;
|
||||||
|
|
||||||
|
if (coolTime > 0)
|
||||||
|
{
|
||||||
|
pClock.SetProgressRange(0, nMax);
|
||||||
|
pClock.SetProgressPos(nMax - coolTime);
|
||||||
|
pClock.SetColor(new Color32(0, 0, 0, 128));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//if (pSCItem.GetInventory == InventoryConst.IVTRTYPE_EQUIPPACK)
|
||||||
|
//{
|
||||||
|
// pCell.SetColor(new Color(128, 128, 255, 128));
|
||||||
|
//}
|
||||||
|
|
||||||
|
if (pItem != null)
|
||||||
|
{
|
||||||
|
string itemIcon = pItem.GetIconFile();
|
||||||
|
GetGameUIMan().SetCover(pCell, itemIcon, EC_GAMEUI_ICONS.ICONS_INVENTORY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//else if(pSC.GetType() == (int)CECShortcut.ShortcutType.SCT_PET)
|
||||||
|
//{
|
||||||
|
// // Pet shortcut handling
|
||||||
|
// CECSCPet pSCPet = (CECSCPet)pSC;
|
||||||
|
// EC_PetCorral pPetCorral = pHost.GetPetCorral();
|
||||||
|
// CECPetData pPet = pPetCorral?.GetPetData(pSCPet.GetPetIndex());
|
||||||
|
|
||||||
|
// iIconFile = (int)EC_GAMEUI_ICONS.ICONS_INVENTORY;
|
||||||
|
// //pCell.SetColor(new Color(1f, 1f, 1f)); // RGB(255, 255, 255)
|
||||||
|
|
||||||
|
// if (pPet != null)
|
||||||
|
// {
|
||||||
|
// // Dead combat pet - grayscale
|
||||||
|
// if ((pPet.GetClass() == (int)PetClass.GP_PET_CLASS_COMBAT ||
|
||||||
|
// pPet.GetClass() == (int)PetClass.GP_PET_CLASS_EVOLUTION) &&
|
||||||
|
// pPet.GetHPFactor() == 0.0f)
|
||||||
|
// {
|
||||||
|
// //pCell.SetColor(new Color32(128, 128, 128, 255));
|
||||||
|
// }
|
||||||
|
// // Current active pet - yellow highlight
|
||||||
|
// else if (pSCPet.IsActivePet())
|
||||||
|
// {
|
||||||
|
// //pCell.SetColor(new Color32(255, 255, 0, 255));
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // Set pet icon
|
||||||
|
// if (pPet != null)
|
||||||
|
// {
|
||||||
|
// slotIndex++;
|
||||||
|
// string petIcon = pSCPet.GetIconFile();
|
||||||
|
// GetGameUIMan().SetCover(pCell, petIcon, EC_GAMEUI_ICONS.ICONS_INVENTORY);
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
else if(pSC.GetType() == (int)CECShortcut.ShortcutType.SCT_AUTOFASHION)
|
||||||
|
{
|
||||||
|
iIconFile = (int)EC_GAMEUI_ICONS.ICONS_SUITE;
|
||||||
|
|
||||||
|
int fashionCoolTime = pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_EQUIP_FASHION_ITEM, out int fashionCoolTimeMax);
|
||||||
|
pCell.SetColor(new Color(1f, 1f, 1f));
|
||||||
|
|
||||||
|
if (fashionCoolTimeMax > 0)
|
||||||
|
{
|
||||||
|
pClock.SetProgressRange(0, fashionCoolTimeMax);
|
||||||
|
pClock.SetProgressPos(fashionCoolTimeMax - fashionCoolTime);
|
||||||
|
pClock.SetColor(new Color32(0, 0, 0, 175));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
iIconFile = (int)EC_GAMEUI_ICONS.ICONS_ACTION;
|
||||||
|
if (pSC.GetType() == (int)CECShortcut.ShortcutType.SCT_COMMAND)
|
||||||
|
{
|
||||||
|
CECSCCommand pCommandSC = (CECSCCommand)pSC;
|
||||||
|
if (pHost.IsInvisible())
|
||||||
|
{
|
||||||
|
if (pCommandSC.GetCommandID() == (int)CECSCCommand.CommandID.CMD_STARTTRADE ||
|
||||||
|
pCommandSC.GetCommandID() == (int)CECSCCommand.CommandID.CMD_SELLBOOTH ||
|
||||||
|
pCommandSC.GetCommandID() == (int)CECSCCommand.CommandID.CMD_BINDBUDDY)
|
||||||
|
{
|
||||||
|
pCell.SetColor(new Color(128, 128, 128, 255));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pCell.SetColor(new Color(1f, 1f, 1f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pCell.SetColor(new Color(1f, 1f, 1f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
nMax = 0;
|
||||||
|
int cmdCoolTime = pSC.GetCoolTime(ref nMax);
|
||||||
|
if (cmdCoolTime > 0)
|
||||||
|
{
|
||||||
|
pClock.SetProgressRange(0, nMax);
|
||||||
|
pClock.SetProgressPos(nMax - cmdCoolTime);
|
||||||
|
pClock.SetColor(new Color32(0, 0, 0, 128));
|
||||||
|
}
|
||||||
|
|
||||||
|
string cmdIcon = pSC.GetIconFile();
|
||||||
|
GetGameUIMan().SetCover(pCell, cmdIcon, EC_GAMEUI_ICONS.ICONS_ACTION);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (pSC != null)
|
if (pSC != null)
|
||||||
{
|
{
|
||||||
pCell.SetDataPtr(pSC, "ptr_CECShortcut");
|
pCell.SetDataPtr(pSC, "ptr_CECShortcut");
|
||||||
|
|||||||
@@ -89,14 +89,14 @@ namespace BrewMonster.UI
|
|||||||
|
|
||||||
public bool UpdateTask(uint idTask, int reason)
|
public bool UpdateTask(uint idTask, int reason)
|
||||||
{
|
{
|
||||||
// TODO:
|
Debug.Log($"[EC_GameUIMan] UpdateTask: idTask={idTask}, reason={reason}");
|
||||||
// CDlgTaskTrace* pDlg = dynamic_cast<CDlgTaskTrace*>(GetDialog("Win_QuestMinion"));
|
DlgTaskTrace pDlg = GetDialog("Win_QuestMinion").GetComponent<DlgTaskTrace>();
|
||||||
// if (pDlg) {
|
if (pDlg) {
|
||||||
// pDlg->SetBtnUnTraceY(-1, 0);
|
//pDlg->SetBtnUnTraceY(-1, 0);
|
||||||
// pDlg->UpdateContributionTask();
|
pDlg.UpdateContributionTask();
|
||||||
// if (reason == TASK_SVR_NOTIFY_NEW)
|
if (reason == TaskTemplConstants.TASK_SVR_NOTIFY_NEW)
|
||||||
// pDlg->OnTaskNew(idTask);
|
pDlg.OnTaskNew(idTask);
|
||||||
// }
|
}
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
// ���´����������
|
// ���´����������
|
||||||
@@ -153,6 +153,16 @@ namespace BrewMonster.UI
|
|||||||
{
|
{
|
||||||
pImgPic.SetImage(m_IconMap[(byte)iCONS_SKILL].Item2.FirstOrDefault(s => s.name == nameImage));
|
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
|
public enum EC_GAMEUI_ICONS : byte
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ namespace BrewMonster
|
|||||||
[SerializeField] private int m_iMax;
|
[SerializeField] private int m_iMax;
|
||||||
[SerializeField] private int m_iPos;
|
[SerializeField] private int m_iPos;
|
||||||
|
|
||||||
|
private Color m_dwCol;
|
||||||
|
|
||||||
public Image GetClockIcon() => m_ClockIcon;
|
public Image GetClockIcon() => m_ClockIcon;
|
||||||
public void SetProgressPos(int progress)
|
public void SetProgressPos(int progress)
|
||||||
{
|
{
|
||||||
@@ -36,5 +38,9 @@ namespace BrewMonster
|
|||||||
m_ClockIcon.fillAmount = progress;
|
m_ClockIcon.fillAmount = progress;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetColor(Color dwCol)
|
||||||
|
{
|
||||||
|
m_dwCol = dwCol;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,21 +9,21 @@ namespace BrewMonster
|
|||||||
public enum IconTaskType
|
public enum IconTaskType
|
||||||
{
|
{
|
||||||
QI_NONE = -1,
|
QI_NONE = -1,
|
||||||
QI_OUT = 2, // task tu chan (nhan)
|
QI_OUT = 0, // task tu chan (nhan)
|
||||||
QI_IN = 2, // task tu chan (hoan thanh)
|
QI_IN = 1, // task tu chan (hoan thanh)
|
||||||
QI_OUT_N = 3, // chua du dieu kien nhan task
|
QI_OUT_N = 2, // chua du dieu kien nhan task
|
||||||
QI_IN_N = 3, // task nhan nhung chua lam (chua xong)
|
QI_IN_N = 3, // task nhan nhung chua lam (chua xong)
|
||||||
QI_OUT_K = 0, // chua biet
|
QI_OUT_K = 4, // chua biet
|
||||||
QI_IN_K = 5, // chua biet
|
QI_IN_K = 5, // chua biet
|
||||||
|
|
||||||
QI_OUT_TYPE1 = 5, // task bang hoi (nhan)
|
QI_OUT_TYPE1 = 6, // task bang hoi (nhan)
|
||||||
QI_IN_TYPE1 = 5, // task bang hoi (hoan thanh)
|
QI_IN_TYPE1 = 7, // task bang hoi (hoan thanh)
|
||||||
QI_OUT_TYPE2 = 1, // chua biet
|
QI_OUT_TYPE2 = 8, // chua biet
|
||||||
QI_IN_TYPE2 = 1, // chua biet
|
QI_IN_TYPE2 = 9, // chua biet
|
||||||
QI_OUT_TYPE3 = -1, // task daily (nhan)
|
QI_OUT_TYPE3 = 10, // task daily (nhan)
|
||||||
QI_IN_TYPE3 = -1, // task daily (hoan thanh)
|
QI_IN_TYPE3 = 11, // task daily (hoan thanh)
|
||||||
QI_OUT_TYPE4 = 0, // task chinh (nhan)
|
QI_OUT_TYPE4 = 12, // task chinh (nhan)
|
||||||
QI_IN_TYPE4 = 4, // task chinh (hoan thanh)
|
QI_IN_TYPE4 = 13, // task chinh (hoan thanh)
|
||||||
}
|
}
|
||||||
|
|
||||||
public class UINPC : MonoBehaviour
|
public class UINPC : MonoBehaviour
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -0,0 +1,242 @@
|
|||||||
|
using BrewMonster.Network;
|
||||||
|
using BrewMonster.Scripts.Skills;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Unity.VisualScripting;
|
||||||
|
using static BrewMonster.SkillArrayWrapper;
|
||||||
|
using UnityEngine;
|
||||||
|
using BrewMonster.Scripts.Managers;
|
||||||
|
using UnityEditorInternal.Profiling.Memory.Experimental;
|
||||||
|
using BrewMonster.Scripts;
|
||||||
|
|
||||||
|
namespace BrewMonster
|
||||||
|
{
|
||||||
|
// Item shortcut class - represents a shortcut to an inventory item
|
||||||
|
public class CECSCItem : CECShortcut
|
||||||
|
{
|
||||||
|
private int m_iIvtr;
|
||||||
|
private int m_iSlot;
|
||||||
|
private int m_tidItem;
|
||||||
|
private string m_strIconFile;
|
||||||
|
private bool m_bAutoFind;
|
||||||
|
|
||||||
|
// Constructor
|
||||||
|
public CECSCItem() : base()
|
||||||
|
{
|
||||||
|
m_iSCType = (int)ShortcutType.SCT_ITEM;
|
||||||
|
m_iIvtr = 0;
|
||||||
|
m_iSlot = 0;
|
||||||
|
m_tidItem = 0;
|
||||||
|
m_strIconFile = "";
|
||||||
|
m_bAutoFind = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy constructor
|
||||||
|
public CECSCItem(CECSCItem src) : base()
|
||||||
|
{
|
||||||
|
m_iSCType = (int)ShortcutType.SCT_ITEM;
|
||||||
|
m_iIvtr = src.m_iIvtr;
|
||||||
|
m_iSlot = src.m_iSlot;
|
||||||
|
m_tidItem = src.m_tidItem;
|
||||||
|
m_strIconFile = src.m_strIconFile;
|
||||||
|
m_bAutoFind = src.m_bAutoFind;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize object
|
||||||
|
public bool Init(int iIvtr, int iSlot, EC_IvtrItem pItem)
|
||||||
|
{
|
||||||
|
m_iIvtr = iIvtr;
|
||||||
|
m_iSlot = iSlot;
|
||||||
|
|
||||||
|
if (pItem != null)
|
||||||
|
{
|
||||||
|
m_tidItem = pItem.GetTemplateID();
|
||||||
|
m_strIconFile = pItem.GetIconFile();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_tidItem = 0;
|
||||||
|
m_strIconFile = "";
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clone this shortcut
|
||||||
|
public override CECShortcut Clone()
|
||||||
|
{
|
||||||
|
return new CECSCItem(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute this shortcut - use the item
|
||||||
|
public override bool Execute()
|
||||||
|
{
|
||||||
|
CECHostPlayer pHost = EC_Game.GetGameRun()?.GetHostPlayer();
|
||||||
|
if(pHost == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
EC_IvtrItem pItem = GetItem();
|
||||||
|
if (pItem == null)
|
||||||
|
{
|
||||||
|
if (m_bAutoFind)
|
||||||
|
{
|
||||||
|
if(!AutoFindItem())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
pItem = GetItem();
|
||||||
|
if(pItem == null)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return pHost.UseItemInPack(m_iIvtr, m_iSlot);
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual string GetIconFile()
|
||||||
|
{
|
||||||
|
return m_strIconFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual string GetDesc()
|
||||||
|
{
|
||||||
|
EC_IvtrItem pItem = GetItem();
|
||||||
|
if (pItem != null)
|
||||||
|
{
|
||||||
|
return pItem.GetDesc();
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual int GetCoolTime(ref int piMax)
|
||||||
|
{
|
||||||
|
EC_IvtrItem pItem = GetItem();
|
||||||
|
if (pItem != null)
|
||||||
|
{
|
||||||
|
int maxNullable = -1;
|
||||||
|
int result = pItem.GetCoolTime(out maxNullable);
|
||||||
|
piMax = maxNullable >0 ? maxNullable: 0;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
piMax = 0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int GetInventory()
|
||||||
|
{
|
||||||
|
return m_iIvtr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int GetIvtrSlot()
|
||||||
|
{
|
||||||
|
return m_iSlot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int GetItemTID()
|
||||||
|
{
|
||||||
|
return m_tidItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void MoveItem(int iIvtr, int iSlot)
|
||||||
|
{
|
||||||
|
m_iIvtr = iIvtr;
|
||||||
|
m_iSlot = iSlot;
|
||||||
|
UpdateItemData();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool GetAutoFindFlag()
|
||||||
|
{
|
||||||
|
return m_bAutoFind;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetAutoFindFlag(bool bAutoFind)
|
||||||
|
{
|
||||||
|
m_bAutoFind = bAutoFind;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update item associated data after m_iIvtr or m_iSlot changed
|
||||||
|
private void UpdateItemData()
|
||||||
|
{
|
||||||
|
EC_IvtrItem pItem = GetItem();
|
||||||
|
if (pItem != null)
|
||||||
|
{
|
||||||
|
m_tidItem = pItem.GetTemplateID();
|
||||||
|
m_strIconFile = pItem.GetIconFile();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_tidItem = 0;
|
||||||
|
m_strIconFile = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Auto find item in all inventory slots by template ID
|
||||||
|
private bool AutoFindItem()
|
||||||
|
{
|
||||||
|
if(m_tidItem == 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
CECHostPlayer pHost = EC_Game.GetGameRun()?.GetHostPlayer();
|
||||||
|
if(pHost == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
EC_Inventory pPack = pHost.GetPack(EC_Inventory.Inventory_type.IVTRTYPE_PACK);
|
||||||
|
if (pPack != null)
|
||||||
|
{
|
||||||
|
int iSlot = pPack.FindItem(m_tidItem);
|
||||||
|
if (iSlot >= 0)
|
||||||
|
{
|
||||||
|
m_iIvtr = EC_Inventory.Inventory_type.IVTRTYPE_PACK;
|
||||||
|
m_iSlot = iSlot;
|
||||||
|
UpdateItemData();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EC_Inventory pEquipPack = pHost.GetPack(EC_Inventory.Inventory_type.IVTRTYPE_EQUIPPACK);
|
||||||
|
if (pEquipPack != null)
|
||||||
|
{
|
||||||
|
int iSlot = pPack.FindItem(m_tidItem);
|
||||||
|
if (iSlot >= 0)
|
||||||
|
{
|
||||||
|
m_iIvtr = InventoryConst.IVTRTYPE_EQUIPPACK;
|
||||||
|
m_iSlot = iSlot;
|
||||||
|
UpdateItemData();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EC_Inventory pTaskPack = pHost.GetPack(EC_Inventory.Inventory_type.IVTRTYPE_TASKPACK);
|
||||||
|
if (pTaskPack != null)
|
||||||
|
{
|
||||||
|
int iSlot = pPack.FindItem(m_tidItem);
|
||||||
|
if (iSlot >= 0)
|
||||||
|
{
|
||||||
|
m_iIvtr = InventoryConst.IVTRTYPE_TASKPACK;
|
||||||
|
m_iSlot = iSlot;
|
||||||
|
UpdateItemData();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private EC_IvtrItem GetItem()
|
||||||
|
{
|
||||||
|
CECHostPlayer pHost = EC_Game.GetGameRun()?.GetHostPlayer();
|
||||||
|
if(pHost == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
EC_Inventory pIvtr = pHost.GetPack(m_iIvtr);
|
||||||
|
if (pIvtr == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return pIvtr.GetItem(m_iSlot);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 05cde8ef04e79fd449fdb73d3f3fdc0f
|
||||||
@@ -0,0 +1,197 @@
|
|||||||
|
using BrewMonster.Assets.PerfectWorld.Scripts.Players;
|
||||||
|
using BrewMonster.Network;
|
||||||
|
using BrewMonster.Scripts;
|
||||||
|
using BrewMonster.Scripts.Managers;
|
||||||
|
using ModelRenderer.Scripts.Common;
|
||||||
|
using ModelRenderer.Scripts.GameData;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace BrewMonster
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Pet shortcut for quick summoning/recalling pets
|
||||||
|
/// </summary>
|
||||||
|
public class CECSCPet : CECShortcut
|
||||||
|
{
|
||||||
|
/*#region Fields
|
||||||
|
|
||||||
|
private int m_iPetIndex = -1; // Pet index in pet corral
|
||||||
|
private PET_ESSENCE m_pPetEssence; // Pet essence data
|
||||||
|
private bool m_bHasEssence = false; // Whether the pet essence has been loaded
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Constructors
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Default constructor
|
||||||
|
/// </summary>
|
||||||
|
public CECSCPet()
|
||||||
|
{
|
||||||
|
m_iSCType = (int)ShortcutType.SCT_PET;
|
||||||
|
m_iPetIndex = -1;
|
||||||
|
m_bHasEssence = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Copy constructor
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="src">Source pet shortcut to copy from</param>
|
||||||
|
public CECSCPet(CECSCPet src)
|
||||||
|
{
|
||||||
|
m_iSCType = src.m_iSCType;
|
||||||
|
m_iPetIndex = src.m_iPetIndex;
|
||||||
|
m_pPetEssence = src.m_pPetEssence;
|
||||||
|
m_bHasEssence = src.m_bHasEssence;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Initialization
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initialize the pet shortcut with a pet index
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="iPetIndex">Index of the pet in the pet corral</param>
|
||||||
|
/// <returns>True if initialization succeeded</returns>
|
||||||
|
public bool Init(int iPetIndex)
|
||||||
|
{
|
||||||
|
CECHostPlayer pHost = EC_Game.GetGameRun()?.GetHostPlayer();
|
||||||
|
if (pHost == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
EC_PetCorral pPetCorral = pHost.GetPetCorral();
|
||||||
|
if (pPetCorral == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
//CECPetData pPet = pPetCorral.GetPetData(iPetIndex);
|
||||||
|
if (pPet == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
elementdataman pDB = ElementDataManProvider.GetElementDataMan();
|
||||||
|
if (pDB == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
DATA_TYPE dataType = DATA_TYPE.DT_INVALID;
|
||||||
|
object essenceObj = pDB.get_data_ptr((uint)pPet.GetTemplateID(), ID_SPACE.ID_SPACE_ESSENCE, ref dataType);
|
||||||
|
|
||||||
|
if (essenceObj == null || !(essenceObj is PET_ESSENCE))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
m_pPetEssence = (PET_ESSENCE)essenceObj;
|
||||||
|
m_bHasEssence = true;
|
||||||
|
m_iPetIndex = iPetIndex;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region CECShortcut Overrides
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clone this pet shortcut
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>A new instance with the same data</returns>
|
||||||
|
public override CECShortcut Clone()
|
||||||
|
{
|
||||||
|
return new CECSCPet(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Execute the pet shortcut - summon or recall the pet
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>True if execution succeeded</returns>
|
||||||
|
public override bool Execute()
|
||||||
|
{
|
||||||
|
if (m_iPetIndex < 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
CECHostPlayer pHost = EC_Game.GetGameRun()?.GetHostPlayer();
|
||||||
|
if (pHost == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
EC_PetCorral pPetCorral = pHost.GetPetCorral();
|
||||||
|
if (pPetCorral == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
//if (pPetCorral.GetActivePetIndex() == m_iPetIndex)
|
||||||
|
//{
|
||||||
|
// // If this pet is the active one, recall it
|
||||||
|
// pHost.RecallPet();
|
||||||
|
//}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Check action switcher for fly-to-ride transition
|
||||||
|
CECActionSwitcherBase pSwitcher = pHost.GetActionSwitcher();
|
||||||
|
//if (pSwitcher != null && pSwitcher.OnFlyToRideAction(m_iPetIndex))
|
||||||
|
//{
|
||||||
|
// return true;
|
||||||
|
//}
|
||||||
|
|
||||||
|
// Summon this pet
|
||||||
|
//pHost.SummonPet(m_iPetIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get the icon file path for this pet
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>Icon file path</returns>
|
||||||
|
//public override string GetIconFile()
|
||||||
|
//{
|
||||||
|
// return m_pPetEssence?.file_icon ?? string.Empty;
|
||||||
|
//}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get the description text for this pet
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>Pet description</returns>
|
||||||
|
//public override string GetDesc()
|
||||||
|
//{
|
||||||
|
// // TODO: Implement pet description retrieval
|
||||||
|
//}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Public Methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Check if this pet is currently active
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>True if this pet is the active pet</returns>
|
||||||
|
//public bool IsActivePet()
|
||||||
|
//{
|
||||||
|
// EC_PetCorral pPetCorral = EC_Game.GetGameRun()?.GetHostPlayer()?.GetPetCorral();
|
||||||
|
// if (pPetCorral == null)
|
||||||
|
// return false;
|
||||||
|
|
||||||
|
// return pPetCorral.GetActivePetIndex() == m_iPetIndex;
|
||||||
|
//}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Properties
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get the pet index in pet corral
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>Pet index</returns>
|
||||||
|
public int GetPetIndex()
|
||||||
|
{
|
||||||
|
return m_iPetIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get the pet essence data
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>Pet essence</returns>
|
||||||
|
public PET_ESSENCE GetPetEssence()
|
||||||
|
{
|
||||||
|
return m_pPetEssence;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion*/
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0c1e98ce7d055204587eff3f6438ddc3
|
||||||
|
Before Width: | Height: | Size: 634 KiB |
@@ -1,153 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 4276d7122cfaf624f8aa32336fc90f1c
|
|
||||||
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: 2
|
|
||||||
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
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: Android
|
|
||||||
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:
|
|
||||||
- serializedVersion: 2
|
|
||||||
name: iconTask1_0
|
|
||||||
rect:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 201
|
|
||||||
y: 163
|
|
||||||
width: 618
|
|
||||||
height: 700
|
|
||||||
alignment: 0
|
|
||||||
pivot: {x: 0, y: 0}
|
|
||||||
border: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
customData:
|
|
||||||
outline: []
|
|
||||||
physicsShape: []
|
|
||||||
tessellationDetail: 0
|
|
||||||
bones: []
|
|
||||||
spriteID: 3577b54168afc5242a9c02dce91f1260
|
|
||||||
internalID: 1049366989
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
outline: []
|
|
||||||
customData:
|
|
||||||
physicsShape: []
|
|
||||||
bones: []
|
|
||||||
spriteID: 16fc5ffd47ee2f1429eb79e647db644d
|
|
||||||
internalID: 0
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
secondaryTextures: []
|
|
||||||
spriteCustomMetadata:
|
|
||||||
entries: []
|
|
||||||
nameFileIdTable:
|
|
||||||
iconTask1_0: 1049366989
|
|
||||||
mipmapLimitGroupName:
|
|
||||||
pSDRemoveMatte: 0
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
Before Width: | Height: | Size: 568 KiB |
@@ -1,153 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 454cf3e89d0aaa54b9c60ca081ff5f46
|
|
||||||
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: 2
|
|
||||||
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
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: Android
|
|
||||||
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:
|
|
||||||
- serializedVersion: 2
|
|
||||||
name: iconTask2_0
|
|
||||||
rect:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 178
|
|
||||||
y: 221
|
|
||||||
width: 616
|
|
||||||
height: 628
|
|
||||||
alignment: 0
|
|
||||||
pivot: {x: 0, y: 0}
|
|
||||||
border: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
customData:
|
|
||||||
outline: []
|
|
||||||
physicsShape: []
|
|
||||||
tessellationDetail: 0
|
|
||||||
bones: []
|
|
||||||
spriteID: 88c7b386a6be7bd4dbb002f3a93895a1
|
|
||||||
internalID: -61588767
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
outline: []
|
|
||||||
customData:
|
|
||||||
physicsShape: []
|
|
||||||
bones: []
|
|
||||||
spriteID: a16d633ba72e5c04487f3be78b1735bc
|
|
||||||
internalID: 0
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
secondaryTextures: []
|
|
||||||
spriteCustomMetadata:
|
|
||||||
entries: []
|
|
||||||
nameFileIdTable:
|
|
||||||
iconTask2_0: -61588767
|
|
||||||
mipmapLimitGroupName:
|
|
||||||
pSDRemoveMatte: 0
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
Before Width: | Height: | Size: 640 KiB |
|
Before Width: | Height: | Size: 158 KiB |
|
Before Width: | Height: | Size: 112 KiB |
@@ -1,153 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: c27a0fab8aef4d74787fe56595601d9f
|
|
||||||
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: 2
|
|
||||||
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
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: Android
|
|
||||||
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:
|
|
||||||
- serializedVersion: 2
|
|
||||||
name: iconTask5_0
|
|
||||||
rect:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 169
|
|
||||||
y: 91
|
|
||||||
width: 247
|
|
||||||
height: 246
|
|
||||||
alignment: 0
|
|
||||||
pivot: {x: 0, y: 0}
|
|
||||||
border: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
customData:
|
|
||||||
outline: []
|
|
||||||
physicsShape: []
|
|
||||||
tessellationDetail: 0
|
|
||||||
bones: []
|
|
||||||
spriteID: 81a887702ec996041a55a92f080c99e2
|
|
||||||
internalID: 1342343447
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
outline: []
|
|
||||||
customData:
|
|
||||||
physicsShape: []
|
|
||||||
bones: []
|
|
||||||
spriteID: ee5d2861e27ff8f43bb7b8face30c7bb
|
|
||||||
internalID: 0
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
secondaryTextures: []
|
|
||||||
spriteCustomMetadata:
|
|
||||||
entries: []
|
|
||||||
nameFileIdTable:
|
|
||||||
iconTask5_0: 1342343447
|
|
||||||
mipmapLimitGroupName:
|
|
||||||
pSDRemoveMatte: 0
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
Before Width: | Height: | Size: 192 KiB |
@@ -1,153 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 6deb3d497e3c2a44cb875be0f13bbf36
|
|
||||||
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: 2
|
|
||||||
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
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: Android
|
|
||||||
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:
|
|
||||||
- serializedVersion: 2
|
|
||||||
name: iconTask6_0
|
|
||||||
rect:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 93
|
|
||||||
y: 79
|
|
||||||
width: 313
|
|
||||||
height: 343
|
|
||||||
alignment: 0
|
|
||||||
pivot: {x: 0, y: 0}
|
|
||||||
border: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
customData:
|
|
||||||
outline: []
|
|
||||||
physicsShape: []
|
|
||||||
tessellationDetail: 0
|
|
||||||
bones: []
|
|
||||||
spriteID: 18be220273ab7564389626093c9fa09a
|
|
||||||
internalID: 1458661374
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
outline: []
|
|
||||||
customData:
|
|
||||||
physicsShape: []
|
|
||||||
bones: []
|
|
||||||
spriteID: 33b9f9e65720df144a10109ca92117d7
|
|
||||||
internalID: 0
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
secondaryTextures: []
|
|
||||||
spriteCustomMetadata:
|
|
||||||
entries: []
|
|
||||||
nameFileIdTable:
|
|
||||||
iconTask6_0: 1458661374
|
|
||||||
mipmapLimitGroupName:
|
|
||||||
pSDRemoveMatte: 0
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
After Width: | Height: | Size: 7.4 KiB |
@@ -0,0 +1,452 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 75fb3bbb7c9421e4d8bf0728cf2b59b1
|
||||||
|
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: 2
|
||||||
|
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
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
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:
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: taskIcon_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
width: 29
|
||||||
|
height: 30
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: c401c9872acf67a4d9a4f965415028a8
|
||||||
|
internalID: -1053361621
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: taskIcon_1
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 31
|
||||||
|
y: 1
|
||||||
|
width: 27
|
||||||
|
height: 28
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: c90f356087dae5f4b8468fdf2b5b4048
|
||||||
|
internalID: -263451151
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: taskIcon_2
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 59
|
||||||
|
y: 0
|
||||||
|
width: 30
|
||||||
|
height: 30
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 1011305479898d04296342f6319a54f7
|
||||||
|
internalID: 258506963
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: taskIcon_3
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 91
|
||||||
|
y: 1
|
||||||
|
width: 27
|
||||||
|
height: 28
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: e73cd2beb28042b4f9b8cdba1fb2f33f
|
||||||
|
internalID: -2063219569
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: taskIcon_4
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 119
|
||||||
|
y: 0
|
||||||
|
width: 30
|
||||||
|
height: 30
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 7cef2e9b688fecf4fbee080e5dca3c35
|
||||||
|
internalID: -2122663845
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: taskIcon_5
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 151
|
||||||
|
y: 1
|
||||||
|
width: 27
|
||||||
|
height: 28
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 3090b71a3c7a95b4d9e457d465e4dddf
|
||||||
|
internalID: 1945827619
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: taskIcon_6
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 179
|
||||||
|
y: 0
|
||||||
|
width: 30
|
||||||
|
height: 30
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: bf71aa70e1051b9419dbea554d8e5c06
|
||||||
|
internalID: -1771957928
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: taskIcon_7
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 211
|
||||||
|
y: 1
|
||||||
|
width: 27
|
||||||
|
height: 28
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e9918f9fbffd3344a5bcd47c8f7aa72
|
||||||
|
internalID: -1558989898
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: taskIcon_8
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 239
|
||||||
|
y: 0
|
||||||
|
width: 30
|
||||||
|
height: 30
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 70fee8d291fccc54fb7ed9319313e7e8
|
||||||
|
internalID: 1189468312
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: taskIcon_9
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 271
|
||||||
|
y: 1
|
||||||
|
width: 27
|
||||||
|
height: 28
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 25f6ef50cffd11e40b4068f35e8099e7
|
||||||
|
internalID: 1077363315
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: taskIcon_10
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 299
|
||||||
|
y: 0
|
||||||
|
width: 30
|
||||||
|
height: 30
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: a9e5ccebcfe1de44abed45c34e37fa26
|
||||||
|
internalID: 1705495320
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: taskIcon_11
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 331
|
||||||
|
y: 1
|
||||||
|
width: 27
|
||||||
|
height: 28
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: fc138257c35f281499c3ac6c8c1947ef
|
||||||
|
internalID: 536497386
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: taskIcon_12
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 360
|
||||||
|
y: 0
|
||||||
|
width: 29
|
||||||
|
height: 30
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: db8754701d3c56746b2dec56a980c3e2
|
||||||
|
internalID: -440769636
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: taskIcon_13
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 391
|
||||||
|
y: 1
|
||||||
|
width: 29
|
||||||
|
height: 28
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: f8e2be44c29dc1c4a8319efa5759364b
|
||||||
|
internalID: 844877792
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: a8dc53b3ed0f48c419abbeca24c1c1b6
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable:
|
||||||
|
taskIcon_0: -1053361621
|
||||||
|
taskIcon_1: -263451151
|
||||||
|
taskIcon_10: 1705495320
|
||||||
|
taskIcon_11: 536497386
|
||||||
|
taskIcon_12: -440769636
|
||||||
|
taskIcon_13: 844877792
|
||||||
|
taskIcon_2: 258506963
|
||||||
|
taskIcon_3: -2063219569
|
||||||
|
taskIcon_4: -2122663845
|
||||||
|
taskIcon_5: 1945827619
|
||||||
|
taskIcon_6: -1771957928
|
||||||
|
taskIcon_7: -1558989898
|
||||||
|
taskIcon_8: 1189468312
|
||||||
|
taskIcon_9: 1077363315
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
After Width: | Height: | Size: 2.0 KiB |
@@ -1,7 +1,10 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 13278f4394269834cb244620cd66c803
|
guid: b404da7f8f4b96f459d1c8caa65f7cf8
|
||||||
TextureImporter:
|
TextureImporter:
|
||||||
internalIDToNameTable: []
|
internalIDToNameTable:
|
||||||
|
- first:
|
||||||
|
213: 7482667652216324306
|
||||||
|
second: Square
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 13
|
serializedVersion: 13
|
||||||
mipmaps:
|
mipmaps:
|
||||||
@@ -39,7 +42,7 @@ TextureImporter:
|
|||||||
mipBias: 0
|
mipBias: 0
|
||||||
wrapU: 1
|
wrapU: 1
|
||||||
wrapV: 1
|
wrapV: 1
|
||||||
wrapW: 0
|
wrapW: 1
|
||||||
nPOTScale: 0
|
nPOTScale: 0
|
||||||
lightmap: 0
|
lightmap: 0
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
@@ -48,12 +51,12 @@ TextureImporter:
|
|||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
spritePixelsToUnits: 100
|
spritePixelsToUnits: 256
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
alphaUsage: 1
|
alphaUsage: 1
|
||||||
alphaIsTransparency: 1
|
alphaIsTransparency: 1
|
||||||
spriteTessellationDetail: -1
|
spriteTessellationDetail: 0
|
||||||
textureType: 8
|
textureType: 8
|
||||||
textureShape: 1
|
textureShape: 1
|
||||||
singleChannelComponent: 0
|
singleChannelComponent: 0
|
||||||
@@ -65,7 +68,7 @@ TextureImporter:
|
|||||||
ignorePngGamma: 0
|
ignorePngGamma: 0
|
||||||
applyGammaDecoding: 0
|
applyGammaDecoding: 0
|
||||||
swizzle: 50462976
|
swizzle: 50462976
|
||||||
cookieLightType: 0
|
cookieLightType: 1
|
||||||
platformSettings:
|
platformSettings:
|
||||||
- serializedVersion: 4
|
- serializedVersion: 4
|
||||||
buildTarget: DefaultTexturePlatform
|
buildTarget: DefaultTexturePlatform
|
||||||
@@ -93,6 +96,19 @@ TextureImporter:
|
|||||||
ignorePlatformSupport: 0
|
ignorePlatformSupport: 0
|
||||||
androidETC2FallbackOverride: 0
|
androidETC2FallbackOverride: 0
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: iOS
|
||||||
|
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
|
- serializedVersion: 4
|
||||||
buildTarget: Android
|
buildTarget: Android
|
||||||
maxTextureSize: 2048
|
maxTextureSize: 2048
|
||||||
@@ -110,13 +126,13 @@ TextureImporter:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
sprites:
|
sprites:
|
||||||
- serializedVersion: 2
|
- serializedVersion: 2
|
||||||
name: iconTask3_0
|
name: Square
|
||||||
rect:
|
rect:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 154
|
x: 0
|
||||||
y: 231
|
y: 0
|
||||||
width: 632
|
width: 256
|
||||||
height: 655
|
height: 256
|
||||||
alignment: 0
|
alignment: 0
|
||||||
pivot: {x: 0.5, y: 0.5}
|
pivot: {x: 0.5, y: 0.5}
|
||||||
border: {x: 0, y: 0, z: 0, w: 0}
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
@@ -125,17 +141,21 @@ TextureImporter:
|
|||||||
physicsShape: []
|
physicsShape: []
|
||||||
tessellationDetail: 0
|
tessellationDetail: 0
|
||||||
bones: []
|
bones: []
|
||||||
spriteID: 252520bbad7c9374e90d1c950b8482d6
|
spriteID: 2d009a6b596c7d760800000000000000
|
||||||
internalID: 1481922406
|
internalID: 7482667652216324306
|
||||||
vertices: []
|
vertices: []
|
||||||
indices:
|
indices:
|
||||||
edges: []
|
edges: []
|
||||||
weights: []
|
weights: []
|
||||||
outline: []
|
outline: []
|
||||||
customData:
|
customData:
|
||||||
physicsShape: []
|
physicsShape:
|
||||||
|
- - {x: -128, y: 128}
|
||||||
|
- {x: -128, y: -128}
|
||||||
|
- {x: 128, y: -128}
|
||||||
|
- {x: 128, y: 128}
|
||||||
bones: []
|
bones: []
|
||||||
spriteID: fdab89333c5e8344e98af4bef992c422
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
internalID: 0
|
internalID: 0
|
||||||
vertices: []
|
vertices: []
|
||||||
indices:
|
indices:
|
||||||
@@ -145,7 +165,7 @@ TextureImporter:
|
|||||||
spriteCustomMetadata:
|
spriteCustomMetadata:
|
||||||
entries: []
|
entries: []
|
||||||
nameFileIdTable:
|
nameFileIdTable:
|
||||||
iconTask3_0: 1481922406
|
Square: 7482667652216324306
|
||||||
mipmapLimitGroupName:
|
mipmapLimitGroupName:
|
||||||
pSDRemoveMatte: 0
|
pSDRemoveMatte: 0
|
||||||
userData:
|
userData:
|
||||||
@@ -363,12 +363,20 @@ MonoBehaviour:
|
|||||||
_healthImage: {fileID: 0}
|
_healthImage: {fileID: 0}
|
||||||
_iconTaskMain: {fileID: 5100466107490290627}
|
_iconTaskMain: {fileID: 5100466107490290627}
|
||||||
_listIconTask:
|
_listIconTask:
|
||||||
- {fileID: 1049366989, guid: 4276d7122cfaf624f8aa32336fc90f1c, type: 3}
|
- {fileID: -1053361621, guid: 75fb3bbb7c9421e4d8bf0728cf2b59b1, type: 3}
|
||||||
- {fileID: -61588767, guid: 454cf3e89d0aaa54b9c60ca081ff5f46, type: 3}
|
- {fileID: -263451151, guid: 75fb3bbb7c9421e4d8bf0728cf2b59b1, type: 3}
|
||||||
- {fileID: 1481922406, guid: 13278f4394269834cb244620cd66c803, type: 3}
|
- {fileID: 258506963, guid: 75fb3bbb7c9421e4d8bf0728cf2b59b1, type: 3}
|
||||||
- {fileID: 799372409, guid: f666d782d2b84fa48912bb3166f214aa, type: 3}
|
- {fileID: -2063219569, guid: 75fb3bbb7c9421e4d8bf0728cf2b59b1, type: 3}
|
||||||
- {fileID: 1342343447, guid: c27a0fab8aef4d74787fe56595601d9f, type: 3}
|
- {fileID: -2122663845, guid: 75fb3bbb7c9421e4d8bf0728cf2b59b1, type: 3}
|
||||||
- {fileID: 1458661374, guid: 6deb3d497e3c2a44cb875be0f13bbf36, type: 3}
|
- {fileID: 1945827619, guid: 75fb3bbb7c9421e4d8bf0728cf2b59b1, type: 3}
|
||||||
|
- {fileID: -1771957928, guid: 75fb3bbb7c9421e4d8bf0728cf2b59b1, type: 3}
|
||||||
|
- {fileID: -1558989898, guid: 75fb3bbb7c9421e4d8bf0728cf2b59b1, type: 3}
|
||||||
|
- {fileID: 1189468312, guid: 75fb3bbb7c9421e4d8bf0728cf2b59b1, type: 3}
|
||||||
|
- {fileID: 1077363315, guid: 75fb3bbb7c9421e4d8bf0728cf2b59b1, type: 3}
|
||||||
|
- {fileID: 1705495320, guid: 75fb3bbb7c9421e4d8bf0728cf2b59b1, type: 3}
|
||||||
|
- {fileID: 536497386, guid: 75fb3bbb7c9421e4d8bf0728cf2b59b1, type: 3}
|
||||||
|
- {fileID: -440769636, guid: 75fb3bbb7c9421e4d8bf0728cf2b59b1, type: 3}
|
||||||
|
- {fileID: 844877792, guid: 75fb3bbb7c9421e4d8bf0728cf2b59b1, type: 3}
|
||||||
--- !u!1 &6510845919681767284
|
--- !u!1 &6510845919681767284
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using BrewMonster;
|
using BrewMonster;
|
||||||
using BrewMonster.Network;
|
using BrewMonster.Network;
|
||||||
using BrewMonster.Scripts;
|
using BrewMonster.Scripts;
|
||||||
|
using BrewMonster.Scripts.Managers;
|
||||||
using BrewMonster.Scripts.World;
|
using BrewMonster.Scripts.World;
|
||||||
using BrewMonster.UI;
|
using BrewMonster.UI;
|
||||||
using CSNetwork;
|
using CSNetwork;
|
||||||
@@ -46,6 +47,8 @@ public partial class CECGameRun
|
|||||||
|
|
||||||
static RoleInfo l_SelRoleInfo; // Selected character's role info.
|
static RoleInfo l_SelRoleInfo; // Selected character's role info.
|
||||||
|
|
||||||
|
private int m_iDExpEndTime = 0;
|
||||||
|
|
||||||
|
|
||||||
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
|
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
|
||||||
private static void AfterSceneLoad()
|
private static void AfterSceneLoad()
|
||||||
@@ -525,4 +528,179 @@ public partial class CECGameRun
|
|||||||
}
|
}
|
||||||
return szRet;
|
return szRet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Add a fixed message to chat system with optional formatting parameters
|
||||||
|
/// 添加固定消息到聊天系统,支持可选的格式化参数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="iMsg">Fixed message ID / 固定消息ID</param>
|
||||||
|
/// <param name="args">Optional formatting arguments / 可选的格式化参数</param>
|
||||||
|
public void AddFixedMessage(int iMsg, params object[] args)
|
||||||
|
{
|
||||||
|
CECStringTab pStrTab = EC_Game.GetFixedMsgs();
|
||||||
|
if (pStrTab == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarning("[AddFixedMessage] Failed to get fixed message table");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
string szFixMsg = pStrTab.GetWideString(iMsg);
|
||||||
|
if (string.IsNullOrEmpty(szFixMsg))
|
||||||
|
{
|
||||||
|
Debug.LogWarning($"[AddFixedMessage] Fixed message {iMsg} not found");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Format the message with provided arguments
|
||||||
|
string szFormattedMsg;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (args != null && args.Length > 0)
|
||||||
|
{
|
||||||
|
szFormattedMsg = string.Format(szFixMsg, args);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
szFormattedMsg = szFixMsg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (System.FormatException ex)
|
||||||
|
{
|
||||||
|
Debug.LogError($"[AddFixedMessage] Format error for message {iMsg}: {ex.Message}");
|
||||||
|
szFormattedMsg = szFixMsg; // Use unformatted message as fallback
|
||||||
|
}
|
||||||
|
|
||||||
|
// Try to add to in-game UI chat
|
||||||
|
CECGameUIMan pGameUI = m_pUIManager?.GetInGameUIMan();
|
||||||
|
if (pGameUI != null)
|
||||||
|
{
|
||||||
|
//pGameUI.AddChatMessage(szFormattedMsg, (int)GP_CHAT.GP_CHAT_SYSTEM);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Fallback to debug output if UI is not available
|
||||||
|
Debug.Log($"[System] {szFormattedMsg}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Add a fixed message to specific chat channel with optional formatting
|
||||||
|
/// 添加固定消息到指定聊天频道,支持可选的格式化
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="iMsg">Fixed message ID / 固定消息ID</param>
|
||||||
|
/// <param name="cChannel">Chat channel ID / 聊天频道ID</param>
|
||||||
|
/// <param name="args">Optional formatting arguments / 可选的格式化参数</param>
|
||||||
|
public void AddFixedChannelMsg(int iMsg, int cChannel, params object[] args)
|
||||||
|
{
|
||||||
|
CECStringTab pStrTab = EC_Game.GetFixedMsgs();
|
||||||
|
if (pStrTab == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarning("[AddFixedChannelMsg] Failed to get fixed message table");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
string szFixMsg = pStrTab.GetWideString(iMsg);
|
||||||
|
if (string.IsNullOrEmpty(szFixMsg))
|
||||||
|
{
|
||||||
|
Debug.LogWarning($"[AddFixedChannelMsg] Fixed message {iMsg} not found");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Format the message with provided arguments
|
||||||
|
string szFormattedMsg;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (args != null && args.Length > 0)
|
||||||
|
{
|
||||||
|
szFormattedMsg = string.Format(szFixMsg, args);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
szFormattedMsg = szFixMsg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (System.FormatException ex)
|
||||||
|
{
|
||||||
|
Debug.LogError($"[AddFixedChannelMsg] Format error for message {iMsg}: {ex.Message}");
|
||||||
|
szFormattedMsg = szFixMsg; // Use unformatted message as fallback
|
||||||
|
}
|
||||||
|
|
||||||
|
// Try to add to in-game UI chat with specific channel
|
||||||
|
CECGameUIMan pGameUI = m_pUIManager?.GetInGameUIMan();
|
||||||
|
if (pGameUI != null)
|
||||||
|
{
|
||||||
|
//pGameUI.AddChatMessage(szFormattedMsg, cChannel);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Fallback to debug output if UI is not available
|
||||||
|
Debug.Log($"[Channel {cChannel}] {szFormattedMsg}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Add a chat message with full parameters (matching C++ signature)
|
||||||
|
/// 添加聊天消息(完整参数版本,匹配C++签名)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pszMsg">Message text / 消息文本</param>
|
||||||
|
/// <param name="cChannel">Chat channel / 聊天频道</param>
|
||||||
|
/// <param name="idPlayer">Player ID (default -1) / 玩家ID</param>
|
||||||
|
/// <param name="szName">Player name (optional) / 玩家名称</param>
|
||||||
|
/// <param name="byFlag">Message flag (default 0) / 消息标志</param>
|
||||||
|
/// <param name="cEmotion">Emotion ID (default 0) / 表情ID</param>
|
||||||
|
/// <param name="pItem">Related item (optional) / 相关物品</param>
|
||||||
|
/// <param name="pszMsgOrigion">Original message (optional) / 原始消息</param>
|
||||||
|
public void AddChatMessage(string pszMsg, int cChannel, int idPlayer = -1,
|
||||||
|
string szName = null, byte byFlag = 0, int cEmotion = 0,
|
||||||
|
EC_IvtrItem pItem = null, string pszMsgOrigion = null)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(pszMsg))
|
||||||
|
return;
|
||||||
|
|
||||||
|
CECGameUIMan pGameUI = m_pUIManager?.GetInGameUIMan();
|
||||||
|
if (pGameUI != null)
|
||||||
|
{
|
||||||
|
// Call UI manager's AddChatMessage with full parameters
|
||||||
|
//pGameUI.AddChatMessage(pszMsg, cChannel, idPlayer, szName, byFlag, cEmotion, pItem, pszMsgOrigion);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Fallback to debug output if UI is not available
|
||||||
|
Debug.Log($"[Channel {cChannel}] {pszMsg}");
|
||||||
|
|
||||||
|
// Note: In C++ original, pItem is deleted here if UI is not available
|
||||||
|
// In C#, we don't need explicit deletion due to garbage collection
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get remaining double experience time in seconds
|
||||||
|
/// 获取剩余双倍经验时间(秒)
|
||||||
|
/// </summary>
|
||||||
|
public int GetRemainDblExpTime()
|
||||||
|
{
|
||||||
|
int iRemainTime = m_iDExpEndTime - GetServerAbsTime();
|
||||||
|
if (iRemainTime < 0) iRemainTime = 0;
|
||||||
|
return iRemainTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get server absolute time
|
||||||
|
/// 获取服务器绝对时间
|
||||||
|
/// </summary>
|
||||||
|
public int GetServerAbsTime()
|
||||||
|
{
|
||||||
|
// TODO: Implement server time synchronization
|
||||||
|
// This should return the synchronized server timestamp
|
||||||
|
return (int)(System.DateTime.UtcNow.Subtract(new System.DateTime(1970, 1, 1))).TotalSeconds;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Set double experience end time
|
||||||
|
/// 设置双倍经验结束时间
|
||||||
|
/// </summary>
|
||||||
|
public void SetDExpEndTime(int endTime)
|
||||||
|
{
|
||||||
|
m_iDExpEndTime = endTime;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ using BrewMonster.Assets.PerfectWorld.Scripts.Players;
|
|||||||
using BrewMonster.Managers;
|
using BrewMonster.Managers;
|
||||||
using BrewMonster.Network;
|
using BrewMonster.Network;
|
||||||
using BrewMonster.PerfectWorld.Scripts.Vfx;
|
using BrewMonster.PerfectWorld.Scripts.Vfx;
|
||||||
using BrewMonster.PerfectWorld.Scripts.Vfx;
|
|
||||||
using BrewMonster.Scripts;
|
using BrewMonster.Scripts;
|
||||||
using BrewMonster.Scripts.Managers;
|
using BrewMonster.Scripts.Managers;
|
||||||
using BrewMonster.Scripts.Skills;
|
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 cmd_select_target = CSNetwork.GPDataType.cmd_select_target;
|
||||||
using Host_work_ID = BrewMonster.Scripts.CECHPWork.Host_work_ID;
|
using Host_work_ID = BrewMonster.Scripts.CECHPWork.Host_work_ID;
|
||||||
using Trace_reason = BrewMonster.CECHPWorkTrace.Trace_reason;
|
using Trace_reason = BrewMonster.CECHPWorkTrace.Trace_reason;
|
||||||
|
using ObjectCoords = System.Collections.Generic.List<CSNetwork.GPDataType.OBJECT_COORD>;
|
||||||
namespace BrewMonster
|
namespace BrewMonster
|
||||||
{
|
{
|
||||||
public partial class CECHostPlayer : CECPlayer
|
public partial class CECHostPlayer : CECPlayer
|
||||||
@@ -50,6 +49,7 @@ namespace BrewMonster
|
|||||||
public bool m_bPrepareFight = false; // true, prepare to fight
|
public bool m_bPrepareFight = false; // true, prepare to fight
|
||||||
private int m_iJumpCount = 0;
|
private int m_iJumpCount = 0;
|
||||||
private bool m_bJumpInWater = false;
|
private bool m_bJumpInWater = false;
|
||||||
|
private int m_iMoveEnv;
|
||||||
|
|
||||||
public A3DVECTOR3 m_vVelocity; // Velocity
|
public A3DVECTOR3 m_vVelocity; // Velocity
|
||||||
|
|
||||||
@@ -87,6 +87,8 @@ namespace BrewMonster
|
|||||||
List<ushort> m_aWayPoints = new List<ushort>(); // Active way points
|
List<ushort> m_aWayPoints = new List<ushort>(); // Active way points
|
||||||
bool m_bIsInKingService = false; // ÊÇ·ñÕýÔÚ½øÐйúÍõ·þÎñ²Ù×÷
|
bool m_bIsInKingService = false; // ÊÇ·ñÕýÔÚ½øÐйúÍõ·þÎñ²Ù×÷
|
||||||
CECActionSwitcherBase m_pActionSwitcher;
|
CECActionSwitcherBase m_pActionSwitcher;
|
||||||
|
private int m_iWorldContribution;
|
||||||
|
private int m_iWorldContributionSpend;
|
||||||
private bool m_bSpellDSkill;
|
private bool m_bSpellDSkill;
|
||||||
private CECSkill m_pCurSkill;
|
private CECSkill m_pCurSkill;
|
||||||
private CECSkill m_pTargetItemSkill; // Target item skill
|
private CECSkill m_pTargetItemSkill; // Target item skill
|
||||||
@@ -220,6 +222,8 @@ namespace BrewMonster
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get navigate player // 获取导航玩家
|
// Get navigate player // 获取导航玩家
|
||||||
|
public int GetWorldContribution() { return m_iWorldContribution; }
|
||||||
|
public int GetWorldContributionSpend() { return m_iWorldContributionSpend; }
|
||||||
private CECHostNavigatePlayer m_pNavigatePlayer = null;
|
private CECHostNavigatePlayer m_pNavigatePlayer = null;
|
||||||
public CECHostNavigatePlayer GetNavigatePlayer()
|
public CECHostNavigatePlayer GetNavigatePlayer()
|
||||||
{
|
{
|
||||||
@@ -562,6 +566,8 @@ namespace BrewMonster
|
|||||||
break;
|
break;
|
||||||
case int value when value == EC_MsgDef.MSG_HST_SELTARGET:
|
case int value when value == EC_MsgDef.MSG_HST_SELTARGET:
|
||||||
OnMsgHstSelTarget(Msg); break;
|
OnMsgHstSelTarget(Msg); break;
|
||||||
|
case int value when value == EC_MsgDef.MSG_HST_USEITEM:OnMsgHstUseItem(Msg);
|
||||||
|
break;
|
||||||
case int value when value == EC_MsgDef.MSG_HST_ATKRESULT: OnMsgHstAttackResult(Msg); break;
|
case int value when value == EC_MsgDef.MSG_HST_ATKRESULT: OnMsgHstAttackResult(Msg); break;
|
||||||
case int value when value == EC_MsgDef.MSG_HST_ATTACKED: OnMsgHstAttacked(Msg); break;
|
case int value when value == EC_MsgDef.MSG_HST_ATTACKED: OnMsgHstAttacked(Msg); break;
|
||||||
case int value when value == EC_MsgDef.MSG_HST_HURTRESULT: OnMsgHstHurtResult(Msg); break;
|
case int value when value == EC_MsgDef.MSG_HST_HURTRESULT: OnMsgHstHurtResult(Msg); break;
|
||||||
@@ -675,8 +681,9 @@ namespace BrewMonster
|
|||||||
COOLTIME ct = m_aCoolTimes[pCmd.cooldown_index];
|
COOLTIME ct = m_aCoolTimes[pCmd.cooldown_index];
|
||||||
ct.iCurTime = pCmd.cooldown_time;
|
ct.iCurTime = pCmd.cooldown_time;
|
||||||
ct.iMaxTime = pCmd.cooldown_time;
|
ct.iMaxTime = pCmd.cooldown_time;
|
||||||
|
Debug.Log("New Max cool time forIvtrMedicine: it be: " + pCmd.cooldown_time);
|
||||||
Math.Min(ct.iCurTime, ct.iMaxTime);
|
Math.Min(ct.iCurTime, ct.iMaxTime);
|
||||||
|
m_aCoolTimes[pCmd.cooldown_index] = ct;
|
||||||
if (pCmd.cooldown_index == (int)CoolTimeIndex.GP_CT_CAST_ELF_SKILL)
|
if (pCmd.cooldown_index == (int)CoolTimeIndex.GP_CT_CAST_ELF_SKILL)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@@ -704,7 +711,7 @@ namespace BrewMonster
|
|||||||
CECSkill pSkill = GetPositiveSkillByIndex(i);
|
CECSkill pSkill = GetPositiveSkillByIndex(i);
|
||||||
int fakeRef = 0;
|
int fakeRef = 0;
|
||||||
if (pSkill != null && (pSkill.GetCommonCoolDown() & mask) != 0)
|
if (pSkill != null && (pSkill.GetCommonCoolDown() & mask) != 0)
|
||||||
pSkill.StartCooling(GetCoolTime(pCmd.cooldown_index, ref fakeRef), GetCoolTime(pCmd.cooldown_index, ref fakeRef));
|
pSkill.StartCooling(GetCoolTime(pCmd.cooldown_index, out fakeRef), GetCoolTime(pCmd.cooldown_index, out fakeRef));
|
||||||
}
|
}
|
||||||
/*const std::map<unsigned int, CECSkill*>&inherentSkillMap = CECComboSkillState::Instance().GetInherentSkillMap();
|
/*const std::map<unsigned int, CECSkill*>&inherentSkillMap = CECComboSkillState::Instance().GetInherentSkillMap();
|
||||||
std::map < unsigned int, CECSkill*>::const_iterator it;
|
std::map < unsigned int, CECSkill*>::const_iterator it;
|
||||||
@@ -3412,6 +3419,12 @@ namespace BrewMonster
|
|||||||
return m_iJumpCount > 0;
|
return m_iJumpCount > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool IsFalling()
|
||||||
|
{
|
||||||
|
return m_iMoveEnv == (int)MoveEnvironment.MOVEENV_GROUND
|
||||||
|
&& m_GndInfo.bOnGround == false;
|
||||||
|
}
|
||||||
|
|
||||||
public bool IsPlayingAction(int iAction)
|
public bool IsPlayingAction(int iAction)
|
||||||
{
|
{
|
||||||
if (iAction == (int)PLAYER_ACTION_TYPE.ACT_WALK) //&& _playerStateMachine.State is PlayerMoveState
|
if (iAction == (int)PLAYER_ACTION_TYPE.ACT_WALK) //&& _playerStateMachine.State is PlayerMoveState
|
||||||
@@ -6089,13 +6102,13 @@ namespace BrewMonster
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get cool time
|
// Get cool time
|
||||||
public int GetCoolTime(int iIndex, ref int piMax /* NULL */)
|
public virtual int GetCoolTime(int iIndex, out int piMax /* NULL */)
|
||||||
{
|
{
|
||||||
|
piMax = 1;
|
||||||
if (iIndex >= 0 && iIndex < (int)CoolTimeIndex.GP_CT_MAX)
|
if (iIndex >= 0 && iIndex < (int)CoolTimeIndex.GP_CT_MAX)
|
||||||
{
|
{
|
||||||
if (piMax > 0)
|
if (piMax > 0)
|
||||||
piMax = m_aCoolTimes[iIndex].iMaxTime;
|
piMax = m_aCoolTimes[iIndex].iMaxTime;
|
||||||
|
|
||||||
return m_aCoolTimes[iIndex].iCurTime;
|
return m_aCoolTimes[iIndex].iCurTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6978,7 +6991,7 @@ namespace BrewMonster
|
|||||||
}
|
}
|
||||||
return iItemCnt;
|
return iItemCnt;
|
||||||
}
|
}
|
||||||
bool CanUseEquipment(EC_IvtrEquip pEquip, ref int piReason)
|
public bool CanUseEquipment(EC_IvtrEquip pEquip, ref int piReason)
|
||||||
{
|
{
|
||||||
int iReason = 0;
|
int iReason = 0;
|
||||||
if(pEquip == null)
|
if(pEquip == null)
|
||||||
@@ -7059,5 +7072,622 @@ namespace BrewMonster
|
|||||||
{
|
{
|
||||||
return m_pPetCorral;
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool UseItemInPack(int iPack, int iSlot, bool showMsg = true)
|
||||||
|
{
|
||||||
|
if(!CanDo(ActionCanDo.CANDO_USEITEM))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
EC_Inventory pPack = GetPack(iPack);
|
||||||
|
if (pPack == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
EC_IvtrItem pItem = pPack.GetItem(iSlot);
|
||||||
|
if (pItem == null || pItem.IsFrozen())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if(pItem.Use_Persist() && (IsJumping() || IsFalling()))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
CECGameRun pGameRun = EC_Game.GetGameRun();
|
||||||
|
//CECGameSession pSession = g_pGame.GetGameSession();
|
||||||
|
|
||||||
|
if (pItem.GetClassID() == (int)EC_IvtrItem.InventoryClassId.ICID_TRANSMITSCROLL)
|
||||||
|
{
|
||||||
|
CECGameUIMan pGameUI = pGameRun.GetUIManager().GetInGameUIMan();
|
||||||
|
if (pGameUI != null && !IsFighting())
|
||||||
|
{
|
||||||
|
// TODO: Implement travel map dialog
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pItem.GetClassID() == (int)EC_IvtrItem.InventoryClassId.ICID_TARGETITEM)
|
||||||
|
{
|
||||||
|
EC_IvtrTargetItem pTargetItem = pItem as EC_IvtrTargetItem;
|
||||||
|
if(pTargetItem == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
var essence = pTargetItem.GetDBEssence();
|
||||||
|
|
||||||
|
if(!pTargetItem.IsEssenceLoaded())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (IsFighting() && essence.use_in_combat == 0)
|
||||||
|
{
|
||||||
|
if (showMsg)
|
||||||
|
if (showMsg) pGameRun.AddFixedMessage((int)FixedMsg.FIXMSG_CANNOT_USE_IN_BATTLE);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pTargetItem.GetDBEssence().use_in_sanctuary_only != 0 && !IsInSanctuary())
|
||||||
|
{
|
||||||
|
if (showMsg)
|
||||||
|
pGameRun.AddFixedMessage((int)FixedMsg.FIXMSG_USE_IN_SANCTUARY_ONLY);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int iCurrMap = pGameRun.GetWorld().GetInstanceID();
|
||||||
|
if (pTargetItem.GetDBEssence().num_area != 0)
|
||||||
|
{
|
||||||
|
bool found = false;
|
||||||
|
for (int i = 0; i < pTargetItem.GetDBEssence().num_area; i++)
|
||||||
|
{
|
||||||
|
if (pTargetItem.GetDBEssence().area_id[i] == iCurrMap)
|
||||||
|
{
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!found)
|
||||||
|
{
|
||||||
|
if(showMsg)
|
||||||
|
pGameRun.AddFixedMessage((int)FixedMsg.FIXMSG_CANNOT_USE_IN_CURR_MAP);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!CanDo(ActionCanDo.CANDO_SPELLMAGIC))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (InSlidingState())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (m_idSelTarget == 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
CECSkill pSkill = pTargetItem.GetTargetSkill();
|
||||||
|
if (pSkill == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (IsSpellingMagic() && m_pCurSkill != null && m_pCurSkill.IsCharging() &&
|
||||||
|
m_pCurSkill.GetSkillID() == pSkill.GetSkillID())
|
||||||
|
{
|
||||||
|
m_pCurSkill.EndCharging();
|
||||||
|
UnityGameSession.c2s_SendCmdContinueAction();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
int iCon = CheckSkillCastCondition(pSkill);
|
||||||
|
if (iCon != 0)
|
||||||
|
{
|
||||||
|
if (showMsg)
|
||||||
|
ProcessSkillCondition(iCon);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool bForceAttack = glb_GetForceAttackFlag(0);
|
||||||
|
if (pSkill.GetType() == (int)CECSkill.SkillType.TYPE_ATTACK ||
|
||||||
|
pSkill.GetType() == (int)CECSkill.SkillType.TYPE_CURSE)
|
||||||
|
{
|
||||||
|
if (m_idSelTarget == m_PlayerInfo.cid)
|
||||||
|
{
|
||||||
|
if (showMsg)
|
||||||
|
pGameRun.AddFixedChannelMsg((int)FixedMsg.FIXMSG_TARGETWRONG, (int)ChatChannel.GP_CHAT_FIGHT);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if (m_idSelTarget != 0)
|
||||||
|
{
|
||||||
|
if (AttackableJudge(m_idSelTarget, bForceAttack) != 1)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int idCastTarget = m_idSelTarget;
|
||||||
|
int iTargetType = pSkill.GetTargetType();
|
||||||
|
|
||||||
|
if (pSkill.GetType() == (int)CECSkill.SkillType.TYPE_BLESS ||
|
||||||
|
pSkill.GetType() == (int)CECSkill.SkillType.TYPE_NEUTRALBLESS)
|
||||||
|
{
|
||||||
|
if(iTargetType == 0 || !GPDataTypeHelper.ISPLAYERID(m_idSelTarget))
|
||||||
|
idCastTarget = m_PlayerInfo.cid;
|
||||||
|
|
||||||
|
if (GPDataTypeHelper.ISPLAYERID(idCastTarget) && idCastTarget != m_PlayerInfo.cid)
|
||||||
|
{
|
||||||
|
byte byBLSMask = EC_Utility.glb_BuildBLSMask();
|
||||||
|
|
||||||
|
if (pSkill.GetRangeType() == (int)CECSkill.RangeType.RANGE_POINT)
|
||||||
|
{
|
||||||
|
if (!IsTeamMember(idCastTarget))
|
||||||
|
{
|
||||||
|
if ((byBLSMask & (byte)PVPMask.GP_BLSMASK_SELF) != 0)
|
||||||
|
{
|
||||||
|
idCastTarget = m_PlayerInfo.cid;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
EC_ElsePlayer pPlayer = EC_ManMessageMono.Instance.GetECManPlayer.GetElsePlayer(idCastTarget) as EC_ElsePlayer;
|
||||||
|
if(pPlayer == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (pPlayer.IsInvader() || pPlayer.IsPariah())
|
||||||
|
{
|
||||||
|
if((byBLSMask & (byte)PVPMask.GP_BLSMASK_NORED) != 0)
|
||||||
|
idCastTarget = m_PlayerInfo.cid;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!IsFactionMember(pPlayer.GetFactionID()))
|
||||||
|
{
|
||||||
|
if ((byBLSMask & (byte)PVPMask.GP_BLSMASK_NOMAFIA) != 0)
|
||||||
|
idCastTarget = m_PlayerInfo.cid;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!IsFactionAllianceMember(pPlayer.GetFactionID()))
|
||||||
|
{
|
||||||
|
if((byBLSMask & (byte)PVPMask.GP_BLSMASK_NOALLIANCE) != 0)
|
||||||
|
idCastTarget = m_PlayerInfo.cid;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GetForce() != pPlayer.GetForce())
|
||||||
|
{
|
||||||
|
if((byBLSMask & (byte)PVPMask.GP_BLSMASK_NOFORCE) != 0)
|
||||||
|
idCastTarget = m_PlayerInfo.cid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If host is in dule
|
||||||
|
if(IsInDuel() && m_idSelTarget == m_pvp.idDuelOpp)
|
||||||
|
idCastTarget = m_PlayerInfo.cid;
|
||||||
|
|
||||||
|
// If host is in battle
|
||||||
|
if (IsInBattle())
|
||||||
|
{
|
||||||
|
EC_ElsePlayer pPlayer = EC_ManMessageMono.Instance.GetECManPlayer.GetElsePlayer(idCastTarget);
|
||||||
|
if (!InSameBattleCamp(pPlayer))
|
||||||
|
idCastTarget = m_PlayerInfo.cid;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (iTargetType != 0)
|
||||||
|
{
|
||||||
|
int iAliveFlag = 0;
|
||||||
|
if (iTargetType == 1)
|
||||||
|
iTargetType = 1;
|
||||||
|
else if (iTargetType == 2)
|
||||||
|
iTargetType = 2;
|
||||||
|
|
||||||
|
CECObject pObject = EC_ManMessageMono.Instance.GetObject(idCastTarget, iAliveFlag);
|
||||||
|
if(pObject == null)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!IsMeleeing() && !IsSpellingMagic() &&
|
||||||
|
(iTargetType == 0 || idCastTarget == m_PlayerInfo.cid))
|
||||||
|
{
|
||||||
|
if(!pSkill.ReadyToCast())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (!pSkill.IsInstant() && pSkill.GetType() != (int)CECSkill.SkillType.TYPE_FLASHMOVE)
|
||||||
|
{
|
||||||
|
// TODO: Implement NaturallyStopMoving
|
||||||
|
//if (!NaturallyStopMoving())
|
||||||
|
// return false;
|
||||||
|
}
|
||||||
|
else if (pSkill.GetType() == (int)CECSkill.SkillType.TYPE_FLASHMOVE)
|
||||||
|
{
|
||||||
|
if(!CanDo(ActionCanDo.CANDO_FLASHMOVE))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_pPrepSkill = pSkill;
|
||||||
|
}
|
||||||
|
else if (IsSpellingMagic() && m_pCurSkill == pSkill && !pSkill.ReadyToCast())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (pItem.IsEquipment())
|
||||||
|
{
|
||||||
|
if (iPack == Inventory_type.IVTRTYPE_EQUIPPACK)
|
||||||
|
{
|
||||||
|
// Take off equipment
|
||||||
|
int iEmpty = m_pPack.SearchEmpty();
|
||||||
|
if (iEmpty < 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
UnityGameSession.RequestEquipItemAsync((byte)iEmpty, (byte)iSlot, null);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
EC_IvtrEquip pEquip = pItem as EC_IvtrEquip;
|
||||||
|
if(pEquip == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
int iReason = 0;
|
||||||
|
if(!CanUseEquipment(pEquip, ref iReason))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
int iFirstFree = -1, iFirstCan = -1;
|
||||||
|
for (int i = 0; i < InventoryConst.SIZE_ALL_EQUIPIVTR; i++)
|
||||||
|
{
|
||||||
|
if (pItem.CanEquippedTo(i))
|
||||||
|
{
|
||||||
|
if (iFirstCan < 0)
|
||||||
|
iFirstCan = i;
|
||||||
|
|
||||||
|
if (m_pEquipPack.GetItem(i) == null && iFirstFree < 0)
|
||||||
|
{
|
||||||
|
iFirstFree = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int iDst;
|
||||||
|
if (iFirstFree >= 0)
|
||||||
|
iDst = iFirstFree;
|
||||||
|
else if (iFirstCan >= 0)
|
||||||
|
iDst = iFirstCan;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.Assert(false);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pItem.GetClassID() == (int)EC_IvtrItem.InventoryClassId.ICID_ARROW ||
|
||||||
|
pItem.GetClassID() == (int)EC_IvtrItem.InventoryClassId.ICID_DYNSKILLEQUIP)
|
||||||
|
{
|
||||||
|
EC_IvtrItem pDstItem = m_pEquipPack.GetItem(iDst);
|
||||||
|
if (pDstItem == null || pItem.GetTemplateID() != pDstItem.GetTemplateID())
|
||||||
|
UnityGameSession.RequestEquipItemAsync((byte)iSlot, (byte)iDst, null);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//UnityGameSession.c2s_CmdMoveItemToEquip((byte)iSlot, (byte)iDst);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (pItem.GetClassID() == (int)EC_IvtrItem.InventoryClassId.ICID_GENERALCARD)
|
||||||
|
{
|
||||||
|
//TODO: Add general card equip request
|
||||||
|
}
|
||||||
|
UnityGameSession.RequestEquipItemAsync((byte)iSlot, (byte)iDst, null);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(iPack != Inventory_type.IVTRTYPE_PACK)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (!pItem.CheckUseCondition())
|
||||||
|
{
|
||||||
|
if (showMsg)
|
||||||
|
pGameRun.AddFixedMessage((int)FixedMsg.FIXMSG_ITEM_CANNOTUSE);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int piMax = -1;
|
||||||
|
if (pItem.GetCoolTime(out piMax) > 0)
|
||||||
|
{
|
||||||
|
if (showMsg)
|
||||||
|
pGameRun.AddFixedMessage((int)FixedMsg.FIXMSG_ITEM_INCOOLTIME);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pItem.Use_AtkTarget() || pItem.Use_Target())
|
||||||
|
{
|
||||||
|
if(pItem.Use_AtkTarget() && CannotAttack())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (m_idSelTarget == 0 || m_idSelTarget == m_PlayerInfo.cid)
|
||||||
|
{
|
||||||
|
if (showMsg)
|
||||||
|
{
|
||||||
|
CECStringTab pStrTab = EC_Game.GetFixedMsgs();
|
||||||
|
pGameRun.AddChatMessage(pStrTab.GetWideString((int)FixedMsg.FIXMSG_NOTARGET), (int)ChatChannel.GP_CHAT_SYSTEM);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
float fAattackRange = 10000.0f;
|
||||||
|
if (pItem.GetClassID() == (int)EC_IvtrItem.InventoryClassId.ICID_TOSSMAT)
|
||||||
|
{
|
||||||
|
EC_IvtrTossMat pTossMat = pItem as EC_IvtrTossMat;
|
||||||
|
if (pTossMat != null)
|
||||||
|
fAattackRange = pTossMat.GetDBEssence().attack_range;
|
||||||
|
}
|
||||||
|
else if (pItem.GetClassID() == (int)EC_IvtrItem.InventoryClassId.ICID_TANKCALLIN)
|
||||||
|
{
|
||||||
|
fAattackRange = 5.0f;
|
||||||
|
}
|
||||||
|
else if (pItem.GetClassID() == (int)EC_IvtrItem.InventoryClassId.ICID_TARGETITEM)
|
||||||
|
{
|
||||||
|
EC_IvtrTargetItem pTargetItem = pItem as EC_IvtrTargetItem;
|
||||||
|
if (pTargetItem != null && pTargetItem.GetTargetSkill() != null)
|
||||||
|
{
|
||||||
|
fAattackRange = pTargetItem.GetTargetSkill().GetCastRange(m_ExtProps.ak.AttackRange, GetPrayDistancePlus());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
float fDist = 0, fTargetRag = 0;
|
||||||
|
CECObject pObject = null;
|
||||||
|
//if (CalcDist(m_idSelTarget, ref fDist, ref pObject))
|
||||||
|
//{
|
||||||
|
// return false;
|
||||||
|
//}
|
||||||
|
|
||||||
|
if (GPDataTypeHelper.ISNPCID(m_idSelTarget))
|
||||||
|
{
|
||||||
|
CECNPC pNPC = pObject as CECNPC;
|
||||||
|
if (pNPC != null)
|
||||||
|
fTargetRag = pNPC.GetTouchRadius();
|
||||||
|
}
|
||||||
|
else if (GPDataTypeHelper.ISPLAYERID(m_idSelTarget))
|
||||||
|
{
|
||||||
|
EC_ElsePlayer pPlayer = pObject as EC_ElsePlayer;
|
||||||
|
if(pPlayer != null)
|
||||||
|
fTargetRag = pPlayer.GetTouchRadius();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fDist - fTargetRag > fAattackRange * 0.8f)
|
||||||
|
{
|
||||||
|
if (showMsg)
|
||||||
|
{
|
||||||
|
CECStringTab pStrTab = EC_Game.GetFixedMsgs();
|
||||||
|
pGameRun.AddChatMessage(pStrTab.GetWideString((int)FixedMsg.FIXMSG_TARGETISFAR), (int)ChatChannel.GP_CHAT_SYSTEM);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
byte byPVPMask = glb_BuildPVPMask(glb_GetForceAttackFlag(0));
|
||||||
|
UnityGameSession.c2s_SendCmdUseItemWithTarget((byte)iPack, (byte)iSlot, pItem.GetTemplateID(), byPVPMask);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (pItem.GetClassID() == (int)EC_IvtrItem.InventoryClassId.ICID_DOUBLEEXP)
|
||||||
|
{
|
||||||
|
EC_IvtrDoubleExp pDoubleExp = pItem as EC_IvtrDoubleExp;
|
||||||
|
if (pDoubleExp != null)
|
||||||
|
{
|
||||||
|
if (pDoubleExp.GetDBEssence().double_exp_time + pGameRun.GetRemainDblExpTime() > 3600 * 4)
|
||||||
|
{
|
||||||
|
if (showMsg)
|
||||||
|
{
|
||||||
|
CECGameUIMan pGameUI = pGameRun.GetUIManager().GetInGameUIMan();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (pItem.GetClassID() == (int)EC_IvtrItem.InventoryClassId.ICID_SHARPENER)
|
||||||
|
{
|
||||||
|
if (showMsg)
|
||||||
|
pGameRun.AddFixedMessage((int)FixedMsg.FIXMSG_SHARPEN_ON_DRAG);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
UnityGameSession.c2s_SendCmdUseItem((byte)iPack, (byte)iSlot, pItem.GetTemplateID(), 1);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnMsgHstUseItem(ECMSG Msg)
|
||||||
|
{
|
||||||
|
cmd_host_use_item pCmd = GPDataTypeHelper.FromBytes<cmd_host_use_item>((byte[])Msg.dwParam1);
|
||||||
|
EC_Inventory pPack = GetPack(pCmd.byPackage);
|
||||||
|
if (pPack == null)
|
||||||
|
{
|
||||||
|
Debug.LogError("[OnMsgHstUseItem] Pack not found");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
EC_IvtrItem pItem = pPack.GetItem(pCmd.bySlot, false);
|
||||||
|
if (pItem == null || pItem.GetTemplateID() != pCmd.item_id)
|
||||||
|
{
|
||||||
|
Debug.LogError($"[OnMsgHstUseItem] Item mismatch at slot {pCmd.bySlot}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
pItem.Use();
|
||||||
|
|
||||||
|
if (pCmd.use_count > 0)
|
||||||
|
{
|
||||||
|
bool removed = pPack.RemoveItem(pCmd.bySlot, pCmd.use_count);
|
||||||
|
if (removed)
|
||||||
|
{
|
||||||
|
if (pPack.GetItem(pCmd.bySlot, false) == null)
|
||||||
|
{
|
||||||
|
Debug.Log($"[OnMsgHstUseItem] Item {pCmd.item_id} removed from slot {pCmd.bySlot}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.LogError($"[OnMsgHstUseItem] Failed to remove item {pCmd.item_id} from slot {pCmd.bySlot}");
|
||||||
|
}
|
||||||
|
|
||||||
|
var ui = GameObject.FindFirstObjectByType<EC_InventoryUI>();
|
||||||
|
if (ui != null)
|
||||||
|
{
|
||||||
|
ui.RefreshAll();
|
||||||
|
ui.UpdateCooldownOverlays();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.LogError("[OnMsgHstUseItem] EC_InventoryUI not found, UI may not update");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_pWorkMan != null)
|
||||||
|
{
|
||||||
|
CECHPWork pWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_USEITEM);
|
||||||
|
if (pWork is CECHPWorkUse useWork)
|
||||||
|
{
|
||||||
|
if(useWork.GetItem() == pCmd.item_id)
|
||||||
|
{
|
||||||
|
m_pWorkMan.FinishRunningWork(Host_work_ID.WORK_USEITEM);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Calculate distance to an object and optionally retrieve the object reference
|
||||||
|
/// 计算到对象的距离,并可选地获取对象引用
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idObject">Target object ID / 目标对象ID</param>
|
||||||
|
/// <param name="pfDist">Output distance / 输出距离</param>
|
||||||
|
/// <param name="ppObject">Output object reference (optional) / 输出对象引用(可选)</param>
|
||||||
|
/// <returns>True if calculation succeeded / 计算成功返回true</returns>
|
||||||
|
//public bool CalcDist(int idObject, ref float pfDist, out CECObject ppObject)
|
||||||
|
//{
|
||||||
|
// ppObject = null;
|
||||||
|
|
||||||
|
// if (idObject == 0 || idObject == m_PlayerInfo.cid)
|
||||||
|
// return false;
|
||||||
|
|
||||||
|
// CECObject pObject = CECGameRun.Instance.GetWorld()?.GetObject(idObject, 1);
|
||||||
|
// if (pObject == null)
|
||||||
|
// return false;
|
||||||
|
|
||||||
|
// ppObject = pObject;
|
||||||
|
// float fDist = 0.0f;
|
||||||
|
|
||||||
|
// if (ISNPCID(idObject))
|
||||||
|
// {
|
||||||
|
// CECNPC pNPC = (CECNPC)pObject;
|
||||||
|
// fDist = pNPC.CalcDist(GetPos(), true);
|
||||||
|
// }
|
||||||
|
// else if (ISPLAYERID(idObject))
|
||||||
|
// {
|
||||||
|
// Debug.Assert(pObject.GetClassID() == CECObject.OCID_ELSEPLAYER);
|
||||||
|
// EC_ElsePlayer pPlayer = (EC_ElsePlayer)pObject;
|
||||||
|
// fDist = pPlayer.CalcDist(GetPos(), true);
|
||||||
|
// }
|
||||||
|
// else if (ISMATTERID(idObject))
|
||||||
|
// {
|
||||||
|
// Debug.Assert(pObject.GetClassID() == CECObject.OCID_MATTER);
|
||||||
|
// CECMatter pMatter = (CECMatter)pObject;
|
||||||
|
// fDist = (pMatter.GetPos() - GetPos()).magnitude;
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// return false;
|
||||||
|
|
||||||
|
// pfDist = fDist;
|
||||||
|
// return true;
|
||||||
|
//}
|
||||||
|
|
||||||
|
//// Helper method overload without object output
|
||||||
|
//public bool CalcDist(int idObject, ref float pfDist)
|
||||||
|
//{
|
||||||
|
// CECObject pObject;
|
||||||
|
// return CalcDist(idObject, ref pfDist, out pObject);
|
||||||
|
//}
|
||||||
|
|
||||||
|
//// ID checking helper methods
|
||||||
|
//private bool ISNPCID(int id) => ((id & 0x80000000) != 0) && ((id & 0x40000000) == 0);
|
||||||
|
//private bool ISPLAYERID(int id) => id != 0 && (id & 0x80000000) == 0;
|
||||||
|
//private bool ISMATTERID(int id) => ((id) & 0xC0000000) == 0xC0000000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||