Skip to content

Commit 3db02b9

Browse files
committed
convert: Add new activity conditions for applying effects.
1 parent d089d38 commit 3db02b9

File tree

3 files changed

+50
-4
lines changed

3 files changed

+50
-4
lines changed

openage/convert/processor/conversion/aoc/pregen_processor.py

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,9 @@ def generate_activities(
9898
condition_parent = "engine.util.activity.condition.Condition"
9999
condition_queue_parent = "engine.util.activity.condition.type.CommandInQueue"
100100
condition_next_move_parent = "engine.util.activity.condition.type.NextCommandMove"
101+
condition_next_apply_parent = (
102+
"engine.util.activity.condition.type.NextCommandApplyEffect"
103+
)
101104

102105
# =======================================================================
103106
# Default (Start -> Ability(Idle) -> End)
@@ -276,10 +279,12 @@ def generate_activities(
276279
branch_raw_api_object.set_location(unit_forward_ref)
277280
branch_raw_api_object.add_raw_parent(xor_parent)
278281

279-
condition_forward_ref = ForwardRef(pregen_converter_group,
280-
"util.activity.types.Unit.NextCommandMove")
282+
condition1_forward_ref = ForwardRef(pregen_converter_group,
283+
"util.activity.types.Unit.NextCommandMove")
284+
condition2_forward_ref = ForwardRef(pregen_converter_group,
285+
"util.activity.types.Unit.NextCommandApplyEffect")
281286
branch_raw_api_object.add_raw_member("next",
282-
[condition_forward_ref],
287+
[condition1_forward_ref, condition2_forward_ref],
283288
xor_parent)
284289
idle_forward_ref = ForwardRef(pregen_converter_group,
285290
"util.activity.types.Unit.Idle")
@@ -290,6 +295,40 @@ def generate_activities(
290295
pregen_converter_group.add_raw_api_object(branch_raw_api_object)
291296
pregen_nyan_objects.update({branch_ref_in_modpack: branch_raw_api_object})
292297

298+
# condition for branching to apply effect
299+
condition_ref_in_modpack = "util.activity.types.Unit.NextCommandApplyEffect"
300+
condition_raw_api_object = RawAPIObject(condition_ref_in_modpack,
301+
"NextCommandApplyEffect", api_objects)
302+
condition_raw_api_object.set_location(branch_forward_ref)
303+
condition_raw_api_object.add_raw_parent(condition_next_apply_parent)
304+
305+
apply_effect_forward_ref = ForwardRef(pregen_converter_group,
306+
"util.activity.types.Unit.ApplyEffect")
307+
condition_raw_api_object.add_raw_member("next",
308+
apply_effect_forward_ref,
309+
condition_parent)
310+
311+
pregen_converter_group.add_raw_api_object(condition_raw_api_object)
312+
pregen_nyan_objects.update({condition_ref_in_modpack: condition_raw_api_object})
313+
314+
# Apply effect
315+
apply_effect_ref_in_modpack = "util.activity.types.Unit.ApplyEffect"
316+
apply_effect_raw_api_object = RawAPIObject(apply_effect_ref_in_modpack,
317+
"ApplyEffect", api_objects)
318+
apply_effect_raw_api_object.set_location(unit_forward_ref)
319+
apply_effect_raw_api_object.add_raw_parent(ability_parent)
320+
321+
wait_forward_ref = ForwardRef(pregen_converter_group,
322+
"util.activity.types.Unit.Wait")
323+
apply_effect_raw_api_object.add_raw_member("next", wait_forward_ref,
324+
ability_parent)
325+
apply_effect_raw_api_object.add_raw_member("ability",
326+
api_objects["engine.ability.type.ApplyDiscreteEffect"],
327+
ability_parent)
328+
329+
pregen_converter_group.add_raw_api_object(apply_effect_raw_api_object)
330+
pregen_nyan_objects.update({apply_effect_ref_in_modpack: apply_effect_raw_api_object})
331+
293332
# condition for branching to move
294333
condition_ref_in_modpack = "util.activity.types.Unit.NextCommandMove"
295334
condition_raw_api_object = RawAPIObject(condition_ref_in_modpack,

openage/convert/service/init/api_export_required.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from openage.util.fslike.union import UnionPath
1717

1818

19-
CURRENT_API_VERSION = "0.5.0"
19+
CURRENT_API_VERSION = "0.6.0"
2020

2121

2222
def api_export_required(asset_dir: UnionPath) -> bool:

openage/convert/service/read/nyan_api_loader.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,6 +546,13 @@ def _create_objects(api_objects: dict[str, NyanObject]) -> None:
546546
nyan_object.set_fqon(fqon)
547547
api_objects.update({fqon: nyan_object})
548548

549+
# engine.util.activity.condition.type.NextCommandApplyEffect
550+
parents = [api_objects["engine.util.activity.condition.Condition"]]
551+
nyan_object = NyanObject("NextCommandApplyEffect", parents)
552+
fqon = "engine.util.activity.condition.type.NextCommandApplyEffect"
553+
nyan_object.set_fqon(fqon)
554+
api_objects.update({fqon: nyan_object})
555+
549556
# engine.util.activity.condition.type.NextCommandIdle
550557
parents = [api_objects["engine.util.activity.condition.Condition"]]
551558
nyan_object = NyanObject("NextCommandIdle", parents)

0 commit comments

Comments
 (0)