Merge pull request #337 from SkyMarshal/master

Bugfixes
This commit is contained in:
SkyMarshal
2012-01-31 14:04:29 -08:00
6 changed files with 98 additions and 37 deletions
+1 -1
View File
@@ -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
View File
@@ -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)
+75 -24
View File
@@ -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
+7 -2
View File
@@ -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
+1 -2
View File
@@ -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
+3 -3
View File
@@ -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)