コード例 #1
0
ファイル: ServerPlayer.cs プロジェクト: teSill/TemmoSamples
        public ServerPlayer(ServerPlayerManager playerManager, ServerLogic serverLogic, ServerRegionManager regionManager, ServerNpcManager npcManager, ServerGroundItemManager groundItemManager,
                            string name, string password, NetPeer peer) : base(playerManager, name, (byte)peer.Id)
        {
            _serverLogic = serverLogic;
            playerSkills = new ServerPlayerSkills(this);
            database     = new ServerPlayerDatabase(this, serverLogic.Database);

            ServerInventoryManager inventoryManager = new ServerInventoryManager();

            inventory = new ServerPlayerInventory(this, inventoryManager);
            equipment = new ServerPlayerEquipment(this, inventoryManager);

            combat = new ServerPlayerCombat(_serverLogic, this, playerSkills, equipment);

            _regionManager = regionManager;

            entityRenderer         = new ServerPlayerEntityRenderer(this, npcManager);
            this.groundItemManager = groundItemManager;

            CurrentDialogue = new PlayerDialogue()
            {
                nextStageId = -1
            };

            SubscribePacketListener();

            this.password  = password;
            peer.Tag       = this;
            AssociatedPeer = peer;
            NetworkState   = new PlayerState {
                Id = (byte)peer.Id
            };
        }
コード例 #2
0
ファイル: Player.cs プロジェクト: Lumigra/Projects
 void Start()
 {
     try
     {
         health = GetComponent <Health>();
     }
     catch
     {
         Debug.Log("No health attached");
     }
     finally
     {
         health.onZeroHealth.AddListener(Die);
     }
     try
     {
         movement = GetComponent <PlayerMovement>();
     }
     catch
     {
         Debug.Log("No player movement attached");
     }
     try
     {
         dialogue = GetComponent <PlayerDialogue>();
     }
     catch
     {
         Debug.Log("No dialogue system attached");
     }
 }
コード例 #3
0
 void Start()
 {
     ray            = FindObjectOfType <Camera>().GetComponent <RayCast>();
     gm             = GameObject.Find("GameManager").GetComponent <GameManager>();
     textManager    = TextManager.instance;
     inventory      = gm.GetComponent <Inventory>();
     playerDialogue = GetComponent <PlayerDialogue>();
 }
コード例 #4
0
        // Use this for initialization
        private void Start()
        {
            _playerDialogue           = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerDialogue>();
            _playerDialogue.OnUpdate += UpdateUI;
            nextButton.onClick.AddListener(Next);
            quitButton.onClick.AddListener(Quit);

            UpdateUI();
        }
コード例 #5
0
    IEnumerator TypeSentence(string sentence, PlayerDialogue pd)
    {
        WaitForSeconds wait = new WaitForSeconds(1 / 60f);

        pd.playerDialogueText.text = "";
        foreach (char letter in sentence.ToCharArray())
        {
            pd.playerDialogueText.text += letter;
            yield return(wait);
        }
    }
コード例 #6
0
    // Start is called before the first frame update
    void Start()
    {
        ruth = GameObject.FindWithTag("Player");
        currentConfidence = startingConfidence;
        //confidenceBar = GetComponent<Slider>();
        confidenceBar.value = currentConfidence;

        anim = GetComponent <Animator>();

        playerMovementScript = ruth.GetComponent <PlayerMovement>();
        playerDialogue       = ruth.GetComponent <PlayerDialogue>();
    }
コード例 #7
0
    // For Player
    public void StartDialogue(PlayerDialogue pd)
    {
        clickSound.Play();
        TextMeshPro dialogueText = pd.playerDialogueText;

        sentences.Clear();

        foreach (string sentence in pd.dialogue.sentences)
        {
            sentences.Enqueue(sentence);
        }
        DisplayNextSentence(pd);
    }
