From a7ac93dd2bd5780c104df1ae35b7d22b97f240e7 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 7 Oct 2017 22:50:38 -0500 Subject: [PATCH] Update structures.dm --- code/game/objects/structures.dm | 176 ++++++++++++-------------------- 1 file changed, 66 insertions(+), 110 deletions(-) diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 5504c1a8fc..85d124fefc 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -1,68 +1,25 @@ -/obj/structure - icon = 'icons/obj/structures.dmi' - pressure_resistance = 8 - max_integrity = 300 - var/climb_time = 20 - var/climb_stun = 20 - var/climbable = FALSE - var/mob/living/structureclimber - var/broken = 0 //similar to machinery's stat BROKEN - -/obj/structure/Initialize() - if (!armor) - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) - . = ..() - if(smooth) - queue_smooth(src) - queue_smooth_neighbors(src) - icon_state = "" +/obj/structure + icon = 'icons/obj/structures.dmi' + pressure_resistance = 8 + max_integrity = 300 + var/climb_time = 20 + var/climb_stun = 20 + var/climbable = FALSE + var/mob/living/structureclimber + var/broken = 0 //similar to machinery's stat BROKEN + +/obj/structure/Initialize() + if (!armor) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + . = ..() + if(smooth) + queue_smooth(src) + queue_smooth_neighbors(src) + icon_state = "" GLOB.cameranet.updateVisibility(src) - -/obj/structure/Destroy() + +/obj/structure/Destroy() GLOB.cameranet.updateVisibility(src) -<<<<<<< HEAD - if(smooth) - queue_smooth_neighbors(src) - return ..() - -/obj/structure/attack_hand(mob/user) - . = ..() - add_fingerprint(user) - if(structureclimber && structureclimber != user) - user.changeNext_move(CLICK_CD_MELEE) - user.do_attack_animation(src) - structureclimber.Knockdown(40) - structureclimber.visible_message("[structureclimber.name] has been knocked off the [src]", "You're knocked off the [src]!", "You see [structureclimber.name] get knocked off the [src]") - interact(user) - -/obj/structure/interact(mob/user) - ui_interact(user) - -/obj/structure/ui_act(action, params) - ..() - add_fingerprint(usr) - -/obj/structure/MouseDrop_T(atom/movable/O, mob/user) - . = ..() - if(!climbable) - return - if(user == O && iscarbon(O)) - if(user.canmove) - climb_structure(user) - return - if ((!( istype(O, /obj/item/weapon) ) || user.get_active_held_item() != O)) - return - if(iscyborg(user)) - return - if(!user.drop_item()) - return - if (O.loc != src.loc) - step(O, get_dir(O, src)) - return - -/obj/structure/proc/do_climb(atom/movable/A) - if(climbable) -======= if(smooth) queue_smooth_neighbors(src) return ..() @@ -104,52 +61,51 @@ /obj/structure/proc/do_climb(atom/movable/A) if(climbable) ->>>>>>> b6d349e... Remove drop_item, drop_item_v, put_in_hands_or_del (#31386) density = FALSE - . = step(A,get_dir(A,src.loc)) + . = step(A,get_dir(A,src.loc)) density = TRUE - -/obj/structure/proc/climb_structure(mob/living/user) - src.add_fingerprint(user) - user.visible_message("[user] starts climbing onto [src].", \ - "You start climbing onto [src]...") - var/adjusted_climb_time = climb_time - if(user.restrained()) //climbing takes twice as long when restrained. - adjusted_climb_time *= 2 - if(isalien(user)) - adjusted_climb_time *= 0.25 //aliens are terrifyingly fast - structureclimber = user - if(do_mob(user, user, adjusted_climb_time)) - if(src.loc) //Checking if structure has been destroyed - if(do_climb(user)) - user.visible_message("[user] climbs onto [src].", \ - "You climb onto [src].") - add_logs(user, src, "climbed onto") - if(climb_stun) - user.Stun(climb_stun) - . = 1 - else - to_chat(user, "You fail to climb onto [src].") - structureclimber = null - -/obj/structure/examine(mob/user) - ..() - if(!(resistance_flags & INDESTRUCTIBLE)) - if(resistance_flags & ON_FIRE) - to_chat(user, "It's on fire!") - if(broken) - to_chat(user, "It appears to be broken.") - var/examine_status = examine_status(user) - if(examine_status) - to_chat(user, examine_status) - -/obj/structure/proc/examine_status(mob/user) //An overridable proc, mostly for falsewalls. - var/healthpercent = (obj_integrity/max_integrity) * 100 - switch(healthpercent) - if(50 to 99) - return "It looks slightly damaged." - if(25 to 50) - return "It appears heavily damaged." - if(0 to 25) - if(!broken) - return "It's falling apart!" + +/obj/structure/proc/climb_structure(mob/living/user) + src.add_fingerprint(user) + user.visible_message("[user] starts climbing onto [src].", \ + "You start climbing onto [src]...") + var/adjusted_climb_time = climb_time + if(user.restrained()) //climbing takes twice as long when restrained. + adjusted_climb_time *= 2 + if(isalien(user)) + adjusted_climb_time *= 0.25 //aliens are terrifyingly fast + structureclimber = user + if(do_mob(user, user, adjusted_climb_time)) + if(src.loc) //Checking if structure has been destroyed + if(do_climb(user)) + user.visible_message("[user] climbs onto [src].", \ + "You climb onto [src].") + add_logs(user, src, "climbed onto") + if(climb_stun) + user.Stun(climb_stun) + . = 1 + else + to_chat(user, "You fail to climb onto [src].") + structureclimber = null + +/obj/structure/examine(mob/user) + ..() + if(!(resistance_flags & INDESTRUCTIBLE)) + if(resistance_flags & ON_FIRE) + to_chat(user, "It's on fire!") + if(broken) + to_chat(user, "It appears to be broken.") + var/examine_status = examine_status(user) + if(examine_status) + to_chat(user, examine_status) + +/obj/structure/proc/examine_status(mob/user) //An overridable proc, mostly for falsewalls. + var/healthpercent = (obj_integrity/max_integrity) * 100 + switch(healthpercent) + if(50 to 99) + return "It looks slightly damaged." + if(25 to 50) + return "It appears heavily damaged." + if(0 to 25) + if(!broken) + return "It's falling apart!"