Conditional statements are very useful. It's very hard to write a game without them. But sometimes, they're just so big! How could you reduce size while keeping usability? Well, lua's logical operators can solve this problem. Here's an example.
This line of code
local store
local burger = "Closed"
local hotdog = "Open"
if burger == "Open" then
store = "Burger"
elseif hotdog == "Open" then
store = "Hotdog"
else
store = "None"
end
can be shrunk down into this.
local burger = "Closed"
local hotdog = "Open"
local store = burger == "Open" and "Burger" or
hotdog == "Open" and "Hotdog" or "None"
So how does this work? To explain this, we have to take a look at some of the logical operators in lua. For an example, if you were to put the following code into the command bar, you would get an output of "Burger".
local burger = "Burger"
print(burger and "Burger")
So why is this? Well, when you just have and alongside two values, it could output one of the two values. If value #1 was false, it would have outputted value #1. If value #1 was true, however, it would output value #2.
So, what does the "or" operator have to do with this? Well, "or" is sort of like a reverse "and" operator. If the first value is true, it will return value #1. If it is false, it'll return value #2.
As an example, this
local burger = false
print(burger or "Closed")
would print "Closed". Since "and" will return false if value #1 is either nil or false, that means the "or" operator will take place and return the second value applied to it.
Hopefully this wasn't too confusing, I've never written a tutorial before. Thanks for sticking with me until the end, and I hope this helps you!