Skip to content

Commit

Permalink
Added level Popup Blocker.
Browse files Browse the repository at this point in the history
  • Loading branch information
GoogleFrog committed Jun 25, 2021
1 parent de5a23e commit 3f548d7
Show file tree
Hide file tree
Showing 3 changed files with 268 additions and 0 deletions.
86 changes: 86 additions & 0 deletions data/levels/PopupBlocker.lvl/main.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name = "Popup Blocker"
speedOfTime = 24
timelineLength = 10800
environment =
{
gravity = 10,
wall =
{
width = 32,
height = 19,
segmentSize = 3200,
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1},
{1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1},
{1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1},
{1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
}
}
initialGuy =
{
arrivalTime = 0,
arrival =
{
x = 8.25 * 3200,
y = 11 * 3200,
width = 1600,
height = 3200,
facing = "right",
timeDirection = "forwards",
pickups = {timeJump = 0, timeReverse = 0, timeGun = 0}
}
}
initialArrivals =
{
{type = "box", boxType = "balloon", x = 21.2 * 3200, y = 9 * 3200, xspeed = 0, yspeed = 0, width = 1.6 * 1600, height = 1.6 * 3200, timeDirection = "forwards"},
}
triggerSystem =
{
type = "ConfiguredLua",

luaFiles = {"triggerSystem", "global.basicTriggerSystem"},
system = [==[ require "triggerSystem" ]==],

-- C++ still manages offsets and defaults.
triggerOffsetsAndDefaults = {
{
offset = 1,
default = {0}
},
{
offset = 1,
default = {0}
},
{
offset = 1,
default = {17 * 3200, 17 * 3200, 0, 0, 0}
},
{
offset = 1,
default = {10.5 * 3200, 15 * 3200, 0, 0, 0}
},
{
offset = 1,
default = {1}
},
{
offset = 1,
default = {0}
},
},
arrivalLocationsSize = 2
}
181 changes: 181 additions & 0 deletions data/levels/PopupBlocker.lvl/triggerSystem.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
local bts = require "global.basicTriggerSystem"

local tempStore =
{
protoPortals =
{
{
attachment = {platform = nil, xOffset = 5.5 * 3200, yOffset = 15 * 3200},
index = 1,
width = 2 * 3200,
height = 2 * 3200,
collisionOverlap = 50,
timeDirection = 'forwards',
destinationIndex = nil,
xDestination = 0,
yDestination = 0,
relativeTime = false,
timeDestination = 0,
illegalDestination = nil,
fallable = false,
winner = true
},
{
attachment = {platform = nil, xOffset = 27.5 * 3200, yOffset = 8 * 3200},
index = 2,
width = 2 * 3200,
height = 2 * 3200,
collisionOverlap = 50,
timeDirection = 'forwards',
destinationIndex = 2,
xDestination = 0,
yDestination = 0,
relativeTime = false,
timeDestination = 0,
illegalDestination = 2,
fallable = false,
winner = false
},
},
protoCollisions = {
{
width = 2 * 3200,
height = 1 * 3200,
timeDirection = 'forwards',
lastStateTriggerID = 3,
buttonTriggerID = 1,
destinations =
{
onDestination = {
xDestination = {
desiredPosition = 17 * 3200,
maxSpeed = 260,
acceleration = 15,
deceleration = 15
},
yDestination = {
desiredPosition = 12 * 3200,
maxSpeed = 300,
acceleration = 30,
deceleration = 15
}
},
offDestination = {
xDestination = {
desiredPosition = 17 * 3200,
maxSpeed = 260,
acceleration = 30,
deceleration = 30
},
yDestination = {
desiredPosition = 17 * 3200,
maxSpeed = 300,
acceleration = 30,
deceleration = 30
}
}
}
},
{
width = 1 * 3200,
height = 2 * 3200,
timeDirection = 'forwards',
lastStateTriggerID = 4,
triggerClause = "t2 t6 &",
destinations =
{
onDestination = {
xDestination = {
desiredPosition = 10.5 * 3200,
maxSpeed = 260,
acceleration = 30,
deceleration = 30
},
yDestination = {
desiredPosition = 13 * 3200,
maxSpeed = 260,
acceleration = 30,
deceleration = 30
}
},
offDestination = {
xDestination = {
desiredPosition = 10.5 * 3200,
maxSpeed = 260,
acceleration = 30,
deceleration = 30
},
yDestination = {
desiredPosition = 15 * 3200,
maxSpeed = 260,
acceleration = 30,
deceleration = 30
}
}
}
},
},
protoMutators = {
bts.pickup{
attachment = {platform = nil, xOffset = 10.5 * 3200, yOffset = 10 * 3200},
width = 1600,
height = 1600,
timeDirection = 'forwards',
triggerID = 5,
pickupType = 'timeJump'
},
bts.spikes{
attachment = {platform = nil, xOffset = 23 * 3200, yOffset = 8 * 3200},
width = 4 * 3200,
height = 0.5 * 3200,
timeDirection = 'forwards',
},
},
protoButtons = {
bts.momentarySwitch{
triggerID = 1,
timeDirection = 'forwards',
attachment = {platform = nil, xOffset = 10.25 * 3200, yOffset = 11.75 * 3200},
width = 3200,
height = 800,
},
bts.momentarySwitch{
triggerID = 2,
timeDirection = 'forwards',
attachment = {platform = nil, xOffset = 2.75 * 3200, yOffset = 6.75 * 3200 },
width = 3200,
height = 800,
},
bts.momentarySwitch{
triggerID = 6,
timeDirection = 'forwards',
attachment = {platform = nil, xOffset = 5.25 * 3200, yOffset = 6.75 * 3200 },
width = 3200,
height = 800,
},
},
protoTriggerMods = {
},
protoGlitz = {
}
}
--==Callin Definitions==--
--triggerArrivals have already had default values inserted by C++
--for trigger indices that did not arrive by the time this is called
calculatePhysicsAffectingStuff = bts.calculatePhysicsAffectingStuff(tempStore)

--responsible*Index gives the position in the list of the thing that
--is responsible for the callin happening.
--By 'the list' I mean the list of objects returned from calculatePhysicsAffectingStuff
--corresponding to the callin type (portals/pickups/killers)
--in particular, this means that this does *not* correspond to the 'index' field
--of a portal (the 'index' field for identifying illegal portals, but not for this)
function shouldArrive(dynamicObject)
return true
end
function shouldPort(responsiblePortalIndex, dynamicObject, porterActionedPortal)
return true
end
mutateObject = bts.mutateObject(tempStore)

getDepartureInformation = bts.getDepartureInformation(tempStore)
1 change: 1 addition & 0 deletions data/levels/PopupBlocker.lvl/win.replay

Large diffs are not rendered by default.

0 comments on commit 3f548d7

Please sign in to comment.