Exemple #1
0
        public string explore(string areaid, string floor)
        {
            XmlDocument response = GameUtil.explore(areaid, floor);

            try
            {
                debugstring = response.SelectSingleNode("/response").InnerXml;
                if (response.SelectSingleNode("/response/body/explore/event_type").InnerText == "1")
                {
                    FairyInfo info = new FairyInfo();
                    this.ishavefairy = true;
                    info.FairyName   = response.SelectSingleNode("/response/body/explore/fairy/name").InnerText;
                    info.LV          = response.SelectSingleNode("/response/body/explore/fairy/lv").InnerText;
                    info.OwnerID     = nowinfo.playerid;
                    info.OwnerName   = nowinfo.PlayerName;
                    list.List.Add(info);
                    ishavefairy = true;
                    return("getfairy");
                }
                if (geterrorcode(response) == 8000)
                {
                    return("deckfull");
                }
                return("normal");
            }
            catch (System.NullReferenceException)
            {
                return(explore(areaid, floor));
            }
        }
Exemple #2
0
        private static void OnibiDraw(FairyInfo fairy, int color)
        {
            int koma = (fairy.Frame / 4) % 4;

            DDDraw.DrawBegin(GetOnibiPicture(color, koma), fairy.Enemy.X, fairy.Enemy.Y);
            DDDraw.DrawZoom(2.0);
            DDDraw.DrawEnd();

            fairy.Enemy.Crash = DDCrashUtils.Circle(new D2Point(fairy.Enemy.X, fairy.Enemy.Y), 22.0);
        }
Exemple #3
0
        private static void BigFairyDraw(FairyInfo fairy, int color)
        {
            if (fairy.Frame == 0)             // init
            {
                fairy.LastX = fairy.Enemy.X;
            }
            double xDiff = fairy.Enemy.X - fairy.LastX;

            fairy.LastX = fairy.Enemy.X;

            if (fairy.Frame % 7 == 0)
            {
                if (Math.Abs(xDiff) < SCommon.MICRO)                 // ? 左右に動いてない。
                {
                    DDUtils.CountDown(ref fairy.XMoveCount);
                }
                else if (xDiff < 0.0)                 // ? 左に動いてる。
                {
                    fairy.XMoveCount--;
                }
                else                 // ? 右に動いてる。
                {
                    fairy.XMoveCount++;
                }
                DDUtils.ToRange(ref fairy.XMoveCount, -2, 2);
            }
            int mode = DDUtils.Sign(fairy.XMoveCount);
            int koma;

            if (mode != 0)
            {
                koma = Math.Abs(fairy.XMoveCount) - 1;
            }
            else
            {
                koma = (fairy.Frame / 7) % 3;
            }

            if (1 <= fairy.Enemy.HP && fairy.Enemy.TransFrame == 0)             // ? 無敵ではない。
            {
                DDUtils.Approach(ref fairy.UntransRate, 0.5, 0.92);
            }

            DDDraw.SetAlpha(fairy.UntransRate);
            DDDraw.DrawBegin(Ground.I.Picture2.D_MAHOJIN_HAJIKE_00[5], fairy.Enemy.X, fairy.Enemy.Y);
            DDDraw.DrawRotate(fairy.Frame / 20.0);
            DDDraw.DrawZoom(0.4);
            DDDraw.DrawEnd();
            DDDraw.Reset();

            DDDraw.DrawCenter(GetBigFairyPicture(color, mode, koma), fairy.Enemy.X, fairy.Enemy.Y);

            fairy.Enemy.Crash = DDCrashUtils.Circle(new D2Point(fairy.Enemy.X, fairy.Enemy.Y), 30.0);
        }
Exemple #4
0
        /// <summary>
        /// 以下の敵を描画する。
        /// -- 小フェアリー
        /// -- 大フェアリー
        /// -- 鬼火
        /// </summary>
        /// <param name="fairy">ステータス</param>
        /// <returns>Enemy.E_Draw の戻り値</returns>
        public static bool FairyDraw(FairyInfo fairy)
        {
            if (fairy.Enemy == null)
            {
                throw new DDError();
            }
            if (fairy.Kind < 0 || FAIRY_KIND_NUM <= fairy.Kind)
            {
                throw new DDError();
            }

            FairyDraw_Main(fairy, fairy.Kind);

            fairy.Frame++;

            return(!IsEvacuated(fairy.Enemy));
        }
