void EditCatchType() { if (typeSigCreator == null) { throw new InvalidOperationException(); } var newType = typeSigCreator.Create(typeSigCreatorOptions, CatchType.ToTypeSig(), out bool canceled); if (canceled) { return; } CatchType = newType.ToTypeDefOrRef(); }
protected override void LLWrite(ICodeWriter writer, object o) { writer.BeginNewLine(true); writer.Write("catch ", false); if ((object)CatchType != null) { writer.Write("(", false); CatchType.WriteAll(writer); if ((object)Name != null) { SimpleElememt.Spacer.WriteAll(writer); Name.WriteAll(writer); } writer.Write(")", false); } writer.EndLine(); Body.WriteAll(writer); writer.EndLine(); }
//决定接球动画类型 public void SetCatchMotionByPasser(Player passer, uint passSkillValue) { Dictionary <string, uint> data = passer.m_attrData.attrs; if (data == null) { Debug.LogError("Can not find data."); return; } Debugger.Instance.m_steamer.message = "Pass ball."; IM.Number fDistance = GameUtils.HorizonalDistance(_player.position, passer.position); if (fDistance < new IM.Number(10)) { catchType = CatchType.eChestCatch; Debugger.Instance.m_steamer.message = " In distance 10m."; } else { //TODO-- //IM.Number fPassRate = new IM.Number(0,700) + (data["pass"] + passSkillValue) * 0.0012f - (fDistance - 10.0f) * 0.03f; IM.Number fPassRate = new IM.Number(0, 700) + (data["pass"] + passSkillValue) * new IM.Number(0, 1) - (fDistance - new IM.Number(10)) * new IM.Number(0, 30); IM.Number fRandom = IM.Random.value; Debugger.Instance.m_steamer.message = "Pass ball. Pass rate: " + fPassRate + ". Random value: " + fRandom; if (fRandom < fPassRate) { catchType = CatchType.eRightCatch; } else { catchType = CatchType.eMissCatch; } } Debugger.Instance.m_steamer.message += "Catch Type: " + catchType; }
private static IEnumerable <CatchHitObject> CreateObjectExtra(Beatmap beatmap, Slider slider, IEnumerable <double> times, string[] objectCode, CatchType type) { foreach (var time in times) { objectCode[0] = Math.Round(slider.GetPathPosition(time).X) .ToString(CultureInfo.InvariantCulture); objectCode[2] = time.ToString(CultureInfo.InvariantCulture); var line = string.Join(",", objectCode); yield return(new CatchHitObject(line.Split(','), beatmap, type)); } }
public CatchHelper(Player player) { _player = player; catchType = CatchType.eChestCatch; }
public CatchHitObject(string[] anArgs, Beatmap beatmap, CatchType type) : base(anArgs, beatmap) { X = Position.X; CatchType = type; }
get => this.GetOptional(CatchType, Type.Parse);