Esempio n. 1
0
        /// <summary>
        /// 根据角色id查询角色数据
        /// </summary>
        /// <returns>The role data by role identifier.</returns>
        /// <param name="roleId">Role identifier.</param>
        public RoleData GetRoleDataByRoleId(string roleId)
        {
            RoleData data = null;

            db = OpenDb();
            SqliteDataReader sqReader = db.ExecuteQuery("select Id, RoleData, InjuryType from RolesTable where RoleId = '" + roleId + "' and State > 0 and BelongToRoleId = '" + currentRoleId + "'");

            if (sqReader.Read())
            {
                string roleDataStr = sqReader.GetString(sqReader.GetOrdinal("RoleData"));
                roleDataStr       = roleDataStr.IndexOf("{") == 0 ? roleDataStr : DESStatics.StringDecder(roleDataStr);
                data              = JsonManager.GetInstance().DeserializeObject <RoleData>(roleDataStr);
                data.PrimaryKeyId = sqReader.GetInt32(sqReader.GetOrdinal("Id"));
                data.Injury       = (InjuryType)sqReader.GetInt32(sqReader.GetOrdinal("InjuryType"));
            }
            db.CloseSqlConnection();
            return(data);
        }
Esempio n. 2
0
        /// <summary>
        /// 获取行囊物品数据
        /// </summary>
        public List <ItemData> GetItems(ItemType type)
        {
            List <ItemData> items = new List <ItemData>();

            db = OpenDb();
            SqliteDataReader sqReader = db.ExecuteQuery("select Id, ItemId, Num from BagTable where BelongToRoleId = '" + currentRoleId + "' and Type = " + (int)type + " order by Lv desc");
            ItemData         item;

            while (sqReader.Read())
            {
                item = JsonManager.GetInstance().GetMapping <ItemData>("ItemDatas", sqReader.GetString(sqReader.GetOrdinal("ItemId")));
                item.PrimaryKeyId = sqReader.GetInt32(sqReader.GetOrdinal("Id"));
                item.Num          = sqReader.GetInt32(sqReader.GetOrdinal("Num"));
                items.Add(item);
            }
            db.CloseSqlConnection();
            return(items);
        }
Esempio n. 3
0
        /// <summary>
        /// 请求医馆角色数据
        /// </summary>
        public void GetHospitalPanelData()
        {
            db = OpenDb();
            List <RoleData>  roles    = new List <RoleData>();
            SqliteDataReader sqReader = db.ExecuteQuery("select * from RolesTable where State != " + ((int)RoleStateType.NotRecruited) + " and BelongToRoleId = '" + currentRoleId + "'");
            RoleData         role;

            while (sqReader.Read())
            {
                role = JsonManager.GetInstance().DeserializeObject <RoleData>(sqReader.GetString(sqReader.GetOrdinal("RoleData")));
                role.PrimaryKeyId = sqReader.GetInt32(sqReader.GetOrdinal("Id"));
                role.State        = (RoleStateType)sqReader.GetInt32(sqReader.GetOrdinal("State"));
                role.Injury       = (InjuryType)sqReader.GetInt32(sqReader.GetOrdinal("InjuryType"));
                roles.Add(role);
            }
            db.CloseSqlConnection();
            Messenger.Broadcast <List <RoleData> >(NotifyTypes.GetHospitalPanelDataEcho, roles);
        }
Esempio n. 4
0
        /// <summary>
        /// 查询所有的道具
        /// </summary>
        /// <returns>The all properties.</returns>
        public List <PropData> GetAllProps()
        {
            List <PropData> props = new List <PropData>();

            db = OpenDb();
            SqliteDataReader sqReader = db.ExecuteQuery("select Data from GiftsTable where BelongToRoleId = '" + currentRoleId + "'");
            string           dataStr;
            PropData         propData;

            while (sqReader.Read())
            {
                dataStr  = DESStatics.StringDecder(sqReader.GetString(sqReader.GetOrdinal("Data")));
                propData = JsonManager.GetInstance().DeserializeObject <PropData>(dataStr);
                props.Add(propData);
            }
            db.CloseSqlConnection();
            return(props);
        }
Esempio n. 5
0
        /// <summary>
        /// 修改队伍的位子编号
        /// </summary>
        /// <param name="ids">Identifiers.</param>
        public void ChangeRolesSeatNo(JArray ids)
        {
            db = OpenDb();
            //将原来的角色先全部下阵
            db.ExecuteQuery("update RolesTable set State = " + ((int)RoleStateType.OutTeam) + " where State = " + ((int)RoleStateType.InTeam) + " and BelongToRoleId = '" + currentRoleId + "'");
            string id;

            for (int i = 0; i < ids.Count; i++)
            {
                id = ids[i].ToString();
                db.ExecuteQuery("update RolesTable set State = " + ((int)RoleStateType.InTeam) + ", SeatNo = " + i + " where Id = " + id);
            }
            //处理干粮
            SqliteDataReader sqReader = db.ExecuteQuery("select Data, AreaFoodNum from UserDatasTable where BelongToRoleId = '" + currentRoleId + "'");

            if (sqReader.Read())
            {
                UserData user = JsonManager.GetInstance().DeserializeObject <UserData>(sqReader.GetString(sqReader.GetOrdinal("Data")));
                user.AreaFood.Num = sqReader.GetInt32(sqReader.GetOrdinal("AreaFoodNum"));
                if (user.AreaFood.Num < user.AreaFood.MaxNum)
                {
                    sqReader = db.ExecuteQuery("select * from WorkshopResourceTable where BelongToRoleId = '" + currentRoleId + "'");
                    if (sqReader.Read())
                    {
                        //更新
                        List <ResourceData> resources = JsonManager.GetInstance().DeserializeObject <List <ResourceData> >(sqReader.GetString(sqReader.GetOrdinal("ResourcesData")));
                        ResourceData        resource  = resources.Find(item => item.Type == ResourceType.Food);
                        double cutNum = (double)(user.AreaFood.MaxNum - user.AreaFood.Num);
                        cutNum = resource.Num >= cutNum ? cutNum : resource.Num;
                        if (cutNum > 0)
                        {
                            resource.Num      -= cutNum;
                            user.AreaFood.Num += (int)cutNum;
                            //扣除工坊中的干粮
                            db.ExecuteQuery("update WorkshopResourceTable set ResourcesData = '" + JsonManager.GetInstance().SerializeObject(resources) + "' where Id = " + sqReader.GetInt32(sqReader.GetOrdinal("Id")));
                            //增加随身携带的干粮
                            db.ExecuteQuery("update UserDatasTable set AreaFoodNum = " + user.AreaFood.Num + " where BelongToRoleId = '" + currentRoleId + "'");
                        }
                    }
                }
            }
            db.CloseSqlConnection();
            Messenger.Broadcast(NotifyTypes.ChangeRolesSeatNoEcho);
        }
