Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Foxtrot Rework + Marine Reinforcements #6788

Closed

Conversation

zc-byte-boxer
Copy link

@zc-byte-boxer zc-byte-boxer commented Jul 25, 2024

Marine Reinforcement + Foxtrot Rework

This is a PR that rebalance Foxtrot, making it a one time use, at a higher price, but giving more marines with a pop-scale mechanic.

As well, this adds at the nuke tier an option to call a nerfed ERT team for additional reinforcements.

Explain why it's good for the game

https://hackmd.io/@byte-boxer/BypH9VZd0

Outside of the design doc, we'vemade our rounds longer over the last year, but have progressively nerfed marine respawns. This PR adds more opportunities for the marines to respawn, while ridding the marines of the option to buy more powerful reinforcements.

Testing Photographs and Procedure

Screenshots & Videos

Tested on local. Can manually call ERTs, but everything isn't working yet.

Changelog

🆑 Byte-Boxer
add: Adds Beacon Reinforcements at Tier Four to the techweb. It allows marines to call, at the price of ten points, for nerfed versions of the UPP, VAIPO, Freelancer, and RMC ERT. One time use only.
del: Specialist was removed as a techweb buy, though kept in code incase admins wanted to spawn it.
balance: Foxtrot has gone through a major balance overhaul. It now is a one time use only, and costs more, but has a minimum spawn of 6, and at 100, 110, 120 pop, it gains 2 more members before maxing out at 12. Foxtrot no longer has a side spec that can be bought, but does have an SG.
/:cl:

Current Bugs

  • Beacon-Reinforcements is in the techweb code folder, but does not actually appear visible clientside when looking at techwebs.
  • These special ERTs need to have no minimum number to spawn, or need to relaunch if they fail to get anyone.
  • Spawning these ERTs as freed mobs if they're not all picked doesn't work currently.
  • Linters failure.

@github-actions github-actions bot added Feature Feature coder badge Removal snap Balance You need to be a professional veteran game maintainer to comprehend what is being done here. labels Jul 25, 2024
@zc-byte-boxer zc-byte-boxer marked this pull request as draft July 25, 2024 05:00
var/mob/living/carbon/human/mob = new(spawn_loc)
spawning_mind.transfer_to(mob, TRUE)

if(!leader && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(mob.client, JOB_SQUAD_LEADER, time_required_for_job && (spawning_mind)))
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
if(!leader && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(mob.client, JOB_SQUAD_LEADER, time_required_for_job && (spawning_mind)))
if(!leader && (!spawning_mind || (HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(mob.client, JOB_SQUAD_LEADER, time_required_for_job))))

and implement this for all the similar occurrences. Basically if you don't have a mind (a client willing to roll the role), you have no one to check for preferences.

Copy link
Author

Choose a reason for hiding this comment

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

changed

@ihatethisengine
Copy link
Contributor

Didnt look through everything, but this should be good enough to start with

max_engineers = 1
max_medics = 1
max_heavies = 0
/proc/get_marines()
Copy link
Contributor

Choose a reason for hiding this comment

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

Highly suggesting to make a proper path for this. Right now anything and anywhere in the codebase can call this, does it need to be like that?
e.g.
/datum/emergency_call/cryo_squad/tech/proc/get_marines()
Also move it down below the /datum/emergency_call/cryo_squad/tech/ after the path is given.

Copy link
Contributor

Choose a reason for hiding this comment

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

add .dm at the end. its just a textfile now.

Copy link
Contributor

Choose a reason for hiding this comment

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

also swap the - with _

Copy link
Contributor

Choose a reason for hiding this comment

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

same for the folder you created

Copy link
Author

Choose a reason for hiding this comment

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

added .dm and changed it up. anything else?


/datum/emergency_call/royal_marines/beacon/New()
..()
arrival_message = "[MAIN_SHIP_NAME], this is the HMS Kurtz of the Three World Empires. We've received your call and are enroute to aid."
Copy link
Contributor

Choose a reason for hiding this comment

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

Kurtz is a CBRN ship. Thunderchild is the HMS ship used in cm. You cal call it whatever though.

Suggested change
arrival_message = "[MAIN_SHIP_NAME], this is the HMS Kurtz of the Three World Empires. We've received your call and are enroute to aid."
arrival_message = "[MAIN_SHIP_NAME], this is the HMS Thunderchild of the Three World Empires. We've received your call and are enroute to aid."

Choose a reason for hiding this comment

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

HMS Patna and HMS Thunderchild are the TWE's ships.

Copy link
Author

Choose a reason for hiding this comment

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

changed it up to the HMS Thanes. I want to keep it as a different name than the other two ERT ships so I don't have to add anything to check if a ship name has been taken

Copy link
Contributor

Choose a reason for hiding this comment

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

The USS Kurtz map can be used for any USCM faction ERT, not just CBRN.

@zc-byte-boxer zc-byte-boxer marked this pull request as ready for review August 1, 2024 19:33
@zc-byte-boxer
Copy link
Author

@zc-byte-boxer zc-byte-boxer changed the title Draft: Foxtrot Rework + Marine Reinforcements Foxtrot Rework + Marine Reinforcements Aug 1, 2024
Copy link
Contributor

@kiVts kiVts left a comment

Choose a reason for hiding this comment

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

rename this folder, replace the - with _. Adjust accordingly in dme file.
image
Otherwise I probably missed something

var/pop_scale = 0
var/count = 0

for (var/mob/living/carbon/human/H in GLOB.human_mob_list)
Copy link
Contributor

Choose a reason for hiding this comment

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

if you want it to scale with server pop, use GLOB.clients, dont use for loop, just single var with length(GLOB.clients)

Comment on lines -19 to -22
if(!SSticker.mode)
to_chat(M, SPAN_WARNING("You can't do this right now!"))
return

Copy link
Contributor

Choose a reason for hiding this comment

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

Why did you remove this

name_of_spawn = /obj/effect/landmark/ert_spawns/distress_wo
var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point()

if(!istype(spawn_loc)) return //Didn't find a useable spawn point.
Copy link
Contributor

Choose a reason for hiding this comment

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

no inline ifs

name_of_spawn = /obj/effect/landmark/ert_spawns/distress_wo
var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point()

if(!istype(spawn_loc)) return //Didn't find a useable spawn point.
Copy link
Contributor

Choose a reason for hiding this comment

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

no inline ifs, I know this is copypasted, but that code is also six years old.

name_of_spawn = /obj/effect/landmark/ert_spawns/distress_wo
var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point()

if(!istype(spawn_loc)) return //Didn't find a useable spawn point.
Copy link
Contributor

Choose a reason for hiding this comment

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

Same

name_of_spawn = /obj/effect/landmark/ert_spawns/distress_wo
var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point()

if(!istype(spawn_loc)) return //Didn't find a useable spawn point.
Copy link
Contributor

Choose a reason for hiding this comment

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

same

@kiVts kiVts marked this pull request as draft August 7, 2024 01:49
@harryob
Copy link
Member

harryob commented Aug 24, 2024

pr seems to be stale, let us know if you want it re-opening, or just make a fresh pr for it

@harryob harryob closed this Aug 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Balance You need to be a professional veteran game maintainer to comprehend what is being done here. Feature Feature coder badge Removal snap
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants