Пример #1
0
    /* private void UpdateCardPlace(GameControl.UpdateInfo item)
     * {
     *   // check if the item to update exist, otherwise create info for it from settings
     *   if (cards.ContainsKey(item.CardId))
     *   {
     *       // edit
     *   }
     *   else
     *   {
     *       // get config of this card area
     *       ConfigFormats.Card cardConf = RelativeToAbsolute(gamC.gameConfig.TblSettings.GetCardConfigByID(item.CardId));
     *       if (cardConf == null)
     *       {
     *           Debug.Log("Unknown card area ID! Not creating.");
     *           return;
     *       }
     *       // create
     *       CardArea cr = new CardArea();
     *       cr.SetColor(PlayersColors.GetColorByID(item.PlayerID));
     *       cr.SetBorderWidth(10);
     *       if (item.CardType == ARBangStateMachine.BangCard.NONE)
     *           cr.SetFilled(true);
     *       else
     *           cr.SetFilled(false);
     *       cr.SetArea(new Rect(_tableX, _tableY, _tableWidth, _tableHeight));
     *       CreateRectangle(cr, "Card");
     *       cr.SetReadyToDraw(true);
     *
     *       // finally add to dictionary
     *       cards[item.CardId] = cr;
     *   }
     * }*/


    private void RemoveSpritesFromParent(BaseArea info)
    {
        foreach (GameObject item in info.sprites)
        {
            item.transform.parent = null;
            Destroy(item);
        }
    }
Пример #2
0
 private void CreateRectangle(BaseArea info, string sortingLayer, bool forCard = false)
 {
     for (int i = 0; i < 4; ++i)
     {
         string name = sortingLayer + "_" + info.GetName() + "_part" + Convert.ToString(i);
         info.sprites.Add(CreateRectanglePart(name, info.GetArea(), info.GetColor(), info.GetBorderWidth(), (RectangelParts)i, sortingLayer, forCard));
     }
     // if filled create one more sprite with alpha 125
     if (info.IsFilled())
     {
         string name = info.GetName() + Convert.ToString(5);
         info.sprites.Add(CreateDimmedArea(name, info.GetArea(), info.GetColor(), sortingLayer));
     }
 }
Пример #3
0
 private void ChangeBorderColor(BaseArea area, Color32 col)
 {
     foreach (GameObject item in area.sprites)
     {
         if (item.name.Contains("dimmed"))
         {
             item.GetComponent <SpriteRenderer>().color = new Color32(col.r, col.g, col.b, 30);
         }
         else
         {
             item.GetComponent <SpriteRenderer>().color = col;
         }
     }
 }
Пример #4
0
    public void AddFloorOrCeilingToMesh(BaseArea r, bool ceiling)
    {
        this.Init();

        float   y     = ceiling ? 2f : 0f;
        Vector3 vert1 = new Vector3(r.X1, y, r.Y1);         // bottom left
        Vector3 vert2 = new Vector3(r.X1, y, r.Y2 + 1);     // top left
        Vector3 vert3 = new Vector3(r.X2 + 1, y, r.Y1);     // bottom right
        Vector3 vert4 = new Vector3(r.X2 + 1, y, r.Y2 + 1); // top right

        Vector3 norm1 = ceiling ? Vector3.down : Vector3.up;
        Vector3 norm2 = ceiling ? Vector3.down : Vector3.up;
        Vector3 norm3 = ceiling ? Vector3.down : Vector3.up;
        Vector3 norm4 = ceiling ? Vector3.down : Vector3.up;

        Vector2 uv1 = new Vector2(0f, 0f);
        Vector2 uv2 = new Vector2(0f, r.Height);
        Vector2 uv3 = new Vector2(r.Width, 0f);
        Vector2 uv4 = new Vector2(r.Width, r.Height);

        int v = this.vertices.Count;

        int[] tri1 = ceiling ? new[] { v, v + 3, v + 1 } : new[] { v, v + 1, v + 3 };
        int[] tri2 = ceiling ?  new[] { v, v + 2, v + 3 } : new[] { v, v + 3, v + 2 };

        this.tris.AddRange(tri1);
        this.tris.AddRange(tri2);

        this.vertices.Add(vert1);
        this.vertices.Add(vert2);
        this.vertices.Add(vert3);
        this.vertices.Add(vert4);

        this.normals.Add(norm1);
        this.normals.Add(norm2);
        this.normals.Add(norm3);
        this.normals.Add(norm4);

        this.uvs.Add(uv1);
        this.uvs.Add(uv2);
        this.uvs.Add(uv3);
        this.uvs.Add(uv4);
    }
