소스 검색

增加-试衣间
Temp-试衣间教程

jet 8 년 전
부모
커밋
0724ded8fa

+ 0 - 9
Assets/Extension.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: b948198483a8b93419206e81215060f3
-folderAsset: yes
-timeCreated: 1496150477
-licenseType: Pro
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
Assets/Resource/Prefab/Object/Player.prefab


BIN
Assets/Resource/Prefab/PrefabUI/GroupB.prefab


BIN
Assets/Resource/Prefab/PrefabUI/GroupD.prefab


BIN
Assets/Resource/Prefab/PrefabUI/GroupE.prefab


BIN
Assets/Resource/Sprite/SpriteUI/Atlas.png


+ 23 - 9
Assets/Resource/Sprite/SpriteUI/Atlas.png.meta

@@ -1,12 +1,13 @@
 fileFormatVersion: 2
 guid: 64ace2edec65be1458f4f6c09ae97699
-timeCreated: 1495447518
+timeCreated: 1499829151
 licenseType: Pro
 TextureImporter:
   fileIDToRecycleName:
     21300000: "\u91D1\u5E01"
     21300002: "\u94BB\u77F3"
     21300004: "\u82B1\u6735"
+    21300006: "\u5DF2\u8D2D"
   serializedVersion: 4
   mipmaps:
     mipMapMode: 0
@@ -100,10 +101,10 @@ TextureImporter:
       name: "\u82B1\u6735"
       rect:
         serializedVersion: 2
-        x: 3
-        y: 108
+        x: 0
+        y: 328
         width: 196
-        height: 183
+        height: 182
       alignment: 0
       pivot: {x: 0.5, y: 0.5}
       border: {x: 0, y: 0, z: 0, w: 0}
@@ -113,9 +114,9 @@ TextureImporter:
       name: "\u94BB\u77F3"
       rect:
         serializedVersion: 2
-        x: 5
-        y: 10
-        width: 89
+        x: 2
+        y: 231
+        width: 90
         height: 88
       alignment: 0
       pivot: {x: 0.5, y: 0.5}
@@ -126,8 +127,8 @@ TextureImporter:
       name: "\u91D1\u5E01"
       rect:
         serializedVersion: 2
-        x: 104
-        y: 11
+        x: 101
+        y: 232
         width: 88
         height: 87
       alignment: 0
@@ -135,6 +136,19 @@ TextureImporter:
       border: {x: 0, y: 0, z: 0, w: 0}
       outline: []
       tessellationDetail: 0
+    - serializedVersion: 2
+      name: "\u5DF2\u8D2D"
+      rect:
+        serializedVersion: 2
+        x: 2
+        y: 121
+        width: 131
+        height: 106
+      alignment: 0
+      pivot: {x: 0.5, y: 0.5}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      tessellationDetail: 0
     outline: []
   spritePackingTag: 
   userData: 

+ 19 - 16
Assets/Resource/XML/Config/dressRoom_config.xml

@@ -1,20 +1,20 @@
 <data>
-  <item id="1" jump_frequency="5" name="" type="" index="" bodypart="" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" />
-  <item id="2" jump_frequency="" name="脑壳1" type="1" index="0" bodypart="1" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" />
-  <item id="3" jump_frequency="" name="脑壳2" type="1" index="1" bodypart="1" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" />
-  <item id="4" jump_frequency="" name="脑壳3" type="1" index="2" bodypart="1" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" />
-  <item id="5" jump_frequency="" name="裙子1" type="3" index="0" bodypart="2" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" />
-  <item id="6" jump_frequency="" name="裙子2" type="3" index="1" bodypart="2" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" />
-  <item id="7" jump_frequency="" name="裙子3" type="3" index="2" bodypart="2" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" />
-  <item id="8" jump_frequency="" name="鞋子1" type="3" index="3" bodypart="3" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" />
-  <item id="9" jump_frequency="" name="鞋子2" type="3" index="4" bodypart="3" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" />
-  <item id="10" jump_frequency="" name="鞋子3" type="3" index="5" bodypart="3" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" />
-  <item id="11" jump_frequency="" name="头饰品1" type="4" index="0" bodypart="4" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" />
-  <item id="12" jump_frequency="" name="头饰品2" type="4" index="1" bodypart="4" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" />
-  <item id="13" jump_frequency="" name="头饰品3" type="4" index="2" bodypart="4" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" />
-  <item id="14" jump_frequency="" name="上衣1" type="2" index="0" bodypart="5" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" />
-  <item id="15" jump_frequency="" name="上衣2" type="2" index="1" bodypart="5" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" />
-  <item id="16" jump_frequency="" name="上衣3" type="2" index="2" bodypart="5" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" />
+  <item id="1" jump_frequency="10" name="" type="" index="" bodypart="" level="" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="" />
+  <item id="2" jump_frequency="" name="脑壳1" type="1" index="0" bodypart="1" level="0" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="120" />
+  <item id="3" jump_frequency="" name="脑壳2" type="1" index="1" bodypart="1" level="0" buy_currency="2" buy_amt="1000" buy_advance_currency="" buy_advance_amt="" pixelSize="105" />
+  <item id="4" jump_frequency="" name="脑壳3" type="1" index="2" bodypart="1" level="0" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" />
+  <item id="5" jump_frequency="" name="裙子1" type="3" index="0" bodypart="2" level="0" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="100" />
+  <item id="6" jump_frequency="" name="裙子2" type="3" index="1" bodypart="2" level="0" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" />
+  <item id="7" jump_frequency="" name="裙子3" type="3" index="2" bodypart="2" level="0" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" />
+  <item id="8" jump_frequency="" name="鞋子1" type="3" index="3" bodypart="3" level="0" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="40" />
+  <item id="9" jump_frequency="" name="鞋子2" type="3" index="4" bodypart="3" level="0" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" />
+  <item id="10" jump_frequency="" name="鞋子3" type="3" index="5" bodypart="3" level="0" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="40" />
+  <item id="11" jump_frequency="" name="头饰品1" type="4" index="0" bodypart="4" level="0" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="100" />
+  <item id="12" jump_frequency="" name="头饰品2" type="4" index="1" bodypart="4" level="0" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" />
+  <item id="13" jump_frequency="" name="头饰品3" type="4" index="2" bodypart="4" level="0" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" />
+  <item id="14" jump_frequency="" name="上衣1" type="2" index="0" bodypart="5" level="0" buy_currency="" buy_amt="" buy_advance_currency="" buy_advance_amt="" pixelSize="100" />
+  <item id="15" jump_frequency="" name="上衣2" type="2" index="1" bodypart="5" level="0" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" />
+  <item id="16" jump_frequency="" name="上衣3" type="2" index="2" bodypart="5" level="0" buy_currency="1" buy_amt="100" buy_advance_currency="" buy_advance_amt="" pixelSize="100" />
   <comment>
     <id>
 id
@@ -49,5 +49,8 @@ id
     <buy_advance_amt>
 提前购买消耗值
 </buy_advance_amt>
+    <pixelSize>
+Sprite大小
+</pixelSize>
   </comment>
 </data>

+ 9 - 5
Assets/Resource/XML/PlayerConfig.xml

@@ -1,13 +1,15 @@
 <PlayerConfig>
-  <Version value="655" />
+  <Version value="666" />
 
   <ID value="Default" />
-////  <TutorialA value="0" />
-////  <TutorialB value="0" />
-////  <TutorialC value="0" />
+  <TutorialA value="1" />
+  <TutorialB value="1" />
+  <TutorialC value="1" />
+  <TutorialD value="1" />
   <TutorialIndexA value="1" />
   <TutorialIndexB value="1" />
   <TutorialIndexC value="1" />
+  <TutorialIndexD value="1" />
 
   <Player value="PlayerBlond" />
   <QuitFlag value="0" />
@@ -22,10 +24,12 @@
   <SignRound value="1" />
   <CircleTimer value="0" />
   <MiniGameIndex value="0" />
-  
+
   <PlantList value =""/>
