Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from AoE2ScenarioParser.datasets.players import PlayerId
- from AoE2ScenarioParser.datasets.units import UnitInfo
- from AoE2ScenarioParser.scenarios.aoe2_de_scenario import AoE2DEScenario
- from AoE2ScenarioParser.datasets.trigger_lists import ObjectState
- from AoE2ScenarioParser.datasets.trigger_lists import ObjectAttribute
- ATTR_SET = 1
- from pathlib import Path
- userprofile = str(Path.home())
- scenario_folder = userprofile + "\\Games\\Age of Empires 2 DE\\76561198259295632\\resources\\_common\\scenario\\"
- # The scenario object.
- scenario_name = "hello world"
- # Define Scenario file
- scenario = AoE2DEScenario.from_file(f"{scenario_folder}{scenario_name}.aoe2scenario")
- # Save reference to the manager, so you don't have to do "scenario.trigger_manager..." each time
- trigger_manager = scenario.trigger_manager
- unit_manager = scenario.unit_manager
- map_manager = scenario.map_manager
- map_width = map_manager.map_width
- bird = trigger_manager.add_trigger("bird")
- bird.enabled = 1
- bird.new_effect.modify_attribute(
- object_list_unit_id = UnitInfo.MACAW.ID,
- quantity = UnitInfo.RELIC_CART.ID,
- object_attributes = ObjectAttribute.DEAD_UNIT_ID,
- operation = ATTR_SET,
- source_player = PlayerId.GAIA
- )
- bird.new_effect.modify_attribute(
- object_list_unit_id = UnitInfo.MACAW.ID,
- quantity = 0,
- object_attributes = ObjectAttribute.HIT_POINTS,
- operation = ATTR_SET,
- source_player = PlayerId.GAIA
- )
- chatter = trigger_manager.add_trigger("chatter")
- chatter.enabled = 1
- chatter.looping = 1
- chatter.new_effect.script_call(message='void fn() {xsChatData("Gaia Relics: " + xsGetObjectCount(0, 1304));}')
- def createRow(y):
- tiles = []
- for x in range(map_width):
- trigger = trigger_manager.add_trigger(f"{x} {y}")
- trigger.enabled = 0
- trigger.new_condition.objects_in_area(1, UnitInfo.RELIC_CART.ID, PlayerId.GAIA, x, y, x, y, object_state = ObjectState.DYING)
- trigger.new_effect.create_object(UnitInfo.MACAW.ID, PlayerId.GAIA, x, y)
- trigger.new_effect.change_view(source_player = 1, location_x = x, location_y = y)
- tiles.append(trigger)
- row_manager = trigger_manager.add_trigger(f"Row manager {y}")
- row_manager.new_condition.objects_in_area(1, UnitInfo.RELIC_CART.ID, PlayerId.GAIA, 0, y, map_width-1, y, object_state = ObjectState.DYING)
- tiles_in_row_disabler = trigger_manager.add_trigger(f"tiles_in_row_disabler {y}")
- tiles_in_row_disabler.enabled = 0
- tiles_in_row_disabler.new_effect.send_chat(1, message="Removed dying relic cart from play.")
- tiles_in_row_disabler.new_effect.remove_object(UnitInfo.RELIC_CART.ID, PlayerId.GAIA, object_state = ObjectState.DYING)
- tiles_in_row_disabler.new_effect.activate_trigger(row_manager.trigger_id)
- for tile in tiles:
- tile.new_effect.activate_trigger(tiles_in_row_disabler.trigger_id)
- tiles_in_row_disabler.new_effect.deactivate_trigger(tile.trigger_id)
- row_manager.new_effect.activate_trigger(tile.trigger_id)
- return row_manager
- rows = []
- for y in range(map_width):
- row = createRow(y)
- row.enabled = 1
- row.looping = 0
- rows.append(row)
- # rows_manager = trigger_manager.add_trigger("All rows manager")
- # rows_manager.enabled = 1
- # rows_manager.new_condition.
- # for row in rows:
- # rows_manager.new_effect.activate_trigger(row.trigger_id)
- scenario.write_to_file(f"{scenario_folder}{scenario_name}_output.aoe2scenario")
Advertisement
Add Comment
Please, Sign In to add comment