Example #1
0
    public void TriggerHearEvent(PERCEPTION_EVENT_TYPE type, float time_in_memory, int radius, int origin_tile_x, int origin_tile_y, int destiny_x, int destiny_y)
    {
        PerceptionHearEvent new_event = new PerceptionHearEvent(type, time_in_memory, radius);

        new_event.SetOrigin(origin_tile_x, origin_tile_y);
        new_event.SetDestiny(destiny_x, destiny_y);

        event_manager.GetComponent <PerceptionManager>().GenEvent(new_event);
    }
Example #2
0
    public override void OnEventRecieved(PerceptionEvent event_recieved)
    {
        if (IsPriotitaryEvent(event_recieved) == true)
        {
            ClearEvents();
        }
        else
        {
            return;
        }

        switch (event_recieved.type)
        {
        case PERCEPTION_EVENT_TYPE.HEAR_EXPLORER_EVENT:
        case PERCEPTION_EVENT_TYPE.HEAR_WALKING_PLAYER:
            PerceptionHearEvent tmp = (PerceptionHearEvent)event_recieved;

            if (OnHearRange(tmp) && GetComponent <EnemyShield_BT>().InCombat() == false)
            {
                PerceptionHearEvent event_to_memory = new PerceptionHearEvent(tmp);
                GetComponent <EnemyShield_BT>().heard_something  = true;
                GetComponent <Investigate_Action>().forgot_event = false;
                GetComponent <Investigate_Action>().SetEvent(event_to_memory);
                GetComponent <EnemyShield_BT>().InterruptAction();
                GetComponent <EnemyShield_BT>().SetAction(Action.ACTION_TYPE.INVESTIGATE_ACTION);
                events_in_memory.Add(event_to_memory);
                event_to_memory.start_counting = false;
            }
            break;

        case PERCEPTION_EVENT_TYPE.PLAYER_SEEN:

            PerceptionPlayerSeenEvent seen_event_tmp = (PerceptionPlayerSeenEvent)event_recieved;

            if (gameObject == seen_event_tmp.enemy_who_saw)
            {
                GetComponent <EnemyShield_BT>().InterruptAction();
                GetComponent <EnemyShield_BT>().player_detected = true;

                if (GetComponent <EnemyShield_BT>().InCombat() == false)
                {
                    GetComponent <EnemyShield_BT>().SetAction(Action.ACTION_TYPE.ENGAGE_ACTION);
                }

                player_seen = true;

                PerceptionPlayerSeenEvent new_event_to_memory = new PerceptionPlayerSeenEvent(seen_event_tmp);
                events_in_memory.Add(new_event_to_memory);
                GetComponent <ChasePlayer_Action>().SetEvent(new_event_to_memory);
                GetComponent <ChasePlayer_Action>().forgot_event = false;
                new_event_to_memory.start_counting = false;
            }
            break;
        }
    }
Example #3
0
    bool OnHearRange(PerceptionHearEvent event_heard)
    {
        int my_tile_x = GetComponent <Movement_Action>().GetCurrentTileX();
        int my_tile_y = GetComponent <Movement_Action>().GetCurrentTileY();

        if (hear_range < event_heard.radius_in_tiles)
        {
            if (RadiusOverlap(my_tile_x, my_tile_y, hear_range, event_heard.objective_tile_x, event_heard.objective_tile_y, event_heard.radius_in_tiles))
            {
                return(true);
            }
            return(false);
        }
        else
        {
            if (RadiusOverlap(event_heard.objective_tile_x, event_heard.objective_tile_y, event_heard.radius_in_tiles, my_tile_x, my_tile_y, hear_range))
            {
                return(true);
            }

            return(false);
        }
    }
 public PerceptionHearEvent(PerceptionHearEvent e) : base(e)
 {
     radius_in_tiles = e.radius_in_tiles;
 }
Example #5
0
    public override void OnEventRecieved(PerceptionEvent event_recieved)
    {
        if (IsPriotitaryEvent(event_recieved) == true)
        {
            ClearEvents();
        }
        else
        {
            return;
        }

        switch (event_recieved.type)
        {
        case PERCEPTION_EVENT_TYPE.HEAR_EXPLORER_EVENT:
        case PERCEPTION_EVENT_TYPE.HEAR_WALKING_PLAYER:
            PerceptionHearEvent tmp = (PerceptionHearEvent)event_recieved;

            if (OnHearRange(tmp) && GetComponent <EnemySword_BT>().InCombat() == false)
            {
                PerceptionHearEvent event_to_memory = new PerceptionHearEvent(tmp);
                GetComponent <EnemySword_BT>().heard_something   = true;
                GetComponent <Investigate_Action>().forgot_event = false;
                GetComponent <Investigate_Action>().SetEvent(event_to_memory);
                GetComponent <EnemySword_BT>().InterruptAction();
                GetComponent <EnemySword_BT>().SetAction(Action.ACTION_TYPE.INVESTIGATE_ACTION);
                events_in_memory.Add(event_to_memory);
                event_to_memory.start_counting = false;
            }
            break;

        case PERCEPTION_EVENT_TYPE.PLAYER_SEEN:

            PerceptionPlayerSeenEvent seen_event_tmp = (PerceptionPlayerSeenEvent)event_recieved;


            if (gameObject.IsEquals(seen_event_tmp.enemy_who_saw))
            {
                if (GetLinkedObject("event_manager").GetComponent <PerceptionManager>().player_seen == false)
                {
                    //PLAY COMBAT MUSIC
                    Audio.ChangeState("MusicState", "Combat");
                    if (Audio.prank)
                    {
                        Audio.ChangeState("MusicState", "AlternateCombat");
                    }
                    GetLinkedObject("event_manager").GetComponent <PerceptionManager>().player_seen = true;
                    Debug.Log("COMBAT ON", Department.PLAYER, Color.ORANGE);
                }

                GetComponent <EnemySword_BT>().InterruptAction();
                GetComponent <EnemySword_BT>().player_detected = true;

                if (GetComponent <EnemySword_BT>().InCombat() == false)
                {
                    GetComponent <EnemySword_BT>().SetAction(Action.ACTION_TYPE.ENGAGE_ACTION);
                }

                GetComponent <ChasePlayer_Action>().SetInterupt(false);

                player_seen = true;

                PerceptionPlayerSeenEvent new_event_to_memory = new PerceptionPlayerSeenEvent(seen_event_tmp);
                events_in_memory.Add(new_event_to_memory);
                GetComponent <ChasePlayer_Action>().SetEvent(new_event_to_memory);
                GetComponent <ChasePlayer_Action>().forgot_event = false;
                new_event_to_memory.start_counting = false;
            }
            break;
        }
    }