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)); } }
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); }
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); }
/// <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)); }
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); }
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()); } }