Advertisement
antonsavov

WIP registry

Dec 20th, 2017
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 24.36 KB | None | 0 0
  1. -------------------------------
  2. -- /lib/registry
  3. -------------------------------
  4.  
  5. --[[ REMOVE FROM HERE...
  6. --------------------------------------------------------------------------------------
  7. --- VARIABLES THAT AFFECT THE SPACE OF THE GAME AREA (SPAWN AREA, PLAY AREA AND CATALOGUE AREA TOGETHER)
  8. --------------------------------------------------------------------------------------
  9. --
  10. -- PLAY AREA
  11. --
  12. GRIDCELL_SIZE = 5 -- the width of one grid cell in minecraft blocks. MUST BE ODD NUMBER minimum is 3 maximum is 11
  13. GRIDCELL_COUNT = 10 -- the number of gridcells or slots across X and Z in one game. MUST BE between 5 and 10
  14. --
  15. -- CATALOGUE AREA
  16. --
  17. CATALOGUE_SLOTCOUNT = {
  18.     x = 2, --the number of slots along the X axis
  19.     z = 3 --the number of slots along the Z axis
  20. }
  21. --
  22. --
  23. --
  24. ------------------------------
  25. ---ADVANCED SETTINGS BELOW----
  26. ------------------------------
  27. --
  28. -- ADVANCED PLAY AREA SETTINGS
  29. --
  30. PLAY_AREA_OFFSET = { --TODO make this in blocks not gridcells, make it minimal and move it as a local variable in the respective packages, users dont need to change this
  31.     x = 3, -- the number of grid cells along X the play area is offset from the edge of the spawn zone (the same is used of the CATALOGUE offset)
  32.     z = 3 -- the number of grid cells along Z the play area is offset from the edge of the spawn zone (the negtive of this is used for the catalogue offset)
  33. }
  34. TRENCHES ={ --TODO make this minimal and move it as a local variable in the respective packages, users dont need to change this
  35.     WIDTH = 1, -- in minecraft blocks how WIDE are trenches carved around the platforms of the play area, catalogue area and spawn area (from the edge out)
  36.     DEPTH = 5 -- in minecraft blocks how DEEP are trenches carved around the platforms of the play area, catalogue area and spawn area  (from level of computer down)
  37. }
  38. DO_GRID = true --this refers to the grid of detector blocks placed on the ground at the start of each new game
  39. GRID_HOLE_CHANCE = 0 --
  40.  
  41. --BUILDZONE_FLOOR_HEIGHT = -1 --the elevation of the floor of the play area realtive to the computer elevation (along Y axis)
  42.  
  43. --- this is the matrix or grid of play areas that are created in the world
  44. BUILDZONE_COUNT = {
  45.     x = 1,
  46.     z = 1
  47. }
  48. --- this is the matrix or grid of portals that are created in the world
  49. PORTAL_COUNT = {
  50.     x = 1, --TODO assert(PORTAL_COUNT.x <= 3, "Portal count along X must be 1, 2 or 3")
  51.     z = 1 --TODO assert(PORTAL_COUNT.z <= 3, "Portal count along Z must be 1, 2 or 3")
  52. }
  53. --the portals are the square areas in the spawn zone on which players jump to join a game in the corresponding buildzone
  54. PORTAL_SIZE = 5 -- in minecraft blocks, the size of the portals along X and Z, odd numbers look better
  55. PORTAL_OFFSET = 3 -- in minecraft blocks, the distance between the portals, odd numbers look better
  56. PORTAL_HEIGHT = 3 -- in minecraft blocks, the height of the portal zone
  57.  
  58. --
  59. --GAME_FIELD_MAX = { --TODO move this to the package that handles buildzones ( or the one for queues?) NOTE: setGameSettings(game) refers to it and is used in Portal Package
  60. --  countX = 3, --don't change this, it must stay 3
  61. --  countZ = 3 --don't change this, it must stay 3
  62. --}
  63.  
  64. --TODO if we want to mimic a Manhattan-like grid, offset along X must be different from offset along Z
  65. BUILDZONE_OFFSET = 0 -- in grid cells, the number of grid cells left between the buildzones
  66. --
  67. -- ADVANCED CATALOGUE AREA SETTINGS
  68. --
  69. CATALOGUE_SLOTSIZE = { --TODO make this in blocks not gridcells
  70.     x = 3, -- the size of the slot defined as number of grid cells along X
  71.     z = 3 -- the size of the slot defined as number of grid cells along Z
  72. }
  73. -- TODO make the offset in blocks not grid cells and move to the respective packages as local variable, users dont need to change this
  74. CATALOGUE_SLOT_OFFSET = 1 -- the number of grid cells left free between the slots, also used of the width of the edge of both catalogue and play area
  75. ELEMENT_HEIGHT = 29 --the maximum height of an element in the catalogue
  76. --
  77. -- ADVANCED SPAWN AREA
  78. --
  79. --the spawn area consists of one large area for the spawn of everyone, both ops and adventure players and
  80. -- a dispatching area with portals that lead to a buildzone. for each buildzone there is a dedicated portal
  81. SPAWNZONE_SIZE = 39 -- in minecraft blocks, the size of the spawn zone
  82. --]] --TO HERE
  83.  
  84. -- Status ( 0 = in game, 1 = quit with homecomer, 2 = left game )
  85. PLAYER_STATUS = {
  86.     IN_GAME = 0,
  87.     LEFT_WITH_HOMECOMER = 1,
  88.     LEFT_OTHERWISE = 2
  89. }
  90.  
  91. --[[
  92. -- Phase ( 1 = dormant, 2 = currently playing, 3 = game over, waiting for players to leave the buildzone )
  93. QUEUE_PHASE = {
  94.     DORMANT = 1,
  95.     PLAYING = 2,
  96.     GAMEOVER = 3
  97. }
  98. --]]
  99.  
  100.  
  101.  
  102.  
  103. RECORDS_FOLDER = "/records/"
  104. BUILDZONES_LIST_FILE = RECORDS_FOLDER.."_buildzones-list.json"
  105. ------------------
  106. --OLDER STUFF
  107. -------------------
  108.  
  109. DEBUG_MODE = true
  110.  
  111. ANNOUNCE_ENGLISH = false
  112. ANNOUNCE_GERMAN = false
  113.  
  114. SHOW_HIGHSCORES = false --maybe have debug mode highscroes and actual game highscores saved into files
  115.  
  116. if not DEBUG_MODE then
  117.     ANNOUNCE_ENGLISH = true --in actual play mode at least english messages will be displayed
  118.     SHOW_HIGHSCORES = true --in play mode always show the highscores in the sidebar
  119. end
  120.  
  121.  
  122.  
  123. CITY_VERSION = 1 -- this denotes which iteration of the map is current. When the map is full, i.e. all buildzones have been played we replace it with an empty one and increase the city version with 1
  124.  
  125. SPAWN_VILLAGER = false
  126.  
  127. PHASE_LENGTH_GAME = 600 --seconds a game lasts
  128. PHASE_LENGTH_WAIT = 15 --seconds to wait for players to stand in the yeloow box before starting a game
  129. PHASE_LENGTH_OVER = 15 --seconds to wait after a game is completing befor setting the buildzone to the next phase
  130.  
  131. HOMECOMER_TYPE = "Pig"
  132. HOMECOMER_VALUE = 90 --90 is for pig
  133. MAX_PLAYERS_PER_GAME = 4
  134. MIN_BUILDINGS = 5 -- the minimum number of buildings a buildzone must have in order to be saved and no discarded at the end of a game
  135.  
  136. DEFAULT_NAME = 'BUILDING'
  137.  
  138. WOOL_PER_EMERALD = 64
  139. PICKAXE_USES = 40
  140.  
  141. --[[
  142. BLOCKS = {
  143.     AIR                 = {block='minecraft:air'                    ,variant=0},
  144.     CAMP_FLOOR          = {block='minecraft:sandstone'              ,variant=0},
  145.     WHITE_GRID          = {block='minecraft:sandstone'              ,variant=0},
  146.     DARK_GRID           = {block='minecraft:snow'                   ,variant=0},
  147.     CONSTRUCTION        = {block='minecraft:diamond_ore'            ,variant=0},
  148.     RING                = {block='minecraft:diamond_ore'            ,variant=0},
  149.     DETECT              = {block='minecraft:red_sandstone'          ,variant=0},
  150.     DETECT_DEAD         = {block='minecraft:redstone_block'         ,variant=0},
  151.     VOCAB_DETECT        = {block='minecraft:quartz_block'           ,variant=0},
  152.     VOCAB_REPLACE       = {block='minecraft:coal_block'             ,variant=0},
  153.     VICTORY_MARKER      = {block='minecraft:emerald_block'          ,variant=0},
  154.     PLUG                = {block='minecraft:lapis_ore'              ,variant=0},
  155.     PHVFLOOR            = {block='minecraft:stone_slab'             ,variant=3},
  156.     BUILDING_HOUSE      = {block='minecraft:wool'                   ,variant=0},
  157.     BUILDING_GARDEN     = {block='minecraft:wool'                   ,variant=13},
  158.     BUILDING_WATER      = {block='minecraft:wool'                   ,variant=1},
  159.     SPAWNZONE_FENCE     = {block='minecraft:stained_glass'          ,variant=0},
  160.     _matWhiteSmooth     = {block='mincreaft:stained_hardened_clay'  ,variant=0},
  161.     _matWhiteSmooth2    = {block='minecraft:brick_block'            ,variant=0},
  162.     _matYellowSmooth    = {block='minecraft:stained_hardened_clay'  ,variant=4},
  163.     _matPinkSmooth      = {block='minecraft:stained_hardened_clay'  ,variant=6},
  164.     _matBlueSmooth      = {block='minecraft:stained_hardened_clay'  ,variant=9},
  165.     _matPurpleSmooth    = {block='minecraft:stained_hardened_clay'  ,variant=10},
  166.     _matWhiteTextured   = {block='minecraft:planks'                 ,variant=4},
  167.     _matYellowTextured  = {block='minecraft:planks'                 ,variant=1},
  168.     _matPinkTextured    = {block='minecraft:planks'                 ,variant=0},
  169.     _matBlueTextured    = {block='minecraft:planks'                 ,variant=2},
  170.     _matPurpleTextured  = {block='minecraft:planks'                 ,variant=5}
  171. }
  172. --]]
  173.  
  174. --os.loadAPI('lib/utils')
  175. --os.loadAPI('lib/json')
  176.  
  177. --[[
  178. local ox,oy,oz = commands.getBlockPosition()
  179. computer = {
  180.     x = ox,
  181.     y = oy,
  182.     z = oz
  183. }
  184. ]]
  185.  
  186. --[[
  187. -- function to check if settings file exist and if not create it using the default settings in registry
  188. --if settings file exists then read it and change the variables to reflect the settings there
  189. -- TODO move this to an IO package or to GameManager
  190. -- TODO we can use loadstring(txtfile) to read both default and local settings. then for each key in default if the key in local is nil use the default
  191. function loadCustomSettings()
  192.     -- does json file exist?
  193.     --local result = nil
  194.     --fs.makeDir("/records")
  195.     local filename = "settings"
  196.     local settings = {}
  197.     if utils.file_exists(filename) then
  198.         ---read from file and change the settings
  199.         settings = json.decodeFromFile(filename)
  200.         --set the settings to the ones found in the file
  201.        
  202.         GRIDCELL_SIZE           = settings.grid_cell_size          
  203.         GRIDCELL_COUNT          = settings.grid_cell_count     
  204.         CATALOGUE_SLOTCOUNT     = settings.catalogue_slot_count
  205.         --PLAY_AREA_OFFSET      = settings.play_area_offset    
  206.         --TRENCHES              = settings.trenches                    
  207.         DO_GRID                 = settings.do_grid             
  208.         GRID_HOLE_CHANCE        = settings.grid_hole_chance    
  209.         --PLUG_LENGTH           = settings.plug_length         
  210.         GAME_FIELD              = settings.game_field          
  211.         BUILDZONE_OFFSET        = settings.buildzone_offset        
  212.         CATALOGUE_SLOTSIZE      = settings.catalogue_slot_size  
  213.         --CATALOGUE_SLOT_OFFSET = settings.catalogue_slot_offset    
  214.         --DEBUG_MODE                = settings.debug_mode          
  215.         ANNOUNCE_ENGLISH        = settings.announce_english    
  216.         ANNOUNCE_GERMAN         = settings.announce_german     
  217.         --SHOW_HIGHSCORES       = settings.show_highscores     
  218.         --CITY_VERSION          = settings.city_version        
  219.         SPAWN_VILLAGER          = settings.spawn_villager          
  220.         --NUMBER_OF_BUILDZONES  = settings.number_of_buildzones
  221.         PHASE_LENGTH_GAME       = settings.phase_length_game       
  222.         PHASE_LENGTH_WAIT       = settings.phase_length_wait       
  223.         PHASE_LENGTH_OVER       = settings.phase_length_over       
  224.         --HOMECOMER_TYPE            = settings.homecomer_type          
  225.         --HOMECOMER_VALUE       = settings.homecomer_value     
  226.         --MAX_PLAYERS_PER_GAME  = settings.max_players_per_game
  227.         --MIN_BUILDINGS             = settings.min_buildings
  228.            
  229.     else
  230.         --create the file with default settings
  231.         --collect the settings variables in one json object
  232.         settings.grid_cell_size         = GRIDCELL_SIZE
  233.         settings.grid_cell_count        = GRIDCELL_COUNT
  234.         settings.catalogue_slot_count   = CATALOGUE_SLOTCOUNT
  235.         --settings.play_area_offset     = PLAY_AREA_OFFSET
  236.         --settings.trenches             = TRENCHES     
  237.         settings.do_grid                = DO_GRID
  238.         settings.grid_hole_chance       = GRID_HOLE_CHANCE
  239.         --settings.plug_length          = PLUG_LENGTH
  240.         settings.game_field             = GAME_FIELD
  241.         settings.buildzone_offset       = BUILDZONE_OFFSET
  242.         settings.catalogue_slot_size    = CATALOGUE_SLOTSIZE
  243.         --settings.catalogue_slot_offset    = CATALOGUE_SLOT_OFFSET
  244.         --settings.debug_mode           = DEBUG_MODE
  245.         settings.announce_english       = ANNOUNCE_ENGLISH
  246.         settings.announce_german        = ANNOUNCE_GERMAN
  247.         --settings.show_highscores      = SHOW_HIGHSCORES
  248.         --settings.city_version         = CITY_VERSION
  249.         settings.spawn_villager         = SPAWN_VILLAGER
  250.         --settings.number_of_buildzones = NUMBER_OF_BUILDZONES
  251.         settings.phase_length_game      = PHASE_LENGTH_GAME
  252.         settings.phase_length_wait      = PHASE_LENGTH_WAIT
  253.         settings.phase_length_over      = PHASE_LENGTH_OVER
  254.         --settings.homecomer_type           = HOMECOMER_TYPE
  255.         --settings.homecomer_value      = HOMECOMER_VALUE
  256.         --settings.max_players_per_game = MAX_PLAYERS_PER_GAME
  257.         --settings.min_buildings            = MIN_BUILDINGS
  258.         --save the file with settings
  259.         local file = fs.open(filename,"w")
  260.         file.write(json.encodePretty(settings))
  261.         file.close()
  262.     end
  263.    
  264.     return settings
  265. end
  266.  
  267. print('loadCustomSettings()')
  268. loadCustomSettings()
  269. --]]
  270.  
  271.  
  272. --- VARIABLES CONSTRUCTED FROM THE SETTINGS ABOVE
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281. ---CATALOGUE related
  282.  
  283.  
  284.  
  285. ---
  286. ---
  287. --- PLAY AREA RELATED
  288. --
  289.  
  290.  
  291.  
  292. -- OLDER STUFF
  293.  
  294. --[[
  295. SPAWN = {
  296.     x=computer.x-5,
  297.     y=computer.y,
  298.     z=computer.z-5,
  299.     a1=90,
  300.     a2=0
  301.     }
  302.  
  303. DEBUG_ZONE= {
  304.     x=computer.x+2,
  305.     y=computer.y,
  306.     z=computer.z+2
  307.     }
  308.    
  309.    
  310. WAITZONE = {
  311.     x=12093,
  312.     y=56,
  313.     z=-1779,
  314.     w=5,
  315.     l=5
  316. }
  317.  
  318. --]]
  319.  
  320.  
  321.  
  322. --houseNBT = '{Item:{id:minecraft:wool,Damage:0s,tag:{display:{Name:"House Construction Block",Lore:[Place this against a Diamond to build a house]},CanPlaceOn:["'..BLOCKS.BUILDING_HOUSE.block..'","'..BLOCKS.PLUG.block..'","'..BLOCKS.DETECT.block..'"]}}}'
  323. --gardenNBT = '{Item:{id:minecraft:wool,Damage:13s,tag:{display:{Name:"Garden Construction Block",Lore:[Place this against a Diamond to build a pond or pool]},CanPlaceOn:["'..BLOCKS.BUILDING_HOUSE.block..'","'..BLOCKS.PLUG.block..'","'..BLOCKS.DETECT.block..'"]}}}'
  324.  
  325.  
  326. --[[
  327. --call these to return a proper minecraft item string including adventure mode properties
  328. function houseBlock(quant)
  329.     local text =
  330.     BLOCKS.BUILDING_HOUSE.block..' '..quant..' '..BLOCKS.BUILDING_HOUSE.variant..' {display:{Name:"Urban Resource",Lore:[Place this against a Detector to build denser, more urban buildings]},CanPlaceOn:["'..BLOCKS.BUILDING_HOUSE.block..'","'..BLOCKS.PLUG.block..'","'..BLOCKS.DETECT.block..'"]}'
  331.     return text
  332. end
  333.  
  334.  
  335. function gardenBlock(quant)
  336.     local text = BLOCKS.BUILDING_GARDEN.block..' '..quant..' '..BLOCKS.BUILDING_GARDEN.variant..' {display:{Name:"Nature Resource",Lore:[Place this against a Detector to build greener, more open buildings]},CanPlaceOn:["'..BLOCKS.BUILDING_HOUSE.block..'","'..BLOCKS.PLUG.block..'","'..BLOCKS.DETECT.block..'"]}'
  337.     return text
  338. end
  339. --]]
  340.  
  341.  
  342. --  houseBlock(30), gardenBlock(30),pickaxe
  343. --}
  344. --if the file starting_items doesnt exist then
  345. -- create it with the default ones
  346.  
  347.  
  348. --[[
  349. local default_starting_items = {
  350.     'item{',
  351.     '   block = "wool",',
  352.     '   variant = 0,',
  353.     '   amount = 16',
  354.     '}',
  355.     'item{',
  356.     '   block = "wool",',
  357.     '   variant = 13,',
  358.     '   amount = 16',
  359.     '}'
  360. }
  361. function checkStartingItemsFile()
  362.     local filename = "starting_items"
  363.     if not utils.file_exists(filename) then
  364.         local file = fs.open(filename,"w")
  365.         for i,line in ipairs(default_starting_items) do
  366.             file.write(line.."\n")
  367.         end
  368.         file.close()
  369.     end
  370. end
  371. --starting_items = {}
  372. function starting_items.item(item_table)
  373.     --if all fields are correct add the item to the global variable
  374.     if item_table.block and item_table.variant and item_table.amount then
  375.         startingItemsBlocks[item_table.block] = true
  376.         table.insert(startingItemsTable,item_table)
  377.     end
  378. end
  379.  
  380. --os.loadAPI("starting_items")
  381. function checkStartingItemsFile()
  382.     local filename = "starting_items"
  383.     if not utils.file_exists(filename) then
  384.         local file = fs.open(filename,"w")
  385.         file.write(json.encodePretty(test))
  386.         file.close()
  387.     end
  388. end
  389. checkStartingItemsFile()
  390. --]]
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399. --getStartingItems()
  400.  
  401. DEFAULT_ELEMENTS_SETTINGS = {
  402.     {element_id=1, element_name="element",reward_emeralds=0,reward_blocks={{block = "minecraft:wool", variant = 0, amount=1},{block = "minecraft:wool", variant = 10, amount=10}}, metric_1=0, metric_2=0, metric_3=0, metric_4=0},
  403.     {element_id=2, element_name="element",reward_emeralds=1,reward_blocks={}, metric_1=0, metric_2=0, metric_3=0, metric_4=0},
  404.     {element_id=3, element_name="element",reward_emeralds=0,reward_blocks={{block = "minecraft:wool", variant = 0, amount=1}}, metric_1=0, metric_2=0, metric_3=0, metric_4=0}
  405. }
  406.  
  407. --- TODO a function to collect the blocks listed in element_settings and starting_items and return them as a list to use for the PlaceOn Tags on all of them
  408.    
  409. ----------------------------------------------------------------------------------------------------------------   
  410. -- the data structure below represents the catalogue of vocabularies as built in minecraft
  411. -- id - is unique for each vocab, starting from 1 going to 40 currently
  412. -- column and row - represent the "physical" location of the vocab model in the catalogue in the minecraft world   
  413. -- nameEN and nameDE - are names for english and german. for now english names must not have spaces, use dashes (-) instead
  414. -- typeEN and typeDE - are the type names, also in english and german such as tech&science spaces
  415. -- height - is how many blocks is this structure tall
  416. -- slots - is how many potential detector stones is this structure occupying as a building, ex. 2 for houses, 3 for corner extenstions, 0 for plazas
  417. -- green - is true or false and is used for easier calculation of the GREENEST GOAL - we dont use this field now and can be removed
  418. -- greenSlots - is how many slots are green and is used for easier calculation of the GREENEST GOAL
  419. VOCABS_DATA = {
  420.     -- urban houses
  421.     {id=1, column=1, row=1,nameEN="SINGLE-FAMILY-HOUSE",nameDE="EINFAMILIENHAUS", typeEN="HOUSES",typeDE="HÄUSER",height=10, slots=2, green=false, greenSlots=0, rewardUrban=false, rewardCount=4},
  422.     {id=2, column=1, row=2,nameEN="SINGLE-FAMILY-HOUSE",nameDE="EINFAMILIENHAUS", typeEN="HOUSES",typeDE="HÄUSER",height=10, slots=2, green=false, greenSlots=0, rewardUrban=false, rewardCount=4},
  423.     {id=3, column=1, row=3,nameEN="SINGLE-FAMILY-HOUSE",nameDE="EINFAMILIENHAUS", typeEN="HOUSES",typeDE="HÄUSER",height=10, slots=2, green=false, greenSlots=0, rewardUrban=false, rewardCount=4},
  424.     {id=4, column=1, row=4,nameEN="SINGLE-FAMILY-HOUSE",nameDE="EINFAMILIENHAUS", typeEN="HOUSES",typeDE="HÄUSER",height=10, slots=2, green=false, greenSlots=0, rewardUrban=false, rewardCount=4},
  425.     -- urban businesses
  426.     {id=5, column=2, row=1,nameEN="GYM",nameDE="FITNESSSTUDIO", typeEN="BUSINESSES",typeDE="GESCHÄFTE",height=20, slots=5, green=false, greenSlots=0, rewardUrban=false, rewardCount=8},
  427.     {id=6, column=2, row=2,nameEN="OFFICE-BUILDING",nameDE="BÜROGEBÄUDE", typeEN="BUSINESSES",typeDE="GESCHÄFTE",height=20, slots=5, green=false, greenSlots=0, rewardUrban=false, rewardCount=8},
  428.     {id=7, column=2, row=3,nameEN="HOTEL",nameDE="HOTEL", typeEN="BUSINESSES",typeDE="GESCHÄFTE",height=20, slots=5, green=false, greenSlots=0, rewardUrban=false, rewardCount=8},
  429.     {id=8, column=2, row=4 ,nameEN="BANK",nameDE="BANK", typeEN="BUSINESSES",typeDE="GESCHÄFTE",height=20, slots=5, green=false, greenSlots=0, rewardUrban=false, rewardCount=8},
  430.     -- urban tech&science spaces
  431.     {id=9, column=3, row=1,nameEN="LIBRARY",nameDE="BIBLIOTHEK", typeEN="TECH & SCIENCE SPACES",typeDE="WISSENSCHAFTSGEBÄUDE",height=16, slots=1, green=false, greenSlots=0, rewardUrban=false, rewardCount=10},
  432.     {id=10, column=3, row=2,nameEN="FABLAB",nameDE="INNOVATIONSZENTRUM", typeEN="TECH & SCIENCE SPACES",typeDE="WISSENSCHAFTSGEBÄUDE",height=16, slots=1, green=false, greenSlots=0, rewardUrban=false, rewardCount=10},
  433.     -- green tech&science spaces
  434.     {id=11, column=3, row=3,nameEN="AQUAPONIC-GREENHOUSE",nameDE="AQUAPONIK-GEWÄCHSHAUS", typeEN="TECH & SCIENCE SPACES",typeDE="WISSENSCHAFTSGEBÄUDE",height=16, slots=1, green=true, greenSlots=1, rewardUrban=true, rewardCount=10},
  435.     {id=12, column=3, row=4,nameEN="SCIENCE-BRIDGE",nameDE="WISSENSCHAFTSBRÜCKE", typeEN="TECH & SCIENCE SPACES",typeDE="WISSENSCHAFTSGEBÄUDE",height=16, slots=1, green=true, greenSlots=1, rewardUrban=true, rewardCount=10},
  436.     -- urban house extensions
  437.     {id=13, column=4, row=1,nameEN="HOUSE-EXTENSION",nameDE="HAUSERWEITERUNG", typeEN="EXTENSIONS",typeDE="ERWEITERUNGEN",height=10, slots=1, green=false, greenSlots=0, rewardUrban=false, rewardCount=6},
  438.     {id=14, column=4, row=2,nameEN="HOUSE-EXTENSION",nameDE="HAUSERWEITERUNG", typeEN="EXTENSIONS",typeDE="ERWEITERUNGEN",height=10, slots=1, green=false, greenSlots=0, rewardUrban=false, rewardCount=6},
  439.     {id=15, column=4, row=3,nameEN="HOUSE-EXTENSION",nameDE="HAUSERWEITERUNG", typeEN="EXTENSIONS",typeDE="ERWEITERUNGEN",height=10, slots=1, green=false, greenSlots=0, rewardUrban=false, rewardCount=6},
  440.     {id=16, column=4, row=4,nameEN="HOUSE-EXTENSION",nameDE="HAUSERWEITERUNG", typeEN="EXTENSIONS",typeDE="ERWEITERUNGEN",height=10, slots=1, green=false, greenSlots=0, rewardUrban=false, rewardCount=6},
  441.     --risers
  442.     {id=17, column=5, row=1,nameEN="DOUBLE-FLOOR-RISER",nameDE="VERSCHIEBUNG-ZWEI-HOCH", typeEN="RISERS",typeDE="VERTIKALE VERSCHIEBUNGEN",height=0, slots=0, green=false, greenSlots=0, rewardUrban=true, rewardCount=8},
  443.     {id=18, column=5, row=2,nameEN="SINGLE-FLOOR-RISER",nameDE="VERSCHIEBUNG-EINEN-HOCH", typeEN="RISERS",typeDE="VERTIKALE VERSCHIEBUNGEN",height=0, slots=0, green=false, greenSlots=0, rewardUrban=true, rewardCount=6},
  444.     --plazas
  445.     {id=19, column=5, row=3,nameEN="CITY-PLAZA",nameDE="STÄDTISCHER PLATZ", typeEN="PLAZAS",typeDE="PLÄTZE",height=0, slots=0, green=false, greenSlots=0, rewardUrban=false, rewardCount=2},
  446.     {id=20, column=5, row=4,nameEN="PARK-PLAZA",nameDE="GRÜNER PLATZ", typeEN="PLAZAS",typeDE="PLÄTZE",height=0, slots=0, green=true, greenSlots=1, rewardUrban=true, rewardCount=2},
  447.     --green businesses
  448.     {id=21, column=6, row=1,nameEN="GREEN-GYM",nameDE="GRÜNES FITNESSSTUDIO", typeEN="BUSINESSES",typeDE="GESCHÄFTE",height=20, slots=5, green=true, greenSlots=5, rewardUrban=true, rewardCount=8},
  449.     {id=22, column=6, row=2,nameEN="GREEN-OFFICE-BUILDING",nameDE="GRÜNES BÜROGEBÄUDE", typeEN="BUSINESSES",typeDE="GESCHÄFTE",height=20, slots=5, green=true, greenSlots=5, rewardUrban=true, rewardCount=8},
  450.     {id=23, column=6, row=3,nameEN="GREEN-HOTEL",nameDE="GRÜNES HOTEL", typeEN="BUSINESSES",typeDE="GESCHÄFTE",height=20, slots=5, green=true, greenSlots=5, rewardUrban=true, rewardCount=8},
  451.     {id=24, column=6, row=4,nameEN="GREEN-BANK",nameDE="GRÜNES BANK", typeEN="BUSINESSES",typeDE="GESCHÄFTE",height=20, slots=5, green=true, greenSlots=5, rewardUrban=true, rewardCount=8},
  452.     ---green private garden extensions
  453.     {id=25, column=7, row=1,nameEN="HOUSE-GARDEN",nameDE="PRIVATGARTEN", typeEN="EXTENSIONS",typeDE="ERWEITERUNGEN",height=0, slots=0, green=true, greenSlots=1, rewardUrban=true, rewardCount=6},
  454.     {id=26, column=7, row=2,nameEN="HOUSE-GARDEN",nameDE="PRIVATGARTEN", typeEN="EXTENSIONS",typeDE="ERWEITERUNGEN",height=0, slots=0, green=true, greenSlots=1, rewardUrban=true, rewardCount=6},
  455.     {id=27, column=7, row=3,nameEN="HOUSE-GARDEN",nameDE="PRIVATGARTEN", typeEN="EXTENSIONS",typeDE="ERWEITERUNGEN",height=0, slots=0, green=true, greenSlots=1, rewardUrban=true, rewardCount=6},
  456.     {id=28, column=7, row=4,nameEN="HOUSE-GARDEN",nameDE="PRIVATGARTEN", typeEN="EXTENSIONS",typeDE="ERWEITERUNGEN",height=0, slots=0, green=true, greenSlots=1, rewardUrban=true, rewardCount=6},
  457.     ---green gathering spaces
  458.     {id=29, column=8, row=1,nameEN="OPEN-AIR-CINEMA",nameDE="FREILUFTKINO", typeEN="GATHERING SPACES",typeDE="TREFFPUNKTE",height=8, slots=3, green=true, greenSlots=3, rewardUrban=true, rewardCount=9},
  459.     {id=30, column=8, row=2,nameEN="OPEN-AIR-SWIMMING-POOL",nameDE="FREIBAD", typeEN="GATHERING SPACES",typeDE="TREFFPUNKTE",height=8, slots=3, green=true, greenSlots=3, rewardUrban=true, rewardCount=9},
  460.     {id=31, column=8, row=3,nameEN="GREEN-CAFE",nameDE="GRÜNES CAFÉ", typeEN="GATHERING SPACES",typeDE="TREFFPUNKTE",height=8, slots=3, green=true, greenSlots=3, rewardUrban=true, rewardCount=9},
  461.     {id=32, column=8, row=4,nameEN="PALM-TREE-HOUSE",nameDE="PALMENGARTEN", typeEN="GATHERING SPACES",typeDE="TREFFPUNKTE",height=8, slots=3, green=true, greenSlots=3, rewardUrban=true, rewardCount=9},
  462.     ----urban gathering spaces
  463.     {id=33, column=9, row=1,nameEN="CINEMA",nameDE="KINO", typeEN="GATHERING SPACES",typeDE="TREFFPUNKTE",height=8, slots=3, green=false, greenSlots=0, rewardUrban=false, rewardCount=9},
  464.     {id=34, column=9, row=2,nameEN="CONFERENCE-HALL",nameDE="KONFERENZHALLE", typeEN="GATHERING SPACES",typeDE="TREFFPUNKTE",height=8, slots=3, green=false, greenSlots=0, rewardUrban=false, rewardCount=9},
  465.     {id=35, column=9, row=3,nameEN="CAFÉ",nameDE="CAFÉ", typeEN="GATHERING SPACES",typeDE="TREFFPUNKTE",height=8, slots=3, green=false, greenSlots=0, rewardUrban=false, rewardCount=9},
  466.     {id=36, column=9, row=4,nameEN="ART-GALLERY",nameDE="KUNSTGALERIE", typeEN="GATHERING SPACES",typeDE="TREFFPUNKTE",height=8, slots=3, green=false, greenSlots=0, rewardUrban=false, rewardCount=9},
  467.     ---green-roof houses
  468.     {id=37, column=10, row=1,nameEN="GREEN-ROOF-HOUSE",nameDE="GRÜNES EINFAMILIENHAUS", typeEN="HOUSES",typeDE="HÄUSER",height=10, slots=2, green=true, greenSlots=2, rewardUrban=true, rewardCount=4},
  469.     {id=38, column=10, row=2,nameEN="GREEN-ROOF-HOUSE",nameDE="GRÜNES EINFAMILIENHAUS", typeEN="HOUSES",typeDE="HÄUSER",height=10, slots=2, green=true, greenSlots=2, rewardUrban=true, rewardCount=4},
  470.     {id=39, column=10, row=3,nameEN="GREEN-ROOF-HOUSE",nameDE="GRÜNES EINFAMILIENHAUS", typeEN="HOUSES",typeDE="HÄUSER",height=10, slots=2, green=true, greenSlots=2, rewardUrban=true, rewardCount=4},
  471.     {id=40, column=10, row=4,nameEN="GREEN-ROOF-HOUSE",nameDE="GRÜNES EINFAMILIENHAUS", typeEN="HOUSES",typeDE="HÄUSER",height=10, slots=2, green=true, greenSlots=2, rewardUrban=true, rewardCount=4},
  472. }
  473.    
  474.  
  475. --DEFAULT_REWARD = houseBlock(4)
  476.  
  477. --REWARDS = {}
  478.  
  479. --[[if DEBUG_MODE then
  480.     PHASE_LENGTH_GAME = 12000
  481.     NUMBER_OF_BUILDZONES = 1
  482.     FIRSTZONE = DEBUG_ZONE
  483. end]]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement