Blizzard Control - levelgen by sam686
This level was part of December 2012 Level Design Contest maps
Note, this levelgen might not work on stock 018, but it may work on next version of Bitfighter (version 018a and some newer versions)
Name this as blizzard.level
Then, Name this as blizzard.levelgen
Note, this levelgen might not work on stock 018, but it may work on next version of Bitfighter (version 018a and some newer versions)
Name this as blizzard.level
- Code:
- GameType 5 20
LevelName "Blizzard Control"
LevelDescription "You are in control of the Blizzard by using a switch"
LevelCredits sam686
GridSize 255
Team Blue 0 0 1
Script blizzard.levelgen
PolyWall -2.7 1.9 -2.7 2.8 -1.3 2.8 -1.3 2.9 -2.7 2.9 -2.7 3 -2.8 3 -2.8 1.9
PolyWall -6 -5 -5.5 -4.5 5.5 -4.5 6 -5
PolyWall -4.2 -2.5 -4.4 -2.5 -3.2 -3.1 -2.6 -2.8 -2.6 -3.1 -2.5 -3.1 -2.5 -2.6 -3.1 -2.9 -3.3 -2.9 -4.1 -2.5 -4.1 -1.6 -2.2 -1.6 -2.2 -1.5 -4.2 -1.5
PolyWall 1 -2.9 0.8 -2.9 2 -3.5 3.2 -2.9 3 -2.9 3 -2.4 2.9 -2.4 2.9 -2.9 2.1 -3.3 1.9 -3.3 1.1 -2.9 1.1 -2.6 2.4 -2.6 2.4 -2.5 1.1 -2.5 1.1 -2 3 -2 3 -1.9 1 -1.9
PolyWall 1 0.4 1.2 0.4 0 -0.2 -1.2 0.4 -0.9 0.4 -0.1 0 0.1 0 0.9 0.4 0.9 0.8 -0.1 0.8 -0.1 0.6 -0.2 0.6 -0.2 0.8 -1 0.8 -1 0.9 1 0.9
PolyWall -2.3 -3.1 -2.3 -2.2 -3.7 -2.2 -3.7 -2.1 -2.3 -2.1 -2.3 -2 -2.2 -2 -2.2 -3.1
PolyWall -0.8 2.5 -0.6 2.5 -1.8 1.9 -2.4 2.2 -2.4 1.9 -2.5 1.9 -2.5 2.4 -1.9 2.1 -1.7 2.1 -0.9 2.5 -0.9 3.4 -2.8 3.4 -2.8 3.5 -0.8 3.5
PolyWall -5.5 4.5 -6 5 6 5 5.5 4.5
PolyWall 5.5 -5 5.5 5 6 5 6 -5
PolyWall 4.3 2.6 4.5 2.6 3.3 2 2.1 2.6 2.3 2.6 2.3 3.1 2.4 3.1 2.4 2.6 3.2 2.2 3.4 2.2 4.2 2.6 4.2 2.9 2.9 2.9 2.9 3 4.2 3 4.2 3.5 2.3 3.5 2.3 3.6 4.3 3.6
PolyWall -6 -5 -6 5 -5.5 5 -5.5 -5
Spawn 0 2 -2.9
Spawn 0 -1.8 2.5
Spawn 0 -3.2 -2.5
Spawn 0 3.3 2.6
Spawn 0 3.9 3.2
Spawn 0 -2.3 3.1
Spawn 0 -3.9 -1.9
Spawn 0 1.4 -2.3
RepairItem -1.1 3.2 20
RepairItem 1.3 -2.8 20
TextItem -1 -0.6 0.4 0.6 0.4 38.491 "Blizzard Control"
LoadoutZone -1 0.9 0.8 0.9 0.6 -0.1 0.6 -0.1 0.8
Then, Name this as blizzard.levelgen
- Code:
- objects = {}
textitem = nil
enabled = true
waittime = 0
function onShipEnteredZone(ship, zone, zoneType, zoneId)
if waittime <= 0 then
if enabled then
enabled = false
textitem:setText("OFF")
for index, object in ipairs(objects) do
object:setVel(0, 0)
end
else
textitem:setText("ON")
enabled = true
end
textitem:setGeom(textitem:getGeom()) -- this line is to properly send packUpdate to clients
waittime = 500
end
end
function onTick(timePassed)
if waittime >= 0 then
waittime = waittime - timePassed
end
if enabled then
for index, object in ipairs(objects) do
vel = object:getVel()
pos = object:getLoc()
a = math.atan2(pos.x, pos.y)
object:setVel(vel.x - math.cos(a) * 2 * timePassed, vel.y + math.sin(a) * 2 * timePassed)
end
end
end
function main()
for a = 1, 100 do
objects[a] = ResourceItem.new()
objects[a]:setLoc(math.cos(a * 2.3) * (400 + a), math.sin(a * 2.3) * (400 + a))
levelgen:addItem(objects[a])
a=a+1
end
textitem = TextItem.new()
textitem:setText("ON")
textitem:setGeom(-175, 190, -50, 190)
levelgen:addItem(textitem)
enabled = true
waittime = 0
subscribe(Event.tick)
subscribe(Event.ShipEnteredZone)
end