示例#1
0
    // Use this for initialization
    void Start()
    {
        fsm.ChangeState(States.Normal);

        //Movement Variables
        walkSpeed = WalkSpeed;

        //HB Bar UI
        MyGUI = GameObject.Find("Canvas");
        SetHPBar();

        //Visibility Zone
        EnemyVisibility  = VisibilityZone.GetComponentInChildren <EnemyVisibility>();
        InVisibilityZone = EnemyVisibility.InVisibilityZone;
        //Detection Zone
        EnemyDetection  = DetectionZone.GetComponentInChildren <EnemyDetection>();
        InDetectionZone = EnemyDetection.InDetectionZone;

        //Player find to follow
        Player = GameManager.instance.player.transform;

        if (BehaivourType == Behaivour.Flying)
        {
            GetComponent <AIDestinationSetter>().target = Player;
        }
    }
示例#2
0
        void Start()
        {
            agent = GetComponent <NavMeshAgent>();

            EnemyPatrol  = new EnemyPatrol(agent, patrolPoints);
            PlayerCombat = new Combat(
                transform: transform,
                adversaryLayers: playerLayers,
                attackRadius: attackRange);

            Visibility = new EnemyVisibility(
                transform: transform,
                target: target,
                maxAngle: visibilityAngle,
                maxDistance: visibilityDistance,
                ignoreLayers: visibilityIgnoreLayers);

            Hearing = new EnemyHearing(
                transform: transform,
                target: target,
                maxDistance: hearingDistance
                );

            state = State.None;
        }
示例#3
0
 void Start()
 {
     isMove       = true;
     sprite       = gameObject.transform.GetChild(0).gameObject;
     enemVis      = GetComponent <EnemyVisibility>();
     enemyManager = GetComponent <EnemyManager>();
     wallCheck    = gameObject.AddComponent <RayChecker>();
 }
示例#4
0
    public void Initialize(int newID, Vector2Int newPosition)
    {
        id       = newID;
        position = newPosition;

        visibility = GetComponent <EnemyVisibility>();
        visibility.Initialize();
    }
    /// <summary>
    /// Initialization
    /// </summary>
    /// <param name="_enemyVisibility">controller of character's visibility</param>
    public void Initialize(EnemyVisibility _enemyVisibility)
    {
        Visibility = _enemyVisibility;

        if (m_MeshRenderer == null || m_Material == null)
        {
            Debug.LogError("Some required components = NULL");
            return;
        }

        transform.localPosition += OriginOffset;

        isInitialized = true;
    }
示例#6
0
    new void Update()
    {
        base.Update();
        // Update all collisions here
        wasOnGround = onGround;
        onGround    = OnGround();

        EnemyVisibility  = VisibilityZone.GetComponentInChildren <EnemyVisibility>();
        InVisibilityZone = EnemyVisibility.InVisibilityZone;


        if (turnCooldownTimer > 0f)
        {
            turnCooldownTimer -= Time.deltaTime;
        }
    }
    protected override void Update()
    {
        EnemyVisibility  = VisibilityZone.GetComponentInChildren <EnemyVisibility>();
        InVisibilityZone = EnemyVisibility.InVisibilityZone;
        PlayerPos        = EnemyVisibility.PlayerPos;

        if (dazedTime <= 0)
        {
            speed = 1;
        }
        else
        {
            speed      = 0;
            dazedTime -= Time.deltaTime;
        }
        Move();
        Assault();
        if (dieCooldown > 0)
        {
            dieCooldown -= Time.deltaTime;
        }
    }
