Example #1
0
    public void UpdateRelationshipStatus(AI_NPC otherNPC)
    {
        otherNPC.UpdateRelationshipStatus(this);

        if (KnownNPCs.ContainsKey(otherNPC))
        {
            KnownNPCs[otherNPC]++;
        }

        return;
    }
Example #2
0
    public void EndNpcDialogue()
    {
        AI_NPC ai = gameObject.GetComponent <AI_NPC>();

        ai.StartCurrentState();
        Managers.player.moveBlock = false;
        Cursor.visible            = false;
        Managers.inventory.QuickBar.SetActive(true);
        QuickBar Qb = Managers.inventory.QuickBar.GetComponent <QuickBar>();

        Qb.useBlock = false;
    }
Example #3
0
    public void ExploreNpc()
    {
        if (!battleMode && currentHP > 0)
        {
            NPC_Dialogue npcDialogue = gameObject.GetComponent <NPC_Dialogue>();
            if (npcDialogue != null)
            {
                //Проверить есть ли хоть 1 активный вариант диалога с этим NPC

                AI_NPC ai = gameObject.GetComponent <AI_NPC>();
                //Блокировка движения обеих персонажей
                if (ai != null)
                {
                    ai.StartState(AI_STATE.IDLE_STATE);
                }
                Managers.player.moveBlock = true;
                Managers.player.myAnimator.SetFloat("speed", 0);
                gameObject.transform.LookAt(Managers.player.playerT);//Повернуть лицом к персонажу
                Managers.player.playerT.LookAt(gameObject.transform);

                npcDialogue.UpdateDialogButton();
                Managers.textDialogMgr.TextDialogWindow.SetActive(true);
                Managers.textDialogMgr.TextDialogArea.SetActive(true);
                Cursor.visible = true;
                Managers.inventory.QuickBar.SetActive(false);
                QuickBar Qb = Managers.inventory.QuickBar.GetComponent <QuickBar>();
                Qb.useBlock = true;
            }
        }
        else if (isDead)
        {
            if (gameItemList.Count > 0)
            {
                Managers.itemCollectionInterface.npc = this;
                Managers.itemCollectionInterface.UpdateItemCollectionInterface();
                Managers.itemCollectionInterface.itemCollectionlWindow.SetActive(true);
                Cursor.visible            = true;
                Managers.player.moveBlock = true;
            }
        }
    }
Example #4
0
    public override void GetDamage(int damage, Transform damageObject)
    {
        AI_NPC ai = gameObject.GetComponent <AI_NPC>();

        if (ai != null)
        {
            ai.AddNewTarget(damageObject);
        }
        //battleMode = true;
        currentHP -= damage;

        if (currentHP <= 0)
        {
            currentHP = 0;
            isDead    = true;
            thisAnimator.SetFloat("speed", 0.0f);
            thisAnimator.SetBool("IsDead", true);
            thisAgent.isStopped = true;

            AI_NPC thisNPC = gameObject.GetComponent <AI_NPC>();

            if (thisNPC != null)
            {
                thisNPC.StopAllCoroutines();
            }
            //Дать возможность забрать оружие
            if (currentWeapon != null)
            {
                currentWeapon.isEquipped = false;
                Collider weaponCollider = currentWeapon.GetComponent <Collider>();
                if (weaponCollider != null)
                {
                    weaponCollider.enabled = true;
                }
            }
        }
    }