Skip to content

Conversation

@Bokkiewokkie
Copy link
Contributor

@Bokkiewokkie Bokkiewokkie commented Aug 2, 2025

About The Pull Request

Adds a board station mission. The objective is to defeat a fleet and capture the station they're defending. After that, you will have to defend the station from an enemy boarding fleet.

Why It's Good For The Game

More objective variety!

Testing Photographs and Procedure

Screenshots&Videos

Put screenshots and videos here with an empty line between the screenshots and the <details> tags.

Changelog

🆑
add: Added a new mission about boarding and defending a station
/:cl:

@Bokkiewokkie Bokkiewokkie requested a review from a team as a code owner August 2, 2025 19:09
@Bokkiewokkie Bokkiewokkie changed the title Station Adds a station boarding mission Aug 2, 2025
@Bokkiewokkie Bokkiewokkie added the boarding Issues or pull requests related to boarding maps label Aug 2, 2025
And also let me make the mission fully work
@williamcll
Copy link

Can we get a whole metastation next?

var/list/candidates = list()
for(var/datum/star_system/S in SSstar_system.neutral_zone_systems)
// Is this even in a reasonable location?
if(S.hidden || (S.sector != 2) || S.get_info()?["Black hole"] || S.name == "Rubicon")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That get_info() use looks very fishy (since it returns a list of lists).


/datum/overmap_objective/board_station/check_completion()
if(defense_complete)
target_station.block_deletion = FALSE
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't it intended to be able to be destroyed after the initial boarding, not only after completing the mission?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's used in some other places too but I'll look at it more

reinforcements.move(target_system, TRUE)
RegisterSignal(target_station, COMSIG_SHIP_KILLED_FLEET, PROC_REF(fleet_destroyed), target_station) //Kill the fleet and you're done

/datum/overmap_objective/board_station/proc/fleet_destroyed()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SIGNAL_HANDLER

return COMSIG_SHIP_BLOCKS_RELEASE_BOARDING
return 0

/datum/overmap_objective/board_station/proc/iff_change()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SIGNAL_HANDLER

Also the comsig for this is currently sent before actually changing the faction - maybe use the unimplemented comsig you added?

UnregisterSignal(target_system, COMSIG_SHIP_RELEASE_BOARDING) //Now that you've captured it you can do whatever
.=..()

/datum/overmap_objective/board_station/proc/release_boarding()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SIGNAL_HANDLER

#define COMSIG_TARGET_LOCKED "target_locked" //! from base of /obj/structure/overmap/proc/select_target: (target)
#define COMSIG_LOCK_LOST "lock_lost" //! from base of /obj/structure/overmap/proc/dump_lock: (target)

#define COMSIG_SHIP_IFF_CHANGE "iff_change"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused signal.

// How long should this take?
var/list/fastest_route = find_route(SSstar_system.find_system(SSovermap_mode.mode.starting_system), target_system)
var/distance = 0
for(var/i = 2; i < length(fastest_route); i++)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

off by one since due to < length the last jump isn't accounted for.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copied this from the board ship mission lol, I'll get on it

F.add_ship(target_station, "supply")

// How long should this take?
var/list/fastest_route = find_route(SSstar_system.find_system(SSovermap_mode.mode.starting_system), target_system)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should probably have wormholes_allowed = FALSE since those can sometimes be fairly hard to track down (e.g. sector 1 -> target system).

@github-actions
Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Active Test Merge boarding Issues or pull requests related to boarding maps Feature Mapping

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants