// Use this for initialization void Start() { //foreach (BuildingSystem build in BuildingTest) //{ // build.StartToBuild(1); //} player1.SetEther(5000); AllianceSystem.SetAlly(1, 3, true); //BuildingSystem strong = Instantiate(stronghold, startPoint.transform.position, startPoint.transform.rotation) as BuildingSystem; //strong.StartToBuild(1); foreach (BuildingSystem bui in startingStrong) { bui.StartToBuild(1); } }
void OnTriggerEnter(Collider other) { UnitStatSystem uni = other.gameObject.GetComponent <UnitStatSystem>(); if ((uni != null && uni.GetOwner() != ownerNum && !AllianceSystem.CheckAlly(ownerNum, uni.GetOwner())) || other.gameObject.tag == "Terrain") { if (uni != null && uni.GetAlive()) { uni.GetDamage(damage); } if (soundEff) { Instantiate(soundEff, transform.position, transform.localRotation); } Destroy(this.gameObject); } }
private void CheckTarget() { if (target != null) { Vector3 unitPos = new Vector3(transform.position.x, 0, transform.position.z); Vector3 targetPos = new Vector3(target.transform.position.x, 0, target.transform.position.z); if (Vector3.Distance(unitPos, targetPos) <= atkRange) { projPoint.transform.LookAt(target.transform); //projPoint.transform.rotation = Quaternion.Euler(0, projPoint.transform.eulerAngles.y, 0); StartAttack(); } else { target = null; } if (target == null || !target.GetAlive()) { target = null; } } else { Collider[] hitColliders = Physics.OverlapSphere(transform.position, atkNotice); int i = 0; while (i < hitColliders.Length) { UnitStatSystem enemyStat = hitColliders[i].GetComponent <UnitStatSystem>(); if (enemyStat != null && stat.GetOwner() != enemyStat.GetOwner() && !AllianceSystem.CheckAlly(stat.GetOwner(), enemyStat.GetOwner()) && enemyStat.GetAlive()) { target = enemyStat; Debug.Log("Found Enemy"); } i++; } } }
// Use this for initialization void Start() { SkirmishDataTransfer data = FindObjectOfType <SkirmishDataTransfer>(); if (data != null) { maxPlayer = data.GetMaxPlayer(); playerActive = data.GetAssignPlayer(); factions = data.GetFaction(); playerTeam = data.GetTeam(); //Spawn Player for (int i = 0; i < maxPlayer; i++) { if (playerActive[i]) { if (i >= 1) { GameObject aiOBJ = Instantiate(AIDummy, transform.position, transform.rotation) as GameObject; VRPlayerIndicator ai = aiOBJ.gameObject.GetComponent <VRPlayerIndicator>(); ai.SetPlayerNum(i + 1); } VRPlayerIndicator player = null; foreach (GameObject plays in GameObject.FindGameObjectsWithTag("Player")) { VRPlayerIndicator ind = plays.GetComponent <VRPlayerIndicator>(); if (ind.GetPlayerNumber() == i + 1) { player = ind; } } player.SetEther(1500); player.transform.position = startPosition[i].transform.position - (Vector3.forward * 20); if (factions[i] == SkirmishScreenSelection.FactionType.Chaiya) { BuildingSystem strong = Instantiate(chaiyaStrong, startPosition[i].transform.position, startPosition[i].transform.rotation) as BuildingSystem; strong.StartToBuild(i + 1); } if (factions[i] == SkirmishScreenSelection.FactionType.Ulepia) { BuildingSystem strong = Instantiate(ulepiaStrong, startPosition[i].transform.position, startPosition[i].transform.rotation) as BuildingSystem; strong.StartToBuild(i + 1); } if (factions[i] == SkirmishScreenSelection.FactionType.Shin) { BuildingSystem strong = Instantiate(shinStrong, startPosition[i].transform.position, startPosition[i].transform.rotation) as BuildingSystem; strong.StartToBuild(i + 1); } } } //Ally Set for (int i = 0; i < maxPlayer; i++) { for (int j = 0; j < maxPlayer; j++) { if (i != j && playerTeam[i] == playerTeam[j]) { AllianceSystem.SetAlly(i + 1, j + 1, true); } } } data.SetTransfered(true); } else { } }
// Update is called once per frame void Update() { coolNow -= Time.deltaTime; if (stat.GetAlive() && autoATKEnabled) { if (target != null) { Vector3 unitPos = new Vector3(transform.position.x, 0, transform.position.z); Vector3 targetPos = new Vector3(target.transform.position.x, 0, target.transform.position.z); RaycastHit hit; bool isCol = false; if (Physics.Raycast(transform.position + transform.up, transform.TransformDirection(Vector3.forward), out hit, atkRange)) { GameObject hitObject = hit.transform.gameObject; if (hitObject == target.gameObject) { isCol = true; } } if (Vector3.Distance(unitPos, targetPos) <= atkRange || isCol) { UnitMove uni = GetComponent <UnitMove>(); uni.OrderMove(Vector3.one); this.transform.LookAt(target.transform); this.transform.rotation = Quaternion.Euler(0, this.transform.eulerAngles.y, 0); CommandATK(); } else { UnitMove mover = GetComponent <UnitMove>(); mover.OrderMove(target.transform.position); } if (target == null || !target.GetAlive()) { target = null; } } else { Collider[] hitColliders = Physics.OverlapSphere(transform.position, atkNotice); int i = 0; while (i < hitColliders.Length) { UnitStatSystem enemyStat = hitColliders[i].GetComponent <UnitStatSystem>(); if (enemyStat != null && stat.GetOwner() != enemyStat.GetOwner() && !AllianceSystem.CheckAlly(stat.GetOwner(), enemyStat.GetOwner()) && enemyStat.GetAlive()) { target = enemyStat; Debug.Log("Found Enemy"); } i++; } } } else { target = null; } }
void CheckUnitOBJ(GameObject hitObject) { UnitStatSystem unit = hitObject.GetComponent <UnitStatSystem>(); if (unit != null) { Debug.Log("SELECT UNIT"); if (unit.GetUnitType() == UnitStatSystem.UnitObjectType.Building) { Debug.Log("SELECT Building"); BuildingSystem buil = hitObject.GetComponent <BuildingSystem>(); if (player.GetPlayerNumber() == buil.GetOwner()) { Debug.Log("Select Own Building"); UnselectUnit(); UnselectWorker(); if (buil != selectedBuilding) { UnselectBuilding(); SelectBuilding(buil); } } } if (unit.GetUnitType() == UnitStatSystem.UnitObjectType.Units) { WorkerUnit wor = unit.GetComponent <WorkerUnit>(); if (wor != null) { if (player.GetPlayerNumber() == wor.GetOwner()) { UnselectUnit(); UnselectBuilding(); if (wor != selectedWorker) { UnselectWorker(); SelectWorker(wor); } } } } if (unit.GetOwner() != player.GetPlayerNumber() && selectedUnit != null) { if (!AllianceSystem.CheckAlly(player.GetPlayerNumber(), unit.GetOwner())) { Debug.Log("ATTACK"); selectedUnit.SetAutoAttaack(true); selectedUnit.SetTarget(unit.gameObject); } } } if (hitObject.tag == "Soldier Group") { Debug.Log("SELECT SOLDIER"); UnitGroupSystem unitGro = hitObject.GetComponent <UnitGroupSystem>(); if (player.GetPlayerNumber() == unitGro.GetOwner()) { Debug.Log("Select own Soldier"); UnselectBuilding(); UnselectWorker(); if (unitGro != selectedUnit) { UnselectUnit(); SelectUnit(unitGro); } } if (unitGro.GetOwner() != player.GetPlayerNumber() && selectedUnit != null) { if (!AllianceSystem.CheckAlly(player.GetPlayerNumber(), unitGro.GetOwner())) { Debug.Log("ATTACK"); selectedUnit.SetAutoAttaack(true); selectedUnit.SetTarget(unitGro.gameObject); } } } }
private void CheckArmy() { foreach (UnitGroupSystem army in armyList) { if (!army) { armyList.Remove(army); Destroy(army.gameObject); } } foreach (UnitGroupSystem army in armyList) { GameObject target = null; Collider[] hitColliders = Physics.OverlapSphere(army.transform.position, 50); int i = 0; while (i < hitColliders.Length) { UnitStatSystem tarStat = hitColliders[i].GetComponent <UnitStatSystem>(); if (tarStat && tarStat.GetAlive() && tarStat.GetOwner() != playerStat.GetPlayerNumber() && !AllianceSystem.CheckAlly(playerStat.GetPlayerNumber(), tarStat.GetOwner())) { target = tarStat.gameObject; } else { UnitGroupSystem tarGroup = hitColliders[i].GetComponent <UnitGroupSystem>(); if (tarGroup && tarGroup.GetOwner() != playerStat.GetPlayerNumber() && !AllianceSystem.CheckAlly(playerStat.GetPlayerNumber(), tarGroup.GetOwner())) { target = tarGroup.gameObject; } } i++; } if (target && !army.HaveTarget()) { army.SetAutoAttaack(true); army.SetTarget(target); } else { if (armyList.Count >= 3) { UnitStatSystem[] tarG = FindObjectsOfType <UnitStatSystem>(); foreach (UnitStatSystem tarDum in tarG) { if (tarDum && tarDum.GetAlive() && tarDum.GetOwner() != playerStat.GetPlayerNumber() && !AllianceSystem.CheckAlly(playerStat.GetPlayerNumber(), tarDum.GetOwner())) { target = tarDum.gameObject; } } if (target) { army.GetComponent <UnitMove>().OrderMove(target.transform.position); } } else { GameObject posDummy = Instantiate(aiPointDummy, aiStronghold.transform.position, aiStronghold.transform.rotation) as GameObject; posDummy.transform.Rotate(new Vector3(0, Random.Range(135f, 225f), 0)); posDummy.transform.position += posDummy.transform.forward * Random.Range(40, 50); army.GetComponent <UnitMove>().OrderMove(posDummy.transform.position); //army.GetComponent<UnitMove>().OrderMove(Vector3.one); } } } }