CTF - Square Pegs & Round Holes - _k - incl. levelgen
Make sure you adjust the levelgen info appropriately!
Levelgen:
- Code:
- CTFGameType 10 5
LevelName Square Pegs & Round Holes
LevelDescription
LevelCredits
Script sorc.levelgen
GridSize 255
MinPlayers 0
MaxPlayers 0
Team Blue 0 0 1
Team Red 1 0 0
BarrierMaker 50 3 3 3 -3
BarrierMaker 50 1 4.1 1 4 2 4
BarrierMaker 50 -2 4 -1 4 -1 4.1
BarrierMaker 50 2 -4 1 -4 1 -4.1
BarrierMaker 50 -3 -3 -3 3
BarrierMaker 50 -1 -4.1 -1 -4 -2 -4
BarrierMaker 50 -0.4 4 -0.2 4
BarrierMaker 50 -0.4 -4 -0.2 -4
BarrierMaker 50 0.2 4 0.4 4
BarrierMaker 50 0.2 -4 0.4 -4
LoadoutZone 1 -0.4 -4.2 0.4 -4.2 0.4 -4.09804 -0.4 -4.1
LoadoutZone 0 -0.4 4.1 0.4 4.1 0.4 4.2 -0.4 4.2
Teleporter 2 -3 0 0
Teleporter -2 3 0 0
ForceFieldProjector -1 0.4 4 1
ForceFieldProjector -1 0.4 -4 1
ForceFieldProjector -1 -0.4 4 1
FlagItem 0 0 4.4
Spawn 1 -1 -3.5
RepairItem 0 0 20
FlagItem 1 0 -4.4
ForceFieldProjector -1 -0.4 -4 1
Spawn 0 2 3.5
AsteroidSpawn -2 2 60
AsteroidSpawn 2 -2 60
Asteroid 2 -2
Asteroid -2 2
Spawn 0 1 3.5
Spawn 0 0 3.5
Spawn 0 -1 3.5
Spawn 0 -2 3.5
Spawn 1 -2 -3.5
Spawn 1 0 -3.5
Spawn 1 1 -3.5
Spawn 1 2 -3.5
Spawn 1 0 -2
Spawn 0 0 2
Spawn 0 0.2 2
Spawn 0 -0.2 2
Spawn 1 0.2 -2
Spawn 1 -0.2 -2
Spawn 0 1 1
Spawn 1 -1 -1
Levelgen:
- Code:
- --BaseDefense toggles between a solid block and turret or a broken barrier in front of the flags
local BaseDefense = math.random(2)
if(BaseDefense == 2) then
levelgen:addLevelLine("BarrierMaker 50 -0.3 4 0.3 4 ")
levelgen:addLevelLine("BarrierMaker 50 -0.3 -4 0.3 -4 ")
levelgen:addLevelLine("Turret -1 0 -3.90196 1")
levelgen:addLevelLine("Turret -1 0 3.90196 1")
else
levelgen:addLevelLine("BarrierMaker 1 -0.1 -3.9 -0.1 -3.9 ")
levelgen:addLevelLine("BarrierMaker 1 0 -3.9 0 -3.9 ")
levelgen:addLevelLine("BarrierMaker 1 0.1 -3.9 0.1 -3.9 ")
levelgen:addLevelLine("BarrierMaker 1 -0.1 3.90196 -0.1 3.9 ")
levelgen:addLevelLine("BarrierMaker 1 0 3.90196 0 3.90196 ")
levelgen:addLevelLine("BarrierMaker 1 0.1 3.90196 0.1 3.9 ")
end
--CircleDraw and SquareDraw are functions that lead down the curved or angular paths for level creation. The first-level code handles the flag areas, center features, and corners. Further tests (ex. LgCirA, SmSqC) determine the presence of the smaller circles or squares.
function CircleDraw()
levelgen:addLevelLine("BarrierMaker 50 -3 -2.9 -3 -3 -2.96593 -3.25882 -2.86603 -3.5 -2.70711 -3.70711 -2.5 -3.86603 -2.25882 -3.96593 -2 -4 -1.9 -4 ")
levelgen:addLevelLine("BarrierMaker 50 3 2.9 3 3 2.96593 3.25882 2.86603 3.5 2.70711 3.70711 2.5 3.86603 2.25882 3.96593 2 4 1.9 4 ")
levelgen:addLevelLine("BarrierMaker 50 -1.9 4 -2 4 -2.25882 3.96593 -2.5 3.86603 -2.70711 3.70711 -2.86603 3.5 -2.96593 3.25882 -3 3 -3 2.9 ")
levelgen:addLevelLine("BarrierMaker 50 1.9 -4 2 -4 2.25882 -3.96593 2.5 -3.86603 2.70711 -3.70711 2.86603 -3.5 2.96593 -3.25882 3 -3 3 -2.9 ")
levelgen:addLevelLine("BarrierMaker 50 1 4 0.965926 4.25882 0.866025 4.5 0.707107 4.70711 0.5 4.86602 0.258819 4.96593 0 5 -0.258819 4.96593 -0.5 4.86602 -0.707107 4.70711 -0.866025 4.5 -0.965926 4.25882 -1 4 ")
levelgen:addLevelLine("BarrierMaker 50 -1 -4 -0.965926 -4.25882 -0.866025 -4.5 -0.707107 -4.70711 -0.5 -4.86602 -0.258819 -4.96593 0 -5 0.258819 -4.96593 0.5 -4.86602 0.707107 -4.70711 0.866025 -4.5 0.965926 -4.25882 1 -4 ")
levelgen:addLevelLine("BarrierMaker 50 0.519615 0.3 0.424264 0.424264 0.3 0.519615 0.155291 0.579556 0.1 0.6 -0.1 0.6 -0.155291 0.579556 -0.3 0.519615 -0.424264 0.424264 -0.519615 0.3 ")
levelgen:addLevelLine("BarrierMaker 50 2.4 0 2.37956 0.155291 2.31962 0.3 2.22426 0.424264 2.1 0.519615 1.95529 0.579556 1.8 0.6 1.64471 0.579556 1.5 0.519615 1.37574 0.424264 1.28039 0.3 1.22044 0.155291 1.2 0 1.22044 -0.155291 1.28039 -0.3 1.37574 -0.424264 1.5 -0.519615 1.64471 -0.579556 1.8 -0.6 1.95529 -0.579556 2.1 -0.519615 2.22426 -0.424264 2.31962 -0.3 2.37956 -0.155291 2.4 0 ")
levelgen:addLevelLine("BarrierMaker 50 -1.2 0 -1.22044 0.155291 -1.28039 0.3 -1.37574 0.424264 -1.5 0.519615 -1.64471 0.579556 -1.8 0.6 -1.95529 0.579556 -2.1 0.519615 -2.22426 0.424264 -2.31961 0.3 -2.37956 0.155291 -2.4 0 -2.37956 -0.155291 -2.31961 -0.3 -2.22426 -0.424264 -2.1 -0.519615 -1.95529 -0.579556 -1.8 -0.6 -1.64471 -0.579556 -1.5 -0.519615 -1.37574 -0.424264 -1.28039 -0.3 -1.22044 -0.155291 -1.2 0 ")
levelgen:addLevelLine("BarrierMaker 50 -0.519615 -0.3 -0.424264 -0.424264 -0.3 -0.519615 -0.155291 -0.579556 -0.1 -0.6 0.1 -0.6 0.155291 -0.579556 0.3 -0.519615 0.424264 -0.424264 0.519615 -0.3 ")
levelgen:addLevelLine("SpeedZone -1.6 -3.8 -2 -3.8 1750 SnapEnabled")
levelgen:addLevelLine("SpeedZone 1.6 3.8 2 3.8 1750 SnapEnabled")
levelgen:addLevelLine("SpeedZone 2.8 0.2 2.8 -0.2 1500 SnapEnabled")
levelgen:addLevelLine("SpeedZone -2.8 -0.2 -2.8 0.2 1500 SnapEnabled")
levelgen:addLevelLine("Turret -1 0 -0.698039 1")
levelgen:addLevelLine("Turret -1 0 0.698039 1")
local LgCirA = math.random(4)
if(LgCirA == 4) then
else
levelgen:addLevelLine("BarrierMaker 50 -1.15981 1.55 -1.11213 1.48787 -1.05 1.44019 -0.977646 1.41022 -0.9 1.4 -0.822354 1.41022 -0.75 1.44019 -0.687868 1.48787 -0.640192 1.55 -0.610222 1.62235 -0.6 1.7 -0.610222 1.77765 -0.640192 1.85 -0.687868 1.91213 -0.75 1.95981 -0.822354 1.98978 -0.9 2 -0.977646 1.98978 -1.05 1.95981 -1.11213 1.91213 -1.15981 1.85 -1.18978 1.77765 -1.2 1.7 -1.18978 1.62235 -1.15981 1.55 ")
levelgen:addLevelLine("BarrierMaker 50 0.840192 -1.85 0.887868 -1.91213 0.95 -1.95981 1.02235 -1.98978 1.1 -2 1.17765 -1.98978 1.25 -1.95981 1.31213 -1.91213 1.35981 -1.85 1.38978 -1.77765 1.4 -1.7 1.38978 -1.62235 1.35981 -1.55 1.31213 -1.48787 1.25 -1.44019 1.17765 -1.41022 1.1 -1.4 1.02235 -1.41022 0.95 -1.44019 0.887868 -1.48787 0.840192 -1.55 0.810222 -1.62235 0.8 -1.7 0.810222 -1.77765 0.840192 -1.85 ")
end
local LgCirB = math.random(4)
if(LgCirB == 4) then
else
levelgen:addLevelLine("BarrierMaker 45 0.640192 1.55 0.687868 1.48787 0.75 1.44019 0.822354 1.41022 0.9 1.4 0.977646 1.41022 1.05 1.44019 1.11213 1.48787 1.15981 1.55 1.18978 1.62235 1.2 1.7 1.18978 1.77765 1.15981 1.85 1.11213 1.91213 1.05 1.95981 0.977646 1.98978 0.9 2 0.822354 1.98978 0.75 1.95981 0.687868 1.91213 0.640192 1.85 0.610222 1.77765 0.6 1.7 0.610222 1.62235 0.640192 1.55 ")
levelgen:addLevelLine("BarrierMaker 45 -1.15981 -1.85 -1.11213 -1.91213 -1.05 -1.95981 -0.977646 -1.98978 -0.9 -2 -0.822354 -1.98978 -0.75 -1.95981 -0.687868 -1.91213 -0.640192 -1.85 -0.610222 -1.77765 -0.6 -1.7 -0.610222 -1.62235 -0.640192 -1.55 -0.687868 -1.48787 -0.75 -1.44019 -0.822354 -1.41022 -0.9 -1.4 -0.977646 -1.41022 -1.05 -1.44019 -1.11213 -1.48787 -1.15981 -1.55 -1.18978 -1.62235 -1.2 -1.7 -1.18978 -1.77765 -1.15981 -1.85 ")
end
local SmCirA = math.random(4)
if(SmCirA == 4) then
else
levelgen:addLevelLine("BarrierMaker 20 0.9134 -3.05 0.92929 -3.07071 0.95 -3.0866 0.97412 -3.09659 1 -3.1 1.02588 -3.09659 1.05 -3.0866 1.07071 -3.07071 1.0866 -3.05 1.09659 -3.02588 1.1 -3 1.09659 -2.97412 1.0866 -2.95 1.07071 -2.92929 1.05 -2.9134 1.02588 -2.90341 1 -2.9 0.97412 -2.90341 0.95 -2.9134 0.92929 -2.92929 0.9134 -2.95 0.90341 -2.97412 0.9 -3 0.90341 -3.02588 0.9134 -3.05 ")
levelgen:addLevelLine("BarrierMaker 20 -1.0866 2.95 -1.07071 2.92929 -1.05 2.9134 -1.02588 2.90341 -1 2.9 -0.97412 2.90341 -0.95 2.9134 -0.92929 2.92929 -0.9134 2.95 -0.90341 2.97412 -0.9 3 -0.90341 3.02588 -0.9134 3.05 -0.92929 3.07071 -0.95 3.0866 -0.97412 3.09659 -1 3.1 -1.02588 3.09659 -1.05 3.0866 -1.07071 3.07071 -1.0866 3.05 -1.09659 3.02588 -1.1 3 -1.09659 2.97412 -1.0866 2.95 ")
end
local SmCirB = math.random(4)
if(SmCirB == 4) then
else
levelgen:addLevelLine("BarrierMaker 20 -0.0865998 -3.05 -0.0707102 -3.07071 -0.0500002 -3.0866 -0.0258799 -3.09659 0 -3.1 0.0258799 -3.09659 0.0500002 -3.0866 0.0707102 -3.07071 0.0865998 -3.05 0.09659 -3.02588 0.0999999 -3 0.09659 -2.97412 0.0865998 -2.95 0.0707102 -2.92929 0.0500002 -2.9134 0.0258799 -2.90341 0 -2.9 -0.0258799 -2.90341 -0.0500002 -2.9134 -0.0707102 -2.92929 -0.0865998 -2.95 -0.09659 -2.97412 -0.0999999 -3 -0.09659 -3.02588 -0.0865998 -3.05 ")
levelgen:addLevelLine("BarrierMaker 20 -0.0866025 2.95 -0.0707107 2.92929 -0.05 2.9134 -0.0258819 2.90341 0 2.9 0.0258819 2.90341 0.05 2.9134 0.0707107 2.92929 0.0866025 2.95 0.0965926 2.97412 0.1 3 0.0965926 3.02588 0.0866025 3.05 0.0707107 3.07071 0.05 3.0866 0.0258819 3.09659 0 3.1 -0.0258819 3.09659 -0.05 3.0866 -0.0707107 3.07071 -0.0866025 3.05 -0.0965926 3.02588 -0.1 3 -0.0965926 2.97412 -0.0866025 2.95 ")
end
local SmCirC = math.random(4)
if(SmCirC == 4) then
else
levelgen:addLevelLine("BarrierMaker 20 0.9134 2.95 0.92929 2.92929 0.95 2.9134 0.97412 2.90341 1 2.9 1.02588 2.90341 1.05 2.9134 1.07071 2.92929 1.0866 2.95 1.09659 2.97412 1.1 3 1.09659 3.02588 1.0866 3.05 1.07071 3.07071 1.05 3.0866 1.02588 3.09659 1 3.1 0.97412 3.09659 0.95 3.0866 0.92929 3.07071 0.9134 3.05 0.90341 3.02588 0.9 3 0.90341 2.97412 0.9134 2.95 ")
levelgen:addLevelLine("BarrierMaker 20 -1.0866 -3.05 -1.07071 -3.07071 -1.05 -3.0866 -1.02588 -3.09659 -1 -3.1 -0.97412 -3.09659 -0.95 -3.0866 -0.92929 -3.07071 -0.9134 -3.05 -0.90341 -3.02588 -0.9 -3 -0.90341 -2.97412 -0.9134 -2.95 -0.92929 -2.92929 -0.95 -2.9134 -0.97412 -2.90341 -1 -2.9 -1.02588 -2.90341 -1.05 -2.9134 -1.07071 -2.92929 -1.0866 -2.95 -1.09659 -2.97412 -1.1 -3 -1.09659 -3.02588 -1.0866 -3.05 ")
end
local SmCirD = math.random(4)
if(SmCirD == 4) then
else
levelgen:addLevelLine("BarrierMaker 20 1.9134 2.95 1.92929 2.92929 1.95 2.9134 1.97412 2.90341 2 2.9 2.02588 2.90341 2.05 2.9134 2.07071 2.92929 2.0866 2.95 2.09659 2.97412 2.1 3 2.09659 3.02588 2.0866 3.05 2.07071 3.07071 2.05 3.0866 2.02588 3.09659 2 3.1 1.97412 3.09659 1.95 3.0866 1.92929 3.07071 1.9134 3.05 1.90341 3.02588 1.9 3 1.90341 2.97412 1.9134 2.95 ")
levelgen:addLevelLine("BarrierMaker 20 -2.0866 -3.05 -2.07071 -3.07071 -2.05 -3.0866 -2.02588 -3.09659 -2 -3.1 -1.97412 -3.09659 -1.95 -3.0866 -1.92929 -3.07071 -1.9134 -3.05 -1.90341 -3.02588 -1.9 -3 -1.90341 -2.97412 -1.9134 -2.95 -1.92929 -2.92929 -1.95 -2.9134 -1.97412 -2.90341 -2 -2.9 -2.02588 -2.90341 -2.05 -2.9134 -2.07071 -2.92929 -2.0866 -2.95 -2.09659 -2.97412 -2.1 -3 -2.09659 -3.02588 -2.0866 -3.05 ")
end
end
function SquareDraw()
levelgen:addLevelLine("BarrierMaker 50 -1.9 -4 -3 -4 -3 -2.9 ")
levelgen:addLevelLine("BarrierMaker 50 1.9 4 3 4 3 2.9")
levelgen:addLevelLine("BarrierMaker 50 -3 2.9 -3 4 -1.9 4 ")
levelgen:addLevelLine("BarrierMaker 50 3 -2.9 3 -4 1.9 -4 ")
levelgen:addLevelLine("BarrierMaker 50 -1 4 -1 5 1 5 1 4 ")
levelgen:addLevelLine("BarrierMaker 50 -1 -4 -1 -5 1 -5 1 -4 ")
levelgen:addLevelLine("BarrierMaker 355 0 0.7 0 -0.7")
levelgen:addLevelLine("BarrierMaker 355 -2.4 -0.7 -2.4 0.7 ")
levelgen:addLevelLine("BarrierMaker 355 2.4 -0.7 2.4 0.7 ")
levelgen:addLevelLine("ForceFieldProjector -1 0.698039 0 1")
levelgen:addLevelLine("ForceFieldProjector -1 -0.698039 0 1")
levelgen:addLevelLine("Teleporter 2.6 1 -2.6 -3 ")
levelgen:addLevelLine("Teleporter -2.6 -1 2.6 3 ")
local LgSqA = math.random(4)
if(LgSqA == 4) then
else
levelgen:addLevelLine("BarrierMaker 155 0.9 1.4 0.9 2 ")
levelgen:addLevelLine("BarrierMaker 155 -0.9 -2 -0.9 -1.4 ")
end
local LgSqB = math.random(4)
if(LgSqB == 4) then
else
levelgen:addLevelLine("BarrierMaker 155 -0.9 1.4 -0.9 2 ")
levelgen:addLevelLine("BarrierMaker 155 0.9 -2 0.9 -1.4 ")
end
local SmSqA = math.random(4)
if(SmSqA == 4) then
else
levelgen:addLevelLine("BarrierMaker 105 -1 2.8 -1 3.2 ")
levelgen:addLevelLine("BarrierMaker 105 1 -3.2 1 -2.8 ")
end
local SmSqB = math.random(4)
if(SmSqB == 4) then
else
levelgen:addLevelLine("BarrierMaker 105 0 -3.2 0 -2.8 ")
levelgen:addLevelLine("BarrierMaker 105 0 2.8 0 3.2 ")
end
local SmSqC = math.random(4)
if(SmSqC == 4) then
else
levelgen:addLevelLine("BarrierMaker 105 1 2.8 1 3.2 ")
levelgen:addLevelLine("BarrierMaker 105 -1 -3.2 -1 -2.8 ")
end
local SmSqD = math.random(4)
if(SmSqD == 4) then
else
levelgen:addLevelLine("BarrierMaker 105 2 2.8 2 3.2 ")
levelgen:addLevelLine("BarrierMaker 105 -2 -3.2 -2 -2.8 ")
end
end
--This is the test that determines Square Pegs or Round Holes. Executes one of the above functions.
local Shape = math.random(2)
if(Shape == 2) then
CircleDraw()
else
SquareDraw()
end