public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { if (!_controller.gameObject.activeSelf) { return; } TemplateUnits unit = _controller as TemplateUnits; if (unit.targetPosition == vectorZero) { if (checkIsAlive) { if (!CityMaster.instance.IsBuildAlive(this.buildTag)) { return; } } if (CityMaster.instance.HasFreeSlot(this.buildTag)) { ConstructionData data = CityMaster.instance.FindBuild(this.buildTag); unit.targetPosition = data.obj.transform.position; unit.targetPosition.y = _controller.transform.position.y; unit.targetBuild = this.buildTag; unit.targetBuildData = data; unit.agent.SetDestination(unit.targetPosition); } } }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { Guards unit = _controller as Guards; if (!CityMaster.instance.HasAttackers()) { if (unit.targetEnemys.Count > 0) { return; } Collider[] colliders = Physics.OverlapSphere(unit.transform.position, this.radius, this.mask); for (int count = 0; count < colliders.Length; count++) { unit.AddTarget(TargetType.Close, colliders[count].gameObject); } return; } if (unit.targetEnemys.Count > 0 && unit.targetEnemys[0].type != TargetType.Attacker) { unit.targetEnemys.Clear(); } TemplateUnits enemy = CityMaster.instance.GetAttacker(); if (enemy != null && !unit.HasTarget(TargetType.Attacker, enemy.gameObject)) { unit.AddTarget(TargetType.Attacker, enemy.gameObject); } }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { if (!(_controller is TemplateUnits)) { return; } TemplateUnits units = _controller as TemplateUnits; if (units.targetEnemys.Count > 0) { return; } Collider[] colliders = Physics.OverlapSphere(units.transform.position, this.radius, this.mask); for (int count = 0; count < colliders.Length; count++) { if (!colliders[count].gameObject.activeSelf) { continue; } units.AddTarget(this.type, colliders[count].gameObject); } }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { TemplateUnits unit = _controller as TemplateUnits; if (Vector3.Distance(unit.transform.position, unit.agent.destination) > unit.attackDistance || (unit.targetEnemy == null && unit.targetBuild == null)) { return; } if (unit.currAttackCoolDown <= 0) { if (unit.targetEnemy != null) { unit.targetEnemy.ApplyDamage(unit, unit.attackDamage); unit.anim.Play("Attack"); unit.currAttackCoolDown = unit.attackCoolDown; } else if (unit.targetBuild != null) { CityMaster.instance.AttackBuild(unit.attackDamage, unit.targetBuild, unit); unit.currAttackCoolDown = unit.attackCoolDown; } } unit.currAttackCoolDown -= _delta; }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { Vector3 totalMovement = this.vectorZero; if (this.mousePosition.value.x < this.threshold && this.cameraHolder.value.position.x > this.minPosition.x) { totalMovement += -this.vectorRight * Mathf.Clamp(this.speed * Mathf.Abs(1 - (this.mousePosition.value.x / this.threshold)), this.minSpeed, this.maxSpeed); } else if (this.mousePosition.value.x > Screen.width - this.threshold && this.cameraHolder.value.position.x < this.maxPosition.x) { float posMouse = Mathf.Abs(this.mousePosition.value.x - (Screen.width - this.threshold)); totalMovement += this.vectorRight * Mathf.Clamp(this.speed * (posMouse / this.threshold), this.minSpeed, this.maxSpeed); } if (this.mousePosition.value.y < this.threshold && this.cameraHolder.value.position.z > this.minPosition.z) { totalMovement += -this.vectorForward * Mathf.Clamp(this.speed * Mathf.Abs(1 - (this.mousePosition.value.y / this.threshold)), this.minSpeed, this.maxSpeed); } else if (this.mousePosition.value.y > Screen.height - this.threshold && this.cameraHolder.value.position.z < this.maxPosition.z) { float posMouse = Mathf.Abs(this.mousePosition.value.y - (Screen.height - this.threshold)); totalMovement += this.vectorForward * Mathf.Clamp((this.speed * (posMouse / this.threshold)), this.minSpeed, this.maxSpeed); } if (totalMovement != this.vectorZero) { this.cameraHolder.value.position += totalMovement * _delta; } }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { if (Input.GetKey(KeyCode.Escape)) { this.escEvent.Raise(); } }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { TemplateUnits unit = _controller as TemplateUnits; Vector3 targetPosition = this.vectorZero; if (unit.targetEnemy != null) { targetPosition = unit.targetEnemy.transform.position; } else if (unit.targetBuildData != null && unit.targetBuildData.obj != null) { targetPosition = unit.targetBuildData.obj.transform.position; } else { targetPosition = unit.agent.destination; } Vector3 direction = (targetPosition - unit.transform.position).normalized; direction.y = 0; Quaternion lookRotation = Quaternion.LookRotation(direction); unit.transform.rotation = Quaternion.Slerp(unit.transform.rotation, lookRotation, Time.deltaTime * this.rotationSpeed); }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { TemplateUnits unit = _controller as TemplateUnits; unit.targetPosition = this.vectorZero; unit.targetBuild = null; unit.targetBuildData = null; }
public override bool CheckCondition(TemplateControllerCustom _object) { if (Physics.CheckSphere(_object.transform.position, this.radius, this.layerEnemys)) { return(true); } return(false); }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { TemplateUnits unit = _controller as TemplateUnits; if (CityMaster.instance.HideInBuild(unit.targetBuild, unit)) { unit.isHidden = true; unit.gameObject.SetActive(false); } }
public override bool CheckCondition(TemplateControllerCustom _object) { TemplateUnits guard = _object as TemplateUnits; if (guard.targetEnemys.Count <= 0) { return(true); } return(false); }
public override bool CheckCondition(TemplateControllerCustom _object) { TemplateUnits units = _object as TemplateUnits; if (!units.isAlive) { return(true); } return(false); }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { TemplateUnits unit = _controller as TemplateUnits; if (unit.targetPosition == vectorZero) { unit.targetPosition = Random.insideUnitSphere * this.data.Radius; unit.targetPosition.y = _controller.transform.position.y; unit.agent.SetDestination(unit.targetPosition); } }
public override bool CheckCondition(TemplateControllerCustom _object) { TemplateUnits units = _object as TemplateUnits; if (Vector3.Distance(units.agent.destination, units.transform.position) < units.agent.stoppingDistance && units.targetPosition != vectorZero) { return(true); } return(false); }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { if (Input.GetButtonDown("Fire2")) { this.rightclickDownEvent.Raise(); } else if (Input.GetButtonUp("Fire2")) { this.rightclickUpEvent.Raise(); } }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { TemplateUnits unit = _controller as TemplateUnits; if (unit.targetEnemy != null) { if (unit.targetEnemy.isHidden) { unit.targetEnemy = null; unit.targetEnemys.RemoveAt(0); } } }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { if (this.mouseScroll.value != 0) { Vector3 cameraPos = this.cameraHolder.value.position; cameraPos.y = Mathf.Lerp(cameraPos.y, cameraPos.y + this.mouseScroll.value * this.speed, this.speed * _delta); Debug.Log(cameraPos.y); cameraPos.y = Mathf.Clamp(cameraPos.y, this.minY, this.maxY); this.cameraHolder.value.position = cameraPos; } }
public override bool CheckCondition(TemplateControllerCustom _object) { if (!Physics.CheckSphere(_object.transform.position, this.radius, this.layerEnemys)) { TemplateUnits unit = _object as TemplateUnits; if (this.CheckHidden && unit.isHidden) { return(false); } return(true); } return(false); }
public override bool CheckCondition(TemplateControllerCustom _object) { TemplateUnits unit = _object as TemplateUnits; if (!Physics.CheckSphere(_object.transform.position, this.radius, this.layerEnemys)) { if (Time.timeSinceLevelLoad - unit.TimeSinceLastEnemy < this.maxTimeWithoutEnemys) { return(false); } return(true); } unit.TimeSinceLastEnemy = Time.timeSinceLevelLoad; return(false); }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { TemplateUnits unit = _controller as TemplateUnits; if (unit.lastAttacker != null) { if (!unit.lastAttacker.isAlive) { unit.lastAttacker = null; return; } unit.targetEnemys.Clear(); unit.targetEnemy = unit.lastAttacker; unit.AddTarget(TargetType.Attacker, unit.lastAttacker.gameObject); unit.agent.SetDestination(unit.lastAttacker.transform.position); } }
public override bool CheckCondition(TemplateControllerCustom _object) { TemplateUnits units = _object as TemplateUnits; if (units.targetBuild == null) { return(false); } float distance = Vector3.Distance(units.targetPosition, units.transform.position); if (distance < this.minDistance) { if (this.checkUnitsSlot && !CityMaster.instance.HasFreeSlot(units.targetBuild)) { return(false); } return(true); } return(false); }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { if (!_controller.gameObject.activeSelf) { return; } TemplateUnits unit = _controller as TemplateUnits; if (unit.targetPosition == vectorZero) { if (unit.targetBuild == null) { Vector3 newPosition = unit.transform.forward * Random.Range(this.distance, this.distance); newPosition += unit.transform.right * Random.Range(-this.distance, this.distance); unit.targetPosition = newPosition; unit.targetPosition.y = _controller.transform.position.y; unit.targetBuild = null; unit.agent.SetDestination(unit.targetPosition); } } }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { if (!_controller.gameObject.activeSelf) { return; } TemplateUnits unit = _controller as TemplateUnits; if (unit.targetPosition == vectorZero) { ConstructionData data = CityMaster.instance.GetClosestBuild(_controller.transform.position); if (data != null) { unit.targetPosition = data.obj.transform.position; unit.targetPosition.y = _controller.transform.position.y; unit.targetBuild = data.ID; unit.targetBuildData = data; unit.agent.SetDestination(unit.targetPosition); } } }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { if (!AIMaster.instance.HasStarted()) { return; } if (this.currUnits.value >= this.totalUnits.value) { this.remainCoolDown = this.cooldown; return; } this.remainCoolDown -= _delta; this.addUnitTimerPerc.value = this.remainCoolDown / this.cooldown; if (this.remainCoolDown <= 0) { this.currUnits.value++; this.remainCoolDown = this.cooldown; this.uiEvent.Raise(); } }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { if (!(_controller is TemplateUnits)) { return; } TemplateUnits unit = _controller as TemplateUnits; if (unit.targetEnemys.Count <= 0) { return; } if (unit.targetEnemys[0].obj == null) { unit.targetEnemys.RemoveAt(0); return; } if (unit.targetEnemys[0].type != TargetType.Construction) { if (unit.targetEnemy == null) { unit.targetEnemy = unit.targetEnemys[0].obj.GetComponent <TemplateUnits>(); unit.agent.SetDestination(unit.targetEnemy.transform.position); return; } if (Vector3.Distance(unit.agent.destination, unit.targetEnemy.transform.position) > Threshold) { unit.agent.SetDestination(unit.targetEnemy.transform.position); } if (!unit.targetEnemy.isAlive) { unit.targetEnemy = null; unit.targetEnemys.RemoveAt(0); } } else { if (unit.targetBuild == null) { ConstructionData data = CityMaster.instance.FindBuildByGameObject(unit.targetEnemys[0].obj); unit.targetBuild = data.ID; unit.targetBuildData = data; unit.agent.SetDestination(unit.targetBuildData.obj.transform.position); } if (!CityMaster.instance.IsBuildAlive(unit.targetBuild)) { unit.targetBuild = null; unit.targetBuildData = null; unit.targetEnemys.RemoveAt(0); } } }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { TemplateUnits unit = _controller as TemplateUnits; unit.anim.SetFloat(this.VariableName, unit.agent.velocity.magnitude); }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { this.mousePosition.value = Input.mousePosition; }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { TemplateUnits unit = _controller as TemplateUnits; UIManager.instance.AddUnit(unit, this.color, unit.offsetUI); }
public override void Execute(TemplateControllerCustom _controller, float _delta = 0) { TemplateUnits unit = _controller as TemplateUnits; unit.agent.stoppingDistance = this.stopDistance; }
public override bool CheckCondition(TemplateControllerCustom _object) { return(!CityMaster.instance.HasAttackers()); }