diff --git a/code/defines/obj.dm b/code/defines/obj.dm index d126190a41..e9029aabcc 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -3,6 +3,7 @@ var/m_amt = 0 // metal var/g_amt = 0 // glass var/w_amt = 0 // waster amounts + var/unacidable = 0 //universal "unacidabliness" var, here so you can use it in any obj. animate_movement = 2 var/throwforce = 0 proc @@ -39,6 +40,7 @@ anchored = 1 layer = 99 mouse_opacity = 0 + unacidable = 1 /obj/admins name = "admins" @@ -54,6 +56,7 @@ desc = "FUCK FUCK FUCK AAAHHH" icon_state = "bhole2" opacity = 0 + unacidable = 1 //well, if you got that close, you're fucked anyway, but... density = 0 anchored = 1 var/datum/effects/system/harmless_smoke_spread/smoke @@ -101,6 +104,7 @@ icon = 'stationobjs.dmi' icon_state = "begin" anchored = 1.0 + unacidable = 1 /obj/bullet name = "bullet" @@ -243,6 +247,7 @@ /obj/hud name = "hud" + unacidable = 1 var/mob/mymob = null var/list/adding = null var/list/other = null @@ -423,13 +428,13 @@ /obj/item/blueprints name = "station blueprints" - desc = "Blueprints of space station 13. It have stamp \"Classified\" and several coffee stains." + desc = "Blueprints of the station. There's stamp \"Classified\" and several coffee stains on it." icon = 'items.dmi' icon_state = "blueprints" /obj/item/apc_frame name = "APC frame" - desc = "Use for repairing or building APCs" + desc = "Used for repairing or building APCs" icon = 'apc_repair.dmi' icon_state = "apc_frame" flags = FPRINT | TABLEPASS| CONDUCT @@ -439,6 +444,7 @@ icon = 'screen1.dmi' icon_state = "x2" anchored = 1.0 + unacidable = 1 /obj/landmark/alterations name = "alterations" @@ -565,12 +571,14 @@ /obj/overlay name = "overlay" + unacidable = 1 /obj/portal name = "portal" icon = 'stationobjs.dmi' icon_state = "portal" density = 1 + unacidable = 1 var/failchance = 5 var/obj/item/target = null var/creator = null @@ -592,6 +600,7 @@ name = "screen" icon = 'screen1.dmi' layer = 20.0 + unacidable = 1 var/id = 0.0 var/obj/master diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index a7b6aee272..95d8417031 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -43,6 +43,7 @@ density = 1 opacity = 1 anchored = 1 + unacidable = 1 /obj/machinery/shieldwall name = "Shield" @@ -51,6 +52,7 @@ icon_state = "shieldwall" anchored = 1 density = 1 + unacidable = 1 var/active = 1 // var/power = 10 var/delay = 5 diff --git a/code/game/machinery/singularity.dm b/code/game/machinery/singularity.dm index c91d31a3fd..da23b4736f 100644 --- a/code/game/machinery/singularity.dm +++ b/code/game/machinery/singularity.dm @@ -53,6 +53,7 @@ However people seem to like it for some reason. icon_state = "Singularity" anchored = 1 density = 1 +// unacidable = 1 //oh the hilarity. var/active = 0 var/energy = 10 var/Dtime = null @@ -417,6 +418,7 @@ However people seem to like it for some reason. icon_state = "Contain_F" anchored = 1 density = 0 + unacidable = 1 var/active = 1 var/power = 10 var/delay = 5 diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 323e955668..589b8ffde3 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -11,6 +11,7 @@ density = 1 //Dense. To raise the heat. opacity = 1 ///opaque. Menacing. anchored = 1 //no pulling around. + unacidable = 1 //and no deleting hoomans inside layer = MOB_LAYER //icon draw layer var/can_move = 1 var/mob/living/carbon/human/occupant = null diff --git a/code/game/objects/alien/acid.dm b/code/game/objects/alien/acid.dm index eb7ae64bf3..ceeb9e2634 100644 --- a/code/game/objects/alien/acid.dm +++ b/code/game/objects/alien/acid.dm @@ -1,10 +1,15 @@ /obj/alien/acid/proc/tick() ticks += 1 + if(target.unacidable) + del(src) + return for(var/mob/O in hearers(src, null)) O.show_message("\green [src.target] sizzles and begins to melt under the bubbling mess of acid!", 1) if(prob(ticks*10)) for(var/mob/O in hearers(src, null)) O.show_message("\green [src.target] collapses under its own weight into a puddle of goop and undigested debris!", 1) +// if(target.occupant) //I tried to fix mechas-with-humans-getting-deleted. Made them unacidable for now. +// target.ex_act(1) del(target) del(src) return diff --git a/code/game/objects/alien/defines.dm b/code/game/objects/alien/defines.dm index abed6e6cc6..528e1e6c95 100644 --- a/code/game/objects/alien/defines.dm +++ b/code/game/objects/alien/defines.dm @@ -2,6 +2,7 @@ name = "alien thing" desc = "theres something alien about this" icon = 'alien.dmi' + unacidable = 1 //alien acid don't melts alien things... /obj/alien/egg desc = "It looks like a weird egg" @@ -38,6 +39,7 @@ density = 1 opacity = 1 anchored = 1 + unacidable = 0 //...except for resin "wall" since it can block way. var/health = 20 diff --git a/code/game/objects/lamarr.dm b/code/game/objects/lamarr.dm index 65aae69bd1..884f8cc327 100644 --- a/code/game/objects/lamarr.dm +++ b/code/game/objects/lamarr.dm @@ -5,6 +5,7 @@ desc = "A glass lab container for storing interesting creatures." density = 1 anchored = 1 + unacidable = 1 var/health = 30 var/occupied = 1 var/destroyed = 0 diff --git a/code/game/objects/livestock.dm b/code/game/objects/livestock.dm index 0456621e0d..a4eeb01572 100644 --- a/code/game/objects/livestock.dm +++ b/code/game/objects/livestock.dm @@ -7,6 +7,7 @@ layer = 5.0 density = 1 anchored = 0 + unacidable = 1 var/state = 0 //0 = null, 1 = attack, 2 = idle diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index 710ba852cf..3dbc8a833a 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -281,7 +281,7 @@ Also perhaps only queens can do that? O.show_message("You hear something crawling trough the ventilation pipes.") spawn(travel_time) - if(target_vent.welded)//the went can be welded while alien scrolled through the list or travelled. + if(target_vent.welded)//the vent can be welded while alien scrolled through the list or travelled. target_vent = vent_found //travel back. No additional time required. src << "\red The vent you were heading to appears to be welded." src.loc = target_vent.loc @@ -294,18 +294,21 @@ Also perhaps only queens can do that? set category = "Alien" if(src.stat) - src << "You must be concious to do this." + src << "You must be concious to do this" return + if(!istype(O, /obj)) return + + if(O.unacidable) //noize, don't fucking touch this and learn, why algorithms must be universal when possible (here it IS possible) + src << "You cannot spit acid over this." + return //also, if you want list of unacidables - search("unacidable = 1". all files), key_press(F3). + /*if(range(O, src) > 1) src << "That's too far away!" return*/ if(src.toxloss < 200) src << "You don't have enough plasma." - return - if(istype(O, /obj/hud)||istype(O, /obj/machinery/shield)||istype(O, /obj/machinery/shieldwall)||istype(O, /obj/machinery/the_singularity)||istype(O, /obj/portal)||istype(O, /obj/rune)||istype(O, /obj/marker)||istype(O, /obj/bhole)||istype(O, /obj/livestock)||istype(O, /obj/creature)||istype(O, /obj/alien)||istype(O, /obj/machinery/containment_field)) - src << "Can't destroy that object." //So you're not destroying black holes while you sizzle acid, dawg /N else src.toxloss -= 200 var/obj/alien/acid/A = new(O.loc)