protected override void Start() { base.Start(); rayShooter = GetComponent <RayShooter>(); forceApplier = GetComponent <ForceApplier>(); damageCalculator = GetComponent <DamageCalculator>(); }
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { //REFERENCIAS enemy = animator.gameObject.GetComponentInParent <MELEE_enemy>(); target = enemy.target; forceApplier = animator.gameObject.GetComponentInParent <ForceApplier>(); //-ATTACK SETUP- enemy.transform.LookAt(target.transform.position); //Ignora la colisión entre el enemigo y el objetivo del ataque para que no obstaculice la embestida Physics.IgnoreCollision(target.GetComponent <CharacterController>(), enemy.GetComponent <CharacterController>(), true); //Acto seguido, activa el trigger que es el que se encargará de gestionar si el ataque ha golpeado, su daño, knockback, etc. enemy.attackCollider.enabled = true; //Y finalmente reemplazamos el daño 'default' por el daño de este ataque en concreto. enemy.damage = attackDamage; enemy.isVulnerable = false; //-ATTACK ACTION- //Una vez se han establecido las condiciones para el ataque, se impulsa al enemigo en dirección a su objetivo, con una fuerza igual a 'attackImpulse' forceApplier.AddImpact(new Vector3(enemy.transform.forward.x, 0, enemy.transform.forward.z), attackImpulse); if (enemy.weapon != null) { enemy.weapon.GetComponentInChildren <EnemyMeleeWeapon>().damage = attackDamage; enemy.weapon.transform.LookAt(target.transform.position); enemy.weapon.GetComponentInChildren <Animator>().SetTrigger("Attack"); //ESTO ESTA FEO Y HAY QUE HACERLO MAS BONITO } }
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { //REFERENCIAS enemy = animator.gameObject.GetComponentInParent <RANGED_enemy>(); target = enemy.target; forceApplier = animator.gameObject.GetComponentInParent <ForceApplier>(); enemy.transform.LookAt(target.transform.position); enemy.isVulnerable = false; //-ATTACK SETUP- //Ignora la colisión entre el enemigo y el objetivo del ataque para que no obstaculice la embestida Physics.IgnoreCollision(target.GetComponent <CharacterController>(), enemy.GetComponent <CharacterController>(), true); //Acto seguido, activa el trigger que es el que se encargará de gestionar si el ataque ha golpeado, su daño, knockback, etc. //enemy.attackCollider.enabled = true; //Y finalmente reemplazamos el daño 'default' por el daño de este ataque en concreto. enemy.damage = attackDamage; //-ATTACK ACTION- Instantiate(enemy.projectile, new Vector3(enemy.transform.position.x, enemy.transform.position.y + 1.2f, enemy.transform.position.z), enemy.transform.rotation); //Una vez se han establecido las condiciones para el ataque, se impulsa al enemigo en dirección a su objetivo, con una fuerza igual a 'attackImpulse' Vector3 attackDir = (target.transform.position - enemy.transform.position).normalized; forceApplier.AddImpact(new Vector3(-attackDir.x, 0, -attackDir.z), recoilImpulse); }
// Start is called before the first frame update void Start() { currentHealth = stats.health; isVulnerable = true; agent = GetComponent <NavMeshAgent>(); controller = GetComponent <CharacterController>(); target = GameObject.FindGameObjectWithTag("Player"); forceApplier = GetComponent <ForceApplier>(); canAttack = true; canDamage = true; isAlive = true; willpower = 0; addedToList = false; if (isPatrolling) { nextSpot = 0; agent.SetDestination(patrolSpots[0].position); } initializeStatsWidget(); statsWidget.SetActive(false); }
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { //REFERENCIAS enemy = animator.gameObject.GetComponentInParent <RANGED_enemy>(); target = enemy.target; forceApplier = animator.gameObject.GetComponentInParent <ForceApplier>(); enemy.transform.LookAt(target.transform.position); //Mira a su objetivo //-ATTACK ACTION- GameObject animaKiller = Instantiate(animaKillerPrefab, new Vector3(enemy.transform.position.x, enemy.transform.position.y + 1.2f, enemy.transform.position.z), enemy.transform.rotation); animaKiller.GetComponent <ProjectileController>().target = target.transform; //Una vez se han establecido las condiciones para el ataque, se impulsa al enemigo en dirección a su objetivo, con una fuerza igual a 'attackImpulse' Vector3 attackDir = (target.transform.position - enemy.transform.position).normalized; forceApplier.AddImpact(new Vector3(-attackDir.x, 0, -attackDir.z), recoilImpulse); }
void Update() { if (Input.GetKeyDown(PunchButton)) { ForceBarUpdator.Instance.Stop(); if (forceMagnitude <= 0) { return; } ForceApplier.GetForceFromInputRegister(forceMagnitude); Reset(); } else if (Input.GetKeyDown(RestartButton)) { OnReset.Invoke(); } }
protected override void Start() { base.Start(); ammo = GetComponent <Ammo>(); rayShooter = GetComponent <RayShooter>(); if (dealDamage) { forceApplier = GetComponent <ForceApplier>(); damageCalculator = GetComponent <DamageCalculator>(); if (forceApplier == null) { forceApplier = gameObject.AddComponent <ForceApplier>(); } if (damageCalculator == null) { damageCalculator = gameObject.AddComponent <DamageCalculator>(); } } _angle = Quaternion.AngleAxis(verticalAngle, Vector3.left); }
private void Start() { movementController = GetComponent <MovementController>(); playerTransform = GetComponent <Transform>(); forceApplier = GetComponent <ForceApplier>(); playerInput = GetComponent <PlayerInput>(); healthBar = FindObjectOfType <HealthBarController>(); enemyHPBar = FindObjectOfType <EnemyHealthBar>(); enemyWPBar = FindObjectOfType <EnemyWillPowerBar>(); concentrationBar = FindObjectOfType <ConcentrationBarController>(); concentrationBar.setMaxConcentation(maxConcentration); willpowerBar = FindObjectOfType <WillpowerBar>(); willpowerBar.setMaxWillpower(maxWillPower); //willpower = maxWillPower; noOfTaps = 0; concentration = maxConcentration; canAttack = true; isVulnerable = true; isBlocking = false; health = maxHealth; healthBar.setMaxHealth(maxHealth); }
private void Awake() { instance = this; }