Example #1
0
    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;
	}
    private string fileOpenLoc = "Assets/PosSave.txt";     //the open location

    void Awake()
    {
        sc = (SearchCover)target;
    }
Example #4
0
	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 ); 
	}