Implemented first demo quest line #15

Merged
Jonathan merged 11 commits from feature/implement_quests into develop 5 months ago
Owner

Questline does not include the Beetroot arc

  • Quest for farming to fighting
  • Quest fulfillment check
  • Changed Scene transition to non Threaded
  • Added dialogic addon
    • Activate quest
    • Complete quest
    • If Quest has state
  • Some bug fixes
    • You can leave the fight scene
    • Vesna does not have a proper animation reference
    • Wrong visibility flag for the quest post it
    • Yeli timelines trigger to often
  • Skip disclaimer scene
  • Formatted PlayerMovement file
  • Added Speedhack Setting
    • Set to -1 to disable, any positive number is multiplied by player speed
    • Can be accessed in Project settings
    • But better to be set in override.cfg
      [babushka]
      hacks/speed_hack=10.0
      
Questline does not include the Beetroot arc - Quest for farming to fighting - Quest fulfillment check - Changed Scene transition to non Threaded - Added dialogic addon - Activate quest - Complete quest - If Quest has state - Some bug fixes - You can leave the fight scene - Vesna does not have a proper animation reference - Wrong visibility flag for the quest post it - Yeli timelines trigger to often - Skip disclaimer scene - Formatted PlayerMovement file - Added Speedhack Setting - Set to -1 to disable, any positive number is multiplied by player speed - Can be accessed in Project settings - But better to be set in `override.cfg` ``` [babushka] hacks/speed_hack=10.0 ```
Jonathan added 7 commits 5 months ago
Jonathan added 1 commit 5 months ago
kziolkowski reviewed 5 months ago
if(_fillstate > 0)
{
_fillstate--;
OnWater?.Invoke();
Owner

Wofür genau soll diese Action nachher verwendet werden?
Wenn das signalisieren soll, wenn Vesna sich auf einer Watered-Tile befindet (z.B. für Geh-Sounds), dann würde ich dafür vermutlich eher den Fieldservice verwenden.

Wofür genau soll diese Action nachher verwendet werden? Wenn das signalisieren soll, wenn Vesna sich auf einer Watered-Tile befindet (z.B. für Geh-Sounds), dann würde ich dafür vermutlich eher den Fieldservice verwenden.
Poster
Owner

Das wird immer aufgerufen, wenn etwas gegossen wird. Das ist ne Quick-and-dirty-Lösung, die von QuestBehaviour/DetectFieldWork.cs genutzt wird, um Feldarbeit als abgeschlossen zu erkennen.

Das wird immer aufgerufen, wenn etwas gegossen wird. Das ist ne Quick-and-dirty-Lösung, die von `QuestBehaviour/DetectFieldWork.cs` genutzt wird, um Feldarbeit als abgeschlossen zu erkennen.
Jonathan marked this conversation as resolved
kziolkowski reviewed 5 months ago
namespace Babushka.scripts.CSharp.Common.Inventory;
using Godot;
Owner

Was ist das für ein Unicode-Character am Anfang?
Wenn ich die Datei in Rider ansehe, ist da nichts.

Was ist das für ein Unicode-Character am Anfang? Wenn ich die Datei in Rider ansehe, ist da nichts.
Poster
Owner

Ist scheinbar ein Rider Bug. Das Zeichen wird immer eingefügt, wenn man neue Dateien in Rider erstellt. Es gibt auch noch mehr Dateien mit dem Zeichen am Anfang. Zumindest hat das PowerShell ausgespuckt.

PS babushka> $pattern = [byte[]](0xEF,0xBB,0xBF)
PS babushka> Get-ChildItem -Path "\babushka\scripts\CSharp\Common" -Recurse -File | ForEach-Object {
>>     $bytes = [System.IO.File]::ReadAllBytes($_.FullName)
>>     for ($i = 0; $i -le $bytes.Length - $pattern.Length; $i++) {
>>         if (-not (Compare-Object $bytes[$i..($i+$pattern.Length-1)] $pattern)) {
>>             Write-Output $_.FullName
>>             break
>>         }
>>     }
>> }

babushka\scripts\CSharp\Common\Fight\Fighter.cs
babushka\scripts\CSharp\Common\Fight\FightInstance.cs
babushka\scripts\CSharp\Common\Fight\FightParty.cs
babushka\scripts\CSharp\Common\Fight\FightStarter.cs     
babushka\scripts\CSharp\Common\Fight\FightStateManager.cs
babushka\scripts\CSharp\Common\Inventory\InventoryActionResult.cs
babushka\scripts\CSharp\Common\Inventory\InventorySlot.cs
babushka\scripts\CSharp\Common\Inventory\InventoryTestScript.cs
babushka\scripts\CSharp\Common\Inventory\ItemInstance.cs
babushka\scripts\CSharp\Common\Inventory\ItemOnGroundSpawnWith.cs
babushka\scripts\CSharp\Common\Inventory\ItemResource.cs
babushka\scripts\CSharp\Common\Quest\QuestListItemUi.cs
babushka\scripts\CSharp\Common\Quest\QuestResource.cs
babushka\scripts\CSharp\Common\Quest\QuestStatus.cs
babushka\scripts\CSharp\Common\Util\LinqExtras.cs
babushka\scripts\CSharp\Common\Util\NodeExtension.cs

Ich nehme mal aus der Datei das Zeichen raus, aber die anderen Dateien würde ich jetzt nicht anfassen. Das wären nur viele Changes im git repo. Und schaden tun die Zeichen da scheinbar auch nicht.

Ist scheinbar ein [Rider Bug](https://youtrack.jetbrains.com/issue/RIDER-69866). Das Zeichen wird immer eingefügt, wenn man neue Dateien in Rider erstellt. Es gibt auch noch mehr Dateien mit dem Zeichen am Anfang. Zumindest hat das PowerShell ausgespuckt. ``` PS babushka> $pattern = [byte[]](0xEF,0xBB,0xBF) PS babushka> Get-ChildItem -Path "\babushka\scripts\CSharp\Common" -Recurse -File | ForEach-Object { >> $bytes = [System.IO.File]::ReadAllBytes($_.FullName) >> for ($i = 0; $i -le $bytes.Length - $pattern.Length; $i++) { >> if (-not (Compare-Object $bytes[$i..($i+$pattern.Length-1)] $pattern)) { >> Write-Output $_.FullName >> break >> } >> } >> } babushka\scripts\CSharp\Common\Fight\Fighter.cs babushka\scripts\CSharp\Common\Fight\FightInstance.cs babushka\scripts\CSharp\Common\Fight\FightParty.cs babushka\scripts\CSharp\Common\Fight\FightStarter.cs babushka\scripts\CSharp\Common\Fight\FightStateManager.cs babushka\scripts\CSharp\Common\Inventory\InventoryActionResult.cs babushka\scripts\CSharp\Common\Inventory\InventorySlot.cs babushka\scripts\CSharp\Common\Inventory\InventoryTestScript.cs babushka\scripts\CSharp\Common\Inventory\ItemInstance.cs babushka\scripts\CSharp\Common\Inventory\ItemOnGroundSpawnWith.cs babushka\scripts\CSharp\Common\Inventory\ItemResource.cs babushka\scripts\CSharp\Common\Quest\QuestListItemUi.cs babushka\scripts\CSharp\Common\Quest\QuestResource.cs babushka\scripts\CSharp\Common\Quest\QuestStatus.cs babushka\scripts\CSharp\Common\Util\LinqExtras.cs babushka\scripts\CSharp\Common\Util\NodeExtension.cs ``` Ich nehme mal aus der Datei das Zeichen raus, aber die anderen Dateien würde ich jetzt nicht anfassen. Das wären nur viele Changes im git repo. Und schaden tun die Zeichen da scheinbar auch nicht.
Jonathan marked this conversation as resolved
kziolkowski reviewed 5 months ago
[Export] private AnimatedSprite2D? _sprite;
[Export] private string[] _timelinesToPlay;
[Export] private bool _retriggerSameTimeline = false;
Owner

Für den Anfang okay, aber auf lange Sicht brauchen wir nen automatisierten Mechanismus, der das mit einem Quest- oder Inventarzustand verknüpft und nur dann zur nächsten Timeline übergeht.

Für den Anfang okay, aber auf lange Sicht brauchen wir nen automatisierten Mechanismus, der das mit einem Quest- oder Inventarzustand verknüpft und nur dann zur nächsten Timeline übergeht.
Jonathan marked this conversation as resolved
kziolkowski reviewed 5 months ago
Hidden = 0,
Active = 1,
Done = 2,
Canceled = 3,
Owner

Typo: Cancelled

Typo: Cancelled
Poster
Owner

Geht beides. Das eine ist mehr britisch, das andere mehr amerikanisch.

https://www.merriam-webster.com/grammar/canceled-or-cancelled

Geht beides. Das eine ist mehr britisch, das andere mehr amerikanisch. https://www.merriam-webster.com/grammar/canceled-or-cancelled
Jonathan marked this conversation as resolved
kziolkowski reviewed 5 months ago
{
public enum Status
Owner

Was ist mit 'Available' passiert?

Was ist mit 'Available' passiert?
Jonathan marked this conversation as resolved
kziolkowski reviewed 5 months ago
[Export] private bool _whenFulfilledSetActiveQuestToDone = true;
[Export] private bool _whenFulfilledSetNextQuestToActive = true;
[Export] private bool _whenFulfilledSetNextQuestToFollow = true;
Owner

Hatten wir uns nicht auf ein anderes Wording geeinigt oder hat es einen Grund, warum es jetzt wieder 'Active' und 'Follow' heißt?

Hatten wir uns nicht auf ein anderes Wording geeinigt oder hat es einen Grund, warum es jetzt wieder 'Active' und 'Follow' heißt?
Jonathan marked this conversation as resolved
kziolkowski reviewed 5 months ago
extends Node
class_name DialogicStartSpecific
Owner

Ich finde das naming hier nicht ganz passend:

  • DialogicStartSpecific ist ironischerweise etwas unspezifisch, weil ich daraus nicht unbedingt ableiten kann, inwiefern es sich vom DialogicStarter unterscheidet. Letzterer spielt ja auch eine spezifische timeline ab, nur eben als Parameter.
  • Ich glaube, ich würde den code einfach mit in den vorhandenen DialogicStarter hinzufügen.
  • Ich habe jetzt mehrere Minuten lang geglaubt, dass diese Klasse zu Beginn einer Szene automatisch die Timeline starten würde, weil du die Funktion Start genannt hast. Bitte keine Standardfunktionsnamen aus Unity verwenden, weil das super verwirrend ist.
Ich finde das naming hier nicht ganz passend: - `DialogicStartSpecific` ist ironischerweise etwas unspezifisch, weil ich daraus nicht unbedingt ableiten kann, inwiefern es sich vom `DialogicStarter` unterscheidet. Letzterer spielt ja auch eine spezifische timeline ab, nur eben als Parameter. - Ich glaube, ich würde den code einfach mit in den vorhandenen DialogicStarter hinzufügen. - Ich habe jetzt mehrere Minuten lang geglaubt, dass diese Klasse zu Beginn einer Szene automatisch die Timeline starten würde, weil du die Funktion `Start` genannt hast. Bitte keine Standardfunktionsnamen aus Unity verwenden, weil das super verwirrend ist.
Poster
Owner

Genau das ist der Unterschied: DialogicStarter startet irgendeinen Dialog, den man als Parameter mitgeben kann. Und DialogicStartSpecific startet einen spezifischen Dialog, der schon vorher festgelegt werden muss.

Ich habe dir zuliebe die Funktion aber umbenannt.

Genau das ist der Unterschied: `DialogicStarter` startet irgendeinen Dialog, den man als Parameter mitgeben kann. Und `DialogicStartSpecific` startet einen spezifischen Dialog, der schon vorher festgelegt werden muss. Ich habe dir zuliebe die Funktion aber umbenannt.
Jonathan marked this conversation as resolved
kziolkowski approved these changes 5 months ago
kziolkowski left a comment
Owner

Nice! Bitte einmal auf die Kommentare eingehen und ggf. Anpassungen vornehmen. Danke!

Nice! Bitte einmal auf die Kommentare eingehen und ggf. Anpassungen vornehmen. Danke!
Jonathan added 1 commit 5 months ago
Jonathan added 1 commit 5 months ago
Jonathan added 1 commit 5 months ago
Jonathan merged commit 9bebe1a44d into develop 5 months ago

Reviewers

kziolkowski approved these changes 5 months ago
The pull request has been merged as 9bebe1a44d.
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: Jonathan/Babushka#15
Loading…
There is no content yet.