Esempio n. 6
0
        /// <summary>
        /// 请求书筐中的秘籍数据
        /// </summary>
        public void GetBooksListPanelData()
        {
            List <BookData> books = new List <BookData>();

            db = OpenDb();
            SqliteDataReader sqReader = db.ExecuteQuery("select * from BooksTable where State = " + ((int)BookStateType.Read) + " and BelongToRoleId = '" + currentRoleId + "' order by SeatNo");
            BookData         book;

            while (sqReader.Read())
            {
                book = JsonManager.GetInstance().GetMapping <BookData>("Books", sqReader.GetString(sqReader.GetOrdinal("BookId")));
                book.PrimaryKeyId    = sqReader.GetInt32(sqReader.GetOrdinal("Id"));
                book.State           = (BookStateType)sqReader.GetInt32(sqReader.GetOrdinal("State"));
                book.BeUsingByRoleId = sqReader.GetString(sqReader.GetOrdinal("BeUsingByRoleId"));
                books.Add(book);
            }
            db.CloseSqlConnection();
            Messenger.Broadcast <List <BookData> >(NotifyTypes.GetBooksListPanelDataEcho, books);
        }
Esempio n. 7
0
        /// <summary>
        /// 根据兵器Id查询兵器强化等级
        /// </summary>
        /// <returns>The weapon L.</returns>
        /// <param name="weaponId">Weapon identifier.</param>
        public WeaponLVData GetWeaponLV(string weaponId)
        {
            WeaponLVData WeaponLVData = null;

            db = OpenDb();
            SqliteDataReader sqReader = db.ExecuteQuery("select Data from WeaponLVsTable where WeaponId = '" + weaponId + "' and BelongToRoleId = '" + currentRoleId + "'");

            if (sqReader.Read())
            {
                //获取角色数据
                WeaponLVData = JsonManager.GetInstance().DeserializeObject <WeaponLVData>(DESStatics.StringDecder(sqReader.GetString(sqReader.GetOrdinal("Data"))));
            }
            else
            {
                WeaponLVData = new WeaponLVData();
            }
            db.CloseSqlConnection();
            return(WeaponLVData);
        }
Esempio n. 8
0
        public void UpdateData(object obj, bool isfighting)
        {
            disabed = false;
            JArray data = (JArray)obj;

            roleDataList = new List <RoleData>();
            JArray   itemData;
            RoleData role;

            for (int i = 0; i < data.Count; i++)
            {
                itemData = (JArray)data[i];
                role     = JsonManager.GetInstance().DeserializeObject <RoleData>(itemData[1].ToString());
                role.MakeJsonToModel();
                role.Injury = (InjuryType)((int)itemData[3]);
                role.IsDie  = false;
                roleDataList.Add(role);
            }
        }
Esempio n. 9
0
        int modifyResourceTimeout    = 20;      //刷新资源间隔时间(单位:秒)

        /// <summary>
        /// 检测是否有新的生产单元
        /// </summary>
        /// <param name="cityId">City identifier.</param>
        public void CheckNewWorkshopItems(string cityId)
        {
            db = OpenDb();
            List <ResourceRelationshipData> resourcesRelationshipsInCity = WorkshopModel.Relationships.FindAll(item => item.BelongToCityId == cityId);

            if (resourcesRelationshipsInCity.Count > 0)
            {
                List <ResourceData> resources;
                SqliteDataReader    sqReader = db.ExecuteQuery("select * from WorkshopResourceTable where BelongToRoleId = '" + currentRoleId + "'");
                if (sqReader.Read())
                {
                    //更新
                    string resourcesStr = sqReader.GetString(sqReader.GetOrdinal("ResourcesData"));
                    resourcesStr = resourcesStr.IndexOf("[") == 0 ? resourcesStr : DESStatics.StringDecder(resourcesStr);
                    resources    = JsonManager.GetInstance().DeserializeObject <List <ResourceData> >(resourcesStr);
                    for (int i = 0; i < resourcesRelationshipsInCity.Count; i++)
                    {
                        if (resources.FindIndex(item => item.Type == resourcesRelationshipsInCity[i].Type) < 0)
                        {
                            resources.Add(new ResourceData(resourcesRelationshipsInCity[i].Type, 0));
                        }
                    }
                    db.ExecuteQuery("update WorkshopResourceTable set ResourcesData = '" + DESStatics.StringEncoder(JsonManager.GetInstance().SerializeObject(resources)) + "' where Id = " + sqReader.GetInt32(sqReader.GetOrdinal("Id")));
                }
                else
                {
                    //新增
                    resources = new List <ResourceData>();
                    for (int i = 0; i < resourcesRelationshipsInCity.Count; i++)
                    {
                        resources.Add(new ResourceData(resourcesRelationshipsInCity[i].Type, 0));
                    }
                    db.ExecuteQuery("insert into WorkshopResourceTable (ResourcesData, Ticks, WorkerNum, MaxWorkerNum, BelongToRoleId) values('" + DESStatics.StringEncoder(JsonManager.GetInstance().SerializeObject(resources)) + "', " + DateTime.Now.Ticks + ", 0, 0, '" + currentRoleId + "')");
                }
                //记录当前所有的工坊资源类型列表
                CitySceneModel.ResourceTypeStrOfWorkShopNewFlagList = new List <string>();
                for (int i = resources.Count - 1; i >= 0; i--)
                {
                    CitySceneModel.ResourceTypeStrOfWorkShopNewFlagList.Add(resources[i].Type.ToString());
                }
            }
            db.CloseSqlConnection();
        }
