thieumao

ConnectData

Oct 5th, 2015
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 35.41 KB | None | 0 0
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using UnityEngine;
  6. using Debug = UnityEngine.Debug;
  7.  
  8. public class ConnectData : MonoBehaviour
  9. {
  10.     //Data Game
  11.     public List<Level> levels;
  12.     public List<Hero> heroes;
  13.     //public List<Skill> skills; //delete
  14.     public List<Skill> skillIndex; //index skill>>value
  15.     public List<Skill> skillHero; //typeKill+level=1>>index skill
  16.  
  17.     public List<UnlockHero> unlockHeroeQuerry;
  18.     public List<UnlockHero> unlockHeroes;
  19.     public List<Draw> draws;
  20.     public List<Energy> energys;
  21.     public List<Enemy> enemies;
  22.  
  23.     //Data User
  24.     public List<HeroUser> heroesUserData;
  25.     public List<LevelUser> levelsUserData;
  26.     public List<HeroInfo> heroInfoData;
  27.     //    public List<HeroInfos> test;
  28.  
  29.     public string[] arrayTips = new string[4] { "tip 1", "tip 2", "tip 3", "tip 4" };
  30.  
  31.     /// <summary>
  32.     /// Singleton
  33.     /// </summary>
  34.     public static ConnectData instance;
  35.  
  36.     public static ConnectData Instance
  37.     {
  38.         get
  39.         {
  40.             if (instance == null)
  41.                 instance = GameObject.FindObjectOfType<ConnectData>();
  42.             return instance;
  43.         }
  44.     }
  45.  
  46.     public int VerData = 4;
  47.     private string dbNameGame = "DataGame";
  48.     private string dbNameUser = "DataUser";
  49.  
  50.     private SQLiteDB db = null;
  51.  
  52.     void Awake()
  53.     {
  54.         EncryptedPlayerPrefs.CreateKey();
  55.         //PlayerPrefs.DeleteAll();
  56.         DontDestroyOnLoad(gameObject);
  57.         if (Instance != null)
  58.         {
  59.             if (Instance != this)
  60.                 Destroy(this.gameObject);
  61.         }
  62.         CheckVersionDataGame();
  63.  
  64.         if (levels.Count == 0)
  65.         {
  66.  
  67.             GetLevelsData();
  68.             GetHeroes();
  69.             //GetSkills ();
  70.             GetUnlockHeroes();
  71.             GetEnergy();
  72.             GetHeroesUserData();
  73.             checkAddNew();
  74.  
  75.             //sau khi load xong hero, hero user check
  76.             //get user data
  77.             //goi sau khi da co du du lieu user hero
  78.  
  79.             GetLevelsUserData();
  80.             setInfoHero();
  81.  
  82.         }
  83.  
  84.  
  85.     }
  86.  
  87.     void Start()
  88.     {
  89.         CheckNull();
  90.     }
  91.  
  92.     #region Load data
  93.     public void CheckVersionDataGame()
  94.     {
  95.         string filename = Application.persistentDataPath + "/" + dbNameGame;
  96.  
  97.         if (File.Exists(filename) && PlayerPrefs.GetInt("Ver") < VerData)
  98.         {
  99.  
  100.             File.Delete(filename);
  101.             PlayerPrefs.SetInt("Ver", VerData);
  102.  
  103.             //Debug.Log(" User Ver New =" + PlayerPrefs.GetInt("Ver"));
  104.         }
  105.         else
  106.         {
  107.             ////Debug.Log("User Ver Old =" + PlayerPrefs.GetInt("Ver"));
  108.         }
  109.  
  110.     }
  111.  
  112.     public void LoadDatabase(String name)
  113.     {
  114.         db = new SQLiteDB();
  115.         String nameDb;
  116.         if (name == "game")
  117.         {
  118.             nameDb = dbNameGame;
  119.         }
  120.         else
  121.         {
  122.             nameDb = dbNameUser;
  123.         }
  124.  
  125.         String filename = Application.persistentDataPath + "/" + nameDb;
  126.  
  127.         // check if database already exists.
  128.         if (!File.Exists(filename))
  129.         {
  130.             UnityEngine.Debug.Log("file does not exist");
  131.             // ok , this is first time application start!
  132.             // so lets copy prebuild dtabase from StreamingAssets and load store to persistancePath with Test2
  133.             byte[] bytes = null;
  134. #if UNITY_EDITOR || UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX
  135.             string dbpath = "file://" + Application.streamingAssetsPath + "/" + nameDb;
  136.             WWW www = new WWW(dbpath);
  137.             StartCoroutine(Download(www));
  138.             bytes = www.bytes;
  139. #elif UNITY_WEBPLAYER
  140.                             string dbpath = "StreamingAssets/" + nameDb;
  141.                             WWW www = new WWW(dbpath);
  142.                             StartCoroutine(Download(www));
  143.                             bytes = www.bytes;
  144. #elif UNITY_IPHONE
  145.                             string dbpath = Application.dataPath + "/Raw/" + nameDb;           
  146.                             try{   
  147.                                 using ( FileStream fs = new FileStream(dbpath, FileMode.Open, FileAccess.Read, FileShare.Read) ){
  148.                                     bytes = new byte[fs.Length];
  149.                                     fs.Read(bytes,0,(int)fs.Length);
  150.                                 }          
  151.                             } catch (Exception e){
  152.                    
  153.                             }
  154. #elif UNITY_ANDROID
  155.            
  156.                             UnityEngine.Debug.Log("UNITY_ANDROID");
  157.                             string dbpath = Application.streamingAssetsPath + "/" + nameDb;  
  158.                             UnityEngine.Debug.Log(dbpath); 
  159.                             WWW www = new WWW(dbpath);
  160.                             StartCoroutine(Download(www));
  161.                             while(!www.isDone){}
  162.                             bytes = www.bytes;
  163. #endif
  164.  
  165.             if (bytes != null)
  166.             {
  167.                 try
  168.                 {
  169.                     // copy database to real file into cache folder
  170.                     using (FileStream fs = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write))
  171.                     {
  172.                         fs.Write(bytes, 0, bytes.Length);
  173.                     }
  174.  
  175.                     // initialize database
  176.                     db.Open(filename);
  177.                 }
  178.                 catch (Exception e)
  179.                 {
  180.                     Debug.Log("ERROR: " + e);
  181.                 }
  182.             }
  183.         }
  184.         else
  185.         {
  186.             // it mean we already download prebuild data base and store into persistantPath
  187.             // lest update, I will call Test
  188.  
  189.             try
  190.             {
  191.                 // initialize database
  192.                 db.Open(filename);
  193.             }
  194.             catch (Exception e)
  195.             {
  196.                 Debug.Log("ERROR: " + e);
  197.             }
  198.  
  199.         }
  200.     }
  201.     #endregion
  202.  
  203.     #region SQL tbl_level
  204.     //lay toan bo thong tin tbl_level-----------------------------------------
  205.     public List<Level> GetLevelsData()
  206.     {
  207.         //load database
  208.         LoadDatabase("game");
  209.         levels = new List<Level>();
  210.         SQLiteQuery qr = new SQLiteQuery(db, "SELECT * FROM tbl_Level ORDER BY id_level ASC");
  211.  
  212.         // bind data to levels
  213.         while (qr.Step())
  214.         {
  215.             //          Level level = new Level ();
  216.             //
  217.             //          level.ID = qr.IsNULL ("id_level") ? 0 : qr.GetInteger ("id_level");
  218.             //          level.Chapter = qr.IsNULL ("chapter") ? 0 : qr.GetInteger ("chapter");
  219.             //          level.Name = qr.IsNULL ("name_level") ? "0" : qr.GetString ("name_level");
  220.             //          level.Energy = qr.IsNULL ("energy") ? 0 : qr.GetInteger ("energy");
  221.             //          level.LogWin = qr.IsNULL ("log_win") ? "0" : qr.GetString ("log_win");
  222.             //          level.LogLose = qr.IsNULL ("log_lose") ? "0" : qr.GetString ("log_lose");
  223.             //
  224.             //          level.WSoul = qr.IsNULL ("w_soul") ? 0 : qr.GetInteger ("w_soul");
  225.             //          level.WFood = qr.IsNULL ("w_food") ? 0 : qr.GetInteger ("w_food");
  226.             //          level.WEnergy = qr.IsNULL ("w_energy") ? 0 : qr.GetInteger ("w_energy");
  227.             //          level.WCube = qr.IsNULL ("w_crystal") ? 0 : qr.GetInteger ("w_crystal");
  228.             //          level.QTicket = qr.IsNULL ("w_ticket") ? 0 : qr.GetInteger ("w_ticket");
  229.             //
  230.             //
  231.             //          level.QMove = qr.IsNULL ("q_move") ? 0 : qr.GetInteger ("q_move");
  232.             //          level.QPiece0 = qr.IsNULL ("q_h1") ? 0 : qr.GetInteger ("q_h1");
  233.             //          level.QPiece1 = qr.IsNULL ("q_h2") ? 0 : qr.GetInteger ("q_h2");
  234.             //          level.QPiece2 = qr.IsNULL ("q_h3") ? 0 : qr.GetInteger ("q_h3");
  235.             //          level.QPiece3 = qr.IsNULL ("q_h4") ? 0 : qr.GetInteger ("q_h4");
  236.             //          level.QPiece4 = qr.IsNULL ("q_h5") ? 0 : qr.GetInteger ("q_h5");
  237.             //
  238.             //          level.QCube = qr.IsNULL ("q_crystal") ? 0 : qr.GetInteger ("q_crystal");
  239.             //          level.QSoul = qr.IsNULL ("q_soul") ? 0 : qr.GetInteger ("q_soul");
  240.             //          level.QFood = qr.IsNULL ("q_food") ? 0 : qr.GetInteger ("q_food");
  241.             //          level.QTicket = qr.IsNULL ("q_ticket") ? 0 : qr.GetInteger ("q_ticket");
  242.             //          level.QBox = qr.IsNULL ("q_box") ? 0 : qr.GetInteger ("q_box");
  243.             //          level.QBomb = qr.IsNULL ("q_bom") ? 0 : qr.GetInteger ("q_bom");
  244.             //          level.QEnemy = qr.IsNULL ("q_boss") ? 0 : qr.GetInteger ("q_boss");
  245.             //          level.QHero = qr.IsNULL ("q_hero") ? 0 : qr.GetInteger ("q_hero");
  246.  
  247.             Level level = new Level(qr.IsNULL("id_level") ? 0 : qr.GetInteger("id_level"),
  248.                                     qr.IsNULL("chapter") ? 0 : qr.GetInteger("chapter"),
  249.                                     qr.IsNULL("name_level") ? "0" : qr.GetString("name_level"),
  250.                                     qr.IsNULL("energy") ? 0 : qr.GetInteger("energy"),
  251.                                     qr.IsNULL("log_win") ? "0" : qr.GetString("log_win"),
  252.                                     qr.IsNULL("log_lose") ? "0" : qr.GetString("log_lose"),
  253.                                     qr.IsNULL("w_food") ? 0 : qr.GetInteger("w_food"),
  254.                                     qr.IsNULL("w_soul") ? 0 : qr.GetInteger("w_soul"),
  255.                                     qr.IsNULL("w_energy") ? 0 : qr.GetInteger("w_energy"),
  256.                                     qr.IsNULL("w_crystal") ? 0 : qr.GetInteger("w_crystal"),
  257.                                     qr.IsNULL("w_ticket") ? 0 : qr.GetInteger("w_ticket"),
  258.                                     qr.IsNULL("w_hero") ? 0 : qr.GetInteger("w_hero"),  // need to recheck
  259.                                     qr.IsNULL("q_move") ? 0 : qr.GetInteger("q_move"),
  260.                                     qr.IsNULL("q_h1") ? 0 : qr.GetInteger("q_h1"),
  261.                                     qr.IsNULL("q_h2") ? 0 : qr.GetInteger("q_h2"),
  262.                                     qr.IsNULL("q_h3") ? 0 : qr.GetInteger("q_h3"),
  263.                                     qr.IsNULL("q_h4") ? 0 : qr.GetInteger("q_h4"),
  264.                                     qr.IsNULL("q_h5") ? 0 : qr.GetInteger("q_h5"),
  265.                                     qr.IsNULL("q_box") ? 0 : qr.GetInteger("q_box"),
  266.                                     qr.IsNULL("q_boss") ? 0 : qr.GetInteger("q_boss"),
  267.                                     qr.IsNULL("q_food") ? 0 : qr.GetInteger("q_food"),
  268.                                     qr.IsNULL("q_soul") ? 0 : qr.GetInteger("q_soul"),
  269.                                     qr.IsNULL("q_ticket") ? 0 : qr.GetInteger("q_ticket"),
  270.                                     qr.IsNULL("q_crystal") ? 0 : qr.GetInteger("q_crystal"),
  271.                                     qr.IsNULL("q_hero") ? 0 : qr.GetInteger("q_hero"),
  272.                                     qr.IsNULL("q_bom") ? 0 : qr.GetInteger("q_bom")
  273.             );
  274.             levels.Add(level);
  275.         }
  276.  
  277.         return levels;
  278.         //db.Close();
  279.     }
  280.  
  281.     #endregion
  282.  
  283.     #region SQL tbl_LevelUser
  284.     //lay toan bo thong tin tbl_LevelUser-----------------------------------------
  285.     public List<LevelUser> GetLevelsUserData()
  286.     {
  287.         //load database tbl_mapuser da duoc unlock
  288.         LoadDatabase("user");
  289.         levelsUserData = new List<LevelUser>();
  290.         //SQLiteQuery qr = new SQLiteQuery (db, "SELECT * FROM tbl_LevelUser WHERE unlock ='1' ORDER BY id_level ASC");
  291.         SQLiteQuery qr = new SQLiteQuery(db, "SELECT * FROM tbl_LevelUser  ORDER BY id_level ASC");
  292.  
  293.  
  294.         while (qr.Step())
  295.         {
  296.             LevelUser levelUserData = new LevelUser();
  297.  
  298.             levelUserData.ID = qr.IsNULL("id_level") ? 0 : qr.GetInteger("id_level");
  299.             levelUserData.State = qr.IsNULL("unlock") ? 0 : qr.GetInteger("unlock");
  300.             levelUserData.TimePlay = qr.IsNULL("play") ? 0 : qr.GetInteger("play");
  301.             levelUserData.TopDamage = qr.IsNULL("top_dame") ? 0 : qr.GetInteger("top_dame");
  302.             levelUserData.TopMoves = qr.IsNULL("top_move") ? 0 : qr.GetInteger("top_move");
  303.  
  304.             levelsUserData.Add(levelUserData);
  305.         }
  306.         return levelsUserData;
  307.     }
  308.     #endregion
  309.  
  310.     #region SQL tbl_hero
  311.     public List<Hero> GetHeroes()
  312.     {
  313.         LoadDatabase("game");
  314.  
  315.         heroes = new List<Hero>();
  316.  
  317.         SQLiteQuery qr = new SQLiteQuery(db, "SELECT * FROM tbl_Hero  ORDER BY id_hero ASC");
  318.  
  319.         while (qr.Step())
  320.         {
  321.             Hero hero = new Hero();
  322.             hero.ID = qr.IsNULL("id_hero") ? 0 : qr.GetInteger("id_hero");
  323.             hero.MapOpen = qr.IsNULL("map_open") ? 0 : qr.GetInteger("map_open");
  324.             hero.MapGift = qr.IsNULL("map_gift") ? 0 : qr.GetInteger("map_gift");
  325.  
  326.             hero.Type = qr.IsNULL("type_hero") ? 0 : qr.GetInteger("type_hero");
  327.             hero.SkillID = qr.IsNULL("id_skill") ? 0 : qr.GetInteger("id_skill");
  328.             hero.Name = qr.IsNULL("name_hero") ? "0" : qr.GetString("name_hero");
  329.             hero.Desc = qr.IsNULL("des") ? "0" : qr.GetString("des");
  330.  
  331.             hero.NumFood = qr.IsNULL("food") ? 0 : qr.GetInteger("food");
  332.             hero.NumSoul = qr.IsNULL("soul") ? 0 : qr.GetInteger("soul");
  333.             hero.NumCube = qr.IsNULL("cube") ? 0 : qr.GetInteger("cube");
  334.  
  335.             hero.SFood = qr.IsNULL("p_food") ? "0" : qr.GetString("p_food");
  336.             hero.PFood = float.Parse(hero.SFood);
  337.  
  338.             hero.SSoul = qr.IsNULL("p_soul") ? "0" : qr.GetString("p_soul");
  339.             hero.PSoul = float.Parse(hero.SSoul);
  340.  
  341.             hero.SCube = qr.IsNULL("p_cube") ? "0" : qr.GetString("p_cube");
  342.             hero.PCube = float.Parse(hero.SCube);
  343.  
  344.             hero.ShopFood = qr.IsNULL("shop_food") ? 0 : qr.GetInteger("shop_food");
  345.             hero.shopSoul = qr.IsNULL("shop_soul") ? 0 : qr.GetInteger("shop_soul");
  346.             hero.ShopCube = qr.IsNULL("shop_cube") ? 0 : qr.GetInteger("shop_cube");
  347.  
  348.             heroes.Add(hero);
  349.         }
  350.         return heroes;
  351.     }
  352.  
  353.     #endregion
  354.  
  355.     #region SQL tbl_unlockhero
  356.  
  357.  
  358.     //lay thong tin hero dua vao index_unlock trong tbl_heroUser
  359.     public List<UnlockHero> GetIndexUnlocHeroToID(int id)
  360.     {
  361.         LoadDatabase("game");
  362.  
  363.         unlockHeroeQuerry = new List<UnlockHero>();
  364.         SQLiteQuery qr = new SQLiteQuery(db, "SELECT * FROM tbl_UnlockHero Where  id_hero=" + "'" + id + "'" + " and level_hero =1  ORDER BY id_unlockhero ASC");
  365.  
  366.         while (qr.Step())
  367.         {
  368.  
  369.             UnlockHero unlockHero = new UnlockHero();
  370.             setUnlockHero(unlockHero, qr);
  371.             unlockHeroeQuerry.Add(unlockHero);
  372.         }
  373.  
  374.         return unlockHeroeQuerry;
  375.     }
  376.  
  377.     //lay thong tin hero dua vao index_unlock trong tbl_heroUser
  378.     public List<UnlockHero> GetUnlockHeroesWhere(int indexUnlock)
  379.     {
  380.         LoadDatabase("game");
  381.  
  382.         unlockHeroeQuerry = new List<UnlockHero>();
  383.         SQLiteQuery qr = new SQLiteQuery(db, "SELECT * FROM tbl_UnlockHero Where  id_unlockhero=" + "'" + indexUnlock + "'" + "  ORDER BY id_unlockhero ASC");
  384.  
  385.         while (qr.Step())
  386.         {
  387.  
  388.             UnlockHero unlockHero = new UnlockHero();
  389.             setUnlockHero(unlockHero, qr);
  390.             unlockHeroeQuerry.Add(unlockHero);
  391.         }
  392.  
  393.         return unlockHeroeQuerry;
  394.     }
  395.  
  396.  
  397.     public List<UnlockHero> GetUnlockHeroes()
  398.     {
  399.         LoadDatabase("game");
  400.  
  401.         unlockHeroes = new List<UnlockHero>();
  402.         SQLiteQuery qr = new SQLiteQuery(db, "SELECT * FROM tbl_UnlockHero  ORDER BY id_hero ASC");
  403.  
  404.         while (qr.Step())
  405.         {
  406.  
  407.             UnlockHero unlockHero = new UnlockHero();
  408.             setUnlockHero(unlockHero, qr);
  409.             unlockHeroes.Add(unlockHero);
  410.         }
  411.         return unlockHeroes;
  412.     }
  413.  
  414.     void setUnlockHero(UnlockHero hr, SQLiteQuery qr)
  415.     {
  416.         hr.ID = qr.IsNULL("id_unlockhero") ? 0 : qr.GetInteger("id_unlockhero");
  417.         hr.HeroID = qr.IsNULL("id_hero") ? 0 : qr.GetInteger("id_hero");
  418.         hr.Level = qr.IsNULL("level_hero") ? 0 : qr.GetInteger("level_hero");
  419.         hr.AttackPower = qr.IsNULL("attack") ? 0 : qr.GetInteger("attack");
  420.         hr.RSoul = qr.IsNULL("soul") ? 0 : qr.GetInteger("soul");
  421.         hr.RFood = qr.IsNULL("food") ? 0 : qr.GetInteger("food");
  422.         hr.RCube = qr.IsNULL("crystal") ? 0 : qr.GetInteger("crystal");
  423.         hr.ImageName = qr.IsNULL("img") ? "0" : qr.GetString("img");
  424.     }
  425.     #endregion
  426.  
  427.     #region SQL tbl_HeroUser
  428.     /// <summary>
  429.     /// Lay danh sach heroUser trong tbl_HeroUser
  430.     /// </summary>
  431.     /// <returns></returns>
  432.     public List<HeroUser> GetHeroesUserData()
  433.     {
  434.         LoadDatabase("user");
  435.  
  436.         heroesUserData = new List<HeroUser>();
  437.         SQLiteQuery qr = new SQLiteQuery(db, "Select * FROM tbl_HeroUser ORDER BY id_hero ASC ");
  438.  
  439.         while (qr.Step())
  440.         {
  441.             HeroUser heroUserData = new HeroUser();
  442.             heroUserData.ID = qr.IsNULL("id_hero") ? 0 : qr.GetInteger("id_hero");
  443.             heroUserData.Level = qr.IsNULL("level_hero") ? 0 : qr.GetInteger("level_hero");
  444.             heroUserData.State = qr.IsNULL("unlock") ? 0 : qr.GetInteger("unlock");
  445.             heroUserData.SkillID = qr.IsNULL("id_skill") ? 0 : qr.GetInteger("id_skill");
  446.             heroUserData.UnlockHeroID = qr.IsNULL("id_unlockhero") ? 0 : qr.GetInteger("id_unlockhero");
  447.             heroUserData.AttackPower = qr.IsNULL("attack") ? 0 : qr.GetInteger("attack");
  448.  
  449.             heroesUserData.Add(heroUserData);
  450.         }
  451.         return heroesUserData;
  452.  
  453.     }
  454.     /// <summary>
  455.     /// Kiem tra list user, neu heroUser.cout<hero.cout
  456.     /// Add them nhung hero con thieu vao tbl_heroUser
  457.     /// </summary>
  458.     void checkAddNew()
  459.     {
  460.         if (heroesUserData.Count < heroes.Count)
  461.         {
  462.             int loop = heroes.Count - heroesUserData.Count;
  463.             int numHeroUser = heroesUserData.Count;
  464.  
  465.             for (int i = 0; i < loop; i++)
  466.             {
  467.                 string unlock = "1";
  468.                 int id = i + numHeroUser + 1;
  469.                 //Debug.Log("id="+id );
  470.                 GetIndexUnlocHeroToID(heroes[id - 1].ID);
  471.                 GetIndexSkillToID(heroes[id - 1].SkillID);
  472.  
  473.                 HeroUser hr = new HeroUser();
  474.                 hr.SkillID = skillHero[0].ID;
  475.                 hr.UnlockHeroID = unlockHeroeQuerry[0].ID;
  476.                 hr.AttackPower = unlockHeroeQuerry[0].AttackPower;
  477.                 if (heroes[id - 1].ID == 1)
  478.                 {
  479.                     unlock = "1";
  480.                     hr.State = 1;
  481.                 }
  482.                 else
  483.                 {
  484.                     unlock = "0";
  485.                     hr.State = 0;
  486.  
  487.                 }
  488.                 hr.ID = heroes[id - 1].ID;
  489.                 hr.Level = 1;
  490.  
  491.                 //add hero user to list
  492.                 heroesUserData.Add(hr);
  493.                 //add hero user to sqlite
  494.                 AddnewHeroUser(heroesUserData[id - 1].ID, unlock);
  495.  
  496.             }
  497.         }
  498.     }
  499.     #endregion
  500.  
  501.     #region SQL tbl_Skill
  502.  
  503.     public List<Skill> GetIndexSkillToID(int typeSkill)
  504.     {
  505.         LoadDatabase("game");
  506.  
  507.         skillHero = new List<Skill>();
  508.         SQLiteQuery qr = new SQLiteQuery(db, "Select * FROM tbl_Skill where type_skill =" + "'" + typeSkill + "'" + " and level_skill =1  ");
  509.         while (qr.Step())
  510.         {
  511.             Skill skill = new Skill();
  512.             setVauleSkill(skill, qr);
  513.             skillHero.Add(skill);
  514.         }
  515.         //Debug.Log("Num skill=" + skillHero.Count);
  516.         return skillHero;
  517.  
  518.     }
  519.  
  520.     public List<Skill> GetSkillsIndex(int indexSkill)
  521.     {
  522.         LoadDatabase("game");
  523.  
  524.         skillIndex = new List<Skill>();
  525.         SQLiteQuery qr = new SQLiteQuery(db, "Select * FROM tbl_Skill where id_skill =" + "'" + indexSkill + "'" + " ORDER BY id_skill ASC ");
  526.         while (qr.Step())
  527.         {
  528.             Skill skill = new Skill();
  529.             setVauleSkill(skill, qr);
  530.             skillIndex.Add(skill);
  531.         }
  532.  
  533.         return skillIndex;
  534.     }
  535.  
  536.     //public List<Skill> GetSkills ()
  537.     //{
  538.     //    LoadDatabase ("game");
  539.  
  540.     //    skills = new List<Skill> ();
  541.     //    SQLiteQuery qr = new SQLiteQuery (db, "Select * FROM tbl_Skill ORDER BY id_skill ASC ");
  542.  
  543.     //    while (qr.Step()) {
  544.     //        Skill skill = new Skill ();
  545.     //        setVauleSkill(skill, qr);
  546.     //        skills.Add (skill);
  547.  
  548.     //    }
  549.  
  550.     //    return skills;
  551.     //}
  552.  
  553.     void setVauleSkill(Skill skill, SQLiteQuery qr)
  554.     {
  555.         skill.ID = qr.IsNULL("id_skill") ? 0 : qr.GetInteger("id_skill");
  556.         skill.SkillType = (Skill.Power)(qr.IsNULL("type_skill") ? 0 : qr.GetInteger("type_skill"));
  557.         skill.Type = qr.IsNULL("type_skill") ? 0 : qr.GetInteger("type_skill");
  558.         skill.Name = qr.IsNULL("name_skill") ? "0" : qr.GetString("name_skill");
  559.         skill.SkillLevel = qr.IsNULL("level_skill") ? 0 : qr.GetInteger("level_skill");
  560.         skill.MaxSkillAccu = qr.IsNULL("num_gem") ? 0 : qr.GetInteger("num_gem");
  561.         skill.AttackPower = qr.IsNULL("dame") ? 0 : qr.GetInteger("dame");
  562.         skill.Range = qr.IsNULL("range") ? 0 : qr.GetInteger("range");
  563.         skill.Des = qr.IsNULL("des") ? "0" : qr.GetString("des");
  564.     }
  565.     #endregion
  566.  
  567.     #region SQL Enemy
  568.     //public List<Enemy> GetEnemies ()
  569.     //{
  570.     //    LoadDatabase ("game");
  571.  
  572.     //    enemies = new List<Enemy> ();
  573.     //    SQLiteQuery qr = new SQLiteQuery (db, "Select * FROM tbl_Boss ORDER BY id_boss ASC ");
  574.  
  575.     //    while (qr.Step()) {
  576.     //        Enemy enemy;
  577.  
  578.     //        //            enemy.ID = qr.IsNULL ("id_boss") ? 0 : qr.GetInteger ("id_boss");
  579.     //        //            enemy.LevelID = qr.IsNULL ("id_level") ? 0 : qr.GetInteger ("id_level");
  580.     //        //            enemy.Name = qr.IsNULL ("name_boss") ? "0" : qr.GetString ("name_boss");
  581.     //        //            enemy.MaxHealth = qr.IsNULL ("blood") ? 0 : qr.GetInteger ("blood");
  582.     //        //            enemy.ResitType = qr.IsNULL ("resist") ? 0 : qr.GetInteger ("resist");
  583.     //        //            enemy.SkillType = qr.IsNULL ("special") ? 0 : qr.GetInteger ("special");
  584.     //        //            enemy.WaitTime = qr.IsNULL ("move") ? 0 : qr.GetInteger ("move");
  585.     //        //            enemy.SkillAmount = qr.IsNULL ("num_special") ? 0 : qr.GetInteger ("num_special");
  586.     //        //            enemy.Image = qr.IsNULL ("img") ? "0" : qr.GetString ("img");
  587.  
  588.     //        enemy = new Enemy (qr.IsNULL ("id_boss") ? 0 : qr.GetInteger ("id_boss"),
  589.     //                           qr.IsNULL ("id_level") ? 0 : qr.GetInteger ("id_level"),
  590.     //                           qr.IsNULL ("name_boss") ? "0" : qr.GetString ("name_boss"),
  591.     //                           qr.IsNULL ("blood") ? 0 : qr.GetInteger ("blood"),
  592.     //                           qr.IsNULL ("resist") ? 0 : qr.GetInteger ("resist"),
  593.     //                           qr.IsNULL ("move") ? 0 : qr.GetInteger ("move"),
  594.     //                           qr.IsNULL ("special") ? 0 : qr.GetInteger ("special"),
  595.     //                           qr.IsNULL ("num_special") ? 0 : qr.GetInteger ("num_special"),
  596.     //                           qr.IsNULL ("img") ? "0" : qr.GetString ("img")
  597.  
  598.  
  599.     //        );
  600.     //        enemies.Add (enemy);
  601.  
  602.     //    }
  603.  
  604.     //    return enemies;
  605.     //}
  606.  
  607.     public List<Enemy> GetEnemiesByLevelID(int id_level)
  608.     {
  609.         LoadDatabase("game");
  610.  
  611.         enemies = new List<Enemy>();
  612.         SQLiteQuery qr = new SQLiteQuery(db, "Select * FROM tbl_Boss Where  id_level=" + "'" + id_level + "'" + " ORDER BY id_boss ASC ");
  613.  
  614.         while (qr.Step())
  615.         {
  616.             Enemy enemy;
  617.  
  618.             //          enemy.ID = qr.IsNULL ("id_boss") ? 0 : qr.GetInteger ("id_boss");
  619.             //          enemy.LevelID = qr.IsNULL ("id_level") ? 0 : qr.GetInteger ("id_level");
  620.             //          enemy.Name = qr.IsNULL ("name_boss") ? "0" : qr.GetString ("name_boss");
  621.             //          enemy.MaxHealth = qr.IsNULL ("blood") ? 0 : qr.GetInteger ("blood");
  622.             //          enemy.ResitType = qr.IsNULL ("resist") ? 0 : qr.GetInteger ("resist");
  623.             //          enemy.SkillType = qr.IsNULL ("special") ? 0 : qr.GetInteger ("special");
  624.             //          enemy.WaitTime = qr.IsNULL ("move") ? 0 : qr.GetInteger ("move");
  625.             //          enemy.SkillAmount = qr.IsNULL ("num_special") ? 0 : qr.GetInteger ("num_special");
  626.             //          enemy.Image = qr.IsNULL ("img") ? "0" : qr.GetString ("img");
  627.  
  628.             enemy = new Enemy(qr.IsNULL("id_boss") ? 0 : qr.GetInteger("id_boss"),
  629.                                qr.IsNULL("type") ? 0 : qr.GetInteger("type"),
  630.                                qr.IsNULL("id_level") ? 0 : qr.GetInteger("id_level"),
  631.                                qr.IsNULL("name_boss") ? "0" : qr.GetString("name_boss"),
  632.                                qr.IsNULL("blood") ? 0 : qr.GetInteger("blood"),
  633.                                qr.IsNULL("resist") ? 0 : qr.GetInteger("resist"),
  634.                                qr.IsNULL("move") ? 0 : qr.GetInteger("move"),
  635.                                qr.IsNULL("special") ? 0 : qr.GetInteger("special"),
  636.                                qr.IsNULL("num_special") ? 0 : qr.GetInteger("num_special"),
  637.                                qr.IsNULL("img") ? "0" : qr.GetString("img"),
  638.                                qr.IsNULL("blood_special") ? 0 : qr.GetInteger("blood_special")
  639.             );
  640.             enemies.Add(enemy);
  641.         }
  642.         return enemies;
  643.     }
  644.  
  645.     #endregion
  646.  
  647.     #region SQL Draw
  648.     public List<Draw> GetDrawNote(int note)
  649.     {
  650.         LoadDatabase("game");
  651.  
  652.         draws = new List<Draw>();
  653.         SQLiteQuery qr = new SQLiteQuery(db, "SELECT * FROM tbl_Draw Where  Note=" + "'" + note + "'" + "  ORDER BY id ASC");
  654.  
  655.         while (qr.Step())
  656.         {
  657.  
  658.             Draw dr = new Draw();
  659.  
  660.             dr.Id = qr.IsNULL("id") ? 0 : qr.GetInteger("id");
  661.             dr.Note = qr.IsNULL("note") ? 0 : qr.GetInteger("note");
  662.             dr.Food = qr.IsNULL("food") ? 0 : qr.GetInteger("food");
  663.             dr.Soul = qr.IsNULL("soul") ? 0 : qr.GetInteger("soul");
  664.             dr.Cube = qr.IsNULL("cube") ? 0 : qr.GetInteger("cube");
  665.             dr.Cube_Buy = qr.IsNULL("cube_buy") ? 0 : qr.GetInteger("cube_buy");
  666.  
  667.             dr.PFood = qr.IsNULL("food_percent") ? "0" : qr.GetString("food_percent");
  668.             dr.Food_Percent = float.Parse(dr.PFood);
  669.  
  670.             dr.PSoul = qr.IsNULL("soul_percent") ? "0" : qr.GetString("soul_percent");
  671.             dr.Soul_Percent = float.Parse(dr.PSoul);
  672.  
  673.             dr.PCube = qr.IsNULL("cube_percent") ? "0" : qr.GetString("cube_percent");
  674.             dr.Cube_Percent = float.Parse(dr.PCube);
  675.  
  676.             draws.Add(dr);
  677.         }
  678.  
  679.         return draws;
  680.     }
  681.     #endregion
  682.  
  683.     #region SQL Energy
  684.     public List<Energy> GetEnergy()
  685.     {
  686.         LoadDatabase("game");
  687.  
  688.         energys = new List<Energy>();
  689.         SQLiteQuery qr = new SQLiteQuery(db, "SELECT * FROM tbl_Energy  ORDER BY note ASC");
  690.  
  691.         while (qr.Step())
  692.         {
  693.  
  694.             Energy er = new Energy();
  695.             er.Buy = qr.IsNULL("buy") ? 0 : qr.GetInteger("buy");
  696.             er.Note = qr.IsNULL("note") ? 0 : qr.GetInteger("note");
  697.             er.EnergyMax = qr.IsNULL("energy") ? 0 : qr.GetInteger("energy");
  698.             er.EnergyBuy = qr.IsNULL("energy_buy") ? 0 : qr.GetInteger("energy_buy");
  699.             er.CubeBuy = qr.IsNULL("buy_cube") ? 0 : qr.GetInteger("buy_cube");
  700.             er.Refill = qr.IsNULL("energy_refill") ? "0" : qr.GetString("energy_refill");
  701.             er.RefillEnergy = float.Parse(er.Refill);
  702.  
  703.             energys.Add(er);
  704.         }
  705.  
  706.         return energys;
  707.     }
  708.     #endregion
  709.  
  710.     #region SetHeroInfo
  711.     private void setInfoHero()
  712.     {
  713.         if (heroes.Count == heroesUserData.Count)
  714.             for (int i = 0; i < heroes.Count; i++)
  715.             {
  716.                 //get list hero unlock
  717.                 GetUnlockHeroesWhere(heroesUserData[i].UnlockHeroID);
  718.                 GetSkillsIndex(heroesUserData[i].SkillID);
  719.                 HeroInfo hero = new HeroInfo();
  720.  
  721.                 //set id
  722.                 hero.IDHero = heroes[i].ID;
  723.                 //set type
  724.                 hero.TypeHero = heroes[i].Type;
  725.                 //set name
  726.                 hero.Name = heroes[i].Name;
  727.                 //set level;
  728.                 hero.Level = heroesUserData[i].Level;
  729.                 //set attack
  730.                 hero.Attack = heroesUserData[i].AttackPower;
  731.  
  732.                 //set type skill
  733.                 hero.Type_Skill = heroes[i].SkillID;
  734.  
  735.                 //set index skill
  736.                 hero.Index_Skill = heroesUserData[i].SkillID;
  737.  
  738.                 //set index unlock
  739.                 hero.Index_Unlock = heroesUserData[i].UnlockHeroID;
  740.  
  741.                 //set unlock
  742.                 hero.Unlock = heroesUserData[i].State;
  743.  
  744.                 //set img
  745.                 hero.ImageName = unlockHeroeQuerry[0].ImageName;
  746.                 //set soul
  747.                 hero.Soul = unlockHeroeQuerry[0].RSoul;
  748.                 //set food
  749.                 hero.Food = unlockHeroeQuerry[0].RFood;
  750.                 ////set crystal
  751.                 hero.Cube = unlockHeroeQuerry[0].RCube;
  752.                 //set des
  753.                 hero.Des = heroes[i].Desc;
  754.  
  755.  
  756.  
  757.                 //set name skill
  758.                 hero.NameSkill = skillIndex[0].Name;
  759.  
  760.                 //set skill level
  761.                 hero.SkillLevel = skillIndex[0].SkillLevel;
  762.                 //set attackPower
  763.                 hero.AttackPowerSkill = skillIndex[0].SkillLevel;
  764.                 //set maxskillaccu
  765.                 hero.MaxSkillAccu = skillIndex[0].MaxSkillAccu;
  766.                 //curSkillAccu
  767.                 hero.CurSkillAccu = skillIndex[0].CurSkillAccu;
  768.                 //set range
  769.                 hero.Range = skillIndex[0].Range;
  770.  
  771.                 //test = new List<HeroInfos>();
  772.  
  773.  
  774.                 heroInfoData.Add(hero);
  775.             }
  776.     }
  777.     #endregion
  778.  
  779.     #region update
  780.     //upgrade MapUser---------------------------------------------------
  781.     //unlock, topdame, topmove, play
  782.     public void UpdateLevel(int _id, int _play, int _topdame, int _topmove) // list heroesUserData
  783.     {
  784.         LoadDatabase("user");
  785.         SQLiteQuery qr = new SQLiteQuery(db, "UPDATE tbl_LevelUser SET unlock  = " + "1" + ",play=" + "'" + _play + "'" + ",top_dame= " + "'" + _topdame + "'" + ",top_move=" + "'" + _topmove + "'" + "  WHERE id_level =" + " '" + _id + "'");
  786.         qr.Step();
  787.         qr.Release();
  788.     }
  789.  
  790.     /// <summary>
  791.     /// Update hero:event Click button Update
  792.     /// </summary>
  793.     /// <param name="idHero">ID hero </param>
  794.     /// <param name="level">Level hero </param>
  795.     /// <param name="indexUnlock">Index Unlock </param>
  796.     /// <param name="indexSkill">Index Skill </param>
  797.     /// <param name="attack">Attack Power</param>
  798.     public void UpdateHeroUser(int idHero, int level, int indexUnlock, int indexSkill, int attack)
  799.     {
  800.         LoadDatabase("user");
  801.         SQLiteQuery qr = new SQLiteQuery(db, "UPDATE tbl_herouser SET level_hero=" + "'" + level + "'" + ", attack=" + "'" + attack + "'" + " ,id_unlockhero=" + "'" + indexUnlock + "'" + ", id_skill=" + "'" + indexSkill + "'" + " WHERE id_hero=" + "'" + idHero + "'");
  802.         qr.Step();
  803.         qr.Release();
  804.     }
  805.     /// <summary>
  806.     /// unlock hero khi QUay boxDraw not user
  807.     /// </summary>
  808.     /// <param name="idHero"> ID Hero </param>
  809.     public void UnLockHero(int idHero)
  810.     {
  811.         LoadDatabase("user");
  812.         SQLiteQuery qr = new SQLiteQuery(db, "UPDATE tbl_herouser SET unlock =1 WHERE id_hero=" + "'" + idHero + "'");
  813.         qr.Step();
  814.         qr.Release();
  815.     }
  816.     /// <summary>
  817.     /// Add hero user
  818.     /// </summary>
  819.     /// <param name="idHero">ID Hero</param>
  820.     /// <param name="unlock">State unlock 1 or 0 </param>
  821.     public void AddnewHeroUser(int idHero, string unlock)
  822.     {
  823.         var id = idHero - 1;
  824.         LoadDatabase("user");
  825.         SQLiteQuery qr = new SQLiteQuery(db, "INSERT INTO tbl_HeroUser (id_hero, id_unlockhero, id_skill, level_hero, attack,unlock) VALUES (?,?,?,?,?,?)");
  826.         qr.Bind(idHero);
  827.         qr.Bind(heroesUserData[id].UnlockHeroID);
  828.         qr.Bind(heroesUserData[id].SkillID);
  829.         qr.Bind(heroesUserData[id].Level);
  830.         qr.Bind(heroesUserData[id].AttackPower);
  831.         qr.Bind(unlock);
  832.         qr.Step();
  833.         qr.Release();
  834.     }
  835.  
  836.     /// <summary>
  837.     /// Unlock Hero ?????????????????????????????????????
  838.     /// </summary>
  839.     /// <param name="idHero"> ID Hero</param>
  840.     //public void UnLockHero (int idHero)
  841.     //{
  842.     //    var id = idHero - 1;
  843.     //    LoadDatabase ("user");
  844.     //    SQLiteQuery qr = new SQLiteQuery(db, "INSERT INTO tbl_HeroUser (id_hero, id_unlockhero, id_skill, level_hero, attack,unlock) VALUES (?,?,?,?,?,?)");
  845.     //    qr.Bind(idHero);
  846.     //    qr.Bind(heroInfoData[id].Index_Unlock);
  847.     //    qr.Bind(heroInfoData[id].Index_Skill);
  848.     //    qr.Bind(heroInfoData[id].Level);
  849.     //    qr.Bind(heroInfoData[id].Attack);
  850.     //    qr.Bind("1");
  851.     //    qr.Step ();
  852.     //    qr.Release ();
  853.     //}
  854.     public void UpdateLevelNew(int level)
  855.     {
  856.         LoadDatabase("user");
  857.         //INSERT INTO test_values (str_field,blob_field) VALUES(?,?);";
  858.         SQLiteQuery qr = new SQLiteQuery(db, "INSERT INTO tbl_LevelUser (id_level, play,unlock, top_dame, top_move) VALUES (?,?,?,?,?)");
  859.         qr.Bind(level.ToString());//id level
  860.         qr.Bind("1");//play=1
  861.         qr.Bind("1");//unlock=1
  862.         qr.Bind("0");
  863.         qr.Bind("0");
  864.  
  865.         qr.Step();
  866.         qr.Release();
  867.     }
  868.  
  869.     //unlock level
  870.     public void UnLockLevel()
  871.     {
  872.  
  873.         var levelMap = PlayerPrefs.GetInt("LevelSelect");
  874.  
  875.         if (levelMap - 1 == levelsUserData.Count)
  876.         {
  877.             //unlock lan dau
  878.             UpdateLevelNew(levelMap);
  879.             //all level to list uesr
  880.             LevelUser lv = new LevelUser(levelMap, 1, 1, 0, 0);
  881.             levelsUserData.Add(lv);
  882.             EncryptedPlayerPrefs.SetInt("Level", levelMap + 1);
  883.  
  884.             //Debug.Log("Map Unlock lan 1");
  885.         }
  886.         else
  887.         {
  888.  
  889.             //Debug.Log("Map unlock lan N");
  890.         }
  891.         //Debug.Log("Level Play=" + EncryptedPlayerPrefs.GetInt("Level"));
  892.  
  893.         //--------------------DEMO--------------------
  894.         //var levelMap = PlayerPrefs.GetInt("LevelSelect");
  895.         //if (levelMap > EncryptedPlayerPrefs.GetInt("Level")) EncryptedPlayerPrefs.SetInt("Level", levelMap + 1);
  896.     }
  897.     #endregion
  898.  
  899.  
  900.     void CheckNull()
  901.     {
  902.  
  903.         if (levels.Count == 0) Debug.LogError("list Level is null , check tbl_level ");
  904.         if (heroes.Count == 0) Debug.LogError("list hero is null, check tbl_Hero ");
  905.         //if (unlockHeroes.Count == 0) Debug.LogError("list unlockHero is null, check tbl_unlockHeroes");
  906.         if (energys.Count == 0) Debug.LogError("list energy is null, check tbl_Energy");
  907.         //if (enemies.Count == 0) Debug.LogError("list boss is null, check tbl_Boss");
  908.         //if (skills.Count == 0 ) Debug.LogError("list skill is null, check Map level Null");
  909.  
  910.     }
  911.  
  912.     IEnumerator Download(WWW www)
  913.     {
  914.         yield return www;
  915.     }
  916.  
  917.     //==============================
  918.     // Test cleart data
  919.     //==============================
  920.  
  921.     public void ButtonClearDataGame()
  922.     {
  923.         string filename = Application.persistentDataPath + "/" + dbNameGame;
  924.  
  925.         if (File.Exists(filename))
  926.         {
  927.             File.Delete(filename);
  928.             Application.LoadLevel(0);
  929.  
  930.             Debug.Log("delete file " + filename);
  931.         }
  932.     }
  933.  
  934.     public void ButtonClearDataUser()
  935.     {
  936.         string filename = Application.persistentDataPath + "/" + dbNameUser;
  937.  
  938.         if (File.Exists(filename))
  939.         {
  940.             File.Delete(filename);
  941.             Application.LoadLevel(0);
  942.             Debug.Log("delete file " + filename);
  943.         }
  944.     }
  945. }
Advertisement
Add Comment
Please, Sign In to add comment