コード例 #1
0
        public override void MoveEnd()
        {
            base.MoveEnd();

            if (Disabled)
            {
                MainTipManager.AddTip(HSErrorTypes.GetDescript(HSErrorTypes.SceneWarpNeedActive), "Red");
                return;
            }

            int sceneLevel = ConfigData.GetSceneConfig(TargetMap).Level;

            if (sceneLevel > UserProfile.InfoBasic.Level)
            {
                MainTipManager.AddTip(string.Format(HSErrorTypes.GetDescript(HSErrorTypes.SceneLevelNeed), sceneLevel), "Red");
                return;
            }

            int lastMapId = UserProfile.InfoBasic.MapId;

            Scene.Instance.ChangeMap(TargetMap, true);
            UserProfile.InfoBasic.Position = Scene.Instance.GetWarpPosByMapId(lastMapId);

            Scene.Instance.OnEventFinish();
        }
コード例 #2
0
ファイル: InfoDungeon.cs プロジェクト: realeternia/FEWin
        public void AddDungeonItem(int itemId, int count)
        {
            if (DungeonId <= 0)
            {
                return;
            }

            DungeonItemConfig itemConfig = ConfigData.GetDungeonItemConfig(itemId);

            foreach (var pickItem in Items)
            {
                if (pickItem.Type == itemId)
                {
                    pickItem.Value += count;
                    UserProfile.InfoGismo.CheckDungeonItem();
                    MainTipManager.AddTip(string.Format("|获得副本道具-|Lime|{0}||x{1}(总计{2})", itemConfig.Name, count, pickItem.Value), "White");
                    return;
                }
            }
            Items.Add(new IntPair()
            {
                Type = itemId, Value = count
            });
            UserProfile.InfoGismo.CheckDungeonItem();
            MainTipManager.AddTip(string.Format("|获得副本道具-|Lime|{0}||x{1}(总计{2})", itemConfig.Name, count, count), "White");
        }
コード例 #3
0
        [FieldIndex(Index = 28)] public uint MoveBoostRound;                        //快速移动时长

        public void AddExp(int ex)
        {
            if (Level >= ExpTree.MaxLevel)
            {
                return;
            }

            Exp += ex;
            MainTipManager.AddTip(string.Format("|获得|Cyan|{0}||点经验值", ex), "White");
            AchieveBook.CheckByCheckType("exp");

            if (Exp >= ExpTree.GetNextRequired(Level))
            {
                int oldLevel = Level;
                while (CheckNewLevel()) //循环升级
                {
                    OnLevel(Level);
                }

                MainItem.SystemMenuManager.ResetIconState();
                MainForm.Instance.RefreshView();

                MainItem.PanelManager.ShowLevelInfo(oldLevel, UserProfile.InfoBasic.Level);
            }
        }
コード例 #4
0
 public void CheckSceneMove()
 {
     if (MoveBoostRound > 0)
     {
         MoveBoostRound--;
         MainTipManager.AddTip(string.Format("|场景移动范围|Cyan|{0}||,剩余|Cyan|{1}||回合", MoveBoost, MoveBoostRound), "White");
     }
 }
コード例 #5
0
ファイル: InfoGismo.cs プロジェクト: realeternia/FEWin
 public void AddGismo(int id)
 {
     if (!Gismos.ContainsKey(id))
     {
         Gismos.Add(id, true);
         MainTipManager.AddTip(string.Format("|获得成就|Gold|{0}", ConfigData.GetDungeonGismoConfig(id).Name), "White");
         UserProfile.InfoRecord.AddRecordById(RecordInfoConfig.Indexer.GismoGet, 1);
     }
 }
コード例 #6
0
 public void SetSceneMove(int move, int time)
 {
     if (MoveBoostRound == 0 || (MoveBoostRound > 0 && move >= MoveBoost))
     {
         MoveBoost      = (uint)move;
         MoveBoostRound = (uint)time;
         MainTipManager.AddTip(string.Format("|场景移动范围|Cyan|{0}||,剩余|Cyan|{1}||回合", move, time), "White");
     }
 }
コード例 #7
0
ファイル: InfoBag.cs プロジェクト: jayrulez/TOMClassic
 internal void AddResource(GameResourceType type, uint value)
 {
     Resource.Add(type, (int)value);
     if (type > 0)
     {
         MainTipManager.AddTip(string.Format("|获得|{0}|{1}||x{2}", HSTypes.I2ResourceColor((int)type), HSTypes.I2Resource((int)type), value), "White");
         AchieveBook.CheckByCheckType("resource");
     }
 }