Esempio n. 10
0
 public void UpdateData(string id, JArray data, bool willDuring)
 {
     taskId       = id;
     msgStr       = data[2].ToString();
     dialogStatus = (TaskDialogStatusType)((short)data[3]);
     fightId      = data[5].ToString();
     fightData    = JsonManager.GetInstance().GetMapping <FightData>("Fights", fightId);
     if (willDuring)
     {
         alphaGroup       = gameObject.AddComponent <CanvasGroup>();
         alphaGroup.alpha = 0;
         alphaGroup.DOFade(1, 0.5f).OnComplete(() => {
             if (alphaGroup != null)
             {
                 Destroy(alphaGroup);
             }
         });
     }
 }
Esempio n. 11
0
        /// <summary>
        /// 记录战斗结果
        /// </summary>
        /// <param name="win">If set to <c>true</c> window.</param>
        /// <param name="fightId">Fight identifier.</param>
        /// <param name="star">Star.</param>
        public void SendFightResult(bool win, string fightId, int star)
        {
            FightData       fight = JsonManager.GetInstance().GetMapping <FightData>("Fights", fightId);
            List <DropData> drops = new List <DropData>();

            if (win)
            {
                db = OpenDb();
                SqliteDataReader sqReader = db.ExecuteQuery("select * from FightWinedRecordsTable where FightId = '" + fightId + "' and BelongToRoleId = '" + currentRoleId + "'");
                if (sqReader.HasRows)
                {
                    if (sqReader.Read())
                    {
                        int id       = sqReader.GetInt32(sqReader.GetOrdinal("Id"));
                        int starData = sqReader.GetInt32(sqReader.GetOrdinal("Star"));
                        starData = star > starData ? star : starData;
                        int numData = sqReader.GetInt32(sqReader.GetOrdinal("Num")) + 1;
                        db.ExecuteQuery("update FightWinedRecordsTable set Star = " + starData + ", Num = " + numData + " where Id = " + id);
                    }
                }
                else
                {
                    db.ExecuteQuery("insert into FightWinedRecordsTable (FightId, Star, Num, DateTime, BelongToRoleId) values('" + fightId + "', " + star + ", 1, '" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "', '" + currentRoleId + "');");
                }
                db.CloseSqlConnection();

                if (fight.Drops.Count > 0)
                {
                    drops = PushItemToBag(fight.Drops);
                }
                //将战斗事件从区域大地图上移除
                RemoveFightEvent(fightId);
            }
            else
            {
                //失败后需要计算队伍中侠客的伤势
                MakeRolesInjury();
            }
            Messenger.Broadcast <bool, List <DropData>, FightData>(NotifyTypes.SendFightResultEcho, win, drops, fight);
            //根据战斗胜负处理是否添加临时禁用事件
            Messenger.Broadcast <bool>(NotifyTypes.ReleaseDisableEvent, win);
        }
Esempio n. 12
0
        public override void RefreshView()
        {
            icon.sprite = Statics.GetIconSprite(weaponData.IconId);
            flashImage.gameObject.SetActive(((int)weaponData.Quality) >= ((int)QualityType.FlashGold));
            nameText.text = string.Format("<color=\"{0}\">{1}</color> {2}", Statics.GetQualityColorString(weaponData.Quality), weaponData.Name, weaponLVData.LV > 0 ? ("+" + weaponLVData.LV) : "");
//			weaponWidthScript.UpdateData(weaponData);
//			weaponWidthScript.RefreshView();
            infoText.text = info;
            if (weaponData.BelongToRoleId == "")
            {
                occupationText.text = string.Format("门派限制:{0}", weaponData.Occupation != OccupationType.None ? Statics.GetOccupationName(weaponData.Occupation) : "无限制");
            }
            else
            {
                occupationText.text = string.Format("仅限 {0} 使用", JsonManager.GetInstance().GetMapping <RoleData>("RoleDatas", weaponData.BelongToRoleId).Name);
            }
            lvFullNoticeText.gameObject.SetActive(weaponData.Quality >= QualityType.FlashGold && weaponLVData.LV >= weaponLVData.MaxLV);
            lvUpgradeBtn.gameObject.SetActive(weaponData.Quality >= QualityType.FlashGold && weaponLVData.LV < weaponLVData.MaxLV);
            StartCoroutine(refreshHeight());
        }
Esempio n. 13
0
        /// <summary>
        /// 请求工坊主界面数据(包括生产材料标签页数据)
        /// </summary>
        public void GetWorkshopPanelData()
        {
            JArray data = new JArray();

            db = OpenDb();
            SqliteDataReader sqReader = db.ExecuteQuery("select * from WorkshopResourceTable where BelongToRoleId = '" + currentRoleId + "'");

            if (sqReader.Read())
            {
                string resourceDataStr = sqReader.GetString(sqReader.GetOrdinal("ResourcesData"));
                data.Add(sqReader.GetInt32(sqReader.GetOrdinal("Id")));
                data.Add(resourceDataStr);
                data.Add(sqReader.GetInt32(sqReader.GetOrdinal("WorkerNum")));
                data.Add(sqReader.GetInt32(sqReader.GetOrdinal("MaxWorkerNum")));
                List <ResourceData> resultResources = returnAllReceiveResourcesOnece(resourceDataStr);
                data.Add(JsonManager.GetInstance().SerializeObject(resultResources));
            }
            db.CloseSqlConnection();
            Messenger.Broadcast <JArray>(NotifyTypes.GetWorkshopPanelDataEcho, data);
        }