+  <DressList value ="2 5 8 11 14"/>
   <FlowerList value="1" />
   <AchieveList value="" />
+  <DressData Head="" Dress="" Shoe="" HeadWear="" Top="" Eye="" Mouse=""/>
   <AchieveData AD="0" Skill="0" Sign="0" Share="0" ElfLevel="0" MiniGame="0" FlowerCoin="0" TotalPerson="0"/>
 
   <SkillList>

+ 21 - 0
Assets/Resource/XML/lan/ChineseSimplified.xml

@@ -88,6 +88,10 @@
     <P_DressLab desc=""><![CDATA[下装]]></P_DressLab>
     <P_DecaratorLab desc=""><![CDATA[饰品]]></P_DecaratorLab>
     <P_WingLab desc=""><![CDATA[翅膀]]></P_WingLab>
+    <P_BtnLab1 desc=""><![CDATA[购买]]></P_BtnLab1>
+    <P_BtnLab2 desc=""><![CDATA[已购<(已购)>]]></P_BtnLab2>
+    <Pa_Tit desc=""><![CDATA[购买装扮]]></Pa_Tit>
+    <Pa_BtnLab desc=""><![CDATA[购买]]></Pa_BtnLab>
   </UI>
   <FlowerName>
     <Flower1 desc=""><![CDATA[粉色小花]]></Flower1>
@@ -386,4 +390,21 @@
   <Android>
     <ShareUrl desc=""><![CDATA[https://www.taptap.com/app/52648]]></ShareUrl>
   </Android>
+  <DressRoom>
+    <脑壳1 desc=""><![CDATA[服装的说明]]></脑壳1>
+    <脑壳2 desc=""><![CDATA[服装的说明]]></脑壳2>
+    <脑壳3 desc=""><![CDATA[服装的说明]]></脑壳3>
+    <裙子1 desc=""><![CDATA[服装的说明]]></裙子1>
+    <裙子2 desc=""><![CDATA[服装的说明]]></裙子2>
+    <裙子3 desc=""><![CDATA[服装的说明]]></裙子3>
+    <鞋子1 desc=""><![CDATA[服装的说明]]></鞋子1>
+    <鞋子2 desc=""><![CDATA[服装的说明]]></鞋子2>
+    <鞋子3 desc=""><![CDATA[服装的说明]]></鞋子3>
+    <头饰品1 desc=""><![CDATA[服装的说明]]></头饰品1>
+    <头饰品2 desc=""><![CDATA[服装的说明]]></头饰品2>
+    <头饰品3 desc=""><![CDATA[服装的说明]]></头饰品3>
+    <上衣1 desc=""><![CDATA[服装的说明]]></上衣1>
+    <上衣2 desc=""><![CDATA[服装的说明]]></上衣2>
+    <上衣3 desc=""><![CDATA[服装的说明]]></上衣3>
+  </DressRoom>
 </lan>

+ 21 - 0
Assets/Resource/XML/lan/ChineseTraditional.xml

@@ -88,6 +88,10 @@
     <P_DressLab desc=""><![CDATA[下裝]]></P_DressLab>
     <P_DecaratorLab desc=""><![CDATA[飾品]]></P_DecaratorLab>
     <P_WingLab desc=""><![CDATA[翅膀]]></P_WingLab>
+    <P_BtnLab1 desc=""><![CDATA[購買]]></P_BtnLab1>
+    <P_BtnLab2 desc=""><![CDATA[已購<(已购)>]]></P_BtnLab2>
+    <Pa_Tit desc=""><![CDATA[購買裝扮]]></Pa_Tit>
+    <Pa_BtnLab desc=""><![CDATA[購買]]></Pa_BtnLab>
   </UI>
   <FlowerName>
     <Flower1 desc=""><![CDATA[粉色小花]]></Flower1>
@@ -386,4 +390,21 @@
   <Android>
     <ShareUrl desc=""><![CDATA[]]></ShareUrl>
   </Android>
+  <DressRoom>
+    <脑壳1 desc=""><![CDATA[]]></脑壳1>
+    <脑壳2 desc=""><![CDATA[]]></脑壳2>
+    <脑壳3 desc=""><![CDATA[]]></脑壳3>
+    <裙子1 desc=""><![CDATA[]]></裙子1>
+    <裙子2 desc=""><![CDATA[]]></裙子2>
+    <裙子3 desc=""><![CDATA[]]></裙子3>
+    <鞋子1 desc=""><![CDATA[]]></鞋子1>
+    <鞋子2 desc=""><![CDATA[]]></鞋子2>
+    <鞋子3 desc=""><![CDATA[]]></鞋子3>
+    <头饰品1 desc=""><![CDATA[]]></头饰品1>
+    <头饰品2 desc=""><![CDATA[]]></头饰品2>
+    <头饰品3 desc=""><![CDATA[]]></头饰品3>
+    <上衣1 desc=""><![CDATA[]]></上衣1>
+    <上衣2 desc=""><![CDATA[]]></上衣2>
+    <上衣3 desc=""><![CDATA[]]></上衣3>
+  </DressRoom>
 </lan>

+ 21 - 0
Assets/Resource/XML/lan/English.xml

@@ -88,6 +88,10 @@
     <P_DressLab desc=""><![CDATA[Dress]]></P_DressLab>
     <P_DecaratorLab desc=""><![CDATA[Accessory]]></P_DecaratorLab>
     <P_WingLab desc=""><![CDATA[Wing]]></P_WingLab>
+    <P_BtnLab1 desc=""><![CDATA[Buy]]></P_BtnLab1>
+    <P_BtnLab2 desc=""><![CDATA[Bought<(已购)>]]></P_BtnLab2>
+    <Pa_Tit desc=""><![CDATA[Buy clothing]]></Pa_Tit>
+    <Pa_BtnLab desc=""><![CDATA[Buy]]></Pa_BtnLab>
   </UI>
   <FlowerName>
     <Flower1 desc=""><![CDATA[Pink Flower]]></Flower1>
@@ -386,4 +390,21 @@ Increase all Coin prudoction by [&coin_person&](permanently)]]></Pack6>
   <Android>
     <ShareUrl desc=""><![CDATA[]]></ShareUrl>
   </Android>
+  <DressRoom>
+    <脑壳1 desc=""><![CDATA[]]></脑壳1>
+    <脑壳2 desc=""><![CDATA[]]></脑壳2>
+    <脑壳3 desc=""><![CDATA[]]></脑壳3>
+    <裙子1 desc=""><![CDATA[]]></裙子1>
+    <裙子2 desc=""><![CDATA[]]></裙子2>
+    <裙子3 desc=""><![CDATA[]]></裙子3>
+    <鞋子1 desc=""><![CDATA[]]></鞋子1>
+    <鞋子2 desc=""><![CDATA[]]></鞋子2>
+    <鞋子3 desc=""><![CDATA[]]></鞋子3>
+    <头饰品1 desc=""><![CDATA[]]></头饰品1>
+    <头饰品2 desc=""><![CDATA[]]></头饰品2>
+    <头饰品3 desc=""><![CDATA[]]></头饰品3>
+    <上衣1 desc=""><![CDATA[]]></上衣1>
+    <上衣2 desc=""><![CDATA[]]></上衣2>
+    <上衣3 desc=""><![CDATA[]]></上衣3>
+  </DressRoom>
 </lan>

BIN
Assets/Resource/Xlsx/dressRoom_config.xlsx


BIN
Assets/Resource/Xlsx/language_config.xlsx


+ 2 - 0
Assets/Script/Manage/Initializer.cs

@@ -80,9 +80,11 @@ public class Initializer : MonoBehaviour
         ManaTutorial.TutorialA = ManaData.GetPlayerBool("TutorialA");
         ManaTutorial.TutorialB_ = ManaData.GetPlayerBool("TutorialB");
         ManaTutorial.TutorialC_ = ManaData.GetPlayerBool("TutorialC");
