-
Notifications
You must be signed in to change notification settings - Fork 557
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
adds colony self destruct mechanisms to big red, desert dam and lv #6540
Conversation
if(timeleft < initial(timeleft) && timeleft > stage_1) | ||
icon_state = "selfdestruct1" | ||
|
||
if(timeleft < stage_1 && timeleft > stage_2) | ||
icon_state = "selfdestruct2" | ||
|
||
if(timeleft < stage_2 && timeleft > stage_3) | ||
icon_state = "selfdestruct3" | ||
|
||
if(timeleft < stage_3 && timeleft > 0) | ||
icon_state = "selfdestruct4" | ||
|
||
if(timeleft <= 0) | ||
icon_state = "selfdestructboom" |
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.
if(timeleft < initial(timeleft) && timeleft > stage_1) | |
icon_state = "selfdestruct1" | |
if(timeleft < stage_1 && timeleft > stage_2) | |
icon_state = "selfdestruct2" | |
if(timeleft < stage_2 && timeleft > stage_3) | |
icon_state = "selfdestruct3" | |
if(timeleft < stage_3 && timeleft > 0) | |
icon_state = "selfdestruct4" | |
if(timeleft <= 0) | |
icon_state = "selfdestructboom" | |
if(timeleft <= 0) | |
icon_state = "selfdestructboom" | |
return | |
if(timeleft < stage_3) | |
icon_state = "selfdestruct4" | |
return | |
if(timeleft < stage_2) | |
icon_state = "selfdestruct3" | |
return | |
if(timeleft < stage_1) | |
icon_state = "selfdestruct2" | |
return | |
if(timeleft < initial(timeleft)) | |
icon_state = "selfdestruct1" |
this looks generally less confusing, dont you think?
also could be else if spam
var/obj/item/disk/nuclear/dat_disk | ||
var/timeleft = 2 MINUTES | ||
var/explosiontime | ||
var/explosionpower = 1200 |
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.
cod edoc
var/explosionpower = 1200 | ||
|
||
/obj/structure/machinery/colony_selfdestruct/attack_hand(mob/user) | ||
if(user.is_mob_incapacitated() || get_dist(src, user) > 1 || isRemoteControlling(user)) |
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 think we have an in_range proc
return | ||
else | ||
user.visible_message(SPAN_WARNING("[user] starts to pull the disk out of [src]..."), SPAN_WARNING("You start to pull the disk out of [src]... you hope it's not stuck.")) | ||
if(do_after(user, 150 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE)) |
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.
SECONDS macro
|
||
/obj/structure/machinery/colony_selfdestruct/proc/enable() | ||
playsound(loc, 'sound/items/Deconstruct.ogg', 100, 1) | ||
explosiontime = world.time + timeleft |
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 a timer
unslashable = TRUE | ||
unacidable = TRUE | ||
use_power = USE_POWER_NONE | ||
var/obj/item/disk/nuclear/dat_disk |
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.
null on destroy
/obj/structure/machinery/colony_selfdestruct/attackby(obj/item/weapon, mob/living/user) | ||
if(istype(weapon, /obj/item/disk/nuclear) && !dat_disk) | ||
user.visible_message(SPAN_WARNING("[user] begins to put [weapon] inside [src]..."), SPAN_WARNING("You begin to put [weapon] inside [src]. Ooh boy...")) | ||
if(do_after(user, 150 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE)) |
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.
seconds macro
/obj/structure/machinery/colony_selfdestruct/attackby(obj/item/weapon, mob/living/user) | ||
if(istype(weapon, /obj/item/disk/nuclear) && !dat_disk) | ||
user.visible_message(SPAN_WARNING("[user] begins to put [weapon] inside [src]..."), SPAN_WARNING("You begin to put [weapon] inside [src]. Ooh boy...")) | ||
if(do_after(user, 150 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE)) |
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.
early return
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 |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
Fix up your PR and resolve prior reviews, and I'll map review it. |
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 |
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.
mapping lgtm
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.
mapping lgtm
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.
mapping lgtm
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.
mapping lgtm
About the pull request
adds self-destruct mechanisms to big red ETA, desert dam lab and LV lab (LV one is a rare nightmare insert)
they are activated using nuclear disks, which are made unacidable
after two minutes, they explode with explosion power similar to HE OB
Explain why it's good for the game
this pr was inspired by battlefield levolution system, as it allows players to single-handedly change entire locations (not without some set-up, of course)
i find map interactivity in CM lacking, so this pr also adds said interactivity to some maps
Testing Photographs and Procedure
Screenshots & Videos
Put screenshots and videos here with an empty line between the screenshots and the
<details>
tags.Changelog
🆑
add: Adds colony self-destruct mechanisms to Big Red, LV-624 and Desert Dam, activated via nuclear disks.
/:cl: