编辑代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using TMPro;
using System.IO;
using System.Xml;
using System;
using System.Linq;
using UnityEngine.SceneManagement;

public class Shuangbei : MonoBehaviour
{
     public TMP_Text  shuangbeiText;         
     public TMP_Text  qixinText;   
    //  public TMP_Text  dianwuliText;   
    //  public TMP_Text  chenghaoText;   
    //  public TMP_Text  gerenqianmingText;  
    //       public TMP_Text  fenxunText;   
    //   public TMP_Text  jinweiText;   
    //  public TMP_Text  xianfaText; 
     public GameObject shuangbeiInterface;
    public GameObject kangxingInterface; 
    // public GameObject lakangInterface; 
    //     public GameObject fenxunzi;  
    //  public GameObject jinweizi; 
    // public GameObject xianfazi; 
    // public GameObject fenxuntiao;  
    //  public GameObject jinweitiao; 
    // public GameObject xianfatiao; 
    //   public GameObject lakangInterfacetiao;   
    // public GameObject lakangInterfaceLefthuakuai;   
    //     public GameObject lakangInterfaceRighthuakuai;   
    // public TMP_Text  lakangInterfaceLvText; 
    //     public TMP_Text  lakangInterfaceNextLvText; 
    //  public TMP_Text  moneyText; 
    // public TMP_Text  huoliText; 
    //     public TMP_Text  costMoneyText; 
    // public TMP_Text  costhuoliText; 

void Start () {
    //核心数字设置为六位string
    string  sbTime = csi("shuangbeiTime");
    PlayerPrefs.SetString("sbFlag", "0");

}

void Update() {

// //计时器 毫秒
// int shanyuewait = int.Parse(PlayerPrefs.GetString("shanyuewait"));
// //计时器 毫秒
//             if (shanyuewait > 0) {
// shanyuewait = shanyuewait -  20 ;
//             string shanyuewaitString = Convert.ToString(shanyuewait);
//                                 PlayerPrefs.SetString("shanyuewait",shanyuewaitString);
//             }
//     string  sbTime = csi("shuangbeiTime");
}
    public void openSbInterface()
    {

    }

    public void clickSbButton()
    {
        if (PlayerPrefs.GetString("sbFlag") == "0") {
            //start shuangbei
            PlayerPrefs.SetString("sbFlag", "1");

        } else {
            //stop shuangbei
            PlayerPrefs.SetString("sbFlag", "0");
        }
        Sbflag = "1";
    }

    public void eatSb()
    {
        ui("1","双倍经验丸");
        string  sbTime = csi("shuangbeiTime");
         int  newHour =  int.Parse(s[1]) + 1;
        usi("shuangbeiTime", newHour.ToString());
    }



    public void getExp(int e)
    {
               //获取当前lv 经验
        int lv = 0;
        int exp = 0;
       //
      if (exp + e < openWith[lv])   {
          exp = exp + e;
          //赋值当前lv exp

      } else {
          e = exp + e - openWith[lv];
        getExpLvUp(lv +1,e);
      }
    }

    public void getExpLvUp(int lv, int e)
    {
       //e1 = e - openWith[lv];
      if (e < openWith[lv])   {
          //one up
          lv = lv;
          int exp = e;
          //赋值当前lv exp

      } else {
          lv = lv + 1;
          e = e - openWith[lv];
          getExpLvUp(lv,e);
      }
    }


    public void openStatus()
    {

        //展示状态界面
        statusInterface.SetActive(true);
        //查状态
        string name = csi("roleName");
        nameText.text = csi("roleName");
        wuliText.text = csi("wuli");
         dianwuliText.text = csi("dianwuli");
         chenghaoText.text = csi("chenghao");
         gerenqianmingText.text = csi("gerenqianming");
    }

    public void closeStatus()
    {

        //展示状态界面
        statusInterface.SetActive(false);
         kangxingInterface.SetActive(false);
    }

    public void openkangxing()
    {
        //展示状态界面
        kangxingInterface.SetActive(true);
        //查状态
        fenxunText.text = csi("fenxun");
        jinweiText.text = csi("jinwei");
        xianfaText.text = csi("xianfa");
        fenxuntiao.fillAmount = int.Parse(csi("fenxun"))/50;
        jinweitiao.fillAmount = int.Parse(csi("jinwei"))/50;
        xianfatiao.fillAmount = int.Parse(csi("xianfa"))/50;
    }

    public void clickOnekangxing(int whichkang )
    {
        lakangInterfaceRighthuakuai.SetActive(false);
        lakangInterfaceLefthuakuai.SetActive(true);
        //展示lakang界面
        if (whichkang == 1) {
        lakangInterface.SetActive(true);
        fenxunzi.SetActive(true);
        lakangInterfaceLvText.text = csi("fenxun");
        int nextkang = int.Parse(csi("fenxun")) + 1;
        lakangInterfaceNextLvText.text = nextkang.ToString();
        lakangInterfacetiao.fillAmount = int.Parse(csi("fenxun"))/50;
        }
        if (whichkang == 3) {
        lakangInterface.SetActive(true);
        jinweizi.SetActive(true);
        lakangInterfaceLvText.text = csi("jinwei");
                int nextkang = int.Parse(csi("jinwei")) + 1;
        lakangInterfaceNextLvText.text = nextkang.ToString();
        lakangInterfacetiao.fillAmount = int.Parse(csi("jinwei"))/50;
        }
        if (whichkang == 4) {
        lakangInterface.SetActive(true);
        xianfazi.SetActive(true);
        lakangInterfaceLvText.text = csi("xianfa");
        int nextkang = int.Parse(csi("xianfa")) + 1;
        lakangInterfaceNextLvText.text = nextkang.ToString();
        lakangInterfacetiao.fillAmount = int.Parse(csi("xianfa"))/50;
        }
        kangxingInterface.SetActive(false);
        statusInterface.SetActive(false);
        moneyText.text = cs("money","item","roleId",roleId);
        huoliText.text = csi("huoli");
        costMoneyText.text = "0";
        costhuoliText.text = "0";
        PlayerPrefs.SetString("lakangInterfaceLvText", lakangInterfaceNextLvText.text);
        PlayerPrefs.SetString("whichkang", whichkang.ToString());
    }

    public void clickMaxkangxing()
    {
        string nowlvs = PlayerPrefs.GetString("lakangInterfaceLvText");
        int nowlv = int.Parse(nowlvs);
        lakangInterfaceRighthuakuai.SetActive(true);
        lakangInterfaceLefthuakuai.SetActive(false);
        costMoneyText.text = moneyDic[nowlv];
        costhuoliText.text = huoliDic[nowlv];
    }

        public void doAddkangxing()
    {
        // string nowlvs = PlayerPrefs.GetString("lakangInterfaceLvText");
        // int nowlv = int.Parse(nowlvs);
        int whichkang = PlayerPrefs.GetString("whichkang");
        //todo 
        int money = int.Parse(cs("money","item","roleId",roleId));
        int huoli = int.Parse(csi("huoli"));
        string nowlvs = PlayerPrefs.GetString("lakangInterfaceLvText");
        int nowlv = int.Parse(nowlvs);

        money = money - moneyDic[nowlv];
        huoli = huoli - huoliDic[nowlv];

        if (money >0 && huoli>0) {
        usi("huoli", huoli.ToString());
        string path = Application.dataPath + "/streamingAssets" + "/item.xml";
        if(File.Exists(path))
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(path);//加载原有的XML
            XmlNode root= xmlDoc.SelectSingleNode("物品表");
            XmlNodeList list=root.ChildNodes;
            foreach(XmlElement item in list)
            {
              if(item.GetAttribute("roleId") == roleId )
                {
                    item.SetAttribute("money", money.ToString());
                }
            }
            xmlDoc.Save(path);
        }
        nowlv = nowlv + 1;

        int whichkang = PlayerPrefs.GetString("whichkang");
        lakangInterfaceRighthuakuai.SetActive(false);
        lakangInterfaceLefthuakuai.SetActive(true);
        //展示lakang界面
        if (whichkang == 1) {
        usi("fenxun", nowlv.ToString());
        lakangInterfaceLvText.text = csi("fenxun");
        int nextkang = int.Parse(csi("fenxun")) + 1;
        lakangInterfaceNextLvText.text = nextkang.ToString();
        lakangInterfacetiao.fillAmount = int.Parse(csi("fenxun"))/50;
        }
        if (whichkang == 3) {
        usi("jinwei", nowlv.ToString());
        lakangInterfaceLvText.text = csi("jinwei");
        int nextkang = int.Parse(csi("jinwei")) + 1;
        lakangInterfaceNextLvText.text = nextkang.ToString();
        lakangInterfacetiao.fillAmount = int.Parse(csi("jinwei"))/50;
        }
        if (whichkang == 4) {
        usi("xianfa", nowlv.ToString());
        lakangInterfaceLvText.text = csi("xianfa");
        int nextkang = int.Parse(csi("xianfa")) + 1;
        lakangInterfaceNextLvText.text = nextkang.ToString();
        lakangInterfacetiao.fillAmount = int.Parse(csi("xianfa"))/50;
        }
        moneyText.text = cs("money","item","roleId",roleId);
        huoliText.text = csi("huoli");
        costMoneyText.text = "0";
        costhuoliText.text = "0";
        } else {
            //todo
        }

    }











    public void closeOnekangxing()
    {
        //展示拉康界面
        lakangInterface.SetActive(false);
        fenxunzi.SetActive(false);
        jinweizi.SetActive(false);
        xianfazi.SetActive(false);
    }

        public void getkangxingLvUp(int lv, int e)
    {
       //e1 = e - openWith[lv];
      if (e < openWith[lv])   {
          //one up
          lv = lv;
          int exp = e;
          //赋值当前lv exp

      } else {
          lv = lv + 1;
          e = e - openWith[lv];
          getExpLvUp(lv,e);
      }
    }

    public string csi(string target)
    {
        //查角色名
        string result = "unFound";
        string path = Application.dataPath +"/streamingAssets"+ "/role.xml";
        if( File.Exists (path))
        {
            XmlDocument xmlDoc=new XmlDocument ();
            xmlDoc.Load(path);
            XmlNode root= xmlDoc.SelectSingleNode("角色基本信息表");
            XmlNodeList list=root.ChildNodes;
            foreach(XmlElement item in list)
            {
                if(item.GetAttribute("roleId") == PlayerPrefs.GetString("roleId"))
                {
                    result = item.GetAttribute(target);
                }
            }
            xmlDoc.Save(path);
        }
        return result; 
    }

        public void usi(string target, string value)
    {
        //查角色名
        string result = "unFound";
        string path = Application.dataPath +"/streamingAssets"+ "/role.xml";
        if( File.Exists (path))
        {
            XmlDocument xmlDoc=new XmlDocument ();
            xmlDoc.Load(path);
            XmlNode root= xmlDoc.SelectSingleNode("角色基本信息表");
            XmlNodeList list=root.ChildNodes;
            foreach(XmlElement item in list)
            {
                if(item.GetAttribute("roleId") == PlayerPrefs.GetString("roleId"))
                {
                    item.SetAttribute(target, value);
                }
            }
            xmlDoc.Save(path);
        } 
    }
//物品表>
//<物品 itemId = "1" roleId="1" itemName="jin" itemPic="1" itemNum="100" itemType="1"/>

//基础查询item
    public string ci(string star,string roleId,string thing)
    {
        //查角色名
        string result = "unFound";
        string path = Application.dataPath +"/streamingAssets/"+ url + ".xml";
        if( File.Exists (path))
        {
            XmlDocument xmlDoc=new XmlDocument ();
            xmlDoc.Load(path);
                tableName = "物品表";
            XmlNode root= xmlDoc.SelectSingleNode(tableName);
            XmlNodeList list=root.ChildNodes;
            foreach(XmlElement item in list)
            {
                if(item.GetAttribute("itemName") == thing)
                {
                    c = item.GetAttribute(star);
                }
            }
            xmlDoc.Save(path);
        }

    }

    public string ui(string roleId,string itemName)
    {
        string itemNum = ci("itemNum","1",itemName);

            string path = Application.dataPath +"/streamingAssets/"+ "item" + ".xml";
        if( File.Exists (path))
        {
            XmlDocument xmlDoc=new XmlDocument ();
            xmlDoc.Load(path);
                tableName = "物品表";
            XmlNode root= xmlDoc.SelectSingleNode(tableName);
            XmlNodeList list=root.ChildNodes;
            foreach(XmlElement item in list)
            {
                if(item.GetAttribute("roleId") == roleId && item.GetAttribute("itemName") == itemName)
                {
                    item.SetAttribute("itemNum", (int.Parse(itemNum) - 1).ToString());
                    //数量为0后删除
                    if ((int.Parse(itemNum) - 1).ToString() == "0") {
                                    item.RemoveChild(item.FirstChild);
                    }
                }
            }
            xmlDoc.Save(path);
        }

    }



//简易查询
        public string cs(string star,string url, string target, string thing)
    {
        //查角色名
        string result = "unFound";
        string path = Application.dataPath +"/streamingAssets/"+ url + ".xml";
        if( File.Exists (path))
        {
            XmlDocument xmlDoc=new XmlDocument ();
            xmlDoc.Load(path);
            if (url == "item") {
                tableName = "物品表";
            }
            XmlNode root= xmlDoc.SelectSingleNode(tableName);
            XmlNodeList list=root.ChildNodes;
            foreach(XmlElement item in list)
            {
                if(item.GetAttribute(target) == thing)
                {
                    c = item.GetAttribute(star);
                }
            }
            xmlDoc.Save(path);
        }

    }

            public List<string> cl(string url, string tableName, string target, string thing)
    {
        //查角色名
        List<string> result = new List<Item>();
        string path = Application.dataPath +"/streamingAssets/"+ url  + ".xml";
        if( File.Exists (path))
        {
            XmlDocument xmlDoc=new XmlDocument ();
            xmlDoc.Load(path);
            XmlNode root= xmlDoc.SelectSingleNode(tableName);
            XmlNodeList list=root.ChildNodes;
            foreach(XmlElement item in list)
            {
                if(item.GetAttribute(target) == thing)
                {
                    result.Add(bagItem);
                }
            }
            xmlDoc.Save(path);
        }
        return result;

    }

}