-
Notifications
You must be signed in to change notification settings - Fork 565
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
Made filled resin holes and weed nodes destroyable by xenos #3711
Conversation
You currently have a negative Fix/Feature pull request delta of -1. Maintainers may close this PR at will. Fixing issues or improving the codebase will improve this score. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not really keen on this, but I'm hardly the last say.
However, I would like this to be tied in with a queen setting that a queen can opt-in to having much like the existing construction_toggle and destruction_toggle options have levels for no-one, leaders, and everyone. Preferably where the setting is off by default (existing behavior).
@@ -217,6 +217,20 @@ | |||
to_chat(X, SPAN_XENONOTICE("[src] is occupied by a child.")) | |||
return XENO_NO_DELAY_ACTION | |||
|
|||
if(X.a_intent == INTENT_HARM) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please fix the single letter vars as you need to modify code. See https://github.com/cmss13-devs/cmss13/blob/master/.github/guides/STYLES.md#variables
In VSC its very easy to do this, just ctrl+f, highlight the entire proc block, press the paragraph looking button to restrict search to selection, match case, and match word, and then dropdown to reveal replace.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have the queen option for both of them, in separate toggles?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Search for one of those options and you'll see what I mean. It's a single setting with 3 possible states. I think you can have both weed destruction and trap destruction together in the same setting. But up to you.
@@ -27,8 +27,16 @@ | |||
return | |||
|
|||
var/obj/effect/alien/weeds/node/N = locate() in T | |||
if(N && N.weed_strength >= X.weed_level) | |||
to_chat(X, SPAN_WARNING("There's a pod here already!")) | |||
if(N) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please fix the single letter vars as you need to modify code.
@@ -217,6 +217,20 @@ | |||
to_chat(X, SPAN_XENONOTICE("[src] is occupied by a child.")) | |||
return XENO_NO_DELAY_ACTION | |||
|
|||
if(X.a_intent == INTENT_HARM) | |||
to_chat(X, SPAN_XENONOTICE("You start tearing away at the hole.")) | |||
xeno_attack_delay(X) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think there's really any point to add an attack delay before a do_after.
if(X.a_intent == INTENT_HARM) | ||
to_chat(X, SPAN_XENONOTICE("You start tearing away at the hole.")) | ||
xeno_attack_delay(X) | ||
if(!do_after(X, 30, INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE, src)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use the time macros. E.g. 3 SECONDS
See https://github.com/cmss13-devs/cmss13/blob/master/.github/guides/STYLES.md#use-our-time-defines
to_chat(X, SPAN_XENONOTICE("You destroy the trap.")) | ||
for(var/mob/living/carbon/xenomorph/Xeno in GLOB.living_xeno_list) | ||
if(Xeno.hivenumber == hivenumber) | ||
to_chat(Xeno, SPAN_XENOMINORWARNING("One of your Hive's traps at [A.name] has been torn apart by [X]!")) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To match the wording of /obj/effect/alien/resin/trap/proc/trigger_trap
:
to_chat(Xeno, SPAN_XENOMINORWARNING("One of your Hive's traps at [A.name] has been torn apart by [X]!")) | |
to_chat(Xeno, SPAN_XENOMINORWARNING("You sense one of your Hive's traps at [A.name] has been torn apart by [X]!")) |
if(!do_after(X, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) | ||
return | ||
playsound(X.loc, "alien_resin_break", 25) | ||
N.Destroy() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use qdel instead of directly calling what qdel calls.
return XENO_NO_DELAY_ACTION | ||
var/area/A = get_area(src) | ||
if (X.hivenumber == hivenumber) | ||
Destroy() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use qdel instead of directly calling what qdel calls.
to_chat(X, SPAN_WARNING("There's a pod here already!")) | ||
else | ||
to_chat(X, SPAN_WARNING("You start removing the resin node.")) | ||
if(!do_after(X, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use the time macros. E.g. 1 SECONDS
See https://github.com/cmss13-devs/cmss13/blob/master/.github/guides/STYLES.md#use-our-time-defines
This PR has been inactive for long enough to be automatically marked as stale. This means it is at risk of being auto closed in ~ 7 days, please address any outstanding review items and ensure your PR is finished, if these are all true and you are auto-staled anyway, you need to actively ask maintainers if your PR will be merged. Once you have done any of the previous actions then you should request a maintainer remove the stale label on your PR, to reset the stale timer. If you feel no maintainer will respond in that time, you may wish to close this PR youself, while you seek maintainer comment, as you will then be able to reopen the PR yourself |
About the pull request
Made weed nodes destroyable with the plant weeds button.
Made filled resin holes destroyable by harm intent click, with a hive-wide message telling about it to avoid griefing going unnoticed. It does constitute a bit of a buff, due to it being usable for extinguishing yourself.
Both have a short windup delay to avoid accidental use.
Explain why it's good for the game
If a resin hole gets filled it becomes unremovable by xenos until something triggers it, no reason for it to work like that, was just annoying if a badly placed hole got filled.
Pretty much the same for weeds, nice to be able to remove weeds when trying to be stealthy, not giving away your presence (For example the west LZ2 wall on BR when you are doing a Mining Hive and some XX drone weeded it).
Testing Photographs and Procedure
Tested every possible shenanigans I could think of relating to these two things.
Changelog
🆑
qol: Weed nodes are now removable with the 'plant weeds' ability.
balance: Acid filled resin holes can now be destroyed by xenos via clicking on them with harm intent.
/:cl: