From cbfaa81771fefcf088789dc01bb43e2a33fb7dac Mon Sep 17 00:00:00 2001 From: "petethegoat@gmail.com" Date: Tue, 23 Oct 2012 14:23:46 +0000 Subject: [PATCH] Fixed up grilles a bit. They're still kinda bad, but eh. Fixed a few mistakes from r4936. Added static.dmi for Giacom. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4942 316c924e-a436-60f5-8080-3fe189b3f50e --- code/game/machinery/doors/windowdoor.dm | 4 +- code/game/mecha/mecha.dm | 2 +- code/game/objects/structures/grille.dm | 205 +++++++++++------------- icons/misc/static.dmi | Bin 0 -> 5661 bytes 4 files changed, 101 insertions(+), 110 deletions(-) create mode 100644 icons/misc/static.dmi diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 4daea61635..7ee56066db 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -195,8 +195,8 @@ spark_system.start() playsound(src.loc, "sparks", 50, 1) playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1) - visible_message("\blue The glass door was sliced open by []!", user) - flick(text("[]spark", src.base_state), src) + visible_message("\blue The glass door was sliced open by [user]!") + flick("[src.base_state]spark", src) sleep(6) open() return 1 diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index efff7ba681..fc61c7ea01 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -465,7 +465,7 @@ src.log_append_to_last("Armor saved.") playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1, -1) src.occupant_message("\blue The [user]'s attack is stopped by the armor.") - visible_message("\blue The [user] rebounds off [src.name]'s armor!", 1) + visible_message("\blue The [user] rebounds off [src.name]'s armor!") user.attack_log += text("\[[time_stamp()]\] attacked [src.name]") return diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 425fd06558..5996319945 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -1,192 +1,183 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 - /obj/structure/grille - desc = "A piece of metal with evenly spaced gridlike holes in it. Blocks large object but lets small items, gas, or energy beams through. Strangely enough these grilles also lets meteors pass through them, whether they be small or huge station breaking death stones." + desc = "A flimsy lattice of metal rods, with screws to secure it to the floor." name = "grille" icon = 'icons/obj/structures.dmi' icon_state = "grille" density = 1 - anchored = 1.0 + anchored = 1 flags = FPRINT | CONDUCT pressure_resistance = 5*ONE_ATMOSPHERE layer = 2.9 + explosion_resistance = 5 var/health = 10 var/destroyed = 0 - explosion_resistance = 5 + /obj/structure/grille/ex_act(severity) - switch(severity) - if(1.0) - del(src) - return - if(2.0) - if(prob(50)) - del(src) - return - if(3.0) - if(prob(25)) - src.health -= 11 - healthcheck() - return + del(src) /obj/structure/grille/blob_act() del(src) - return + +/obj/structure/grille/meteorhit(var/obj/M) + del(src) + /obj/structure/grille/Bumped(atom/user) if(ismob(user)) shock(user, 70) -/obj/structure/grille/meteorhit(var/obj/M) - if (M.icon_state == "flaming") - src.health -= 2 - healthcheck() - return - - -/obj/structure/grille/attack_hand(var/mob/user) - playsound(src.loc, 'sound/effects/grillehit.ogg', 80, 1) - user.visible_message("[user.name] kicks the [src.name].", \ - "You kick the [src.name].", \ - "You hear a noise") - if((HULK in usr.mutations) || (SUPRSTR in usr.augmentations)) - src.health -= 5 - else if(!shock(user, 70)) - src.health -= 3 - healthcheck() - return - - -/obj/structure/grille/attack_paw(var/mob/user) +/obj/structure/grille/attack_paw(mob/user as mob) attack_hand(user) +/obj/structure/grille/attack_hand(mob/user as mob) + playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) + user.visible_message("[user] kicks [src].", \ + "You kick [src].", \ + "You hear twisting metal.") -/obj/structure/grille/attack_alien(var/mob/user) - if (istype(usr, /mob/living/carbon/alien/larva)) return - playsound(src.loc, 'sound/effects/grillehit.ogg', 80, 1) - user.visible_message("[user.name] mangles the [src.name].", \ - "You mangle the [src.name].", \ - "You hear a noise") - if(!shock(usr, 70)) - src.health -= 5 + if(shock(user, 70)) + return + if((HULK in user.mutations) || (SUPRSTR in user.augmentations)) + health -= 5 + else + health -= 3 + healthcheck() + +/obj/structure/grille/attack_alien(mob/user as mob) + if(istype(user, /mob/living/carbon/alien/larva)) return + + playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) + user.visible_message("[user] mangles [src].", \ + "You mangle [src].", \ + "You hear twisting metal.") + + if(!shock(user, 70)) + health -= 5 healthcheck() return -/obj/structure/grille/attack_metroid(var/mob/user) - if(!istype(usr, /mob/living/carbon/metroid/adult)) return - playsound(src.loc, 'sound/effects/grillehit.ogg', 80, 1) - user.visible_message("[user.name] smashes against the [src.name].", \ - "You smash against the [src.name].", \ - "You hear a noise") - src.health -= rand(2,3) +/obj/structure/grille/attack_metroid(mob/user as mob) + if(!istype(user, /mob/living/carbon/metroid/adult)) return + + playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) + user.visible_message("[user] smashes against [src].", \ + "You smash against [src].", \ + "You hear twisting metal.") + + health -= rand(2,3) healthcheck() return /obj/structure/grille/attack_animal(var/mob/living/simple_animal/M as mob) if(M.melee_damage_upper == 0) return - playsound(src.loc, 'sound/effects/grillehit.ogg', 80, 1) - M.visible_message("[M.name] smashes against the [src.name].", \ - "You smash against the [src.name].", \ - "You hear a noise") - src.health -= M.melee_damage_upper + + playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) + M.visible_message("[M] smashes against [src].", \ + "You smash against [src].", \ + "You hear twisting metal.") + + health -= M.melee_damage_upper healthcheck() return + /obj/structure/grille/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if(air_group || (height==0)) return 1 if(istype(mover) && mover.checkpass(PASSGRILLE)) return 1 else - if (istype(mover, /obj/item/projectile)) + if(istype(mover, /obj/item/projectile)) return prob(30) else - return !src.density + return !density -/obj/structure/grille/attackby(obj/item/weapon/W, mob/user) +/obj/structure/grille/attackby(obj/item/weapon/W as obj, mob/user as mob) if(iswirecutter(W)) if(!shock(user, 100)) - playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) - src.health = 0 - if(!destroyed) - src.health = -100 - else if ((isscrewdriver(W)) && (istype(src.loc, /turf/simulated) || src.anchored)) + playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1) + new /obj/item/stack/rods(loc) + del(src) + else if((isscrewdriver(W)) && (istype(loc, /turf/simulated) || anchored)) if(!shock(user, 90)) - playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) - src.anchored = !( src.anchored ) - user << (src.anchored ? "You have fastened the grille to the floor." : "You have unfastened the grill.") - for(var/mob/O in oviewers()) - O << text("\red [user] [src.anchored ? "fastens" : "unfastens"] the grille.") + playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1) + anchored = !anchored + user.visible_message("[user] [anchored ? "fastens" : "unfastens"] the grille.", \ + "You have [anchored ? "fastened the grille to" : "unfastened the grill from"] the floor.") return + +//window placing begin else if( istype(W,/obj/item/stack/sheet/rglass) || istype(W,/obj/item/stack/sheet/glass) ) var/dir_to_set = 1 - if(src.loc == usr.loc) - dir_to_set = usr.dir + if(loc == user.loc) + dir_to_set = user.dir else - if( ( src.x == usr.x ) || (src.y == usr.y) ) //Only supposed to work for cardinal directions. - if( src.x == usr.x ) - if( src.y > usr.y ) + if( ( x == user.x ) || (y == user.y) ) //Only supposed to work for cardinal directions. + if( x == user.x ) + if( y > user.y ) dir_to_set = 2 else dir_to_set = 1 - else if( src.y == usr.y ) - if( src.x > usr.x ) + else if( y == user.y ) + if( x > user.x ) dir_to_set = 8 else dir_to_set = 4 else - usr << "\red You can't reach there.." + user << "You can't reach." return //Only works for cardinal direcitons, diagonals aren't supposed to work like this. - for(var/obj/structure/window/WINDOW in src.loc) + for(var/obj/structure/window/WINDOW in loc) if(WINDOW.dir == dir_to_set) - usr << "\red There is already a window facing this way there." + user << "There is already a window facing this way there." return - usr << "\blue You start placing the window" + user << "You start placing the window." if(do_after(user,20)) if(!src) return //Grille destroyed while waiting - for(var/obj/structure/window/WINDOW in src.loc) + for(var/obj/structure/window/WINDOW in loc) if(WINDOW.dir == dir_to_set)//checking this for a 2nd time to check if a window was made while we were waiting. - usr << "\red There is already a window facing this way there." + user << "There is already a window facing this way there." return var/obj/structure/window/WD if(istype(W,/obj/item/stack/sheet/rglass)) - WD = new/obj/structure/window(src.loc,1) //reinforced window + WD = new/obj/structure/window(loc,1) //reinforced window else - WD = new/obj/structure/window(src.loc,0) //normal window + WD = new/obj/structure/window(loc,0) //normal window WD.dir = dir_to_set WD.ini_dir = dir_to_set WD.anchored = 0 WD.state = 0 var/obj/item/stack/ST = W ST.use(1) - usr << "\blue You place the [WD] on the [src]" + user << "You place the [WD] on [src]." return +//window placing end + else if(istype(W, /obj/item/weapon/shard)) - src.health -= W.force * 0.1 + health -= W.force * 0.1 else if(!shock(user, 70)) - playsound(src.loc, 'sound/effects/grillehit.ogg', 80, 1) + playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) switch(W.damtype) if("fire") - src.health -= W.force + health -= W.force if("brute") - src.health -= W.force * 0.1 - src.healthcheck() + health -= W.force * 0.1 + healthcheck() ..() return /obj/structure/grille/proc/healthcheck() - if (src.health <= 0) - if (!( src.destroyed )) - src.icon_state = "brokengrille" - src.density = 0 - src.destroyed = 1 - new /obj/item/stack/rods( src.loc ) + if(health <= 0) + if(!destroyed) + icon_state = "brokengrille" + density = 0 + destroyed = 1 + new /obj/item/stack/rods(loc) else - if (src.health <= -10.0) - new /obj/item/stack/rods( src.loc ) - //SN src = null + if(health <= -6) + new /obj/item/stack/rods(loc) del(src) return return @@ -194,17 +185,17 @@ // shock user with probability prb (if all connections & power are working) // returns 1 if shocked, 0 otherwise -/obj/structure/grille/proc/shock(mob/user, prb) +/obj/structure/grille/proc/shock(mob/user as mob, prb) if(!anchored || destroyed) // anchored/destroyed grilles are never connected return 0 if(!prob(prb)) return 0 - if(!in_range(src, usr))//To prevent TK and mech users from getting shocked + if(!in_range(src, user))//To prevent TK and mech users from getting shocked return 0 var/turf/T = get_turf(src) var/obj/structure/cable/C = T.get_cable_node() if(C) - if (electrocute_mob(user, C, src)) + if(electrocute_mob(user, C, src)) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() @@ -216,6 +207,6 @@ /obj/structure/grille/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(!destroyed) if(exposed_temperature > T0C + 1500) - src.health -= 1 + health -= 1 healthcheck() ..() \ No newline at end of file diff --git a/icons/misc/static.dmi b/icons/misc/static.dmi new file mode 100644 index 0000000000000000000000000000000000000000..ae9b6f401aa97189980f073ee1490e402d5ff898 GIT binary patch literal 5661 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