diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 5cb5159b53..7e567f6de2 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -115,7 +115,25 @@ now_pushing = 1 if (ismob(AM)) var/mob/tmob = AM - if(tmob.a_intent == "help" && a_intent == "help" && tmob.canmove && canmove) // mutual brohugs all around! + +//BubbleWrap - Should stop you pushing a restrained person out of the way + + if(istype(tmob, /mob/living/carbon/human)) + + for(var/mob/M in range(tmob, 1)) + if( ((M.pulling == tmob && ( tmob.restrained() && !( M.restrained() ) && M.stat == 0)) || locate(/obj/item/weapon/grab, tmob.grabbed_by.len)) ) + if ( !(world.time % 5) ) + src << "\red [tmob] is restrained, you cannot push past" + now_pushing = 0 + return + if( tmob.pulling == M && ( M.restrained() && !( tmob.restrained() ) && tmob.stat == 0) ) + if ( !(world.time % 5) ) + src << "\red [tmob] is restraining [M], you cannot push past" + now_pushing = 0 + return + + //BubbleWrap: people in handcuffs are always switched around as if they were on 'help' intent to prevent a person being pulled from being seperated from their puller + if((tmob.a_intent == "help" || tmob.restrained()) && (a_intent == "help" || src.restrained()) && tmob.canmove && canmove) // mutual brohugs all around! var/turf/oldloc = loc loc = tmob.loc tmob.loc = oldloc diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 8486397727..57c73b0698 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -119,14 +119,39 @@ visible_message("\red [M] has pushed [src]!") return + var/talked = 0 // BubbleWrap + if(randn <= 60) - drop_item() + //BubbleWrap: Disarming breaks a pull + if ( pulling ) + visible_message("\red [M] has broken [src]'s grip on [pulling]!") + talked = 1 + pulling = null + + //BubbleWrap: Disarming also breaks a grab - this will also stop someone being choked, won't it? + var/obj/item/weapon/grab/lgrab = l_hand + var/obj/item/weapon/grab/rgrab = r_hand + if ( lgrab ) + if ( lgrab.affecting ) + visible_message("\red [M] has broken [src]'s grip on [lgrab.affecting]!") + talked = 1 + spawn(1) + del(lgrab) + if ( rgrab ) + if ( rgrab.affecting ) + visible_message("\red [M] has broken [src]'s grip on [rgrab.affecting]!") + talked = 1 + spawn(1) + del(rgrab) + //End BubbleWrap + + if( !talked ) //BubbleWrap + drop_item() + visible_message("\red [M] has disarmed [src]!") playsound(loc, 'thudswoosh.ogg', 50, 1, -1) - visible_message("\red [M] has disarmed [src]!") return + playsound(loc, 'punchmiss.ogg', 25, 1, -1) visible_message("\red [M] attempted to disarm [src]!") - return - - + return \ No newline at end of file diff --git a/html/changelog.html b/html/changelog.html index 3fc942d8dc..1cc35d7e3f 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -59,6 +59,15 @@ Stuff which is in development and not yet visible to players or just code related (ie. code improvements for expandability, etc.) should not be listed here. They should be listed in the changelog upon commit tho. Thanks. --> + +28 January 2012 + 27 January 2012
    @@ -81,8 +90,10 @@ oxygen tanks, and breath masks.
  • Lattice is now removed when you create plating or floor (credit Donkieyo).
  • Monkeys now take damage while in crit (credit Nodrak).
  • The warden now has his own jacket. (credit Shiftyeyesshady).
  • -
  • Spectacular new dice that will display the proper side when rolled!! (credit TedJustice)
  • -
+
  • Spectacular new dice that will display the proper side when rolled!! (credit TedJustice)
  • +
  • Spectacular new dice that will display the proper side when rolled!! (credit TedJustice)
  • + +
  • Borg RCDs can no longer take down R-walls. (headcoder orders)
  • 19 January 2012 diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index a7435baf4b..32acc89d76 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