예제 #1
0
 public override void Act()
 {
     if (!string.IsNullOrEmpty(wakupMessage))
     {
         if (remainingActionPoints == actionsPerTurn)
         {
             if (!emittedMesasge)
             {
                 Narrator.ShowPieceByKey(wakupMessage);
                 emittedMesasge = true;
             }
             else
             {
                 Narrator.ClearDisplay(wakupMessage);
                 wakupMessage = "";
             }
         }
     }
     for (int i = 0; i < 4; i++)
     {
         if (Walk())
         {
             break;
         }
     }
 }
예제 #2
0
 public bool Tick()
 {
     if (remainingActionPoints == 0)
     {
         return(false);
     }
     if (remainingActionPoints == actionsPerTurn)
     {
         Narrator.ClearDisplay(narrateOnTurn);
     }
     if (
         Random.value < probabilityToNarrate &&
         !string.IsNullOrEmpty(narrateOnTurn) &&
         remainingActionPoints == actionsPerTurn
         )
     {
         Narrator.ShowPieceByKey(narrateOnTurn);
     }
     Act();
     remainingActionPoints -= 1;
     return(true);
 }
예제 #3
0
 public override int Activate(Location location, Vector2Int offset)
 {
     if (isClosed && location == openFrom && offset == Vector2Int.right)
     {
         if (dialgueIndex < dialogues.Length)
         {
             Narrator.ShowPieceByKey(dialogues[dialgueIndex]);
             dialgueIndex++;
         }
         else
         {
             Narrator.ClearDisplay();
             openFrom.AddNeighbour(openTo);
             isClosed = false;
             for (int i = 0; i < roomsToActivate.Length; i++)
             {
                 roomsToActivate[i].SetActive(true);
             }
             worldDoor.SetActive(false);
         }
         return(1);
     }
     return(0);
 }