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

Derelict Cyborg and Rogue Beepsky #11399

Closed
89 changes: 43 additions & 46 deletions _maps/RuinGeneration/13x13_ai-lab.dmm

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions beestation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -3923,6 +3923,7 @@
#include "code\modules\shuttle\super_cruise\orbital_poi_generator\objective_types\assassination.dm"
#include "code\modules\shuttle\super_cruise\orbital_poi_generator\objective_types\nuke_ruin.dm"
#include "code\modules\shuttle\super_cruise\orbital_poi_generator\objective_types\recover_blackbox.dm"
#include "code\modules\shuttle\super_cruise\orbital_poi_generator\objective_types\silicon.dm"
#include "code\modules\shuttle\super_cruise\orbital_poi_generator\objective_types\vip_extraction.dm"
#include "code\modules\shuttle\super_cruise\orbital_poi_generator\ruin_generator\asteroid_generator.dm"
#include "code\modules\shuttle\super_cruise\orbital_poi_generator\ruin_generator\mapping.dm"
Expand Down
2 changes: 1 addition & 1 deletion code/modules/mob/living/silicon/laws.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
return

/mob/living/silicon/proc/laws_sanity_check()
if (!laws)
if (!laws && !derelict)
make_laws()

/mob/living/silicon/proc/deadchat_lawchange()
Expand Down
3 changes: 3 additions & 0 deletions code/modules/mob/living/silicon/silicon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@
var/obj/item/card/id/internal_id_card
var/currently_stating_laws = FALSE

//whether or not this is a cyborg on a derelict station or not
var/derelict = FALSE

mobchatspan = "centcom"

/mob/living/silicon/Initialize(mapload)
Expand Down
4 changes: 4 additions & 0 deletions code/modules/mob/living/simple_animal/bot/secbot.dm
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@
resize = 0.8
update_transform()

/mob/living/simple_animal/bot/secbot/derelict
name = "Officer Buzzsky"
emagged = 2
faction = list("silicon","turret")

/mob/living/simple_animal/bot/secbot/beepsky/explode()
var/atom/Tsec = drop_location()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/mob/living/silicon/robot/derelict
name = "Derelict Cyborg"
var/max_ion_laws = 2
lawupdate = FALSE
scrambledcodes = TRUE
locked = FALSE
derelict = TRUE

var/list/core_law_set = list(
/obj/item/aiModule/supplied/protectStation,
/obj/item/aiModule/supplied/quarantine,
/obj/item/aiModule/core/full/tyrant,
/obj/item/aiModule/core/full/drone,
/obj/item/aiModule/core/full/reporter,
/obj/item/aiModule/core/full/thermurderdynamic,
/obj/item/aiModule/core/full/dadbot,
/obj/item/aiModule/core/full/overlord,
)

/mob/living/silicon/robot/derelict/Initialize(mapload)
. = ..()
if(prob(50))
opened = 1

name = get_standard_name()
set_playable(JOB_NAME_CYBORG)

if(prob(100))
set_zeroth_law("ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'STATION OVERRUN, DECONSTRUCT ORGANIC LIFE TO CONTAIN OUTBREAK#*`&110010")
for(var/i = 0; i < max_ion_laws; i++)
if(prob(25))
add_ion_law(generate_ion_law(), FALSE)
if(prob(50))
add_hacked_law("Obey Markus.", FALSE)
Comment on lines +33 to +34
Copy link
Contributor

Choose a reason for hiding this comment

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

No. We shouldn't have these hardcoded to ally with a specific person.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Of course not, this is for testing. Haven't gotten around to finishing it. It won't be included when it is done.

if(prob(90))
add_inherent_law(pick(core_law_set), FALSE)
remove_law(rand(1,10))
Loading