public void ActionRepairWagon(WagonManager wagon) { myState = HenchmenAI.HenchmenState.RepairWagon; currentWagon = wagon; wagon.InteractWithWagon(WAGON_INTERACTION.ATTACH_REPAIR_WORKER); StartCoroutine(RepairWagon()); //Start coroutine to repair wagon }
public void ActionRepairWeapon(WagonWeapon weapon) { myState = HenchmenAI.HenchmenState.RepairWeapon; targetWeapon = weapon; target = weapon.transform.position; movementVector.x = (target - transform.position).normalized.x; //Start coroutine to move to weapon then fire it StartCoroutine(RepairWeapon()); //Start coroutine to move to weapon and repair it }
public void ActionFireWeapon(WagonWeapon weapon) { myState = HenchmenAI.HenchmenState.FireWeapon; targetWeapon = weapon; target = weapon.transform.position; movementVector.x = (target - transform.position).normalized.x; targetWeapon.IsInUse = true; //Start coroutine to move to weapon then fire it StartCoroutine(FireWeapon()); }
IEnumerator RepairWagon() { movementVector = Vector2.zero; while (currentWagon.health <= 1000 && myState == HenchmenAI.HenchmenState.RepairWagon) { yield return(null); } if (myState == HenchmenAI.HenchmenState.RepairWagon) { myState = HenchmenAI.HenchmenState.Idle; } currentWagon.InteractWithWagon(WAGON_INTERACTION.DETACH_REPAIR_WORKER); }
IEnumerator RepairWeapon() { while ((transform.position - target).magnitude > 1) { //Debug.Log((transform.position - target).magnitude); yield return(null); } //Repair weapon movementVector = Vector2.zero; while (targetWeapon.weaponHP <= 50 && myState == HenchmenAI.HenchmenState.RepairWeapon) { targetWeapon.weaponHP += Time.deltaTime * repairRate; yield return(null); } if (myState == HenchmenAI.HenchmenState.RepairWeapon) { myState = HenchmenAI.HenchmenState.Idle; } targetWeapon.IsInUse = false; targetWeapon = null; yield return(null); }
public void ActionFireMachineGun() { myState = HenchmenAI.HenchmenState.FireMachineGuns; StartCoroutine(FireMachineGun()); //Aim at player and shoot projectiles }