diff --git a/Assets/PerfectWorld/Resources/UI/DialogScriptTableObject.asset b/Assets/PerfectWorld/Resources/UI/DialogScriptTableObject.asset index a9fbcb99ec..90130a3f87 100644 --- a/Assets/PerfectWorld/Resources/UI/DialogScriptTableObject.asset +++ b/Assets/PerfectWorld/Resources/UI/DialogScriptTableObject.asset @@ -15,3 +15,5 @@ MonoBehaviour: lstPrefabDialog: - id: DialogNPC prefab: {fileID: 8237288432181259026, guid: 7653e7e64393ec24c903f0606499b8c4, type: 3} + - id: Win_Award + prefab: {fileID: 903595479696773158, guid: cf26d96ae7d984ba8a5b6cef44adffeb, type: 3} diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.cs index dcf525698d..ee60ac1a13 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.cs @@ -546,6 +546,7 @@ namespace BrewMonster.Scripts.Managers /// This class intentionally keeps C++-style naming and layout so other C++ systems /// can be ported over with minimal friction. /// + /// TODO: have to rename to CECIvtrItem to match C++ naming public class EC_IvtrItem { // NOTE: The nested enums and fields mirror the original C++ names and values. diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/GPDataType.cs b/Assets/PerfectWorld/Scripts/Network/CSNetwork/GPDataType.cs index 1029be7765..c7fc7fbf7d 100644 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/GPDataType.cs +++ b/Assets/PerfectWorld/Scripts/Network/CSNetwork/GPDataType.cs @@ -1360,6 +1360,25 @@ namespace CSNetwork.GPDataType Marshal.FreeHGlobal(ptr); } } + + public static T FromBytes(byte[] data, ref long startIndex) where T : struct + { + int size = Marshal.SizeOf(); + if (data.Length - startIndex < size) + throw new ArgumentException("Buffer không đủ dữ liệu"); + + IntPtr ptr = Marshal.AllocHGlobal(size); + try + { + Marshal.Copy(data, (int)startIndex, ptr, size); + startIndex += size; + return Marshal.PtrToStructure(ptr); + } + finally + { + Marshal.FreeHGlobal(ptr); + } + } public static bool ISPLAYERID(int id) { diff --git a/Assets/PerfectWorld/Scripts/Task/ATaskTemplMan.cs b/Assets/PerfectWorld/Scripts/Task/ATaskTemplMan.cs index fcbff250e5..0af7e887e7 100644 --- a/Assets/PerfectWorld/Scripts/Task/ATaskTemplMan.cs +++ b/Assets/PerfectWorld/Scripts/Task/ATaskTemplMan.cs @@ -4,6 +4,7 @@ using ModelRenderer.Scripts.GameData; using System.Collections.Generic; using System.IO; using System.Runtime.InteropServices; +using CSNetwork.GPDataType; using PerfectWorld.Scripts.Task; using UnityEngine; @@ -21,6 +22,16 @@ namespace BrewMonster.Scripts.Task public const ulong TASK_PACK_MAGIC = 0x93858361; public const ulong _task_templ_cur_version = 121; + private const int DYN_TASK_CUR_VERSION = 10; + private const int DYN_TASK_VERIFY_SVR = 8711; + private const int DYN_TASK_DELIVER_SVR = 8889; + + private const int TASK_NPC_INFO_VERSION = 1; + + private const int SEEK_SET = 0; /* set file offset to offset */ + private const int SEEK_CUR = 1; /* set file offset to current plus offset */ + private const int SEEK_END = 2; /* set file offset to EOF plus offset */ + private ulong g_ulNewCount = 0;// do we need this? // MH: I think not, it look like a debug counter private Dictionary m_TaskTemplMap = new Dictionary(); @@ -40,11 +51,22 @@ namespace BrewMonster.Scripts.Task private List m_SkillTaskLst = new List(); private List m_TmLmtChkLst = new List(); private List m_TasksCanSeekOut = new List(); - + private elementdataman m_pEleDataMan; + + // Dictionary m_DynTaskMap = new (); + uint m_ulDynTasksTimeMark; + byte[] m_pDynTasksData; + uint m_ulDynTasksDataSize; + + byte[] m_pNPCInfoData; + uint m_ulNPCInfoDataSize; + uint m_ulNPCInfoTimeMark; + private Dictionary m_NPCInfoMap = new (); #if _TASK_CLIENT // char m_szDynPackPath[512]; + private string m_szDynPackPath; bool m_bDynTasksVerified; protected special_award m_SpecialAward; #endif @@ -121,11 +143,17 @@ namespace BrewMonster.Scripts.Task // //todo: check // // LOG_DELETE_ARR(pOffs); fs.Close(); - // UpdateTimeLimitCheckList(); +#if !_TASK_CLIENT + UpdateTimeLimitCheckList(); +#else + SortTasksCanSeekOut(); +#endif + #if _ELEMENTCLIENT - _task_err.Release(); - _task_err.Init("Configs\\task_err.txt", true); + // TODO: implement task error logging if needed + // _task_err.Release(); + // _task_err.Init("Configs\\task_err.txt", true); #endif return true; @@ -151,11 +179,92 @@ namespace BrewMonster.Scripts.Task } public bool LoadNPCInfoFromPack(string szPath) { + // TODO: Implement NPC info loading if needed + // FILE* fp = fopen(szPath, "rb"); + FileStream fp = new FileStream(szPath, FileMode.Open, FileAccess.Read); + // if (fp == null) + // { + // TaskInterface::WriteLog(0, 0, 0, "LoadNPCInfoFromPack, no such file"); + // return false; + // } + + // fseek(fp, 0, SEEK_END); + // size_t sz = ftell(fp); + // fseek(fp, 0, SEEK_SET); + long sz = fp.Length; + + if (sz == 0) + { + BMLogger.LogError("[ATaskTemplMan] LoadNPCInfoFromPack, file size is 0"); + fp.Close(); + return false; + } + + long offset = 0; + byte[] buf = new Byte[sz]; + g_ulNewCount++; + // fread(buf, 1, sz, fp); + buf = AAssit.ReadArrayFromBinary( fp, (int)sz, ref offset); + // fclose(fp); + fp.Close(); + + if (!UnmarshalNPCInfo(buf, (int)sz, false)) + { + // LOG_DELETE_ARR(buf); + return false; + } + +#if _TASK_CLIENT + // LOG_DELETE_ARR(buf); +#else + m_pNPCInfoData = buf; + m_ulNPCInfoDataSize = (uint)sz; +#endif + return true; } public void VerifyDynTasksPack(string szPath) { + // TODO: Implement dynamic task pack verification if needed + // strcpy(m_szDynPackPath, szPath); + m_szDynPackPath = szPath; + + // FILE* fp = fopen(szPath, "rb"); + FileStream fp = new FileStream(szPath, FileMode.Open, FileAccess.Read); + // if (fp == NULL) return; + + // C++ + // fseek(fp, 0, SEEK_END); + // size_t sz = ftell(fp); + // fseek(fp, 0, SEEK_SET); + + // C# + long offset = 0; + long sz = fp.Length; + + int header_sz = Marshal.SizeOf(); + + if (sz < header_sz) + { + // fclose(fp); + fp.Close(); + return; + } + + // C++ + // char* buf = new char[header_sz]; + // g_ulNewCount++; + // fread(buf, 1, header_sz, fp); + // fclose(fp); + + byte[] buf = new byte[header_sz]; + g_ulNewCount++; + buf = AAssit.ReadArrayFromBinary(fp, header_sz, ref offset); + fp.Close(); + + UnmarshalDynTasks(buf, header_sz, true); + // LOG_DELETE_ARR(buf); } public ATaskTempl GetTopTaskByID(uint ulID) @@ -241,7 +350,7 @@ namespace BrewMonster.Scripts.Task pChild = pChild.m_pNextSibling; } } - +#if !_TASK_CLIENT void UpdateTimeLimitCheckList() { m_TmLmtChkLst.Clear(); @@ -255,7 +364,7 @@ namespace BrewMonster.Scripts.Task } } - +#endif public bool InitStorageTask() { m_StorageEssenseMap.Clear(); @@ -430,6 +539,40 @@ namespace BrewMonster.Scripts.Task ATaskTempl._notify_svr(pTask, uReason, uTaskID); } + static bool compare_tasks_canseekout( ATaskTempl lhs, ATaskTempl rhs) + { + if (lhs.m_FixedData.m_ulPremItems != 0 && rhs.m_FixedData.m_ulPremItems == 0) return true; + else if (lhs.m_FixedData.m_ulPremItems == 0 && rhs.m_FixedData.m_ulPremItems != 0) return false; + else if (lhs.m_FixedData.m_ulPremItems != 0 && rhs.m_FixedData.m_ulPremItems != 0) return lhs.m_FixedData.m_ID > rhs.m_FixedData.m_ID; + else return lhs.m_FixedData.m_ulPremise_Lev_Min > rhs.m_FixedData.m_ulPremise_Lev_Min; + } + + /// + /// Comparator tương đương C++ version + /// + private static int CompareTasksCanSeekOut(ATaskTempl lhs, ATaskTempl rhs) + { + // Rule 1: Ưu tiên task có PremItems + bool lhsHasPrem = lhs.m_FixedData.m_ulPremItems != 0; + bool rhsHasPrem = rhs.m_FixedData.m_ulPremItems != 0; + + if (lhsHasPrem && !rhsHasPrem) return -1; // lhs lên trước + if (!lhsHasPrem && rhsHasPrem) return 1; // rhs lên trước + + // Rule 2: Nếu cả hai có PremItems → sắp theo ID giảm dần + if (lhsHasPrem && rhsHasPrem) + return rhs.m_FixedData.m_ID.CompareTo(lhs.m_FixedData.m_ID); // ID lớn đứng trước + + // Rule 3: Nếu không có PremItems → LevelMin giảm dần + return rhs.m_FixedData.m_ulPremise_Lev_Min.CompareTo(lhs.m_FixedData.m_ulPremise_Lev_Min); + } + + void SortTasksCanSeekOut() + { + // std::sort(m_TasksCanSeekOut.begin(), m_TasksCanSeekOut.end(), compare_tasks_canseekout); + m_TasksCanSeekOut.Sort(CompareTasksCanSeekOut); + } + public void CheckAutoDelv(TaskInterface pTask) { ATaskTempl pTempl = null; @@ -488,13 +631,15 @@ namespace BrewMonster.Scripts.Task } // extarn from TaskServer + + +#endif +#if !_TASK_CLIENT private void OnTaskGiveUpOneTask(TaskInterface pTask, uint ulTaskId, bool bForce) { TaskServer.OnTaskGiveUpOneTask(pTask, ulTaskId, bForce); } - #endif - public void OnForgetLivingSkill(TaskInterface pTask) { // FinishedTaskList* pList = static_cast(pTask->GetFinishedTaskList()); // C++ @@ -504,12 +649,12 @@ namespace BrewMonster.Scripts.Task { pList.RemoveTask(m_SkillTaskLst[i].GetID()); -#if _TASK_CLIENT +#if !_TASK_CLIENT OnTaskGiveUpOneTask(pTask, m_SkillTaskLst[i].GetID(), false); #endif } -#if _TASK_CLIENT +#if !_TASK_CLIENT task_notify_base notify = new task_notify_base(); notify.reason = TaskTemplConstants.TASK_SVR_NOTIFY_FORGET_SKILL; @@ -556,5 +701,128 @@ namespace BrewMonster.Scripts.Task bool UpdateStorage(TaskInterface* pTask, StorageTaskList* pLst, unsigned long ulCurTime, unsigned long idStorage); bool UpdateOneStorageDebug(TaskInterface* pTask, unsigned long ulCurTime, int idStorage, bool bUseDayAsSeed); #endif + + bool UnmarshalNPCInfo(byte[] data, int data_size, bool header_only) + { + if (data_size < Marshal.SizeOf()) + { + // TaskInterface::WriteLog(0, 0, 0, "UnmarshalNPCInfo, wrong size"); + BMLogger.LogError($" [ATaskTemplMan] UnmarshalNPCInfo, wrong size: {data_size} < {Marshal.SizeOf()}"); + return false; + } + + // const char* p = data; + // TASK_NPC_PACK_HEADER* header = (TASK_NPC_PACK_HEADER*)p; + // p += sizeof(TASK_NPC_PACK_HEADER); + + TASK_NPC_PACK_HEADER header = GPDataTypeHelper.FromBytes(data); + var p = Marshal.SizeOf(); + + if (header.version != TASK_NPC_INFO_VERSION) + { + // TaskInterface::WriteLog(0, 0, 0, "UnmarshalNPCInfo, wrong version"); + BMLogger.LogError($" [ATaskTemplMan] UnmarshalNPCInfo, wrong version: {header.version}"); + return false; + } + + if (header.pack_size != data_size) + { + // TaskInterface::WriteLog(0, 0, 0, "UnmarshalNPCInfo, wrong header"); + BMLogger.LogError($" [ATaskTemplMan] UnmarshalNPCInfo, wrong header: pack_size {header.pack_size} != data_size {data_size}"); + return false; + } + + m_ulNPCInfoTimeMark = (uint)header.time_mark; + + if (header_only) + return true; + + // const NPC_INFO* pInfos = (const NPC_INFO*)p; + + for (int i = 0; i < header.npc_count; i++) + { + // const NPC_INFO& info = pInfos[i]; + // m_NPCInfoMap[info.id] = info; + + NPC_INFO info = GPDataTypeHelper.FromBytes(data, p); + p += Marshal.SizeOf(); + + m_NPCInfoMap[info.id] = info; + } + + return true; + } + + bool UnmarshalDynTasks(byte[] data, int data_size, bool header_only) + { + if (data_size < Marshal.SizeOf()) + { + // TaskInterface::WriteLog(0, 0, 0, "UnmarshalDynTasks, wrong size"); + BMLogger.LogError(" [ATaskTemplMan] UnmarshalDynTasks, wrong size"); + return false; + } + + // C++ + // const char* p = data; + // DYN_TASK_PACK_HEADER* header = (DYN_TASK_PACK_HEADER*)p; + // p += sizeof(DYN_TASK_PACK_HEADER); + + DYN_TASK_PACK_HEADER header = GPDataTypeHelper.FromBytes(data); + long p = Marshal.SizeOf(); + + if (header.version != DYN_TASK_CUR_VERSION) + { + // TaskInterface::WriteLog(0, 0, 0, "UnmarshalDynTasks, wrong version"); + BMLogger.LogError($" [ATaskTemplMan] UnmarshalDynTasks, wrong version: {header.version}"); + return false; + } + + if (header.pack_size != data_size) + { + // TaskInterface::WriteLog(0, 0, 0, "UnmarshalDynTasks, wrong header"); + BMLogger.LogError($" [ATaskTemplMan] UnmarshalDynTasks, wrong header: pack_size {header.pack_size} != data_size {data_size}"); + return false; + } + + m_ulDynTasksTimeMark = (uint)header.time_mark; + + if (header_only) + return true; + + + for (int i = 0; i < header.task_count; i++) + { + ATaskTempl pTempl = new ATaskTempl(); + g_ulNewCount++; + + pTempl.UnmarshalDynTask(data, ref p); + AddOneTaskTempl(pTempl); + + // TaskInterface::WriteLog(0, pTempl->GetID(), 2, "LoadDynTask"); + } +#if _TASK_CLIENT + SortTasksCanSeekOut(); +#endif + // assert(p == data + data_size); + return true; + } } + + [ StructLayout(LayoutKind.Sequential, Pack = 1) ] + public struct TASK_NPC_PACK_HEADER + { + public uint pack_size; + public int time_mark; + public short version; + public short npc_count; + }; + + [StructLayout(LayoutKind.Sequential, Pack = 1)] + public struct DYN_TASK_PACK_HEADER + { + public uint pack_size; + public int time_mark; + public ushort version; + public ushort task_count; + }; } \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Task/CECTaskInterface.cs b/Assets/PerfectWorld/Scripts/Task/CECTaskInterface.cs index cf846f5ea9..36c6ac853d 100644 --- a/Assets/PerfectWorld/Scripts/Task/CECTaskInterface.cs +++ b/Assets/PerfectWorld/Scripts/Task/CECTaskInterface.cs @@ -2,6 +2,7 @@ using BrewMonster.Network; using CSNetwork.GPDataType; using PerfectWorld.Scripts.Task; using System.Collections.Generic; +using System.IO; using System.Runtime.InteropServices; using CSNetwork; using UnityEngine; @@ -403,16 +404,19 @@ namespace BrewMonster.Scripts.Task } else { - //string task_data_path = Path.Combine(Application.streamingAssetsPath, "data/tasks.data"); - //pTaskMan.LoadTasksFromPack(task_data_path, true); + string task_data_path = Path.Combine(Application.streamingAssetsPath, "data/tasks.data"); + pTaskMan.LoadTasksFromPack(task_data_path, true); } #else string task_data_path = Path.Combine(Application.streamingAssetsPath, "data/tasks.data"); pTaskMan.LoadTasksFromPack(task_data_path, true); #endif + var task_npc_path = Path.Combine(Application.streamingAssetsPath, "data/task_npc.data"); + pTaskMan.LoadNPCInfoFromPack(task_npc_path); + + var dyn_tasks_path = Path.Combine(Application.streamingAssetsPath, "data/dyn_tasks.data"); + pTaskMan.VerifyDynTasksPack(dyn_tasks_path); - pTaskMan.LoadNPCInfoFromPack("data\\task_npc.data"); - pTaskMan.VerifyDynTasksPack("userdata\\dyn_tasks.data"); InitActiveTaskList(); m_bForceNavigateFinish = false; @@ -711,9 +715,8 @@ namespace BrewMonster.Scripts.Task else entry.m_ulTemplAddr = 0; } - #if _TASK_CLIENT + #if !_TASK_CLIENT - #elif _TASK_CLIENT // if (entry.m_ulTemplAddr != 0) // { @@ -747,9 +750,8 @@ namespace BrewMonster.Scripts.Task else entry.m_ulCapTemplAddr = 0; - #if _TASK_CLIENT + #if !_TASK_CLIENT - #else // if (bTimeMarkUpdated != 0) // { @@ -760,8 +762,7 @@ namespace BrewMonster.Scripts.Task // } #endif - #if _TASK_CLIENT - #elif _TASK_CLIENT + #if !_TASK_CLIENT // ��ʼ������������е����ء���ʾ������� // if (entry.m_ParentIndex == 0xff) // { @@ -776,8 +777,7 @@ namespace BrewMonster.Scripts.Task i1++; } - #if _TASK_CLIENT - #elif _TASK_CLIENT + #if !_TASK_CLIENT // pLst->SetTimeMarkUpdate(); // pLst->UpdateTaskMask(*GetTaskMask()); #endif @@ -1244,6 +1244,7 @@ namespace BrewMonster.Scripts.Task // } } + #endif diff --git a/Assets/PerfectWorld/Scripts/Task/TaskProcess.cs b/Assets/PerfectWorld/Scripts/Task/TaskProcess.cs index 47fd691e2b..d5b70f4243 100644 --- a/Assets/PerfectWorld/Scripts/Task/TaskProcess.cs +++ b/Assets/PerfectWorld/Scripts/Task/TaskProcess.cs @@ -442,6 +442,7 @@ namespace BrewMonster.Scripts.Task // ȥ����õ���Ʒ #if _TASK_CLIENT +#else if (bRemoveItem && pTempl != null) { if (bRemoveAcquired || pTempl.m_FixedData.m_bClearAcquired) pTempl.RemoveAcquiredItem(pTask, bClearTask, false); diff --git a/Assets/PerfectWorld/Scripts/Task/TaskTempl.cs b/Assets/PerfectWorld/Scripts/Task/TaskTempl.cs index 938d39a6dd..fa0c1759a7 100644 --- a/Assets/PerfectWorld/Scripts/Task/TaskTempl.cs +++ b/Assets/PerfectWorld/Scripts/Task/TaskTempl.cs @@ -1432,6 +1432,9 @@ namespace BrewMonster.Scripts.Task /* °´»ñµÃÎï±ÈÀý·½Ê½ */ AWARD_ITEMS_SCALE m_AwByItems_S; AWARD_ITEMS_SCALE m_AwByItems_F; + + uint g_ulNewCount = 0; + public bool LoadFromBinFile(FileStream fp) { LoadBinary(fp); @@ -1644,12 +1647,13 @@ namespace BrewMonster.Scripts.Task LoadTributeBin(fp); pointerLog += $" After LoadTributeBin : {fp.Position}\n"; - // TODO: Check task type consistency - # if _TASK_CLIENT - CheckMask(); - #else - SyncTaskType(); - #endif + // Check task type consistency +# if _TASK_CLIENT + SyncTaskType(); + +#else + CheckMask(); +#endif // namechar code = (namechar)m_ID; @@ -4365,5 +4369,673 @@ namespace BrewMonster.Scripts.Task return true; } public uint GetType() { return m_FixedData.m_ulType; } + + void Init() + { + m_FixedData.m_bCanRedo = true; + m_FixedData.m_bParentAlsoFail = true; + m_FixedData.m_bCanGiveUp = true; + m_FixedData.m_bCanRedoAfterFailure = true; + m_FixedData.m_bClearAcquired = true; + m_FixedData.m_enumMethod = (uint)TaskCompletionMethod.enumTMNone; + m_FixedData.m_enumFinishType = (uint)TaskFinishType.enumTFTDirect; + m_FixedData.m_bShowByDeposit = true; + m_FixedData.m_bShowByGender = true; + m_FixedData.m_bShowByItems = true; + m_FixedData.m_bShowByFactionContrib = true; + m_FixedData.m_bShowByNeedRecordTasksNum = true; + m_FixedData.m_bShowByLev = true; + m_FixedData.m_bShowByOccup = true; + m_FixedData.m_bShowByPreTask = true; + m_FixedData.m_bShowByRepu = true; + m_FixedData.m_bShowByTeam = true; + m_FixedData.m_bShowByFaction = true; + m_FixedData.m_bShowByPeriod = true; + m_FixedData.m_bShowPrompt = true; + m_FixedData.m_bShowByCharTime = true; + m_FixedData.m_bShowByRMB = true; + m_FixedData.m_bShowBySpouse = true; + m_FixedData.m_bShowByWeddingOwner = true; + m_FixedData.m_bShowByKing = true; + m_FixedData.m_bShowByNotInTeam = true; + m_FixedData.m_bShowByGeneralCard = true; + m_FixedData.m_ulDelvWorld = 1; + m_FixedData.m_ulTransWldId = 1; + m_FixedData.m_ulReachSiteId = 1; + m_FixedData.m_lPeriodLimit = 1; + m_FixedData.m_bCanSeekOut = false; + m_FixedData.m_bShowDirection = true; + + m_FixedData.m_bDeliverySkill = false; // verison 77 + m_FixedData.m_iDeliveredSkillID = 0; + m_FixedData.m_iDeliveredSkillLevel = 0; + + m_FixedData.m_bShowGfxFinished = false; // version 78 + + m_FixedData.m_bChangePQRanking = false; // version 79. Ĭ�� PQ �ı���������� + + m_FixedData.m_bDisplayInExclusiveUI = false; + + m_FixedData.m_bReadyToNotifyServer = false; + + m_FixedData.m_bDistinguishedOcc = false; + + m_FixedData.m_bUsedInTokenShop = false; + + m_FixedData.m_iPremise_FactionRole = 6; + + m_FixedData.m_TreasureStartZone.x = 0; + m_FixedData.m_TreasureStartZone.y = 0; + m_FixedData.m_TreasureStartZone.z = 0; + m_FixedData.m_ucZonesNumX = 1; + m_FixedData.m_ucZonesNumZ = 1; + m_FixedData.m_ucZoneSide = 10; + + m_FixedData.m_ucPremiseTransformedForm = 0xFF; + + m_FixedData.m_bShowByForce = true; + m_FixedData.m_bShowByForceContribution = true; + m_FixedData.m_bShowByForceReputation = true; + m_FixedData.m_bShowByForceExp = true; + m_FixedData.m_bShowByForceSP = true; + m_FixedData.m_bShowByForceActivityLevel = true; + m_FixedData.m_bShowByReincarnation = true; + m_FixedData.m_bShowByRealmLevel = true; + m_FixedData.m_bShowByGeneralCardRank = true; + m_FixedData.m_bShowByHistoryStage = true; + + m_FixedData.m_iPremForceActivityLevel = -1; + m_FixedData.m_iPremGeneralCardRank = -1; + } + + void UnmarshalSpecialAwardData(byte[] data, ref long p) + { + // const char* p = pData; + // m_ulSpecialAward = *(long*)p; + // p += sizeof(long); + + m_FixedData.m_ulSpecialAward = GPDataTypeHelper.FromBytes(data, ref p); + + // return p - pData; + } + + void UnmarshalKillMonster(byte[] data, ref long p) + // int ATaskTempl::UnmarshalKillMonster(const char* pData) + { + // const char* p = pData; + + m_FixedData.m_ulMonsterWanted = GPDataTypeHelper.FromBytes(data, ref p); + +#if !TASK_TEMPL_EDITOR + + if (m_FixedData.m_ulMonsterWanted != 0) + { + m_FixedData.m_MonsterWanted = new MONSTER_WANTED[m_FixedData.m_ulMonsterWanted]; + g_ulNewCount++; + } + +#endif + + int sz = (int)(m_FixedData.m_ulMonsterWanted * Marshal.SizeOf()); + if (sz != 0) + { + // memcpy(m_FixedData.m_MonsterWanted, p, sz); + for( int i = 0; i < m_FixedData.m_MonsterWanted.Length; i++) + { + m_FixedData.m_MonsterWanted[i] = GPDataTypeHelper.FromBytes(data, ref p); + } + } + + // return p - pData; + } + + void UnmarshalCollectItems(byte[] data, ref long p) + // int ATaskTempl::UnmarshalCollectItems(const char* pData) + { + // const char* p = pData; + + m_FixedData.m_ulItemsWanted = GPDataTypeHelper.FromBytes(data, ref p); + + if (m_FixedData.m_ulItemsWanted != 0) + { +#if !TASK_TEMPL_EDITOR + m_FixedData.m_ItemsWanted = new ITEM_WANTED[m_FixedData.m_ulItemsWanted]; + g_ulNewCount++; +#endif + + int sz = (int)(m_FixedData.m_ulItemsWanted * Marshal.SizeOf()); + // memcpy(m_FixedData.m_ItemsWanted, p, sz); + // p += sz; + for( int i = 0; i < m_FixedData.m_ItemsWanted.Length; i++) + { + m_FixedData.m_ItemsWanted[i] = GPDataTypeHelper.FromBytes(data, ref p); + } + } + + m_FixedData.m_ulGoldWanted = GPDataTypeHelper.FromBytes(data, ref p); + + m_FixedData.m_iFactionContribWanted = GPDataTypeHelper.FromBytes(data, ref p); + + m_FixedData.m_iFactionExpContribWanted = GPDataTypeHelper.FromBytes(data, ref p); + + // return p - pData; + } + + void unmarshal_str(byte[] data, ushort[] s, ref long p) + // inline int unmarshal_str(const char* data, task_char*& s) + { + // const char* p = data; + + int len = GPDataTypeHelper.FromBytes( data, ref p); + + s = new ushort[len + 1]; + g_ulNewCount++; + s[len] = 0; + + if (len != 0) + { + // len *= sizeof(task_char); + // memcpy(s, p, len); + // p += len; + + for (int i = 0; i < len; i++) + { + s[i] = GPDataTypeHelper.FromBytes(data, ref p); + } + + } + + // return p - data; + } + + void unmarshal_option(ref talk_proc.option opt, byte[] data, ref long p) + // int unmarshal_option(talk_proc::option* opt, const char* data) + { + // const char* p = data; + + opt.id = GPDataTypeHelper.FromBytes( data, ref p); + + opt.param = GPDataTypeHelper.FromBytes(data, ref p); + + uint sz = GPDataTypeHelper.FromBytes(data, ref p); + + if (sz != 0) + { + // memcpy(opt->text, p, sz); + // p += sz; + + opt.text = new ushort[sz / sizeof(ushort)]; + for (int i = 0; i < opt.text.Length; i++) + { + opt.text[i] = GPDataTypeHelper.FromBytes(data, ref p); + } + } + + // return p - data; + } + + + void unmarshal_window(ref talk_proc.window win, byte[] data, ref long p) + // int unmarshal_window(talk_proc::window* win, const char* data) + { + // const char* p = data; + + win.id = GPDataTypeHelper.FromBytes(data, ref p); + + win.id_parent = GPDataTypeHelper.FromBytes(data, ref p); + + win.talk_text_len = GPDataTypeHelper.FromBytes(data, ref p); + + if (win.talk_text_len != 0) + { + // C++ + // win->talk_text = new namechar[win->talk_text_len]; + // size_t sz = sizeof(namechar) * win->talk_text_len; + // memcpy(win->talk_text, p, sz); + // p += sz; + // g_ulNewCount++; + + win.talk_text = new ushort[win.talk_text_len]; + for (int i = 0; i < win.talk_text_len; i++) + { + win.talk_text[i] = GPDataTypeHelper.FromBytes(data, ref p); + } + g_ulNewCount++; + } + + win.num_option = GPDataTypeHelper.FromBytes( data, ref p); + + if (win.num_option != 0) + { + // C++ + // win->options = new talk_proc::option[win->num_option]; + // memset(win->options, 0, sizeof(talk_proc::option) * win->num_option); + // g_ulNewCount++; + // + // for (int i = 0; i < win->num_option; i++) + // p += unmarshal_option(&win->options[i], p); + + win.options = new talk_proc.option[win.num_option]; + g_ulNewCount++; + for (int i = 0; i < win.num_option; i++) + { + win.options[i] = new talk_proc.option(); + unmarshal_option(ref win.options[i], data, ref p); + } + } + + // return p - data; + } + + void unmarshal_talk_proc(ref talk_proc talk, byte[] data, ref long p) + // int unmarshal_talk_proc(talk_proc* talk, const char* data) + { + // const char* p = data; + + int sz = GPDataTypeHelper.FromBytes(data, ref p); + + if (sz != 0) + { + // memcpy(talk->text, p, sz); + // p += sz; + + for( int i = 0; i < talk.text.Length; i++) + { + talk.text[i] = GPDataTypeHelper.FromBytes(data, ref p); + } + } + + talk.num_window = GPDataTypeHelper.FromBytes(data, ref p); + + if (talk.num_window != 0) + { + // C++ + // talk->windows = new talk_proc::window[talk->num_window]; + // memset(talk->windows, 0, sizeof(talk_proc::window) * talk->num_window); + // g_ulNewCount++; + // + // for (int i = 0; i < talk->num_window; i++) + // p += unmarshal_window(&talk->windows[i], p); + + talk.windows = new talk_proc.window[talk.num_window]; + g_ulNewCount++; + for (int i = 0; i < talk.num_window; i++) + { + talk.windows[i] = new talk_proc.window(); + unmarshal_window(ref talk.windows[i], data, ref p); + } + } + + // return p - data; + } + + + public void UnmarshalDynTask(byte[] pData, ref long p) + { + Init(); + + // const char* p = pData; + // int p = 0; + + uint token_mask1, token_mask2; + + token_mask1 = GPDataTypeHelper.FromBytes(pData, ref p); + + token_mask2 = GPDataTypeHelper.FromBytes(pData, ref p); + + int token_count = 0; + + // dyn type + m_FixedData.m_DynTaskType = GPDataTypeHelper.FromBytes(pData, ref p); + + // top task + if (m_pParent == null) + { + switch (m_FixedData.m_DynTaskType) + { + case (byte)DynTaskType.enumDTTSpecialAward: + break; + case (byte)DynTaskType.enumDTTGiftCard: + UnmarshalSpecialAwardData(pData, ref p); + break; + default: + break; + } + } + + // id + m_FixedData.m_ID = GPDataTypeHelper.FromBytes(pData, ref p); + + // name + // char len = *p; p++; + // len *= sizeof(task_char); + // memcpy(m_szName, p, len); + // p += len; + byte nameLen = pData[p++]; + // int nameByteLen = nameLen * sizeof(ushort); + m_FixedData.m_szName = new ushort[nameLen]; + for (int i = 0; i < nameLen; i++) + { + m_FixedData.m_szName[i] = GPDataTypeHelper.FromBytes(pData, ref p); + } + + // choose one + m_FixedData.m_bChooseOne = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + + // rand one + m_FixedData.m_bRandOne = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + + // in order + m_FixedData.m_bExeChildInOrder = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + + // parent fail + m_FixedData.m_bParentAlsoFail = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + + // parent succ + m_FixedData.m_bParentAlsoSucc = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + + // give up + m_FixedData.m_bCanGiveUp = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + + // redo + m_FixedData.m_bCanRedo = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + + // redo after fail + m_FixedData.m_bCanRedoAfterFailure = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + + // clear as give up + m_FixedData.m_bClearAsGiveUp = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + // record + m_FixedData.m_bNeedRecord = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + + // die + m_FixedData.m_bFailAsPlayerDie = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + + // auto deliver + m_FixedData.m_bAutoDeliver = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + + // death trig + m_FixedData.m_bDeathTrig = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + + // clear acquired + m_FixedData.m_bClearAcquired = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + + // spouse + m_FixedData.m_bPremise_Spouse = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + + // teamwork + m_FixedData.m_bTeamwork = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + // direction + m_FixedData.m_bShowDirection = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + + + // level + m_FixedData.m_ulPremise_Lev_Min = GPDataTypeHelper.FromBytes(pData, ref p); + m_FixedData.m_ulPremise_Lev_Max = GPDataTypeHelper.FromBytes(pData, ref p); + + // 0: time limit + if (((1 << token_count++) & token_mask1) != 0) + { + m_ulTimeLimit = GPDataTypeHelper.FromBytes(pData, ref p); + } + + // 1: reputation + if (((1 << token_count++) & token_mask1) != 0) + { + m_FixedData.m_lPremise_Reputation = GPDataTypeHelper.FromBytes(pData, ref p); + } + + // 2: period + if (((1 << token_count++) & token_mask1) != 0) + { + m_FixedData.m_ulPremise_Period = GPDataTypeHelper.FromBytes(pData, ref p); + } + + // 3: prem items + if (((1 << token_count++) & token_mask1) != 0) + { + m_FixedData.m_ulPremItems = GPDataTypeHelper.FromBytes(pData, ref p); + + #if !TASK_TEMPL_EDITOR + m_FixedData.m_PremItems = new ITEM_WANTED[m_FixedData.m_ulPremItems]; + g_ulNewCount++; + #endif + + int sz = (int)(m_FixedData.m_ulPremItems * Marshal.SizeOf()); + // memcpy(m_PremItems, p, sz); + Array.Copy( pData, p, m_FixedData.m_PremItems, 0, sz ); + p += sz; + } + + // 4: delv in zone + if (((1 << token_count++) & token_mask1) != 0) + { + m_FixedData.m_bDelvInZone = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + + m_FixedData.m_ulDelvWorld = GPDataTypeHelper.FromBytes(pData, ref p); + + m_FixedData.m_ulDelvRegionCnt = GPDataTypeHelper.FromBytes(pData, ref p); + + for (int i=0; i< m_FixedData.m_ulDelvRegionCnt; i++) + { + m_FixedData.m_pDelvRegion[i] = GPDataTypeHelper.FromBytes(pData, ref p); + } + /* m_DelvMinVert = *(ZONE_VERT*)p; + p += sizeof(ZONE_VERT); + + m_DelvMaxVert = *(ZONE_VERT*)p; + p += sizeof(ZONE_VERT);*/ + } + + // 5: trans to + if (((1 << token_count++) & token_mask1) != 0) + { + m_FixedData.m_bTransTo = GPDataTypeHelper.FromBytes(pData, ref p) != 0; + + m_FixedData.m_ulTransWldId = GPDataTypeHelper.FromBytes(pData, ref p); + + m_FixedData.m_TransPt = GPDataTypeHelper.FromBytes(pData, ref p); + } + + // 6: given items + if (((1 << token_count++) & token_mask1) != 0) + { + m_FixedData.m_ulGivenItems =GPDataTypeHelper.FromBytes(pData, ref p); + + m_FixedData.m_ulGivenCmnCount = GPDataTypeHelper.FromBytes(pData, ref p); + + m_FixedData.m_ulGivenTskCount = GPDataTypeHelper.FromBytes(pData, ref p); + + + #if !TASK_TEMPL_EDITOR + m_FixedData.m_GivenItems = new ITEM_WANTED[m_FixedData.m_ulGivenItems]; + g_ulNewCount++; + #endif + + int sz = (int)(m_FixedData.m_ulGivenItems * Marshal.SizeOf()); + // memcpy(m_GivenItems, p, sz); + Array.Copy( pData, p, m_FixedData.m_GivenItems, 0, sz ); + p += sz; + } + + // 7: deposit + if (((1 << token_count++) & token_mask1) != 0) + { + m_FixedData.m_ulPremise_Deposit = GPDataTypeHelper.FromBytes(pData, ref p); + } + + // 8: pre task + if (((1 << token_count++) & token_mask1) != 0) + { + m_FixedData.m_ulPremise_Task_Count = GPDataTypeHelper.FromBytes(pData, ref p); + + m_FixedData.m_ulPremise_Task_Least_Num = GPDataTypeHelper.FromBytes(pData, ref p); + + int sz = (int)(4 * m_FixedData.m_ulPremise_Task_Count); + // memcpy(m_ulPremise_Tasks, p, sz); + for (int i = 0; i < m_FixedData.m_ulPremise_Task_Count; i++) + { + m_FixedData.m_ulPremise_Tasks[i] = GPDataTypeHelper.FromBytes(pData, ref p); + } + } + + // 9: gender + if (((1 << token_count++) & token_mask1) != 0) + { + m_FixedData.m_ulGender = GPDataTypeHelper.FromBytes(pData, ref p); + } + + // 10: occupation + if (((1 << token_count++) & token_mask1) != 0) + { + m_FixedData.m_ulOccupations = GPDataTypeHelper.FromBytes(pData, ref p); + + int sz = (int)(m_FixedData.m_ulOccupations * Marshal.SizeOf()); + for (int i = 0; i < m_FixedData.m_ulOccupations; i++) + { + m_FixedData.m_Occupations[i] = GPDataTypeHelper.FromBytes(pData, ref p); + } + } + + // 11: mutex task + if (((1 << token_count++) & token_mask1) != 0) + { + m_FixedData.m_ulMutexTaskCount = GPDataTypeHelper.FromBytes(pData, ref p); + + int sz = (int)(Marshal.SizeOf() * m_FixedData.m_ulMutexTaskCount); + // memcpy(m_ulMutexTasks, p, sz); + for( int i = 0; i < m_FixedData.m_ulMutexTaskCount; i++ ) + { + m_FixedData.m_ulMutexTasks[i] = GPDataTypeHelper.FromBytes(pData, ref p); + } + } + + // 12: time table + if (((1 << token_count++) & token_mask1) != 0) + { + m_FixedData.m_ulTimetable = GPDataTypeHelper.FromBytes(pData, ref p); + + #if !TASK_TEMPL_EDITOR + m_FixedData.m_tmStart = new task_tm[m_FixedData.m_ulTimetable]; + g_ulNewCount++; + + m_FixedData.m_tmEnd = new task_tm[m_FixedData.m_ulTimetable]; + g_ulNewCount++; + #endif + + int sz=0; + + sz = (int)(sizeof(byte) * m_FixedData.m_ulTimetable); + + // memcpy(m_tmType, p, sz); + Array.Copy( pData, p, m_FixedData.m_tmType, 0, sz ); + p += sz; + + sz = (int)(Marshal.SizeOf() * m_FixedData.m_ulTimetable); + + // memcpy(m_tmStart, p, sz); + // p += sz; + for (int i = 0; i < m_FixedData.m_ulTimetable; i++) + { + m_FixedData.m_tmStart[i] = GPDataTypeHelper.FromBytes(pData, ref p); + } + + // memcpy(m_tmEnd, p, sz); + // p += sz; + for (int i = 0; i < m_FixedData.m_ulTimetable; i++) + { + m_FixedData.m_tmEnd[i] = GPDataTypeHelper.FromBytes(pData, ref p); + } + } + + // method + m_FixedData.m_enumMethod = GPDataTypeHelper.FromBytes(pData, ref p); + + switch (m_FixedData.m_enumMethod) + { + case (uint)TaskCompletionMethod.enumTMKillNumMonster: + // p += UnmarshalKillMonster(p); + UnmarshalKillMonster( pData, ref p); + break; + case (uint)TaskCompletionMethod.enumTMCollectNumArticle: + // p += UnmarshalCollectItems(p); + UnmarshalCollectItems(data:pData, ref p); + break; + case (uint)TaskCompletionMethod.enumTMReachSite: + m_FixedData.m_ulReachSiteId = GPDataTypeHelper.FromBytes(pData, ref p); + + // C++ + // memcpy(m_pReachSite, p, sizeof(Task_Region)*m_ulReachSiteCnt); + // p += sizeof(Task_Region)*m_ulReachSiteCnt; + for (int i = 0; i < m_FixedData.m_ulReachSiteId; i++) + { + m_FixedData.m_pReachSite[i] = GPDataTypeHelper.FromBytes(pData, ref p); + } + + // memcpy(&m_ReachSiteMax, p, sizeof(ZONE_VERT)); + // p += sizeof(ZONE_VERT); + break; + case (uint)TaskCompletionMethod.enumTMLeaveSite: + m_FixedData.m_ulLeaveSiteId = GPDataTypeHelper.FromBytes(pData, ref p); + // memcpy(m_pLeaveSite, p, sizeof(Task_Region)*m_ulLeaveSiteCnt); + // p += sizeof(ZONE_VERT); + for (int i = 0; i < m_FixedData.m_ulLeaveSiteId; i++) + { + m_FixedData.m_pLeaveSite[i] = GPDataTypeHelper.FromBytes(pData, ref p); + } + + // memcpy(&m_LeaveSiteMax, p, sizeof(ZONE_VERT)); + // p += sizeof(ZONE_VERT); + break; + case (uint)TaskCompletionMethod.enumTMWaitTime: + m_FixedData.m_ulWaitTime = GPDataTypeHelper.FromBytes(pData, ref p); + break; + } + + // finish type + m_FixedData.m_enumFinishType = GPDataTypeHelper.FromBytes(pData, ref p); + p++; + + // award + byte[] award_byte_copy = new byte[pData.Length]; + Array.Copy( pData, p, award_byte_copy, 0, pData.Length - p ); + p += m_Award_S.UnmarshalBasicData(pData); + + // talks + unmarshal_str(pData, m_pwstrDescript, ref p); + unmarshal_str(pData, m_pwstrOkText, ref p); + unmarshal_str(pData, m_pwstrNoText, ref p); + unmarshal_talk_proc(ref m_DelvTaskTalk, pData, ref p); + unmarshal_talk_proc(ref m_UnqualifiedTalk, pData, ref p); + unmarshal_talk_proc(ref m_DelvItemTalk, pData, ref p); + unmarshal_talk_proc(ref m_ExeTalk, pData, ref p); + unmarshal_talk_proc(ref m_AwardTalk, pData, ref p); + + #if !_TASK_CLIENT + CheckMask(); + #else + SyncTaskType(); + #endif + + m_nSubCount = GPDataTypeHelper.FromBytes( pData, ref p); + + for (int i = 0; i < m_nSubCount; i++) + { + // ATaskTempl* pSub = new ATaskTempl; + // g_ulNewCount++; + // AddSubTaskTempl(pSub); + // p += pSub->UnmarshalDynTask(p); + + ATaskTempl pSub = new ATaskTempl(); + g_ulNewCount++; + AddSubTaskTempl( pSub ); + pSub.UnmarshalDynTask( pData , ref p); + } + + SynchID(); + if (m_pParent == null) CheckDepth(); + + // return p - pData; + } } } \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Task/TaskTest.cs b/Assets/PerfectWorld/Scripts/Task/TaskTest.cs index 922a697489..f2fb3b47a6 100644 --- a/Assets/PerfectWorld/Scripts/Task/TaskTest.cs +++ b/Assets/PerfectWorld/Scripts/Task/TaskTest.cs @@ -4,6 +4,7 @@ using System.IO; using System.Reflection; using System.Runtime.InteropServices; using BrewMonster.Scripts.Task.UI; +using CSNetwork.Common; using ModelRenderer.Scripts.Common; using PerfectWorld.Scripts.Task; using UnityEngine; @@ -32,6 +33,12 @@ namespace BrewMonster.Scripts.Task #endif } + [ContextMenu("Test Npc Service Log")] + public void LogNpcService() + { + Debug.Log($" idFun = {(ExpTypes.SERVICE_TYPE)(-2147483641)} | idService = {44515} "); + } + [ContextMenu("Show Task Name")] public void ShowTaskName() { diff --git a/Assets/PerfectWorld/Scripts/UI/AUIManager.cs b/Assets/PerfectWorld/Scripts/UI/AUIManager.cs index c95b6d801a..c652961e35 100644 --- a/Assets/PerfectWorld/Scripts/UI/AUIManager.cs +++ b/Assets/PerfectWorld/Scripts/UI/AUIManager.cs @@ -262,6 +262,23 @@ namespace BrewMonster.UI { return dlg; } + else + { + var prefab = m_dialogResouce.GetPrefabDialog(pszName); + if(prefab != null) + { + var instance = GameObject.Instantiate(prefab, m_canvas.transform); + var dialog = instance.GetComponent(); + if (dialog != null) + { + dialog.SetAUIManager(this); + m_DlgName[pszName] = dialog; + return dialog; + } + } + } + + return null; } } diff --git a/Assets/PerfectWorld/Scripts/UI/Dialogs/DlgNPC.cs b/Assets/PerfectWorld/Scripts/UI/Dialogs/DlgNPC.cs index a3bbe6e075..106730606e 100644 --- a/Assets/PerfectWorld/Scripts/UI/Dialogs/DlgNPC.cs +++ b/Assets/PerfectWorld/Scripts/UI/Dialogs/DlgNPC.cs @@ -17,6 +17,7 @@ using System.Reflection; using System.Runtime.InteropServices; using System.Security.Cryptography; using System.Text; +using BrewMonster.Scripts.UI; using TMPro; using UnityEngine; using UnityEngine.UI; @@ -2826,6 +2827,7 @@ namespace BrewMonster.UI } else if (idFunction == (int)SERVICE_TYPE.NPC_MAKE) { + // C++ //NPC_MAKE_SERVICE pMake = (NPC_MAKE_SERVICE)pData; //if (pMake.produce_type == 2) // pShow1 = m_pAUIManager.GetDialog("Win_Produce1"); @@ -2841,6 +2843,22 @@ namespace BrewMonster.UI // GetGameUIMan().m_pDlgProduce.ClearMaterial(); //pShow2 = m_pAUIManager.GetDialog("Win_Inventory"); //GetGameUIMan().m_pDlgProduce.UpdateProduce(1, 0); + + // NPC_MAKE_SERVICE pMake = (NPC_MAKE_SERVICE)pData; + // if (pMake.produce_type == 2) + // pShow1 = m_pAUIManager.GetDialog("Win_Produce1"); + // else + // pShow1 = m_pAUIManager.GetDialog("Win_Produce"); + // GetGameUIMan().m_pDlgProduce = (CDlgProduce*)pShow1; + // GetHostPlayer().PrepareNPCService(iService); + // pShow1.SetDataPtr(pMake, "ptr_NPC_MAKE_SERVICE"); + // if (pMake.produce_type == 1 || + // pMake.produce_type == 3 || + // pMake.produce_type == 4 || + // pMake.produce_type == 5) + // GetGameUIMan().m_pDlgProduce.ClearMaterial(); + // pShow2 = m_pAUIManager.GetDialog("Win_Inventory"); + // GetGameUIMan().m_pDlgProduce.UpdateProduce(1, 0); } else if (idFunction == (int)SERVICE_TYPE.NPC_DECOMPOSE) { @@ -2970,8 +2988,8 @@ namespace BrewMonster.UI if (ad.m_ulCandItems > 1) { pShow1 = m_pAUIManager.GetDialog("Win_Award"); - //CDlgAward pAward = (pShow1) as CDlgAward; - //if (pAward) pAward.UpdateAwardItem(opt.param, true); + CDlgAward pAward = (pShow1) as CDlgAward; + if (pAward) pAward.UpdateAwardItem((ushort)opt.param, true); } else { diff --git a/Assets/PerfectWorld/Scripts/UI/DlgAward.meta b/Assets/PerfectWorld/Scripts/UI/DlgAward.meta new file mode 100644 index 0000000000..3fea680895 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/UI/DlgAward.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: e3a8de291089473f9d21a99f27014a68 +timeCreated: 1764934713 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/UI/DlgAward/AwardItem.cs b/Assets/PerfectWorld/Scripts/UI/DlgAward/AwardItem.cs new file mode 100644 index 0000000000..871742e81c --- /dev/null +++ b/Assets/PerfectWorld/Scripts/UI/DlgAward/AwardItem.cs @@ -0,0 +1,52 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace BrewMonster.Scripts.UI +{ + public class AwardItem : MonoBehaviour + { + [SerializeField] private Image img; + [SerializeField] private Button btn; + + private Vector2Int _position; + + public Vector2Int Position => _position; + + public void SetPositionIndex(int row, int column) + { + _position = new Vector2Int(row, column); + this.gameObject.name = "Item_" + row + "_" + column; + } + + + public void SetImage(Sprite sprite) + { + img.sprite = sprite; + } + + public void SetText(string text) + { + // TODO: Add a Text component and set its text + } + + public void SetColor(Color color) + { + // TODO : Set color to relevant UI components + } + + public void SetHint(string text) + { + // TODO : Implement hint functionality + } + + public void ClearCover() + { + // TODO : Implement cover clearing functionality + } + + public void Show(bool show) + { + gameObject.SetActive(show); + } + } +} \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/UI/DlgAward/AwardItem.cs.meta b/Assets/PerfectWorld/Scripts/UI/DlgAward/AwardItem.cs.meta new file mode 100644 index 0000000000..5639ac0e86 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/UI/DlgAward/AwardItem.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 9d87c7b8ac564f919171a5173812980e +timeCreated: 1764940671 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs b/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs new file mode 100644 index 0000000000..2cf20ea2c5 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs @@ -0,0 +1,304 @@ +using BrewMonster.Scripts.Managers; +using BrewMonster.Scripts.Task; +using BrewMonster.UI; +using PerfectWorld.Scripts.Managers; +using PerfectWorld.Scripts.Task; +using UnityEngine; +using UnityEngine.UI; + +namespace BrewMonster.Scripts.UI +{ + public class CDlgAward : AUIDialog + { + #region FIELDS AND PROPERTIES + + private const int MIN_ROW_COUNT_TO_SHOW = 6; + + [SerializeField] private Button m_pBtn_Confirm; + [SerializeField] private Vector2Int _itemSize = new Vector2Int(50, 50); + [SerializeField] private AwardItem _awardItemPrefab; + [SerializeField] private Toggle[] _radioButtons; + + [Header("DEBUG")] + [SerializeField] private AwardItem[] _awardItems; + + bool m_bThroughNPC; + bool m_bSpendContribution; + + #endregion + + int _rowCount => _itemSize.x; + int _columnCount => _itemSize.y; + + #region UNITY METHODS + + void Awake() + { + SpawnItems(); + } + + private void SpawnItems() + { + for (int i = 1; i <= _rowCount; i++) + { + for (int j = 1; j <= _columnCount; j++) + { + AwardItem item = Instantiate(_awardItemPrefab, this.transform); + item.SetPositionIndex(i, j); + // Positioning logic can be added here + } + } + + _awardItemPrefab.gameObject.SetActive(false); + } + + #endregion + + protected bool OnInitDialog() + { + m_bThroughNPC = false; + m_bSpendContribution = false; + return true; + } + + public void UpdateAwardItem(ushort idTask, bool throughNPC, bool spendContribution = false) + { + AWARD_DATA ad = new AWARD_DATA(); + CECTaskInterface pTask = GetHostPlayer().GetTaskInterface(); + m_bThroughNPC = throughNPC; + m_bSpendContribution = spendContribution; + pTask.GetAwardCandidates(idTask, ref ad); + if (ad.m_ulCandItems > 1) + { + string szName; + string strFile = ""; + string szText; + EC_IvtrItem pItem; + // AUICTranslate trans; // TODO + // int i, j, idItem, nNum; + uint idItem, nNum; + // Image pImage; + // Image pImage2; + AwardItem pImage; // Using AwardItem instead of Image + + SetData(idTask, ""); + // CheckRadioButton(1, 0); // TODO: + // GetDlgItem("Btn_Confirm")->Enable(false); + + for (int i=1; i < _rowCount; i++) + { + // sprintf(out szName, "Item_%02d01", i); + // pImage = (PAUIIMAGEPICTURE)GetDlgItem(szName); + // if (!pImage) break; // All done. + + // TODO: Show/Hide radio button + // sprintf(out szName, "Rdo_Award%d", i); + // GetDlgItem(szName)->Show(false); + _radioButtons[i].gameObject.SetActive(false); + + // for (j = 1;; j++) + for (int j=1; j < _columnCount; j++) + { + // sprintf(out szName, "Item_%02d%02d", i, j); + // pImage = (PAUIIMAGEPICTURE)GetDlgItem(szName); + // if (!pImage) break; // Line done. + pImage = GetAwardItemAt(i, j); + if(!pImage) break; + + if (i - 1 < (int)ad.m_ulCandItems && + j - 1 < (int)ad.m_CandItems[i - 1].m_ulAwardItems) + { + idItem = ad.m_CandItems[i - 1].m_AwardItems[j - 1].m_ulItemTemplId; + pItem = EC_IvtrItem.CreateItem((int)idItem, 0, 1); + + nNum = ad.m_CandItems[i - 1].m_AwardItems[j - 1].m_ulItemNum; + if (nNum > 1) + { + a_sprintf(out szText, _AL("%d"), nNum); + pImage.SetText(szText); + } + else + pImage.SetText(_AL("")); + + pItem.GetDetailDataFromLocal(); + // pImage.SetHint(trans.Translate(pItem.GetDesc())); // TODO + // af_GetFileTitle(pItem.GetIconFile(), strFile); // TODO + strFile.ToLower(); + + // TODO: Set the image cover here + // pImage.SetCover(GetGameUIMan().m_pA2DSpriteIcons[CECGameUIMan::ICONS_INVENTORY], + // GetGameUIMan().m_IconMap[CECGameUIMan::ICONS_INVENTORY][strFile]); + + EC_IvtrEquip pEquip = new EC_IvtrEquip(pItem.m_tid, pItem.m_expire_date); + pImage.SetColor( + (pItem.IsEquipment() && pEquip.IsDestroying()) + ? new Color32(128, 128, 128, 255) + : new Color32(255, 255, 255, 255)); + + // delete pItem; + pItem = null; + + // sprintf(out szName, "Rdo_Award%d", i); + // GetDlgItem(szName)->Show(true); + _radioButtons[i].gameObject.SetActive(true); + } + else + { + pImage.ClearCover(); + pImage.SetHint(_AL("")); + pImage.SetText(_AL("")); + } + } + } + + // turn off uneccessary rows + if (ad.m_ulCandItems <= MIN_ROW_COUNT_TO_SHOW) + { + // ����������٣�������ʣ���� + // for (i = MIN_ROW_COUNT_TO_SHOW + 1;; i++) + for (int i = MIN_ROW_COUNT_TO_SHOW + 1; i < _rowCount; i++) + { + // sprintf(out szName, "Item_%02d01", i); + // pImage = (PAUIIMAGEPICTURE)GetDlgItem(szName); + // if (!pImage) break; // All done. + pImage = GetAwardItemAt(i, i); + if (!pImage) break; + + // sprintf(out szName, "Rdo_Award%d", i); + // GetDlgItem(szName)->Show(false); + _radioButtons[i].gameObject.SetActive(false); + + for (int j = 1; j < _columnCount; j++) + { + // sprintf(out szName, "Item_%02d%02d", i, j); + // pImage = (PAUIIMAGEPICTURE)GetDlgItem(szName); + // if (!pImage) break; + // pImage->Show(false); + pImage = GetAwardItemAt(i, j); + pImage.Show(false); + + // pImage2 = (PAUIIMAGEPICTURE)GetDlgItem(AString().Format("Img_%02d%02d", i, j)); + // pImage2->Show(false); + // pImage2 = GetAwardItemAt(i, j); + + } + } + + // ����ȷ�ϰ�ť��λ�ã����öԻ����С + // TODO: Thiết lập vị trí của nút xác nhận, thiết lập kích thước của hộp thoại. + // var pBtnConfirm = m_pBtn_Confirm; + // AUIObject* pImgLineMid = GetDlgItem(AString().Format("Item_%02d01", MIN_ROW_COUNT_TO_SHOW)); + // AUIObject* pEdiBg = GetDlgItem("background"); + // pBtnConfirm->SetPos(pBtnConfirm->GetPos(true).x, + // pImgLineMid->GetPos(true).y + pImgLineMid->GetSize().cy + 10); + // SetSize(GetSize().cx, pBtnConfirm->GetPos(true).y + pBtnConfirm->GetSize().cy + 30); + // pEdiBg->SetSize(pEdiBg->GetSize().cx, GetSize().cy - pEdiBg->GetPos(true).y - 25); + } + else + { + // ������ʾȫ���� / Show all rows + for (int i = MIN_ROW_COUNT_TO_SHOW + 1; i < _rowCount; i++) + { + // sprintf(out szName, "Item_%02d01", i); + // pImage = (PAUIIMAGEPICTURE)GetDlgItem(szName); + // if (!pImage) break; // All done. + pImage = GetAwardItemAt(i, 1); + if (!pImage) break; // All done. + + if (ad.m_ulCandItems >= i) + { + // sprintf(out szName, "Rdo_Award%d", i); + // GetDlgItem(szName)->Show(true); + _radioButtons[i].gameObject.SetActive(true); + } + + for (int j = 1; j < _columnCount; j++) + { + // sprintf(out szName, "Item_%02d%02d", i, j); + // pImage = (PAUIIMAGEPICTURE)GetDlgItem(szName); + // if (!pImage) break; + pImage = GetAwardItemAt(i, j); + if (!pImage) break; + pImage.Show(true); + + // pImage2 = (PAUIIMAGEPICTURE)GetDlgItem(AString().Format("Img_%02d%02d", i, j)); + // pImage2->Show(true); + // TODO: Handle pImage2 if needed + // AwardItem pImage2 = GetAwardItemAt(i, j); + // pImage2?.Show(true); + } + } + + // ����ȷ�ϰ�ť��λ�ã����öԻ����С + // TODO: Thiết lập vị trí của nút xác nhận, thiết lập kích thước của hộp thoại. + // AUIObject* pBtnConfirm = GetDlgItem("Btn_Confirm"); + // AUIObject* pImgLineLast = GetDlgItem(AString().Format("Item_%02d01", i - 1)); + // AUIObject* pEdiBg = GetDlgItem("background"); + // pBtnConfirm->SetPos(pBtnConfirm->GetPos(true).x, + // pImgLineLast->GetPos(true).y + pImgLineLast->GetSize().cy + 10); + // SetSize(GetSize().cx, pBtnConfirm->GetPos(true).y + pBtnConfirm->GetSize().cy + 30); + // pEdiBg->SetSize(pEdiBg->GetSize().cx, GetSize().cy - pEdiBg->GetPos(true).y - 25); + } + } + } + + void sprintf(out string szName, string format, int i) + { + // Convert C-style format specifiers to C# format + // %02d -> zero-padded 2-digit integer (D2 format) + // %d -> regular integer + string csharpFormat = format + .Replace("%02d", "{0:D2}") + .Replace("%d", "{0}"); + szName = string.Format(csharpFormat, i); + } + + void sprintf(out string szName, string format, int i, int j) + { + // Convert C-style format specifiers to C# format for two parameters + // %02d -> zero-padded 2-digit integer (D2 format) + // %d -> regular integer + // Replace occurrences sequentially: first -> {0}, second -> {1} + string csharpFormat = format; + int paramIndex = 0; + csharpFormat = System.Text.RegularExpressions.Regex.Replace(csharpFormat, @"%02d|%d", match => + { + string replacement = paramIndex == 0 + ? (match.Value == "%02d" ? "{0:D2}" : "{0}") + : (match.Value == "%02d" ? "{1:D2}" : "{1}"); + paramIndex++; + return replacement; + }); + szName = string.Format(csharpFormat, i, j); + } + + void a_sprintf(out string szText, string format, uint nNum) + { + // Convert C-style format specifiers to C# format + // %d -> regular integer (for uint) + string csharpFormat = format.Replace("%d", "{0}"); + szText = string.Format(csharpFormat, nNum); + } + + string _AL(string text) + { + // Localization helper - returns the string as-is + // In C++ this would typically handle localization, but for now just return the text + return text; + } + + AwardItem GetAwardItemAt(int row, int column) + { + foreach (var item in _awardItems) + { + if (item.Position.x == row && + item.Position.y == column) + { + return item; + } + } + return null; + } + + } +} \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs.meta b/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs.meta new file mode 100644 index 0000000000..eb8f98efef --- /dev/null +++ b/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 1fac4acd7d2948cb81a522265a3f3863 +timeCreated: 1764934733 \ No newline at end of file diff --git a/Assets/PerfectWorld/UI/Award.meta b/Assets/PerfectWorld/UI/Award.meta new file mode 100644 index 0000000000..d15938cbbf --- /dev/null +++ b/Assets/PerfectWorld/UI/Award.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ce7649e37400b4c67baf894c0f5c049b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PerfectWorld/UI/Award/DlgAward.prefab b/Assets/PerfectWorld/UI/Award/DlgAward.prefab new file mode 100644 index 0000000000..6286daa5d3 --- /dev/null +++ b/Assets/PerfectWorld/UI/Award/DlgAward.prefab @@ -0,0 +1,2290 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &227158560462075115 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1037286517714561285} + - component: {fileID: 2958213901730883256} + m_Layer: 5 + m_Name: Toggle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1037286517714561285 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 227158560462075115} + 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: 5967673672506633234} + m_Father: {fileID: 2450815123296561302} + 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: 50, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2958213901730883256 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 227158560462075115} + 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: 4376062802034248599} + toggleTransition: 1 + graphic: {fileID: 2531169264107607804} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 +--- !u!1 &598635325287938884 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8266277978150929460} + - component: {fileID: 4062238967256872709} + - component: {fileID: 2531169264107607804} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8266277978150929460 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 598635325287938884} + 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: 5967673672506633234} + 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} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4062238967256872709 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 598635325287938884} + m_CullTransparentMesh: 1 +--- !u!114 &2531169264107607804 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 598635325287938884} + 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: 10901, guid: 0000000000000000f000000000000000, type: 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!1 &665647423033171590 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5381073653143899758} + - component: {fileID: 6511730806452177545} + - component: {fileID: 6219347094978315234} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5381073653143899758 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 665647423033171590} + 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: 8111247010163892649} + 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} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6511730806452177545 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 665647423033171590} + m_CullTransparentMesh: 1 +--- !u!114 &6219347094978315234 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 665647423033171590} + 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: 10901, guid: 0000000000000000f000000000000000, type: 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!1 &725403511909136917 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3990244885253972839} + - component: {fileID: 8883014756042783028} + - component: {fileID: 736858322421180486} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3990244885253972839 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 725403511909136917} + 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: 2109723218317570040} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -25} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8883014756042783028 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 725403511909136917} + m_CullTransparentMesh: 1 +--- !u!114 &736858322421180486 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 725403511909136917} + 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: "Ch\u1ECDn v\u1EADt ph\u1EA9m" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + 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 &903595479696773158 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2539478906271782923} + - component: {fileID: 1693421925832320050} + m_Layer: 5 + m_Name: DlgAward + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2539478906271782923 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903595479696773158} + 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: 2109723218317570040} + m_Father: {fileID: 0} + 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} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1693421925832320050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903595479696773158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1fac4acd7d2948cb81a522265a3f3863, type: 3} + m_Name: + m_EditorClassIdentifier: + m_pBtn_Confirm: {fileID: 2022223185403607436} + _itemSize: {x: 6, y: 10} + _awardItemPrefab: {fileID: 421596072721705907} + _radioButtons: + - {fileID: 2958213901730883256} + - {fileID: 733246749774266009} + - {fileID: 9010375097557978456} + - {fileID: 2166136893266299956} + - {fileID: 1707764266222510119} + - {fileID: 2876579923345408843} + _awardItems: [] +--- !u!1 &1403327757381850957 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2930918014260929987} + - component: {fileID: 2166136893266299956} + m_Layer: 5 + m_Name: Toggle (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2930918014260929987 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1403327757381850957} + 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: 8275321302884129443} + m_Father: {fileID: 2450815123296561302} + 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: 50, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2166136893266299956 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1403327757381850957} + 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: 3354338157638316856} + toggleTransition: 1 + graphic: {fileID: 6225229690304520632} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 +--- !u!1 &2100466003483804571 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1146872655239044338} + - component: {fileID: 3314083933085270264} + - component: {fileID: 1784872807370305018} + 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 &1146872655239044338 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2100466003483804571} + 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: 7340325585816733614} + 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} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3314083933085270264 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2100466003483804571} + m_CullTransparentMesh: 1 +--- !u!114 &1784872807370305018 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2100466003483804571} + 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: Confirm + 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: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 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 &2103274587524243331 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 341579013854257098} + - component: {fileID: 4036842375779331908} + - component: {fileID: 5045479894881455806} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &341579013854257098 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2103274587524243331} + 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: 3655441090811935129} + m_Father: {fileID: 9069806343431675717} + 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} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4036842375779331908 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2103274587524243331} + m_CullTransparentMesh: 1 +--- !u!114 &5045479894881455806 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2103274587524243331} + 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: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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 &2811283081231293190 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 943110452829201244} + - component: {fileID: 9121733115126255695} + - component: {fileID: 6225229690304520632} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &943110452829201244 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2811283081231293190} + 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: 8275321302884129443} + 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} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9121733115126255695 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2811283081231293190} + m_CullTransparentMesh: 1 +--- !u!114 &6225229690304520632 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2811283081231293190} + 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: 10901, guid: 0000000000000000f000000000000000, type: 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!1 &3111559935471862568 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2109723218317570040} + - component: {fileID: 151657509607830235} + - component: {fileID: 4009005441555249558} + m_Layer: 5 + m_Name: Popup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2109723218317570040 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3111559935471862568} + 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: 3990244885253972839} + - {fileID: 1558872982091896349} + - {fileID: 2450815123296561302} + - {fileID: 7340325585816733614} + m_Father: {fileID: 2539478906271782923} + 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, y: 0} + m_SizeDelta: {x: 1451.8601, y: 811} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &151657509607830235 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3111559935471862568} + m_CullTransparentMesh: 1 +--- !u!114 &4009005441555249558 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3111559935471862568} + 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: 4744752b0496d42d0b1c52fcb705e044, 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 &3348139318622115234 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2594379282254710028} + - component: {fileID: 3662653153686734878} + - component: {fileID: 7848180479837842084} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2594379282254710028 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3348139318622115234} + 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: 6425438017683825551} + 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} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3662653153686734878 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3348139318622115234} + m_CullTransparentMesh: 1 +--- !u!114 &7848180479837842084 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3348139318622115234} + 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: 10901, guid: 0000000000000000f000000000000000, type: 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!1 &3479383918729952281 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1558872982091896349} + - component: {fileID: 3544446125153758963} + m_Layer: 5 + m_Name: ItemGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1558872982091896349 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3479383918729952281} + 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: 2175163742848198118} + m_Father: {fileID: 2109723218317570040} + 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: 110.20192, y: 11.7493} + m_SizeDelta: {x: 1123.4043, y: 590.3094} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3544446125153758963 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3479383918729952281} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8a8695521f0d02e499659fee002a26c2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 100, y: 100} + m_Spacing: {x: 10, y: 10} + m_Constraint: 1 + m_ConstraintCount: 10 +--- !u!1 &3565430854526106865 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9069806343431675717} + - component: {fileID: 2876579923345408843} + m_Layer: 5 + m_Name: Toggle (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9069806343431675717 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3565430854526106865} + 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: 341579013854257098} + m_Father: {fileID: 2450815123296561302} + 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: 50, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2876579923345408843 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3565430854526106865} + 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: 5045479894881455806} + toggleTransition: 1 + graphic: {fileID: 7207637042536033371} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 +--- !u!1 &3664700763723290860 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4250138675328193934} + - component: {fileID: 733246749774266009} + m_Layer: 5 + m_Name: Toggle (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4250138675328193934 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3664700763723290860} + 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: 7217077735022209564} + m_Father: {fileID: 2450815123296561302} + 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: 50, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &733246749774266009 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3664700763723290860} + 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: 6245175927925089128} + toggleTransition: 1 + graphic: {fileID: 126544343920740120} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 +--- !u!1 &3692755084474195755 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2175163742848198118} + - component: {fileID: 421596072721705907} + - component: {fileID: 1897581106405175503} + - component: {fileID: 2930912330486762729} + - component: {fileID: 5829300517807457460} + m_Layer: 5 + m_Name: AwardItem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2175163742848198118 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3692755084474195755} + 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: 504415793170309261} + m_Father: {fileID: 1558872982091896349} + 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!114 &421596072721705907 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3692755084474195755} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9d87c7b8ac564f919171a5173812980e, type: 3} + m_Name: + m_EditorClassIdentifier: + img: {fileID: 0} + btn: {fileID: 5829300517807457460} +--- !u!222 &1897581106405175503 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3692755084474195755} + m_CullTransparentMesh: 1 +--- !u!114 &2930912330486762729 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3692755084474195755} + 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: 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 &5829300517807457460 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3692755084474195755} + 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: 2930912330486762729} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &3824823497742539506 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6425438017683825551} + - component: {fileID: 8923213407923052435} + - component: {fileID: 4503678912350313887} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6425438017683825551 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3824823497742539506} + 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: 2594379282254710028} + m_Father: {fileID: 6397292135018809548} + 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} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8923213407923052435 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3824823497742539506} + m_CullTransparentMesh: 1 +--- !u!114 &4503678912350313887 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3824823497742539506} + 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: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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 &4660714409237943125 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2450815123296561302} + - component: {fileID: 1430101278767489564} + m_Layer: 5 + m_Name: RadioBtnGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2450815123296561302 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4660714409237943125} + 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: 1037286517714561285} + - {fileID: 4250138675328193934} + - {fileID: 2363640227141846661} + - {fileID: 2930918014260929987} + - {fileID: 6397292135018809548} + - {fileID: 9069806343431675717} + m_Father: {fileID: 2109723218317570040} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 122.298096, y: -393.75} + m_SizeDelta: {x: 129.4809, y: 590.31} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1430101278767489564 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4660714409237943125} + 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: 30 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 50 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &5325640235670539457 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8980072884036013229} + - component: {fileID: 3187243540436091359} + - component: {fileID: 126544343920740120} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8980072884036013229 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5325640235670539457} + 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: 7217077735022209564} + 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} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3187243540436091359 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5325640235670539457} + m_CullTransparentMesh: 1 +--- !u!114 &126544343920740120 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5325640235670539457} + 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: 10901, guid: 0000000000000000f000000000000000, type: 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!1 &5498099694921818792 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8111247010163892649} + - component: {fileID: 1389627216354638004} + - component: {fileID: 5687745320305579942} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8111247010163892649 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5498099694921818792} + 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: 5381073653143899758} + m_Father: {fileID: 2363640227141846661} + 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} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1389627216354638004 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5498099694921818792} + m_CullTransparentMesh: 1 +--- !u!114 &5687745320305579942 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5498099694921818792} + 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: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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 &5837337214923895561 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 504415793170309261} + - component: {fileID: 673608011296253043} + - component: {fileID: 5798109676702798723} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &504415793170309261 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5837337214923895561} + 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: 2175163742848198118} + 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: -10, y: -10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &673608011296253043 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5837337214923895561} + m_CullTransparentMesh: 1 +--- !u!114 &5798109676702798723 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5837337214923895561} + 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: 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!1 &6028272593332042850 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7217077735022209564} + - component: {fileID: 5661059597940117097} + - component: {fileID: 6245175927925089128} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7217077735022209564 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6028272593332042850} + 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: 8980072884036013229} + m_Father: {fileID: 4250138675328193934} + 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} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5661059597940117097 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6028272593332042850} + m_CullTransparentMesh: 1 +--- !u!114 &6245175927925089128 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6028272593332042850} + 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: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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 &6328435563484088153 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8275321302884129443} + - component: {fileID: 3155131478209322163} + - component: {fileID: 3354338157638316856} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8275321302884129443 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6328435563484088153} + 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: 943110452829201244} + m_Father: {fileID: 2930918014260929987} + 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} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3155131478209322163 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6328435563484088153} + m_CullTransparentMesh: 1 +--- !u!114 &3354338157638316856 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6328435563484088153} + 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: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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 &7110776141332968999 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3655441090811935129} + - component: {fileID: 1542407570922745670} + - component: {fileID: 7207637042536033371} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3655441090811935129 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7110776141332968999} + 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: 341579013854257098} + 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} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1542407570922745670 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7110776141332968999} + m_CullTransparentMesh: 1 +--- !u!114 &7207637042536033371 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7110776141332968999} + 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: 10901, guid: 0000000000000000f000000000000000, type: 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!1 &7363450080172263604 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6397292135018809548} + - component: {fileID: 1707764266222510119} + m_Layer: 5 + m_Name: Toggle (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6397292135018809548 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7363450080172263604} + 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: 6425438017683825551} + m_Father: {fileID: 2450815123296561302} + 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: 50, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1707764266222510119 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7363450080172263604} + 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: 4503678912350313887} + toggleTransition: 1 + graphic: {fileID: 7848180479837842084} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 +--- !u!1 &7637041124332687819 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5967673672506633234} + - component: {fileID: 4720584933096987406} + - component: {fileID: 4376062802034248599} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5967673672506633234 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7637041124332687819} + 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: 8266277978150929460} + m_Father: {fileID: 1037286517714561285} + 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} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4720584933096987406 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7637041124332687819} + m_CullTransparentMesh: 1 +--- !u!114 &4376062802034248599 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7637041124332687819} + 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: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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 &9015749914769670722 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2363640227141846661} + - component: {fileID: 9010375097557978456} + m_Layer: 5 + m_Name: Toggle (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2363640227141846661 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9015749914769670722} + 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: 8111247010163892649} + m_Father: {fileID: 2450815123296561302} + 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: 50, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &9010375097557978456 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9015749914769670722} + 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: 5687745320305579942} + toggleTransition: 1 + graphic: {fileID: 6219347094978315234} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 +--- !u!1 &9105626102026763552 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7340325585816733614} + - component: {fileID: 6190841901814383368} + - component: {fileID: 6310281645281955538} + - component: {fileID: 2022223185403607436} + m_Layer: 5 + m_Name: ConfirmBtn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7340325585816733614 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9105626102026763552} + 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: 1146872655239044338} + m_Father: {fileID: 2109723218317570040} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 64} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6190841901814383368 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9105626102026763552} + m_CullTransparentMesh: 1 +--- !u!114 &6310281645281955538 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9105626102026763552} + 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: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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 &2022223185403607436 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9105626102026763552} + 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: 6310281645281955538} + m_OnClick: + m_PersistentCalls: + m_Calls: [] diff --git a/Assets/PerfectWorld/UI/Award/DlgAward.prefab.meta b/Assets/PerfectWorld/UI/Award/DlgAward.prefab.meta new file mode 100644 index 0000000000..27f7f9cec9 --- /dev/null +++ b/Assets/PerfectWorld/UI/Award/DlgAward.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cf26d96ae7d984ba8a5b6cef44adffeb +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: