Exemplo n.º 1
0
    void GetFinalAction()
    {
        int giveValue = (targetVapireEnergy.EP - PowerPerc) > 0 ? (-PowerPerc / 2) : (-PowerPerc - (targetVapireEnergy.EP - PowerPerc)) / 2;

        marker.SetActive(false);
        targetVapireEnergy.GetDamage(PowerPerc, 0, (int)BasicUnit.DamageType.Energy);
        ClientReciverMK1.WriteMsg("/Damage" + ThisUnit.Manger.GetUnitId(targetVapireEnergy.transform.parent.GetComponent <NetworkElement> ()) + ":" + PowerPerc + ":" + 0 + ":" + (int)BasicUnit.DamageType.Energy);

        if (ThisUnit == targetGiveEnergy)
        {
            giveValue += PowerPerc + 5;
        }
        else
        {
            ThisUnit.GetDamage(PowerPerc, 0, (int)BasicUnit.DamageType.Energy);
            ClientReciverMK1.WriteMsg("/Damage" + ThisUnit.Manger.GetUnitId(transform.parent.GetComponent <NetworkElement> ()) + ":" + PowerPerc + ":" + 0 + ":" + (int)BasicUnit.DamageType.Energy);
        }

        targetGiveEnergy.GetDamage(giveValue, 0, (int)BasicUnit.DamageType.Energy);
        ClientReciverMK1.WriteMsg("/Damage" + ThisUnit.Manger.GetUnitId(targetGiveEnergy.transform.parent.GetComponent <NetworkElement> ()) + ":" + giveValue + ":" + 0 + ":" + (int)BasicUnit.DamageType.Energy);

        ThisUnit.Manger.ClearGrid();

        ThisUnit.Manger.EndTurn();
        ClientReciverMK1.WriteMsg("/EndTurn");
    }
Exemplo n.º 2
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();
            }
        }
    }
Exemplo n.º 3
0
 public void GetReload()
 {
     if (CorrectUnit.Controlled)
     {
         CorrectUnit.weapon.Ammo = CorrectUnit.weapon.MaxAmmo;
         ShowInfoText("Reload", Color.white, CorrectUnit.transform.position);
         EndTurn();
         ClientReciverMK1.WriteMsg("/EndTurn");
     }
 }
Exemplo n.º 4
0
    void GetFinalAction()
    {
        foreach (NetworkElement item in targetList)
        {
            item.unit.GetDamage(0, PowerPerc, (int)BasicUnit.DamageType.Stan);
            ClientReciverMK1.WriteMsg("/Damage" + ThisUnit.Manger.GetUnitId(item) + ":" + 0 + ":" + PowerPerc + ":" + (int)BasicUnit.DamageType.Stan);
        }

        ThisUnit.Manger.ClearGrid();

        ThisUnit.Manger.EndTurn();
        ClientReciverMK1.WriteMsg("/EndTurn");
    }
Exemplo n.º 5
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.º 6
0
    public void StartBattle()
    {
        if (listunit.Count > 2)
        {
            return;
        }
        string result = "/SetUnits";

        foreach (string n in listunit)
        {
            result += n;
        }
        ClientReciverMK1.WriteMsg(result);
        client.StartReading();
        InGameUI.SetActive(true);
        gameObject.SetActive(false);
    }
Exemplo n.º 7
0
    public void StartServer()
    {
        if (!startServet)
        {
            try {
                startServet = true;

                Process.Start("ServerForGame.exe");
                ClientReciverMK1.server = "127.0.0.1";
                Loading.StartLoading(1, 1);
                ClientReciverMK1.Connect();
            } catch {
                startServet = false;
                UnityEngine.Debug.LogError("ServerCreateFail!");
            }
        }
    }
Exemplo n.º 8
0
    public void ConnectToServer()
    {
        ClientReciverMK1.server = IPAdressContainer.text;
        string   userName  = "******";
        FileInfo loginName = new FileInfo("loginName.txt");

        if (!loginName.Exists)
        {
            StreamReader logStream = new StreamReader("loginName.txt");
            userName = logStream.ReadToEnd();
        }

        try {
            ClientReciverMK1.Connect(userName);
            Loading.StartLoading(1, 0.5f);
        } catch {
            UnityEngine.Debug.LogError("ConnectFail!");
            IPAdressContainer.text = "Fail Connect";
        }
    }
Exemplo n.º 9
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.º 10
0
    public virtual IEnumerator MoveBullet(NodeA targetNode)
    {
        _unit.unit.AttackUse();
        yield return(new WaitForSeconds(0.25f));

        for (int i = 0; i < BulletPerShoot; i++)
        {
            _target.Manger.PlaySpecific(Sound);

            Vector3        targetPosition = targetNode.Position + Vector3.up * (Random.Range(-5, 11) / 20f) + Vector3.up * 0.6f;
            Vector3        selfPosition   = transform.position + (targetPosition - (transform.position + Vector3.up * 0.3f)).normalized * 0.25f + Vector3.up * 0.3f;
            NetworkElement targetUnit     = targetNode.UnitOnNode;
            GameObject     localBullet    = Instantiate(_bullet, selfPosition, Quaternion.identity);
            float          distantion     = Vector3.Distance(selfPosition, targetPosition);
            while (Vector3.Distance(localBullet.transform.position, targetPosition) > 0.05f)
            {
                localBullet.transform.Translate((targetPosition - selfPosition) / valuespeedBullet);
                yield return(new WaitForFixedUpdate());
            }

            float   n = Random.Range(0, 100);
            Shelter shelter;

            float DistanceTarget = Vector3.Distance(selfPosition, targetUnit.transform.position + Vector3.up * (Random.Range(-5, 11) / 20f));

            float Range = NormalDist / DistanceTarget;
            float targetShelterValue = targetUnit.GetShelterLevel(out shelter);
            if (Range > 1)
            {
                Range = 1;
            }

            if (n < Range * 100f - targetShelterValue)
            {
                FinalDamage += Damage;
            }
            else
            {
                if (Random.Range(0, 101) > targetShelterValue * 0.75f)
                {
                    if (shelter != null)
                    {
                        Instantiate(shelter.FX, shelter.transform.position, Quaternion.identity);
                        shelter.ShelterLevl -= Damage * 3;
                        if (shelter.ShelterLevl < 1)
                        {
                            Destroy(shelter.gameObject);
                        }
                    }
                }
            }
            Ammo--;
            Destroy(localBullet);
            yield return(new WaitForSeconds(WaitTime));
        }

        if (_unit.Controlled)
        {
            if (FinalDamage > 0)
            {
                ClientReciverMK1.WriteMsg("/Damage" + _unit.unit.Manger.GetUnitId(targetNode.UnitOnNode) + ":" + FinalDamage + ":" + 0 + ":" + 0);
                _target.GetDamage(FinalDamage);
                FinalDamage = 0;
            }
            else
            {
                ClientReciverMK1.WriteMsg("/Damage" + _unit.unit.Manger.GetUnitId(targetNode.UnitOnNode) + ":" + 0 + ":" + 0 + ":" + -1);
                _target.GetDamage(0, 0, -1);
            }
        }
    }
Exemplo n.º 11
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);
            }
        }
    }