Skip to content

Commit 38b316c

Browse files
committed
Fixed Kyruem fusion and defusion with dna splicer
1 parent cdcf075 commit 38b316c

File tree

3 files changed

+34
-27
lines changed

3 files changed

+34
-27
lines changed

common/src/main/java/generations/gg/generations/core/generationscore/common/api/GenerationsMolangFunctions.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,7 @@ object GenerationsMolangFunctions {
123123
}
124124

125125
MoLangFunctions.playerFunctions.add { player ->
126-
Struct
127-
128-
var selected = player.inventory.removeFromSelected(selected
126+
var selected = player.inventory.selected;
129127
hashMapOf(
130128
"capped" to Function<MoParams, Any> {
131129
val speciesKey = it.getStringOrNull(0)?.let { SpeciesKey.fromString(it) }
@@ -135,8 +133,13 @@ object GenerationsMolangFunctions {
135133
return@Function DoubleValue(if (GenerationsCore.CONFIG.caught.capped(player, speciesKey)) 1.0 else 0.0)
136134
},
137135
"main_hand" to Function<MoParams, Any> {
138-
player.inventory.get.mainHandItem.toMolang()
136+
player.mainHandItem.toMolang()
137+
},
138+
"selected_item" to Function<MoParams, Any> {
139+
player.inventory.getItem(selected).toMolang()
139140
},
141+
142+
140143
"party" to Function<MoParams, Any> {
141144
player.party().asMoLangValue()
142145
},

common/src/main/java/generations/gg/generations/core/generationscore/common/world/item/DnaSplicer.kt

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,23 @@ class DnaSplicer(properties: Properties): PokemonStoringItem(properties) {
5858

5959
player.sendSystemMessage("generations_core.pokemon.extracted_dna_fiber_succeed".asTranslated(pokemon.getDisplayName().string))
6060

61+
return true
62+
} else if(pokemon.isSpecies("kyurem")) {
63+
val dembeded: Pokemon = entity.pokemon.dembedPokemon()?.also { player.party().add(it) } ?: return false
64+
65+
val provider = entity.pokemon.getProviderOrNull<ChoiceSpeciesFeatureProvider>("kyurem_form") ?: return false
66+
val feature = provider.getOrCreate(entity.pokemon)
67+
68+
feature.value = "false"
69+
feature.apply(entity)
70+
71+
player.sendSystemMessage(
72+
"generations_core.pokemon.defused".asTranslated(
73+
dembeded.getDisplayName().string,
74+
pokemon.getDisplayName().string
75+
)
76+
)
77+
6178
return true
6279
}
6380
} else if (pokemon.isSpecies("kyurem")) {
@@ -91,20 +108,6 @@ class DnaSplicer(properties: Properties): PokemonStoringItem(properties) {
91108

92109
return true
93110
}
94-
} else {
95-
val dembeded: Pokemon = entity.pokemon.dembedPokemon()?.also { player.party().add(it) } ?: return false
96-
97-
feature.value = "false"
98-
feature.apply(entity)
99-
100-
player.sendSystemMessage(
101-
"generations_core.pokemon.defused".asTranslated(
102-
pokemon.getDisplayName().string,
103-
dembeded.getDisplayName().string
104-
)
105-
)
106-
107-
return true
108111
}
109112
}
110113

common/src/main/resources/data/generations_core/dialogues/zygarde_cell.json

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,25 @@
1515
"Select what you want to do.",
1616
{
1717
"type": "expression",
18-
"expression": "'You currently have ' + q.player.main_hand.damage_as_string + ' cells available."
18+
"expression": "'You currently have ' + q.player.selected_item.damage_as_string + ' cells available."
1919
}
2020
],
2121
"input": {
2222
"type": "option",
2323
"options": [
2424
{
2525
"text": "Create",
26-
"isVisible": "q.player.capped('cobblemon:zygarde')",
26+
"isVisible": "q.player.capped('cobblemon:zygarde') && q.player.selected_item.damage >= 10",
2727
"action": [
28-
"v.cells = q.player.main_hand.damage;",
28+
"v.cells = q.player.selected_item.damage;",
2929
"q.dialogue.set_page('form');"
3030
]
3131
},
3232
{
33-
"text": "Modify",
33+
"text": "No actions available",
34+
"isVisible": "(!q.player.has_in_party('cobblemon:zygarde') || !q.player.capped('cobblemon:zygarde')) && q.player.selected_item.damage < 10",
3435
"action": [
35-
"v.cells = q.player.main_hand.damage;"
36+
"q.dialogue.close();"
3637
]
3738
}
3839
]
@@ -57,12 +58,12 @@
5758
]
5859
},
5960
{
60-
"text": "50",
61+
"text": "50%",
6162
"value": "50",
6263
"isVisible": "v.cells >= 10",
6364
"action": [
6465
"v.form = '50%';",
65-
"v.cells_needed = 10;",
66+
"v.cells_needed = 50;",
6667
"q.dialogue.set_page('ability');"
6768
]
6869
}
@@ -93,7 +94,7 @@
9394
"action": [
9495
"v.ability = 'powerconstruct';",
9596
"v.ability_name = 'Power Construct';",
96-
"v.cells_needed = 100",
97+
"v.cells_needed = 100;",
9798
"q.dialogue.set_page('create_congrats');"
9899
]
99100
}
@@ -116,7 +117,7 @@
116117
"allowSkip": false,
117118
"delay": 1,
118119
"action": [
119-
"q.player.main_hand.damage(v.cells_needed);",
120+
"q.player.selected_item.damage(-v.cells_needed);",
120121
"q.player.party.add('zygarde lvl=70 zygarde_form=' + v.form + ' ability=' + v.ability);",
121122
"q.dialogue.close();"
122123
]

0 commit comments

Comments
 (0)