コード例 #1
0
    /// <summary>
    /// 设置属性
    /// </summary>
    /// <param name="name"></param>
    /// <param name="health"></param>
    /// <param name="attack"></param>
    /// <param name="attackDistance"></param>
    /// <param name="moveSpeed"></param>
    /// <param name="attackInterval"></param>
    /// <param name="cost"></param>
    public void Set(string name, int health, int attack, float attackDistance, float moveSpeed, float attackInterval,
                    int cost, int star)
    {
        Name           = name;
        Health         = health;
        Attack         = attack;
        AttackDistance = attackDistance;
        MoveSpeed      = moveSpeed;
        AttackInterval = attackInterval;
        Cost           = cost;
        Star           = star;
        var prefab = DataManager.Instance.PiecePrefabs[star]
                     .Find(e => e.GetComponent <PieceController>().pieceName == name);

        Debug.Log(prefab);
        if (model != null)
        {
            Destroy(model);
        }
        var instance   = GameObject.Instantiate(prefab);
        var controller = instance.GetComponent <PieceController>();

        controller.OriginPos            = ModelOffset;
        controller.transform.localScale = new Vector3(0.8f, 0.8f, 1f);
        controller.Clickable            = false;
        controller.Reset();
        model = instance;
        LayerTool.ChangeLayer(instance.transform, 5);
    }
コード例 #2
0
    IEnumerator GetCards(WaitForSeconds seconds)
    {
        yield return(seconds);

        foreach (var card in Cards)
        {
            var cardItem = GetRandomCard(1);
            var item     = Instantiate(cardItem);
            item.transform.localScale = new Vector3(.3f, .3f, 1);
            item.transform.parent     = card.gameObject.transform;
            item.transform.position   = card.transform.position;
            LayerTool.ChangeLayer(item.transform, 3);
            var controller = item.GetComponent <PieceController>();
            controller.Placeable = true;
            controller.OriginPos = item.transform.position;
            controller.Reset();
            card.cardItem = item;
            var ui = card.GetComponent <CardBaseController>().ui;
            if (ui != null)
            {
                var UIEvent = ui.GetComponent <CardUIEvent>();
                UIEvent.name = controller.pieceName;
                UIEvent.cost = controller.cost;
            }
        }
        _cardResetLock = false;
        yield break;
    }
コード例 #3
0
ファイル: MapEditor.cs プロジェクト: minskiter/AutoChess
    public void LoadMap(GameMap map)
    {
        var maxPieceList = new List <int>
        {
            5, 6, 6, 7, 7
        };

        maxPieces = maxPieceList[int.Parse(map.Name) - 1];
        if (height == map.Height && width == map.Width)
        {
            InitTileMap();
            // Çå³ýËùÓжÓÎéΪ1µÄÆå×Ó
            ClearPiece(1);
            for (var row = 0; row < map.Height; ++row)
            {
                for (var col = 0; col < map.Width; ++col)
                {
                    var cell = map.Map[row, col];
                    if (cell != null && !string.IsNullOrWhiteSpace(cell))
                    {
                        var piece       = cell.Split('|');
                        var piecePrefab = DataManager.Instance.PiecePrefabs[int.Parse(piece[1])]
                                          .FirstOrDefault(e =>
                                                          (e != null ? e.GetComponent <PieceController>().pieceName : null) == piece[0]);
                        if (piecePrefab != null)
                        {
                            var pieceInstance   = Instantiate(piecePrefab, PieceArea.transform);
                            var pieceController = pieceInstance.GetComponent <PieceController>();
                            pieceController.OriginPos = new Vector3(col + mapRect.xMin, row + mapRect.yMin, 0) +
                                                        pieceController.offset;
                            pieceController.ChangeTeam(1);
                            pieceController.initHealthUI();
                            pieceController.Reset();
                            LayerTool.ChangeLayer(pieceController.transform, 3);
                            PutPiece(Vector3Int.RoundToInt(new Vector3(col + mapRect.xMin, row + mapRect.yMin, 0)),
                                     pieceController);
                        }
                    }
                }
            }
        }
        else
        {
            Debug.LogError("µØͼ³¤¿í´íÎó");
        }
    }
