Пример #1
0
    public void AllowPlayerRevive(PlayerController player)
    {
        ReviveInformations i_newPart = new ReviveInformations();

        i_newPart.linkedPlayer = player;
        i_newPart.maxAmount    = player.revivePartsCount;
        i_newPart.amount       = player.revivePartsCount;
        i_newPart.linkedPanel  = Instantiate(Resources.Load <GameObject>("PlayerResource/CollectedPartsPanel"), GameManager.mainCanvas.transform).GetComponent <AssemblingPartPanel>();
        i_newPart.linkedPanel.revivedPlayer  = i_newPart.linkedPlayer;
        i_newPart.linkedPanel.revivingPlayer = playerController;
        i_newPart.linkedPanel.Init();
        i_newPart.linkedPanel.transform.Find("TextHolder").transform.Find("Amount").GetComponent <TextMeshProUGUI>().text = i_newPart.amount + "/" + player.revivePartsCount;
        AllowPlayerRevive(i_newPart);
    }
Пример #2
0
    public void RetrieveCorePart(CorePart i_corePart)
    {
        i_corePart.Pick(playerController);
        FeedbackManager.SendFeedback("event.PlayerPickingBodyPart", playerController, i_corePart.transform.position, i_corePart.transform.position - transform.position, i_corePart.transform.position - transform.position);
        bool i_partsFound = false;
        List <ReviveInformations> newList = new List <ReviveInformations>();

        foreach (ReviveInformations i_parts in retrievedParts)
        {
            if (i_parts.linkedPlayer == i_corePart.linkedPawn)
            {
                i_partsFound = true;
                i_parts.amount++;
                if (i_parts.amount >= i_parts.maxAmount)
                {
                    AllowPlayerRevive(i_parts);
                }
                else
                {
                    i_parts.linkedPanel.transform.Find("TextHolder").transform.Find("Amount").GetComponent <TextMeshProUGUI>().text = i_parts.amount + "/" + i_parts.maxAmount;
                    i_parts.linkedPanel.GetComponent <Animator>().SetTrigger("showAmount");
                    newList.Add(i_parts);
                }
            }
            else
            {
                newList.Add(i_parts);
            }
        }
        retrievedParts = newList;
        if (!i_partsFound)
        {
            ReviveInformations i_newPart = new ReviveInformations();
            i_newPart.linkedPlayer = (PlayerController)i_corePart.linkedPawn;
            i_newPart.maxAmount    = i_corePart.totalPartCount;
            i_newPart.amount       = 1;
            i_newPart.linkedPanel  = Instantiate(Resources.Load <GameObject>("PlayerResource/CollectedPartsPanel"), GameManager.mainCanvas.transform).GetComponent <AssemblingPartPanel>();
            i_newPart.linkedPanel.revivedPlayer  = i_newPart.linkedPlayer;
            i_newPart.linkedPanel.revivingPlayer = playerController;
            i_newPart.linkedPanel.Init();
            i_newPart.linkedPanel.transform.Find("TextHolder").transform.Find("Amount").GetComponent <TextMeshProUGUI>().text = i_newPart.amount + "/" + i_corePart.totalPartCount;
            retrievedParts.Add(i_newPart);
        }
    }
Пример #3
0
 public void AllowPlayerRevive(ReviveInformations parts)
 {
     FeedbackManager.SendFeedback("event.PlayerPickingLastBodyPart", playerController, playerController.transform.position, playerController.transform.position - transform.position, playerController.transform.position - transform.position);
     parts.linkedPanel.GetComponent <Animator>().SetTrigger("showInstructions");
     playerController.AddRevivablePlayer(parts);
 }
Пример #4
0
 public void AddRevivablePlayer(ReviveInformations _player)
 {
     revivablePlayers.Add(_player);
 } //Indicate that the player can now revive someone