示例#1
0
    public void Behaviors()
    {
        decisionTimer--;
        antiAirTimer--;

        if (AIcontrols.FreeToMakeDecisions() && !TimeControl.inSuperStartup[0] && !TimeControl.inSuperStartup[1])
        {
            if (animator.GetBool("isAirborne") == true && animator.GetBool("isLiftingOff") == false)
            {
                if (animator.GetBool("reverseActive") == true || animator.GetBool("devilReverseActive") == true)
                {
                    SomerSaultDecisions();
                }
                else
                {
                    RegularDecisionTree(airAttackDecisions, 1, 1);
                }
                AIcontrols.AICharges();
                character.SetBackPressed(true);
            }
            else if (character.GetKnockDown() == true)
            {
                AIcontrols.AICrouch();
                AIcontrols.AICharges();
                character.SetBackPressed(true);
            }
            else if (sharedProperties.GetAbDistanceFromOtherFighter() >= 2f)
            {
                RegularDecisionTree(regularFarRangeDecisions, 5, 2);
            }
            else if (sharedProperties.GetAbDistanceFromOtherFighter() >= 1f && sharedProperties.GetAbDistanceFromOtherFighter() < 2f)
            {
                if (player != null)
                {
                    DecisionBranches(playerCharacter, regularMidRangeDecisions, regularMidRangeDecisions.Count);
                }
                else if (opponent != null)
                {
                    DecisionBranches(opponentCharacter, regularMidRangeDecisions, regularMidRangeDecisions.Count);
                }
            }
            else
            {
                if (player != null)
                {
                    DecisionBranches(playerCharacter, regularCloseRangeDecisions, regularCloseRangeDecisions.Count);
                }
                else if (opponent != null)
                {
                    DecisionBranches(opponentCharacter, regularCloseRangeDecisions, regularCloseRangeDecisions.Count);
                }
            }
            AIcontrols.AIWalks();
        }
    }
示例#2
0
 void RegularFarRangeDecisions()
 {
     DecisionMade(5, 1);
     if (decision <= 30)
     {
         AIcontrols.AIStand();
         AIcontrols.AIPressedForward();
         AIcontrols.DoesAIBlock();
     }
     else if (decision <= 45 && decision > 30)
     {
         AIcontrols.AIPressedForward();
         AIcontrols.AIJump();
         character.SetBackPressed(false);
     }
     else if (decision <= 50 && decision > 45)
     {
         sharedProperties.CharacterNeutralState();
         AIcontrols.AIJump();
         character.SetBackPressed(false);
     }
     else if (decision <= 85 && decision > 50)
     {
         AIRekkaKuns();
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
         decisionTimer = 0f;
     }
     else if (decision <= 90 && decision > 85)
     {
         AIcontrols.AIStand();
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
     }
     else
     {
         AIcontrols.AICrouch();
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
     }
 }
