Example #1
0
		private void AddSparePeg()
		{
			Point spot;
			LevelEntry[] entries;

			do {
				spot = new Point(mRandom.Next(20, 600), mRandom.Next(150, 500));
				entries = mLevel.GetObjectsIn(new RectangleF(spot.X - 10, spot.Y - 10, 20, 20));
			} while (entries.Length > 0);

			Circle peg = new Circle(mLevel);
			peg.X = spot.X;
			peg.Y = spot.Y;
			peg.PegInfo = new PegInfo(peg, true, false);
			mLevel.Entries.Add(peg);
		}
Example #2
0
		public void Execute()
		{
			int index = 0;
			float da = 360.0f / (float)mMaxNumberOfPegs;
			for (float a = mAngularOffset; a < 360 + mAngularOffset; a += da) {
				float angle = MathExt.ToRadians(a);

				Circle p = new Circle(Level);
				p.PegInfo = new PegInfo(p, true, false);
				p.X = X + ((float)Math.Cos(angle) * mRadiusX);
				p.Y = Y + ((float)Math.Sin(angle) * mRadiusY);

				Level.Entries.Add(p);

				index++;
				if (index == mNumberOfPegs)
					break;
			}

			Level.Entries.Remove(this);
		}
Example #3
0
		public override object Clone()
		{
			Circle newCircle = new Circle(Level);
			base.CloneTo(newCircle);
			newCircle.mRadius = mRadius;

			return newCircle;
		}
Example #4
0
		private void circleRibbonButton_Click(object sender, EventArgs e)
		{
			UnselectAllTools();
			btnCircle.Checked = true;

			Circle circle = new Circle(null);
			circle.Radius = 20.0f;
			mParent.SetEditorTool(new DrawEditorTool(circle, false));
		}
Example #5
0
		private void pegRibbonButton_Click(object sender, EventArgs e)
		{
			UnselectAllTools();
			btnPegTool.Checked = true;

			Circle circle = new Circle(null);
			circle.PegInfo = new PegInfo(circle, true, false);
			mParent.SetEditorTool(new DrawEditorTool(circle, true, 30, 30));
		}
Example #6
0
		private void linkSubMovementsRibbonButton_Click(object sender, EventArgs e)
		{
			List<int> links = new List<int>();
			foreach (LevelEntry le in LevelEditor.GetSelectedObjects()) {
				if (le.MovementInfo == null)
					continue;

				Movement m = le.MovementInfo.MovementInfo;
				while (m != null) {
					links.Add(m.MUID);
					m = m.MovementInfo;
				}
			}

			foreach (int lidx in links) {
				Circle lcircle = new Circle(LevelEditor.Level);
				lcircle.Collision = false;
				lcircle.Visible = false;
				lcircle.Radius = 10.0f;
				lcircle.MovementInfo = new Movement(LevelEditor.Level);
				lcircle.MovementInfo.MovementLinkIDX = lidx;

				lcircle.Y = -Level.DrawAdjustY - 50;

				LevelEditor.Level.Entries.Add(lcircle);
			}

			LevelEditor.UpdateRedraw();
		}