public SerializedNpc(GameObject gameObject) { position = new Position(gameObject.transform.position); WeaponShooting enemyShooting = gameObject.GetComponentInChildren <WeaponShooting>(); EnemyAI enemyNpc = gameObject.GetComponentInChildren <EnemyAI>(); NpcStats stats = gameObject.GetComponent <NpcStats>(); Npc npc = gameObject.GetComponentInChildren <Npc>(); maxHealth = stats.maxHealth; damage = stats.damage; armour = stats.armour; radiationResistance = stats.radiationResistance; movementSpeed = stats.movementSpeed; //stats.items = stats.items; experienceGained = stats.experienceGained; radius = npc.radius; dialogueFilename = npc.dialogueFilename; reaction = npc.reaction; questNames = new List <string>(); questStatuses = new List <QuestStatus>(); npc.quests.ForEach(quest => { questNames.Add(quest.title); questStatuses.Add(quest.status); }); attackSpeed = enemyShooting.meleeAttackSpeed; //weaponName = enemyShooting.weapon.name; chaseRadius = enemyNpc.chaseRadius; attackRadius = enemyNpc.attackRadius; meleeRadius = enemyNpc.meleeRadius; }
void RunNode(int nodeIndex, NpcReaction reaction) { CleanOptionsPanel(); if (nodeIndex == -1) { dialogueUI.SetActive(false); npc.reaction = reaction; dialogue = null; TimeManager.instance.RestoreTime(); return; } DialogueNode node = dialogue.nodes[nodeIndex]; dialogueText.text = node.text; node.options.ForEach(option => { if (CheckIfCanShowOption(option)) { Button optButton = Instantiate(optionPrefab, optionsPanel) as Button; optButton.GetComponentInChildren <Text>().text = option.text; optButton.onClick.AddListener(delegate { RunNode(option.destinationNodeId, option.reaction); int questId = option.getQuestId(); if (questId != -1) { if (option.destinationNodeId == -1) { if (option.questStatus == QuestStatus.NONE) { QuestManager.instance.AddQuest(npc.quests[questId]); } } if (option.questStatus == QuestStatus.IN_PROGRESS) { if (npc.quests[questId].IsFinnished()) { QuestManager.instance.FinishQuest(npc.quests[questId]); } else { Debug.Log("GET AWAY AND DO YOUR JOB!"); } } } }); } }); }
public DialogueOption( string text, int dest, NpcReaction reaction, NpcReaction reactionTrigger, List <NpcReaction> excludedReactions, List <int> questId, QuestStatus questStatus ) { this.text = text; this.destinationNodeId = dest; this.reaction = reaction; this.reactionTrigger = reactionTrigger; this.excludedReactions = excludedReactions; this.questId = questId; this.questStatus = questStatus; }