示例#3
0
 void RegularCloseRangeDecisions()
 {
     DecisionMade(5, 4);
     if (decision <= 20)
     {
         AIcontrols.AICrouch();
         sharedProperties.CharacterNeutralState();
         character.SetBackPressed(true);
     }
     else if (decision <= 27)
     {
         AIcontrols.AILowForward();
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
         decisionTimer = 0f;
     }
     else if (decision <= 30)
     {
         AIcontrols.AISweep();
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
         decisionTimer = 0f;
     }
     else if (decision <= 33)
     {
         AIcontrols.AIShort(15);
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
         decisionTimer = 0f;
     }
     else if (decision <= 43)
     {
         AIcontrols.AIStrong(50);
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
         decisionTimer = 0f;
     }
     else if (decision <= 53)
     {
         AIcontrols.AIJab(2);
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
         decisionTimer = 0f;
     }
     else if (decision <= 59)
     {
         if (character.GetSuper >= 100f)
         {
             AIShunGokuSatsus();
         }
         else
         {
             AIcontrols.AIThrow();
         }
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
         decisionTimer = 0f;
     }
     else if (decision <= 64)
     {
         AIHadoukenLimitsWithAttack(AIcontrols.AILowForward);
         decisionTimer = 0f;
     }
     else if (decision <= 69)
     {
         AIcontrols.AIPressedForward();
         character.SetBackPressed(false);
     }
     else if (decision <= 73)
     {
         AIcontrols.AIPressedForward();
         AIcontrols.AIJump();
         character.SetBackPressed(false);
         decisionTimer = 0f;
     }
     else if (decision <= 79)
     {
         sharedProperties.CharacterNeutralState();
         AIcontrols.AIJump();
         AIcontrols.DoesAIBlock();
         decisionTimer = 0f;
     }
     else if (decision <= 82)
     {
         AIcontrols.AIPressedBackward();
         character.SetBackPressed(true);
     }
     else if (decision <= 87 && !animator.GetBool("isAttacking"))
     {
         AIJabShoryuken();
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
         decisionTimer = 0f;
     }
     else
     {
         AIHyakkishus(0, 2);
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
         decisionTimer = 0f;
     }
 }
 void RegularCloseRangeDecisions()
 {
     DecisionMade(5, 3);
     if (decision <= 25)
     {
         AIcontrols.AICrouch();
         sharedProperties.CharacterNeutralState();
         character.SetBackPressed(true);
     }
     else if (decision <= 30 && !animator.GetBool("isAttacking"))
     {
         AIHurricaneKicks();
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
         decisionTimer = 0f;
     }
     else if (decision <= 36)
     {
         AIcontrols.AILowForward();
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
         decisionTimer = 0f;
     }
     else if (decision <= 41)
     {
         AIcontrols.AIStrong(10);
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
         decisionTimer = 0f;
     }
     else if (decision <= 46)
     {
         AIcontrols.AIJab(2);
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
         decisionTimer = 0f;
     }
     else if (decision <= 52)
     {
         if (character.GetSuper >= 100f)
         {
             AIShinryukens();
         }
         else
         {
             AIcontrols.AIShort(10);
         }
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
         decisionTimer = 0f;
     }
     else if (decision <= 62 && !animator.GetBool("isAttacking"))
     {
         AIJabShoryuken();
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
         decisionTimer = 0f;
     }
     else if (decision <= 66)
     {
         AIcontrols.AIThrow();
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
         decisionTimer = 0f;
     }
     else if (decision <= 71)
     {
         if (playerController != null)
         {
             if (playerController.GetProjectileP1Parent().transform.childCount <= 0 && !animator.GetBool("isAttacking"))
             {
                 AIHadoukens();
                 sharedProperties.CharacterNeutralState();
                 AIcontrols.DoesAIBlock();
                 decisionTimer = 0f;
             }
             else
             {
                 AIcontrols.AIShort(10);
                 sharedProperties.CharacterNeutralState();
                 AIcontrols.DoesAIBlock();
                 decisionTimer = 0f;
             }
         }
         else if (opponentController != null)
         {
             if (opponentController.GetProjectileP2Parent().transform.childCount <= 0 && !animator.GetBool("isAttacking"))
             {
                 AIHadoukens();
                 sharedProperties.CharacterNeutralState();
                 AIcontrols.DoesAIBlock();
                 decisionTimer = 0f;
             }
             else
             {
                 AIcontrols.AIShort(10);
                 sharedProperties.CharacterNeutralState();
                 AIcontrols.DoesAIBlock();
                 decisionTimer = 0f;
             }
         }
     }
     else if (decision <= 81)
     {
         AIcontrols.AIPressedForward();
         character.SetBackPressed(false);
     }
     else if (decision <= 88)
     {
         AIcontrols.AIPressedForward();
         AIcontrols.AIJump();
         character.SetBackPressed(false);
         decisionTimer = 0f;
     }
     else if (decision <= 90)
     {
         sharedProperties.CharacterNeutralState();
         AIcontrols.AIJump();
         AIcontrols.DoesAIBlock();
     }
     else
     {
         AIcontrols.AIPressedBackward();
         character.SetBackPressed(true);
     }
 }
示例#5
0
 void RegularFarRangeDecisions()
 {
     DecisionMade(5, 1);
     if (decision <= 10)
     {
         AIcontrols.AIPressedForward();
         character.SetBackPressed(false);
     }
     else if (decision <= 15 && decision > 10)
     {
         AIcontrols.AIPressedBackward();
         character.SetBackPressed(true);
     }
     else if (decision <= 25 && decision > 15)
     {
         AITigerKnees();
         sharedProperties.CharacterNeutralState();
         AIcontrols.DoesAIBlock();
         decisionTimer = 0f;
     }
     else if (decision <= 45 && decision > 25)
     {
         if (playerController != null)
         {
             if (playerController.GetProjectileP1Parent().transform.childCount <= 0)
             {
                 AITigerShots("Upper", 6);
                 AIcontrols.DoesAIBlock();
                 sharedProperties.CharacterNeutralState();
                 decisionTimer = 0f;
             }
             else
             {
                 AIcontrols.AIJab(2);
                 sharedProperties.CharacterNeutralState();
                 AIcontrols.DoesAIBlock();
             }
         }
         else if (opponentController != null)
         {
             if (opponentController.GetProjectileP2Parent().transform.childCount <= 0)
             {
                 AITigerShots("Upper", 6);
                 AIcontrols.DoesAIBlock();
                 sharedProperties.CharacterNeutralState();
                 decisionTimer = 0f;
             }
             else
             {
                 AIcontrols.AIJab(2);
                 sharedProperties.CharacterNeutralState();
                 AIcontrols.DoesAIBlock();
             }
         }
     }
     else
     {
         if (playerController != null)
         {
             if (playerController.GetProjectileP1Parent().transform.childCount <= 0)
             {
                 AITigerShots("Lower", 10);
                 AIcontrols.DoesAIBlock();
                 sharedProperties.CharacterNeutralState();
                 decisionTimer = 0f;
             }
             else
             {
                 AIcontrols.AICrouch();
                 AIcontrols.AIPressedBackward();
                 character.SetBackPressed(true);
             }
         }
         else if (opponentController != null)
         {
             if (opponentController.GetProjectileP2Parent().transform.childCount <= 0)
             {
                 AITigerShots("Lower", 10);
                 AIcontrols.DoesAIBlock();
                 sharedProperties.CharacterNeutralState();
                 decisionTimer = 0f;
             }
             else
             {
                 AIcontrols.AICrouch();
                 AIcontrols.AIPressedBackward();
                 character.SetBackPressed(true);
             }
         }
     }
 }