+        ManaTutorial.TutorialD_ = ManaData.GetPlayerBool("TutorialD");
         ManaTutorial.TutorialIndexA = ManaData.GetPlayerInt("TutorialIndexA");
         ManaTutorial.TutorialIndexB = ManaData.GetPlayerInt("TutorialIndexB");
         ManaTutorial.TutorialIndexC = ManaData.GetPlayerInt("TutorialIndexC");
+        ManaTutorial.TutorialIndexD = ManaData.GetPlayerInt("TutorialIndexD");
 
         Bundle.LoadAtlas2Sprite();
 

+ 13 - 0
Assets/Script/Manage/ManaCenter.cs

@@ -136,6 +136,11 @@ public class ManaCenter : Regist
                 SkillList[i].UpdateStatus();
             }
 
+            foreach (var kv in ManaPlayer.CloseUnitDic)
+            {
+                kv.Value.OnLevelChange();
+            }
+
             if (Level_ >= 8)
             {
                 if (ManaTutorial.TutorialC_)
@@ -148,6 +153,14 @@ public class ManaCenter : Regist
                 }
             }
 
+            if (Level_ >= 13)
+            {
+                if (ManaTutorial.TutorialD_)
+                {
+                    ManaTutorial.EnterD();
+                }
+            }
+
             if (Level_ >= 18)
             {
                 if (ManaTutorial.TutorialB_)

+ 177 - 9
Assets/Script/Manage/ManaData.cs

@@ -33,7 +33,7 @@ public class ManaData : Regist
         {
             if (PlayerDoc_ == null)
             {
-                int version;
+                int defaultVersion;
                 int nativeVersion;
 
                 XmlNode node;
@@ -57,7 +57,7 @@ public class ManaData : Regist
 
                     DefaultDoc.LoadXml(textAsset.text);
                     
-                    version = int.Parse(DefaultDoc.SelectSingleNode("PlayerConfig").SelectSingleNode("Version").Attributes[0].Value);
+                    defaultVersion = int.Parse(DefaultDoc.SelectSingleNode("PlayerConfig").SelectSingleNode("Version").Attributes[0].Value);
                     
                     node = nativeDoc.SelectSingleNode("PlayerConfig").SelectSingleNode("Version");
 
@@ -75,7 +75,11 @@ public class ManaData : Regist
                     {
                         nativeVersion = int.Parse(node.Attributes[0].Value);
                         
-                        if (nativeVersion < version)
+                        if (nativeVersion < defaultVersion)
+                        {
+                            PlayerDoc_ = MergeXML(nativeVersion, defaultVersion, nativeDoc, DefaultDoc);
+                        }
+                        else if (nativeVersion > defaultVersion)
                         {
                             PlayerDoc_ = DefaultDoc;
                         }
@@ -93,8 +97,6 @@ public class ManaData : Regist
                                 DamageLock = true;
                                 DownloadLock = false;
 
-                                //ManaServer.Download(PlayerPrefs.GetString("id"), RecoveXml);
-
                                 return null;
                             }
                             
@@ -114,8 +116,6 @@ public class ManaData : Regist
                     DamageLock = true;
                     DownloadLock = false;
 
-                    //ManaServer.Download(PlayerPrefs.GetString("id"), RecoveXml);
-
                     return null;
                 }
             }
@@ -362,6 +362,27 @@ public class ManaData : Regist
         }
     }
 
+    public static void SaveDressList()
+    {
+        XmlNode xmlNode = PlayerNode.SelectSingleNode("DressList");
+        xmlNode.Attributes[0].Value = "";
+
+        for (int i = 0; i < ManaPlayer.BoughtCloseList.Count; i++)
+        {
+            xmlNode.Attributes[0].Value += ManaPlayer.BoughtCloseList[i] + " ";
+        }
+
+        xmlNode.Attributes[0].Value = xmlNode.Attributes[0].Value.TrimEnd(' ');
+
+
+        xmlNode = PlayerNode.SelectSingleNode("DressData");
+
+        for (int i = 0; i < ManaPlayer.DressData.Count; i++)
+        {
+            xmlNode.Attributes[i].Value = ManaPlayer.DressData[i];
+        }
+    }
+
     public static void SaveAchieve()
     {
         XmlNode xmlNode = PlayerNode.SelectSingleNode("AchieveList");
@@ -425,17 +446,18 @@ public class ManaData : Regist
         PlayerNode.SelectSingleNode("CircleTimer").Attributes[0].Value = ManaCenter.CircleTimer.ToString("0");
 
         PlayerNode.SelectSingleNode("ID").Attributes[0].Value = ManaServer.ID;
-        PlayerNode.SelectSingleNode("Player").Attributes[0].Value = ManaPlayer.SelePlayer;
         PlayerNode.SelectSingleNode("Language").Attributes[0].Value = ManaLan.CurrentLan.ToString();
         PlayerNode.SelectSingleNode("MiniGameIndex").Attributes[0].Value = ManaMiniGame.MiniGameIndex.ToString();
 
         PlayerNode.SelectSingleNode("TutorialA").Attributes[0].Value = ManaTutorial.TutorialA.ToInt().ToString();
         PlayerNode.SelectSingleNode("TutorialB").Attributes[0].Value = ManaTutorial.TutorialB_.ToInt().ToString();
         PlayerNode.SelectSingleNode("TutorialC").Attributes[0].Value = ManaTutorial.TutorialC_.ToInt().ToString();
+        PlayerNode.SelectSingleNode("TutorialD").Attributes[0].Value = ManaTutorial.TutorialD_.ToInt().ToString();
 
         PlayerNode.SelectSingleNode("TutorialIndexA").Attributes[0].Value = ManaTutorial.TutorialIndexA.ToString();
         PlayerNode.SelectSingleNode("TutorialIndexB").Attributes[0].Value = ManaTutorial.TutorialIndexB.ToString();
         PlayerNode.SelectSingleNode("TutorialIndexC").Attributes[0].Value = ManaTutorial.TutorialIndexC.ToString();
+        PlayerNode.SelectSingleNode("TutorialIndexD").Attributes[0].Value = ManaTutorial.TutorialIndexD.ToString();
     }
 
     public static void SaveFlowerList()
