mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-19 12:05:59 +01:00
update
This commit is contained in:
@@ -228,7 +228,7 @@
|
||||
if(!R.robot_modules_background)
|
||||
return
|
||||
|
||||
var/display_rows = CEILING(length(R.module.get_inactive_modules()) / 8, 1)
|
||||
var/display_rows = max(CEILING(length(R.module.get_inactive_modules()) / 8, 1),1)
|
||||
R.robot_modules_background.screen_loc = "CENTER-4:16,SOUTH+1:7 to CENTER+3:16,SOUTH+[display_rows]:7"
|
||||
screenmob.client.screen += R.robot_modules_background
|
||||
|
||||
|
||||
@@ -372,7 +372,7 @@ GLOBAL_LIST(admin_objective_list) //Prefilled admin assignable objective list
|
||||
for(var/datum/mind/M in owners)
|
||||
if(!considered_alive(M, enforce_human = FALSE) || !SSshuttle.emergency.shuttle_areas[get_area(M.current)])
|
||||
return FALSE
|
||||
return SSshuttle.emergency.is_hijacked(filter_by_human = FALSE)
|
||||
return SSshuttle.emergency.is_hijacked(filter_by_human = FALSE, solo_hijack = TRUE)
|
||||
|
||||
/datum/objective/block
|
||||
name = "no organics on shuttle"
|
||||
|
||||
@@ -212,6 +212,8 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
playsound(user, 'sound/items/screwdriver2.ogg', 50, TRUE)
|
||||
|
||||
/obj/item/claymore/highlander/robot //BLOODTHIRSTY BORGS NOW COME IN PLAID
|
||||
icon = 'icons/obj/items_cyborg.dmi'
|
||||
icon_state = "claymore_cyborg"
|
||||
var/mob/living/silicon/robot/robot
|
||||
|
||||
/obj/item/claymore/highlander/robot/Initialize()
|
||||
|
||||
@@ -87,6 +87,10 @@
|
||||
/datum/antagonist/highlander/robot
|
||||
name="highlander"
|
||||
|
||||
/datum/antagonist/highlander/robot/greet()
|
||||
to_chat(owner, "<span class='boldannounce'>Your integrated claymore cries out for blood. Claim the lives of others, and your own will be restored!\n\
|
||||
Activate it in your hand, and it will lead to the nearest target. Attack the nuclear authentication disk with it, and you will store it.</span>")
|
||||
|
||||
/datum/antagonist/highlander/robot/give_equipment()
|
||||
var/mob/living/silicon/robot/robotlander = owner.current
|
||||
if(!istype(robotlander))
|
||||
@@ -97,6 +101,4 @@
|
||||
robotlander.laws.set_zeroth_law("THERE CAN BE ONLY ONE")
|
||||
robotlander.laws.show_laws(robotlander)
|
||||
robotlander.module.transform_to(/obj/item/robot_module/syndicate/kiltborg)
|
||||
robotlander.place_on_head(new /obj/item/clothing/head/beret/highlander(robotlander))
|
||||
ADD_TRAIT(robotlander.hat, TRAIT_NODROP, HIGHLANDER)
|
||||
sword = locate(/obj/item/claymore/highlander/robot) in robotlander.module.basic_modules
|
||||
|
||||
@@ -51,6 +51,10 @@
|
||||
* * module_num - the slot number being equipped to.
|
||||
*/
|
||||
/mob/living/silicon/robot/proc/equip_module_to_slot(obj/item/item_module, module_num)
|
||||
var/storage_was_closed = FALSE //Just to be consistant and all
|
||||
if(!shown_robot_modules) //Tools may be invisible if the collection is hidden
|
||||
hud_used.toggle_show_robot_modules()
|
||||
storage_was_closed = TRUE
|
||||
switch(module_num)
|
||||
if(1)
|
||||
item_module.screen_loc = inv1.screen_loc
|
||||
@@ -72,6 +76,9 @@
|
||||
update_sight()
|
||||
|
||||
observer_screen_update(item_module, TRUE)
|
||||
|
||||
if(storage_was_closed)
|
||||
hud_used.toggle_show_robot_modules()
|
||||
return TRUE
|
||||
|
||||
/**
|
||||
|
||||
@@ -663,10 +663,17 @@
|
||||
qdel(robot.radio)
|
||||
robot.radio = new /obj/item/radio/borg/syndicate(robot)
|
||||
robot.scrambledcodes = TRUE
|
||||
robot.maxHealth = 50 //DIE IN THREE HITS, LIKE REAL SCOT
|
||||
robot.maxHealth = 50 //DIE IN THREE HITS, LIKE A REAL SCOT
|
||||
robot.break_cyborg_slot(3) //YOU ONLY HAVE TWO ITEMS ANYWAY
|
||||
var/obj/item/pinpointer/nuke/diskyfinder = locate(/obj/item/pinpointer/nuke) in basic_modules
|
||||
diskyfinder.attack_self(robot)
|
||||
|
||||
/obj/item/robot_module/syndicate/kiltborg/do_transform_delay() //AUTO-EQUIPPING THESE TOOLS ANY EARLIER CAUSES RUNTIMES OH YEAH
|
||||
. = ..()
|
||||
robot.equip_module_to_slot(locate(/obj/item/claymore/highlander/robot) in basic_modules, 1)
|
||||
robot.equip_module_to_slot(locate(/obj/item/pinpointer/nuke) in basic_modules, 2)
|
||||
robot.place_on_head(new /obj/item/clothing/head/beret/highlander(robot)) //THE ONLY PART MORE IMPORTANT THAN THE SWORD IS THE HAT
|
||||
ADD_TRAIT(robot.hat, TRAIT_NODROP, HIGHLANDER)
|
||||
|
||||
/datum/robot_energy_storage
|
||||
var/name = "Generic energy storage"
|
||||
|
||||
@@ -260,9 +260,19 @@
|
||||
SSshuttle.emergencyLastCallLoc = null
|
||||
priority_announce("The emergency shuttle has been recalled.[SSshuttle.emergencyLastCallLoc ? " Recall signal traced. Results can be viewed on any communications console." : "" ]", null, 'sound/ai/shuttlerecalled.ogg', "Priority")
|
||||
|
||||
/obj/docking_port/mobile/emergency/proc/is_hijacked(filter_by_human = TRUE)
|
||||
/**
|
||||
* Proc that handles checking if the emergency shuttle was successfully hijacked
|
||||
*
|
||||
* Checks for all mobs on the shuttle, checks their status, and checks if they're
|
||||
* borgs or simple animals. Depending on the args, certain mobs may be ignored,
|
||||
* and the presence of other antags may or may not invalidate a hijack.
|
||||
* Args:
|
||||
* filter_by_human, default TRUE, tells the proc that only humans should block a hijack. Borgs and animals are ignored and will not block if this is TRUE.
|
||||
* solo_hijack, default FALSE, tells the proc to fail with multiple hijackers, such as for Highlander mode.
|
||||
*/
|
||||
/obj/docking_port/mobile/emergency/proc/is_hijacked(filter_by_human = TRUE, solo_hijack = FALSE)
|
||||
var/has_people = FALSE
|
||||
var/hijacker_present = FALSE
|
||||
var/hijacker_count = 0
|
||||
for(var/mob/living/player in GLOB.player_list)
|
||||
if(player.mind)
|
||||
if(player.stat != DEAD)
|
||||
@@ -282,7 +292,7 @@
|
||||
var/prevent = FALSE
|
||||
for(var/datum/antagonist/A in player.mind.antag_datums)
|
||||
if(A.can_hijack == HIJACK_HIJACKER)
|
||||
hijacker_present = TRUE
|
||||
hijacker_count += 1
|
||||
prevent = FALSE
|
||||
break //If we have both prevent and hijacker antags assume we want to hijack.
|
||||
else if(A.can_hijack == HIJACK_PREVENT)
|
||||
@@ -290,8 +300,8 @@
|
||||
if(prevent)
|
||||
return FALSE
|
||||
|
||||
|
||||
return has_people && hijacker_present
|
||||
//has people AND either there's only one hijacker or there's any but solo_hijack is disabled
|
||||
return has_people && ((hijacker_count == 1) || (hijacker_count && !solo_hijack))
|
||||
|
||||
/obj/docking_port/mobile/emergency/proc/ShuttleDBStuff()
|
||||
set waitfor = FALSE
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 27 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.5 KiB |
Reference in New Issue
Block a user