Esempio n. 14
0
        /// <summary>
        /// 卸下兵器
        /// </summary>
        /// <param name="id">Identifier.</param>
        public void TakeOffWeapon(int id)
        {
            db = OpenDb();
            db.ExecuteQuery("update WeaponsTable set BeUsingByRoleId = '' where Id = " + id);
            SqliteDataReader sqReader = db.ExecuteQuery("select RoleId, RoleData from RolesTable where RoleId = '" + currentRoleId + "'");

            if (sqReader.Read())
            {
                //获取角色数据
                string roleDataStr = sqReader.GetString(sqReader.GetOrdinal("RoleData"));
                roleDataStr = roleDataStr.IndexOf("{") == 0 ? roleDataStr : DESStatics.StringDecder(roleDataStr);
                RoleData role = JsonManager.GetInstance().DeserializeObject <RoleData>(roleDataStr);
                role.ResourceWeaponDataId = "";
                //更新主角关联数据
                db.ExecuteQuery("update RolesTable set RoleData = '" + DESStatics.StringEncoder(JsonManager.GetInstance().SerializeObjectDealVector(role)) + "' where RoleId = '" + currentRoleId + "'");
            }
            db.CloseSqlConnection();
            GetWeaponsListPanelData();             //刷新兵器匣列表
            CallRoleInfoPanelData(false);          //刷新队伍数据
        }
Esempio n. 15
0
        /// <summary>
        /// 获取出售物品数据
        /// </summary>
        public void GetSellItemsPanelData()
        {
            List <ItemData> items = new List <ItemData>();

            db = OpenDb();
            SqliteDataReader sqReader = db.ExecuteQuery("select Id, ItemId, Num from BagTable where BelongToRoleId = '" + currentRoleId + "'");
            ItemData         item;

            while (sqReader.Read())
            {
                item = JsonManager.GetInstance().GetMapping <ItemData>("ItemDatas", sqReader.GetString(sqReader.GetOrdinal("ItemId")));
                if (item.SellPrice >= 0)
                {
                    item.PrimaryKeyId = sqReader.GetInt32(sqReader.GetOrdinal("Id"));
                    item.Num          = sqReader.GetInt32(sqReader.GetOrdinal("Num"));
                    items.Add(item);
                }
            }
            db.CloseSqlConnection();
            Messenger.Broadcast <List <ItemData> >(NotifyTypes.GetSellItemsPanelDataEcho, items);
        }
Esempio n. 16
0
 /// <summary>
 /// 判断是否需要初始化缓存数据
 /// </summary>
 void validTaskListData()
 {
     if (taskListData == null)
     {
         taskListData = new List <TaskData>();
         db           = OpenDb();
         //正序查询处于战斗队伍中的角色
         SqliteDataReader sqReader = db.ExecuteQuery("select * from TasksTable where BelongToRoleId = '" + currentRoleId + "' and State >= 0 order by State desc");
         TaskData         taskData;
         while (sqReader.Read())
         {
             taskData       = JsonManager.GetInstance().GetMapping <TaskData>("Tasks", sqReader.GetString(sqReader.GetOrdinal("TaskId")));
             taskData.State = (TaskStateType)sqReader.GetInt32(sqReader.GetOrdinal("State"));
             taskData.SetCurrentDialogIndex(sqReader.GetInt32(sqReader.GetOrdinal("CurrentDialogIndex")));
             taskData.ProgressData = JsonManager.GetInstance().DeserializeObject <JArray>(sqReader.GetString(sqReader.GetOrdinal("ProgressData")));
             taskData.MakeJsonToModel();
             taskListData.Add(taskData);
         }
         db.CloseSqlConnection();
     }
 }
Esempio n. 17
0
        /// <summary>
        /// 查询队伍中的侠客
        /// </summary>
        /// <returns>The roles in team.</returns>
        public List <RoleData> GetRolesInTeam()
        {
            List <RoleData> rolesData = new List <RoleData>();

            db = OpenDb();
            //正序查询处于战斗队伍中的角色
            SqliteDataReader sqReader = db.ExecuteQuery("select * from RolesTable where BelongToRoleId = '" + currentRoleId + "' and State = " + (int)RoleStateType.InTeam + " order by SeatNo");
            RoleData         roleData;
            string           roleDataStr;

            while (sqReader.Read())
            {
                roleDataStr     = sqReader.GetString(sqReader.GetOrdinal("RoleData"));
                roleDataStr     = roleDataStr.IndexOf("{") == 0 ? roleDataStr : DESStatics.StringDecder(roleDataStr);
                roleData        = JsonManager.GetInstance().DeserializeObject <RoleData>(roleDataStr);
                roleData.Injury = (InjuryType)((int)sqReader.GetInt32(sqReader.GetOrdinal("InjuryType")));
                rolesData.Add(roleData);
            }
            db.CloseSqlConnection();
            return(rolesData);
        }
Esempio n. 18
0
        /// <summary>
        /// 结交侠客
        /// </summary>
        /// <param name="id">Identifier.</param>
        public void InviteRole(int id)
        {
            bool     invited = false;
            RoleData role    = null;

            db = OpenDb();
            SqliteDataReader sqReader = db.ExecuteQuery("select Id, RoleId, State from RolesTable where Id = " + id);

            if (sqReader.Read())
            {
                role = JsonManager.GetInstance().GetMapping <RoleData>("RoleDatas", sqReader.GetString(sqReader.GetOrdinal("RoleId")));
                RoleStateType state = (RoleStateType)sqReader.GetInt32(sqReader.GetOrdinal("State"));
                if (state == RoleStateType.NotRecruited)
                {
                    sqReader = db.ExecuteQuery("select * from WeaponsTable where WeaponId = '" + role.ResourceWeaponDataId + "' and BeUsingByRoleId == '' and BelongToRoleId = '" + currentRoleId + "'");
                    if (sqReader.Read())
                    {
                        //删掉兵器
                        db.ExecuteQuery("delete from WeaponsTable where Id = " + sqReader.GetInt32(sqReader.GetOrdinal("Id")));
                        //结交侠客
                        db.ExecuteQuery("update RolesTable set State = " + ((int)RoleStateType.OutTeam) + ", SeatNo = 888 where Id = " + id);
                        invited = true;
                    }
                    else
                    {
                        AlertCtrl.Show("你的兵器匣里并没有称手的兵器!", null);
                    }
                }
                else
                {
                    AlertCtrl.Show("你们已经结识!", null);
                }
            }
            db.CloseSqlConnection();
            if (invited && role != null)
            {
                Statics.CreatePopMsg(Vector3.zero, string.Format("你与<color=\"#FFFF00\">{0}</color>撮土为香,结成八拜之交!", role.Name), Color.white, 30);
                GetRolesOfWinShopPanelData(role.HometownCityId);
            }
        }