@@ -461,6 +483,7 @@ public class ManaData : Regist
         {
             SaveSkillList();
             SaveAchieve();
+            SaveDressList();
             SavePlantList();
             SaveCommon();
             SaveFlowerList();
@@ -472,7 +495,7 @@ public class ManaData : Regist
     {
         PlayerPrefs.SetString("id", "");
 
-        PlayerNode.SelectSingleNode("Version").Attributes[0].Value = "0";
+        PlayerNode.SelectSingleNode("Version").Attributes[0].Value = "10000";
 
         SavePlayerConfig();
 
@@ -532,6 +555,41 @@ public class ManaData : Regist
     }
 
 
+    public static List<int> GetDressList()
+    {
+        List<int> list = new List<int>();
+
+        XmlAttributeCollection attribute = PlayerNode.SelectSingleNode("DressList").Attributes;
+
+        return Auxiliary.IntListParse(' ', attribute[0].Value, list);
+    }
+
+    public static List<string> GetDressData(XmlNode node = null)
+    {
+        XmlNode xmlNode;
+
+        if (node == null)
+        {
+            xmlNode = PlayerNode.SelectSingleNode("DressData");
+        }
+        else
+        {
+            xmlNode = node.SelectSingleNode("DressData");
+        }
+
+        List<string> dataList = new List<string>();
+
+        dataList.Add(xmlNode.Attributes[0].Value);
+        dataList.Add(xmlNode.Attributes[1].Value);
+        dataList.Add(xmlNode.Attributes[2].Value);
+        dataList.Add(xmlNode.Attributes[3].Value);
+        dataList.Add(xmlNode.Attributes[4].Value);
+        dataList.Add(xmlNode.Attributes[5].Value);
+        dataList.Add(xmlNode.Attributes[6].Value);
+
+        return dataList;
+    }
+
     public static List<int> GetFlowerList()
     {
         List<int> list = new List<int>();
@@ -781,4 +839,114 @@ public class ManaData : Regist
 
         return attributeList;
     }
+
+
+    public static XmlDocument MergeXML(int nativeVersion, int defaultVersion, XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        if (nativeVersion < 665)
+        {
+            To665(nativeDoc, defaultDoc);
+        }
+
+        if (nativeVersion < 666)
+        {
+            To666(nativeDoc, defaultDoc);
+        }
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument To665(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        string playerType = "";
+        XmlNode xmlNode1 = nativeDoc.SelectSingleNode("PlayerConfig").SelectSingleNode("DressList");
+        XmlNode xmlNode2 = nativeDoc.SelectSingleNode("PlayerConfig").SelectSingleNode("DressData");
+        XmlNode xmlNode3 = nativeDoc.SelectSingleNode("PlayerConfig").SelectSingleNode("Player");
+
+        if (xmlNode1 != null)
+        {
+            nativeDoc.SelectSingleNode("PlayerConfig").RemoveChild(xmlNode1);
+        }
+
+        if (xmlNode2 != null)
+        {
+            nativeDoc.SelectSingleNode("PlayerConfig").RemoveChild(xmlNode2);
+        }
+
+        if (xmlNode3 != null)
+        {
+            playerType = xmlNode3.Attributes[0].Value;
+
+            nativeDoc.SelectSingleNode("PlayerConfig").RemoveChild(xmlNode3);
+        }
+
+
+        nativeDoc.SelectSingleNode("PlayerConfig").SelectSingleNode("Version").Attributes[0].Value = 665.ToString();
+
+        xmlNode1 = defaultDoc.SelectSingleNode("PlayerConfig").SelectSingleNode("DressList");
+        xmlNode2 = defaultDoc.SelectSingleNode("PlayerConfig").SelectSingleNode("DressData");
+
+        if (playerType == "PlayerBlond")
+        {
+            xmlNode2.Attributes[0].Value = "脑壳1";
+            xmlNode2.Attributes[1].Value = "裙子1";
+            xmlNode2.Attributes[2].Value = "鞋子1";
+            xmlNode2.Attributes[3].Value = "头饰品1";
+            xmlNode2.Attributes[4].Value = "上衣1";
+            xmlNode2.Attributes[5].Value = "眼睛1";
+            xmlNode2.Attributes[6].Value = "嘴巴1";
+        }
+        else if (playerType == "PlayerBrown")
+        {
+            xmlNode2.Attributes[0].Value = "脑壳2";
+            xmlNode2.Attributes[1].Value = "裙子2";
+            xmlNode2.Attributes[2].Value = "鞋子2";
+            xmlNode2.Attributes[3].Value = "头饰品2";
+            xmlNode2.Attributes[4].Value = "上衣2";
+            xmlNode2.Attributes[5].Value = "眼睛2";
+            xmlNode2.Attributes[6].Value = "嘴巴2";
+        }
+        else if (playerType == "PlayerPink")
+        {
+            xmlNode2.Attributes[0].Value = "脑壳3";
+            xmlNode2.Attributes[1].Value = "裙子3";
+            xmlNode2.Attributes[2].Value = "鞋子3";
+            xmlNode2.Attributes[3].Value = "头饰品3";
+            xmlNode2.Attributes[4].Value = "上衣3";
+            xmlNode2.Attributes[5].Value = "眼睛3";
+            xmlNode2.Attributes[6].Value = "嘴巴3";
+        }
+
+        nativeDoc.SelectSingleNode("PlayerConfig").AppendChild(nativeDoc.ImportNode(xmlNode1, true));
+        nativeDoc.SelectSingleNode("PlayerConfig").AppendChild(nativeDoc.ImportNode(xmlNode2, true));
+
+        return nativeDoc;
+    }
+
+    public static XmlDocument To666(XmlDocument nativeDoc, XmlDocument defaultDoc)
+    {
+        XmlNode xmlNode1 = nativeDoc.SelectSingleNode("PlayerConfig").SelectSingleNode("TutorialD");
+        XmlNode xmlNode2 = nativeDoc.SelectSingleNode("PlayerConfig").SelectSingleNode("TutorialIndexD");
+
+        if (xmlNode1 != null)
+        {
+            nativeDoc.SelectSingleNode("PlayerConfig").RemoveChild(xmlNode1);
+        }
+
+        if (xmlNode2 != null)
+        {
+            nativeDoc.SelectSingleNode("PlayerConfig").RemoveChild(xmlNode2);
+        }
+
+
+        nativeDoc.SelectSingleNode("PlayerConfig").SelectSingleNode("Version").Attributes[0].Value = 666.ToString();
+
+        xmlNode1 = defaultDoc.SelectSingleNode("PlayerConfig").SelectSingleNode("TutorialD");
+        xmlNode2 = defaultDoc.SelectSingleNode("PlayerConfig").SelectSingleNode("TutorialIndexD");
+
+        nativeDoc.SelectSingleNode("PlayerConfig").AppendChild(nativeDoc.ImportNode(xmlNode1, true));
+        nativeDoc.SelectSingleNode("PlayerConfig").AppendChild(nativeDoc.ImportNode(xmlNode2, true));
+
+        return nativeDoc;
+    }
 }

+ 81 - 27
Assets/Script/Manage/ManaPlayer.cs

@@ -18,7 +18,6 @@ public class ManaPlayer : Regist
     #region 变量
 
     public static bool Complete;
-    public static string SelePlayer = "PlayerBlond";
     public static Transform SeleTra;
 
     public static Player Player;
@@ -28,7 +27,11 @@ public class ManaPlayer : Regist
     public static Transform PlayerBrown;
     public static ManaPlayer Instance;
 
-    public static Dictionary<string, Sprite> CloseDic = new Dictionary<string, Sprite>();
+    public static List<int>BoughtCloseList = new List<int>();
+    public static List<string> DressData = new List<string>();  
+    public static Dictionary<int, CloseUnit> CloseUnitDic = new Dictionary<int, CloseUnit>();
+    public static Dictionary<string, int> CloseIDDic = new Dictionary<string, int>();
+    public static Dictionary<string, Sprite> CloseSpriteDic = new Dictionary<string, Sprite>();
 
     #endregion
 
@@ -49,15 +52,15 @@ public class ManaPlayer : Regist
 
         if (!ManaTutorial.TutorialA || ManaTutorial.TutorialIndexA != 1)
         {
-            SelePlayer = ManaData.GetPlayerString("Player");
-
             GetPlayer();
+
+            DressData = ManaData.GetDressData();
         }
         else
         {
-            PlayerPink = ManaReso.Get("Player", Folder.Scene, false, ManaReso.Get("PlayerPos3"), false, ObjType.PlayerPink);
-            PlayerBlond = ManaReso.Get("Player", Folder.Scene, false, ManaReso.Get("PlayerPos2"), false, ObjType.PlayerBlond);
-            PlayerBrown = ManaReso.Get("Player", Folder.Scene, false, ManaReso.Get("PlayerPos1"), false, ObjType.PlayerBrown);
+            PlayerPink = ManaReso.Get("Player", Folder.Scene, false, ManaReso.Get("PlayerPos3"), false, ObjType.Player);
+            PlayerBlond = ManaReso.Get("Player", Folder.Scene, false, ManaReso.Get("PlayerPos2"), false, ObjType.Player);
+            PlayerBrown = ManaReso.Get("Player", Folder.Scene, false, ManaReso.Get("PlayerPos1"), false, ObjType.Player);
 
             if (PlayerPink.GetComponent<Player>() == null)
             {
@@ -78,7 +81,6 @@ public class ManaPlayer : Regist
             PlayerBlond.localScale = new Vector3(0.8f, 0.8f, 0.8f);
             PlayerBrown.localScale = new Vector3(0.8f, 0.8f, 0.8f);
 
-            SelePlayer = "PlayerBlond";
             SeleTra = PlayerBlond;
         }
 
@@ -107,7 +109,7 @@ public class ManaPlayer : Regist
                     Sprite sprite = Sprite.Create(texture2D, rect, new Vector2(0.5f, 0.5f));
                     sprite.name = kv.Value.name;
 
-                    CloseDic.Add(sprite.name, sprite);
+                    CloseSpriteDic.Add(sprite.name, sprite);
                 }
             }
         }
