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(); }
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; } }
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"); }
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; }
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 { } }
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; } }
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 { } }
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 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(); }
public void MoveToCord(int x, int y) { GridABS.NodeFromWorldPoint(transform.position).UnitOnNode = null; _localmarker.gameObject.SetActive(false); StartCoroutine(LerpMove(GridABS.GridOfArena[x, y])); }
public void ClearUnitNode(Vector3 position, NetworkElement networkElement = null) { GridABS.NodeFromWorldPoint(position).UnitOnNode = networkElement; }
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); } } }
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> (); } }