From 3fb065cd291fdbb29dee3a5f9b997e6f10f8de65 Mon Sep 17 00:00:00 2001 From: paprka Date: Tue, 16 Dec 2014 22:33:09 -0800 Subject: [PATCH 01/12] improves telebaton and police baton --- code/game/objects/items/weapons/melee/misc.dm | 118 ++++++------------ 1 file changed, 41 insertions(+), 77 deletions(-) diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index 0fbfa179960..84038d26ee9 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -25,83 +25,12 @@ icon_state = "baton" item_state = "classic_baton" slot_flags = SLOT_BELT - force = 10 - -/obj/item/weapon/melee/classic_baton/attack(mob/M, mob/living/user) - add_fingerprint(user) - if((CLUMSY in user.mutations) && prob(50)) - user << "You club yourself over the head!" - user.Weaken(3 * force) - if(ishuman(user)) - var/mob/living/carbon/human/H = user - H.apply_damage(2 * force, BRUTE, "head") - H.forcesay(hit_appends) - else - user.take_organ_damage(2 * force) - return - add_logs(user, M, "attacked", object="[src.name]") - - if(isrobot(M)) // Don't stun borgs, fix for issue #2436 - ..() - return - if(!isliving(M)) // Don't stun nonhuman things - return - - if(user.a_intent == "harm") - if(!..()) return - if(M.stuttering < 7 && !(HULK in M.mutations)) - M.stuttering = 7 - M.Stun(7) - M.Weaken(7) - M.visible_message("[user] has beaten [M] with [src]!", \ - "[user] has beaten [M] with [src]!") - else - playsound(loc, 'sound/effects/woodhit.ogg', 50, 1, -1) - M.Stun(7) - M.Weaken(7) - M.visible_message("[user] has stunned [M] with [src]!", \ - "[user] has stunned [M] with [src]!") - - if(ishuman(M)) - var/mob/living/carbon/human/H = M - H.forcesay(hit_appends) - - - -/obj/item/weapon/melee/telebaton - name = "telescopic baton" - desc = "A compact yet robust personal defense weapon. Can be concealed when folded." - icon = 'icons/obj/weapons.dmi' - icon_state = "telebaton_0" - item_state = "telebaton_0" - slot_flags = SLOT_BELT - w_class = 2 - force = 3 + force = 12 //9 hit crit + w_class = 3 var/cooldown = 0 - var/on = 0 + var/on = 1 -/obj/item/weapon/melee/telebaton/attack_self(mob/user as mob) - on = !on - if(on) - user << "You extend the baton." - icon_state = "telebaton_1" - item_state = "nullrod" - w_class = 4 //doesnt fit in backpack when its on for balance - force = 10 //seclite damage - attack_verb = list("smacked", "struck", "cracked", "beaten") - else - user << "You collapse the baton." - icon_state = "telebaton_0" - item_state = "telebaton_0" //no sprite in other words - slot_flags = SLOT_BELT - w_class = 2 - force = 3 //not so robust now - attack_verb = list("hit", "poked") - - playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, 1) - add_fingerprint(user) - -/obj/item/weapon/melee/telebaton/attack(mob/target as mob, mob/living/user as mob) +/obj/item/weapon/melee/classic_baton/attack(mob/target as mob, mob/living/user as mob) if(on) add_fingerprint(user) if((CLUMSY in user.mutations) && prob(50)) @@ -125,7 +54,7 @@ if(cooldown <= 0) playsound(get_turf(src), 'sound/effects/woodhit.ogg', 75, 1, -1) target.Weaken(3) - add_logs(user, target, "stunned", object="telescopic baton") + add_logs(user, target, "stunned", object="classic baton") src.add_fingerprint(user) target.visible_message("[user] has knocked down [target] with \the [src]!", \ "[user] has knocked down [target] with \the [src]!") @@ -138,4 +67,39 @@ cooldown = 0 return else - return ..() \ No newline at end of file + ..() + return + + + +/obj/item/weapon/melee/classic_baton/telescopic + name = "telescopic baton" + desc = "A compact yet robust personal defense weapon. Can be concealed when folded." + icon = 'icons/obj/weapons.dmi' + icon_state = "telebaton_0" + item_state = null + slot_flags = SLOT_BELT + w_class = 2 + force = 0 + on = 0 + +/obj/item/weapon/melee/classic_baton/telescopic/attack_self(mob/user as mob) + on = !on + if(on) + user << "You extend the baton." + icon_state = "telebaton_1" + item_state = "nullrod" + w_class = 4 //doesnt fit in backpack when its on for balance + force = 10 //stunbaton damage + attack_verb = list("smacked", "struck", "cracked", "beaten") + else + user << "You collapse the baton." + icon_state = "telebaton_0" + item_state = null //no sprite for concealment even when in hand + slot_flags = SLOT_BELT + w_class = 2 + force = 0 //not so robust now + attack_verb = list("hit", "poked") + + playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, 1) + add_fingerprint(user) \ No newline at end of file From 32f2028df10f90f2ab69551b71b513340691c671 Mon Sep 17 00:00:00 2001 From: paprka Date: Tue, 16 Dec 2014 22:38:51 -0800 Subject: [PATCH 02/12] Forgot to commit the locker changes --- code/game/jobs/job/captain.dm | 4 ++-- code/game/jobs/job/engineering.dm | 2 +- code/game/jobs/job/medical.dm | 2 +- code/game/jobs/job/science.dm | 2 +- code/game/jobs/job/security.dm | 2 +- code/game/machinery/bots/ed209bot.dm | 2 +- code/game/machinery/bots/secbot.dm | 2 +- code/game/objects/items/weapons/storage/belt.dm | 2 +- code/modules/clothing/suits/armor.dm | 2 +- code/modules/clothing/suits/labcoat.dm | 2 +- code/modules/clothing/suits/miscellaneous.dm | 8 ++++---- 11 files changed, 15 insertions(+), 15 deletions(-) diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index 360d10cd342..6eeded8c1ba 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -37,7 +37,7 @@ Captain H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/silver_ids(H), slot_l_hand) else H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/silver_ids(H.back), slot_in_backpack) - H.equip_to_slot_or_del(new /obj/item/weapon/melee/telebaton(H), slot_in_backpack) + H.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(H), slot_in_backpack) //Implant him var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) @@ -94,4 +94,4 @@ Head of Personnel H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H), slot_l_hand) else H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H.back), slot_in_backpack) - H.equip_to_slot_or_del(new /obj/item/weapon/melee/telebaton(H), slot_in_backpack) + H.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(H), slot_in_backpack) diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm index a65af4f68dc..4928177b76a 100644 --- a/code/game/jobs/job/engineering.dm +++ b/code/game/jobs/job/engineering.dm @@ -40,7 +40,7 @@ Chief Engineer //Equip telebaton if(H.backbag == 2 || H.backbag == 3) - H.equip_to_slot_or_del(new /obj/item/weapon/melee/telebaton(H), slot_in_backpack) + H.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(H), slot_in_backpack) /* Station Engineer diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index 3557547362b..5c2d1ecff74 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -36,7 +36,7 @@ Chief Medical Officer //Equip telebaton if(H.backbag == 2 || H.backbag == 3) - H.equip_to_slot_or_del(new /obj/item/weapon/melee/telebaton(H), slot_in_backpack) + H.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(H), slot_in_backpack) /* Medical Doctor diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index 90633512de7..99908da4248 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -38,7 +38,7 @@ Research Director //Equip telebaton if(H.backbag == 2 || H.backbag == 3) - H.equip_to_slot_or_del(new /obj/item/weapon/melee/telebaton(H), slot_in_backpack) + H.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(H), slot_in_backpack) /* Scientist diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index 4610ea3bafe..96ea8d8eacb 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -48,7 +48,7 @@ Head of Security H.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(H), slot_l_store) else H.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(H), slot_in_backpack) - H.equip_to_slot_or_del(new /obj/item/weapon/melee/telebaton(H), slot_in_backpack) + H.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(H), slot_in_backpack) var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) L.imp_in = H diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index b5de2fb95a7..499ba000eed 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -42,7 +42,7 @@ /obj/item/weapon/gun/energy/laser/bluetag,\ /obj/item/weapon/gun/energy/laser/redtag,\ /obj/item/weapon/gun/energy/laser/practice,\ - /obj/item/weapon/melee/telebaton,\ + /obj/item/weapon/melee/classic_baton/telescopic,\ /obj/item/weapon/gun/energy/kinetic_accelerator) diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index 51f7faec68e..b060fd85ab6 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -32,7 +32,7 @@ /obj/item/weapon/gun/energy/laser/bluetag,\ /obj/item/weapon/gun/energy/laser/redtag,\ /obj/item/weapon/gun/energy/laser/practice,\ - /obj/item/weapon/melee/telebaton,\ + /obj/item/weapon/melee/classic_baton/telescopic,\ /obj/item/weapon/gun/energy/kinetic_accelerator) diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 3124979681f..f95e9b011dd 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -121,7 +121,7 @@ /obj/item/weapon/reagent_containers/food/snacks/donut/normal, /obj/item/weapon/reagent_containers/food/snacks/donut/jelly, /obj/item/device/flashlight/seclite, - /obj/item/weapon/melee/telebaton + /obj/item/weapon/melee/classic_baton/telescopic ) /obj/item/weapon/storage/belt/security/New() diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 79eeb774dcc..657250935f1 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -1,5 +1,5 @@ /obj/item/clothing/suit/armor - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/telebaton) + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) body_parts_covered = CHEST cold_protection = CHEST|GROIN min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index 0b339fc5e7b..514f7b27a5e 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -5,7 +5,7 @@ item_state = "labcoat" blood_overlay_type = "coat" body_parts_covered = CHEST|ARMS - allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/telebaton) + allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0) var/open = 0 action_button_name = "Toggle Labcoat Buttons" diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index cd67552393a..e75d03cb4d8 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -253,24 +253,24 @@ name = "captain's winter coat" icon_state = "coatcaptain" armor = list(melee = 50, bullet = 30, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/telebaton) + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) /obj/item/clothing/suit/toggle/wintercoat/security name = "security winter coat" icon_state = "coatsecurity" armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/telebaton) + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) /obj/item/clothing/suit/toggle/wintercoat/medical name = "medical winter coat" icon_state = "coatmedical" - allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/telebaton) + allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0) /obj/item/clothing/suit/toggle/wintercoat/science name = "science winter coat" icon_state = "coatscience" - allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/telebaton) + allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0) /obj/item/clothing/suit/toggle/wintercoat/engineering From 4633ae65c7eba8398d5f3bd9a60499a502d00f46 Mon Sep 17 00:00:00 2001 From: paprka Date: Tue, 16 Dec 2014 23:18:26 -0800 Subject: [PATCH 03/12] telebaton fix for asteroid --- _maps/map_files/Asteroidstation/Asteroidstation.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/map_files/Asteroidstation/Asteroidstation.dmm b/_maps/map_files/Asteroidstation/Asteroidstation.dmm index 96338fdbc7d..6f4def8573f 100644 --- a/_maps/map_files/Asteroidstation/Asteroidstation.dmm +++ b/_maps/map_files/Asteroidstation/Asteroidstation.dmm @@ -4782,7 +4782,7 @@ "bNX" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/simulated/floor/wood,/area/library) "bNY" = (/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor/plating,/area/maintenance/asteroidstation/rd) "bNZ" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/simulated/floor/plating,/area/maintenance/asteroidstation/rd) -"bOa" = (/obj/structure/closet/body_bag,/obj/item/weapon/melee/telebaton,/turf/simulated/floor/plating,/area/maintenance/asteroidstation/rd) +"bOa" = (/obj/structure/closet/body_bag,/obj/item/weapon/melee/classic_baton/telescopic,/turf/simulated/floor/plating,/area/maintenance/asteroidstation/rd) "bOb" = (/obj/structure/closet/secure_closet/chemical,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/mine/explored) "bOc" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asteroidstation/rd) "bOd" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/camera{c_tag = "Research Atmospheric Control"},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/asteroidstation/rd) From 558f263732f60bfb45ad3d7595a459063c49f325 Mon Sep 17 00:00:00 2001 From: phil235 Date: Wed, 24 Dec 2014 20:45:47 +0100 Subject: [PATCH 04/12] Removed the ability of windows to be unanchored and ejected when low on health. --- code/game/objects/structures/window.dm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index d748bdd960d..d8e698559c2 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -263,10 +263,6 @@ if(I.damtype == BRUTE || I.damtype == BURN) user.changeNext_move(CLICK_CD_MELEE) hit(I.force) - if(health <= 7) - anchored = 0 - update_nearby_icons() - step(src, get_dir(user, src)) else playsound(loc, 'sound/effects/Glasshit.ogg', 75, 1) ..() From 69c22e99a9b206aec26e1072dc1adf165593c115 Mon Sep 17 00:00:00 2001 From: paprka Date: Fri, 26 Dec 2014 20:53:53 -0800 Subject: [PATCH 05/12] reverts disabler nerf --- code/modules/projectiles/projectile/beams.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index d9bba99275d..a09a0b42bbd 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -39,7 +39,7 @@ /obj/item/projectile/beam/disabler name = "disabler beam" icon_state = "omnilaser" - damage = 33 + damage = 34 damage_type = STAMINA eyeblur = 0 From ad188e2e4d713a240bc4bccd856dc9e31e5b90a3 Mon Sep 17 00:00:00 2001 From: paprka Date: Fri, 26 Dec 2014 21:00:13 -0800 Subject: [PATCH 06/12] additional buff --- code/modules/projectiles/projectile/beams.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index a09a0b42bbd..39270154289 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -39,7 +39,7 @@ /obj/item/projectile/beam/disabler name = "disabler beam" icon_state = "omnilaser" - damage = 34 + damage = 36 damage_type = STAMINA eyeblur = 0 From 33177a17ac06bce60f6f10b8eb84f42e506e8fc1 Mon Sep 17 00:00:00 2001 From: paprka Date: Fri, 26 Dec 2014 23:37:12 -0800 Subject: [PATCH 07/12] fixes stamina damage on projectile weapons --- code/modules/mob/living/damage_procs.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 7b15852969e..bb8386637b4 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -75,6 +75,7 @@ if(stutter) apply_effect(stutter, STUTTER, blocked) if(eyeblur) apply_effect(eyeblur, EYE_BLUR, blocked) if(drowsy) apply_effect(drowsy, DROWSY, blocked) - if(stamina) apply_effect(stamina, STAMINA, blocked) + if(stamina) apply_damage(stamina, STAMINA, null, blocked) if(jitter) apply_effect(jitter, JITTER, blocked) + CheckStamina() return 1 \ No newline at end of file From 5dedde8ea23a6c8ae1db5410f64296208a1a483b Mon Sep 17 00:00:00 2001 From: paprka Date: Sat, 27 Dec 2014 03:19:26 -0800 Subject: [PATCH 08/12] fixes c90 and the stam dam update issue --- code/modules/mob/living/damage_procs.dm | 1 - code/modules/projectiles/guns/projectile/automatic.dm | 8 ++++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index bb8386637b4..e426fd69967 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -77,5 +77,4 @@ if(drowsy) apply_effect(drowsy, DROWSY, blocked) if(stamina) apply_damage(stamina, STAMINA, null, blocked) if(jitter) apply_effect(jitter, JITTER, blocked) - CheckStamina() return 1 \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index b5f2c3033c1..3f18387f511 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -202,16 +202,20 @@ burst_size = initial(burst_size) fire_delay = initial(fire_delay) user << "You switch to [burst_size]-rnd burst." + update_icon() + return if(select == 1) select = 2 user << "You switch to grenades." + update_icon() + return if(select == 2) select = 0 burst_size = 1 fire_delay = 0 user << "You switch to semi-auto." - update_icon() - return + update_icon() + return /obj/item/weapon/gun/projectile/automatic/tommygun name = "tommy gun" From 3994ac3f486c29510081db661f5f1a341dc902c4 Mon Sep 17 00:00:00 2001 From: phil235 Date: Sat, 27 Dec 2014 22:41:13 +0100 Subject: [PATCH 09/12] Fixes hallucinated attackers not doing the attack animation. Fixes lack of attack animation, sound and attack cooldown when the human mob attacks the hallucinated attacker. Removes some commented code and some duplicated checks. Reorganized the hallucination procs a bit. --- code/modules/flufftext/Hallucination.dm | 146 ++++++------------- code/modules/mob/living/carbon/human/life.dm | 6 +- code/modules/mob/living/living.dm | 7 +- 3 files changed, 52 insertions(+), 107 deletions(-) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index f20b06ebcb6..652416808d3 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -20,7 +20,8 @@ mob/living/carbon/ var/hal_crit = 0 mob/living/carbon/proc/handle_hallucinations() - if(handling_hal) return + if(handling_hal) + return handling_hal = 1 while(hallucination > 20) sleep(rand(200,500)/(hallucination/25)) @@ -148,7 +149,6 @@ mob/living/carbon/proc/handle_hallucinations() src << sound('sound/AI/shuttledock.ogg') if(66 to 70) //Flashes of danger - //src << "Danger Flash" if(!halbody) var/list/possible_points = list() for(var/turf/simulated/floor/F in view(src,world.view)) @@ -162,8 +162,6 @@ mob/living/carbon/proc/handle_hallucinations() halbody = image('icons/mob/human.dmi',target,"husk_s",TURF_LAYER) if(4) halbody = image('icons/mob/alien.dmi',target,"alienother",TURF_LAYER) - // if(5) - // halbody = image('xcomalien.dmi',target,"chryssalid",TURF_LAYER) if(client) client.images += halbody spawn(rand(50,80)) //Only seen for a brief moment. @@ -171,55 +169,58 @@ mob/living/carbon/proc/handle_hallucinations() halbody = null if(71 to 72) //Fake death -// src.sleeping_willingly = 1 src.sleeping = 20 hal_crit = 1 hal_screwyhud = 1 spawn(rand(50,100)) -// src.sleeping_willingly = 0 src.sleeping = 0 hal_crit = 0 hal_screwyhud = 0 + if(73 to 75) + fake_attack() handling_hal = 0 +/mob/living/carbon/proc/fake_attack() +// var/list/possible_clones = new/list() + var/mob/living/carbon/human/clone = null + var/clone_weapon = null + for(var/mob/living/carbon/human/H in living_mob_list) + if(H.stat || H.lying) + continue +// possible_clones += H + clone = H + break //changed the code a bit. Less randomised, but less work to do. Should be ok, world.contents aren't stored in any particular order. -/*obj/machinery/proc/mockpanel(list/buttons,start_txt,end_txt,list/mid_txts) +// if(!possible_clones.len) return +// clone = pick(possible_clones) + if(!clone) + return - if(!mocktxt) + //var/obj/effect/fake_attacker/F = new/obj/effect/fake_attacker(outside_range(target)) + var/obj/effect/fake_attacker/F = new/obj/effect/fake_attacker(src.loc) + if(clone.l_hand) + if(!(locate(clone.l_hand) in non_fakeattack_weapons)) + clone_weapon = clone.l_hand.name + F.weap = clone.l_hand + else if (clone.r_hand) + if(!(locate(clone.r_hand) in non_fakeattack_weapons)) + clone_weapon = clone.r_hand.name + F.weap = clone.r_hand - mocktxt = "" + F.name = clone.name + F.my_target = src + F.weapon_name = clone_weapon + src.hallucinations += F - var/possible_txt = list("Launch Escape Pods","Self-Destruct Sequence","\[Swipe ID\]","De-Monkify",\ - "Reticulate Splines","Plasma","Open Valve","Lockdown","Nerf Airflow","Kill Traitor","Nihilism",\ - "OBJECTION!","Arrest Stephen Bowman","Engage Anti-Trenna Defenses","Increase Captain IQ","Retrieve Arms",\ - "Play Charades","Oxygen","Inject BeAcOs","Ninja Lizards","Limit Break","Build Sentry") + F.left = image(clone,dir = WEST) + F.right = image(clone,dir = EAST) + F.up = image(clone,dir = NORTH) + F.down = image(clone,dir = SOUTH) - if(mid_txts) - while(mid_txts.len) - var/mid_txt = pick(mid_txts) - mocktxt += mid_txt - mid_txts -= mid_txt + F.updateimage() - while(buttons.len) - - var/button = pick(buttons) - - var/button_txt = pick(possible_txt) - - mocktxt += "[button_txt]
" - - buttons -= button - possible_txt -= button_txt - - return start_txt + mocktxt + end_txt + "" - -proc/check_panel(mob/M) - if (istype(M, /mob/living/carbon/human) || istype(M, /mob/living/silicon/ai)) - if(M.hallucination < 15) - return 1 - return 0*/ /obj/effect/fake_attacker icon = null @@ -245,8 +246,11 @@ proc/check_panel(mob/M) var/health = 100 -/obj/effect/fake_attacker/attackby(var/obj/item/weapon/P as obj, mob/user as mob) +/obj/effect/fake_attacker/attackby(var/obj/item/weapon/P as obj, mob/living/user as mob) step_away(src,my_target,2) + user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation(src) + my_target << sound(pick('sound/weapons/genhit1.ogg', 'sound/weapons/genhit2.ogg', 'sound/weapons/genhit3.ogg')) my_target.visible_message("[my_target] flails around wildly.", \ "[my_target] has attacked [src]!") @@ -303,11 +307,13 @@ proc/check_panel(mob/M) updateimage() else if(prob(15)) + src.do_attack_animation(my_target) if(weapon_name) my_target << sound(pick('sound/weapons/genhit1.ogg', 'sound/weapons/genhit2.ogg', 'sound/weapons/genhit3.ogg')) my_target.show_message("[src.name] has attacked [my_target] with [weapon_name]!", 1) my_target.staminaloss += 30 - if(prob(20)) my_target.eye_blurry += 3 + if(prob(20)) + my_target.eye_blurry += 3 if(prob(33)) if(!locate(/obj/effect/overlay) in my_target.loc) fake_blood(my_target) @@ -326,7 +332,7 @@ proc/check_panel(mob/M) collapse = 1 updateimage() -/proc/fake_blood(var/mob/target) +/obj/effect/fake_attacker/proc/fake_blood(var/mob/target) var/obj/effect/overlay/O = new/obj/effect/overlay(target.loc) O.name = "blood" var/image/I = image('icons/effects/blood.dmi',O,"floor[rand(1,7)]",O.dir,1) @@ -350,65 +356,3 @@ var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/ite /obj/item/clothing/under/rank/captain, /obj/item/device/aicard,\ /obj/item/clothing/shoes/magboots, /obj/item/areaeditor/blueprints, /obj/item/weapon/disk/nuclear,\ /obj/item/clothing/suit/space/nasavoid, /obj/item/weapon/tank) - -/proc/fake_attack(var/mob/living/target) -// var/list/possible_clones = new/list() - var/mob/living/carbon/human/clone = null - var/clone_weapon = null - - for(var/mob/living/carbon/human/H in living_mob_list) - if(H.stat || H.lying) continue -// possible_clones += H - clone = H - break //changed the code a bit. Less randomised, but less work to do. Should be ok, world.contents aren't stored in any particular order. - -// if(!possible_clones.len) return -// clone = pick(possible_clones) - if(!clone) return - - //var/obj/effect/fake_attacker/F = new/obj/effect/fake_attacker(outside_range(target)) - var/obj/effect/fake_attacker/F = new/obj/effect/fake_attacker(target.loc) - if(clone.l_hand) - if(!(locate(clone.l_hand) in non_fakeattack_weapons)) - clone_weapon = clone.l_hand.name - F.weap = clone.l_hand - else if (clone.r_hand) - if(!(locate(clone.r_hand) in non_fakeattack_weapons)) - clone_weapon = clone.r_hand.name - F.weap = clone.r_hand - - F.name = clone.name - F.my_target = target - F.weapon_name = clone_weapon - target.hallucinations += F - - - F.left = image(clone,dir = WEST) - F.right = image(clone,dir = EAST) - F.up = image(clone,dir = NORTH) - F.down = image(clone,dir = SOUTH) - -// F.base = new /icon(clone.stand_icon) -// F.currentimage = new /image(clone) - -/* - - - - F.left = new /icon(clone.stand_icon,dir=WEST) - for(var/icon/i in clone.overlays) - F.left.Blend(i) - F.up = new /icon(clone.stand_icon,dir=NORTH) - for(var/icon/i in clone.overlays) - F.up.Blend(i) - F.down = new /icon(clone.stand_icon,dir=SOUTH) - for(var/icon/i in clone.overlays) - F.down.Blend(i) - F.right = new /icon(clone.stand_icon,dir=EAST) - for(var/icon/i in clone.overlays) - F.right.Blend(i) - - target << F.up - */ - - F.updateimage() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 47a9f6ff3c4..23b5250f81c 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -460,11 +460,7 @@ adjustOxyLoss(1)*/ if(hallucination) - if(hallucination >= 20) - if(prob(3)) - fake_attack(src) - if(!handling_hal) - spawn handle_hallucinations() //The not boring kind! + spawn handle_hallucinations() if(hallucination<=2) hallucination = 0 diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index b4d6f44b902..a11604791e7 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -769,7 +769,8 @@ gib() return -/mob/living/proc/do_attack_animation(atom/A) + +/atom/movable/proc/do_attack_animation(atom/A) var/pixel_x_diff = 0 var/pixel_y_diff = 0 var/direction = get_dir(src, A) @@ -796,4 +797,8 @@ pixel_y_diff = -8 animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, time = 2) animate(pixel_x = initial(pixel_x), pixel_y = initial(pixel_y), time = 2) + + +/mob/living/do_attack_animation(atom/A) + ..() floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure we restart the bouncing after the next movement. From 364ad9f87d06bdc3ef7a1f4238cc3124b240a194 Mon Sep 17 00:00:00 2001 From: paprka Date: Sun, 28 Dec 2014 18:43:01 -0800 Subject: [PATCH 10/12] removes asteroid changes --- _maps/map_files/Asteroidstation/Asteroidstation.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/map_files/Asteroidstation/Asteroidstation.dmm b/_maps/map_files/Asteroidstation/Asteroidstation.dmm index 6f4def8573f..96338fdbc7d 100644 --- a/_maps/map_files/Asteroidstation/Asteroidstation.dmm +++ b/_maps/map_files/Asteroidstation/Asteroidstation.dmm @@ -4782,7 +4782,7 @@ "bNX" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/simulated/floor/wood,/area/library) "bNY" = (/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor/plating,/area/maintenance/asteroidstation/rd) "bNZ" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/simulated/floor/plating,/area/maintenance/asteroidstation/rd) -"bOa" = (/obj/structure/closet/body_bag,/obj/item/weapon/melee/classic_baton/telescopic,/turf/simulated/floor/plating,/area/maintenance/asteroidstation/rd) +"bOa" = (/obj/structure/closet/body_bag,/obj/item/weapon/melee/telebaton,/turf/simulated/floor/plating,/area/maintenance/asteroidstation/rd) "bOb" = (/obj/structure/closet/secure_closet/chemical,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/mine/explored) "bOc" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asteroidstation/rd) "bOd" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/camera{c_tag = "Research Atmospheric Control"},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/asteroidstation/rd) From 152be974dca1a65696a4075f698084f665ca3296 Mon Sep 17 00:00:00 2001 From: paprka Date: Sun, 28 Dec 2014 18:53:44 -0800 Subject: [PATCH 11/12] reverts return change (returns return change?) --- code/game/objects/items/weapons/melee/misc.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index 84038d26ee9..5a988ca06b4 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -67,8 +67,7 @@ cooldown = 0 return else - ..() - return + return ..() From 1869e9d6aeda971c33542960618fc98eda507cd2 Mon Sep 17 00:00:00 2001 From: paprka Date: Sun, 28 Dec 2014 19:47:54 -0800 Subject: [PATCH 12/12] reverts c90r stuff --- code/modules/projectiles/guns/projectile/automatic.dm | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 3f18387f511..b5f2c3033c1 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -202,20 +202,16 @@ burst_size = initial(burst_size) fire_delay = initial(fire_delay) user << "You switch to [burst_size]-rnd burst." - update_icon() - return if(select == 1) select = 2 user << "You switch to grenades." - update_icon() - return if(select == 2) select = 0 burst_size = 1 fire_delay = 0 user << "You switch to semi-auto." - update_icon() - return + update_icon() + return /obj/item/weapon/gun/projectile/automatic/tommygun name = "tommy gun"