[MIRROR] bans posibrains and mmis from savannah ivanov (#6703)

* Ban posibrains and mmis from savannah ivanov (#59772)

Savannah Ivanov cannot have mmis or posibrains in them.

Now I know that sounds BAD... but I originally intended to do this as it removes a huge trust element and bypasses recruiting people for cooperation. I simply uuuh genuinely forgot to include this, so sorry for the DRAMA.

I was considering blocking the AI too, but AIs are actually more likely to be turned against you than fellow crewmembers

Co-authored-by: coiax <yellowbounder@ gmail.com>

* bans posibrains and mmis from savannah ivanov

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: coiax <yellowbounder@ gmail.com>
This commit is contained in:
SkyratBot
2021-07-04 16:34:37 +01:00
committed by GitHub
co-authored by coiax tralezab
parent 14d545dd9c
commit 18dd8beb89
7 changed files with 31 additions and 25 deletions
+23 -21
View File
@@ -58,7 +58,7 @@
///Whether the mechs maintenance protocols are on or off
var/construction_state = MECHA_LOCKED
///Contains flags for the mecha
var/mecha_flags = ADDING_ACCESS_POSSIBLE | CANSTRAFE | IS_ENCLOSED | HAS_LIGHTS
var/mecha_flags = ADDING_ACCESS_POSSIBLE | CANSTRAFE | IS_ENCLOSED | HAS_LIGHTS | MMI_COMPATIBLE
///Stores the DNA enzymes of a carbon so tht only they can access the mech
var/dna_lock
///Spark effects are handled by this datum
@@ -978,15 +978,17 @@
SEND_SOUND(newoccupant, sound('sound/mecha/nominal.ogg',volume=50))
return TRUE
/obj/vehicle/sealed/mecha/proc/mmi_move_inside(obj/item/mmi/M, mob/user)
if(!M.brain_check(user))
/obj/vehicle/sealed/mecha/proc/mmi_move_inside(obj/item/mmi/brain_obj, mob/user)
if(!(mecha_flags & MMI_COMPATIBLE))
to_chat(user, span_warning("This mecha is not compatible with MMIs!"))
return FALSE
var/mob/living/brain/B = M.brainmob
if(!brain_obj.brain_check(user))
return FALSE
var/mob/living/brain/brain_mob = brain_obj.brainmob
if(LAZYLEN(occupants) >= max_occupants)
to_chat(user, span_warning("It's full!"))
return FALSE
if(dna_lock && (!B.stored_dna || (dna_lock != B.stored_dna.unique_enzymes)))
if(dna_lock && (!brain_mob.stored_dna || (dna_lock != brain_mob.stored_dna.unique_enzymes)))
to_chat(user, span_warning("Access denied. [name] is secured with a DNA lock."))
return FALSE
@@ -996,32 +998,32 @@
to_chat(user, span_notice("You stop inserting the MMI."))
return FALSE
if(LAZYLEN(occupants) < max_occupants)
return mmi_moved_inside(M, user)
return mmi_moved_inside(brain_obj, user)
to_chat(user, span_warning("Maximum occupants exceeded!"))
return FALSE
/obj/vehicle/sealed/mecha/proc/mmi_moved_inside(obj/item/mmi/M, mob/user)
if(!(Adjacent(M) && Adjacent(user)))
/obj/vehicle/sealed/mecha/proc/mmi_moved_inside(obj/item/mmi/brain_obj, mob/user)
if(!(Adjacent(brain_obj) && Adjacent(user)))
return FALSE
if(!M.brain_check(user))
if(!brain_obj.brain_check(user))
return FALSE
var/mob/living/brain/B = M.brainmob
if(!user.transferItemToLoc(M, src))
to_chat(user, span_warning("\the [M] is stuck to your hand, you cannot put it in \the [src]!"))
var/mob/living/brain/brain_mob = brain_obj.brainmob
if(!user.transferItemToLoc(brain_obj, src))
to_chat(user, span_warning("[brain_obj] is stuck to your hand, you cannot put it in [src]!"))
return FALSE
M.set_mecha(src)
add_occupant(B)//Note this forcemoves the brain into the mech to allow relaymove
brain_obj.set_mecha(src)
add_occupant(brain_mob)//Note this forcemoves the brain into the mech to allow relaymove
mecha_flags |= SILICON_PILOT
B.reset_perspective(src)
B.remote_control = src
B.update_mouse_pointer()
brain_mob.reset_perspective(src)
brain_mob.remote_control = src
brain_mob.update_mouse_pointer()
setDir(dir_in)
log_message("[M] moved in as pilot.", LOG_MECHA)
log_message("[brain_obj] moved in as pilot.", LOG_MECHA)
if(!internal_damage)
SEND_SOUND(M, sound('sound/mecha/nominal.ogg',volume=50))
log_game("[key_name(user)] has put the MMI/posibrain of [key_name(B)] into [src] at [AREACOORD(src)]")
SEND_SOUND(brain_obj, sound('sound/mecha/nominal.ogg',volume=50))
log_game("[key_name(user)] has put the MMI/posibrain of [key_name(brain_mob)] into [src] at [AREACOORD(src)]")
return TRUE
/obj/vehicle/sealed/mecha/container_resist_act(mob/living/user)
+1 -1
View File
@@ -12,7 +12,7 @@
operation_req_access = list(ACCESS_THEATRE)
internals_req_access = list(ACCESS_MECH_SCIENCE, ACCESS_THEATRE)
wreckage = /obj/structure/mecha_wreckage/honker
mecha_flags = CANSTRAFE | IS_ENCLOSED | HAS_LIGHTS
mecha_flags = CANSTRAFE | IS_ENCLOSED | HAS_LIGHTS | MMI_COMPATIBLE
max_equip = 3
var/squeak = TRUE
@@ -12,7 +12,7 @@
operation_req_access = list(ACCESS_CENT_SPECOPS)
internals_req_access = list(ACCESS_CENT_SPECOPS)
wreckage = /obj/structure/mecha_wreckage/marauder
mecha_flags = CANSTRAFE | IS_ENCLOSED | HAS_LIGHTS
mecha_flags = CANSTRAFE | IS_ENCLOSED | HAS_LIGHTS | MMI_COMPATIBLE
internal_damage_threshold = 25
force = 45
max_equip = 5
@@ -12,7 +12,7 @@
wreckage = /obj/structure/mecha_wreckage/reticence
operation_req_access = list(ACCESS_THEATRE)
internals_req_access = list(ACCESS_MECH_SCIENCE, ACCESS_THEATRE)
mecha_flags = CANSTRAFE | IS_ENCLOSED | HAS_LIGHTS | QUIET_STEPS | QUIET_TURNS
mecha_flags = CANSTRAFE | IS_ENCLOSED | HAS_LIGHTS | QUIET_STEPS | QUIET_TURNS | MMI_COMPATIBLE
internal_damage_threshold = 25
max_equip = 2
step_energy_drain = 3
@@ -22,6 +22,8 @@
icon = 'icons/mecha/coop_mech.dmi'
base_icon_state = "savannah_ivanov"
icon_state = "savannah_ivanov_0_0"
//does not include mmi compatibility
mecha_flags = ADDING_ACCESS_POSSIBLE | CANSTRAFE | IS_ENCLOSED | HAS_LIGHTS
movedelay = 3
dir_in = 2 //Facing South.
max_integrity = 450 //really tanky, like damn
@@ -15,7 +15,7 @@
max_equip = 7
wreckage = /obj/structure/mecha_wreckage/clarke
enter_delay = 40
mecha_flags = ADDING_ACCESS_POSSIBLE | IS_ENCLOSED | HAS_LIGHTS
mecha_flags = ADDING_ACCESS_POSSIBLE | IS_ENCLOSED | HAS_LIGHTS | MMI_COMPATIBLE
internals_req_access = list(ACCESS_MECH_ENGINE, ACCESS_MECH_SCIENCE, ACCESS_MECH_MINING)
/obj/vehicle/sealed/mecha/working/clarke/Initialize()