コード例 #4
0
    public PieceController UpgradePiece(PieceController piece)
    {
        List <PieceController> pieces = new List <PieceController>
        {
        };

        foreach (var p in _piecesList)
        {
            if (p.pieceName == piece.pieceName && piece.star == p.star && piece.Team == p.Team)
            {
                pieces.Add(p);
            }
        }
        if (pieces.Count >= 2)
        {
            if (dataManager.PiecePrefabs.ContainsKey(piece.star + 1))
            {
                var list         = dataManager.PiecePrefabs[piece.star + 1];
                var upgradePiece = list.Find(e => e.GetComponent <PieceController>().pieceName == piece.pieceName);
                if (upgradePiece != null)
                {
                    var pieceInstance = Instantiate(upgradePiece);
                    pieceInstance.transform.position = piece.transform.position;
                    var controller = pieceInstance.GetComponent <PieceController>();
                    LayerTool.ChangeLayer(pieceInstance.transform, 3);
                    foreach (var p in pieces)
                    {
                        map.PutPiece(Vector3Int.RoundToInt(p.CurrentPosition - p.offset), null);
                        _piecesList.Remove(p);
                        Destroy(p.gameObject);
                    }
                    Destroy(piece.gameObject);
                    return(controller);
                }
            }
        }
        return(piece);
    }
コード例 #5
0
 public void LoadCardData()
 {
     foreach (var card in Cards)
     {
         var cardItem = GetRandomCard(1);
         var item     = Instantiate(cardItem);
         item.transform.localScale = new Vector3(.3f, .3f, 1);
         item.transform.parent     = card.gameObject.transform;
         item.transform.position   = card.transform.position;
         LayerTool.ChangeLayer(item.transform, 3);
         var controller = item.GetComponent <PieceController>();
         controller.Placeable = true;
         controller.OriginPos = item.transform.position;
         controller.Reset();
         card.cardItem = item;
         var ui = card.GetComponent <CardBaseController>().ui;
         if (ui != null)
         {
             var UIEvent = ui.GetComponent <CardUIEvent>();
             UIEvent.name = controller.pieceName;
             UIEvent.cost = controller.cost;
         }
     }
 }
コード例 #6
0
 static void ImportLayer()
 {
     LayerTool.ImportLayers(Actions.ChargeItem.layer, Actions.ChargeResource.layer);
 }
コード例 #7
0
 static void ImportLayer()
 {
     LayerTool.ImportLayers(DragItem.layerName);
 }
コード例 #8
0
 static void ImportLayer()
 {
     LayerTool.ImportLayers(RotateItem.layer);
 }
