Exemplo n.º 1
0
    public void StartDialogue(List <DialogueLine> dialogue, RelationshipRank rank, UnitPair pair)
    {
        gameObject.SetActive(true);

        sentences.Clear();
        names.Clear();

        this.rank = rank;
        this.pair = pair;

        if (rank != RelationshipRank.SPICY)
        {
            GameInformation.instance.SetBGMVolume(.3f);
        }
        else
        {
            GameInformation.instance.PlayLove();
        }

        SetDialogueUnits(dialogue);

        foreach (DialogueLine line in dialogue)
        {
            sentences.Enqueue(line.sentence);
            names.Enqueue(line.name);
        }

        lineNum = 1;
        DisplayNextSentence();
    }
    public void UpdateButtons(Point pos)
    {
        adjacentUnit = DirectionsExtensions.GetAdjacentPlayer(controller.board, pos);

        if (adjacentUnit == null)
        {
            talkButton.gameObject.SetActive(false);
            comboUI.gameObject.SetActive(false);

            return;
        }

        UnitID adjacentID = adjacentUnit.GetComponent <UnitStats>().ID;

        if (!controller.currentUnit.talked &&
            BattleDialogue.StillHasDialogue(currentUnit, adjacentID) &&
            !controller.talked)
        {
            talkButton.gameObject.SetActive(true);
        }

        comboUI.gameObject.SetActive(true);
        UnitPair pair = RelationshipManager.GetRelationshipPair(currentUnit, adjacentID);

        comboUI.SetWithoutObj(GameInformation.instance.GetComboInfo(pair));
    }
            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
            {
                UnitPair temp = (UnitPair)value;

                writer.WriteStartObject();
                writer.WritePropertyName("Attacker");
                serializer.Serialize(writer, temp.Attacker.ToString());
                writer.WritePropertyName("Defender");
                serializer.Serialize(writer, temp.Defender.ToString());
                writer.WriteEndObject();
            }
    public void Talk()
    {
        controller.ChangeState <BattleDialogueState>();
        controller.otherUnit = adjacentUnit;

        Relationship        r     = RelationshipManager.GetRelationshipBetween(currentUnit, adjacentUnit.GetComponent <UnitStats>().ID);
        RelationshipRank    rank  = r.GetNextRank();
        UnitPair            pair  = r.pair;
        List <DialogueLine> lines = BattleDialogue.GetBattleDialogueBetween(currentUnit, adjacentUnit.GetComponent <UnitStats>().ID);

        dialogueManager.StartDialogue(lines, rank, pair);
    }
Exemplo n.º 5
0
    public Relationship(UnitPair pair)
    {
        this.pair = pair;

        rank          = RelationshipRank.NONE;
        supportPoints = 0;

        relationshipAttained = new Dictionary <RelationshipRank, bool>()
        {
            { RelationshipRank.CRUDE, false },
            { RelationshipRank.BLAND, false },
            { RelationshipRank.APPETIZING, false },
            { RelationshipRank.SPICY, false }
        };
    }
Exemplo n.º 6
0
    public static Relationship GetRelationshipBetween(UnitID a, UnitID b)
    {
        UnitPair pair = GetRelationshipPair(a, b);

        foreach (Relationship r in relationships)
        {
            if (r.pair == pair)
            {
                return(r);
            }
        }

        Debug.LogError("Couldn't find relationship between " + a + " and " + b);
        return(null);
    }
    public static bool StillHasDialogue(UnitID a, UnitID b)
    {
        UnitPair pair = RelationshipManager.GetRelationshipPair(a, b);

        switch (pair)
        {
        case UnitPair.MINKEEVHALL:
            return(vhallMinkeeDialogueBattle.Count > 0);

        case UnitPair.PHYNNEMINKEE:
            return(minkeePhynneDialogueBattle.Count > 0);

        case UnitPair.VHALLPHYNNE:
            return(phynneVhallDialogueBattle.Count > 0);
        }

        return(false);
    }
    public static List <DialogueLine> GetBattleDialogueBetween(UnitID a, UnitID b)
    {
        UnitPair pair = RelationshipManager.GetRelationshipPair(a, b);

        switch (pair)
        {
        case UnitPair.MINKEEVHALL:
            return(GetVhallMinkee());

        case UnitPair.PHYNNEMINKEE:
            return(GetMinkeePhynne());

        case UnitPair.VHALLPHYNNE:
            return(GetPhynneVhall());
        }

        Debug.LogError("Couldn't find battle dialogue between " + a + " and " + b);
        return(null);
    }
    public static List <DialogueLine> GetDialogueBetween(UnitID a, UnitID b)
    {
        RelationshipRank rank = RelationshipManager.GetRelationshipBetween(a, b).GetNextRank();
        UnitPair         pair = RelationshipManager.GetRelationshipPair(a, b);

        switch (pair)
        {
        case UnitPair.MINKEEVHALL:
            return(vhallMinkeeDialogue[rank]);

        case UnitPair.PHYNNEMINKEE:
            return(minkeePhynneDialogue[rank]);

        case UnitPair.VHALLPHYNNE:
            return(phynneVhallDialogue[rank]);
        }

        Debug.LogError("Couldn't find relationship between " + a + " and " + b);
        return(null);
    }
    public ItemData GetComboInfo(UnitPair pair)
    {
        int index = 0;

        switch (pair)
        {
        case UnitPair.VHALLPHYNNE:
            index = 0;
            break;

        case UnitPair.MINKEEVHALL:
            index = 1;
            break;

        case UnitPair.PHYNNEMINKEE:
            index = 2;
            break;
        }

        return(comboInfo[index]);
    }
Exemplo n.º 11
0
    public void StartDialogue(List <DialogueLine> dialogue, RelationshipRank rank, UnitPair pair)
    {
        gameObject.SetActive(true);

        sentences.Clear();
        names.Clear();

        this.rank = rank;
        this.pair = pair;

        SetDialogueUnits(dialogue);

        foreach (DialogueLine line in dialogue)
        {
            sentences.Enqueue(line.sentence);
            names.Enqueue(line.name);
        }

        lineNum = 1;
        DisplayNextSentence();
    }
Exemplo n.º 12
0
    public static AudioClip GetClip(UnitPair pair, string rank, int line)
    {
        string filePath = path;

        switch (pair)
        {
        case UnitPair.MINKEEVHALL:
            filePath += "vhallMinkee/";
            break;

        case UnitPair.PHYNNEMINKEE:
            filePath += "minkeePhynne/";
            break;

        case UnitPair.VHALLPHYNNE:
            filePath += "phynneVhall/";
            break;
        }

        filePath += rank + line.ToString();
        AudioClip clip = Resources.Load <AudioClip>(filePath);

        return(clip);
    }
    public ItemData GetComboInfo(UnitPair pair)
    {
        int index = 0;

        switch (pair)
        {
        case UnitPair.VHALLPHYNNE:
            index = 0;
            break;

        case UnitPair.MINKEEVHALL:
            index = 1;
            break;

        case UnitPair.PHYNNEMINKEE:
            index = 2;
            break;
        }

        ItemData data = comboInfo[index];

        data.OnStart();
        return(data);
    }
Exemplo n.º 14
0
 public void StartDialogue(List <DialogueLine> lines, RelationshipUI from, RelationshipRank rank, UnitPair pair)
 {
     dialogueManager.StartDialogue(lines, rank, pair);
     dialogueManager.fromUI = from;
     controller.ChangeState <DialogueState>();
 }