コード例 #8
0
ファイル: InfoBag.cs プロジェクト: realeternia/FEWin
 public bool PayDiamond(int value)
 {
     if (Diamond < value)
     {
         return(false);
     }
     Diamond -= value;
     MainTipManager.AddTip(string.Format("|失去了|Cyan|{0}||钻石,账户剩余|Cyan|{1}||钻石", value, Diamond), "White");
     return(true);
 }
コード例 #9
0
ファイル: InfoBag.cs プロジェクト: jayrulez/TOMClassic
 public bool PayDiamond(int value)
 {
     if (Diamond < value)
     {
         MainTipManager.AddTip(HSErrorTypes.GetDescript(HSErrorTypes.BagNotEnoughDimond), "Red");
         return(false);
     }
     Diamond -= value;
     MainTipManager.AddTip(string.Format("|失去了|Cyan|{0}||钻石,账户剩余|Cyan|{1}||钻石", value, Diamond), "White");
     return(true);
 }
コード例 #10
0
ファイル: PopBuyProduct.cs プロジェクト: realeternia/FEWin
 private void button1_Click(object sender, EventArgs e)
 {
     if (UserProfile.InfoBag.PayDiamond(itemprice * count))
     {
         UserProfile.InfoBag.AddItem(itemid, count);
         Close();
         ParentPanel.SetBlacken(false);
     }
     else
     {
         MainTipManager.AddTip(HSErrors.GetDescript(ErrorConfig.Indexer.BagNotEnoughDimond), "Red");
     }
 }
コード例 #11
0
ファイル: InfoBag.cs プロジェクト: jayrulez/TOMClassic
        public void AddItem(int id, int num)
        {
            HItemConfig itemConfig = ConfigData.GetHItemConfig(id);

            MainTipManager.AddTip(string.Format("|获得物品-|{0}|{1}||x{2}", HSTypes.I2RareColor(itemConfig.Rare), itemConfig.Name, num), "White");

            int max = itemConfig.MaxPile;

            if (max <= 0)
            {
                return;
            }

            int count = num;

            for (int i = 0; i < BagCount; i++)
            {
                var pickItem = Items[i];
                if (pickItem.Type == id && pickItem.Value < max)
                {
                    if (pickItem.Value + count <= max)
                    {
                        pickItem.Value += count;
                        return;
                    }
                    count         -= max - pickItem.Value;
                    pickItem.Value = max;
                }
            }
            for (int i = 0; i < BagCount; i++)
            {
                var pickItem = Items[i];
                if (pickItem.Type == 0)
                {
                    if (count <= max)
                    {
                        pickItem.Type  = id;
                        pickItem.Value = count;
                        return;
                    }
                    pickItem.Type  = id;
                    count         -= max;
                    pickItem.Value = max;
                }
            }
        }
コード例 #12
0
ファイル: InfoBag.cs プロジェクト: realeternia/FEWin
        private void DeleteItemByPos(int pos, int num)
        {//num=0,移除所有
            IntPair cell       = Items[pos];
            var     itemConfig = ConfigData.GetHItemConfig(cell.Type);

            if (num != 0 && cell.Value > num)
            {
                cell.Value -= num;
                MainTipManager.AddTip(string.Format("|扣除物品-|{0}|{1}||x{2}", HSTypes.I2RareColor(itemConfig.Rare), itemConfig.Name, num), "White");
            }
            else
            {
                MainTipManager.AddTip(string.Format("|扣除物品-|{0}|{1}||x{2}", HSTypes.I2RareColor(itemConfig.Rare), itemConfig.Name, cell.Value), "White");
                cell.Value = 0;
                cell.Type  = 0;
            }
        }
コード例 #13
0
        public void AddEquip(int id, int minuteLast)
        {
            EquipConfig equipConfig = ConfigData.GetEquipConfig(id);

            MainTipManager.AddTip(string.Format("|获得装备-|{0}|{1}", HSTypes.I2QualityColor(equipConfig.Quality), equipConfig.Name), "White");

            for (int i = 0; i < GameConstants.EquipOffCount; i++)
            {
                if (Equipoff[i].BaseId == 0)
                {
                    Equipoff[i].BaseId     = id;
                    Equipoff[i].Dura       = equipConfig.Durable;
                    Equipoff[i].ExpireTime = minuteLast <= 0 ? 0 : TimeTool.GetNowUnixTime() + minuteLast * 60;
                    return;
                }
            }
        }
