// Update is called once per frame void FixedUpdate() { if (canMove) { movement(); float delta = Time.deltaTime; //Method that allows attacking if (target != null) { aTimer += delta; if (aTimer >= ATTACK_INTERVAL) { fighter.executeSecMove(curMainAttack, target); curMainAttack++; curMainAttack -= (curMainAttack > MAIN_ATTACK_2) ? NUM_MAIN_ATTACKS : 0; aTimer = 0f; } } //Method that manages melee attack timer if (!canMelee) { mTimer += delta; if (mTimer >= MELEE_ATTACK_INTERVAL) { canMelee = true; mTimer = 0f; } } } }
// Update is called once per frame void FixedUpdate() { if (canMove && target != null) { //Enemy movement Vector2 movement = new Vector2(target.position.x - transform.position.x, target.position.y - transform.position.y); movement.Normalize(); Battle.updateBasicOrientation(movement, transform); anim.SetFloat("speed", enemyFighter.getMoveSpeed()); transform.Translate(movement * enemyFighter.getMoveSpeed() * 0.5f); //Behavior upon stun: If enemy stunned, charge dash. If dash couldn't be run, use a water pulse PKMNEntity tgtFighter = target.GetComponent <PlayerMovement>().getCurFighter(); if (!stunMoveExecuted && tgtFighter.isStunned()) { stunMoveExecuted = enemyFighter.executeSecMove(MAIN_TACKLE, target); if (stunMoveExecuted) { aTimer = 0f; } else { stunMoveExecuted = enemyFighter.executeSecMove(BUBBLE_SHIELD, target); } } //Timers float delta = Time.deltaTime; aTimer += delta; //Resetter for attack timer if (aTimer >= MAX_ATTACK_INTERVAL) { enemyFighter.executeSecMove(MAIN_TACKLE, target); stunMoveExecuted = false; aTimer = 0f; } //Resetter for melee timer if (!canMelee) { meleeTimer += delta; if (meleeTimer >= MELEE_ATTACK_INTERVAL) { canMelee = true; meleeTimer = 0.0f; } } } }
// Update is called once per frame void FixedUpdate() { if (target != null && canMove) { enemyMovement(); //Behavior upon player stun PKMNEntity tgtFighter = target.GetComponent <PlayerMovement>().getCurFighter(); if (!stunMoveExecuted && tgtFighter.isStunned()) { stunMoveExecuted = enemyFighter.executeSecMove(MAIN_SHOOTER, target); aTimer = (stunMoveExecuted) ? 0f : aTimer; } //Updating timers foir shooting intervals float delta = Time.deltaTime; aTimer += delta; if (aTimer >= MAX_ATTACK_INTERVAL) { enemyFighter.executeSecMove(MAIN_SHOOTER, target); stunMoveExecuted = false; aTimer = 0f; } //Updating timers for melee attacks if (!canMelee) { meleeTimer += delta; if (meleeTimer >= MELEE_ATTACK_INTERVAL) { canMelee = true; meleeTimer = 0f; } } //Updating dash timers if (!canDash) { dashTimer += delta; if (dashTimer >= DASH_INTERVAL) { dashTimer = 0f; canDash = true; } } } }
//Controller for combat. Wiil mostly focus around the mouse void combat() { //Executes primary move upon left click if (Input.GetMouseButtonDown(0) && !assistSeqOn) { selectedFighter.executePrimaryMove(); } //Executes secondary move upon right click if (Input.GetMouseButtonDown(1) && !assistSeqOn) { selectedFighter.executeSecMove(secMoveIndex); } }