From d15016386fda6599fe5f44888da11c8681ceb547 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Fri, 23 Sep 2016 04:49:06 -0500 Subject: [PATCH] Doge calibrations (#54) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * sync (#3) * shuttle auto call * Merge /vore into /master (#39) * progress * Compile errors fixed No idea if it's test worthy tho as conflicts with race overhaul and narky removal. * Update admins.txt * efforts continue Fuck grab code, seriously * grab code is cancer * Execute the Narkism Do not hesitate. Show no mercy. * holy shit grab code is awful * have I bitched about grab code My bitching, let me show you it * código de agarre es una mierda No really it is * yeah I don't even know anymore. * Lolnope. Fuck grab code * I'm not even sure what to fix anymore * Self eating is not an acceptable fate * Taste the void, son. * My code doesn't pass it's own sanity check. Maybe it's a sign of things to come. * uncommented and notes * It Works and I Don't Know Why (#38) * shuttle auto call * it works and I don't know why * pixel issue resolved Damnifino. It seems to work. * fixes attack runtime * Sleeper UI refresh Also has tgui framework TBF --- code/citadel/dogborgstuff.dm | 10 +++- code/modules/mob/living/living.dm | 14 +++-- .../mob/living/silicon/robot/inventory.dm | 17 ++++++ .../modules/mob/living/silicon/robot/robot.dm | 5 ++ tgui/src/interfaces/dogborg_sleeper.ract | 56 +++++++++++++++++++ 5 files changed, 93 insertions(+), 9 deletions(-) create mode 100644 tgui/src/interfaces/dogborg_sleeper.ract diff --git a/code/citadel/dogborgstuff.dm b/code/citadel/dogborgstuff.dm index f7a4f9bccb..8fb3916132 100644 --- a/code/citadel/dogborgstuff.dm +++ b/code/citadel/dogborgstuff.dm @@ -286,7 +286,6 @@ wielded = 1 /obj/item/weapon/twohanded/shockpaddles/hound/attack(mob/M, mob/user) - ...() var/mob/living/silicon/robot.R = user if(R.cell.charge < 1000) user.visible_message("You don't have enough charge for this operation!") @@ -441,16 +440,19 @@ popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) popup.set_content(dat) popup.open() + return /obj/item/weapon/dogborg/sleeper/Topic(href, href_list) if(..() || usr == patient) return usr.set_machine(src) if(href_list["refresh"]) - updateUsrDialog() + src.updateUsrDialog() + sleeperUI(usr) return if(href_list["eject"]) go_out() + sleeperUI(usr) return if(patient && patient.stat != DEAD) if(href_list["inject"] == "epinephrine" || patient.health > min_health) @@ -459,7 +461,9 @@ usr << "ERROR: Subject is not in stable condition for auto-injection." else usr << "ERROR: Subject cannot metabolise chemicals." - updateUsrDialog() + src.updateUsrDialog() + sleeperUI(usr) //Needs a callback to boop the page to refresh. + return /obj/item/weapon/dogborg/sleeper/proc/inject_chem(mob/user, chem) if(patient && patient.reagents) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 4c53739a0e..0e52ed64e2 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -808,12 +808,14 @@ Sorry Giacom. Please don't be mad :( adjust_fire_stacks(1) IgniteMob() -/atom/movable/proc/do_attack_animation(atom/A, end_pixel_y) +/atom/movable/proc/do_attack_animation(atom/A, final_pixel_y, final_pixel_x) var/pixel_x_diff = 0 var/pixel_y_diff = 0 - var/final_pixel_y = initial(pixel_y) - if(end_pixel_y) - final_pixel_y = end_pixel_y + if(!final_pixel_y) + final_pixel_y = initial(pixel_y) + + if(!final_pixel_x) + final_pixel_x = initial(pixel_x) //lol copypasta var/direction = get_dir(src, A) if(direction & NORTH) @@ -827,8 +829,8 @@ Sorry Giacom. Please don't be mad :( pixel_x_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 = final_pixel_y, time = 2) - + //animate(pixel_x = initial(pixel_x), pixel_y = final_pixel_y, time = 2) + animate(pixel_x = pixel_x - pixel_x_diff, pixel_y = final_pixel_y, time = 2) //Why reset when you can just reverse? 99% less shit-breaking. /mob/living/do_attack_animation(atom/A) var/final_pixel_y = get_standard_pixel_y_offset(lying) diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm index e0ef270f5a..8d1b662080 100644 --- a/code/modules/mob/living/silicon/robot/inventory.dm +++ b/code/modules/mob/living/silicon/robot/inventory.dm @@ -19,6 +19,16 @@ else if(istype(O, /obj/item/weapon/storage/bag/tray/)) var/obj/item/weapon/storage/bag/tray/T = O T.do_quick_empty() + else if(istype(O, /obj/item/weapon/storage/bag/borgdelivery/)) + var/obj/item/weapon/storage/bag/borgdelivery/T = O + T.do_quick_empty() + else if(istype(O,/obj/item/weapon/gun/energy/laser/cyborg)) + laser = 0 + update_icons() + else if(istype(O,/obj/item/weapon/gun/energy/disabler/cyborg)) + disabler = 0 + update_icons() + if(client) client.screen -= O contents -= O @@ -36,6 +46,7 @@ else if(module_state_3 == O) module_state_3 = null inv3.icon_state = "inv3" + hud_used.update_robot_modules_display() return 1 @@ -45,6 +56,12 @@ if(activated(O)) src << "Already activated" return + if(istype(O,/obj/item/weapon/gun/energy/laser/cyborg)) + laser = 1 + update_icons() + if(istype(O,/obj/item/weapon/gun/energy/disabler/cyborg)) + disabler = 1 + update_icons() if(!module_state_1) O.mouse_opacity = initial(O.mouse_opacity) module_state_1 = O diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index e91ed2d529..c70a539e40 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -899,6 +899,11 @@ update_fire() + if(laser == 1) + overlays += "laser" + if(disabler == 1) + overlays += "disabler" + /mob/living/silicon/robot/proc/installed_modules() if(!module) pick_module() diff --git a/tgui/src/interfaces/dogborg_sleeper.ract b/tgui/src/interfaces/dogborg_sleeper.ract new file mode 100644 index 0000000000..46da372198 --- /dev/null +++ b/tgui/src/interfaces/dogborg_sleeper.ract @@ -0,0 +1,56 @@ + + + + + {{data.occupant.name ? data.occupant.name : "No Occupant"}} + + {{#if data.occupied}} + + {{data.occupant.stat == 0 ? "Conscious" : data.occupant.stat == 1 ? "Unconcious" : "Dead"}} + + + {{Math.round(adata.occupant.health)}} + + {{#each [{label: "Brute", type: "bruteLoss"}, {label: "Respiratory", type: "oxyLoss"}, {label: "Toxin", type: "toxLoss"}, {label: "Burn", type: "fireLoss"}]}} + + {{Math.round(adata.occupant[type])}} + + {{/each}} + + {{data.occupant.cloneLoss ? "Damaged" : "Healthy"}} + + + {{data.occupant.brainLoss ? "Abnormal" : "Healthy"}} + + + {{#each adata.occupant.reagents}} + {{Math.fixed(volume, 1)}} units of {{name}}
+ {{else}} + Pure + {{/each}} +
+ {{/if}} +
+ + + Eject + + + {{#each data.chems}} + {{name}}
+ {{/each}} +
+