Ejemplo n.º 1
0
        void EditCatchType()
        {
            if (typeSigCreator == null)
            {
                throw new InvalidOperationException();
            }

            var newType = typeSigCreator.Create(typeSigCreatorOptions, CatchType.ToTypeSig(), out bool canceled);

            if (canceled)
            {
                return;
            }

            CatchType = newType.ToTypeDefOrRef();
        }
Ejemplo n.º 2
0
 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();
 }
Ejemplo n.º 3
0
    //决定接球动画类型
    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;
    }
Ejemplo n.º 4
0
 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));
     }
 }
Ejemplo n.º 5
0
 public CatchHelper(Player player)
 {
     _player   = player;
     catchType = CatchType.eChestCatch;
 }
Ejemplo n.º 6
0
 public CatchHitObject(string[] anArgs, Beatmap beatmap, CatchType type) : base(anArgs, beatmap)
 {
     X         = Position.X;
     CatchType = type;
 }
Ejemplo n.º 7
0
 get => this.GetOptional(CatchType, Type.Parse);