Esempio n. 19
0
        /// <summary>
        /// 请求酒馆中的侠客列表
        /// </summary>
        /// <param name="cityId">City identifier.</param>
        public void GetRolesOfWinShopPanelData(string cityId)
        {
            db = OpenDb();
            List <RoleData> roles = new List <RoleData>();
//			SqliteDataReader sqReader = db.ExecuteQuery("select * from RolesTable where HometownCityId = '" + cityId + "' and BelongToRoleId = '" + currentRoleId + "'");
            SqliteDataReader sqReader = db.ExecuteQuery("select * from RolesTable where BelongToRoleId = '" + currentRoleId + "'");
            RoleData         role;

            while (sqReader.Read())
            {
                if (sqReader.GetString(sqReader.GetOrdinal("RoleId")) != sqReader.GetString(sqReader.GetOrdinal("BelongToRoleId")))
                {
                    role = JsonManager.GetInstance().DeserializeObject <RoleData>(sqReader.GetString(sqReader.GetOrdinal("RoleData")));
                    role.PrimaryKeyId = sqReader.GetInt32(sqReader.GetOrdinal("Id"));
                    role.State        = (RoleStateType)sqReader.GetInt32(sqReader.GetOrdinal("State"));
                    role.Injury       = (InjuryType)sqReader.GetInt32(sqReader.GetOrdinal("InjuryType"));
                    roles.Add(role);
                }
            }
            db.CloseSqlConnection();
            Messenger.Broadcast <List <RoleData> >(NotifyTypes.GetRolesOfWinShopPanelDataEcho, roles);
        }
Esempio n. 20
0
        /// <summary>
        /// 检测是否是否发现新的秘籍,有则加入到待选数据表中
        /// </summary>
        /// <param name="cityId">City identifier.</param>
        public void CheckNewBooksOfForbiddenArea(string cityId)
        {
            JObject booksOfForbiddenAreaData = JsonManager.GetInstance().GetJson("BooksOfForbiddenAreaData");

            if (booksOfForbiddenAreaData[cityId] != null)
            {
                db = OpenDb();
                JArray bookIdsData = (JArray)booksOfForbiddenAreaData[cityId];
                string bookId;
                for (int i = 0; i < bookIdsData.Count; i++)
                {
                    bookId = bookIdsData[i].ToString();
                    SqliteDataReader sqReader = db.ExecuteQuery("select Id from BooksTable where BookId = '" + bookId + "' and BelongToRoleId = '" + currentRoleId + "'");
                    if (!sqReader.HasRows)
                    {
                        db.ExecuteQuery("insert into BooksTable (BookId, State, SeatNo, BeUsingByRoleId, BelongToCityId, BelongToRoleId) values('" + bookId + "', " + ((int)BookStateType.Unread) + ", 888, '', '" + cityId + "', '" + currentRoleId + "')");
                    }
                }
                db.CloseSqlConnection();
            }
            booksOfForbiddenAreaData = null;
        }
Esempio n. 21
0
        /// <summary>
        /// 创建新的事件
        /// </summary>
        /// <param name="type">Type.</param>
        /// <param name="eventId">Event identifier.</param>
        /// <param name="sceneId">Scene identifier.</param>
        /// <param name="name">Name.</param>
        public void CreateNewEvent(SceneEventType type, string eventId, string areaId, string name = "")
        {
            //计算区域大地图上的随机坐标点
            if (AreaModel.AreaMainScript == null)
            {
                return;
            }
            SizeData mapSize = JsonManager.GetInstance().GetMapping <SizeData>("AreaSizeDatas", areaId);
            int      x       = UnityEngine.Random.Range(1, mapSize.Width - 1);
            int      y       = UnityEngine.Random.Range(1, mapSize.Height - 1);
            string   randomEventId;

            tk2dRuntime.TileMap.TileInfo groundTile;
            bool canNotAdd = true;

            //查找到合法的事件点坐标
            while (canNotAdd)
            {
                randomEventId = areaId + "_" + x.ToString() + "_" + y.ToString();
                groundTile    = AreaModel.AreaMainScript.Map.GetTileInfoForTileId(AreaModel.AreaMainScript.Map.GetTile(x, y, 0));
                if (groundTile == null ||              //非法坐标
                    groundTile.stringVal == "obstacle" ||                     //为寻路障碍点
                    AreaMain.StaticAreaEventsMapping.ContainsKey(randomEventId) ||                     //为静态事件
                    AreaMain.ActiveAreaEventsMapping.ContainsKey(randomEventId))                        //为动态事件
                {
                    x = UnityEngine.Random.Range(1, mapSize.Width - 1);
                    y = UnityEngine.Random.Range(1, mapSize.Height - 1);
                }
                else
                {
                    canNotAdd = false;
                }
            }

            db = OpenDb();
            db.ExecuteQuery("insert into EventsTable (X, Y, Type, EventId, SceneId, Name, BelongToRoleId) values(" + x + ", " + y + ", " + ((int)type) + ", '" + eventId + "', '" + areaId + "', '" + name + "', '" + currentRoleId + "')");
            db.CloseSqlConnection();
        }
