コード例 #1
0
    public bool UpdateData(PlayerDataRequire require, bool isReallyUpdate = true)  //isReallyUpdate为false时相当于仅检测
    {
        PlayerDataEnum dataEnum = require.dataEnum;
        int            val      = require.updateVal;

        if (!data.ContainsKey(dataEnum))
        {
            data.Add(dataEnum, 0);
        }
        if (data[dataEnum] + val < 0)
        {
            if (OnPlayerDataLack != null)
            {
                OnPlayerDataLack.Invoke(this, require);
            }
            return(false);
        }
        else
        {
            if (isReallyUpdate)
            {
                data[dataEnum] += val;
                if (OnPlayerDataChange != null)
                {
                    OnPlayerDataChange.Invoke(this, require);
                }
            }
            return(true);
        }
    }
コード例 #2
0
ファイル: PipeBuilder.cs プロジェクト: YessionCC/PaperWar
 IEnumerator SelectToLand(Pipe pipe)
 {
     while (true)
     {
         Vector2 point = Camera.main.ScreenToWorldPoint(Input.mousePosition);
         pipe.Stretch(point, pipe.GetLength(point) < maxPipeLen);
         if (Input.GetMouseButtonDown(0))
         {
             RaycastHit2D hit = Physics2D.Raycast(point, Vector2.zero);
             if (hit.collider)
             {
                 Land  land = hit.collider.GetComponent <Land>();
                 float dis  = 0;
                 if (land != null &&
                     !land.Equals(LandPanel.GetInstance().GetCurPointLand()) && //不建立自己到自己的pipe
                     pipe.GetPlayer().Equals(land.GetPlayer()) &&               //不建立自己到别人的pipe
                     (dis = pipe.GetLength(point)) < maxPipeLen)                //不能太长
                 {
                     PlayerDataRequire dataRequire = new PlayerDataRequire(PlayerData.PlayerDataEnum.capital, -(int)(pipeCostPerLen * dis));
                     bool ret = pipe.GetPlayer().GetData().UpdateData(dataRequire, false);
                     if (!ret)
                     {
                         break;       //资金不够
                     }
                     pipe.GetPlayer().GetData().UpdateData(dataRequire, true);
                     pipe.SetToLand(land);
                     break;
                 }
             }
             Destroy(pipe.gameObject);
             break;
         }
         yield return(0);
     }
     MouseStateRecorder.GetInstance().SetCurMouseState(MouseStateRecorder.MouseState.normal);
 }
コード例 #3
0
ファイル: MainDataUI.cs プロジェクト: YessionCC/PaperWar
 private void Data_OnPlayerDataLack(object s, PlayerDataRequire require)
 {
 }
コード例 #4
0
ファイル: MainDataUI.cs プロジェクト: YessionCC/PaperWar
 private void Data_OnPlayerDataChange(object s, PlayerDataRequire require)
 {
     dataText[require.dataEnum].text = (s as PlayerData).GetDataByEnum(require.dataEnum).ToString();
 }