PowerUpControl.gd 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. extends CanvasLayer
  2. func openmenu():
  3. buff1 = -1
  4. buff2 = -1
  5. $Control2/VSeparator/Button.text = "accept!"
  6. Engine.time_scale = 0.01
  7. $Control2.show()
  8. $Control/VSeparator/Label.text = 'Choose a power:'
  9. $Control/VSeparator/ItemList.clear()
  10. var array = []
  11. var text = Powerups.menbros.keys() + Powerups.corpo.keys() + Powerups.apendice.keys()
  12. var superdict = {}
  13. for z in Powerups.menbros.keys(): superdict[z] = Powerups.menbros[z]
  14. for z in Powerups.corpo.keys(): superdict[z] = Powerups.corpo[z]
  15. for x in 5:
  16. while text.has('null'): text.erase('null')
  17. text.shuffle()
  18. array.append(text[0])
  19. text.remove(0)
  20. for x in array:
  21. $Control/VSeparator/ItemList.add_item(x)
  22. for x in 5:
  23. $Control2/VSeparator/buttons.get_child(x).id = x
  24. $Control2/VSeparator/buttons.get_child(x)._processUI(superdict[array[x]]['data'])
  25. $Control2/VSeparator/buttons.get_child(x)._description(superdict[array[x]]['description'])
  26. $Control2/VSeparator/buttons.get_child(x).set_texture( superdict[array[x]]['icone'] )
  27. $Control2/VSeparator/buttons.get_child(x).text = superdict[array[x]]['name']
  28. var buff = 0
  29. if Powerups.menbros.has(array[x]): buff = 4
  30. if Powerups.corpo.has(array[x]): buff = 8
  31. $Control2/VSeparator/buttons.get_child(x).collayer = buff
  32. $Control2/VSeparator/buttons.get_child(x).col()
  33. $Control2/VSeparator/buttons.get_child(x).posswitch = true
  34. # Powerups.dict
  35. for x in get_tree().get_nodes_in_group('cleaning'):
  36. x.queue_free()
  37. for x in $Control2/VSeparator/menbros.get_child_count():
  38. var opt = Powerups.dict['menbros'+str($Control2/VSeparator/menbros.get_child(x).id)]
  39. if opt != Powerups.menbros.null:
  40. addoccuptslot(opt,x,$Control2/VSeparator/menbros.get_child(x))
  41. for x in $Control2/VSeparator/corpo.get_child_count():
  42. var opt = Powerups.dict['corpo'+str($Control2/VSeparator/corpo.get_child(x).id)]
  43. if opt != Powerups.corpo.null:
  44. addoccuptslot(opt,x,$Control2/VSeparator/corpo.get_child(x))
  45. func addoccuptslot(opt,x,arg):
  46. var sprite = Sprite.new()
  47. sprite.texture = opt.icone
  48. sprite.position += Vector2(32,32)
  49. var label = Label.new()
  50. label.rect_position.y = 16
  51. label.rect_position.x = 16
  52. label.text = str(opt.level)
  53. sprite.add_child(label)
  54. arg.add_child(sprite)
  55. sprite.add_to_group('cleaning')
  56. func _on_bacteria_level_up():
  57. openmenu()
  58. pass # Replace with function body.
  59. var power = ''
  60. var dict = ''
  61. func _on_ItemList_item_activated(index):
  62. if $Control/VSeparator/Label.text == 'Choose a power:':
  63. print(index)
  64. power = $Control/VSeparator/ItemList.get_item_text(index)
  65. if Powerups.menbros.has(power): dict = 'menbros'
  66. if Powerups.corpo.has(power): dict = 'corpo'
  67. if Powerups.apendice.has(power): dict = 'apendice'
  68. $Control/VSeparator/ItemList.clear()
  69. for x in Powerups.dictslots[dict]:
  70. $Control/VSeparator/ItemList.add_item(Powerups.dict[dict + str(x)].name)
  71. $Control/VSeparator/Label.text = 'put on slot:'
  72. elif $Control/VSeparator/Label.text == 'put on slot:':
  73. print(index)
  74. var dict2 = dict + str(index)
  75. # if not Powerups.has(dict2): return
  76. # if not Powerups.has(dict): return
  77. if Powerups.dict[dict2] == Powerups[dict][power]:
  78. print('upgrading power')
  79. Powerups[dict][power]['level'] += 1
  80. for x in Powerups[dict][power]['upgrade'].keys():
  81. Powerups[dict][power][x] += Powerups[dict][power]['upgrade'][x]
  82. Powerups.dict[dict2] = Powerups[dict][power]
  83. get_parent().get_node("bacteria")._load()
  84. print(dict2)
  85. print(power)
  86. # get_tree().paused = false
  87. emit_signal('close_menu')
  88. Engine.time_scale = 1
  89. $Control2.hide()
  90. pass # Replace with function body.
  91. signal close_menu
  92. var buff1 = 0
  93. var buff2 = 0
  94. var lock = []
  95. #func _physics_process(delta):
  96. # print(lock)
  97. func _on_Button_button_down():
  98. if buff1 == -1 or buff2 == -1:
  99. $Control2/VSeparator/Button.text = "select a power before proceding"
  100. return
  101. _on_ItemList_item_activated(buff1)
  102. _on_ItemList_item_activated(buff2)
  103. pass # Replace with function body.