Esempio n. 22
0
        /// <summary>
        /// 请求兵器分解标签页数据
        /// </summary>
        public void GetWorkshopWeaponBreakingTableData()
        {
            List <WeaponData> weapons = new List <WeaponData>();

            db = OpenDb();
            SqliteDataReader sqReader = db.ExecuteQuery("select * from WeaponsTable where (BeUsingByRoleId = '" + currentRoleId + "' or BeUsingByRoleId = '') and BelongToRoleId ='" + currentRoleId + "'");
            WeaponData       weapon;

            while (sqReader.Read())
            {
                weapon = JsonManager.GetInstance().GetMapping <WeaponData>("Weapons", sqReader.GetString(sqReader.GetOrdinal("WeaponId")));
                weapon.PrimaryKeyId    = sqReader.GetInt32(sqReader.GetOrdinal("Id"));
                weapon.BeUsingByRoleId = sqReader.GetString(sqReader.GetOrdinal("BeUsingByRoleId"));
                for (int i = 0; i < weapon.Needs.Count; i++)
                {
                    weapon.Needs[i].Num = Mathf.Floor((float)(weapon.Needs[i].Num * 0.5f));                     //熔解兵器只返还50%的资源
                }
                weapons.Add(weapon);
            }
            db.CloseSqlConnection();
            weapons.Sort((a, b) => b.Quality.CompareTo(a.Quality));
            Messenger.Broadcast <List <WeaponData> >(NotifyTypes.GetWorkshopWeaponBreakingTableDataEcho, weapons);
        }
Esempio n. 23
0
        /// <summary>
        /// 添加一个道具
        /// </summary>
        /// <param name="type">Type.</param>
        /// <param name="num">Number.</param>
        public void AddProp(PropType type, int num)
        {
            db = OpenDb();
            SqliteDataReader sqReader = db.ExecuteQuery("select Id, Data from GiftsTable where Type = " + (int)type + " and BelongToRoleId = '" + currentRoleId + "'");
            string           dataStr;
            PropData         propData;

            if (sqReader.Read())
            {
                dataStr      = DESStatics.StringDecder(sqReader.GetString(sqReader.GetOrdinal("Data")));
                propData     = JsonManager.GetInstance().DeserializeObject <PropData>(dataStr);
                propData.Num = Mathf.Clamp(propData.Num + num, 0, propData.Max);
                //改
                db.ExecuteQuery("update GiftsTable set Data = '" + DESStatics.StringEncoder(JsonManager.GetInstance().SerializeObject(propData)) + "' where Id = " + sqReader.GetInt32(sqReader.GetOrdinal("Id")));
            }
            else
            {
                propData = new PropData(type, num);
                //增
                db.ExecuteQuery("insert into GiftsTable (Type, Data, BelongToRoleId) values(" + (int)type + ", '" + DESStatics.StringEncoder(JsonManager.GetInstance().SerializeObject(propData)) + "', '" + currentRoleId + "');");
            }
            db.CloseSqlConnection();
        }
Esempio n. 24
0
        /// <summary>
        /// 添加银子
        /// </summary>
        /// <param name="num">Number.</param>
        public void GotSilver(double num)
        {
            db = OpenDb();
            //添加银子到资源
            SqliteDataReader    sqReader  = db.ExecuteQuery("select Id, ResourcesData from WorkshopResourceTable where BelongToRoleId = '" + currentRoleId + "'");
            List <ResourceData> resources = null;

            if (sqReader.Read())
            {
                string resourcesStr = sqReader.GetString(sqReader.GetOrdinal("ResourcesData"));
                resourcesStr = resourcesStr.IndexOf("[") == 0 ? resourcesStr : DESStatics.StringDecder(resourcesStr);
                resources    = JsonManager.GetInstance().DeserializeObject <List <ResourceData> >(resourcesStr);
                //查询目前的银子余额
                ResourceData resource = resources.Find(re => re.Type == ResourceType.Silver);
                if (resource != null)
                {
                    resource.Num += num;
                    //加钱
                    db.ExecuteQuery("update WorkshopResourceTable set ResourcesData = '" + DESStatics.StringEncoder(JsonManager.GetInstance().SerializeObject(resources)) + "' where Id = " + sqReader.GetInt32(sqReader.GetOrdinal("Id")));
                }
            }
            db.CloseSqlConnection();
        }
Esempio n. 25
0
        /// <summary>
        /// 根据角色拥有的秘籍Id集合查询出拥有的诀要总和
        /// </summary>
        /// <returns>The secrets belong books.</returns>
        /// <param name="bookIds">Book identifiers.</param>
        public List <SecretData> GetSecretsBelongBooks(List <string> bookIds)
        {
            List <SecretData> secrets = new List <SecretData>();

            db = OpenDb();
            SqliteDataReader  sqReader;
            List <SecretData> secretsInDB;

            for (int i = 0, len = bookIds.Count; i < len; i++)
            {
                sqReader = db.ExecuteQuery("select SecretsData from BookExpsTable where BookId = '" + bookIds[i] + "' and BelongToRoleId = '" + currentRoleId + "'");
                if (sqReader.Read())
                {
                    secretsInDB = JsonManager.GetInstance().DeserializeObject <List <SecretData> >(DESStatics.StringDecder(sqReader.GetString(sqReader.GetOrdinal("SecretsData"))));
                    for (int j = 0, len2 = secretsInDB.Count; j < len2; j++)
                    {
                        secrets.Add(secretsInDB[j]);
                    }
                }
            }
            db.CloseSqlConnection();
            return(secrets);
        }
