Exemplo n.º 1
0
    public void SetElements()
    {
        transform.position = GridABS.NodeFromWorldPoint(transform.position).UnitPosition;
        GridABS.NodeFromWorldPoint(transform.position).UnitOnNode = this;
        unit   = GetComponentInChildren <BasicUnit> ();
        weapon = GetComponentInChildren <BasicWeapon> ();

        unit.gameObject.name   = unit.CorrectName;
        weapon.gameObject.name = weapon.CorrectName;
        unit.SetComponents();
    }
Exemplo n.º 2
0
    public void SetSelterBlock()
    {
        Debug.Log("Shelter is set");
        int xC;
        int yC;


        foreach (Transform n in ListofPivots)
        {
            GridABS.NodeCoordinat(n.position, out xC, out yC);
            GridABS.GridOfArena[xC, yC].TypeBloc = (!wall)? NodeA.NodeType.Shelter: NodeA.NodeType.Wall;
        }
    }
Exemplo n.º 3
0
    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");
    }
Exemplo n.º 4
0
    IEnumerator EnergySpend()
    {
        yield return(new WaitForSeconds(_standartWait));

        EP -= _localEnergyCost;
        if (EP < 1)
        {
            Alive = false;
            transform.parent.gameObject.SetActive(false);
            transform.parent.GetComponent <NetworkElement> ().CreateMarker(Vector3.one * 100);
            GridABS.NodeFromWorldPoint(transform.position).UnitOnNode = null;
        }
        _localEnergyCost = EnergyCost;
        _standartWait    = 0;
    }
Exemplo n.º 5
0
    private void OnDestroy()
    {
        try
        {
            int xC;
            int yC;

            foreach (Transform n in ListofPivots)
            {
                GridABS.NodeCoordinat(n.position, out xC, out yC);
                GridABS.GridOfArena[xC, yC].TypeBloc = NodeA.NodeType.Walkable;
            }
        }
        catch
        { }
    }
Exemplo n.º 6
0
    void SetSelterBlock()
    {
        Debug.Log("Shelter is set");
        GridABS grid = FindObjectOfType <GridABS>();
        int     xC;
        int     yC;


        foreach (Transform n in ListofPivots)
        {
            grid.NodeCoordinat(n.position, out xC, out yC);
            grid.ShelterList.Add(new Vector2(xC, yC));
            grid.CurrentShelterList.Add(this);
            grid.GridOfArena[xC, yC]._Bloc = (!wall)? NodeA.TypeOfNode.Shelter: NodeA.TypeOfNode.Wall;
        }
    }
Exemplo n.º 7
0
    private void OnDestroy()
    {
        try
        {
            GridABS grid = FindObjectOfType <GridABS>();
            int     xC;
            int     yC;

            foreach (Transform n in ListofPivots)
            {
                grid.NodeCoordinat(n.position, out xC, out yC);
                grid.CurrentShelterList.Remove(this);
                grid.ShelterList.Remove(new Vector2(xC, yC));
                grid.GridOfArena[xC, yC]._Bloc = NodeA.TypeOfNode.Walkable;
            }
        }
        catch
        { }
    }
Exemplo n.º 8
0
    void GetAttack()
    {
        if (ZoneMarced.Count == 0)
        {
            ZoneMarced = CorrectUnit.weapon.AttackArea();
            foreach (var item in ZoneMarced)
            {
                SpriteRenderer localmarcer = PoolElement;
                localmarcer.transform.position = item.Position;
                localmarcer.color = Color.red;
                TrashNode.Add(localmarcer);

                if (item.UnitOnNode != null)
                {
                    ShowInfoText(Mathf.Clamp01(CorrectUnit.weapon.NormalDist / (Vector3.Distance(item.UnitOnNode.transform.position, CorrectUnit.transform.position))), item.UnitOnNode.transform.position);
                    SpriteRenderer localmarcerSecond = PoolElement;
                    localmarcerSecond.transform.position = item.Position;
                    localmarcerSecond.color = Color.yellow;
                    TrashNode.Add(localmarcerSecond);
                }
            }
        }
        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("/Shoot" + GetUnitId(CorrectUnit) + ":" + node.x + ":" + node.y);
                CorrectUnit.ShootToСord(node.x, node.y);
                EndTurn();
            }
        }
    }
