Exemple #1
0
    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
    }
Exemple #2
0
    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
    }
Exemple #3
0
    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());
    }
Exemple #4
0
 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);
 }
Exemple #5
0
 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);
 }
Exemple #6
0
 public void ActionFireMachineGun()
 {
     myState = HenchmenAI.HenchmenState.FireMachineGuns;
     StartCoroutine(FireMachineGun());
     //Aim at player and shoot projectiles
 }