public void MakeADecision() { switch (blackboard.GetPerceptionState()) { case EnemyBlackBoard.PerceptionSystem.seing_player: switch (blackboard.GetVisibleState()) { case EnemyBlackBoard.VisibleStates.visible_by_player: switch (blackboard.GetCoverState()) { case EnemyBlackBoard.CoverState.covered: switch (blackboard.GetArmedState()) { case EnemyBlackBoard.ArmedState.armed: Shot s_task = new Shot(blackboard); s_task.Execute(); break; case EnemyBlackBoard.ArmedState.disarmed: SearchWeapon sw_task = new SearchWeapon(blackboard); looking_for = items.weapon; sw_task.Execute(); break; } break; case EnemyBlackBoard.CoverState.uncovered: SearchCover sc_task = new SearchCover(blackboard); looking_for = items.cover; sc_task.Execute(); break; } break; case EnemyBlackBoard.VisibleStates.non_visible: switch (blackboard.GetArmedState()) { case EnemyBlackBoard.ArmedState.armed: Shot s_task = new Shot(blackboard); s_task.Execute(); break; case EnemyBlackBoard.ArmedState.disarmed: SearchWeapon sw_task = new SearchWeapon(blackboard); looking_for = items.weapon; sw_task.Execute(); break; } break; } break; case EnemyBlackBoard.PerceptionSystem.searching_player: switch (blackboard.GetArmedState()) { case EnemyBlackBoard.ArmedState.armed: SearchCover sc_task = new SearchCover(blackboard); looking_for = items.cover; sc_task.Execute(); break; case EnemyBlackBoard.ArmedState.disarmed: SearchWeapon sw_task = new SearchWeapon(blackboard); looking_for = items.weapon; sw_task.Execute(); break; } break; } }
private string fileOpenLoc = "Assets/PosSave.txt"; //the open location void Awake() { sc = (SearchCover)target; }
void Awake() { //set the caches correctly weaponController = GetComponent<AIWeaponController>(); movementManager = GetComponent<AIMovementSwitcher>(); coverManager = GetComponent<SearchCover>(); sightManager = sight.GetComponent<Sight>(); earsManager = ears.GetComponent<Auditory>(); patrolM = patrolManager.GetComponent<PatrolManager>(); //at the start the current state is patroling currentState = CurrentState.patrol; //and the engagment is set to free engagementStatus = EngagementState.free; //some variables that we will later use for reference initFreezeTime = freezeTime; initShockTime = shockTime; initFOV = sightManager.fieldOfView; initChanceForFight = chanceForFight; initFear = fear; audioControl = GetComponent<ShooterAIAudioControl>(); if(GetComponent<NavMeshAgent>() != null) { initHeight = GetComponent<NavMeshAgent>().height; } initYScale = GetComponentInChildren<HealthManager>().gameObject.transform.localScale.y; movement = movementManager; //anti-bottlenecking procedure enemyDistanceCheckFrameBarrier += Random.Range(-30f, 30f); //find the health manager automatically healthManager = GetComponentInChildren<HealthManager>().gameObject; //setup multiple weapons correctly otherWeapons.Add( weaponController.weaponHoldingObject ); otherWeaponsMelee.Add( meleeAttackUsed ); }