コード例 #14
0
ファイル: AchieveBook.cs プロジェクト: jayrulez/TOMClassic
        public static void CheckByCheckType(string ctype)
        {
            return; //todo 暂时关闭成就系统

            foreach (AchieveConfig ach in ConfigData.AchieveDict.Values)
            {
                if (ach.CheckType == ctype && !UserProfile.Profile.InfoAchieve.GetAchieve(ach.Id))
                {
                    if (UserProfile.Profile.GetAchieveState(ach.Id) >= ach.Condition.Value)
                    {
                        UserProfile.Profile.InfoAchieve.SetAchieve(ach.Id);
                        MainTipManager.AddTip(string.Format("|获得成就-|Gold|{0}", ach.Name), "White");
                        UserProfile.InfoBag.AddDiamond(ach.Money);
                    }
                }
            }
        }
コード例 #15
0
ファイル: InfoDungeon.cs プロジェクト: realeternia/FEWin
        public void RemoveDungeonItem(int itemId, int count)
        {
            if (DungeonId <= 0)
            {
                return;
            }

            DungeonItemConfig itemConfig = ConfigData.GetDungeonItemConfig(itemId);

            foreach (var pickItem in Items)
            {
                if (pickItem.Type == itemId)
                {
                    pickItem.Value = Math.Max(0, pickItem.Value - count);
                    MainTipManager.AddTip(string.Format("|扣除副本道具-|Lime|{0}||x{1}(剩余{2})", itemConfig.Name, count, pickItem.Value), "White");
                    return;
                }
            }
        }
コード例 #16
0
ファイル: InfoBag.cs プロジェクト: jayrulez/TOMClassic
        public void AddResource(int[] res)
        {
            Resource.Gold      += res[0];
            Resource.Lumber    += res[1];
            Resource.Stone     += res[2];
            Resource.Mercury   += res[3];
            Resource.Carbuncle += res[4];
            Resource.Sulfur    += res[5];
            Resource.Gem       += res[6];

            for (int i = 0; i < 7; i++)
            {
                if (res[i] > 0)
                {
                    MainTipManager.AddTip(string.Format("|获得|{0}|{1}||x{2}", HSTypes.I2ResourceColor(i), HSTypes.I2Resource(i), res[i]), "White");
                }
            }

            AchieveBook.CheckByCheckType("resource");
        }
コード例 #17
0
ファイル: InfoCard.cs プロジェクト: jayrulez/TOMClassic
        public void RemoveCardPiece(int id, bool returnResource)
        {
            DbDeckCard dc;

            if (Cards.TryGetValue(id, out dc))
            {
                if (dc.Exp == 0)
                {
                    return;
                }

                if (returnResource)
                {
                    var cardData = CardConfigManager.GetCardConfig(dc.BaseId);
                    MainTipManager.AddTip(string.Format("|分解卡片-|{0}|{1}", HSTypes.I2QualityColor(cardData.Quality), cardData.Name), "White");
                    int qual = CardConfigManager.GetCardConfig(dc.BaseId).Quality + 1;
                    UserProfile.Profile.InfoBag.AddResource(GameResourceType.Gem, GameResourceBook.OutGemCardDecompose(qual));
                }

                dc.Exp--;
            }
        }
コード例 #18
0
ファイル: InfoBag.cs プロジェクト: realeternia/FEWin
        public void DeleteItem(int id, int num)
        {
            int count = num;

            for (int i = 0; i < BagCount; i++)
            {
                var pickItem = Items[i];
                if (pickItem.Type == id)
                {
                    if (pickItem.Value > count)
                    {
                        pickItem.Value -= count;
                        break;
                    }
                    count         -= pickItem.Value;
                    pickItem.Type  = 0;
                    pickItem.Value = 0;
                }
            }

            var itemConfig = ConfigData.GetHItemConfig(id);

            MainTipManager.AddTip(string.Format("|扣除物品-|{0}|{1}||x{2}", HSTypes.I2RareColor(itemConfig.Rare), itemConfig.Name, num), "White");
        }