Exemple #5
0
        private static void FairyDraw_Main(FairyInfo fairy, int kind)
        {
            if (kind < LITTLE_FAIRY_COLOR_NUM)
            {
                LittleFairyDraw(fairy, kind);
                return;
            }
            kind -= LITTLE_FAIRY_COLOR_NUM;

            if (kind < BIG_FAIRY_COLOR_NUM)
            {
                BigFairyDraw(fairy, kind);
                return;
            }
            kind -= BIG_FAIRY_COLOR_NUM;
            OnibiDraw(fairy, kind);
        }
Exemple #6
0
        public FairyList getFairyInfo()
        {
            XmlDocument response = GameUtil.getfairylist();

            try
            {
                XmlNodeList nodelist = response.SelectNodes(
                    "/response/body/fairy_select/fairy_event");
                int count = nodelist.Count;
                debugstring = nodelist.Item(0).SelectSingleNode("user/id").InnerText;
                if (fariyinit == true)
                {
                    int count2 = list.List.Count;
                    for (int i = 0; i < count; i++)
                    {
                        bool issame = false;
                        for (int j = 0; j < count2; j++)
                        {
                            if (list.List[j].sid == nodelist.Item(i).SelectSingleNode("fairy/serial_id").InnerText&&
                                list.List[j].LV == nodelist.Item(i).SelectSingleNode("fairy/lv").InnerText)
                            {
                                if (nodelist.Item(i).SelectSingleNode("put_down").InnerText == "1")
                                {
                                    list.List[j].IsAlive = true;
                                }
                                else
                                {
                                    list.List[j].IsAlive = false;
                                }
                                issame = true;
                                break;
                            }
                        }
                        if (issame == false)
                        {
                            FairyInfo info = new FairyInfo();
                            info.OwnerName = nodelist.Item(i).SelectSingleNode("user/name").InnerText;
                            info.OwnerID   = nodelist.Item(i).SelectSingleNode("user/id").InnerText;
                            info.FairyName = nodelist.Item(i).SelectSingleNode("fairy/name").InnerText;
                            info.LV        = nodelist.Item(i).SelectSingleNode("fairy/lv").InnerText;
                            info.sid       = nodelist.Item(i).SelectSingleNode("fairy/serial_id").InnerText;
                            info.IsAttack  = false;
                            if (nodelist.Item(i).SelectSingleNode("put_down").InnerText == "1")
                            {
                                info.IsAlive = true;
                            }
                            else
                            {
                                info.IsAlive = false;
                            }
                            debugstring = nodelist.Item(i).SelectSingleNode("fairy/serial_id").InnerText;
                            list.List.Add(info);
                        }
                    }
                }

                if (fariyinit == false)
                {
                    for (int i = 0; i < count; i++)
                    {
                        FairyInfo info = new FairyInfo();
                        info.OwnerName = nodelist.Item(i).SelectSingleNode("user/name").InnerText;
                        info.OwnerID   = nodelist.Item(i).SelectSingleNode("user/id").InnerText;
                        info.FairyName = nodelist.Item(i).SelectSingleNode("fairy/name").InnerText;
                        info.LV        = nodelist.Item(i).SelectSingleNode("fairy/lv").InnerText;
                        info.sid       = nodelist.Item(i).SelectSingleNode("fairy/serial_id").InnerText;
                        info.IsAttack  = false;
                        if (nodelist.Item(i).SelectSingleNode("put_down").InnerText == "1")
                        {
                            info.IsAlive = true;
                        }
                        else
                        {
                            info.IsAlive = false;
                        }
                        debugstring = nodelist.Item(i).SelectSingleNode("fairy/serial_id").InnerText;
                        list.List.Add(info);
                    }
                    fariyinit = true;
                }
                return(list);
            }
            catch (System.NullReferenceException)
            {
                int code = geterrorcode(response);
                return(getFairyInfo());
            }
        }