/usr/share/games/kiki-the-nano-bot/py/levels/energy.py is in kiki-the-nano-bot-data 1.0.2+dfsg1-6build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | # .................................................................................................................
level_dict["energy"] = {
"scheme": "default_scheme",
"size": (9,17,9),
"intro": "energy",
"help": (
"$scale(1.5)mission:\nactivate the exit!\n\n" + \
"to activate the exit,\nshoot the 4 switches",
),
"player": { "position": (0,1,0),
"orientation": roty90,
},
"exits": [
{
"name": "exit",
"active": 0,
"position": (0,0,0),
},
],
"create":
"""
s = world.getSize()
world.addObjectLine (KikiWall, (0, s.y/2, s.z/2), (s.x, s.y/2, s.z/2))
world.addObjectLine (KikiWall, (s.x/2, s.y/2, 0), (s.x/2, s.y/2, s.z))
world.deleteObject (world.getOccupantAtPos (world.decenter (0,0,0)))
world.addObjectAtPos (KikiWall(), world.decenter (0, 3, 0))
world.addObjectAtPos (KikiWall(), world.decenter (0, 6, 0))
world.addObjectAtPos (KikiWall(), world.decenter (0, -4, 0))
world.addObjectAtPos (KikiWall(), world.decenter ( 2,-5, 1))
world.addObjectAtPos (KikiWall(), world.decenter (-1,-5, 2))
world.addObjectAtPos (KikiWall(), world.decenter (-2,-5,-1))
world.addObjectAtPos (KikiWall(), world.decenter ( 1,-5,-2))
world.addObjectAtPos (KikiMutant(), world.decenter ( 2,-5, 2))
world.addObjectAtPos (KikiMutant(), world.decenter (-2,-5,-2))
world.addObjectAtPos (KikiMutant(), world.decenter ( 1,-5, 1))
world.addObjectAtPos (KikiMutant(), world.decenter (-1,-5,-1))
world.addObjectAtPos (KikiMutant(), world.decenter ( 2,-5,-2))
world.addObjectAtPos (KikiMutant(), world.decenter (-2,-5, 2))
world.addObjectAtPos (KikiMutant(), world.decenter ( 1,-5,-1))
world.addObjectAtPos (KikiMutant(), world.decenter (-1,-5, 1))
world.addObjectAtPos (KikiWall(), world.decenter ( 0, 3, s.z/2))
world.addObjectAtPos (KikiWall(), world.decenter ( 0, 5, s.z/2))
world.addObjectAtPos (KikiWall(), world.decenter ( 1, 4, s.z/2))
world.addObjectAtPos (KikiWall(), world.decenter (-1, 4, s.z/2))
world.addObjectAtPos (KikiWall(), world.decenter (s.x/2, 3, 0))
world.addObjectAtPos (KikiWall(), world.decenter (s.x/2, 5, 0))
world.addObjectAtPos (KikiWall(), world.decenter (s.x/2, 4, 1))
world.addObjectAtPos (KikiWall(), world.decenter (s.x/2, 4, -1))
world.addObjectAtPos (KikiWall(), world.decenter ( 0, 3, -s.z/2+1))
world.addObjectAtPos (KikiWall(), world.decenter ( 0, 5, -s.z/2+1))
world.addObjectAtPos (KikiWall(), world.decenter ( 1, 4, -s.z/2+1))
world.addObjectAtPos (KikiWall(), world.decenter (-1, 4, -s.z/2+1))
world.addObjectAtPos (KikiWall(), world.decenter (-s.x/2+1, 3, 0))
world.addObjectAtPos (KikiWall(), world.decenter (-s.x/2+1, 5, 0))
world.addObjectAtPos (KikiWall(), world.decenter (-s.x/2+1, 4, 1))
world.addObjectAtPos (KikiWall(), world.decenter (-s.x/2+1, 4, -1))
world.switch_counter = 0
def switched (switch):
world.switch_counter += switch.isActive() and 1 or -1
exit = kikiObjectToGate (world.getObjectWithName("exit"))
exit.setActive (world.switch_counter == 4)
switch1 = KikiSwitch()
switch1.getEventWithName("switched").addAction (continuous (lambda sw=switch1: switched(sw)))
switch2 = KikiSwitch()
switch2.getEventWithName("switched").addAction (continuous (lambda sw=switch2: switched(sw)))
switch3 = KikiSwitch()
switch3.getEventWithName("switched").addAction (continuous (lambda sw=switch3: switched(sw)))
switch4 = KikiSwitch()
switch4.getEventWithName("switched").addAction (continuous (lambda sw=switch4: switched(sw)))
world.addObjectAtPos (switch1, world.decenter (-s.x/2+1, 4, 0))
world.addObjectAtPos (switch2, world.decenter ( s.x/2, 4, 0))
world.addObjectAtPos (switch3, world.decenter (0, 4, -s.z/2+1))
world.addObjectAtPos (switch4, world.decenter (0, 4, s.z/2))
""",
}
|