コード例 #8
0
    private void OnTriggerEnter(Collider other)
    {
        if (!other.CompareTag(Tags.Player))
        {
            return;
        }

        //  Send bark message to player
        if (playerBarkAmount > 0 || playerBarkAmount == -1)
        {
            PlayerDialogue playerDialogue = other.GetComponentInChildren <PlayerDialogue>();

            if (!playerDialogue.isDialogueEnabled)
            {
                return;
            }

            if (playerBarkMode == PlayerBarkMode.SequentialRecyle)
            {
                playerDialogue.Bark(remainingPlayerBarks[curPlayerBarkIndex]);

                curPlayerBarkIndex = (curPlayerBarkIndex + 1) % remainingPlayerBarks.Count;
            }
            else if (playerBarkMode == PlayerBarkMode.RandomRecyle)
            {
                playerDialogue.Bark(remainingPlayerBarks[Random.Range(0, remainingPlayerBarks.Count)]);
            }
            else if (playerBarkMode == PlayerBarkMode.Sequential && remainingPlayerBarks.Count > 0)
            {
                playerDialogue.Bark(remainingPlayerBarks[curPlayerBarkIndex]);

                //  remove bark
                remainingPlayerBarks.RemoveAt(curPlayerBarkIndex);
            }
            else if (playerBarkMode == PlayerBarkMode.Random && remainingPlayerBarks.Count > 0)
            {
                curPlayerBarkIndex = Random.Range(0, remainingPlayerBarks.Count);

                playerDialogue.Bark(remainingPlayerBarks[curPlayerBarkIndex]);

                //  remove bark
                remainingPlayerBarks.RemoveAt(curPlayerBarkIndex);
            }
        }

        if (remainingPlayerBarks.Count <= 0)
        {
            Destroy(gameObject);
        }
    }
コード例 #9
0
    public void DisplayNextSentence(PlayerDialogue pd)
    {
        Debug.Log("Clicked");
        if (sentences.Count == 1)
        {
            //change button to say play
            IntroButtonText.text = "Play";
        }
        else if (sentences.Count == 0)
        {
            //close dialogue window
            IntroDialogue.SetActive(false);
            return;
        }

        string sentence = sentences.Dequeue();

        //dialogueText.text = sentence;
        StopAllCoroutines();
        StartCoroutine(TypeSentence(sentence, pd));
    }
コード例 #10
0
 public void SetInstance()
 {
     inst = this;
 }
コード例 #11
0
    private void LinkButtonToResponse(Button dialogueButton, PlayerDialogue playerDialogue, NPCDialogue NPCDialogue)
    {
        NPCQuestInteraction npcQuestInteraction = null;

        if (npcInteraction.GetType() == typeof(NPCQuestInteraction))
        {
            npcQuestInteraction = (NPCQuestInteraction)npcInteraction;
        }

        switch (playerDialogue.dialogueType)
        {
        case PlayerDialogueType.NextDialogue:
            dialogueButton.onClick.AddListener(delegate { npcInteraction.PlayDialogue(NPCDialogue.nextDialogue); });
            break;

        case PlayerDialogueType.GetInfo:
            dialogueButton.onClick.AddListener(delegate { npcInteraction.PlayDialogue(playerDialogue.nextDialogue); });
            break;

        case PlayerDialogueType.Accept:
            if (!npcQuestInteraction)
            {
                Debug.Log("NPCQuestInteraction not found, there shouldn't be an Accept option");
            }
            else
            {
                dialogueButton.onClick.AddListener(delegate {
                    npcQuestInteraction.PlayDialogue(playerDialogue.nextDialogue);
                    npcQuestInteraction.QuestAccepted();
                });
            }
            break;

        case PlayerDialogueType.Refuse:
            if (!npcQuestInteraction)
            {
                Debug.Log("NPCQuestInteraction not found, there shouldn't be a Refuse option");
            }
            else
            {
                dialogueButton.onClick.AddListener(delegate {
                    npcQuestInteraction.PlayDialogue(playerDialogue.nextDialogue);
                    npcQuestInteraction.QuestRefused();
                });
            }
            break;

        case PlayerDialogueType.CompleteQuest:
            if (!npcQuestInteraction)
            {
                Debug.Log("NPCQuestInteraction not found, there shouldn't be a CompleteQuest option");
            }
            else
            {
                dialogueButton.onClick.AddListener(delegate {
                    npcQuestInteraction.PlayDialogue(playerDialogue.nextDialogue);
                    npcQuestInteraction.QuestCompleted();
                });
            }
            break;

        case PlayerDialogueType.CloseDialogue:
            dialogueButton.onClick.AddListener(delegate { npcInteraction.CloseDialogue(); });
            break;

        default:
            dialogueButton.onClick.AddListener(delegate { npcInteraction.CloseDialogue(); });
            break;
        }
    }
コード例 #12
0
 private void Start()
 {
     playerDialogue = player.GetComponent <PlayerDialogue>();
 }