コード例 #9
0
ファイル: DxfInputB.cs プロジェクト: zhang8153119/nesting
        private PlateModel analyticalPaper(string url)
        {
            //DateTime beforDT = System.DateTime.Now;

            PlateModel plate = new PlateModel();

            string[] urlStr     = url.Split('\\');
            string[] nameAndNum = urlStr[urlStr.Length - 1].Split('-');
            plate.PlateName  = nameAndNum[0];
            plate.PlateCode  = nameAndNum[0];
            plate.PlateCount = int.Parse(nameAndNum[1].Substring(0, nameAndNum[1].Length - 4));

            #region 加载dxf文件,获取文件每行的内容
            List <string> listDxfInfo = new List <string>();
            StreamReader  sr          = new StreamReader(url, Encoding.Default);
            String        input;
            while ((input = sr.ReadLine()) != "EOF")
            {
                listDxfInfo.Add(input);
            }
            listDxfInfo.Add("EOF");
            sr.Close();
            #endregion

            #region 提取需要的信息内容,这里按图形和文字进行分类提取
            List <string> listLine    = new List <string>();                            //直线类型
            List <string> listCircle  = new List <string>();                            //圆类型
            List <string> listArc     = new List <string>();                            //圆弧类型
            List <string> listEllipse = new List <string>();                            //椭圆类型
            List <string> listText    = new List <string>();                            //单行文字类型
            List <string> listMtext   = new List <string>();                            //多行文字类型
            List <string> listLayer   = new List <string>();                            //图层信息
            Dictionary <string, string> layerNandC = new Dictionary <string, string>(); //图层颜色和信息

            for (int i = 0; i < listDxfInfo.Count; i++)
            {
                string s1 = listDxfInfo[i].Trim();
                string s2 = listDxfInfo[i = i + 1].Trim();

                if ("LAYER".Equals(s2) && "0".Equals(s1))
                {
                    List <string> getList = createListByClass(i - 1, listDxfInfo);
                    listLayer.AddRange(getList);
                    i = i + getList.Count - 2;
                    getList.Clear();
                }
                else if ("LINE".Equals(s2) && "0".Equals(s1))
                {
                    List <string> getList = createListByClass(i - 1, listDxfInfo);
                    listLine.AddRange(getList);
                    i = i + getList.Count - 2;
                    getList.Clear();
                }
                else if ("CIRCLE".Equals(s2) && "0".Equals(s1))
                {
                    List <string> getList = createListByClass(i - 1, listDxfInfo);
                    listCircle.AddRange(getList);
                    i = i + getList.Count - 2;
                    getList.Clear();
                }
                else if ("ARC".Equals(s2) && "0".Equals(s1))
                {
                    List <string> getList = createListByClass(i - 1, listDxfInfo);
                    listArc.AddRange(getList);
                    i = i + getList.Count - 2;
                    getList.Clear();
                }
                else if ("ELLIPSE".Equals(s2) && "0".Equals(s1))
                {
                    List <string> getList = createListByClass(i - 1, listDxfInfo);
                    listEllipse.AddRange(getList);
                    i = i + getList.Count - 2;
                    getList.Clear();
                }
                else if ("TEXT".Equals(s2) && "0".Equals(s1))
                {
                    List <string> getList = createListByClass(i - 1, listDxfInfo);
                    listText.AddRange(getList);
                    i = i + getList.Count - 2;
                    getList.Clear();
                }
                else if ("MTEXT".Equals(s2) && "0".Equals(s1))
                {
                    List <string> getList = createListByClass(i - 1, listDxfInfo);
                    listMtext.AddRange(getList);
                    i = i + getList.Count - 2;
                    getList.Clear();
                }
            }

            listDxfInfo.Clear();
            #endregion

            #region 利用GDI+在自己的cad面板中画出提取出的内容
            if (listLayer.Count > 0)
            {
                layerNandC = new LayerTool().getLayer(listLayer);
            }
            if (listLine.Count > 0)
            {
                plate.OutModel.ListShape.AddRange(new LineTool().getLineByColor(listLine, layerNandC));
            }
            if (listCircle.Count > 0)
            {
                plate.OutModel.ListShape.AddRange(new CircleTool().getLineByColor(listCircle, layerNandC));
            }
            if (listArc.Count > 0)
            {
                plate.OutModel.ListShape.AddRange(new ArcTool().getLineByColor(listArc, layerNandC));
            }
            //if (listText.Count > 0) { new TextTool().createText(listText); }
            if (listEllipse.Count > 0)
            {
                plate.OutModel.ListShape.AddRange(new EllipseTool().getLineByColor(listEllipse, layerNandC));
            }
            #endregion

            listEllipse.Clear();
            listText.Clear();
            listArc.Clear();
            listCircle.Clear();
            listLine.Clear();
            listLayer.Clear();
            layerNandC.Clear();

            ModelOper modelOper = new ModelOper();

            plate = modelOper.baseShapeSort(plate);
            for (int k = 0; k < plate.InnerModel.Count; k++)
            {
                plate.InnerModel[k] = modelOper.reSetPointShunXu(plate.InnerModel[k], false);
            }

            //for (int i = 0; i < plate.InnerModel[0].ListShape.Count; i++)
            //{
            //    Console.WriteLine("{0},{1},{2}",
            //       plate.InnerModel[0].ListShape[i].ShapeClass, plate.InnerModel[0].ListShape[i].StartPoint, plate.InnerModel[0].ListShape[i].EndPoint);
            //}

            //CADInterface.currentPlates.Add(plate.OutModel);          //这里不存在外围面域,下面的判断之后才选定外围面域
            CADInterface.currentPlates.AddRange(plate.InnerModel);
            CADInterface.DrawShap();
            plate = modelOper.reSetOutInner(plate);
            plate = modelOper.juedeIsArc(plate);
            plate = new CalculateArea().getPlateArea(plate);
            plate = new CalculateArea().getPlateBound(plate);
            plate = new CreateCenterPoint().getRotateCenter(plate);
            plate = new CreateCenterPoint().getPowCenter(plate);

            //DateTime afterDT = System.DateTime.Now;
            //TimeSpan ts = afterDT.Subtract(beforDT);
            //Console.WriteLine("件号:{0},时间:{1}",
            //        plate.PlateName, ts.TotalSeconds);

            return(plate);

            //DateTime afterDT = System.DateTime.Now;
            //TimeSpan ts = afterDT.Subtract(beforDT);
            //MessageBox.Show("DateTime总共花费:" + ts.TotalMilliseconds);
        }
コード例 #10
0
 static void ImportLayer()
 {
     LayerTool.ImportLayers(ClickItem.layer);
 }
コード例 #11
0
 static void ImportLayer()
 {
     LayerTool.ImportLayers(PlaceItem.placePosLayer);
 }
コード例 #12
0
 static void ImportLayer()
 {
     LayerTool.ImportLayers(ConnectItem.layer);
 }
コード例 #13
0
 static void ImportLayer()
 {
     LayerTool.ImportLayers(DetachItem.layer);
 }
コード例 #14
0
 static void ImportLayer()
 {
     LayerTool.ImportLayers(LinkPort.layer);
 }
コード例 #15
0
 static void ImportLayer()
 {
     LayerTool.ImportLayers(PickUpAbleItem.layer);
 }
コード例 #16
0
 static void ImportLayer()
 {
     LayerTool.ImportLayers(RopeElement.ropeItemLayer);
 }