示例#8
0
    new void Update()
    {
        base.Update();
        // Update all collisions here
        wasOnGround = onGround;
        onGround    = OnGround();

        //Debug.Log(BehaivourType.ToString());

        //if (BehaivourType == Behaivour.Flying)
        //{
        //    float dist = Vector3.Distance(transform.position, Player.transform.position);

        //    if (dist < distanceDetecting)
        //    {
        //        Debug.Log("враг заметил");
        //        //TODO враг в зоне и движется
        //    }
        //}

        EnemyVisibility  = VisibilityZone.GetComponentInChildren <EnemyVisibility>();
        InVisibilityZone = EnemyVisibility.InVisibilityZone;

        EnemyDetection  = DetectionZone.GetComponentInChildren <EnemyDetection>();
        InDetectionZone = EnemyDetection.InDetectionZone;

        //Bow Attack timer
        if (bowAttackCooldownTimer > 0f)
        {
            bowAttackCooldownTimer -= Time.deltaTime;
        }

        //Bow Attack timer
        if (castAttackCooldownTimer > 0f)
        {
            castAttackCooldownTimer -= Time.deltaTime;
        }

        //Melee Attack timer
        if (meleeAttackCooldownTimer > 0f)
        {
            meleeAttackCooldownTimer -= Time.deltaTime;
        }

        if (firstSpecialAttackCooldownTimer > 0f)
        {
            firstSpecialAttackCooldownTimer -= Time.deltaTime;
        }

        if (secondSpecialAttackCooldownTimer > 0f)
        {
            secondSpecialAttackCooldownTimer -= Time.deltaTime;
        }

        if (thirdSpecialAttackCooldownTimer > 0f)
        {
            thirdSpecialAttackCooldownTimer -= Time.deltaTime;
        }

        if (blinkCooldownTimer > 0f)
        {
            blinkCooldownTimer -= Time.deltaTime;
        }

        if (expectationCooldownTimer > 0f)
        {
            expectationCooldownTimer -= Time.deltaTime;
        }

        if (turnCooldownTimer > 0f)
        {
            turnCooldownTimer -= Time.deltaTime;
        }

        //if (stunedCooldownTimer > 0f)
        //{
        //    stunedCooldownTimer -= Time.deltaTime;
        //}

        if (ShowHP != null)
        {
            // получаем экранные координаты расположения врага
            Vector3 screenPos = metka.transform.position;
            // задаем координаты расположения хп
            ShowHP.transform.position = screenPos;
        }
    }
示例#9
0
    private void UpdateState(RaycastHit hit, bool pressed)
    {
        //Attack (nyx selected and mouse over enemy)
        if (hit.transform.tag == Tags.enemy && players_manager.IsNyxSelected())
        {
            EnemyVisibility enemy = hit.transform.GetComponent <EnemyVisibility>();

            if (enemy != null)
            {
                if (enemy.IsVisible())
                {
                    Cursor.SetCursor(attack, hot_spot, CursorMode.Auto);
                    return;
                }
            }
            else
            {
                Debug.Log("Enemy: " + hit.transform.name + " doesn't have script EnemyVisibility attached. Cursor State CAN'T update");
            }
        }


        int layer = hit.transform.gameObject.layer;

        //Interact
        if (layer == LayerMask.NameToLayer(Layers.selectable_object))
        {
            if (pressed)
            {
                Cursor.SetCursor(interact_p, hot_spot, CursorMode.Auto);
            }
            else
            {
                Cursor.SetCursor(interact_i, hot_spot, CursorMode.Auto);
            }

            return;
        }

        //Interact (special cases)

        //Barion with corpses
        if (layer == LayerMask.NameToLayer(Layers.corpse))
        {
            if (players_manager.IsBarionSelected())
            {
                if (pressed)
                {
                    Cursor.SetCursor(interact_p, hot_spot, CursorMode.Auto);
                }
                else
                {
                    Cursor.SetCursor(interact_i, hot_spot, CursorMode.Auto);
                }

                return;
            }
        }

        //Allies
        if (hit.transform.tag == Tags.player)
        {
            if (pressed)
            {
                Cursor.SetCursor(ally_p, hot_spot, CursorMode.Auto);
            }
            else
            {
                Cursor.SetCursor(ally_i, hot_spot, CursorMode.Auto);
            }

            return;
        }


        //Default
        if (pressed)
        {
            Cursor.SetCursor(idle_p, hot_spot, CursorMode.Auto);
        }
        else
        {
            Cursor.SetCursor(idle_i, hot_spot, CursorMode.Auto);
        }
    }