Esempio n. 26
0
 /// <summary>
 /// 添加一条新任务到可截取任务数据列表,但是不包括某一个特定类型的任务
 /// </summary>
 /// <param name="taskId">Task identifier.</param>
 /// <param name="exceptType">Except type.</param>
 public void AddNewTaskExceptType(string taskId, TaskType exceptType)
 {
     validTaskListData();
     if (getTask(taskId) == null)
     {
         db = OpenDb();
         TaskData taskData = JsonManager.GetInstance().GetMapping <TaskData>("Tasks", taskId);
         if (taskData.Type != exceptType)
         {
             if (taskData.Id == taskId)
             {
                 if (taskData.Type == TaskType.Occupation)
                 {
                     if (HostData == null || HostData.Occupation != (OccupationType)taskData.IntValue)
                     {
                         db.CloseSqlConnection();
                         return;
                     }
                 }
                 //添加任务数据时把任务步骤存档字段也进行初始化
                 JArray progressDataList = new JArray();
                 for (int i = 0; i < taskData.Dialogs.Count; i++)
                 {
                     progressDataList.Add((short)TaskDialogStatusType.Initial);
                 }
                 db.ExecuteQuery("insert into TasksTable (TaskId, ProgressData, CurrentDialogIndex, State, BelongToRoleId) values('" + taskId + "', '" + progressDataList.ToString() + "', 0, 0, '" + currentRoleId + "')");
                 //顺手把数据写入缓存
                 taskData.State = TaskStateType.CanNotAccept;
                 taskData.SetCurrentDialogIndex(0);
                 taskData.ProgressData = progressDataList;
                 taskData.MakeJsonToModel();
                 taskListData.Add(taskData);
             }
         }
         db.CloseSqlConnection();
     }
 }
Esempio n. 27
0
        //将所有人的伤势缓解一级
        public void RelieveRoles()
        {
            db = OpenDb();
            bool             success  = false;
            RoleData         role     = null;
            SqliteDataReader sqReader = db.ExecuteQuery("select Id, RoleData, InjuryType from RolesTable where InjuryType > " + 0);
            string           roleDataStr;

            while (sqReader.Read())
            {
                roleDataStr = sqReader.GetString(sqReader.GetOrdinal("RoleData"));
                roleDataStr = roleDataStr.IndexOf("{") == 0 ? roleDataStr : DESStatics.StringDecder(roleDataStr);
                role        = JsonManager.GetInstance().DeserializeObject <RoleData>(roleDataStr);
                db.ExecuteQuery("update RolesTable set InjuryType = " + (sqReader.GetInt32(sqReader.GetOrdinal("InjuryType")) - 1) + " where Id = " + sqReader.GetInt32(sqReader.GetOrdinal("Id")));
                success = true;
            }
            db.CloseSqlConnection();
            if (success)
            {
                AlertCtrl.Show("各位侠客的伤势得到了缓解!");
                GetHospitalPanelData();
                CallRoleInfoPanelData(false); //刷新队伍数据
            }
        }
Esempio n. 28
0
        /// <summary>
        /// 增减资源的工作家丁数回调
        /// </summary>
        /// <param name="data">Data.</param>
        public void ChangeResourceWorkerNumEcho(JArray data)
        {
            ResourceType type          = (ResourceType)((short)data[0]);
            int          busyWorkerNum = (int)data[1];

            workerNum       = (int)data[2];
            maxWorkerNum    = (int)data[3];
            resultResources = JsonManager.GetInstance().DeserializeObject <List <ResourceData> >(data[4].ToString());
            ResourceData findResource = resources.Find(item => item.Type == type);

            if (findResource != null)
            {
                findResource.WorkersNum = busyWorkerNum;
                WorkshopResourceContainer findContainer = resourceContainers.Find(item => item.Type == findResource.Type);
                //更新资源的工作家丁数
                if (findContainer != null)
                {
                    findContainer.UpdateData(busyWorkerNum);
                    findContainer.RefreshView();
                }
            }
            //更新产量信息
            RefreshResultResourcesView();
        }