コード例 #19
0
ファイル: InfoBasic.cs プロジェクト: realeternia/FEWin
        public void AddExp(int ex)
        {
            if (Level >= ExpTree.MaxLevel)
            {
                return;
            }

            Exp += ex;
            MainTipManager.AddTip(string.Format("|获得|Cyan|{0}||点经验值", ex), "White");

            if (Exp >= ExpTree.GetNextRequired(Level))
            {
                int oldLevel = Level;
                while (CheckNewLevel()) //循环升级
                {
                    OnLevel(Level);
                }

                SystemMenuManager.ResetIconState();
                MainForm.Instance.RefreshView();
            }

            TalePlayer.C2SSender.UpdateLevelExp(0, Level, Exp);
        }
コード例 #20
0
ファイル: InfoCard.cs プロジェクト: jayrulez/TOMClassic
        /// <summary>
        /// 添加卡牌,外层都会检查cid的合法性,所以里面不用在判断了
        /// </summary>
        /// <param name="cid">卡牌id</param>
        public DbDeckCard AddCard(int cid)
        {
            DbDeckCard card     = new DbDeckCard(cid, 1, 0);
            var        cardData = CardConfigManager.GetCardConfig(cid);

            if (GetCardCount(cid) >= 1) //每张卡其实只能有一份
            {
                var myCard = GetDeckCardById(cid);
                myCard.AddExp(1); //多余的卡转化为经验值
                return(myCard);   //每种卡牌只能拥有1张
            }

            Cards.Add(card.BaseId, card);
            Newcards.Add(card.BaseId);
            if (Newcards.Count > 10)
            {
                Newcards.RemoveAt(0);
            }

            AchieveBook.CheckByCheckType("card");
            MainTipManager.AddTip(string.Format("|获得卡片-|{0}|{1}", HSTypes.I2QualityColor(cardData.Quality), cardData.Name), "White");

            return(card);
        }
コード例 #21
0
ファイル: InfoBag.cs プロジェクト: jayrulez/TOMClassic
 public void AddDiamond(int value)
 {
     Diamond += value;
     MainTipManager.AddTip(string.Format("|获得|Cyan|{0}||钻石", value), "White");
 }
コード例 #22
0
ファイル: InfoBag.cs プロジェクト: realeternia/FEWin
        public void AddItem(int id, int num)
        {
            HItemConfig itemConfig = ConfigData.GetHItemConfig(id);

            if (itemConfig.Id == 0)
            {
                return;
            }

            int max = itemConfig.MaxPile;

            if (max <= 0)
            {
                return;
            }

            int count = num;

            for (int i = 0; i < BagCount; i++)
            {
                var pickItem = Items[i];
                if (pickItem.Type == id && pickItem.Value < max)
                {
                    if (pickItem.Value + count <= max)
                    {
                        pickItem.Value += count;
                        count           = 0;
                        break;
                    }
                    else
                    {
                        count         -= max - pickItem.Value;
                        pickItem.Value = max;
                    }
                }
            }
            if (count > 0)
            {
                for (int i = 0; i < BagCount; i++)
                {
                    var pickItem = Items[i];
                    if (pickItem.Type == 0)
                    {
                        pickItem.Type = id;
                        if (count <= max)
                        {
                            pickItem.Value = count;
                            count          = 0;
                            break;
                        }
                        else
                        {
                            pickItem.Value = max;
                            count         -= max;
                        }
                    }
                }
            }

            if (num > count)
            {
                MainTipManager.AddTip(string.Format("|获得物品-|{0}|{1}||x{2}", HSTypes.I2RareColor(itemConfig.Rare), itemConfig.Name, num - count), "White");
                UserProfile.InfoRecord.AddRecordById(RecordInfoConfig.Indexer.ItemGet, 1);
            }
        }
コード例 #23
0
ファイル: InfoBag.cs プロジェクト: realeternia/FEWin
        internal void AddResource(GameResourceType type, uint value)
        {
            Resource.Add(type, value);

            MainTipManager.AddTip(string.Format("|获得|{0}|{1}||x{2}", HSTypes.I2ResourceColor((int)type), HSTypes.I2Resource((int)type), value), "White");
        }
