internal ZhouyiTrigram(int index, string name, string nature, YinYang yinYang, FiveElement fiveElement) { this.Index = index; this.Name = name; this.Nature = nature; this.YinYang = yinYang; this.FiveElement = fiveElement; }
public Monster(string name, string code, int group, int genre, FiveElement element, ushort strb, ushort agl, ClLevel level, string[][] eaoccurs, int[][] eaprops, bool[][] ealocks, bool[][] eaonces, bool[][] eaterminis, bool[][] eahinds, string spis) { this.Name = name; this.Code = code; this.Group = Math.Abs(group); this.Genre = genre; this.IsEx = (group < 0); this.Element = element; this.Level = level; this.STRb = strb; this.STR = this.STRb; this.AGLb = agl; this.AGL = this.AGLb; this.EAOccurs = eaoccurs; this.EAProperties = eaprops; this.EALocks = ealocks; this.EAOnces = eaonces; this.EAIsTermini = eaterminis; this.EAHinds = eahinds; this.Padrone = 0; ParseSpi(spis); ROM = new Utils.Diva(); RFM = new Utils.Diva(); RAM = new Utils.Diva(); TeamBursted = false; }
protected new void Harm(Player src, IEnumerable<Player> invs, IEnumerable<int> ns, FiveElement five = FiveElement.A, long mask = 0) { base.Harm(src, invs, ns, five, HPEvoMask.FROM_SK.Set(mask)); }
protected new void Harm(Player src, Player py, int n, FiveElement five = FiveElement.A, long mask = 0) { base.Harm(src, py, n, five, HPEvoMask.FROM_SK.Set(mask)); }
protected new void Cure(Player src, IEnumerable<Player> invs, int n, FiveElement five = FiveElement.A, long mask = 0) { base.Cure(src, invs, n, five, HPEvoMask.FROM_SK.Set(mask)); }
public HpIssueSemaphore(ushort who, bool isLove, FiveElement? element, int delta, int hp) { Who = who; IsLove = isLove; Element = element ?? FiveElement.A; Delta = delta; HP = hp; }
public Cure(ushort who, int source, FiveElement elem, int n, long mask) { Who = who; Element = elem; N = n; Source = source; Mask = mask; }
public Harm(ushort who, int source, FiveElement elem, int n, long mask) { Who = who; Element = elem; N = n; Source = source; if (elem == FiveElement.YINN) mask |= ((long)HPEvoMask.TUX_INAVO | (long)HPEvoMask.DECR_INVAO | (long)HPEvoMask.CHAIN_INVAO); else if (elem == FiveElement.SOLARIS) mask |= ((long)HPEvoMask.TUX_INAVO | (long)HPEvoMask.DECR_INVAO | (long)HPEvoMask.IMMUNE_INVAO); Mask = mask; }
private void Harm(Player py, int n, FiveElement element = FiveElement.A, long mask = 0) { Harm(null, py, n, element, HPEvoMask.FROM_NMB.Set(mask)); }
private void Cure(IEnumerable<Player> pys, int n, FiveElement element = FiveElement.A, long mask = 0) { Cure(null, pys, n, element, HPEvoMask.FROM_NMB.Set(mask)); }
private bool JNH16SeriesValid(Player player, int type, string fuse, string skillName, FiveElement elem, FiveElement adv, FiveElement disadv) { if (type == 0) { return Artiad.JoinPetEffects.Parse(fuse).List.Any(p => p.Pets.Any(q => XI.LibTuple.ML.Decode(q) != null && XI.LibTuple.ML.Decode(q).Element == elem)); } else if (type == 1) { return Artiad.CollapsePetEffects.Parse(fuse).List.Any(p => p.Pets.Any(q => XI.LibTuple.ML.Decode(q) != null && XI.LibTuple.ML.Decode(q).Element == elem)); } else if (type == 2 || type == 3) { int thisEle = elem.Elem2Index(); int advEle = adv.Elem2Index(); return IsMathISOS(skillName, player, fuse) && XI.Board.Garden.Values. Any(p => p.IsAlive && (p.Pets[thisEle] != 0 || p.Pets[advEle] != 0)); } else if (type == 4 || (type == 5 && XI.Board.IsMonsterDebut)) { Monster fieldMon = XI.LibTuple.ML.Decode(XI.Board.Monster1); return fieldMon != null && fieldMon.Element == disadv; } else if (type == 6) { Artiad.ObtainPet opt = Artiad.ObtainPet.Parse(fuse); return opt.Pets.Any(p => XI.LibTuple.ML.Decode(p).Element == adv); } else if (type == 7) { Artiad.LosePet lpt = Artiad.LosePet.Parse(fuse); return lpt.Pets.Any(p => XI.LibTuple.ML.Decode(p).Element == adv); } else return false; }
private void JNH16SeriesAction(Player player, int type, string fuse, string skillName, FiveElement elem, FiveElement adv, FiveElement disadv) { if (type == 0) { Artiad.JoinPetEffects.Parse(fuse).List.ForEach(p => { int cnt = p.Pets.Count(q => XI.LibTuple.ML.Decode(q) != null && XI.LibTuple.ML.Decode(q).Element == elem); if (cnt > 0) { XI.RaiseGMessage("G0IA," + p.Owner + ",0," + cnt); XI.RaiseGMessage("G0IX," + p.Owner + ",0," + cnt); } }); } else if (type == 1) { Artiad.CollapsePetEffects.Parse(fuse).List.ForEach(p => { int cnt = p.Pets.Count(q => XI.LibTuple.ML.Decode(q) != null && XI.LibTuple.ML.Decode(q).Element == elem); if (cnt > 0) { XI.RaiseGMessage("G0OA," + p.Owner + ",0," + cnt); XI.RaiseGMessage("G0OX," + p.Owner + ",0," + cnt); } }); } else if (type == 2) { int thisEle = elem.Elem2Index(); int advEle = adv.Elem2Index(); List<ushort> actionPets = new List<ushort>(); foreach (Player py in XI.Board.Garden.Values.Where(p => p.IsAlive && !p.PetDisabled)) { if (py.Pets[thisEle] != 0 && !XI.Board.NotActionPets.Contains(py.Pets[thisEle])) { XI.RaiseGMessage("G0IA," + py.Uid + ",0,1"); XI.RaiseGMessage("G0IX," + py.Uid + ",0,1"); } if (py.Pets[advEle] != 0) actionPets.Add(py.Pets[advEle]); } if (actionPets.Count > 0) XI.RaiseGMessage(new Artiad.DisableItPetEffect() { Its = actionPets.ToArray() }.ToMessage()); } else if (type == 3) { int thisEle = elem.Elem2Index(); int advEle = adv.Elem2Index(); List<ushort> actionPets = new List<ushort>(); foreach (Player py in XI.Board.Garden.Values.Where(p => p.IsAlive && !p.PetDisabled)) { if (py.Pets[thisEle] != 0 && !XI.Board.NotActionPets.Contains(py.Pets[thisEle])) { XI.RaiseGMessage("G0OA," + py.Uid + ",0,1"); XI.RaiseGMessage("G0OX," + py.Uid + ",0,1"); } if (py.Pets[advEle] != 0) actionPets.Add(py.Pets[advEle]); } if (actionPets.Count > 0) XI.RaiseGMessage(new Artiad.EnableItPetEffect() { Its = actionPets.ToArray() }.ToMessage()); } else if (type == 4) XI.Board.IsMonsterDebut = true; else if (type == 5) XI.RaiseGMessage("G0IW," + XI.Board.Monster1 + ",1"); else if (type == 6) { Artiad.ObtainPet opt = Artiad.ObtainPet.Parse(fuse); opt.Pets.Where(p => XI.LibTuple.ML.Decode(p).Element == adv) .ToList().ForEach(p => XI.Board.NotActionPets.Add(p)); } else if (type == 7) { Artiad.LosePet lpt = Artiad.LosePet.Parse(fuse); lpt.Pets.Where(p => XI.LibTuple.ML.Decode(p).Element == adv) .ToList().ForEach(p => XI.Board.NotActionPets.Add(p)); } }
protected void Harm(Player src, IEnumerable<Player> invs, IEnumerable<int> ns, FiveElement five = FiveElement.A, long mask = 0) { if (invs.Any()) { if (src != null) TargetPlayer(src.Uid, invs.Select(p => p.Uid)); List<Player> linvs = invs.ToList(); List<int> lns = ns.ToList(); int sz = linvs.Count; XI.RaiseGMessage(Artiad.Harm.ToMessage(Enumerable.Range(0, sz).Select(p => new Artiad.Harm(linvs[p].Uid, src == null ? 0 : src.Uid, five, lns[p], mask)))); } }
protected void Harm(Player src, IEnumerable<Player> invs, int n, FiveElement five = FiveElement.A, long mask = 0) { if (invs.Any()) { if (src != null) TargetPlayer(src.Uid, invs.Select(p => p.Uid)); XI.RaiseGMessage(Artiad.Harm.ToMessage(invs.Select(p => new Artiad.Harm(p.Uid, src == null ? 0 : src.Uid, five, n, mask)))); } }
protected void Harm(Player src, Player py, int n, FiveElement five = FiveElement.A, long mask = 0) { if (src != null) TargetPlayer(src.Uid, py.Uid); XI.RaiseGMessage(Artiad.Harm.ToMessage( new Artiad.Harm(py.Uid, src == null ? 0 : src.Uid, five, n, mask))); }
//判斷動作播放指導聲音 private void FailMessage(float [] res) { int TensNum = 0, DigitsNum; if (failSecond % 150 == 0) { LeftPositiveElement.Stop(); RightPositiveElement.Stop(); LeftNegativeElement.Stop(); RightNegativeElement.Stop(); GoodElement.Stop(); OneElement.Stop(); TwoElement.Stop(); ThreeElement.Stop(); FourElement.Stop(); FiveElement.Stop(); SixElement.Stop(); SevenElement.Stop(); EightElement.Stop(); NineElement.Stop(); TenElement.Stop(); ElevenElement.Stop(); TwelveElement.Stop(); ThirteenElement.Stop(); FourteenElement.Stop(); FifteenElement.Stop(); SixteenElement.Stop(); SeventeenElement.Stop(); EighteenElement.Stop(); NineteenElement.Stop(); CMoneElement.Stop(); CMtwoElement.Stop(); CMthreeElement.Stop(); Console.WriteLine(res[1]); if (res[1] < 0) { res[1] = -res[1]; } res[1] = Convert.ToInt32(res[1] * 83 / 0.6); TensNum = Convert.ToInt32(res[1] / 10); DigitsNum = Convert.ToInt32(res[1] % 10); totaldifferece += res[1]; Console.WriteLine(TensNum + "/n" + DigitsNum); if (res[0] == 1) { wrongnumber++; LeftPositiveElement.Play(); } else if (res[0] == 2) { wrongnumber++; LeftNegativeElement.Play(); } else if (res[0] == 3) { wrongnumber++; RightPositiveElement.Play(); } else if (res[0] == 4) { wrongnumber++; RightNegativeElement.Play(); } //計算與標準動作差距 if (TensNum == 1) { TenElement.Play(); } else if (TensNum == 2) { TwoElement.Play(); } else if (TensNum == 3) { ThreeElement.Play(); } else if (TensNum == 4) { FourElement.Play(); } else if (TensNum == 5) { FiveElement.Play(); } else if (TensNum == 6) { SixElement.Play(); } else if (TensNum == 7) { SevenElement.Play(); } else if (TensNum == 8) { EightElement.Play(); } else if (TensNum == 9) { NineElement.Play(); } if (DigitsNum == 1) { ElevenElement.Play(); } else if (DigitsNum == 2) { TwelveElement.Play(); } else if (DigitsNum == 3) { ThirteenElement.Play(); } else if (DigitsNum == 4) { FourteenElement.Play(); } else if (DigitsNum == 5) { FifteenElement.Play(); } else if (DigitsNum == 6) { SixteenElement.Play(); } else if (DigitsNum == 7) { SeventeenElement.Play(); } else if (DigitsNum == 8) { EighteenElement.Play(); } else if (DigitsNum == 9) { NineteenElement.Play(); } if (TensNum == 0) { CMoneElement.Play(); } else if (TensNum >= 1) { if (DigitsNum == 0) { CMtwoElement.Play(); } else { CMthreeElement.Play(); } } } }