Exemplo n.º 9
0
    public void GetUnitArray(string msg)
    {
        InfoText = (Resources.Load("InfoMarcer/HitInfo") as GameObject).GetComponent <TextMeshPro> ();
        marcerElement.gameObject.SetActive(false);
        for (int i = 0; i < 40; i++)
        {
            _marcerPool[i] = Instantiate(marcerElement);
        }
        marcerElement.gameObject.SetActive(true);

        string[] lines    = msg.Remove(0, 5).Split('#');
        string[] allValue = lines[0].Split(':');
        teamASize = Convert.ToInt32(allValue[0]);
        teamBSize = Convert.ToInt32(allValue[1]);
        CreateLists();
        GridABS.CreateGrid();
        for (int i = 1; i < lines.Length; i++)
        {
            string[] line = lines[i].Split(':');
            Instantiate(IdentificationParams.GetUnitFromId(Convert.ToInt32(line[0])), ElementsInGame[i - 1].transform);
            Instantiate(IdentificationParams.GetWeaponFromId(Convert.ToInt32(line[1])), ElementsInGame[i - 1].transform);
        }
        InstantiateUnitTeams();
    }
Exemplo n.º 10
0
 public void MoveToCord(int x, int y)
 {
     GridABS.NodeFromWorldPoint(transform.position).UnitOnNode = null;
     _localmarker.gameObject.SetActive(false);
     StartCoroutine(LerpMove(GridABS.GridOfArena[x, y]));
 }
Exemplo n.º 11
0
 public void ClearUnitNode(Vector3 position, NetworkElement networkElement = null)
 {
     GridABS.NodeFromWorldPoint(position).UnitOnNode = networkElement;
 }
Exemplo n.º 12
0
    public void PercAction()
    {
        if (!GranadeUI.activeInHierarchy)
        {
            GranadeUI.SetActive(true);
        }
        if (currentGranade == -1)
        {
            return;
        }

        GranadeUI.SetActive(false);

        RaycastHit hit;
        Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        Physics.Raycast(ray, out hit, Mathf.Infinity, ThisUnit.Manger.Mask);

        Vector3 localpoint = hit.point;

        if (hit.collider != null)
        {
            ThisUnit.Manger.ClearGrid();

            if (!_lineEffect.gameObject.activeInHierarchy)
            {
                _lineEffect.gameObject.SetActive(true);
            }

            _point          = GridABS.NodeFromWorldPoint(localpoint).Position;
            vectorsOfGrande = GetMatrix();
            _lineEffect.Stop(true, ParticleSystemStopBehavior.StopEmittingAndClear);

            var     vel = _lineEffect.velocityOverLifetime;
            Vector3 dir = (_point - transform.position).normalized;

            float dist = Vector3.Distance(_point, transform.position);
            if (dist > MaxDistantion)
            {
                dist = MaxDistantion;
            }
            vel.x = new ParticleSystem.MinMaxCurve(dir.x * dist);
            vel.z = new ParticleSystem.MinMaxCurve(dir.z * dist);

            _lineEffect.Play();

            Vector3 vector = GridABS.NodeFromWorldPoint(transform.position + dist * dir).Position;

            for (int i = 0; i < vectorsOfGrande.Length; i++)
            {
                vectorsOfGrande[i] += new Vector2(vector.x, vector.z);
                SpriteRenderer localmarcer = ThisUnit.Manger.PoolElement;
                localmarcer.transform.position = new Vector3(vectorsOfGrande[i].x, 0, vectorsOfGrande[i].y);
                localmarcer.color = Color.cyan;
                ThisUnit.Manger.TrashNode.Add(localmarcer);
            }

            if (Input.GetKeyDown(KeyCode.Mouse0) && !UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject())
            {
                ThisUnit.Manger.ClearGrid();

                var node = GridABS.NodeFromWorldPoint(_point);
                ClientReciverMK1.WriteMsg("/VSBoom" + node.x + ":" + node.y + ":" + (int)Granades[currentGranade].granade);
                var granadeLineFx = Instantiate(_granadelineFx, transform.position, Quaternion.identity);
                granadeLineFx.Stop();
                var fxvel = granadeLineFx.velocityOverLifetime;

                fxvel.x = new ParticleSystem.MinMaxCurve(dir.x * dist);
                fxvel.z = new ParticleSystem.MinMaxCurve(dir.z * dist);

                granadeLineFx.gameObject.SetActive(true);
                granadeLineFx.Play();

                _point = vector;
                ThisUnit.Manger.IsLock = true;

                Invoke("GetBoom", 1);
            }
        }
    }