示例#6
0
 public void Behaviors()
 {
     decisionTimer--;
     antiAirTimer--;
     if (AIcontrols.FreeToMakeDecisions() && !TimeControl.inSuperStartup[0] && !TimeControl.inSuperStartup[1])
     {
         if (animator.GetBool("isAirborne") == true && animator.GetBool("isLiftingOff") == false)
         {
             decision = Random.Range(0, 100);
             if (decision <= 1)
             {
                 AIcontrols.AIJumpFierce();
             }
             else if (decision <= 6 && decision > 1)
             {
                 AIcontrols.AIJumpRoundhouse();
             }
             AIcontrols.AICharges();
             character.SetBackPressed(true);
         }
         else if (character.GetKnockDown() == true)
         {
             AIcontrols.AICrouch();
             AIcontrols.AICharges();
             character.SetBackPressed(true);
         }
         else if (sharedProperties.GetAbDistanceFromOtherFighter() >= 2f)
         {
             if (player != null)
             {
                 if (playerCharacter.GetKnockDown() == true && playerCharacter.GetAirborne() == false)
                 {
                     KnockDownFromFarDecisions();
                 }
                 else if (playerCharacter.GetComponent <Ken>() != null || playerCharacter.GetComponent <Sagat>() != null)
                 {
                     DecisionMade(5, 1);
                     VsKenFromDistanceDecisions();
                 }
                 else
                 {
                     RegularFarRangeDecisions();
                 }
             }
             else if (opponent != null)
             {
                 if (opponentCharacter.GetKnockDown() == true && opponentCharacter.GetAirborne() == false)
                 {
                     KnockDownFromFarDecisions();
                 }
                 else if (opponentCharacter.GetComponent <Ken>() != null || opponentCharacter.GetComponent <Sagat>() != null)
                 {
                     DecisionMade(5, 1);
                     VsKenFromDistanceDecisions();
                 }
                 else
                 {
                     RegularFarRangeDecisions();
                 }
             }
         }
         else if (sharedProperties.GetAbDistanceFromOtherFighter() >= 1f && sharedProperties.GetAbDistanceFromOtherFighter() < 2f)
         {
             if (player != null)
             {
                 if (playerCharacter.GetKnockDown() == true && playerCharacter.GetAirborne() == false)
                 {
                     KnockDownFromMidRangeDecisions();
                 }
                 else
                 {
                     RegularMidRangeDecisions();
                 }
             }
             else if (opponent != null)
             {
                 if (opponentCharacter.GetKnockDown() == true && opponentCharacter.GetAirborne() == false)
                 {
                     KnockDownFromMidRangeDecisions();
                 }
                 else
                 {
                     RegularMidRangeDecisions();
                 }
             }
         }
         else
         {
             if (player != null)
             {
                 if (playerCharacter.GetBlockStunned() == true)
                 {
                     OtherFighterBlockedDecisions();
                 }
                 else if (playerCharacter.GetHitStunned() == true)
                 {
                     OtherFighterGotHitDecisions();
                 }
                 else if (playerCharacter.GetKnockDown() == true && playerCharacter.GetAirborne() == false)
                 {
                     KnockDownFromCloseRangeDecisions();
                 }
                 else if (playerCharacter.GetAirborne() == true && playerCharacter.GetKnockDown() == false && playerCharacter.GetThrown() == false)
                 {
                     if (antiAirTimer <= 0f)
                     {
                         sharedProperties.AIAntiAirDecision(60, RegularCloseRangeDecisions, PreparationForAntiAir);
                         antiAirTimer = antiAirTimerInput;
                     }
                     else
                     {
                         RegularCloseRangeDecisions();
                     }
                 }
                 else
                 {
                     RegularCloseRangeDecisions();
                 }
             }
             else if (opponent != null)
             {
                 if (opponentCharacter.GetBlockStunned() == true)
                 {
                     OtherFighterBlockedDecisions();
                 }
                 else if (opponentCharacter.GetHitStunned() == true)
                 {
                     OtherFighterGotHitDecisions();
                 }
                 else if (opponentCharacter.GetKnockDown() == true && opponentCharacter.GetAirborne() == false)
                 {
                     KnockDownFromCloseRangeDecisions();
                 }
                 else if (opponentCharacter.GetAirborne() == true && opponentCharacter.GetKnockDown() == false && opponentCharacter.GetThrown() == false)
                 {
                     if (antiAirTimer <= 0f)
                     {
                         sharedProperties.AIAntiAirDecision(60, RegularCloseRangeDecisions, PreparationForAntiAir);
                         antiAirTimer = antiAirTimerInput;
                     }
                     else
                     {
                         RegularCloseRangeDecisions();
                     }
                 }
                 else
                 {
                     RegularCloseRangeDecisions();
                 }
             }
         }
         AIcontrols.AIWalks();
     }
 }