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"); }
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(); } } }
public void GetReload() { if (CorrectUnit.Controlled) { CorrectUnit.weapon.Ammo = CorrectUnit.weapon.MaxAmmo; ShowInfoText("Reload", Color.white, CorrectUnit.transform.position); EndTurn(); ClientReciverMK1.WriteMsg("/EndTurn"); } }
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"); }
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"); }
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); }
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!"); } } }
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"; } }
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(); } } }
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); } } }
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); } } }