71 lines
2.3 KiB
C#
71 lines
2.3 KiB
C#
using UnityEngine;
|
|
|
|
[CreateAssetMenu(fileName = "NewEnemyData", menuName = "Enemies/EnemyData")]
|
|
public class EnemyData : ScriptableObject
|
|
{
|
|
public string nickname;
|
|
|
|
[Header("Îçâó÷êà ïîáåäû èãðîêà")]
|
|
public AudioClip[] playerVictory;
|
|
[Header("Îçâó÷êà ïîáåäû áîòà")]
|
|
public AudioClip[] playerDefeat;
|
|
|
|
|
|
[Header("Àíèìàöèè ïåðñîíàæà")]
|
|
public AnimatorOverrideController animatorOverride; // äëÿ ïîêàäðîâîé àíèìàöèè
|
|
public Sprite characterSprite; // òåêóùèé/íåéòðàëüíûé ñïðàéò (fallback)
|
|
|
|
[Header("Ôðàçû äëÿ äèàëîãà")]
|
|
|
|
public DialogueLine[] dialogues;
|
|
|
|
[Header("Ñîáûòèéíûå äèàëîãè")]
|
|
public DialogueLine[] onPlayerHit; // Èãðîê ïîïàë
|
|
public DialogueLine[] onPlayerMiss; // Èãðîê ïðîìàçàë
|
|
public DialogueLine[] onBotHit; // Áîò ïîïàë
|
|
public DialogueLine[] onBotMiss; // Áîò ïðîìàçàë
|
|
public DialogueLine[] onPlayerShipDestroyed; // Êîðàáëü èãðîêà óíè÷òîæåí
|
|
public DialogueLine[] onBotShipDestroyed; // Êîðàáëü áîòà óíè÷òîæåí
|
|
|
|
// Âñïîìîãàòåëüíûé ìåòîä äëÿ ïîëó÷åíèÿ ñëó÷àéíîé ôðàçû èç êàòåãîðèè
|
|
public DialogueLine? GetRandomDialogue(DialogueEventType eventType)
|
|
{
|
|
DialogueLine[] sourceArray = null;
|
|
switch (eventType)
|
|
{
|
|
case DialogueEventType.PlayerHit: sourceArray = onPlayerHit; break;
|
|
case DialogueEventType.PlayerMiss: sourceArray = onPlayerMiss; break;
|
|
case DialogueEventType.BotHit: sourceArray = onBotHit; break;
|
|
case DialogueEventType.BotMiss: sourceArray = onBotMiss; break;
|
|
case DialogueEventType.PlayerShipDestroyed: sourceArray = onPlayerShipDestroyed; break;
|
|
case DialogueEventType.BotShipDestroyed: sourceArray = onBotShipDestroyed; break;
|
|
}
|
|
|
|
if (sourceArray != null && sourceArray.Length > 0)
|
|
{
|
|
return sourceArray[Random.Range(0, sourceArray.Length)];
|
|
}
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public enum DialogueEventType
|
|
{
|
|
None,
|
|
PlayerHit,
|
|
PlayerMiss,
|
|
BotHit,
|
|
BotMiss,
|
|
PlayerShipDestroyed,
|
|
BotShipDestroyed
|
|
}
|
|
|
|
[System.Serializable]
|
|
public struct DialogueLine
|
|
{
|
|
[TextArea(2, 5)]
|
|
public string text;
|
|
public string animationName; // íàïðèìåð "Talk", "Angry", "Idle"
|
|
public AudioClip voiceClip;
|
|
}
|