@@ -125,6 +127,15 @@ public class ManaPlayer : Regist
             new CloseUnit(attributeList[i]);
         }
 
+        List<int> dressList = ManaData.GetDressList();
+
+        for (int i = 0; i < dressList.Count; i++)
+        {
+            BoughtCloseList.Add(dressList[i]);
+
+            CloseUnitDic[dressList[i]].Unlock();
+        }
+
         #endregion
     }
 
@@ -136,20 +147,57 @@ public class ManaPlayer : Regist
     }
 
 
-    public void GetPlayer(string type = null)
+    public Player GetPlayer(string type = null, XmlNode xmlNode = null)
     {
-        string player;
+        List<string> DressData = new List<string>();
 
-        if (type == null)
+        if (type == null && xmlNode == null)
         {
-            player = ManaData.GetPlayerString("Player");
+            DressData = ManaData.GetDressData();
         }
         else
         {
-            player = type;
+            if (type == null)
+            {
+                DressData = ManaData.GetDressData(xmlNode);
+            }
+            else
+            {
+                if (type == "PlayerBlond")
+                {
+                    DressData.Add("脑壳1");
+                    DressData.Add("裙子1");
+                    DressData.Add("鞋子1");
+                    DressData.Add("头饰品1");
+                    DressData.Add("上衣1");
+                    DressData.Add("眼睛1");
+                    DressData.Add("嘴巴1");
+                }
+                else if (type == "PlayerBrown")
+                {
+                    DressData.Add("脑壳2");
+                    DressData.Add("裙子2");
+                    DressData.Add("鞋子2");
+                    DressData.Add("头饰品2");
+                    DressData.Add("上衣2");
+                    DressData.Add("眼睛2");
+                    DressData.Add("嘴巴2");
+                }
+                else if (type == "PlayerPink")
+                {
+                    DressData.Add("脑壳3");
+                    DressData.Add("裙子3");
+                    DressData.Add("鞋子3");
+                    DressData.Add("头饰品3");
+                    DressData.Add("上衣3");
+                    DressData.Add("眼睛3");
+                    DressData.Add("嘴巴3");
+                }
+            }
         }
 
-        Transform tra = ManaReso.Get("Player", Folder.Scene, false, transform, ManaReso.Get("PlayerPosTra").position, player.ToEnum<ObjType>());
+
+        Transform tra = ManaReso.Get("Player", Folder.Scene, false, transform, ManaReso.Get("PlayerPosTra").position, ObjType.Player);
 
         Player = tra.GetComponent<Player>();
 
@@ -157,24 +205,30 @@ public class ManaPlayer : Regist
         {
             Player = tra.AddScript<Player>();
 
-            if (player == "PlayerPink")
-            {
-                Player.BuildPink();
-            }
-            else if (player == "PlayerBlond")
-            {
-                Player.BuildBlond();
-            }
-            else if (player == "PlayerBrown")
-            {
-                Player.BuildBrown();
-            }
+            Player.BuildBlond();
         }
+        
+
+        BuildPlayer(DressData);
+
 
         Player.SetAllCollider(true);
 
         tra.localScale = new Vector3(0.5f, 0.5f, 0.5f);
 
         ManaReso.TraDic.Add(tra.name, tra);
+
+        return Player;
+    }
+
+    public static void BuildPlayer(List<string> dressData)
+    {
+        Player.ChangeClose(BodyPart.Head, dressData[0]);
+        Player.ChangeClose(BodyPart.Dress, dressData[1]);
+        Player.ChangeClose(BodyPart.Shoe, dressData[2]);
+        Player.ChangeClose(BodyPart.Headwear, dressData[3]);
+        Player.ChangeClose(BodyPart.Top, dressData[4]);
+        Player.ChangeClose(BodyPart.Eye, dressData[5]);
+        Player.ChangeClose(BodyPart.Mouse, dressData[6]);
     }
 }

+ 1 - 74
Assets/Script/Manage/ManaReso.cs

@@ -31,9 +31,7 @@ public enum ObjType
     Firework,
     LightwallUI,
 
-    PlayerPink,
-    PlayerBlond,
-    PlayerBrown,
+    Player,
 
     Page,
     Flower,
@@ -917,77 +915,6 @@ public class ManaReso : Regist
         );
     }
 
-    public static void AddAsyncPlayer(string player)
-    {
-        AsyncList.Add
-        (
-            () =>
-            {
-                KV<AsyncRequest, UnityAction> kv = new KV<AsyncRequest, UnityAction>();
-
-                AssetBundleRequest bundleRequest = Bundle.LoadAsync<object>("Player", Folder.Scene);
-                
-                AsyncRequest asyncRequest = new AsyncRequest();
-                asyncRequest.Request = bundleRequest;
-                asyncRequest.Callback = null;
-
-                kv.Key = asyncRequest;
-                kv.Value = () =>
-                {
-                    GameObject go = (GameObject)Instantiate(bundleRequest.asset);
-
-                    go.name = go.name.Replace("(Clone)", "");
-
-
-                    ObjDic.UniqueAdd("Player", bundleRequest.asset);
-
-                    ObjType objType;
-
-                    if (player == "PlayerPink")
-                    {
-                        objType = ObjType.PlayerPink;
-
-                        ObjectPool.Add(objType, new List<Transform>());
-
-                        go.AddScript<Player>().BuildPink();
-
-                        ObjPoolDic.Add(go, objType);
-                    }
-                    else if (player == "PlayerBlond")
-                    {
-                        objType = ObjType.PlayerBlond;
-
-                        ObjectPool.Add(objType, new List<Transform>());
-
-                        go.AddScript<Player>().BuildBlond();
-
-                        ObjPoolDic.Add(go, objType);
-                    }
-                    else if(player == "PlayerBrown")
-                    {
-                        objType = ObjType.PlayerBrown;
-
-                        ObjectPool.Add(objType, new List<Transform>());
-
-                        go.AddScript<Player>().BuildBrown();
-
-                        ObjPoolDic.Add(go, objType);
-                    }
-                    else
-                    {
-                        throw new Exception();
-                    }
-
-                    Save(go);
-                };
-
-                RequestList.Add(bundleRequest);
-
-                InstantiateList.Add(kv);
-            }
-        );
-    }
-
 
     public static void AsyncLoadAtlas2()
     {

+ 53 - 1
Assets/Script/Manage/ManaTutorial.cs

@@ -66,12 +66,15 @@ public class ManaTutorial : Regist
     public static bool TutorialA;
     public static bool TutorialB;
     public static bool TutorialC;
+    public static bool TutorialD;
     public static bool TutorialB_;
     public static bool TutorialC_;
+    public static bool TutorialD_;
 
     public static int TutorialIndexA;
     public static int TutorialIndexB;
     public static int TutorialIndexC;
+    public static int TutorialIndexD;
 
     #endregion
 
@@ -244,11 +247,42 @@ public class ManaTutorial : Regist
             "N_Confirm",
             () =>
             {
+                if (ManaPlayer.SeleTra == ManaPlayer.PlayerPink)
+                {
+                    ManaPlayer.DressData.Add("脑壳3");
+                    ManaPlayer.DressData.Add("裙子3");
+                    ManaPlayer.DressData.Add("鞋子3");
+                    ManaPlayer.DressData.Add("头饰品3");
+                    ManaPlayer.DressData.Add("上衣3");
+                    ManaPlayer.DressData.Add("眼睛3");
+                    ManaPlayer.DressData.Add("嘴巴3");
+                }
+                else if (ManaPlayer.SeleTra == ManaPlayer.PlayerBlond)
+                {
+                    ManaPlayer.DressData.Add("脑壳1");
+                    ManaPlayer.DressData.Add("裙子1");
+                    ManaPlayer.DressData.Add("鞋子1");
+                    ManaPlayer.DressData.Add("头饰品1");
+                    ManaPlayer.DressData.Add("上衣1");
+                    ManaPlayer.DressData.Add("眼睛1");
+                    ManaPlayer.DressData.Add("嘴巴1");
+                }
+                else if (ManaPlayer.SeleTra == ManaPlayer.PlayerBrown)
+                {
+                    ManaPlayer.DressData.Add("脑壳2");
+                    ManaPlayer.DressData.Add("裙子2");
+                    ManaPlayer.DressData.Add("鞋子2");
+                    ManaPlayer.DressData.Add("头饰品2");
+                    ManaPlayer.DressData.Add("上衣2");
+                    ManaPlayer.DressData.Add("眼睛2");
+                    ManaPlayer.DressData.Add("嘴巴2");
+                }
+
                 Transform tra = ManaPlayer.SeleTra;
 
                 ManaPlayer.Player = tra.GetComponent<Player>();
 
-                tra.parent = ManaReso.Get("Garden");
+                tra.parent = null;
 
                 ManaReso.TraDic.Add(tra.name, tra);
 
@@ -851,6 +885,24 @@ public class ManaTutorial : Regist
                 }
             );
     }
