Reveals 17/8/26
All Summer reveals (including high-res art) All recent hBP09 reveals Ability for plus-minus signs for arts Internally, arts are now dictionaries instead of lists Ability to directly reattach a support from one holomem to another
@@ -46,11 +46,6 @@ texture = ExtResource("4_onx1c")
|
||||
expand_mode = 1
|
||||
stretch_mode = 4
|
||||
|
||||
[node name="ScrollIconTimer" type="Timer" parent="InfoVBox/Icons/ScrollIcon" unique_id=459691171]
|
||||
unique_name_in_owner = true
|
||||
wait_time = 2.0
|
||||
one_shot = true
|
||||
|
||||
[node name="LockVBox" type="VBoxContainer" parent="InfoVBox/Icons" unique_id=501657068]
|
||||
layout_mode = 1
|
||||
anchors_preset = 1
|
||||
|
||||
@@ -1588,6 +1588,7 @@ func _on_close_error_pressed() -> void:
|
||||
|
||||
func _not_real():
|
||||
#This is all for POT generation
|
||||
#Do not call this function
|
||||
tr("MESSAGE_MULLIGAN")
|
||||
tr("MESSAGE_DRAW")
|
||||
tr("MESSAGE_DRAWX")
|
||||
@@ -1673,6 +1674,7 @@ func _not_real():
|
||||
tr("MESSAGE_ARCHIVE_HOLOMEM_PLAY")
|
||||
tr("MESSAGE_ARCHIVE_CHEER_ATTACH")
|
||||
tr("MESSAGE_ATTACHED_CHEER_ATTACH")
|
||||
tr("MESSAGE_ATTACHED_SUPPORT_ATTACH")
|
||||
tr("MESSAGE_ENDTURN")
|
||||
tr("MESSAGE_DIERESULT")
|
||||
tr("MESSAGE_RPS")
|
||||
@@ -1761,6 +1763,7 @@ func _not_real():
|
||||
tr("YOU_MESSAGE_ARCHIVE_HOLOMEM_PLAY")
|
||||
tr("YOU_MESSAGE_ARCHIVE_CHEER_ATTACH")
|
||||
tr("YOU_MESSAGE_ATTACHED_CHEER_ATTACH")
|
||||
tr("YOU_MESSAGE_ATTACHED_SUPPORT_ATTACH")
|
||||
tr("YOU_MESSAGE_ENDTURN")
|
||||
tr("YOU_MESSAGE_DIERESULT")
|
||||
tr("YOU_MESSAGE_RPS")
|
||||
|
||||
@@ -140,8 +140,8 @@ func setup_info(number,art_code,back=null,load_art=true) -> void:
|
||||
cost_dict.Yellow += 1
|
||||
"N":
|
||||
cost_dict.Any += 1
|
||||
holomem_arts.append([art.artIndex,cost_dict,art.damage,bool(art.hasPlus),bool(art.hasEffect),null if !art.has("advantage") else art.advantage,null if !art.has("advantage") else art.advantageAmount])
|
||||
holomem_arts.sort_custom(func(a,b): return a[0] < b[0]) #Order arts by index
|
||||
holomem_arts.append({"index":art.artIndex,"cost":cost_dict,"damage":art.damage,"hasPlus":bool(art.hasPlus),"hasMinus":bool(art.hasMinus),"hasEffect":bool(art.hasEffect),"advantage":null if !art.has("advantage") else art.advantage,"advantageAmount":null if !art.has("advantage") else art.advantageAmount})
|
||||
holomem_arts.sort_custom(func(a,b): return a.index < b.index) #Order arts by index
|
||||
holomem_effects = []
|
||||
if card_data.has("effect"):
|
||||
holomem_effects.append(card_data.effect)
|
||||
@@ -289,32 +289,40 @@ func full_desc():
|
||||
|
||||
for art in holomem_arts:
|
||||
result += "\n\n[center]"
|
||||
for i in range(art[1].White):
|
||||
for i in range(art.cost.White):
|
||||
result += "[img=18]res://CheerIcons/WhiteArts.webp[/img]"
|
||||
for i in range(art[1].Green):
|
||||
for i in range(art.cost.Green):
|
||||
result += "[img=18]res://CheerIcons/GreenArts.webp[/img]"
|
||||
for i in range(art[1].Red):
|
||||
for i in range(art.cost.Red):
|
||||
result += "[img=18]res://CheerIcons/RedArts.webp[/img]"
|
||||
for i in range(art[1].Blue):
|
||||
for i in range(art.cost.Blue):
|
||||
result += "[img=18]res://CheerIcons/BlueArts.webp[/img]"
|
||||
for i in range(art[1].Purple):
|
||||
for i in range(art.cost.Purple):
|
||||
result += "[img=18]res://CheerIcons/PurpleArts.webp[/img]"
|
||||
for i in range(art[1].Yellow):
|
||||
for i in range(art.cost.Yellow):
|
||||
result += "[img=18]res://CheerIcons/YellowArts.webp[/img]"
|
||||
for i in range(art[1].Any):
|
||||
for i in range(art.cost.Any):
|
||||
result += "[img=18]res://CheerIcons/ColorlessArts.webp[/img]"
|
||||
result += " " + Settings.trans("%s_ART_%s_NAME" % [cardNumber, art[0]]).replace("[", "[lb]")
|
||||
result += " " + str(art[2]) + ("+" if art[3] else "")
|
||||
if art[5] != null:
|
||||
if art[6] in [null, 50]:
|
||||
result += " [img=40]res://Icons/tokkou_50_%s.png[/img]" % art[5].to_lower()
|
||||
elif art[6] == 30:
|
||||
result += " [img=40]res://Icons/tokkou_30_%s.png[/img]" % art[5].to_lower()
|
||||
result += " " + Settings.trans("%s_ART_%s_NAME" % [cardNumber, art.index]).replace("[", "[lb]")
|
||||
result += " " + str(art.damage)
|
||||
|
||||
if art.hasPlus and art.hasMinus:
|
||||
result += "±"
|
||||
elif art.hasPlus:
|
||||
result += "+"
|
||||
elif art.hasMinus:
|
||||
result += "-"
|
||||
|
||||
if art.advantage != null:
|
||||
if art.advantageAmount in [null, 50]:
|
||||
result += " [img=40]res://Icons/tokkou_50_%s.png[/img]" % art.advantage.to_lower()
|
||||
elif art.advantageAmount == 30:
|
||||
result += " [img=40]res://Icons/tokkou_30_%s.png[/img]" % art.advantage.to_lower()
|
||||
else:
|
||||
result += " (+%d [img=18]res://CheerIcons/%s.webp[/img])" % [art[6], art[5]]
|
||||
result += " (+%d [img=18]res://CheerIcons/%s.webp[/img])" % [art.advantageAmount, art.advantage]
|
||||
result += "[/center]"
|
||||
if art[4]:
|
||||
result += "\n\n" + Settings.trans("%s_ART_%s_EFFECT" % [cardNumber, art[0]]).replace("[", "[lb]")
|
||||
if art.hasEffect:
|
||||
result += "\n\n" + Settings.trans("%s_ART_%s_EFFECT" % [cardNumber, art.index]).replace("[", "[lb]")
|
||||
|
||||
var costText = ""
|
||||
for i in range(default_baton_pass_cost):
|
||||
|
||||
@@ -389,7 +389,7 @@ func _holomem_filter(holomem_to_check) -> bool:
|
||||
if holomem_filter.Advantage != null:
|
||||
var found_art_with_correct_advantage = false
|
||||
for possible_art in holomem_to_check.holomem_arts:
|
||||
if possible_art[5] == holomem_filter.Advantage:
|
||||
if possible_art.advantage == holomem_filter.Advantage:
|
||||
found_art_with_correct_advantage = true
|
||||
break
|
||||
if !found_art_with_correct_advantage:
|
||||
|
||||
@@ -70,7 +70,7 @@ func _new_info(top_card, card_to_show) -> void:
|
||||
cheer_result[attached_card.cheer_color].append(preview)
|
||||
else:
|
||||
showing_card_ids.append(attached_card.cardID)
|
||||
result.append([attached_card.cardFront,attached_card.full_desc()])
|
||||
result.append([attached_card.cardFront,attached_card.full_desc(),attached_card])
|
||||
|
||||
#If at least 5 cheer of the same color, condense into one cheer icon with number
|
||||
for cheer_color in cheer_result:
|
||||
|
||||
@@ -1294,7 +1294,7 @@ func _on_card_clicked(card_id : int) -> void:
|
||||
if is_turn:
|
||||
if !actualCard.rested and currentZone in [centerZone, collabZone] and !(first_turn and player1) and !is_goldfishing:
|
||||
for art in actualCard.holomem_arts:
|
||||
popup.add_item(Settings.trans("%s_ART_%s_NAME" % [actualCard.cardNumber, art[0]]), 80+art[0])
|
||||
popup.add_item(Settings.trans("%s_ART_%s_NAME" % [actualCard.cardNumber, art.index]), 80+art.index)
|
||||
|
||||
var found_other = [actualCard.cardNumber]
|
||||
var current_index = 0
|
||||
@@ -1302,8 +1302,8 @@ func _on_card_clicked(card_id : int) -> void:
|
||||
var found_card = all_cards[find_in_zone(zone)]
|
||||
if found_card.cardNumber not in found_other:
|
||||
for art in found_card.holomem_arts:
|
||||
%PopupSubMenu.add_item(Settings.trans("%s_ART_%s_NAME" % [found_card.cardNumber, art[0]]), 80)
|
||||
%PopupSubMenu.set_item_metadata(current_index, {"holomem_number":found_card.cardNumber, "card_id":found_card.cardID, "art_index":art[0]})
|
||||
%PopupSubMenu.add_item(Settings.trans("%s_ART_%s_NAME" % [found_card.cardNumber, art.index]), 80)
|
||||
%PopupSubMenu.set_item_metadata(current_index, {"holomem_number":found_card.cardNumber, "card_id":found_card.cardID, "art_index":art.index})
|
||||
current_index += 1
|
||||
|
||||
if current_index > 0:
|
||||
@@ -1616,6 +1616,10 @@ func _on_list_card_clicked(card_id):
|
||||
|
||||
if life.size() < 6:
|
||||
popup.add_item(tr("LIST_CHEER_LIFE"),603)
|
||||
|
||||
"Support":
|
||||
if currentAttached != null and all_occupied_zones().size() > 1:
|
||||
popup.add_item(tr("LIST_ATTACHED_SUPPORT_ATTACH"),642)
|
||||
|
||||
if currentFuda in [deck,archive,holopower] and actualCard.cardType != "Cheer" and revealed.size() < 10:
|
||||
popup.add_item(tr("LIST_CARD_REVEAL"), 630)
|
||||
@@ -1767,8 +1771,8 @@ func _popup_from_id(id, metadata = null):
|
||||
actualCard = all_cards[metadata["card_id"]]
|
||||
art_index = metadata["art_index"]
|
||||
for art in actualCard.holomem_arts:
|
||||
if art[0] == art_index:
|
||||
oppSide.art_base_damage = art[2]
|
||||
if art.index == art_index:
|
||||
oppSide.art_base_damage = art.damage
|
||||
break
|
||||
|
||||
100: #Play to Back
|
||||
@@ -1923,6 +1927,11 @@ func _popup_from_id(id, metadata = null):
|
||||
var possibleZones = all_bloomable_zones(all_cards[currentCard])[Settings.bloomCode.Instant]
|
||||
showZoneSelection(possibleZones)
|
||||
currentPrompt = 624
|
||||
642: #Attach Support From Attach
|
||||
hideLookAt(false)
|
||||
var possibleZones = all_occupied_zones()
|
||||
showZoneSelection(possibleZones)
|
||||
currentPrompt = 642
|
||||
|
||||
901: #Goldfish Zone Damage
|
||||
set_prompt("PROMPT_DAMAGE", 20, 3)
|
||||
|
||||
@@ -1159,6 +1159,19 @@ class Side:
|
||||
await self.tell_others("Attach Card", {"attachee_info" : await actualCard.to_dict(), "attach_to_info": await attachTo.to_dict()})
|
||||
except IndexError:
|
||||
return
|
||||
case 642: #Attach Support From Attach
|
||||
try:
|
||||
currentAttached = self.cards[data["currentAttached"]]
|
||||
await self.remove_from_attached(currentCard,currentAttached)
|
||||
actualCard = self.cards[currentCard]
|
||||
attachTo = self.cards[self.zones[chosenZone]]
|
||||
await self.send_message(self.player,"MESSAGE_ATTACHED_SUPPORT_ATTACH",{"attachName":actualCard.number+"_NAME","toName":attachTo.number+"_NAME","fromName":currentAttached.number + "_NAME"},
|
||||
{"toZone":chosenZone,"fromZone":await self.find_what_zone(currentAttached.id)})
|
||||
await attachTo.attach(actualCard)
|
||||
await self.tell_player("Attach Card", {"attachee" : actualCard.id, "attach_to": attachTo.id})
|
||||
await self.tell_others("Attach Card", {"attachee_info" : await actualCard.to_dict(), "attach_to_info": await attachTo.to_dict()})
|
||||
except IndexError:
|
||||
return
|
||||
case _:
|
||||
pass
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
27/7/2026
|
||||
17/8/2026
|
||||
@@ -1 +1 @@
|
||||
1.2.3.0
|
||||
1.2.3.1
|
||||
BIN
cardFronts/hBP01/ja/021/1.webp
Normal file
|
After Width: | Height: | Size: 115 KiB |
BIN
cardFronts/hBP01/ja/026/1.webp
Normal file
|
After Width: | Height: | Size: 150 KiB |
BIN
cardFronts/hBP01/ja/031/2.webp
Normal file
|
After Width: | Height: | Size: 184 KiB |
BIN
cardFronts/hBP01/ja/039/1.webp
Normal file
|
After Width: | Height: | Size: 126 KiB |
BIN
cardFronts/hBP01/ja/041/2.webp
Normal file
|
After Width: | Height: | Size: 151 KiB |
BIN
cardFronts/hBP01/ja/050/3.webp
Normal file
|
After Width: | Height: | Size: 147 KiB |
BIN
cardFronts/hBP01/ja/051/2.webp
Normal file
|
After Width: | Height: | Size: 190 KiB |
BIN
cardFronts/hBP01/ja/054/1.webp
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
cardFronts/hBP01/ja/055/2.webp
Normal file
|
After Width: | Height: | Size: 162 KiB |
BIN
cardFronts/hBP01/ja/060/1.webp
Normal file
|
After Width: | Height: | Size: 144 KiB |
BIN
cardFronts/hBP01/ja/061/2.webp
Normal file
|
After Width: | Height: | Size: 162 KiB |
BIN
cardFronts/hBP01/ja/065/1.webp
Normal file
|
After Width: | Height: | Size: 148 KiB |
BIN
cardFronts/hBP01/ja/067/2.webp
Normal file
|
After Width: | Height: | Size: 184 KiB |
BIN
cardFronts/hBP01/ja/070/2.webp
Normal file
|
After Width: | Height: | Size: 158 KiB |
BIN
cardFronts/hBP01/ja/074/1.webp
Normal file
|
After Width: | Height: | Size: 161 KiB |
BIN
cardFronts/hBP01/ja/081/3.webp
Normal file
|
After Width: | Height: | Size: 176 KiB |
BIN
cardFronts/hBP01/ja/090/1.webp
Normal file
|
After Width: | Height: | Size: 158 KiB |
BIN
cardFronts/hBP01/ja/094/1.webp
Normal file
|
After Width: | Height: | Size: 140 KiB |
BIN
cardFronts/hBP02/ja/011/3.webp
Normal file
|
After Width: | Height: | Size: 125 KiB |
BIN
cardFronts/hBP02/ja/016/2.webp
Normal file
|
After Width: | Height: | Size: 132 KiB |
BIN
cardFronts/hBP02/ja/017/3.webp
Normal file
|
After Width: | Height: | Size: 164 KiB |
BIN
cardFronts/hBP02/ja/022/2.webp
Normal file
|
After Width: | Height: | Size: 163 KiB |
BIN
cardFronts/hBP02/ja/023/3.webp
Normal file
|
After Width: | Height: | Size: 197 KiB |
BIN
cardFronts/hBP02/ja/026/2.webp
Normal file
|
After Width: | Height: | Size: 153 KiB |
BIN
cardFronts/hBP02/ja/027/3.webp
Normal file
|
After Width: | Height: | Size: 146 KiB |
BIN
cardFronts/hBP02/ja/028/2.webp
Normal file
|
After Width: | Height: | Size: 139 KiB |
BIN
cardFronts/hBP02/ja/033/3.webp
Normal file
|
After Width: | Height: | Size: 211 KiB |
BIN
cardFronts/hBP02/ja/058/2.webp
Normal file
|
After Width: | Height: | Size: 173 KiB |
BIN
cardFronts/hBP02/ja/059/3.webp
Normal file
|
After Width: | Height: | Size: 204 KiB |
BIN
cardFronts/hBP02/ja/067/2.webp
Normal file
|
After Width: | Height: | Size: 160 KiB |
BIN
cardFronts/hBP03/ja/023/2.webp
Normal file
|
After Width: | Height: | Size: 179 KiB |
BIN
cardFronts/hBP03/ja/029/2.webp
Normal file
|
After Width: | Height: | Size: 197 KiB |
BIN
cardFronts/hBP03/ja/034/3.webp
Normal file
|
After Width: | Height: | Size: 167 KiB |
BIN
cardFronts/hBP03/ja/036/3.webp
Normal file
|
After Width: | Height: | Size: 168 KiB |
BIN
cardFronts/hBP03/ja/044/3.webp
Normal file
|
After Width: | Height: | Size: 164 KiB |
BIN
cardFronts/hBP03/ja/050/2.webp
Normal file
|
After Width: | Height: | Size: 178 KiB |
BIN
cardFronts/hBP03/ja/059/2.webp
Normal file
|
After Width: | Height: | Size: 148 KiB |
BIN
cardFronts/hBP03/ja/060/2.webp
Normal file
|
After Width: | Height: | Size: 179 KiB |
BIN
cardFronts/hBP03/ja/065/2.webp
Normal file
|
After Width: | Height: | Size: 180 KiB |
BIN
cardFronts/hBP03/ja/070/1.webp
Normal file
|
After Width: | Height: | Size: 162 KiB |
BIN
cardFronts/hBP04/ja/008/1.webp
Normal file
|
After Width: | Height: | Size: 146 KiB |
BIN
cardFronts/hBP04/ja/012/2.webp
Normal file
|
After Width: | Height: | Size: 136 KiB |
BIN
cardFronts/hBP04/ja/047/2.webp
Normal file
|
After Width: | Height: | Size: 170 KiB |
BIN
cardFronts/hBP04/ja/071/2.webp
Normal file
|
After Width: | Height: | Size: 124 KiB |
BIN
cardFronts/hBP04/ja/072/4.webp
Normal file
|
After Width: | Height: | Size: 161 KiB |
BIN
cardFronts/hBP04/ja/085/1.webp
Normal file
|
After Width: | Height: | Size: 166 KiB |
BIN
cardFronts/hBP05/ja/016/4.webp
Normal file
|
After Width: | Height: | Size: 180 KiB |
BIN
cardFronts/hBP05/ja/045/3.webp
Normal file
|
After Width: | Height: | Size: 174 KiB |
BIN
cardFronts/hBP05/ja/060/2.webp
Normal file
|
After Width: | Height: | Size: 151 KiB |
BIN
cardFronts/hBP05/ja/074/3.webp
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
cardFronts/hBP05/ja/080/4.webp
Normal file
|
After Width: | Height: | Size: 122 KiB |
BIN
cardFronts/hBP09/ja/004/0.webp
Normal file
|
After Width: | Height: | Size: 192 KiB |
BIN
cardFronts/hBP09/ja/005/0.webp
Normal file
|
After Width: | Height: | Size: 208 KiB |
BIN
cardFronts/hBP09/ja/010/0.webp
Normal file
|
After Width: | Height: | Size: 178 KiB |
BIN
cardFronts/hBP09/ja/012/0.webp
Normal file
|
After Width: | Height: | Size: 198 KiB |
BIN
cardFronts/hBP09/ja/014/0.webp
Normal file
|
After Width: | Height: | Size: 196 KiB |
BIN
cardFronts/hBP09/ja/016/0.webp
Normal file
|
After Width: | Height: | Size: 198 KiB |
BIN
cardFronts/hBP09/ja/019/0.webp
Normal file
|
After Width: | Height: | Size: 201 KiB |
BIN
cardFronts/hBP09/ja/024/0.webp
Normal file
|
After Width: | Height: | Size: 191 KiB |
BIN
cardFronts/hBP09/ja/029/0.webp
Normal file
|
After Width: | Height: | Size: 198 KiB |
BIN
cardFronts/hBP09/ja/031/0.webp
Normal file
|
After Width: | Height: | Size: 213 KiB |
BIN
cardFronts/hBP09/ja/032/0.webp
Normal file
|
After Width: | Height: | Size: 189 KiB |
BIN
cardFronts/hBP09/ja/042/0.webp
Normal file
|
After Width: | Height: | Size: 207 KiB |
BIN
cardFronts/hBP09/ja/045/0.webp
Normal file
|
After Width: | Height: | Size: 213 KiB |
BIN
cardFronts/hBP09/ja/049/0.webp
Normal file
|
After Width: | Height: | Size: 180 KiB |
BIN
cardFronts/hBP09/ja/055/0.webp
Normal file
|
After Width: | Height: | Size: 145 KiB |
BIN
cardFronts/hBP09/ja/058/0.webp
Normal file
|
After Width: | Height: | Size: 172 KiB |
BIN
cardFronts/hBP09/ja/064/0.webp
Normal file
|
After Width: | Height: | Size: 192 KiB |
BIN
cardFronts/hBP09/ja/065/0.webp
Normal file
|
After Width: | Height: | Size: 213 KiB |
BIN
cardFronts/hBP09/ja/076/0.webp
Normal file
|
After Width: | Height: | Size: 194 KiB |
BIN
cardFronts/hBP09/ja/081/0.webp
Normal file
|
After Width: | Height: | Size: 201 KiB |
BIN
cardFronts/hBP09/ja/082/0.webp
Normal file
|
After Width: | Height: | Size: 190 KiB |
BIN
cardFronts/hBP09/ja/083/0.webp
Normal file
|
After Width: | Height: | Size: 182 KiB |
BIN
cardFronts/hBP09/ja/086/0.webp
Normal file
|
After Width: | Height: | Size: 212 KiB |
BIN
cardFronts/hBP09/ja/088/0.webp
Normal file
|
After Width: | Height: | Size: 190 KiB |
BIN
cardFronts/hBP09/ja/089/0.webp
Normal file
|
After Width: | Height: | Size: 232 KiB |
BIN
cardFronts/hBP09/ja/093/0.webp
Normal file
|
After Width: | Height: | Size: 154 KiB |
BIN
cardFronts/hBP09/ja/095/0.webp
Normal file
|
After Width: | Height: | Size: 146 KiB |
BIN
cardFronts/hBP09/ja/105/0.webp
Normal file
|
After Width: | Height: | Size: 169 KiB |
|
Before Width: | Height: | Size: 204 KiB After Width: | Height: | Size: 182 KiB |
|
Before Width: | Height: | Size: 215 KiB After Width: | Height: | Size: 209 KiB |
|
Before Width: | Height: | Size: 208 KiB After Width: | Height: | Size: 177 KiB |
|
Before Width: | Height: | Size: 156 KiB After Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 177 KiB After Width: | Height: | Size: 144 KiB |
|
Before Width: | Height: | Size: 175 KiB After Width: | Height: | Size: 143 KiB |
|
Before Width: | Height: | Size: 181 KiB After Width: | Height: | Size: 147 KiB |
|
Before Width: | Height: | Size: 184 KiB After Width: | Height: | Size: 162 KiB |