mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 12:37:26 +01:00
+1
-1
@@ -42,7 +42,7 @@
|
||||
|
||||
|
||||
for(var/obj/machinery/power/tracker/T in machines)
|
||||
T.set_angle()
|
||||
T.set_angle(angle)
|
||||
|
||||
for(var/obj/machinery/power/solar/S in machines)
|
||||
if(S.control)
|
||||
|
||||
+11
-5
@@ -101,12 +101,18 @@
|
||||
var/prints
|
||||
for(var/i = 1, i < (src.fingerprints.len + 1), i++)
|
||||
var/list/L = params2list(src.fingerprints[i])
|
||||
if(L[1] == md5(H.dna.uni_identity))
|
||||
new_prints = i
|
||||
prints = L[2]
|
||||
break
|
||||
if(L.len > 1)
|
||||
if(L[1] == md5(H.dna.uni_identity))
|
||||
new_prints = i
|
||||
prints = L[2]
|
||||
break
|
||||
else
|
||||
src.fingerprints[i] = L[1] + "&" + stars(L[2], rand(80,90))
|
||||
else
|
||||
src.fingerprints[i] = L[1] + "&" + stars(L[2], rand(80,90))
|
||||
var/turf/T = get_turf(src)
|
||||
for (var/mob/N in world)
|
||||
if (N.client && N.client.holder)
|
||||
N << "<span class=\"gfartadmin\"><span class=\"prefix\">ERROR:</span><span class=\"message\">Fingerprint application failed! Important data: [src.name] at [T.x], [T.y], [T.z] with the print string [L[1]]</span></span>"
|
||||
if(new_prints)
|
||||
src.fingerprints[new_prints] = text("[]&[]", md5(H.dna.uni_identity), stringmerge(prints,stars(md5(H.dna.uni_identity), rand(15,30))))
|
||||
else if(new_prints == 0)
|
||||
|
||||
@@ -88,35 +88,86 @@
|
||||
traitor.objectives += block_objective
|
||||
|
||||
else
|
||||
var/list/target = traitor.objectives
|
||||
for(var/i = 1, i <= rand(1,3), i++)
|
||||
var/datum/objective/objective
|
||||
switch(rand(1,100))
|
||||
if(1 to 30)
|
||||
var/datum/objective/assassinate/kill_objective = new
|
||||
kill_objective.owner = traitor
|
||||
kill_objective.find_target()
|
||||
objective = kill_objective
|
||||
if(!locate(/datum/objective/assassinate) in traitor.objectives && !locate(/datum/objective/protect) in traitor.objectives)
|
||||
var/datum/objective/assassinate/kill_objective = new
|
||||
kill_objective.owner = traitor
|
||||
kill_objective.find_target()
|
||||
traitor.objectives += kill_objective
|
||||
else
|
||||
var/works = 1
|
||||
var/datum/objective/assassinate/kill_objective = new
|
||||
kill_objective.owner = traitor
|
||||
kill_objective.find_target()
|
||||
for(var/j, j < traitor.objectives.len, j++)
|
||||
var/compare = istype(traitor.objectives[j],/datum/objective/assassinate)
|
||||
if(compare)
|
||||
var/datum/objective/assassinate/test = traitor.objectives[j]
|
||||
if(test.target == kill_objective.target)
|
||||
works = 0
|
||||
break
|
||||
compare = istype(traitor.objectives[j],/datum/objective/protect)
|
||||
if(compare)
|
||||
var/datum/objective/protect/test = traitor.objectives[j]
|
||||
if(test.target == kill_objective.target)
|
||||
works = 0
|
||||
break
|
||||
if(works)
|
||||
traitor.objectives += kill_objective
|
||||
else
|
||||
i -= 1
|
||||
if(31 to 40)
|
||||
var/datum/objective/protect/protect_objective = new
|
||||
protect_objective.owner = traitor
|
||||
protect_objective.find_target()
|
||||
objective = protect_objective
|
||||
if(!locate(/datum/objective/assassinate) in traitor.objectives && !locate(/datum/objective/protect) in traitor.objectives)
|
||||
var/datum/objective/protect/protect_objective = new
|
||||
protect_objective.owner = traitor
|
||||
protect_objective.find_target()
|
||||
traitor.objectives += protect_objective
|
||||
else
|
||||
var/works = 1
|
||||
var/datum/objective/protect/protect_objective = new
|
||||
protect_objective.owner = traitor
|
||||
protect_objective.find_target()
|
||||
for(var/j, j < traitor.objectives.len, j++)
|
||||
var/compare = istype(traitor.objectives[j],/datum/objective/assassinate)
|
||||
if(compare)
|
||||
var/datum/objective/assassinate/test = traitor.objectives[j]
|
||||
if(test.target == protect_objective.target)
|
||||
works = 0
|
||||
break
|
||||
compare = istype(traitor.objectives[j],/datum/objective/protect)
|
||||
if(compare)
|
||||
var/datum/objective/protect/test = traitor.objectives[j]
|
||||
if(test.target == protect_objective.target)
|
||||
works = 0
|
||||
break
|
||||
if(works)
|
||||
traitor.objectives += protect_objective
|
||||
else
|
||||
i -= 1
|
||||
else
|
||||
var/datum/objective/steal/steal_objective = new
|
||||
steal_objective.owner = traitor
|
||||
steal_objective.find_target()
|
||||
objective = steal_objective
|
||||
var/inthere = 0
|
||||
for(var/j, j<= target.len, j++)
|
||||
var/datum/objective/temp = target[j]
|
||||
if(temp:target == objective:target)
|
||||
inthere = 1
|
||||
break
|
||||
if(!inthere)
|
||||
traitor.objectives += objective
|
||||
else
|
||||
i -= 1
|
||||
if(!locate(/datum/objective/steal) in traitor.objectives)
|
||||
var/datum/objective/steal/steal_objective = new
|
||||
steal_objective.owner = traitor
|
||||
steal_objective.find_target()
|
||||
traitor.objectives += steal_objective
|
||||
else
|
||||
var/works = 1
|
||||
var/datum/objective/steal/steal_objective = new
|
||||
steal_objective.owner = traitor
|
||||
steal_objective.find_target()
|
||||
for(var/j, j < traitor.objectives.len, j++)
|
||||
var/compare = istype(traitor.objectives[j],/datum/objective/steal)
|
||||
if(compare)
|
||||
var/datum/objective/steal/test = traitor.objectives[j]
|
||||
if(test.target_name == steal_objective.target_name)
|
||||
works = 0
|
||||
break
|
||||
if(works)
|
||||
traitor.objectives += steal_objective
|
||||
else
|
||||
i -= 1
|
||||
if (!(locate(/datum/objective/escape) in traitor.objectives))
|
||||
var/datum/objective/escape/escape_objective = new
|
||||
escape_objective.owner = traitor
|
||||
|
||||
@@ -698,8 +698,13 @@
|
||||
// calculates a path to the current destination
|
||||
// given an optional turf to avoid
|
||||
/obj/machinery/bot/mulebot/proc/calc_path(var/turf/avoid = null)
|
||||
src.path = AStar(src.loc, src.target, /turf/proc/CardinalTurfsWithAccess, /turf/proc/Distance_ortho, 0, 250, id=botcard, exclude=avoid)
|
||||
src.path = reverselist(src.path)
|
||||
if(src.target)
|
||||
src.path = AStar(src.loc, src.target, /turf/proc/CardinalTurfsWithAccess, /turf/proc/Distance_ortho, 0, 250, id=botcard, exclude=avoid)
|
||||
src.path = reverselist(src.path)
|
||||
else
|
||||
for (var/mob/M in world)
|
||||
if (M.client && M.client.holder)
|
||||
M << "<span class=\"gfartadmin\"><span class=\"prefix\">ERROR:</span><span class=\"message\">A Mulebot has attempted to path to a null target! This is a bug!</span></span>"
|
||||
|
||||
|
||||
// sets the current destination
|
||||
|
||||
@@ -16,8 +16,7 @@
|
||||
|
||||
|
||||
// called by datum/sun/calc_position() as sun's angle changes
|
||||
proc/set_angle()
|
||||
var/angle = sun.angle
|
||||
proc/set_angle(angle)
|
||||
|
||||
//set icon dir to show sun illumination
|
||||
dir = turn(NORTH, -angle - 22.5) // 22.5 deg bias ensures, e.g. 67.5-112.5 is EAST
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
"acl" = (/obj/item/weapon/stamp/hos,/obj/structure/table/woodentable,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/security/hos)
|
||||
"acm" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/structure/table/woodentable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/security/hos)
|
||||
"acn" = (/obj/structure/disposalpipe/segment{dir = 1},/obj/item/device/radio/intercom{pixel_x = 28; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "carpetside"},/area/security/hos)
|
||||
"aco" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1},/obj/structure/closet/wardrobe/red,/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/security/main)
|
||||
"aco" = (/obj/structure/closet/wardrobe/red,/turf/simulated/floor,/area/security/main)
|
||||
"acp" = (/turf/simulated/wall/r_wall,/area/maintenance/fsmaint)
|
||||
"acq" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced{tag = "icon-reinf_1tilethick"; icon_state = "reinf_1tilethick"},/obj/machinery/camera{dir = 1; c_tag = "Firing Range"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/range)
|
||||
"acr" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/filingcabinet,/turf/simulated/floor{dir = 10; icon_state = "carpetside"},/area/security/hos)
|
||||
@@ -4801,7 +4801,7 @@
|
||||
"bOq" = (/obj/machinery/door/airlock/glass{name = "Virology"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
|
||||
"bOr" = (/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
|
||||
"bOs" = (/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
|
||||
"bOt" = (/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_exterior"; locked = 1; name = "Virology Access"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
|
||||
"bOt" = (/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1449; holdopen = 0; icon_state = "door_locked"; id_tag = "virology_airlock_exterior"; locked = 1; name = "Virology Access"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
|
||||
"bOu" = (/obj/machinery/atmospherics/unary/vent_scrubber,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
|
||||
"bOv" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 20},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
|
||||
"bOw" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/medical/research{name = "Research Division"})
|
||||
@@ -4870,7 +4870,7 @@
|
||||
"bPH" = (/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/wall/r_wall,/area/medical/virology)
|
||||
"bPI" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 6; icon_state = "intact-r-f"; initialize_directions = 6; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/medical/virology)
|
||||
"bPJ" = (/obj/effect/sign/biohazard,/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 9; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/medical/virology)
|
||||
"bPK" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_interior"; locked = 1; name = "Virology Access"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
|
||||
"bPK" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1449; holdopen = 0; icon_state = "door_locked"; id_tag = "virology_airlock_interior"; locked = 1; name = "Virology Access"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
|
||||
"bPL" = (/obj/effect/sign/biohazard,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/medical/virology)
|
||||
"bPM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/virology)
|
||||
"bPN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/virology)
|
||||
|
||||
Reference in New Issue
Block a user