+
+
+    public static void EndD()
+    {
+        TutorialD = false;
+
+        ManaReso.Get("C_Group2").TweenForCG();
+    }
+
+    public static void EnterD()
+    {
+        //Debug.Log("TutorialD");
+
+        TutorialD = true;
+        TutorialD_ = false;
+
+        ManaReso.Get("C_Group2").TweenBacCG();
+    }
 }
 
 #region DebugList

+ 30 - 11
Assets/Script/Manage/ManaUI.cs

@@ -363,12 +363,14 @@ public class ManaUI : Regist
                     return;
                 }
 
+                ManaReso.Get("I_BlackMask").GetTweenCG().Duration = 0.5f;
+
                 ManaCenter.Pay
                 (
                     "", ManaVisit.Cost, Current.Coin,
                     () =>
                     {
-                        ManaCenter.SceneSwitchLock = true;
+                        ManaPlayer.Player.SetAllCollider(false);
 
                         ManaVisit.LoadComplete = false;
                         ManaVisit.TweenComplete = false;
@@ -1548,16 +1550,7 @@ public class ManaUI : Regist
 
         #region I
 
-        tweenRoot = ManaReso.Get("I_BlackMask").CreateTweenCG(1, 0, 1.5f, true, false, Curve.EaseOutQuad);
-
-        tweenRoot.AddEventOnetime
-            (
-            EventType.ForwardFinish,
-                () =>
-                {
-                    tweenRoot.Duration = 0.5f;
-                }
-            );
+        ManaReso.Get("I_BlackMask").CreateTweenCG(1, 0, 1.5f, true, false, Curve.EaseOutQuad);
 
         #endregion
 
@@ -1963,9 +1956,35 @@ public class ManaUI : Regist
         ManaLan.Add(ManaReso.Get<Text>("P_DecaratorLab"), new LanStr("UI", "P_DecaratorLab"));
         ManaLan.Add(ManaReso.Get<Text>("P_WingLab"), new LanStr("UI", "P_WingLab"));
 
+        ManaLan.Add(ManaReso.Get<Text>("Pa_Tit"), new LanStr("UI", "Pa_Tit"));
+
+        #region P_DressRoom
 
         ManaReso.Get("P_DressRoom").CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
 
+        #endregion
+
+        #region Pa_Info
+
+        ManaReso.Get("Pa_Info").CreateTweenCG(0f, 1f, 0.1f, false, true, Curve.EaseOutQuad);
+
+        #endregion
+
+        #region Pa_Close
+
+        ManaReso.AddButtonEvent
+            (
+                "Pa_Close",
+                () =>
+                {
+                    ManaAudio.PlayClip(Clip.CloseClip);
+
+                    ManaReso.Get("Pa_Info").TweenBacCG();
+                }
+            );
+
+        #endregion
+
         #region P_Save
 
         ManaReso.SetButtonEvent

+ 40 - 7
Assets/Script/Manage/ManaVisit.cs

@@ -152,7 +152,7 @@ public class ManaVisit
                 EventType.ForwardFinish,
                 () =>
                 {
-                    ManaCenter.SceneSwitchLock = false;
+                    ManaPlayer.Player.SetAllCollider(true);
                 }
             );
 
@@ -282,7 +282,20 @@ public class ManaVisit
         Document.LoadXml(XmlStr);
 
         Node = Document.SelectSingleNode("PlayerConfig");
-        Player = Node.SelectSingleNode("Player").Attributes[0].Value;
+        XmlNode tempNode = Node.SelectSingleNode("Player");
+
+        if (tempNode == null)
+        {
+            Player = null;
+
+            tempNode = Node;
+        }
+        else
+        {
+            Player = Node.SelectSingleNode("Player").Attributes[0].Value;
+
+            tempNode = null;
+        }
 
         ManaReso.SetActive("C_Coin", false);
         ManaReso.SetActive("C_Group1", false);
@@ -500,7 +513,7 @@ public class ManaVisit
 
         ManaReso.TraDic.Remove("Player");
 
-        ManaPlayer.Instance.GetPlayer(Player);
+        ManaPlayer.Instance.GetPlayer(Player, tempNode).SetAllCollider(false);
 
         Garden.PlayerPos = new List<Vector3>();
 
@@ -674,22 +687,42 @@ public class ManaVisit
         doc.SelectSingleNode("PlayerConfig").SelectSingleNode("PlantList").Attributes[0].Value = plantList;
 
 
+        XmlNode xmlNode = doc.SelectSingleNode("PlayerConfig").SelectSingleNode("DressData");
+        xmlNode.Attributes[0].Value = "";
+
         float rate = Random.Range(0f, 1f);
 
         if (rate < 0.33f)
         {
-            doc.SelectSingleNode("PlayerConfig").SelectSingleNode("Player").Attributes[0].Value = "PlayerPink";
+            xmlNode.Attributes[0].Value = "脑壳1";
+            xmlNode.Attributes[1].Value = "裙子1";
+            xmlNode.Attributes[2].Value = "鞋子1";
+            xmlNode.Attributes[3].Value = "头饰品1";
+            xmlNode.Attributes[4].Value = "上衣1";
+            xmlNode.Attributes[5].Value = "眼睛1";
+            xmlNode.Attributes[6].Value = "嘴巴1";
         }
         else if (rate < 0.66f)
         {
-            doc.SelectSingleNode("PlayerConfig").SelectSingleNode("Player").Attributes[0].Value = "PlayerBlond";
+            xmlNode.Attributes[0].Value = "脑壳2";
+            xmlNode.Attributes[1].Value = "裙子2";
+            xmlNode.Attributes[2].Value = "鞋子2";
+            xmlNode.Attributes[3].Value = "头饰品2";
+            xmlNode.Attributes[4].Value = "上衣2";
+            xmlNode.Attributes[5].Value = "眼睛2";
+            xmlNode.Attributes[6].Value = "嘴巴2";
         }
         else
         {
-            doc.SelectSingleNode("PlayerConfig").SelectSingleNode("Player").Attributes[0].Value = "PlayerBrown";
+            xmlNode.Attributes[0].Value = "脑壳3";
+            xmlNode.Attributes[1].Value = "裙子3";
+            xmlNode.Attributes[2].Value = "鞋子3";
+            xmlNode.Attributes[3].Value = "头饰品3";
+            xmlNode.Attributes[4].Value = "上衣3";
+            xmlNode.Attributes[5].Value = "眼睛3";
+            xmlNode.Attributes[6].Value = "嘴巴3";
         }
 
-
         return doc.OuterXml;
     }
 }

+ 187 - 35
Assets/Script/Object/Player.cs

@@ -38,11 +38,19 @@ public class CloseUnit
 
     #region Var
 
+    public string Description
+    {
+        get { return Language.GetStr("DressRoom", CloseName); }
+    }
+
+    public int ID;
     public int Index;
     public int BuyLevel;
