示例#1
0
    void GetMoving()
    {
        if (ZoneMarced.Count == 0)
        {
            ZoneMarced = CorrectUnit.unit.MovmentArea();
            foreach (var item in ZoneMarced)
            {
                SpriteRenderer localmarcer = PoolElement;
                localmarcer.transform.position = item.Position;
                localmarcer.color = Color.green;
                TrashNode.Add(localmarcer);
            }
        }
        Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        Vector3    PoitionToChek;

        if (Input.GetMouseButton(0) && Physics.Raycast(ray, out hit, 5000, Mask))
        {
            PoitionToChek = hit.point;
            var node = GridABS.NodeFromWorldPoint(PoitionToChek);
            if (ZoneMarced.Contains(node) && node.UnitOnNode == null)
            {
                ClientReciverMK1.WriteMsg("/Move" + GetUnitId(CorrectUnit) + ":" + node.x + ":" + node.y);
                CorrectUnit.MoveToCord(node.x, node.y);
                EndTurn();
            }
        }
    }
    void GetBoom()
    {
        Instantiate(ImportVisualEffect((int)Granades[currentGranade].granade), _point, Quaternion.identity);
        for (int i = 0; i < vectorsOfGrande.Length; i++)
        {
            Vector2        n          = vectorsOfGrande[i];
            NetworkElement unitTarget = GridABS.NodeFromWorldPoint(new Vector3(n.x, 0, n.y)).UnitOnNode;
            if (unitTarget != null)
            {
                int PowerPerc = Granades[currentGranade].PowerPerc;
                int Range     = Granades[currentGranade].Range;
                switch ((int)Granades[currentGranade].granade)
                {
                case 0:
                    unitTarget.unit.GetDamage(PowerPerc);
                    ClientReciverMK1.WriteMsg("/Damage" + ThisUnit.Manger.GetUnitId(unitTarget) + ":" + PowerPerc + ":" + 0 + ":" + 0);
                    break;

                case 1:
                    unitTarget.unit.GetDamage(0, PowerPerc, (int)BasicUnit.DamageType.Stan);
                    ClientReciverMK1.WriteMsg("/Damage" + ThisUnit.Manger.GetUnitId(unitTarget) + ":" + 0 + ":" + PowerPerc + ":" + (int)BasicUnit.DamageType.Stan);
                    break;

                case 2:
                    unitTarget.unit.GetDamage(PowerPerc, Range, (int)BasicUnit.DamageType.Fire);
                    ClientReciverMK1.WriteMsg("/Damage" + ThisUnit.Manger.GetUnitId(unitTarget) + ":" + PowerPerc + ":" + Range + ":" + (int)BasicUnit.DamageType.Fire);
                    break;

                case 3:
                    Vector3 poitionToChek = unitTarget.transform.position + (unitTarget.transform.position - _point).normalized * PowerPerc;
                    var     node          = GridABS.NodeFromWorldPoint(poitionToChek);

                    if (node.TypeBloc == NodeA.NodeType.Walkable && node.UnitOnNode == null)
                    {
                        ClientReciverMK1.WriteMsg("/Move" + ThisUnit.Manger.GetUnitId(unitTarget) + ":" + node.x + ":" + node.y);
                        unitTarget.MoveToCord(node.x, node.y);
                    }

                    break;

                case 4:

                    break;
                }
            }
        }
        Granades[currentGranade].count -= 1;
        currentGranade = -1;
        ThisUnit.Manger.EndTurn();
        ClientReciverMK1.WriteMsg("/EndTurn");
    }
    void ReadConection()
    {
        byte[] data = new byte[256];
        if (mainstream != null && mainstream.DataAvailable)
        {
            data = new byte[256];
            int bytes = mainstream.Read(data, 0, data.Length);
            msges = Encoding.UTF8.GetString(data, 0, bytes).Split('/');
            foreach (string mesg in msges)
            {
                Debug.Log(mesg);
                if (mesg.StartsWith("Set"))
                {
                    if (mesg.EndsWith("TeamB"))
                    {
                        Manger.TeamName = MangerNetwork.TeamType.TeamB;
                    }
                }
                if (mesg.StartsWith("List"))
                {
                    Manger.GetUnitArray(mesg);
                }
                if (mesg.StartsWith("Move"))
                {
                    string[]       lines      = mesg.Remove(0, 4).Split(':');
                    NetworkElement targetUnit = Manger.ElementsInGame[Convert.ToInt32(lines[0])];
                    targetUnit.MoveToCord(Convert.ToInt32(lines[1]), Convert.ToInt32(lines[2]));
                    if (targetUnit == Manger.CorrectUnit)
                    {
                        Manger.EndTurn();
                    }
                }
                if (mesg.StartsWith("UnitIs"))
                {
                    string lines = mesg.Remove(0, 7);
                    ChoosePackManger.SignNewUnit(Convert.ToInt32(lines));
                }

                if (mesg.StartsWith("Shoot"))
                {
                    string[]       lines      = mesg.Remove(0, 5).Split(':');
                    NetworkElement targetUnit = Manger.ElementsInGame[Convert.ToInt32(lines[0])];
                    targetUnit.ShootToСord(Convert.ToInt32(lines[1]), Convert.ToInt32(lines[2]));
                    if (targetUnit == Manger.CorrectUnit)
                    {
                        Manger.EndTurn();
                    }
                }
                if (mesg.StartsWith("VSBoom"))
                {
                    string[] lines = mesg.Remove(0, 6).Split(':');
                    Manger.VisualManger.VisualGranade(Convert.ToInt32(lines[0]), Convert.ToInt32(lines[1]), Convert.ToInt32(lines[2]));
                }
                if (mesg.StartsWith("Damage"))
                {
                    string[]       lines      = mesg.Remove(0, 6).Split(':');
                    NetworkElement targetUnit = Manger.ElementsInGame[Convert.ToInt32(lines[0])];
                    targetUnit.unit.GetDamage(Convert.ToInt32(lines[1]), Convert.ToInt32(lines[2]), Convert.ToInt32(lines[3]));
                }
                if (mesg == "EndTurn")
                {
                    Manger.EndTurn();
                }
            }
        }
    }