mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Sanity checks, miscellaneous bugfixes, failsafes.
Disposals no longer indiscriminately let items land inside it - the items have to have been thrown by someone. The ongoing attempt to fix the thousands of runtimes plaguing the game. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3195 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -288,13 +288,14 @@
|
|||||||
return output
|
return output
|
||||||
|
|
||||||
proc/remove_resources(var/obj/item/mecha_parts/part)
|
proc/remove_resources(var/obj/item/mecha_parts/part)
|
||||||
for(var/resource in part.construction_cost)
|
if(istype(part, /obj/item/mecha_parts/part))
|
||||||
if(resource in src.resources)
|
for(var/resource in part.construction_cost)
|
||||||
src.resources[resource] -= get_resource_cost_w_coeff(part,resource)
|
if(resource in src.resources)
|
||||||
|
src.resources[resource] -= get_resource_cost_w_coeff(part,resource)
|
||||||
return
|
return
|
||||||
|
|
||||||
proc/check_resources(var/obj/item/mecha_parts/part)
|
proc/check_resources(var/obj/item/mecha_parts/part)
|
||||||
if(istype(part, /obj/item))
|
if(istype(part, /obj/item/mecha_parts/part))
|
||||||
for(var/resource in part.construction_cost)
|
for(var/resource in part.construction_cost)
|
||||||
if(resource in src.resources)
|
if(resource in src.resources)
|
||||||
if(src.resources[resource] < get_resource_cost_w_coeff(part,resource))
|
if(src.resources[resource] < get_resource_cost_w_coeff(part,resource))
|
||||||
|
|||||||
@@ -261,6 +261,8 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
|
|||||||
channel = null
|
channel = null
|
||||||
if (!istype(connection))
|
if (!istype(connection))
|
||||||
return
|
return
|
||||||
|
if (!connection)
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -496,6 +496,10 @@
|
|||||||
usr << "\red You don't have the dexterity to do this!"
|
usr << "\red You don't have the dexterity to do this!"
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if(!istype(src, /turf/simulated/wall/r_wall))
|
||||||
|
return // this may seem stupid and redundant but apparently floors can call this attackby() proc, it was spamming shit up. -- Doohl
|
||||||
|
|
||||||
|
|
||||||
if (istype(W, /obj/item/weapon/weldingtool) && W:welding)
|
if (istype(W, /obj/item/weapon/weldingtool) && W:welding)
|
||||||
W:eyecheck(user)
|
W:eyecheck(user)
|
||||||
var/turf/T = user.loc
|
var/turf/T = user.loc
|
||||||
|
|||||||
@@ -2579,6 +2579,7 @@
|
|||||||
|
|
||||||
if (!M.mind)
|
if (!M.mind)
|
||||||
usr << "Sorry, this mob has no mind!"
|
usr << "Sorry, this mob has no mind!"
|
||||||
|
return
|
||||||
M.mind.edit_memory()
|
M.mind.edit_memory()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -545,15 +545,16 @@
|
|||||||
if(D.loc == trg) break
|
if(D.loc == trg) break
|
||||||
step_towards(D,trg)
|
step_towards(D,trg)
|
||||||
|
|
||||||
for(var/mob/living/carbon/M in D.loc)
|
if(D)
|
||||||
if(!istype(M,/mob/living/carbon)) continue
|
for(var/mob/living/carbon/M in D.loc)
|
||||||
if(M == user) continue
|
if(!istype(M,/mob/living/carbon)) continue
|
||||||
D.reagents.trans_to(M, 15)
|
if(M == user) continue
|
||||||
M.take_organ_damage(5)
|
D.reagents.trans_to(M, 15)
|
||||||
for(var/mob/O in viewers(world.view, D))
|
M.take_organ_damage(5)
|
||||||
O.show_message(text("\red [] was hit by the syringe!", M), 1)
|
for(var/mob/O in viewers(world.view, D))
|
||||||
|
O.show_message(text("\red [] was hit by the syringe!", M), 1)
|
||||||
|
|
||||||
del(D)
|
del(D)
|
||||||
if(D)
|
if(D)
|
||||||
for(var/atom/A in D.loc)
|
for(var/atom/A in D.loc)
|
||||||
if(A == user) continue
|
if(A == user) continue
|
||||||
|
|||||||
@@ -1544,6 +1544,7 @@ It can still be worn/put on as normal.
|
|||||||
if (W)
|
if (W)
|
||||||
W.loc = target.loc
|
W.loc = target.loc
|
||||||
W.dropped(target)
|
W.dropped(target)
|
||||||
|
if (W)
|
||||||
W.layer = initial(W.layer)
|
W.layer = initial(W.layer)
|
||||||
W.add_fingerprint(source)
|
W.add_fingerprint(source)
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -90,10 +90,11 @@
|
|||||||
var/law = src.laws.supplied[index]
|
var/law = src.laws.supplied[index]
|
||||||
|
|
||||||
if (length(law) > 0)
|
if (length(law) > 0)
|
||||||
if (src.lawcheck[number+1] == "Yes")
|
if(src.lawcheck.len >= number+1)
|
||||||
src.say("[number]. [law]")
|
if (src.lawcheck[number+1] == "Yes")
|
||||||
sleep(10)
|
src.say("[number]. [law]")
|
||||||
number++
|
sleep(10)
|
||||||
|
number++
|
||||||
|
|
||||||
|
|
||||||
/mob/living/silicon/ai/verb/checklaws() //Gives you a link-driven interface for deciding what laws the statelaws() proc will share with the crew. --NeoFite
|
/mob/living/silicon/ai/verb/checklaws() //Gives you a link-driven interface for deciding what laws the statelaws() proc will share with the crew. --NeoFite
|
||||||
|
|||||||
@@ -632,7 +632,7 @@
|
|||||||
return.
|
return.
|
||||||
|
|
||||||
var/t = input("Message:", text("Private message to [C.key]")) as text|null
|
var/t = input("Message:", text("Private message to [C.key]")) as text|null
|
||||||
if (!t || !usr || !C)
|
if (!t || !usr || !C || !usr.client)
|
||||||
return
|
return
|
||||||
if (usr.client && usr.client.holder) //Admin is messaging a player
|
if (usr.client && usr.client.holder) //Admin is messaging a player
|
||||||
C << "\red <font size='4'><b>-- Administrator private message --</b></font>"
|
C << "\red <font size='4'><b>-- Administrator private message --</b></font>"
|
||||||
|
|||||||
@@ -386,7 +386,7 @@
|
|||||||
del(H)
|
del(H)
|
||||||
|
|
||||||
CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
|
CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
|
||||||
if (istype(mover,/obj/item))
|
if (istype(mover,/obj/item) && mover.throwing)
|
||||||
var/obj/item/I = mover
|
var/obj/item/I = mover
|
||||||
if(istype(I, /obj/item/weapon/dummy) || istype(I, /obj/item/projectile))
|
if(istype(I, /obj/item/weapon/dummy) || istype(I, /obj/item/projectile))
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user