+    public int PixelSize;
+    public bool Bought;
     public string CloseName;
 
-    public Text BtnLab;
+    public Text BuyBtnLab;
     public Sprite Sprite;
     public Image Icon;
     public Button BuyBtn;
@@ -62,6 +70,7 @@ public class CloseUnit
 
     public CloseUnit(XmlAttributeCollection attribute)
     {
+        ID = Auxiliary.IntParse(attribute[0].Value, -1);
         CloseName = attribute[2].Value;
         Sprite = SpriteParse(attribute[2].Value);
         Type = TypeParse(attribute[3].Value);
@@ -72,6 +81,10 @@ public class CloseUnit
         BuyAmt = Auxiliary.DoubleParse(attribute[8].Value, 0);
         BuyAdvanceCurrent = Auxiliary.CurrentParse(attribute[9].Value);
         BuyAdvanceAmt = Auxiliary.DoubleParse(attribute[10].Value, 0);
+        PixelSize = Auxiliary.IntParse(attribute[11].Value, 100);
+
+        ManaPlayer.CloseIDDic.Add(CloseName, ID);
+        ManaPlayer.CloseUnitDic.Add(ID, this);
 
         CreateItem();
     }
@@ -113,20 +126,56 @@ public class CloseUnit
         Icon = ChildDic["Icon"].GetComponent<Image>();
         DressBtn = ChildDic["CloseItem"].GetComponent<Button>();
         BuyBtn = ChildDic["BuyBtn"].GetComponent<Button>();
-        BtnLab = ChildDic["BuyBtnLab"].GetComponent<Text>();
+        BuyBtnLab = ChildDic["BuyBtnLab"].GetComponent<Text>();
 
 
         Icon.sprite = Sprite;
 
         Icon.SetNativeSize();
 
-        float newSize = 100 / Icon.sprite.rect.width;
-        Icon.Resize(true, new Vector2(newSize, newSize)); //todo 把NewSize写到配置里
+        float newSize = PixelSize / Icon.sprite.rect.width;
+        Icon.Resize(true, new Vector2(newSize, newSize));
+
+
+        BuyBtnLab.text = Language.GetStr("UI", "P_BtnLab1");
+
+        BuyBtn.onClick.AddListener
+            (
+                () =>
+                {
+                    ManaAudio.PlayClip(Clip.BtnClip);
+
+                    ManaReso.Get("Pa_Info").TweenForCG();
+
+                    Image image = ManaReso.Get<Image>("Pa_Icon");
+                    image.sprite = Sprite;
+                    image.Resize(true, new Vector2(newSize, newSize));
+
+                    ManaReso.SetText("Pa_Lab", Description);
+                    ManaReso.SetText("Pa_BtnLab", Language.GetStr("UI", "Pa_BtnLab") + Auxiliary.ImageParse(BuyCurrent) + BuyAmt.ToString("0"));
+
+                    ManaReso.SetButtonEvent
+                        (
+                            "Pa_Btn",
+                            OnBuy
+                        );
+                }
+            );
+
+        DressBtn.onClick.AddListener
+            (
+                () =>
+                {
+                    ManaAudio.PlayClip(Clip.BtnClip);
+
+                    ManaPlayer.Player.ChangeClose(BodyPart, CloseName);
+                }
+            );
     }
 
     protected Sprite SpriteParse(string str)
     {
-        return ManaPlayer.CloseDic[str];
+        return ManaPlayer.CloseSpriteDic[str];
     }
 
     protected BodyPart BodyPartParse(string str)
@@ -188,6 +237,43 @@ public class CloseUnit
             throw new Exception();
         }
     }
+
+
+    public void Unlock()
+    {
+        Bought = true;
+
+        BuyBtn.interactable = false;
+        BuyBtn.image.material = Lib.GrayMat;
+
+        BuyBtnLab.text = Language.GetStr("UI", "P_BtnLab2");
+    }
+
+    public void OnBuy()
+    {
+        ManaCenter.Pay
+            (
+                "",
+                BuyAmt,
+                BuyCurrent,
+                () =>
+                {
+                    Unlock();
+
+                    ManaAudio.PlayClip(Clip.CurrentClip);
+
+                    ManaPlayer.BoughtCloseList.UniqueAdd(ID);
+
+                    ManaReso.Get("Pa_Info").TweenBacCG();
+                },
+                false
+            );
+    }
+
+    public void OnLevelChange()
+    {
+
+    }
 }
 
 public class Player : Regist , IPointerClickHandler
@@ -245,7 +331,7 @@ public class Player : Regist , IPointerClickHandler
         Vector3 bigShadowScale = new Vector3(1.820952f, 2.418199f, 1.820952f);
         Vector3 smallShadowScale = new Vector3(1.081191f, 1.435807f, 1.081191f);
 
-        StreamScale streamScale = ChildDic["Shadow"].CreateStreamScale
+        ChildDic["Shadow"].CreateStreamScale
             (
                 new List<float>() {0, 0, 0},
                 new List<float>() {0.33f, 0.33f, 0.33f, 0.33f},
@@ -255,18 +341,6 @@ public class Player : Regist , IPointerClickHandler
                 Curve.EaseOutQuad
             );
 
-        streamScale.AddEventOnetime
-            (
-                EventType.ForwardFinish,
-                () =>
-                {
-                    if (!InDressRoom)
-                    {
-                        ManaPlayer.Player.ChildDic["Shadow"].SetActive(false);
-                    }
-                }
-            );
-
         return false;
     }
 
@@ -314,7 +388,10 @@ public class Player : Regist , IPointerClickHandler
         {
             AnimLock1 = false;
 
-            ChangeClose(BodyPart.Eye, TempClose);
+            if (TempClose != null)
+            {
+                ChangeClose(BodyPart.Eye, TempClose);
+            }
         }
     }
 
@@ -340,18 +417,87 @@ public class Player : Regist , IPointerClickHandler
 
     public void OnPointerClick(PointerEventData eventData)
     {
+        if (ManaCenter.Level < 13)
+        {
+            return;
+        }
+
+        ManaReso.Get("I_BlackMask").GetTweenCG().Duration = 0.5f;
+
+        ManaAudio.PlayClip(Clip.CurrentClip);
+
         EnterDressRoom();
     }
 
 
     public void Save()
     {
+        ManaAudio.PlayClip(Clip.BtnClip);
+
+        List<CloseUnit> closeUnitList = new List<CloseUnit>();
+
+        closeUnitList.Add(ManaPlayer.CloseUnitDic[ManaPlayer.CloseIDDic[Head]]);
+        closeUnitList.Add(ManaPlayer.CloseUnitDic[ManaPlayer.CloseIDDic[Dress]]);
+        closeUnitList.Add(ManaPlayer.CloseUnitDic[ManaPlayer.CloseIDDic[Shoe]]);
+        closeUnitList.Add(ManaPlayer.CloseUnitDic[ManaPlayer.CloseIDDic[HeadWear]]);
+        closeUnitList.Add(ManaPlayer.CloseUnitDic[ManaPlayer.CloseIDDic[Top]]);
+
+        for (int i = 0; i < closeUnitList.Count; i++)
+        {
+            if (!closeUnitList[i].Bought)
+            {
+                BuyNavigate(closeUnitList);
+
+                return;
+            }
+        }
+
+        ManaPlayer.DressData[0] = Head;
+        ManaPlayer.DressData[1] = Dress;
+        ManaPlayer.DressData[2] = Shoe;
+        ManaPlayer.DressData[3] = HeadWear;
+        ManaPlayer.DressData[4] = Top;
+
         ExitDressRoom();
     }
 
     public void Reset()
     {
-        
+        ManaAudio.PlayClip(Clip.BtnClip);
+
+        List<string> dressData = new List<string>(ManaPlayer.DressData);
+
+        dressData[5] = Eye;
+
+        ManaPlayer.BuildPlayer(dressData);
+    }
+
+    public void BuyNavigate(List<CloseUnit> closeUnitList)
+    {
+        for (int i = 0; i < closeUnitList.Count; i++)
+        {
+            if (closeUnitList[i].Bought)
+            {
+                closeUnitList.RemoveAt(i--);
+            }
+            else
+            {
+                closeUnitList[i].BuyBtn.onClick.Invoke();
+
+                closeUnitList.RemoveAt(i--);
+
+                ManaReso.Get("Pa_Info").GetTweenCG().AddEventOnetime
+                    (
+                        EventType.BackwardFinish,
+                        () =>
+                        {
+                            BuyNavigate(closeUnitList);
+                        }
+                    );
+
+                return;
+            }
+        }
     }
 
     public void ExitDressRoom()