コード例 #24
0
        public static void ParseCommand(string cmd)
        {
            string[] data = cmd.Split(' ');
            if (data.Length == 0)
            {
                return;
            }
            try
            {
                switch (data[0])
                {
                case "exp": if (data.Length == 2)
                    {
                        UserProfile.InfoBasic.AddExp(int.Parse(data[1]));
                    }
                    break;

                case "cad": if (data.Length == 2)
                    {
                        UserProfile.InfoCard.AddCard(int.Parse(data[1]));
                    }
                    break;

                case "atp": if (data.Length == 2)
                    {
                        UserProfile.InfoBasic.AttrPoint += int.Parse(data[1]);
                    }
                    break;

                case "mov": if (data.Length == 2)
                    {
                        UserProfile.InfoBasic.Position = 0;                              //如果是0,后面流程会随机一个位置
                    }
                    Scene.Instance.ChangeMap(int.Parse(data[1]), true); break;

                case "eqp": if (data.Length == 2)
                    {
                        UserProfile.InfoEquip.AddEquip(int.Parse(data[1]), 60);
                    }
                    break;

                case "itm": if (data.Length == 3)
                    {
                        UserProfile.InfoBag.AddItem(int.Parse(data[1]), int.Parse(data[2]));
                    }
                    break;

                case "emys": foreach (int peopleId in ConfigData.PeopleDict.Keys)
                    {
                        DbRivalState memRival = new DbRivalState(peopleId);
                        memRival.Avail = true;
                        UserProfile.InfoRival.Rivals[peopleId] = memRival;
                    }
                    break;

                case "gold": if (data.Length == 2)
                    {
                        GameResource res = new GameResource();
                        res.Gold = int.Parse(data[1]);
                        UserProfile.InfoBag.AddResource(res.ToArray());
                    }
                    break;

                case "res": if (data.Length == 2)
                    {
                        int v = int.Parse(data[1]);
                        UserProfile.InfoBag.AddResource(new int[] { 0, v, v, v, v, v, v });
                    }
                    break;

                case "dmd": if (data.Length == 2)
                    {
                        UserProfile.InfoBag.AddDiamond(int.Parse(data[1]));
                    }
                    break;

                case "acv": if (data.Length == 2)
                    {
                        UserProfile.Profile.InfoAchieve.SetAchieve(int.Parse(data[1]));
                    }
                    break;

                case "view": if (data.Length == 3)
                    {
                        PeopleBook.ViewMatch(int.Parse(data[1]), int.Parse(data[2]), "default", TileConfig.Indexer.DefaultTile);
                    }
                    break;

                case "fbat": if (data.Length == 3)
                    {
                        FastBattle.Instance.StartGame(int.Parse(data[1]), int.Parse(data[2]), "default", TileConfig.Indexer.DefaultTile);
                        MainTipManager.AddTip(string.Format("{0} {1}合", FastBattle.Instance.LeftWin ? "左胜" : "右胜", BattleManager.Instance.StatisticData.Round), "White");
                    }
                    break;

                case "cbat":
                    if (data.Length == 4)
                    {
                        var result = CardFastBattle.Instance.StartGame(int.Parse(data[1]), int.Parse(data[2]), int.Parse(data[3]));
                        MainTipManager.AddTip(string.Format("{0} {1}合", result, BattleManager.Instance.StatisticData.Round), "White");
                    }
                    break;

                case "scr": if (data.Length == 2)
                    {
                        switch (data[1])
                        {
                        case "Vs": GmScript.MonsterVsBatch(); break;
                        }
                    }
                    break;

                case "sceq":
                    NpcTalkForm sw = new NpcTalkForm();
                    sw.EventId       = int.Parse(data[1]);
                    sw.NeedBlackForm = true;
                    PanelManager.DealPanel(sw); break;

                case "cure": UserProfile.InfoBasic.MentalPoint = 100; UserProfile.InfoBasic.HealthPoint = 100;
                    UserProfile.InfoBasic.FoodPoint            = 100; break;

                case "bls": if (data.Length == 2)
                    {
                        BlessManager.AddBless(int.Parse(data[1]), 10);
                    }
                    break;

                case "qst": if (data.Length == 2)
                    {
                        UserProfile.InfoQuest.SetQuest(int.Parse(data[1]));
                    }
                    break;
                }
            }
            catch (FormatException) { }
            catch (IndexOutOfRangeException) { }
        }