Exemplo n.º 13
0
    public void StartBattle()
    {
        _effectOnUnit.Unit = this;

        BarHelty = transform.GetChild(0).GetChild(0).GetChild(0).gameObject;
        BarShild = transform.GetChild(0).GetChild(0).GetChild(1).gameObject;

        ChekDataMetod();

        Cost = WhatACost();

        MaxHelty = Helty;
        MaxShild = Shild;
        MaxArmor = Armor;
        if (FindObjectOfType <ManagerMovment> () == null)
        {
            ActivatedWorld = false;
            enabled        = false;
        }
        else
        {
            name = data.name.Remove(0, 2) + " : " + Random.Range(0, 1001);

            HandRenderer = transform.GetChild(2).GetComponent <SpriteRenderer> ();

            enabled        = true;
            Weapon.enabled = true;

            ActivatedWorld = true;
            manager        = FindObjectOfType <ManagerMovment> ();
            GridManager    = FindObjectOfType <GridABS> ();
            candosomething = true;

            #region установка значений показателей здоровья брони щита

            BarHelty.transform.localScale = new Vector3(1, Helty / MaxHelty, 1);

            if (Shild > 0)
            {
                BarShild.transform.localScale = new Vector3(1, Shild / MaxShild, 1);
            }
            else
            {
                BarShild.transform.localScale = new Vector3(1, 0, 1);
            }

            #endregion

            #region нормализация положения

            transform.eulerAngles = new Vector3(20, -45, 0);
            GridManager.GridOfArena[GridManager.NodeFromWorldPoint(transform.position).x1,
                                    GridManager.NodeFromWorldPoint(transform.position).y1].UnitOnNode = this;
            transform.position = GridManager.NodeFromWorldPoint(transform.position).Position + Vector3.forward * 0.12f +
                                 Vector3.up * 0.34f;
            transform.parent = GridManager.transform;

            #endregion

            PercBehevior             = gameObject.AddComponent <PercMainBehevior> ();
            PercBehevior.enabled     = false;
            PercBehevior.manager     = manager;
            PercBehevior.GridManager = GridManager;
            PercBehevior.data        = data.PercOfUnit;

            PercBehevior.SetParams();
            PercBehevior.ThisUnit = this;
            GridManager.GridOfArena[GridManager.NodeFromWorldPoint(transform.position).x1,
                                    GridManager.NodeFromWorldPoint(transform.position).y1].UnitOnNode = this;
            _effectOnUnit.FireFx          = manager.FireFX;
            _effectOnUnit.PoisnFx         = manager.PoisnFX;
            _effectOnUnit.ElectricShockFx = manager.ElectricShockFX;

            BarValue[0] = transform.GetChild(0).GetChild(0).GetChild(3).GetComponent <Text> ();
            BarValue[1] = transform.GetChild(0).GetChild(0).GetChild(4).GetComponent <Text> ();
            BarValue[2] = transform.GetChild(0).GetChild(0).GetChild(5).GetComponent <Text> ();

            name = data.name.Remove(0, 2) + " : " + Random.Range(0, 1001);

            HandRenderer = transform.GetChild(2).GetComponent <SpriteRenderer> ();
        }
    }