public override void RenderForeground() { for (int i = 0; i < battle.rolls.Length; i++) { if (battle.locks[i]) { RB.DrawSprite("Lock", lockPositions[i] - new Vector2i(6, 6)); //RB.Print(new Rect2i(lockPositions[i] - new Vector2i(16, 8), new Vector2i(32, 16)), Color.black, RB.ALIGN_H_CENTER | RB.ALIGN_V_CENTER, "Locked"); } } for (int i = 0; i < battle.rollsLeft; i++) { RB.DrawEllipseFill(new Vector2i(size.x / 5 - 10 + i * 10, size.y / 2 + 44), new Vector2i(4, 4), Color.white); RB.DrawEllipse(new Vector2i(size.x / 5 - 10 + i * 10, size.y / 2 + 44), new Vector2i(4, 4), Color.black); } if (infoPane.GetOpenTabIndex() == 1) { ElementDisplay[] displays = viewedSpell.GetElementDisplays(battle.BuildContext()); for (int i = 0; i < displays.Length; i++) { displays[i].Render(size.width / 2 + 5 + i * 18, size.height - 50); } } if (renderTargeting) { if (targetPawn != null) { RB.AlphaSet(96); RB.DrawRectFill(new Rect2i(0, 0, size), Color.black); RB.AlphaSet(255); pawnCards[targetPawn].Render(); RB.DrawRect(targetRect, Color.yellow); RB.DrawPixel(targetPoint - new Vector2i(1, 0), Color.white); //RB.DrawRect(targetRect.Offset(new Vector2i(0, 0)).Expand(1), Color.black); originButton.Render(); } RB.DrawPixel(originPoint + new Vector2i(1, 0), Color.white); //RB.DrawRect(new Rect2i(originButton.pos, originButton.size).Expand(2), Color.black); RB.DrawLine(originPoint + new Vector2i(0, 1), targetPoint + new Vector2i(0, 1), Color.yellow); RB.DrawLine(originPoint, targetPoint, Color.white); RB.DrawLine(originPoint - new Vector2i(0, 1), targetPoint - new Vector2i(0, 1), Color.yellow); } }