From e2082e266e0f5781dd1e7bd208e3ec398cb01f28 Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Mon, 15 Dec 2014 06:56:06 -0800 Subject: [PATCH 1/5] Major spacepod overhaul. Allow's for two people per spacepod. Makes prisoner transport viable via click-drag and new 'lock secondary door' option. --- code/game/vehicles/spacepods/spacepod.dm | 376 +++++++++++++++++------ 1 file changed, 289 insertions(+), 87 deletions(-) diff --git a/code/game/vehicles/spacepods/spacepod.dm b/code/game/vehicles/spacepods/spacepod.dm index e41bfee03fd..ddfc38c7eb7 100644 --- a/code/game/vehicles/spacepods/spacepod.dm +++ b/code/game/vehicles/spacepods/spacepod.dm @@ -12,6 +12,7 @@ layer = 3.9 infra_luminosity = 15 var/mob/living/carbon/occupant + var/mob/living/carbon/occupant2 //two seaters var/datum/spacepod/equipment/equipment_system var/obj/item/weapon/cell/high/battery var/datum/gas_mixture/cabin_air @@ -27,6 +28,7 @@ var/health = 100 var/lights = 0 var/lights_power = 6 + var/allow2eject = 1 /obj/spacepod/New() . = ..() @@ -77,12 +79,16 @@ S.channel = 0 //Any channel S.volume = 50 occupant << S + if(occupant2) + occupant2 << S if(occupant && oldhealth > health && !health) var/sound/S = sound('sound/effects/engine_alert1.ogg') S.wait = 0 S.channel = 0 S.volume = 50 occupant << S + if(occupant2) + occupant2 << S if(!health) spawn(0) if(occupant) @@ -90,6 +96,8 @@ for(var/i = 10, i >= 0; --i) if(occupant) occupant << "[i]" + if(occupant2) + occupant2 << "[i]" if(i == 0) explosion(loc, 2, 4, 8) sleep(10) @@ -100,10 +108,15 @@ switch(severity) if(1) var/mob/living/carbon/human/H = occupant + var/mob/living/carbon/human/H2 = occupant2 if(H) H.loc = get_turf(src) H.ex_act(severity + 1) H << "You are forcefully thrown from \the [src]!" + if(H2) + H2.loc = get_turf(src) + H2.ex_act(severity + 1) + H2 << "You are forcefully thrown from \the [src]!" del(ion_trail) del(src) if(2) @@ -298,26 +311,59 @@ /obj/spacepod/proc/moved_inside(var/mob/living/carbon/human/H as mob) if(H && H.client && H in range(1)) - H.reset_view(src) - /* - H.client.perspective = EYE_PERSPECTIVE - H.client.eye = src - */ - H.stop_pulling() - H.forceMove(src) - src.occupant = H - src.add_fingerprint(H) - src.forceMove(src.loc) - //dir = dir_in - playsound(src, 'sound/machines/windowdoor.ogg', 50, 1) - return 1 + if(src.occupant) + H.reset_view(src) + /* + H.client.perspective = EYE_PERSPECTIVE + H.client.eye = src + */ + H.stop_pulling() + H.forceMove(src) + src.occupant2 = H + src.add_fingerprint(H) + src.forceMove(src.loc) + //dir = dir_in + playsound(src, 'sound/machines/windowdoor.ogg', 50, 1) + return 1 + + else + H.reset_view(src) + /* + H.client.perspective = EYE_PERSPECTIVE + H.client.eye = src + */ + H.stop_pulling() + H.forceMove(src) + src.occupant = H + src.add_fingerprint(H) + src.forceMove(src.loc) + //dir = dir_in + playsound(src, 'sound/machines/windowdoor.ogg', 50, 1) + return 1 else return 0 +/obj/spacepod/proc/moved_other_inside(var/mob/living/carbon/human/H as mob) + H.reset_view(src) + H.stop_pulling() + H.forceMove(src) + src.occupant2 = H + src.forceMove(src.loc) + playsound(src, 'sound/machines/windowdoor.ogg', 50, 1) + return 1 + + + /obj/spacepod/MouseDrop_T(mob/M as mob, mob/user as mob) if(M != user) - return - move_inside(M, user) + user << "You start putting [M.name] into the pod's second seat." + if(enter_after(40,usr)) + moved_other_inside(M) + else + usr << "You stop moving [M.name] into the spacepod." + else + move_inside(M, user) + /obj/spacepod/verb/move_inside() set category = "Object" @@ -329,7 +375,13 @@ if (usr.stat || !ishuman(usr)) return if (src.occupant) - usr << "\blue The [src.name] is already occupied!" + usr << "\blue You starts climbing into the secondary seat." + visible_message("\blue [usr] starts to climb into [src.name]") + if(enter_after(40,usr)) + moved_inside(usr) + + else + usr << "You stop entering the spacepod." return /* if (usr.abiotic()) @@ -359,53 +411,162 @@ set src = usr.loc if(usr != src.occupant) + if(src.occupant2) + if(usr != src.occupant2) + return + else + if(src.allow2eject) + inertia_dir = 0 // engage reverse thruster and power down pod + src.occupant2.loc = src.loc + src.occupant2 = null + usr << "You climb out of the pod" + else + usr << "The secondary door is locked." + return + else + return + else + inertia_dir = 0 // engage reverse thruster and power down pod + src.occupant.loc = src.loc + src.occupant = null + usr << "You climb out of the pod" return - inertia_dir = 0 // engage reverse thruster and power down pod - src.occupant.loc = src.loc - src.occupant = null - usr << "You climb out of the pod" - return + +/obj/spacepod/verb/exit_pod2() + if(!src.occupant2) + set hidden = 1 + return + else + set name = "Eject Secondary Seat" + set category = "Spacepod" + set src = usr.loc + set hidden = 0 + + if(usr.ckey == src.occupant2.ckey) + usr << "Use 'Exit Pod'" + return + else + usr << "You eject [src.occupant2.name]." + src.occupant2.visible_message("You were ejected from the pod!") + inertia_dir = 0 // engage reverse thruster and power down pod + src.occupant2.loc = src.loc + src.occupant2 = null + + +/obj/spacepod/verb/locksecondseat() + if(!src.occupant2) + usr << "No point locking that door. " + return + else + set name = "Lock Second Seat" + set category = "Spacepod" + set src in oview(1) + + if(usr.ckey == src.occupant2.ckey) + if(!allow2eject) + usr << "You can't unlock the door from your seat. " + return + else + usr << "You can't lock the door from your seat. " + return + else + if(src.allow2eject) + src.allow2eject = 0 + usr << "You lock the secondary door." + else + src.allow2eject = 1 + usr << "You unlock the secondary door." /obj/spacepod/verb/toggleDoors() - set name = "Toggle Nearby Pod Doors" - set category = "Spacepod" - set src = usr.loc + if(src.occupant2) + if(usr.ckey != src.occupant2.ckey) + set name = "Toggle Nearby Pod Doors" + set category = "Spacepod" + set src = usr.loc - for(var/obj/machinery/door/poddoor/P in oview(3,src)) - if(istype(P, /obj/machinery/door/poddoor/three_tile_hor) || istype(P, /obj/machinery/door/poddoor/three_tile_ver) || istype(P, /obj/machinery/door/poddoor/four_tile_hor) || istype(P, /obj/machinery/door/poddoor/four_tile_ver)) - var/mob/living/carbon/human/L = usr - if(P.check_access(L.get_active_hand()) || P.check_access(L.wear_id)) - if(P.density) - P.open() - return 1 - else - P.close() - return 1 - usr << "Access denied." + for(var/obj/machinery/door/poddoor/P in oview(3,src)) + if(istype(P, /obj/machinery/door/poddoor/three_tile_hor) || istype(P, /obj/machinery/door/poddoor/three_tile_ver) || istype(P, /obj/machinery/door/poddoor/four_tile_hor) || istype(P, /obj/machinery/door/poddoor/four_tile_ver)) + var/mob/living/carbon/human/L = usr + if(P.check_access(L.get_active_hand()) || P.check_access(L.wear_id)) + if(P.density) + P.open() + return 1 + else + P.close() + return 1 + usr << "Access denied." + return + usr << "You are not close to any pod doors." return - usr << "You are not close to any pod doors." - return + else + return + else + set name = "Toggle Nearby Pod Doors" + set category = "Spacepod" + set src = usr.loc + + for(var/obj/machinery/door/poddoor/P in oview(3,src)) + if(istype(P, /obj/machinery/door/poddoor/three_tile_hor) || istype(P, /obj/machinery/door/poddoor/three_tile_ver) || istype(P, /obj/machinery/door/poddoor/four_tile_hor) || istype(P, /obj/machinery/door/poddoor/four_tile_ver)) + var/mob/living/carbon/human/L = usr + if(P.check_access(L.get_active_hand()) || P.check_access(L.wear_id)) + if(P.density) + P.open() + return 1 + else + P.close() + return 1 + usr << "Access denied." + return + usr << "You are not close to any pod doors." + return /obj/spacepod/verb/fireWeapon() - set name = "Fire Pod Weapons" - set desc = "Fire the weapons." - set category = "Spacepod" - set src = usr.loc - equipment_system.weapon_system.fire_weapons() + if(src.occupant2) + if(usr.ckey != src.occupant2.ckey) + set name = "Fire Pod Weapons" + set desc = "Fire the weapons." + set category = "Spacepod" + set src = usr.loc + equipment_system.weapon_system.fire_weapons() + else + return + else + set name = "Fire Pod Weapons" + set desc = "Fire the weapons." + set category = "Spacepod" + set src = usr.loc + equipment_system.weapon_system.fire_weapons() obj/spacepod/verb/toggleLights() - set name = "Toggle Lights" - set category = "Spacepod" - set src = usr.loc - if (usr != occupant) - return - lights = !lights - if(lights) - SetLuminosity(luminosity + lights_power) + if(src.occupant2) + if(usr.ckey != src.occupant2.ckey) + set name = "Toggle Lights" + set category = "Spacepod" + set src = usr.loc + if (usr != occupant) + return + lights = !lights + if(lights) + SetLuminosity(luminosity + lights_power) + else + SetLuminosity(luminosity - lights_power) + occupant << "Toggled lights [lights?"on":"off"]." + return + else + return else - SetLuminosity(luminosity - lights_power) - occupant << "Toggled lights [lights?"on":"off"]." - return + set name = "Toggle Lights" + set category = "Spacepod" + set src = usr.loc + if (usr != occupant) + return + lights = !lights + if(lights) + SetLuminosity(luminosity + lights_power) + else + SetLuminosity(luminosity - lights_power) + occupant << "Toggled lights [lights?"on":"off"]." + return /obj/spacepod/proc/enter_after(delay as num, var/mob/user as mob, var/numticks = 5) var/delayfraction = delay/numticks @@ -480,41 +641,82 @@ obj/spacepod/verb/toggleLights() return 1 /obj/spacepod/relaymove(mob/user, direction) - var/moveship = 1 - if(battery && battery.charge >= 3 && health) - src.dir = direction - switch(direction) - if(1) - if(inertia_dir == 2) - inertia_dir = 0 - moveship = 0 - if(2) - if(inertia_dir == 1) - inertia_dir = 0 - moveship = 0 - if(4) - if(inertia_dir == 8) - inertia_dir = 0 - moveship = 0 - if(8) - if(inertia_dir == 4) - inertia_dir = 0 - moveship = 0 - if(moveship) - step(src, direction) - if(istype(src.loc, /turf/space)) - inertia_dir = direction - else - if(!battery) - user << "No energy cell detected." - else if(battery.charge < 3) - user << "Not enough charge left." - else if(!health) - user << "She's dead, Jim" + if(src.occupant2) + if(user.ckey != src.occupant2.ckey) + var/moveship = 1 + if(battery && battery.charge >= 3 && health) + src.dir = direction + switch(direction) + if(1) + if(inertia_dir == 2) + inertia_dir = 0 + moveship = 0 + if(2) + if(inertia_dir == 1) + inertia_dir = 0 + moveship = 0 + if(4) + if(inertia_dir == 8) + inertia_dir = 0 + moveship = 0 + if(8) + if(inertia_dir == 4) + inertia_dir = 0 + moveship = 0 + if(moveship) + step(src, direction) + if(istype(src.loc, /turf/space)) + inertia_dir = direction + else + if(!battery) + user << "No energy cell detected." + else if(battery.charge < 3) + user << "Not enough charge left." + else if(!health) + user << "She's dead, Jim" + else + user << "Unknown error has occurred, yell at pomf." + return 0 + battery.charge = max(0, battery.charge - 3) else - user << "Unknown error has occurred, yell at pomf." - return 0 - battery.charge = max(0, battery.charge - 3) + return + + else + var/moveship = 1 + if(battery && battery.charge >= 3 && health) + src.dir = direction + switch(direction) + if(1) + if(inertia_dir == 2) + inertia_dir = 0 + moveship = 0 + if(2) + if(inertia_dir == 1) + inertia_dir = 0 + moveship = 0 + if(4) + if(inertia_dir == 8) + inertia_dir = 0 + moveship = 0 + if(8) + if(inertia_dir == 4) + inertia_dir = 0 + moveship = 0 + if(moveship) + step(src, direction) + if(istype(src.loc, /turf/space)) + inertia_dir = direction + else + if(!battery) + user << "No energy cell detected." + else if(battery.charge < 3) + user << "Not enough charge left." + else if(!health) + user << "She's dead, Jim" + else + user << "Unknown error has occurred, yell at pomf." + return 0 + battery.charge = max(0, battery.charge - 3) /obj/effect/landmark/spacepod/random name = "spacepod spawner" From da9f1ed079a6a51d8aa5addfe6169fd889362c0b Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Wed, 17 Dec 2014 20:15:03 -0800 Subject: [PATCH 2/5] Fox's suggested changes- Includes ability to lock pod from new entries, But not the occupant. The secondary occupant can still get out by will. Entering a pod with the nuke disk is now impossible. Cannot drag people into pods; This means you can go on adventures with your buddy, but, no shoving people into pods and ejecting them into space. --- code/game/vehicles/spacepods/spacepod.dm | 86 +++++++++++++----------- 1 file changed, 45 insertions(+), 41 deletions(-) diff --git a/code/game/vehicles/spacepods/spacepod.dm b/code/game/vehicles/spacepods/spacepod.dm index ddfc38c7eb7..5e926d39683 100644 --- a/code/game/vehicles/spacepods/spacepod.dm +++ b/code/game/vehicles/spacepods/spacepod.dm @@ -28,7 +28,7 @@ var/health = 100 var/lights = 0 var/lights_power = 6 - var/allow2eject = 1 + var/allow2enter = 1 /obj/spacepod/New() . = ..() @@ -92,6 +92,8 @@ if(!health) spawn(0) if(occupant) + if(occupant2) + occupant2 << "Critical damage to the vessel detected, core explosion imminent!" occupant << "Critical damage to the vessel detected, core explosion imminent!" for(var/i = 10, i >= 0; --i) if(occupant) @@ -310,6 +312,11 @@ return /obj/spacepod/proc/moved_inside(var/mob/living/carbon/human/H as mob) + var/fukkendisk = usr.GetTypeInAllContents(/obj/item/weapon/disk/nuclear) + if(fukkendisk) + usr << "\red The nuke-disk locks the door as you try to get in. You evil person." + return + if(H && H.client && H in range(1)) if(src.occupant) H.reset_view(src) @@ -356,11 +363,7 @@ /obj/spacepod/MouseDrop_T(mob/M as mob, mob/user as mob) if(M != user) - user << "You start putting [M.name] into the pod's second seat." - if(enter_after(40,usr)) - moved_other_inside(M) - else - usr << "You stop moving [M.name] into the spacepod." + return else move_inside(M, user) @@ -369,20 +372,28 @@ set category = "Object" set name = "Enter Pod" set src in oview(1) + var/fukkendisk = usr.GetTypeInAllContents(/obj/item/weapon/disk/nuclear) + + if(fukkendisk) + usr << "\red The nuke-disk is locking the door every time you try to open it. You get the feeling that it doesn't want to go into the spacepod." + return if(usr.restrained() || usr.stat || usr.weakened || usr.stunned || usr.paralysis || usr.resting) //are you cuffed, dying, lying, stunned or other return if (usr.stat || !ishuman(usr)) return if (src.occupant) - usr << "\blue You starts climbing into the secondary seat." - visible_message("\blue [usr] starts to climb into [src.name]") - if(enter_after(40,usr)) - moved_inside(usr) - + if(allow2enter) + usr << "\blue You starts climbing into the secondary seat." + visible_message("\blue [usr] starts to climb into [src.name]") + if(enter_after(40,usr)) + moved_inside(usr) + else + usr << "You stop entering the spacepod." + return else - usr << "You stop entering the spacepod." - return + usr << "\red The [src.name]'s doors are locked." + return /* if (usr.abiotic()) usr << "\blue Subject cannot have abiotic items on." @@ -415,14 +426,11 @@ if(usr != src.occupant2) return else - if(src.allow2eject) - inertia_dir = 0 // engage reverse thruster and power down pod - src.occupant2.loc = src.loc - src.occupant2 = null - usr << "You climb out of the pod" - else - usr << "The secondary door is locked." - return + inertia_dir = 0 // engage reverse thruster and power down pod + src.occupant2.loc = src.loc + src.occupant2 = null + usr << "You climb out of the pod" + else return else @@ -454,28 +462,24 @@ /obj/spacepod/verb/locksecondseat() - if(!src.occupant2) - usr << "No point locking that door. " - return - else - set name = "Lock Second Seat" - set category = "Spacepod" - set src in oview(1) + set name = "Lock Doors" + set category = "Spacepod" + set src = usr.loc - if(usr.ckey == src.occupant2.ckey) - if(!allow2eject) - usr << "You can't unlock the door from your seat. " - return - else - usr << "You can't lock the door from your seat. " - return + if(usr.ckey == src.occupant2.ckey) + if(!allow2enter) + usr << "You can't unlock the doors from your seat. " + return else - if(src.allow2eject) - src.allow2eject = 0 - usr << "You lock the secondary door." - else - src.allow2eject = 1 - usr << "You unlock the secondary door." + usr << "You can't lock the doors from your seat. " + return + else + if(src.allow2enter) + src.allow2enter = 0 + usr << "You lock the doors." + else + src.allow2enter = 1 + usr << "You unlock the doors." /obj/spacepod/verb/toggleDoors() if(src.occupant2) From aeb4841f01a27b2c2afc72e41b39cf992ae68f47 Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Wed, 17 Dec 2014 20:22:55 -0800 Subject: [PATCH 3/5] Minor change; You can load corpses into the space-pod, but not living people. --- code/game/vehicles/spacepods/spacepod.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/game/vehicles/spacepods/spacepod.dm b/code/game/vehicles/spacepods/spacepod.dm index 5e926d39683..bc2eac85f08 100644 --- a/code/game/vehicles/spacepods/spacepod.dm +++ b/code/game/vehicles/spacepods/spacepod.dm @@ -363,7 +363,10 @@ /obj/spacepod/MouseDrop_T(mob/M as mob, mob/user as mob) if(M != user) - return + if(M.stat != 0) + move_inside(M, user) + else + return else move_inside(M, user) From 8a5a9b0242c46684677522fe0a98c470bcdb5e1a Mon Sep 17 00:00:00 2001 From: FalseIncarnate Date: Thu, 18 Dec 2014 03:14:56 -0500 Subject: [PATCH 4/5] Assorted Fixes / Changes Hydroponics trays can now be sprayed with any spray container (Space Cleaner bottles, Chemsprayers, Plant-B-Gone bottles, etc) and will correctly transfer the actual reagents to the tray and remove them from the container. Repairing robotic limbs with a welder will no longer cause eye damage. This will allow medical to repair IPCs and prosthetic limbs again without needing a welding mask/goggles. May also extend to fixing up borgs with a welder too. The sounds and other recent IPC changes are unaffected. Anyone injected with Slime Toxin, the special reagent from Green Slime Extract, will now receive some messages explaining their new form. Should hopefully avoid confusion regarding Shadow People and the previously unexplained damage they were receiving. At this time, the dark sight for Shadow People is likely still not functioning properly, and will hopefully be improved in the near future. --- code/game/machinery/hydroponics.dm | 23 ++++++++------------- code/game/objects/items/weapons/tools.dm | 2 +- code/modules/reagents/Chemistry-Reagents.dm | 3 +++ 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/code/game/machinery/hydroponics.dm b/code/game/machinery/hydroponics.dm index f985dbc2f30..5a6a82507c6 100644 --- a/code/game/machinery/hydroponics.dm +++ b/code/game/machinery/hydroponics.dm @@ -713,24 +713,19 @@ check_level_sanity() update_icon() - //Check if container is Plant-B-Gone spray (doesn't work with other sprays, may add in future) - else if (istype(O, /obj/item/weapon/reagent_containers/spray/plantbgone)) + //Check if container is any spray container + else if (istype(O, /obj/item/weapon/reagent_containers/spray)) + var/obj/item/weapon/reagent_containers/spray/S = O //Check if there is a plant in the tray if(seed) - health -= rand(5,20) - - if(pestlevel > 0) - pestlevel -= 2 - - if(weedlevel > 0) - weedlevel -= 3 - - toxins += 4 - - check_level_sanity() - + if(!S.reagents.total_volume) + user << "\red [S] is empty." + return + //Container not empty, transfer contents to tray + S.reagents.trans_to(src, S.amount_per_transfer_from_this) visible_message("\red \The [src] has been sprayed with \the [O][(user ? " by [user]." : ".")]") playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6) + check_level_sanity() update_icon() else user << "There's nothing in [src] to spray!" diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index a72e1a7239e..500341183a8 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -480,7 +480,7 @@ if(S.brute_dam) var/obj/item/weapon/weldingtool/WT = src - if (WT.remove_fuel(0,user)) + if (WT.remove_fuel(0,null)) playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) S.heal_damage(15,0,0,1) user.visible_message("\red \The [user] patches some dents on \the [M]'s [S.display_name] with \the [src].") diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 526a631ef36..1571727312a 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -495,6 +495,9 @@ datum var/mob/living/carbon/human/human = M if(human.dna.mutantrace == null) M << "\red Your flesh rapidly mutates!" + M << "You are now a Shadow Person, a mutant race of darkness-dwelling humanoids." + M << "\red Your body reacts violently to light. \green However, it naturally heals in darkness." + M << "Aside from your new traits, you are mentally unchanged and retain your prior obligations." human.dna.mutantrace = "shadow" human.update_mutantrace() ..() From 53d15682cec1eab783f08bc3bd54e6a385ee9afb Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Thu, 18 Dec 2014 10:22:02 -0500 Subject: [PATCH 5/5] Melee Rebalancing --- code/datums/spells/wizard.dm | 10 +-- code/defines/obj/weapon.dm | 3 +- code/game/gamemodes/wizard/spellbook.dm | 2 +- code/game/jobs/job/silicon.dm | 2 +- code/game/machinery/kitchen/processor.dm | 14 ++- code/game/objects/items/weapons/RCD.dm | 28 +++--- .../objects/items/weapons/melee/energy.dm | 8 +- .../objects/items/weapons/swords_axes_etc.dm | 6 +- code/game/objects/items/weapons/tools.dm | 14 ++- code/game/objects/items/weapons/twohanded.dm | 12 +-- .../living/carbon/human/human_attackhand.dm | 13 +-- code/modules/mob/living/carbon/species.dm | 6 +- code/modules/projectiles/guns/magic/wand.dm | 2 +- code/modules/projectiles/projectile/magic.dm | 2 +- icons/mob/in-hand/tools.dmi | Bin 5915 -> 7894 bytes icons/obj/items.dmi | Bin 78006 -> 78216 bytes maps/cyberiad.dmm | 85 +++++++++--------- 17 files changed, 117 insertions(+), 90 deletions(-) diff --git a/code/datums/spells/wizard.dm b/code/datums/spells/wizard.dm index 70fa7449189..bcd5bbd56bb 100644 --- a/code/datums/spells/wizard.dm +++ b/code/datums/spells/wizard.dm @@ -27,7 +27,7 @@ icon_power_button = "spell_missile" /obj/effect/proc_holder/spell/wizard/targeted/inflict_handler/magic_missile - amt_weakened = 5 + amt_weakened = 3 amt_dam_fire = 10 /obj/effect/proc_holder/spell/wizard/noclothes @@ -119,7 +119,7 @@ smoke_spread = 1 - smoke_amt = 10 + smoke_amt = 1 inner_tele_radius = 0 outer_tele_radius = 6 @@ -268,7 +268,7 @@ icon_power_button = "spell_fireball" /obj/effect/proc_holder/spell/wizard/turf/fireball/cast(var/turf/T) - explosion(T, -1, 0, 2, 0) + explosion(T, -1, 0, 2, 3, 0) /obj/effect/proc_holder/spell/wizard/targeted/inflict_handler/fireball @@ -277,5 +277,5 @@ /obj/effect/proc_holder/spell/wizard/targeted/explosion/fireball ex_severe = -1 - ex_heavy = 0 - ex_light = 2 + ex_heavy = -1 + ex_light = 2 \ No newline at end of file diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index e9bb526ec28..e8fba96a0d0 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -550,7 +550,7 @@ throwforce = 5.0 sharp = 1 edge = 1 - throw_speed = 1 + throw_speed = 2 throw_range = 3 w_class = 4.0 flags = FPRINT | TABLEPASS | NOSHIELD @@ -594,6 +594,7 @@ desc = "Special mechanical module made to store, sort, and apply standard machine parts." icon_state = "RPED" item_state = "RPED" + icon_override = 'icons/mob/in-hand/tools.dmi' w_class = 5 can_hold = list("/obj/item/weapon/stock_parts","/obj/item/weapon/cell") storage_slots = 50 diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index f365b298e5e..0d361ca233c 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -373,7 +373,7 @@ /obj/item/weapon/spellbook/oneuse/fireball/recoil(mob/user as mob) ..() - explosion(user.loc, -1, 0, 2, 3, 0, flame_range = 2) + explosion(user.loc, -1, 0, 2, 3, 0) del(src) /obj/item/weapon/spellbook/oneuse/smoke diff --git a/code/game/jobs/job/silicon.dm b/code/game/jobs/job/silicon.dm index 75c8555aca1..701b5133891 100644 --- a/code/game/jobs/job/silicon.dm +++ b/code/game/jobs/job/silicon.dm @@ -20,7 +20,7 @@ flag = CYBORG department_flag = ENGSEC total_positions = 0 - spawn_positions = 2 + spawn_positions = 1 supervisors = "your laws and the AI" //Nodrak selection_color = "#ddffdd" minimal_player_age = 21 diff --git a/code/game/machinery/kitchen/processor.dm b/code/game/machinery/kitchen/processor.dm index 344a4d16f71..aea4592faae 100644 --- a/code/game/machinery/kitchen/processor.dm +++ b/code/game/machinery/kitchen/processor.dm @@ -56,8 +56,20 @@ slime + process(loc, what) + var/mob/living/carbon/slime/S = what + var/C = S.cores + if(S.stat != DEAD) + S.loc = loc + S.visible_message("[C] crawls free of the processor!") + return + for(var/i = 1, i <= C, i++) + new S.coretype(loc) + feedback_add_details("slime_core_harvested","[replacetext(S.colour," ","_")]") + ..() + input = /mob/living/carbon/slime - output = /obj/item/weapon/reagent_containers/glass/beaker/slime + output = null monkey process(loc, what) diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index 6d49d14c23e..fc6ad2b6093 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -6,7 +6,7 @@ RCD */ /obj/item/weapon/rcd name = "rapid-construction-device (RCD)" - desc = "A device used to rapidly build walls/floor." + desc = "A device used to rapidly build and deconstruct walls and floors." icon = 'icons/obj/items.dmi' icon_state = "rcd" opacity = 0 @@ -18,7 +18,7 @@ RCD throw_speed = 3 throw_range = 5 w_class = 3.0 - m_amt = 30000 + m_amt = 100000 origin_tech = "engineering=4;materials=2" var/datum/effect/effect/system/spark_spread/spark_system var/matter = 0 @@ -29,7 +29,7 @@ RCD New() - desc = "A RCD. It currently holds [matter]/30 matter-units." + desc = "A RCD. It currently holds [matter]/100 matter-units." src.spark_system = new /datum/effect/effect/system/spark_spread spark_system.set_up(5, 0, src) spark_system.attach(src) @@ -39,15 +39,15 @@ RCD attackby(obj/item/weapon/W, mob/user) ..() if(istype(W, /obj/item/weapon/rcd_ammo)) - if((matter + 10) > 30) + if((matter + 20) > 100) user << "The RCD cant hold any more matter-units." return user.drop_item() del(W) - matter += 10 + matter += 20 playsound(src.loc, 'sound/machines/click.ogg', 50, 1) - user << "The RCD now holds [matter]/30 matter-units." - desc = "A RCD. It currently holds [matter]/30 matter-units." + user << "The RCD now holds [matter]/100 matter-units." + desc = "A RCD. It currently holds [matter]/100 matter-units." return @@ -148,11 +148,11 @@ RCD return 0 if(istype(A, /obj/machinery/door/airlock)) - if(checkResource(10, user)) + if(checkResource(20, user)) user << "Deconstructing Airlock..." playsound(src.loc, 'sound/machines/click.ogg', 50, 1) if(do_after(user, 50)) - if(!useResource(10, user)) return 0 + if(!useResource(20, user)) return 0 activate() del(A) return 1 @@ -166,7 +166,7 @@ RCD if(matter < amount) return 0 matter -= amount - desc = "A RCD. It currently holds [matter]/30 matter-units." + desc = "A RCD. It currently holds [matter]/100 matter-units." return 1 /obj/item/weapon/rcd/proc/checkResource(var/amount, var/mob/user) @@ -174,17 +174,17 @@ RCD /obj/item/weapon/rcd/borg/useResource(var/amount, var/mob/user) if(!isrobot(user)) return 0 - return user:cell:use(amount * 30) + return user:cell:use(amount * 160) /obj/item/weapon/rcd/borg/checkResource(var/amount, var/mob/user) if(!isrobot(user)) return 0 - return user:cell:charge >= (amount * 30) + return user:cell:charge >= (amount * 160) /obj/item/weapon/rcd/borg/New() ..() - desc = "A device used to rapidly build walls/floor." - canRwall = 0 + desc = "A device used to rapidly build and deconstruct walls and floors." + canRwall = 1 /obj/item/weapon/rcd_ammo name = "compressed matter cartridge" diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index 30df15c1f1a..e98c641c363 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -50,8 +50,8 @@ edge = 1 /obj/item/weapon/melee/energy/sword/cyborg - var/hitcost = 500 - + var/hitcost = 500 + /obj/item/weapon/melee/energy/sword/cyborg/attack(mob/M, var/mob/living/silicon/robot/R) if(R.cell) var/obj/item/weapon/cell/C = R.cell @@ -62,7 +62,7 @@ //C.use(hitcost) ..() return - + /obj/item/weapon/melee/energy/sword/pirate name = "energy cutlass" desc = "Arrrr matey." @@ -72,7 +72,7 @@ name = "energy blade" desc = "A concentrated beam of energy in the shape of a blade. Very stylish... and lethal." icon_state = "blade" - force = 70.0//Normal attacks deal very high damage. + force = 30.0 //Normal attacks deal esword damage sharp = 1 edge = 1 throwforce = 1//Throwing or dropping the item deletes it. diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm index c752fb53759..375f07f05a6 100644 --- a/code/game/objects/items/weapons/swords_axes_etc.dm +++ b/code/game/objects/items/weapons/swords_axes_etc.dm @@ -33,22 +33,24 @@ active = !active if (active) force = 30 + throwforce = 20 if(istype(src,/obj/item/weapon/melee/energy/sword/pirate)) icon_state = "cutlass1" else icon_state = "sword[blade_color]" w_class = 4 - playsound(user, 'sound/weapons/saberon.ogg', 50, 1) + playsound(user, 'sound/weapons/saberon.ogg', 35, 1) hitsound = 'sound/weapons/blade1.ogg' user << "\blue [src] is now active." else force = 3 + throwforce = 5.0 if(istype(src,/obj/item/weapon/melee/energy/sword/pirate)) icon_state = "cutlass0" else icon_state = "sword0" w_class = 2 - playsound(user, 'sound/weapons/saberoff.ogg', 50, 1) + playsound(user, 'sound/weapons/saberoff.ogg', 35, 1) hitsound = "swing_hit" user << "\blue [src] can now be concealed." if(istype(user,/mob/living/carbon/human)) diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 500341183a8..9691f3213ba 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -443,8 +443,8 @@ */ /obj/item/weapon/crowbar - name = "crowbar" - desc = "Used to hit floors" + name = "pocket crowbar" + desc = "A small crowbar. This handy tool is useful for lots of things, such as prying floor tiles or opening unpowered doors." icon = 'icons/obj/items.dmi' icon_state = "crowbar" flags = FPRINT | TABLEPASS| CONDUCT @@ -462,6 +462,16 @@ icon_state = "red_crowbar" item_state = "crowbar_red" +/obj/item/weapon/crowbar/large + name = "crowbar" + desc = "It's a big crowbar. It doesn't fit in your pockets, because it's big." + force = 12 + w_class = 3 + throw_speed = 3 + throw_range = 3 + m_amt = 66 + icon_state = "crowbar_large" + /obj/item/weapon/weldingtool/attack(mob/M as mob, mob/user as mob) if(hasorgans(M)) diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index 5e16de46283..f38c9b477f3 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -158,12 +158,13 @@ obj/item/weapon/twohanded/ name = "fire axe" desc = "Truly, the weapon of a madman. Who would think to fight fire with an axe?" force = 5 + throwforce = 15 sharp = 1 edge = 1 w_class = 4.0 slot_flags = SLOT_BACK - force_unwielded = 10 - force_wielded = 40 + force_unwielded = 5 + force_wielded = 24 attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") hitsound = 'sound/weapons/bladeslice.ogg' @@ -203,7 +204,7 @@ obj/item/weapon/twohanded/ throw_range = 5 w_class = 2.0 force_unwielded = 3 - force_wielded = 30 + force_wielded = 34 wieldsound = 'sound/weapons/saberon.ogg' unwieldsound = 'sound/weapons/saberoff.ogg' flags = FPRINT | TABLEPASS | NOSHIELD @@ -287,8 +288,9 @@ obj/item/weapon/twohanded/ w_class = 4.0 slot_flags = SLOT_BACK force_unwielded = 10 - force_wielded = 13 - throwforce = 15 + force_wielded = 18 // Was 13, Buffed - RR + throwforce = 20 + throw_speed = 3 flags = FPRINT | TABLEPASS | NOSHIELD attack_verb = list("attacked", "poked", "jabbed", "torn", "gored") diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 9258953388d..f9080dfaafd 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -139,13 +139,16 @@ playsound(loc, attack.attack_sound, 25, 1, -1) visible_message("\red [M] [pick(attack.attack_verb)]ed [src]!") - //Rearranged, so claws don't increase weaken chance. - if(damage >= 5 && prob(50)) - visible_message("\red [M] has weakened [src]!") - apply_effect(2, WEAKEN, armor_block) damage += attack.damage - apply_damage(damage, BRUTE, affecting, armor_block, sharp=attack.sharp, edge=attack.edge) + apply_damage(damage, BRUTE, affecting, armor_block, sharp=attack.sharp, edge=attack.edge) //moving this back here means Armalis are going to knock you down 70% of the time, but they're pure adminbus anyway. + if((stat != DEAD) && damage >= 9) + visible_message("[M] has weakened [src]!", \ + "[M] has weakened [src]!") + apply_effect(4, WEAKEN, armor_block) + forcesay(hit_appends) + else if(lying) + forcesay(hit_appends) if("disarm") diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index a2a40b65997..fb887a76eca 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -42,7 +42,7 @@ var/burn_mod = null // Burn damage reduction/malus. // For grays - var/max_hurt_damage = 5 // Max melee damage dealt + 5 if hulk + var/max_hurt_damage = 9 // Max melee damage dealt + 5 if hulk var/list/default_mutations = list() var/list/default_blocks = list() // Don't touch. var/list/default_block_names = list() // Use this instead, using the names from setupgame.dm @@ -636,16 +636,14 @@ /datum/unarmed_attack/diona attack_verb = list("lash", "bludgeon") - damage = 5 /datum/unarmed_attack/claws attack_verb = list("scratch", "claw") attack_sound = 'sound/weapons/slice.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' - damage = 5 sharp = 1 edge = 1 /datum/unarmed_attack/claws/armalis attack_verb = list("slash", "claw") - damage = 10 //they're huge! they should do a little more damage, i'd even go for 15-20 maybe... + damage = 6 //they're huge! they should do a little more damage, i'd even go for 15-20 maybe... diff --git a/code/modules/projectiles/guns/magic/wand.dm b/code/modules/projectiles/guns/magic/wand.dm index c14e9f73f75..d0841fff5e4 100644 --- a/code/modules/projectiles/guns/magic/wand.dm +++ b/code/modules/projectiles/guns/magic/wand.dm @@ -131,6 +131,6 @@ /obj/item/weapon/gun/magic/wand/fireball/zap_self(mob/living/user as mob) if(alert(user, "Zapping yourself with a wand of fireball is probably a bad idea, do it anyway?",, "Yes", "No") == "Yes" && charges && user.get_active_hand() == src && isliving(user)) - explosion(user.loc, -1, 0, 2, 3, 0, flame_range = 2) + explosion(user.loc, -1, 0, 2, 3, 0) charges-- ..() \ No newline at end of file diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 32c97c4bbfc..a557008c68b 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -24,7 +24,7 @@ /obj/item/projectile/magic/fireball/on_hit(var/target) var/turf/T = get_turf(target) - explosion(T, -1, 0, 2, 3, 0, flame_range = 2) + explosion(T, -1, 0, 2, 3, 0) /obj/item/projectile/magic/resurrection name = "bolt of resurrection" diff --git a/icons/mob/in-hand/tools.dmi b/icons/mob/in-hand/tools.dmi index eba8ad5fb95e985a6e83dadb8d50275a14e1ea96..8712f018e49f969bb2b9567b364912cbd98665d0 100644 GIT binary patch literal 7894 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 literal 5915 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 TAYcgo?FQ5yX)BjMu=(R}uGAKw diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 44d921d3a54f874003101d3580edffeb4f5b8666..1e6d7e6b7316f67b25b25434b2b2e3ef4612af09 100644 GIT binary patch delta 19879 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