TG Sync 12/15/17
s s
This commit is contained in:
@@ -339,7 +339,7 @@
|
||||
|
||||
if(href_list["ejectjar"])
|
||||
if(fueljar)
|
||||
fueljar.loc = src.loc
|
||||
fueljar.forceMove(drop_location())
|
||||
fueljar = null
|
||||
//fueljar.control_unit = null currently it does not care where it is
|
||||
//update_icon() when we have the icon for it
|
||||
|
||||
@@ -972,7 +972,7 @@
|
||||
else
|
||||
to_chat(occupier, "<span class='danger'>Primary core damaged, unable to return core processes.</span>")
|
||||
if(forced)
|
||||
occupier.loc = src.loc
|
||||
occupier.forceMove(drop_location())
|
||||
occupier.death()
|
||||
occupier.gib()
|
||||
for(var/obj/item/pinpointer/nuke/P in GLOB.pinpointer_list)
|
||||
|
||||
@@ -427,7 +427,7 @@ By design, d1 is the smallest direction and d2 is the highest
|
||||
var/obj/O = P_list[1]
|
||||
// remove the cut cable from its turf and powernet, so that it doesn't get count in propagate_network worklist
|
||||
if(remove)
|
||||
loc = null
|
||||
moveToNullspace()
|
||||
powernet.remove_cable(src) //remove the cut cable from its powernet
|
||||
|
||||
addtimer(CALLBACK(O, .proc/auto_propogate_cut_cable, O), 0) //so we don't rebuild the network X times when singulo/explosion destroys a line of X cables
|
||||
@@ -472,6 +472,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai
|
||||
attack_verb = list("whipped", "lashed", "disciplined", "flogged")
|
||||
singular_name = "cable piece"
|
||||
full_w_class = WEIGHT_CLASS_SMALL
|
||||
grind_results = list("copper" = 2) //2 copper per cable in the coil
|
||||
|
||||
/obj/item/stack/cable_coil/cyborg
|
||||
is_cyborg = 1
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
var/charge = 0 // note %age conveted to actual charge in New
|
||||
var/maxcharge = 1000
|
||||
materials = list(MAT_METAL=700, MAT_GLASS=50)
|
||||
grind_results = list("lithium" = 15, "iron" = 5, "silicon" = 5)
|
||||
var/rigged = 0 // true if rigged to explode
|
||||
var/chargerate = 100 //how much power is given every tick in a recharger
|
||||
var/self_recharge = 0 //does it self recharge, over time, or not?
|
||||
@@ -75,7 +76,7 @@
|
||||
return 0
|
||||
charge = (charge - amount)
|
||||
if(!istype(loc, /obj/machinery/power/apc))
|
||||
SSblackbox.record_feedback("tally", "cell_used", 1, "[src.type]")
|
||||
SSblackbox.record_feedback("tally", "cell_used", 1, type)
|
||||
return 1
|
||||
|
||||
// recharge the cell
|
||||
@@ -107,6 +108,7 @@
|
||||
to_chat(user, "<span class='notice'>You inject the solution into the power cell.</span>")
|
||||
if(S.reagents.has_reagent("plasma", 5))
|
||||
rigged = 1
|
||||
grind_results["plasma"] = 5
|
||||
S.reagents.clear_reagents()
|
||||
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne
|
||||
|
||||
// You aren't allowed to move.
|
||||
/obj/machinery/gravity_generator/Move()
|
||||
..()
|
||||
. = ..()
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/gravity_generator/proc/set_broken()
|
||||
|
||||
@@ -246,15 +246,15 @@
|
||||
. = ..()
|
||||
status = LIGHT_EMPTY
|
||||
update(0)
|
||||
..()
|
||||
|
||||
/obj/machinery/light/small/built
|
||||
icon_state = "bulb-empty"
|
||||
|
||||
/obj/machinery/light/small/built/New()
|
||||
/obj/machinery/light/small/built/Initialize()
|
||||
. = ..()
|
||||
status = LIGHT_EMPTY
|
||||
update(0)
|
||||
..()
|
||||
|
||||
|
||||
|
||||
// create a new lighting fixture
|
||||
@@ -680,6 +680,7 @@
|
||||
var/base_state
|
||||
var/switchcount = 0 // number of times switched
|
||||
materials = list(MAT_GLASS=100)
|
||||
grind_results = list("silicon" = 5, "nitrogen" = 10) //Nitrogen is used as a cheaper alternative to argon in incandescent lighbulbs
|
||||
var/rigged = 0 // true if rigged to explode
|
||||
var/brightness = 2 //how much light it gives off
|
||||
|
||||
@@ -726,8 +727,8 @@
|
||||
desc = "A broken [name]."
|
||||
|
||||
|
||||
/obj/item/light/New()
|
||||
..()
|
||||
/obj/item/light/Initialize()
|
||||
. = ..()
|
||||
update()
|
||||
|
||||
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
var/obj/item/tank/internals/plasma/Z = src.loaded_tank
|
||||
if (!Z)
|
||||
return
|
||||
Z.loc = get_turf(src)
|
||||
Z.forceMove(drop_location())
|
||||
Z.layer = initial(Z.layer)
|
||||
Z.plane = initial(Z.plane)
|
||||
src.loaded_tank = null
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
|
||||
/obj/machinery/field/containment/Move()
|
||||
qdel(src)
|
||||
return FALSE
|
||||
|
||||
|
||||
// Abstract Field Class
|
||||
|
||||
@@ -285,9 +285,8 @@ field_generator power level display
|
||||
var/field_dir = get_dir(T,get_step(G.loc, NSEW))
|
||||
T = get_step(T, NSEW)
|
||||
if(!locate(/obj/machinery/field/containment) in T)
|
||||
var/obj/machinery/field/containment/CF = new/obj/machinery/field/containment()
|
||||
var/obj/machinery/field/containment/CF = new(T)
|
||||
CF.set_master(src,G)
|
||||
CF.loc = T
|
||||
CF.setDir(field_dir)
|
||||
fields += CF
|
||||
G.fields += CF
|
||||
|
||||
@@ -47,8 +47,15 @@
|
||||
/obj/singularity/narsie/large/cult/Initialize()
|
||||
. = ..()
|
||||
GLOB.cult_narsie = src
|
||||
deltimer(GLOB.blood_target_reset_timer)
|
||||
GLOB.blood_target = src
|
||||
var/list/all_cults = list()
|
||||
for(var/datum/antagonist/cult/C in GLOB.antagonists)
|
||||
all_cults |= C.cult_team
|
||||
for(var/datum/objective_team/cult/T in all_cults)
|
||||
deltimer(T.blood_target_reset_timer)
|
||||
T.blood_target = src
|
||||
var/datum/objective/eldergod/summon_objective = locate() in T.objectives
|
||||
if(summon_objective)
|
||||
summon_objective.summoned = TRUE
|
||||
for(var/datum/mind/cult_mind in SSticker.mode.cult)
|
||||
if(isliving(cult_mind.current))
|
||||
var/mob/living/L = cult_mind.current
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/particle_accelerator/Move()
|
||||
..()
|
||||
. = ..()
|
||||
if(master && master.active)
|
||||
master.toggle_power()
|
||||
investigate_log("was moved whilst active; it <font color='red'>powered down</font>.", INVESTIGATE_SINGULO)
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
var/active = 0
|
||||
var/strength = 0
|
||||
var/powered = 0
|
||||
mouse_opacity = 2
|
||||
mouse_opacity = MOUSE_OPACITY_OPAQUE
|
||||
|
||||
/obj/machinery/particle_accelerator/control_box/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -164,7 +164,7 @@
|
||||
dissipate_track = 0
|
||||
dissipate_strength = 1
|
||||
if(STAGE_TWO)
|
||||
if((check_turfs_in(1,1))&&(check_turfs_in(2,1))&&(check_turfs_in(4,1))&&(check_turfs_in(8,1)))
|
||||
if(check_cardinals_range(1, TRUE))
|
||||
current_size = STAGE_TWO
|
||||
icon = 'icons/effects/96x96.dmi'
|
||||
icon_state = "singularity_s3"
|
||||
@@ -176,7 +176,7 @@
|
||||
dissipate_track = 0
|
||||
dissipate_strength = 5
|
||||
if(STAGE_THREE)
|
||||
if((check_turfs_in(1,2))&&(check_turfs_in(2,2))&&(check_turfs_in(4,2))&&(check_turfs_in(8,2)))
|
||||
if(check_cardinals_range(2, TRUE))
|
||||
current_size = STAGE_THREE
|
||||
icon = 'icons/effects/160x160.dmi'
|
||||
icon_state = "singularity_s5"
|
||||
@@ -188,7 +188,7 @@
|
||||
dissipate_track = 0
|
||||
dissipate_strength = 20
|
||||
if(STAGE_FOUR)
|
||||
if((check_turfs_in(1,3))&&(check_turfs_in(2,3))&&(check_turfs_in(4,3))&&(check_turfs_in(8,3)))
|
||||
if(check_cardinals_range(3, TRUE))
|
||||
current_size = STAGE_FOUR
|
||||
icon = 'icons/effects/224x224.dmi'
|
||||
icon_state = "singularity_s7"
|
||||
@@ -296,6 +296,16 @@
|
||||
|
||||
step(src, movement_dir)
|
||||
|
||||
/obj/singularity/proc/check_cardinals_range(steps, retry_with_move = FALSE)
|
||||
. = length(GLOB.cardinals) //Should be 4.
|
||||
for(var/i in GLOB.cardinals)
|
||||
. -= check_turfs_in(i, steps) //-1 for each working direction
|
||||
if(. && retry_with_move) //If there's still a positive value it means it didn't pass. Retry with move if applicable
|
||||
for(var/i in GLOB.cardinals)
|
||||
if(step(src, i)) //Move in each direction.
|
||||
if(check_cardinals_range(steps, FALSE)) //New location passes, return true.
|
||||
return TRUE
|
||||
. = !.
|
||||
|
||||
/obj/singularity/proc/check_turfs_in(direction = 0, step = 0)
|
||||
if(!direction)
|
||||
|
||||
@@ -419,7 +419,7 @@
|
||||
new /obj/item/shard( src.loc )
|
||||
var/obj/item/circuitboard/computer/solar_control/M = new /obj/item/circuitboard/computer/solar_control( A )
|
||||
for (var/obj/C in src)
|
||||
C.loc = src.loc
|
||||
C.forceMove(drop_location())
|
||||
A.circuit = M
|
||||
A.state = 3
|
||||
A.icon_state = "3"
|
||||
@@ -430,7 +430,7 @@
|
||||
var/obj/structure/frame/computer/A = new /obj/structure/frame/computer( src.loc )
|
||||
var/obj/item/circuitboard/computer/solar_control/M = new /obj/item/circuitboard/computer/solar_control( A )
|
||||
for (var/obj/C in src)
|
||||
C.loc = src.loc
|
||||
C.forceMove(drop_location())
|
||||
A.circuit = M
|
||||
A.state = 4
|
||||
A.icon_state = "4"
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
S.glass_type = /obj/item/stack/sheet/glass
|
||||
S.tracker = 1
|
||||
S.anchored = TRUE
|
||||
S.loc = src
|
||||
S.forceMove(src)
|
||||
update_icon()
|
||||
|
||||
//updates the tracker icon and the facing angle for the control computer
|
||||
@@ -94,4 +94,4 @@
|
||||
// Tracker Electronic
|
||||
|
||||
/obj/item/electronics/tracker
|
||||
name = "tracker electronics"
|
||||
name = "tracker electronics"
|
||||
|
||||
Reference in New Issue
Block a user