void AirborneAttacks() { decision = Random.Range(0, 200); if (decision <= 3) { AIcontrols.AIJumpFierce(); sharedProperties.CharacterNeutralState(); } else if (decision <= 6) { AIcontrols.AIJumpRoundhouse(); sharedProperties.CharacterNeutralState(); } else if (decision <= 15) { if (playerController != null) { if (playerController.GetProjectileP1Parent().transform.childCount <= 0) { AIAirHadoukens(); sharedProperties.CharacterNeutralState(); } } else if (opponentController != null) { if (opponentController.GetProjectileP2Parent().transform.childCount <= 0) { AIAirHadoukens(); sharedProperties.CharacterNeutralState(); } } } }
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 <= 3) { AIcontrols.AIJumpFierce(); sharedProperties.CharacterNeutralState(); } else if (decision <= 6 && decision > 3) { AIcontrols.AIJumpRoundhouse(); sharedProperties.CharacterNeutralState(); } } else if (sharedProperties.GetAbDistanceFromOtherFighter() >= 2f) { RegularFarRangeDecisions(); } else if (sharedProperties.GetAbDistanceFromOtherFighter() < 2f && sharedProperties.GetAbDistanceFromOtherFighter() >= 1f) { if (player != null) { if (playerCharacter.GetBlockStunned() == true) { MidRangeOtherFighterBlockedDecisions(); } else if (playerCharacter.GetKnockDown() == true && playerCharacter.GetAirborne() == false) { KnockDownMidRangeDecisions(); } else { RegularMidRangeDecisions(); } } else if (opponent != null) { if (opponentCharacter.GetBlockStunned() == true) { MidRangeOtherFighterBlockedDecisions(); } else if (opponentCharacter.GetKnockDown() == true && opponentCharacter.GetAirborne() == false) { KnockDownMidRangeDecisions(); } else { RegularMidRangeDecisions(); } } } else { if (player != null) { //anti air if (playerCharacter.GetAirborne() == true && playerCharacter.GetKnockDown() == false && playerCharacter.GetThrown() == false) { if (antiAirTimer <= 0f) { sharedProperties.AIAntiAirDecision(67, RegularCloseRangeDecisions, PreparationForAntiAir); antiAirTimer = antiAirTimerInput; } else { RegularCloseRangeDecisions(); } } //other guy got hit else if (playerCharacter.GetHitStunned() == true) { OtherFighterGotHitDecisions(); } //other guy got knocked down else if (playerCharacter.GetKnockDown() == true && playerCharacter.GetAirborne() == false) { KnockDownCloseRangeDecisions(); } //other guy blocked else if (playerCharacter.GetBlockStunned() == true) { CloseRangeOtherFighterBlockedDecisions(); } else { RegularCloseRangeDecisions(); } } else if (opponent != null) { //anti air if (opponentCharacter.GetAirborne() == true && opponentCharacter.GetKnockDown() == false && opponentCharacter.GetThrown() == false) { if (antiAirTimer <= 0f) { sharedProperties.AIAntiAirDecision(67, RegularCloseRangeDecisions, PreparationForAntiAir); antiAirTimer = antiAirTimerInput; } else { RegularCloseRangeDecisions(); } } //other guy got hit else if (opponentCharacter.GetHitStunned() == true) { OtherFighterGotHitDecisions(); } //other guy got knocked down else if (opponentCharacter.GetKnockDown() == true && opponentCharacter.GetAirborne() == false) { KnockDownCloseRangeDecisions(); } //other guy blocked else if (opponentCharacter.GetBlockStunned() == true) { CloseRangeOtherFighterBlockedDecisions(); } else { RegularCloseRangeDecisions(); } } } AIcontrols.AIWalks(); } }
void RegularDecisionTree(List <string> decisionBox, int minDiv, int maxDiv) { DecisionMade(minDiv, maxDiv); if (decisionBox[decision] == "WalkForward" && !animator.GetBool("isAttacking")) { AIcontrols.AIStand(); AIcontrols.AIPressedForward(); character.SetBackPressed(false); } else if (decisionBox[decision] == "WalkBackward") { AIcontrols.AIStand(); AIcontrols.AIPressedBackward(); character.SetBackPressed(true); } else if (decisionBox[decision] == "Crouch") { AIcontrols.AICrouch(); AIcontrols.AICharges(); character.SetBackPressed(true); } else if (decisionBox[decision] == "NeutralJump" && !animator.GetBool("isAttacking")) { sharedProperties.CharacterNeutralState(); AIcontrols.AIJump(); character.SetBackPressed(false); decisionTimer = 0f; } else if (decisionBox[decision] == "ForwardJump" && !animator.GetBool("isAttacking")) { AIcontrols.AIPressedForward(); AIcontrols.AIJump(); character.SetBackPressed(false); decisionTimer = 0f; } else if (decisionBox[decision] == "Roundhouse") { AIcontrols.AIRoundhouse(2, 0); AIcontrols.AICharges(); character.SetBackPressed(true); decisionTimer = 0f; } else if (decisionBox[decision] == "Fierce") { AIcontrols.AIFierce(2, 0); AIcontrols.AICharges(); character.SetBackPressed(true); decisionTimer = 0f; } else if (decisionBox[decision] == "Forward") { AIcontrols.AIForward(2); AIcontrols.AICharges(); character.SetBackPressed(true); decisionTimer = 0f; } else if (decisionBox[decision] == "Strong") { AIcontrols.AIStrong(10); AIcontrols.AICharges(); character.SetBackPressed(true); decisionTimer = 0f; } else if (decisionBox[decision] == "Short") { AIcontrols.AIShort(40); AIcontrols.AICharges(); character.SetBackPressed(true); decisionTimer = 0f; } else if (decisionBox[decision] == "Jab") { AIcontrols.AIJab(50); AIcontrols.AICharges(); character.SetBackPressed(true); decisionTimer = 0f; } else if (decisionBox[decision] == "LowForward") { AIcontrols.AILowForward(); AIcontrols.AICharges(); character.SetBackPressed(true); decisionTimer = 0f; } else if (decisionBox[decision] == "Sweep") { AIcontrols.AISweep(); AIcontrols.AICharges(); character.SetBackPressed(true); decisionTimer = 0f; } else if (decisionBox[decision] == "ScissorKick") { if (chargeSystem.GetBackCharged() && !animator.GetBool("isAttacking")) { AIScissorKicks(); AIcontrols.AICharges(); character.SetBackPressed(true); } else { AIcontrols.AIForward(2); AIcontrols.AICharges(); character.SetBackPressed(true); } decisionTimer = 0f; } else if (decisionBox[decision] == "PsychoCrusher") { if (chargeSystem.GetDownCharged() && !animator.GetBool("isAttacking")) { AIPsychoCrushers(); AIcontrols.AICharges(); character.SetBackPressed(true); } else { AILightAttacks(50, 1); AIcontrols.AICharges(); character.SetBackPressed(true); } decisionTimer = 0f; } else if (decisionBox[decision] == "HeadStomp") { if (chargeSystem.GetDownCharged() && !animator.GetBool("isAttacking")) { AIHeadStomps(); AIcontrols.AICharges(); character.SetBackPressed(true); } else { AILightAttacks(50, 1); AIcontrols.AICharges(); character.SetBackPressed(true); } decisionTimer = 0f; } else if (decisionBox[decision] == "DevilsReverse") { if (chargeSystem.GetDownCharged() && !animator.GetBool("isAttacking")) { AIDevilsReverses(); AIcontrols.AICharges(); character.SetBackPressed(true); } else { AILightAttacks(50, 0); AIcontrols.AICharges(); character.SetBackPressed(true); } decisionTimer = 0f; } else if (decisionBox[decision] == "SpecialCancelScissorKick") { if (chargeSystem.GetBackCharged()) { AIScissorKicks(); AIcontrols.AICharges(); character.SetBackPressed(true); } else { AIcontrols.AIForward(2); AIcontrols.AICharges(); character.SetBackPressed(true); } decisionTimer = 0f; } else if (decisionBox[decision] == "SpecialCancelPsychoCrusher") { if (chargeSystem.GetBackCharged()) { AIPsychoCrushers(); AIcontrols.AICharges(); character.SetBackPressed(true); } else { AILightAttacks(50, 1); AIcontrols.AICharges(); character.SetBackPressed(true); } decisionTimer = 0f; } else if (decisionBox[decision] == "SpecialCancelHeadStomp") { if (chargeSystem.GetDownCharged()) { AIHeadStomps(); AIcontrols.AICharges(); character.SetBackPressed(true); } else { AILightAttacks(50, 1); AIcontrols.AICharges(); character.SetBackPressed(true); } decisionTimer = 0f; } else if (decisionBox[decision] == "SpecialCancelDevilsReverse") { if (chargeSystem.GetDownCharged()) { AIDevilsReverses(); AIcontrols.AICharges(); character.SetBackPressed(true); } else { AILightAttacks(50, 0); AIcontrols.AICharges(); character.SetBackPressed(true); } decisionTimer = 0f; } else if (decisionBox[decision] == "Super") { if (character.GetSuper >= 100f) { AIKneePressNightmares(); AIcontrols.AICharges(); character.SetBackPressed(true); } else { AIcontrols.AICrouch(); AIcontrols.AICharges(); character.SetBackPressed(true); } } else if (decisionBox[decision] == "SuperOnBlock") { if (character.GetSuper >= 100f) { AIKneePressNightmares(); AIcontrols.AICharges(); character.SetBackPressed(true); } else { AIcontrols.AIForward(3); AIcontrols.AICharges(); character.SetBackPressed(true); } } else if (decisionBox[decision] == "SuperOnHit") { if (character.GetSuper >= 100f) { AIKneePressNightmares(); AIcontrols.AICharges(); character.SetBackPressed(true); } else { AIcontrols.AIForward(10); AIcontrols.AICharges(); character.SetBackPressed(true); } } else if (decisionBox[decision] == "Throw") { AIcontrols.AIThrow(); AIcontrols.AICharges(); character.SetBackPressed(true); } else if (decisionBox[decision] == "AirStrong") { AIcontrols.AIJumpStrong(); AIcontrols.AICharges(); character.SetBackPressed(true); } else if (decisionBox[decision] == "AirForward") { AIcontrols.AIJumpForwardAttack(); AIcontrols.AICharges(); character.SetBackPressed(true); } else if (decisionBox[decision] == "AirFierce") { AIcontrols.AIJumpFierce(); AIcontrols.AICharges(); character.SetBackPressed(true); } else if (decisionBox[decision] == "AirRoundhouse") { AIcontrols.AIJumpRoundhouse(); AIcontrols.AICharges(); character.SetBackPressed(true); } }
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(); } }