FAQ  •  Register  •  Login

CTF - Square Pegs & Round Holes - _k - incl. levelgen

<<

karamazovapy

Posts: 1567

Joined: Tue Feb 23, 2010 7:52 pm

Post Sun Oct 03, 2010 12:51 pm

CTF - Square Pegs & Round Holes - _k - incl. levelgen

Make sure you adjust the levelgen info appropriately!
  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
<<

karamazovapy

Posts: 1567

Joined: Tue Feb 23, 2010 7:52 pm

Post Wed Nov 09, 2011 7:14 pm

Re: CTF - Square Pegs & Round Holes - _k - incl. levelgen

This is actually a pretty cool level! I hadn't played it in a long time, and I've decided I rather like it.
<<

ZoombeR

Posts: 1036

Joined: Fri Jun 04, 2010 11:56 pm

Post Wed Nov 09, 2011 8:01 pm

Re: CTF - Square Pegs & Round Holes - _k - incl. levelgen

I like it. however, I feel there are few tatics that make it almost too easy. However, I believe its for the better, helping overpowered players survive with the flag, or working and supporting higher amounts of players. The forec-fields in the middle can get annoying. Bots are useless when this happens. The teleports can get annoying in hot pursuit, but thats just bitfighter, and I like that.

Return to Capture the Flag

Who is online

Users browsing this forum: No registered users and 1 guest