Пример #5
0
    private void SwitchBorderColor(BaseArea area)
    {
        Color32 col = PlayersColors.Universal;

        foreach (GameObject item in area.sprites)
        {
            if (item.GetComponent <SpriteRenderer>().color == PlayersColors.Universal)
            {
                col = PlayersColors.MarkedNonConfirmed;
            }
            if (item.name.Contains("dimmed"))
            {
                item.GetComponent <SpriteRenderer>().color = new Color32(col.r, col.g, col.b, 30);
            }
            else
            {
                item.GetComponent <SpriteRenderer>().color = col;
            }
        }
    }
        public JsonResult Edit(BaseArea model)
        {
            try
            {
                model.Grade = model.FId == 1 ? 1 : 2;
                model.FId   = model.FId == 1 ? 1 : model.FId;
                if (model.BaseAreaId > 0)
                {
                    var entity = _baseAreaService.GetById(model.BaseAreaId);

                    //修改
                    entity.Name     = model.Name;
                    entity.FId      = model.FId;
                    entity.Grade    = model.Grade;
                    entity.EditTime = DateTime.Now;

                    _baseAreaService.Update(model);
                }
                else
                {
                    //if (_baseAreaService.CheckName(model.Name) > 0)
                    //    return Json(new { Status = Successed.Repeat }, JsonRequestBehavior.AllowGet);
                    //添加
                    model.Status     = (int)Domain.EnumHelp.EnabledEnum.效;
                    model.IsDelete   = (int)Domain.EnumHelp.IsDeleteEnum.效;
                    model.CreateTime = DateTime.Now;
                    model.EditTime   = DateTime.Now;

                    _baseAreaService.Insert(model);
                }
            }
            catch (Exception ex)
            {
                return(Json(new { Status = Successed.Error }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new { Status = Successed.Ok }, JsonRequestBehavior.AllowGet));
        }
Пример #7
0
 /// <summary>
 /// 删除实体
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public void Delete(BaseArea model)
 {
     this._repoBaseArea.Delete(model);
 }
Пример #8
0
 /// <summary>
 /// 修改实体
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public void Update(BaseArea model)
 {
     this._repoBaseArea.Update(model);
 }
Пример #9
0
 public BaseArea Insert(BaseArea model)
 {
     return(this._repoBaseArea.Insert(model));
 }
 /// <summary>
 /// 删除实体
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public void Delete(BaseArea model)
 {
     this._BaseAreaBiz.Delete(model);
 }
 /// <summary>
 /// 修改实体
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public void Update(BaseArea model)
 {
     this._BaseAreaBiz.Update(model);
 }
 /// <summary>
 /// 添加实体
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public BaseArea Insert(BaseArea model)
 {
     return(this._BaseAreaBiz.Insert(model));
 }
Пример #13
0
    /// <summary>
    /// Function check if some components need update redraw. If yes, the redraw is performed.
    /// </summary>
    public void Update()
    {
        // go through all areas and check if marked should no be unmarked
        foreach (KeyValuePair <int, PlayerArea> item in players)
        {
            if (item.Value.AreaBlinking && (Time.time - item.Value.LastChanged > EffectsDuration.BORDER_MARKED_NON_CONFIRMED))
            {
                SwitchBorderColor(item.Value);
            }
            if (!item.Value.AreaBlinking && item.Value.AreaMarked && (Time.time - item.Value.LastChanged > EffectsDuration.BORDER_MARKED))
            {
                ChangeBorderColor(item.Value, PlayersColors.Universal);
            }
        }
        foreach (KeyValuePair <int, CardArea> item in cards)
        {
            if (item.Value.AreaBlinking && (Time.time - item.Value.LastChanged > EffectsDuration.BORDER_MARKED_NON_CONFIRMED))
            {
                SwitchBorderColor(item.Value);
            }
            if (!item.Value.AreaBlinking && item.Value.AreaMarked && (Time.time - item.Value.LastChanged > EffectsDuration.BORDER_MARKED))
            {
                ChangeBorderColor(item.Value, PlayersColors.Universal);
            }
        }
        foreach (KeyValuePair <int, EffectArea> item in effectAreas)
        {
            if (item.Value.AreaBlinking && (Time.time - item.Value.LastChanged > EffectsDuration.BORDER_MARKED_NON_CONFIRMED))
            {
                SwitchBorderColor(item.Value);
            }
            if (!item.Value.AreaBlinking && item.Value.AreaMarked && (Time.time - item.Value.LastChanged > EffectsDuration.BORDER_MARKED))
            {
                ChangeBorderColor(item.Value, PlayersColors.Universal);
            }
            // check if existing effect should reset
            if (item.Value._effectType != item.Value._defaultEffectType)
            {
                CheckIfResetEffect(item);
            }
        }

        // --------------------------------------------------------------------------------------------------------
        // ------------------------ PERFORM UPDATE FROM CONTROL MODULE --------------------------------------------
        // draw table borders
        if (gamC.DrawTableBorder())
        {
            if (tableBorder.IsReadyToDraw())
            {
                // draw
                foreach (GameObject temp in tableBorder.sprites)
                {
                    temp.SetActive(true);
                }
            }
            else // create the sprite for table border
            {
                //Debug.Log("Table dimensions: " + _tableX + ", " + _tableY + ", " + _tableWidth + ", " + _tableHeight);
                tableBorder = new BaseArea();
                tableBorder.SetColor(PlayersColors.Universal);
                tableBorder.SetBorderWidth(10);
                tableBorder.SetFilled(false);
                tableBorder.SetArea(new Rect(_tableX, _tableY, _tableWidth, _tableHeight));
                tableBorder.SetName("table");
                CreateRectangle(tableBorder, "Default");
                tableBorder.SetReadyToDraw(true);
            }
        }

        // get all things that need update, if any and perform update
        if (gamC.IsUpdateRedrawReady())
        {
            Debug.Log("Update drawing!");
            foreach (GameControl.UpdateInfo item in gamC.GetUpdateInfoList())
            {
                //Debug.Log("Updating: " + item.PlayerID + ", card: " + item.CardId);
                if (item.effect == EffectsTypes.NONE)
                {
                    // set effect according to a state
                    item.effect = GetEffectByState(item.State);
                }
                Debug.Log("State: " + item.State);
                switch (item.effect)
                {
                case EffectsTypes.BORDER:
                    BoderRectangleControl(item, PlayersColors.Universal);
                    break;

                case EffectsTypes.BORDER_MARKED:
                    BoderRectangleControl(item, PlayersColors.Marked, true);
                    break;

                case EffectsTypes.BORDER_MARKED_NON_CONFIRMED:
                    BoderRectangleControl(item, PlayersColors.MarkedNonConfirmed, false, true);
                    break;

                case EffectsTypes.BORDED_MARKED_NOT_RECOGNIZED:
                    BoderRectangleControl(item, PlayersColors.MarkedNotRecognized, false, false);
                    break;

                case EffectsTypes.HORSE:
                    DrawInEffectAreaOne(item, horseSprite);
                    break;

                case EffectsTypes.GUN:
                    DrawInEffectAreaOne(item, gunSprite);
                    break;

                case EffectsTypes.BANG:
                    DrawInEffectAreaOne(item, gunSprite);
                    break;

                case EffectsTypes.DODGE:
                    DrawInEffectAreaOne(item, smiley);
                    DrawInEffectAreaOne(item, badSmiley, false);
                    break;

                case EffectsTypes.NONE:
                default:
                    Debug.Log("Unknnown effect.");
                    break;
                }
            }
            // finally clear the list to update, everything was updated
            gamC.ClearUpdateInfoList();
            gamC.ResetUpdateReadrawReady();
        }

        // continue drawing effects from previous redraw update -> What if detection is too slow and update need to be called regulary for animations?
        // probably just control of another monobehaviour??
    }