private void BoderRectangleControl(GameControl.UpdateInfo updateConfig, Color32 val, bool marked = false, bool blinking = false) { if (updateConfig.CardId >= 0) { if (cards.ContainsKey(updateConfig.CardId)) { // destroy previous RemoveSpritesFromParent(cards[updateConfig.CardId]); cards.Remove(updateConfig.CardId); } // get card config ConfigFormats.Card cardConf = gamC.gameConfig.TblSettings.GetCardConfigByID(updateConfig.CardId); //Debug.Log("card id:" + cardConf.Id + " size:" + cardConf.X + "|" + cardConf.Y); if (cardConf == null) { Debug.Log("Card config not found id: " + updateConfig.CardId); return; } // get card size ConfigFormats.CardSize cardSizeConf = gamC.gameConfig.GetCardSizeByID(cardConf.SizeId); if (cardSizeConf == null) { Debug.Log("Card size config not found id: " + cardConf.SizeId); return; } // set card area CardArea crArea = new CardArea(); crArea.SetName("pl" + updateConfig.PlayerID + "_pos" + updateConfig.CardId); if (cardConf.turnNinety) { crArea.SetArea(RelativeToAbsolute(cardConf.X, cardConf.Y, mmToPixels(cardSizeConf.Height), mmToPixels(cardSizeConf.Width), false)); } else { crArea.SetArea(RelativeToAbsolute(cardConf.X, cardConf.Y, mmToPixels(cardSizeConf.Width), mmToPixels(cardSizeConf.Height), false)); } if (updateConfig.CardType == ARBangStateMachine.BangCard.NONE) { crArea.SetFilled(true); } else { crArea.SetFilled(false); } crArea.SetColor(val); crArea.SetBorderWidth(10); CreateRectangle(crArea, "Cards", true); crArea.SetReadyToDraw(true); crArea.AreaMarked = marked; crArea.AreaBlinking = blinking; crArea.LastChanged = Time.time; cards[updateConfig.CardId] = crArea; } else { //Debug.Log("Creating Border for player with color: " + val); // get info about player if (players.ContainsKey(updateConfig.PlayerID)) { // only update should be performed RemoveSpritesFromParent(players[updateConfig.PlayerID]); players.Remove(updateConfig.PlayerID); RemoveSpritesFromParent(effectAreas[updateConfig.PlayerID]); effectAreas.Remove(updateConfig.PlayerID); } // create active area for player PlayerArea plArea = new PlayerArea(); // get configuration params ConfigFormats.Player playerConf = gamC.gameConfig.TblSettings.PlayersArray.PlayerDataArray[updateConfig.PlayerID]; plArea.SetArea(RelativeToAbsolute(playerConf.ActiveArea.X, playerConf.ActiveArea.Y, playerConf.ActiveArea.Width, playerConf.ActiveArea.Height)); plArea.SetFilled(false); plArea.SetColor(PlayersColors.Universal); plArea.SetBorderWidth(10); CreateRectangle(plArea, "Players"); plArea.SetReadyToDraw(true); plArea.AreaMarked = marked; plArea.AreaBlinking = blinking; plArea.LastChanged = Time.time; players[updateConfig.PlayerID] = plArea; // create effects area for player EffectArea efArea = new EffectArea(); efArea.SetArea(RelativeToAbsolute(playerConf.EffectsArea.X, playerConf.EffectsArea.Y, playerConf.EffectsArea.Width, playerConf.EffectsArea.Height)); efArea.SetFilled(false); efArea.SetColor(val); efArea.SetBorderWidth(10); CreateRectangle(efArea, "Effects"); efArea.SetReadyToDraw(true); efArea.AreaMarked = marked; efArea.AreaBlinking = blinking; efArea.LastChanged = Time.time; effectAreas[updateConfig.PlayerID] = efArea; } }