Skip to content

Commit

Permalink
Bump version to v4.0.0 (#65)
Browse files Browse the repository at this point in the history
* Fix RichText on different pages

* Add .Offset

* Remove DialogueSettings.ProximityPrompt table check

* Remove table checks

* Fix RichText...again

* Add conditional themes (#68)

* Get default theme name from viewportWidth and viewportHeight

* Remove backwards compatibility

* GetDefaultTheme -> GetDefaultThemes

* Update DefaultTheme default value

* Update README.md

* Add pause tags (#69)
  • Loading branch information
Christian Toney authored May 11, 2023
1 parent 42fe329 commit 5a4ff2e
Show file tree
Hide file tree
Showing 6 changed files with 295 additions and 107 deletions.
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@ The Dialogue Maker is an open-source plugin for creating RPG-like dialogue boxes
* Responsive dialogue editor
* Trigger dialogue with proximity regions and ClickDetectors
* Prioritize your dialogue with conditions and message stacking
* Run synchronous and asynchronous functions before and after dialogue starts
* Run functions before and after a message
* Impose dialogue timeouts
* Embed variables that are customizable throughout the conversation
* Add responses for the player to add interactivity to the conversation
* Add dialogue redirects and make the conversation flow efficient
* Add dialogue redirects
* Customize themes per NPC and per screen size
* Add message pauses

## Where can I get it?
You can either get [the version Beastslash updates at the Roblox Library](https://www.roblox.com/library/4930928141/Dialogue-Maker-Beta) or you can build your own version by using the scripts in this repository.
Expand All @@ -26,10 +28,10 @@ Sure! If you feel like that the Dialogue Maker can be improved for everyone, jus
* [**Christian "Sudobeast" Toney**](https://twitter.com/Sudobeast) - Project Manager and Lead Programmer
* [**BHickey94**](https://github.com/BHickey94) - Code Contributor
* [**GAVsi115**](https://devforum.roblox.com/u/gavsi115/summary) - Code Contributor and Bug Reporter
* [**extravent3**](https://devforum.roblox.com/u/extravent3/summary) - Issue Sponsor and Bug Reporter
* [**ruax2891**](https://twitter.com/ruax2891) - QA Tester
* [**InkyTheBlue**](https://twitter.com/InkyTheBlueDerg) - QA Tester
* [**BeatArcade**](https://www.roblox.com/users/2893686241/profile) - Bug Reporter
* [**joshuajon**](https://github.com/joshuajon) - Bug Reporter
* [**LordMerc**](https://devforum.roblox.com/u/lordmerc/summary) - Bug Reporter
* [**thomkok13**](https://devforum.roblox.com/u/thomkok13/summary) - Bug Reporter
* [**extravent3**](https://devforum.roblox.com/u/extravent3/summary) - Bug Reporter
42 changes: 15 additions & 27 deletions client/DialogueClientScript.lua
Original file line number Diff line number Diff line change
Expand Up @@ -28,30 +28,26 @@ for _, npc in ipairs(NPCDialogue) do

-- Get speech bubble settings.
local DialogueSettings = require(npc.DialogueContainer.Settings);
local SpeechBubbleSettingsIsTable = typeof(DialogueSettings.SpeechBubble) == "table";
local SpeechBubbleEnabled = DialogueSettings.SpeechBubbleEnabled or (SpeechBubbleSettingsIsTable and DialogueSettings.SpeechBubble.Enabled);
local SpeechBubblePart = DialogueSettings.SpeechBubblePart or (SpeechBubbleSettingsIsTable and DialogueSettings.SpeechBubble.BasePart);
local SpeechBubbleEnabled = DialogueSettings.SpeechBubble.Enabled;
local SpeechBubblePart = DialogueSettings.SpeechBubble.BasePart;

-- Get prompt region settings.
local PromptRegionSettingsIsTable = typeof(DialogueSettings.PromptRegion) == "table";
local PromptRegionEnabled = DialogueSettings.PromptRegionEnabled or (PromptRegionSettingsIsTable and DialogueSettings.PromptRegion.Enabled);
local PromptRegionPart = DialogueSettings.PromptRegionPart or (PromptRegionSettingsIsTable and DialogueSettings.PromptRegion.Part);
local PromptRegionEnabled = DialogueSettings.PromptRegion.Enabled;
local PromptRegionPart = DialogueSettings.PromptRegion.Part;

-- Get proximity prompt settings.
local ProximityPromptSettingsIsTable = typeof(DialogueSettings.ProximityPrompt) == "table";
local ProximityPromptEnabled = DialogueSettings.ProximityPromptEnabled or (ProximityPromptSettingsIsTable and DialogueSettings.ProximityPrompt.Enabled);
local ProximityPromptLocation = DialogueSettings.ProximityPromptLocation or (ProximityPromptSettingsIsTable and DialogueSettings.ProximityPrompt.Location);
local ProximityPromptAutoCreate = DialogueSettings.AutomaticallyCreateProximityPrompt or (ProximityPromptSettingsIsTable and DialogueSettings.ProximityPrompt.AutoCreate);
local ProximityPromptActivationDistance = DialogueSettings.ProximityPromptActivationDistance or (ProximityPromptSettingsIsTable and DialogueSettings.ProximityPrompt.MaxActivationDistance);
local ProximityPromptHoldDuration = DialogueSettings.ProximityPromptHoldDuration or (ProximityPromptSettingsIsTable and DialogueSettings.ProximityPrompt.HoldDuration);
local ProximityPromptRequiresLineOfSight = DialogueSettings.ProximityPromptRequiresLineOfSight or (ProximityPromptSettingsIsTable and DialogueSettings.ProximityPrompt.RequiresLineOfSight);
local ProximityPromptEnabled = DialogueSettings.ProximityPrompt.Enabled;
local ProximityPromptLocation = DialogueSettings.ProximityPrompt.Location;
local ProximityPromptAutoCreate = DialogueSettings.ProximityPrompt.AutoCreate;
local ProximityPromptActivationDistance = DialogueSettings.ProximityPrompt.MaxActivationDistance;
local ProximityPromptHoldDuration = DialogueSettings.ProximityPrompt.HoldDuration;
local ProximityPromptRequiresLineOfSight = DialogueSettings.ProximityPrompt.RequiresLineOfSight;

-- Get click detector settings.
local ClickDetectorSettingsIsTable = typeof(DialogueSettings.ClickDetector) == "table";
local ClickDetectorEnabled = DialogueSettings.ClickDetectorEnabled or (ClickDetectorSettingsIsTable and DialogueSettings.ClickDetector.Enabled);
local ClickDetectorLocation = DialogueSettings.ClickDetectorLocation or (ClickDetectorSettingsIsTable and DialogueSettings.ClickDetector.Location);
local ClickDetectorAutoCreate = DialogueSettings.AutomaticallyCreateClickDetector or (ClickDetectorSettingsIsTable and DialogueSettings.ClickDetector.AutoCreate);
local ClickDetectorActivationDistance = DialogueSettings.DetectorActivationDistance or (ClickDetectorSettingsIsTable and DialogueSettings.ClickDetector.ActivationDistance);
local ClickDetectorEnabled = DialogueSettings.ClickDetector.Enabled;
local ClickDetectorLocation = DialogueSettings.ClickDetector.Location;
local ClickDetectorAutoCreate = DialogueSettings.ClickDetector.AutoCreate;
local ClickDetectorActivationDistance = DialogueSettings.ClickDetector.ActivationDistance;

-- Now it's time to set up speech bubbles.
if SpeechBubbleEnabled and SpeechBubblePart then
Expand Down Expand Up @@ -111,14 +107,6 @@ for _, npc in ipairs(NPCDialogue) do
ProximityPrompt.MaxActivationDistance = ProximityPromptActivationDistance;
ProximityPrompt.HoldDuration = ProximityPromptHoldDuration;
ProximityPrompt.RequiresLineOfSight = ProximityPromptRequiresLineOfSight;

-- TODO: Remove in v4.0.0
if typeof(DialogueSettings.ProximityPrompt) == "table" then
ProximityPrompt.GamepadKeyCode = DialogueSettings.ProximityPrompt.GamepadKeyCode;
ProximityPrompt.KeyboardKeyCode = DialogueSettings.ProximityPrompt.KeyboardKeyCode;
ProximityPrompt.ObjectText = DialogueSettings.ProximityPrompt.ObjectText;
end;

ProximityPrompt.Parent = npc;
ProximityPromptLocation = ProximityPrompt;

Expand Down Expand Up @@ -225,4 +213,4 @@ Player.CharacterRemoving:Connect(function()

end);

print("[Dialogue Maker]: Finished preparing dialogue.");
print("[Dialogue Maker]: Finished preparing dialogue.");
Loading

0 comments on commit 5a4ff2e

Please sign in to comment.