GradientDrawable CreateBackgroundDrawable(CornerSide setCornerSide, Android.Graphics.Color backgroundColor, float cornerRadius) { var gDrawable = new GradientDrawable(); float[] corners; //Set X and Y for each corner //The corners are ordered top-left, top-right, bottom-right, bottom-left switch (setCornerSide) { case CornerSide.LeftSide: corners = new float[]{ cornerRadius, cornerRadius, DefaultCorner, DefaultCorner, DefaultCorner, DefaultCorner, cornerRadius, cornerRadius }; break; case CornerSide.RightSide: corners = new float[]{ DefaultCorner, DefaultCorner, cornerRadius, cornerRadius, cornerRadius, cornerRadius, DefaultCorner, DefaultCorner }; break; default : corners = new float[]{ DefaultCorner, DefaultCorner, DefaultCorner, DefaultCorner, DefaultCorner, DefaultCorner, DefaultCorner, DefaultCorner }; break; } gDrawable.SetCornerRadii(corners); gDrawable.SetColor(backgroundColor.ToArgb()); return gDrawable; }
protected override void OnElementChanged(ElementChangedEventArgs<Picker> e) { base.OnElementChanged(e); var newPicker = (CustomPicker)e.NewElement; _cornerRadius = newPicker.CornerRadius; _cornerSide = newPicker.CornerSide; Control.TextColor = newPicker.TextColor.ToUIColor(); Control.Text = newPicker.Placeholder; Control.BorderStyle = UITextBorderStyle.None; }
public static int GetLegalMan(CornerSide corner) { int legalMan = 0; switch (corner) { case CornerSide.Blue: for (int i = 0; i < 4; i++) { Player pl = PlayerMan.inst.GetPlObj(i); //Ignore if this spot is empty. if (!pl) { continue; } if (pl.hasRight) { legalMan = pl.PlIdx; break; } } break; case CornerSide.Red: { for (int i = 4; i < 8; i++) { Player pl = PlayerMan.inst.GetPlObj(i); //Ignore if this spot is empty. if (!pl) { continue; } if (pl.hasRight) { legalMan = pl.PlIdx; break; } } break; } } return(legalMan); }
public static void UpdateTeam(CornerSide loserSide, bool isRingOut) { int membersLeft; int nextPlayer = -1; String teamName; //Announcer.inst.PlayGong_Eliminated(); if (loserSide == CornerSide.Blue) { wins[1]++; pointsRemaining[0]--; membersLeft = pointsRemaining[0]; if (blueOrderQueue.Count != 0) { nextPlayer = blueOrderQueue.Dequeue(); } else { L.D("Blue Order Queue is empty"); } teamName = MoreMatchTypes_Form.ExEliminationData.TeamNames[0]; } else { wins[0]++; pointsRemaining[1]--; membersLeft = pointsRemaining[1]; if (redOrderQueue.Count != 0) { nextPlayer = redOrderQueue.Dequeue(); } else { L.D("Red Order Queue is empty"); } teamName = MoreMatchTypes_Form.ExEliminationData.TeamNames[1]; } ActivateMember(nextPlayer, loserSide); }
private void CreateRoundCornerConvex(Square square, CornerSide cornerSide, float radius, int steps, int configuration) { List <Node> nodes = new List <Node> (); Vector3 position = Vector3.one; Node targetNode = null; if (cornerSide == CornerSide.TopLeft) { position = square.BottomRight.GetPosition(); targetNode = square.BottomRight; } if (cornerSide == CornerSide.TopRight) { position = square.BottomLeft.GetPosition(); targetNode = square.BottomLeft; } if (cornerSide == CornerSide.BottomRight) { position = square.TopLeft.GetPosition(); targetNode = square.TopLeft; } if (cornerSide == CornerSide.BottomLeft) { position = square.TopRight.GetPosition(); targetNode = square.TopRight; } nodes.Add(targetNode); List <Vector3> arcVertices = GetArcVertices(position, radius, steps, cornerSide); arcVertices.Reverse(); for (int i = 0; i < arcVertices.Count; i++) { nodes.Add(new Node(arcVertices [i])); } TriangulateMesh(square, configuration, nodes.ToArray()); }
private List <Vector3> GetArcVertices(Vector3 position, float radius, int steps, CornerSide cornerSide) { List <Vector3> arcVertices = new List <Vector3> (); float angleFrom = 0; float angleTo = 0; if (cornerSide == CornerSide.TopLeft) { angleFrom = Mathf.PI / 2.0f; angleTo = Mathf.PI; } if (cornerSide == CornerSide.TopRight) { angleFrom = 0; angleTo = Mathf.PI / 2.0f; } if (cornerSide == CornerSide.BottomRight) { angleFrom = (3.0f * Mathf.PI) / 2.0f; angleTo = Mathf.PI * 2.0f; } if (cornerSide == CornerSide.BottomLeft) { angleFrom = Mathf.PI; angleTo = (3.0f * Mathf.PI) / 2.0f; } float angleStep = Mathf.Abs(angleFrom - angleTo) / (float)steps; for (int i = 0; i <= steps; i++) { float x = position.x + radius * Mathf.Cos(angleFrom + i * angleStep); float y = position.y + radius * Mathf.Sin(angleFrom + i * angleStep); Vector3 p = new Vector3(x, y, 0); arcVertices.Add(p); } return(arcVertices); }
public static void ActivateMember(int playerIndex, CornerSide loserSide) { L.D("Activating player at index " + playerIndex + " for the side: " + loserSide); if (playerIndex == -1) { return; } Player plObj = PlayerMan.inst.GetPlObj(playerIndex); //Ensure that edits immediately enter a ready state. if (plObj.State != PlStateEnum.Stand && plObj.State != PlStateEnum.Performance && plObj.Zone == ZoneEnum.OutOfRing) { plObj.ChangeState(PlStateEnum.Stand); } plObj.hasRight = true; plObj.isSecond = false; plObj.isSleep = false; //Ensure that player comes in fresh plObj.SetSP(65535f); plObj.SetHP(65535f); plObj.SetBP(65535f); //Determine how they enter the ring plObj.isLose = false; plObj.SetPlayerController(PlayerControllerKind.AI); plObj.Start_ForceControl(global::ForceCtrlEnum.GoBackToRing); //Determine if this is a player controlled team MenuPadKind controller = MenuPadKind.COM; if (loserSide == CornerSide.Blue) { if (MoreMatchTypes_Form.ExEliminationData.ControlBlue) { controller = MenuPadKind.Pad1; } else { controller = MenuPadKind.COM; } } else { //Ensure that we cover scenarios for two human players if (MoreMatchTypes_Form.ExEliminationData.ControlBlue && MoreMatchTypes_Form.ExEliminationData.ControlRed) { controller = MenuPadKind.Pad2; } else if (MoreMatchTypes_Form.ExEliminationData.ControlRed) { controller = MenuPadKind.Pad1; } else { controller = MenuPadKind.COM; } } MatchWrestlerInfo wrestler = GlobalWork.inst.MatchSetting.matchWrestlerInfo[playerIndex]; GlobalParam.Set_WrestlerData(playerIndex, controller, wrestler.wrestlerID, false, wrestler.costume_no, 65535f, 65535f, 65535f, 65535f, 65535f, 65535f); }
public static bool CheckMatchEnd() { if (!isExElim) { return(false); } MatchMain main = MatchMain.inst; Player plObj; CornerSide loserSide = CornerSide.Unknown; //Determine which player lost for (int i = 0; i < 8; i++) { plObj = PlayerMan.inst.GetPlObj(i); if (!plObj) { continue; } if (plObj.isSecond || plObj.isIntruder || plObj.isSleep) { continue; } plObj.isKO = false; if (plObj.isLose && (plObj.Zone == ZoneEnum.InRing || plObj.Zone == ZoneEnum.OutOfRing) && i != recentLoserIndex) { L.D(DataBase.GetWrestlerFullName(plObj.WresParam) + " at index " + i + " has been eliminated."); recentLoserIndex = i; if (i <= 3) { loserSide = CornerSide.Blue; } else { loserSide = CornerSide.Red; } //Queue player for replacement defeatedPlayers.Enqueue(new DefeatedPlayer { player = plObj, side = loserSide }); loserName = DataBase.GetWrestlerFullName(plObj.WresParam); SetLoserState(i); //Add loser to the queue for replacement processing bool continueMatch = UpdateTeam(loserSide); main.isMatchEnd = !continueMatch; L.D("Continue Match: " + continueMatch); return(continueMatch); } else { continue; } } return(false); }