Esempio n. 29
0
        /// <summary>
        /// Battles the notify init.
        /// </summary>
        public static void BattleNotifyInit()
        {
            Messenger.AddListener <string>(NotifyTypes.CreateBattle, (fightId) => {
                //获取队伍角色列表
//				RoleData currentRoleData = RoleInfoPanelCtrl.GetCurrentRoleData();
                RoleData currentRoleData = DbManager.Instance.GetHostRoleData();
                currentRoleData.MakeJsonToModel();
                if (currentRoleData == null)
                {
                    return;
                }
                if (currentRoleData.Injury == InjuryType.Moribund)
                {
                    AlertCtrl.Show("你已奄奄一息无法再战!");
                    return;
                }
                //获取战斗数据
//				FightData fightData = new FightData();
//				fightData.Id = fightId;
//				fightData.Type = FightType.Normal;
//				RoleData enemy0 = new RoleData();
//				enemy0.Id = "enemy0";
//				enemy0.Name = "赏金刺客";
//				enemy0.HalfBodyId = "enemy000001";
//				BookData book0 = new BookData();
//				book0.Id = "book20001";
//				book0.Name = "地痞撒泼";
//				book0.IconId = "200000";
//				SkillData skill0 = new SkillData();
//				skill0.Type = SkillType.MagicAttack;
//				skill0.Name = "背负投";
//				BuffData buff0 = new BuffData();
//				buff0.Type = BuffType.Vertigo;
////				buff0.Value = 8888;
////				buff0.FirstEffect = true;
//				buff0.RoundNumber = 3;
//				buff0.Rate = 30;
//				buff0.FirstEffect = true;
//				skill0.DeBuffDatas.Add(buff0);
//				SkillData skill1 = new SkillData();
//				skill1.Type = SkillType.PhysicsAttack;
//				skill1.Name = "抱摔";
//				SkillData skill2 = new SkillData();
//				skill2.Type = SkillType.PhysicsAttack;
//				skill2.Name = "撕咬";
//				book0.Skills.Add(skill0);
//				book0.Skills.Add(skill1);
//				book0.Skills.Add(skill2);
//				enemy0.Books.Add(book0);
//				enemy0.AttackSpeed = 2;
//				enemy0.HP = 10000;
//				enemy0.MaxHP = 10000;
//				WeaponData weapon5 = new WeaponData();
//				weapon5.Id = "weapon5";
//				weapon5.Id = "阔刃刀";
//				weapon5.Width = 360;
//				weapon5.Rates = new float[] { 1, 0.6f, 0.2f, 0.1f };
//				enemy0.Weapon = weapon5;
//				fightData.Enemys = new List<RoleData>() {
//					enemy0
//				};
                FightData fightData = JsonManager.GetInstance().GetMapping <FightData>("Fights", fightId);
                fightData.MakeJsonToModel();
                Messenger.Broadcast(NotifyTypes.HideRoleInfoPanel);
                Messenger.Broadcast <System.Action, System.Action>(NotifyTypes.PlayCameraVortex, () => {
                    BattleMainPanelCtrl.Show(currentRoleData, fightData);
                }, () => {
                    Messenger.Broadcast <bool>(NotifyTypes.CallRoleInfoPanelData, true);
                });
            });

            Messenger.AddListener <RoleData, string>(NotifyTypes.CreateTestBattle, (currentRoleData, fightId) => {
                FightData fightData = JsonManager.GetInstance().GetMapping <FightData>("Fights", fightId);
                fightData.MakeJsonToModel();
                BattleMainPanelCtrl.Show(currentRoleData, fightData);
            });

            Messenger.AddListener <bool, List <DropData>, FightData>(NotifyTypes.EndBattle, (win, drops, fightData) => {
                Messenger.Broadcast(NotifyTypes.HideRoleInfoPanel);
                Messenger.Broadcast <System.Action, System.Action>(NotifyTypes.PlayCameraVortex, () => {
                    //如果普通战斗失败则回之前到过的城镇去疗伤
                    if (fightData.Type == FightType.Normal && !win)
                    {
                        AlertCtrl.Show("江湖凶险, 稍事休息后再出发!", () => {
                            Messenger.Broadcast(NotifyTypes.BackToCity);
                        });
                    }
                    BattleMainPanelCtrl.Hide();
                }, () => {
                    //任务详情界面打开时不呼出角色信息板
                    if (TaskDetailInfoPanelCtrl.Ctrl == null)
                    {
                        Messenger.Broadcast <bool>(NotifyTypes.CallRoleInfoPanelData, false);
                    }
                    Messenger.Broadcast(NotifyTypes.PlayBgm);
                    if (drops.Count > 0)
                    {
                        Messenger.Broadcast <List <DropData> >(NotifyTypes.ShowDropsListPanel, drops);
                    }
                    if (fightData.Type == FightType.Task)
                    {
                        Messenger.Broadcast(NotifyTypes.ReloadTaslDetailInfoData);
                        if (win)
                        {
                            Messenger.Broadcast <string>(NotifyTypes.MakeFightWinedBtnDisable, fightData.Id);
                        }
                    }
                });
            });

            Messenger.AddListener <RoleData>(NotifyTypes.ChangeCurrentTeamRoleInBattle, (roleData) => {
                BattleMainPanelCtrl.ChangeCurrentTeamRole(roleData);
            });

            Messenger.AddListener <int>(NotifyTypes.ChangeCurrentTeamBookInBattle, (index) => {
                BattleMainPanelCtrl.ChangeCurrentTeamBook(index);
            });

            Messenger.AddListener <JArray>(NotifyTypes.SendFightResult, (data) => {
                DbManager.Instance.SendFightResult((bool)data[0], data[1].ToString(), (int)data[2]);
                JArray usedSkillIdData = (JArray)data[3];
                JArray d;
                for (int i = 0; i < usedSkillIdData.Count; i++)
                {
                    d = (JArray)usedSkillIdData[i];
                    DbManager.Instance.UpdateUsedTheSkillRecords(d[0].ToString(), (int)d[1]);
                }
                JArray plusIndexData = (JArray)data[4];
                for (int i = 0; i < plusIndexData.Count; i++)
                {
                    d = (JArray)plusIndexData[i];
                    DbManager.Instance.UpdateWeaponPowerPlusSuccessedRecords((int)d[0], (int)d[1]);
                }
            });

            Messenger.AddListener <bool, List <DropData>, FightData>(NotifyTypes.SendFightResultEcho, (win, drops, fightData) => {
                //加载动态事件列表
                Messenger.Broadcast <string>(NotifyTypes.GetActiveEventsInArea, UserModel.CurrentUserData.CurrentAreaSceneName);
                Messenger.Broadcast <bool, List <DropData>, FightData>(NotifyTypes.EndBattle, win, drops, fightData);
            });

            Messenger.AddListener(NotifyTypes.BackToCity, () => {
                string eventId = JsonManager.GetInstance().GetMapping <string>("AreaCityPosDatas", UserModel.CurrentUserData.CurrentCitySceneId);
                string[] fen   = eventId.Split(new char[] { '_' });
                if (fen.Length >= 3)
                {
                    string areaName = fen[0];
                    int x           = int.Parse(fen[1]);
                    int y           = int.Parse(fen[2]);
                    if (UserModel.CurrentUserData != null)
                    {
                        UserModel.CurrentUserData.PositionStatu        = UserPositionStatusType.InCity;
                        UserModel.CurrentUserData.CurrentAreaSceneName = areaName;
                        UserModel.CurrentUserData.CurrentAreaX         = x;
                        UserModel.CurrentUserData.CurrentAreaY         = y;
                        Messenger.Broadcast <System.Action <UserData> >(NotifyTypes.UpdateUserData, null);
                        Messenger.Broadcast <string>(NotifyTypes.GoToScene, areaName);
                    }
                }
            });

            Messenger.AddListener(NotifyTypes.BattleFaild, () => {
                BattleMainPanelCtrl.MakeFaild();
            });

            Messenger.AddListener <string>(NotifyTypes.MakePopRole, (dieRoleId) => {
                RoleInfoPanelCtrl.MakePopRole(dieRoleId);
            });
        }
Esempio n. 30
0
 /// <summary>
 /// 将索引映射成实体类
 /// </summary>
 public void MakeJsonToModel()
 {
     Item = JsonManager.GetInstance().GetMapping <ItemData>("ItemDatas", ResourceItemDataId);
     Num  = Num > Item.MaxNum ? Item.MaxNum : Num;
 }