Kalananti Holiday Program - Farming Adventures Game

Source Code

StatusChangeScript
-- VARIABLES --
local FarmModel = nil -- script.Parent

local Configuration = nil -- FarmModel.Configuration
local PlantStatus = nil -- Configuration.PlantStatus

local ProximityPart = nil -- FarmModel.ProximityPart
local Plant = nil -- ProximityPart.Plant
local Water = nil -- ProximityPart.Water
local Harvest = nil -- ProximityPart.Harvest

-- FUNCTIONS --
function PlantStatusChanged()
	if PlantStatus.Value <= 1 then
		Plant.ProximityPrompt.Enabled = true
		Water.ProximityPrompt.Enabled = false
		Harvest.ProximityPrompt.Enabled = false
	elseif PlantStatus.Value == 5 then
		Plant.ProximityPrompt.Enabled = false
		Water.ProximityPrompt.Enabled = false
		Harvest.ProximityPrompt.Enabled = true
	else
		Plant.ProximityPrompt.Enabled = false
		Water.ProximityPrompt.Enabled = true
		Harvest.ProximityPrompt.Enabled = false
	end
end

-- EVENTS --
PlantStatus:GetPropertyChangedSignal("Value"):Connect(PlantStatusChanged)
PlantScript
-- VARIABLES --
local FarmModel = nil -- script.Parent

local Configuration = nil -- FarmModel.Configuration
local PlantStatus = nil -- Configuration.PlantStatus

local GroundFolder = nil -- FarmModel.Ground
local PlantGroundFolder = nil -- GroundFolder.PlantGround

local ProximityPart = nil -- FarmModel.ProximityPart
local Plant = nil -- ProximityPart.Plant

local Planting = false

-- FUNCTIONS --
function PlantTriggered(Player)
	local Character = Player.Character
	local Tool = Character:FindFirstChildWhichIsA("Tool")
	
	if Tool then
		if Tool.Name == "Seeds" and Planting == false then
			Planting = true

			if PlantStatus.Value <= 1 then
				PlantStatus.Value = 2
				Tool:Destroy()

				for _, PlantGround in pairs(PlantGroundFolder:GetChildren()) do
					PlantGround.Transparency = 0
					PlantGround.CanCollide = true
				end
			end

			Planting = false
		end
	end
end

-- EVENTS --
Plant.ProximityPrompt.Triggered:Connect(PlantTriggered)
WaterScript
-- VARIABLES --
local FarmModel = nil -- script.Parent

local Configuration = nil -- FarmModel.Configuration
local PlantStatus = nil -- Configuration.PlantStatus

local WaterPumpFolder = nil -- FarmModel.WaterPump
local WaterFolder = nil -- WaterPumpFolder.Water

local ProximityPart = nil -- FarmModel.ProximityPart
local Water = nil -- ProximityPart.Water

local PlantFolder = nil -- FarmModel.Plant
local SmallPlantFolder = nil -- PlantFolder.Small
local MediumPlantFolder = nil -- PlantFolder.Medium
local LargePlantFolder = nil -- PlantFolder.Large

local Watering = false

-- FUNCTIONS --
function WaterTriggered(Player)
	if Watering == false then
		Watering = true
	
		Water.ProximityPrompt.Enabled = false
		
		for _, WaterParticle in pairs(WaterFolder:GetChildren()) do
			local Particle = WaterParticle.ParticleEmitter
			
			Particle.Enabled = true
		end
		
		wait(5)
		
		for _, WaterParticle in pairs(WaterFolder:GetChildren()) do
			local Particle = WaterParticle.ParticleEmitter

			Particle.Enabled = false
		end
		
		if PlantStatus.Value == 2 then
			for _, SmallPlant in pairs(SmallPlantFolder:GetChildren()) do
				SmallPlant.Transparency = 0
			end
			
			for _, MediumPlant in pairs(MediumPlantFolder:GetChildren()) do
				MediumPlant.Transparency = 1
			end
			
			for _, LargePlant in pairs(LargePlantFolder:GetChildren()) do
				LargePlant.Transparency = 1
			end
			
			PlantStatus.Value = 3
		elseif PlantStatus.Value == 3 then
			for _, SmallPlant in pairs(SmallPlantFolder:GetChildren()) do
				SmallPlant.Transparency = 1
			end

			for _, MediumPlant in pairs(MediumPlantFolder:GetChildren()) do
				MediumPlant.Transparency = 0
			end

			for _, LargePlant in pairs(LargePlantFolder:GetChildren()) do
				LargePlant.Transparency = 1
			end
			
			PlantStatus.Value = 4
		elseif PlantStatus.Value == 4 then
			for _, SmallPlant in pairs(SmallPlantFolder:GetChildren()) do
				SmallPlant.Transparency = 1
			end

			for _, MediumPlant in pairs(MediumPlantFolder:GetChildren()) do
				MediumPlant.Transparency = 1
			end

			for _, LargePlant in pairs(LargePlantFolder:GetChildren()) do
				LargePlant.Transparency = 0
			end
			
			PlantStatus.Value = 5
		end
		
		Watering = false
	end
end

-- EVENTS --
Water.ProximityPrompt.Triggered:Connect(WaterTriggered)
HarvestScript
-- VARIABLES --
local FarmModel = nil -- script.Parent

local Configuration = nil -- FarmModel.Configuration
local PlantStatus = nil -- Configuration.PlantStatus

local PlantFolder = nil -- FarmModel.Plant
local LargePlantFolder = nil -- PlantFolder.Large

local GroundFolder = nil -- FarmModel.Ground
local PlantGroundFolder = nil -- GroundFolder.PlantGround

local ProximityPart = nil -- FarmModel.ProximityPart
local Harvest = nil -- ProximityPart.Harvest

local Harvesting = false

-- FUNCTIONS --
function HarvestTriggered(Player)
	if Harvesting == false then
		Harvesting = true

		if PlantStatus.Value == 5 then
			for _, LargePlant in pairs(LargePlantFolder:GetChildren()) do
				LargePlant.Transparency = 1
			end
			
			for _, PlantGround in pairs(PlantGroundFolder:GetChildren()) do
				PlantGround.Transparency = 1
				PlantGround.CanCollide = false
			end
			
			local PlayerGui = Player.PlayerGui
			local ScreenGui = PlayerGui.ScreenGui
			local CompleteLabel = ScreenGui.CompleteLabel
			
			CompleteLabel.Visible = true
			CompleteLabel:TweenPosition(
				UDim2.fromScale(0.5, 0.5),
				Enum.EasingDirection.Out,
				Enum.EasingStyle.Back,
				0.5,
				true
			)
			
			PlantStatus.Value = 1
		end
		
		Harvesting = false
	end
end

-- EVENTS --
Harvest.ProximityPrompt.Triggered:Connect(HarvestTriggered)

Starter Project
Roblox - Farming Adventures Starter Project.rbxl (288.0 KB)