@@ -365,10 +511,8 @@ public class Player : Regist , IPointerClickHandler
                 EventType.BackwardFinish,
                 () =>
                 {
-                    ManaPlayer.Player.ChildDic["Shadow"].SetActive(false);
-
-                    ManaPlayer.Player.transform.position = ManaReso.Get("PlayerPosTra").position;
-                    ManaPlayer.Player.transform.localScale = ManaReso.Get("PlayerPosTra").lossyScale;
+                    transform.position = ManaReso.Get("PlayerPosTra").position;
+                    transform.localScale = ManaReso.Get("PlayerPosTra").lossyScale;
 
                     ManaReso.Get("Garden").TweenForSr();
                     ManaReso.Get("DressRoom").TweenBacSr();
@@ -390,6 +534,14 @@ public class Player : Regist , IPointerClickHandler
 
                     InDressRoom = false;
 
+                    JumpTimer = 0;
+
+                    PlayAnim("newAnimation");
+
+                    ChildDic["Shadow"].GetStreamScale().Pause();
+                    ChildDic["Shadow"].GetStreamScale().InOrigin = true;
+                    ChildDic["Shadow"].SetActive(false);
+
                     ManaReso.Get("I_BlackMask").TweenForCG();
                 }
             );
@@ -426,10 +578,10 @@ public class Player : Regist , IPointerClickHandler
                         ManaGarden.PlantList[i].Flower.RetrieveElf();
                     }
 
-                    ManaPlayer.Player.ChildDic["Shadow"].SetActive(true);
+                    ChildDic["Shadow"].SetActive(true);
 
-                    ManaPlayer.Player.transform.position = ManaReso.Get("DressRoomPos").position;
-                    ManaPlayer.Player.transform.localScale = ManaReso.Get("DressRoomPos").lossyScale;
+                    transform.position = ManaReso.Get("DressRoomPos").position;
+                    transform.localScale = ManaReso.Get("DressRoomPos").lossyScale;
 
                     ManaReso.Get("Garden").TweenBacSr();
                     ManaReso.Get("DressRoom").TweenForSr();
@@ -511,10 +663,10 @@ public class Player : Regist , IPointerClickHandler
 
         ChangeClose(BodyPart.Eye, "眼睛3");
         ChangeClose(BodyPart.Top, "上衣3");
-        ChangeClose(BodyPart.Shoe, "脑壳3");
-        ChangeClose(BodyPart.Head, "裙子3");
-        ChangeClose(BodyPart.Dress, "嘴巴3");
-        ChangeClose(BodyPart.Mouse, "鞋子3");
+        ChangeClose(BodyPart.Shoe, "鞋子3");
+        ChangeClose(BodyPart.Head, "脑壳3");
+        ChangeClose(BodyPart.Dress, "裙子3");
+        ChangeClose(BodyPart.Mouse, "嘴巴3");
         ChangeClose(BodyPart.Headwear, "头饰品3");
 
         return UAC;
@@ -535,10 +687,10 @@ public class Player : Regist , IPointerClickHandler
 
         ChangeClose(BodyPart.Eye, "眼睛2");
         ChangeClose(BodyPart.Top, "上衣2");
-        ChangeClose(BodyPart.Shoe, "脑壳2");
-        ChangeClose(BodyPart.Head, "裙子2");
-        ChangeClose(BodyPart.Dress, "嘴巴2");
-        ChangeClose(BodyPart.Mouse, "鞋子2");
+        ChangeClose(BodyPart.Shoe, "鞋子2");
+        ChangeClose(BodyPart.Head, "脑壳2");
+        ChangeClose(BodyPart.Dress, "裙子2");
+        ChangeClose(BodyPart.Mouse, "嘴巴2");
         ChangeClose(BodyPart.Headwear, "头饰品2");
 
         return UAC;

+ 0 - 3
Assets/Script/Object/Tutorial.cs

@@ -193,7 +193,6 @@ public class Tutorial : Regist, IPointerClickHandler
             ManaPlayer.PlayerBlond.TweenBacScale();
             ManaPlayer.PlayerBrown.TweenForScale();
 
-            ManaPlayer.SelePlayer = "PlayerBrown";
             ManaPlayer.SeleTra = ManaPlayer.PlayerBrown;
         }
         else if (eventData.rawPointerPress.name == "PlayerBk2")
@@ -215,7 +214,6 @@ public class Tutorial : Regist, IPointerClickHandler
             ManaPlayer.PlayerBrown.TweenBacScale();
 
             ManaPlayer.SeleTra = ManaPlayer.PlayerBlond;
-            ManaPlayer.SelePlayer = "PlayerBlond";
         }
         else if (eventData.rawPointerPress.name == "PlayerBk3")
         {
@@ -236,7 +234,6 @@ public class Tutorial : Regist, IPointerClickHandler
             ManaPlayer.PlayerBrown.TweenBacScale();
 
             ManaPlayer.SeleTra = ManaPlayer.PlayerPink;
-            ManaPlayer.SelePlayer = "PlayerPink";
         }
         else if (eventData.rawPointerPress.name == "TutorialCollider")
         {

+ 2 - 2
Assets/Script/Tool/Auxiliary.cs

@@ -128,12 +128,12 @@ public class Auxiliary : Regist
 
         if (Input.GetKeyDown(KeyCode.Z))
         {
-            ManaPlayer.Player.ChangeClose(BodyPart.Head, "脑壳2");
+            
         }
 
         if (Input.GetKeyDown(KeyCode.X))
         {
-            ManaPlayer.Player.ChangeClose(BodyPart.Head, "脑壳3");
+            
         }
 
         if (Input.GetKeyDown(KeyCode.C))

+ 0 - 11
Assets/Script/Tool/Bundle.cs

@@ -310,17 +310,6 @@ public class Bundle : MonoBehaviour
 
         if (!Logo.Complete && !Initializer.Instance.DebugMode)
         {
-            //if (ManaData.GetPlayerBool("TutorialA") && ManaData.GetPlayerInt("TutorialIndexA") == 1)
-            //{
-            //    ManaReso.AddAsyncPlayer("PlayerPink");
-            //    ManaReso.AddAsyncPlayer("PlayerBlond");
-            //    ManaReso.AddAsyncPlayer("PlayerBrown");
-            //}
-            //else
-            //{
-            //    ManaReso.AddAsyncPlayer(ManaData.GetPlayerString("Player"));
-            //}
-
             ManaReso.AddAsyncLoad("Flower", 9, Folder.Scene, ObjType.Flower);
 
             ManaReso.AddAsyncLoad("Page", 2, Folder.Scene, ObjType.Page);

+ 7 - 5
ToList.txt

@@ -1,12 +1,14 @@
-P的语言文档(Btn)
+测试 大于13级才开放试衣间
 
-已购再打个绿颜色的勾
+13级出现试衣间教程 圆角遮罩+文本框+指引箭头+Collider+关闭小游戏
 
-得到单个Sprite
+测试 从8级教程到13级教程
 
-换装的存档 已拥有服装的存档 跳跃的时候眼睛不要存档
+测试 教程结束后要和其它教程一致(N_Mask和N_Tutorial) 开启小游戏
 
-存档覆盖问题
+测试 合并(合并后高等级账号能否触发教程)
+
+测试 是否会重复触发教程
 
 
 还原PlayerConfig