From 1338225afaa7aca3ecd5ec4d7d587548fa1a498d Mon Sep 17 00:00:00 2001 From: Spades Date: Sat, 5 Jan 2019 16:29:19 -0500 Subject: [PATCH] Resolves some merge conflicts --- code/game/gamemodes/cult/cult_structures.dm | 7 - .../gamemodes/technomancer/spells/control.dm | 27 - .../spells/summon/summon_creature.dm | 21 - .../items/weapons/tools/weldingtool.dm | 1231 ++++++++--------- code/modules/food/kitchen/smartfridge.dm | 5 +- .../xenoarcheaology/artifacts/autocloner.dm | 11 +- .../xenoarcheaology/artifacts/replicator.dm | 7 +- code/modules/xenoarcheaology/finds/special.dm | 4 - maps/RandomZLevels/wildwest.dm | 180 +-- 9 files changed, 617 insertions(+), 876 deletions(-) diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index e337ca8c60f..c87427bc44d 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -108,17 +108,10 @@ light_range=5 light_color="#ff0000" spawnable=list( -<<<<<<< HEAD - /mob/living/simple_animal/hostile/scarybat, - /mob/living/simple_animal/hostile/creature/vore, - /mob/living/simple_animal/hostile/faithless - ) // Vorestation Edit -======= /mob/living/simple_mob/animal/space/bats, /mob/living/simple_mob/creature, /mob/living/simple_mob/faithless ) ->>>>>>> 3155d58... Merge pull request #5735 from Neerti/hopefully_last_master_sync /obj/effect/gateway/active/cult light_range=5 diff --git a/code/game/gamemodes/technomancer/spells/control.dm b/code/game/gamemodes/technomancer/spells/control.dm index f86fd79bf58..1c91862a4ec 100644 --- a/code/game/gamemodes/technomancer/spells/control.dm +++ b/code/game/gamemodes/technomancer/spells/control.dm @@ -21,34 +21,7 @@ aspect = ASPECT_BIOMED //Not sure if this should be something else. var/image/control_overlay = null var/list/controlled_mobs = list() -<<<<<<< HEAD - var/list/allowed_mobs = list( - /mob/living/bot, - /mob/living/simple_animal/cat, - /mob/living/simple_animal/chick, - /mob/living/simple_animal/chicken, - /mob/living/simple_animal/corgi, - /mob/living/simple_animal/cow, - /mob/living/simple_animal/crab, - /mob/living/simple_animal/lizard, - /mob/living/simple_animal/mouse, - /mob/living/simple_animal/parrot, - /mob/living/simple_animal/slime, -// /mob/living/simple_animal/adultslime, - /mob/living/simple_animal/tindalos, - /mob/living/simple_animal/yithian, - /mob/living/simple_animal/hostile/scarybat, - /mob/living/simple_animal/hostile/viscerator, - /mob/living/simple_animal/hostile/malf_drone, - /mob/living/simple_animal/hostile/giant_spider, - /mob/living/simple_animal/hostile/hivebot, - /mob/living/simple_animal/retaliate/diyaab, //Doubt these will get used but might as well, - /mob/living/simple_animal/hostile/savik, - /mob/living/simple_animal/hostile/shantak - ) -======= var/allowed_mob_classes = MOB_CLASS_ANIMAL|MOB_CLASS_SYNTHETIC ->>>>>>> 3155d58... Merge pull request #5735 from Neerti/hopefully_last_master_sync //This unfortunately is gonna be rather messy due to the various mobtypes involved. /obj/item/weapon/spell/control/proc/select(var/mob/living/L) diff --git a/code/game/gamemodes/technomancer/spells/summon/summon_creature.dm b/code/game/gamemodes/technomancer/spells/summon/summon_creature.dm index 7ac370433d8..c29d9827ec2 100644 --- a/code/game/gamemodes/technomancer/spells/summon/summon_creature.dm +++ b/code/game/gamemodes/technomancer/spells/summon/summon_creature.dm @@ -16,26 +16,6 @@ desc = "Chitter chitter." summoned_mob_type = null summon_options = list( -<<<<<<< HEAD - "Mouse" = /mob/living/simple_animal/mouse, - "Lizard" = /mob/living/simple_animal/lizard, - "Chicken" = /mob/living/simple_animal/chicken, - "Chick" = /mob/living/simple_animal/chick, - "Crab" = /mob/living/simple_animal/crab, - "Parrot" = /mob/living/simple_animal/parrot, - "Goat" = /mob/living/simple_animal/retaliate/goat, - "Cat" = /mob/living/simple_animal/cat, - "Kitten" = /mob/living/simple_animal/cat/kitten, - "Corgi" = /mob/living/simple_animal/corgi, - "Corgi Pup" = /mob/living/simple_animal/corgi/puppy, - "BAT" = /mob/living/simple_animal/hostile/scarybat, - "SPIDER" = /mob/living/simple_animal/hostile/giant_spider, - "SPIDER HUNTER" = /mob/living/simple_animal/hostile/giant_spider/hunter, - "SPIDER NURSE" = /mob/living/simple_animal/hostile/giant_spider/nurse, - "CARP" = /mob/living/simple_animal/hostile/carp, - "BEAR" = /mob/living/simple_animal/hostile/bear - ) // Vorestation edits to add vore versions. -======= "Mouse" = /mob/living/simple_mob/animal/passive/mouse, "Lizard" = /mob/living/simple_mob/animal/passive/lizard, "Chicken" = /mob/living/simple_mob/animal/passive/chicken, @@ -54,7 +34,6 @@ "CARP" = /mob/living/simple_mob/animal/space/carp, "BEAR" = /mob/living/simple_mob/animal/space/bear ) ->>>>>>> 3155d58... Merge pull request #5735 from Neerti/hopefully_last_master_sync cooldown = 30 instability_cost = 10 energy_cost = 1000 diff --git a/code/game/objects/items/weapons/tools/weldingtool.dm b/code/game/objects/items/weapons/tools/weldingtool.dm index 9cc09b47704..374df11df36 100644 --- a/code/game/objects/items/weapons/tools/weldingtool.dm +++ b/code/game/objects/items/weapons/tools/weldingtool.dm @@ -1,619 +1,612 @@ -<<<<<<< HEAD -======= - ->>>>>>> 3155d58... Merge pull request #5735 from Neerti/hopefully_last_master_sync -#define WELDER_FUEL_BURN_INTERVAL 13 -/* - * Welding Tool - */ -/obj/item/weapon/weldingtool - name = "\improper welding tool" - icon = 'icons/obj/tools.dmi' - icon_state = "welder" - item_state = "welder" - flags = CONDUCT - slot_flags = SLOT_BELT - - //Amount of OUCH when it's thrown - force = 3.0 - throwforce = 5.0 - throw_speed = 1 - throw_range = 5 - w_class = ITEMSIZE_SMALL - - //Cost to make in the autolathe - matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 30) - - //R&D tech level - origin_tech = list(TECH_ENGINEERING = 1) - - //Welding tool specific stuff - var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2) - var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower) - var/max_fuel = 20 //The max amount of fuel the welder can hold - - var/acti_sound = 'sound/items/welderactivate.ogg' - var/deac_sound = 'sound/items/welderdeactivate.ogg' - usesound = 'sound/items/Welder2.ogg' - var/change_icons = TRUE - var/flame_intensity = 2 //how powerful the emitted light is when used. - var/flame_color = "#FF9933" // What color the welder light emits when its on. Default is an orange-ish color. - var/eye_safety_modifier = 0 // Increasing this will make less eye protection needed to stop eye damage. IE at 1, sunglasses will fully protect. - var/burned_fuel_for = 0 // Keeps track of how long the welder's been on, used to gradually empty the welder if left one, without RNG. - var/always_process = FALSE // If true, keeps the welder on the process list even if it's off. Used for when it needs to regenerate fuel. - toolspeed = 1 - -/obj/item/weapon/weldingtool/New() -// var/random_fuel = min(rand(10,20),max_fuel) - var/datum/reagents/R = new/datum/reagents(max_fuel) - reagents = R - R.my_atom = src - R.add_reagent("fuel", max_fuel) - update_icon() - if(always_process) - processing_objects |= src - ..() - -/obj/item/weapon/weldingtool/Destroy() - if(welding || always_process) - processing_objects -= src - return ..() - -/obj/item/weapon/weldingtool/examine(mob/user) - if(..(user, 0)) - if(max_fuel) - to_chat(user, text("\icon[] The [] contains []/[] units of fuel!", src, src.name, get_fuel(),src.max_fuel )) - -/obj/item/weapon/weldingtool/attack(var/atom/A, var/mob/living/user, var/def_zone) - if(ishuman(A) && user.a_intent == I_HELP) - var/mob/living/carbon/human/H = A - var/obj/item/organ/external/S = H.organs_by_name[user.zone_sel.selecting] - - if(!S || S.robotic < ORGAN_ROBOT || S.open == 3) - return ..() - - if(!welding) - to_chat(user, "You'll need to turn [src] on to patch the damage on [H]'s [S.name]!") - return 1 - - if(S.robo_repair(15, BRUTE, "some dents", src, user)) - remove_fuel(1, user) - return 1 - - return ..() - -/obj/item/weapon/weldingtool/attackby(obj/item/W as obj, mob/living/user as mob) - if(istype(W,/obj/item/weapon/tool/screwdriver)) - if(welding) - to_chat(user, "Stop welding first!") - return - status = !status - if(status) - to_chat(user, "You secure the welder.") - else - to_chat(user, "The welder can now be attached and modified.") - src.add_fingerprint(user) - return - - if((!status) && (istype(W,/obj/item/stack/rods))) - var/obj/item/stack/rods/R = W - R.use(1) - var/obj/item/weapon/flamethrower/F = new/obj/item/weapon/flamethrower(user.loc) - src.loc = F - F.weldtool = src - if (user.client) - user.client.screen -= src - if (user.r_hand == src) - user.remove_from_mob(src) - else - user.remove_from_mob(src) - src.master = F - src.layer = initial(src.layer) - user.remove_from_mob(src) - if (user.client) - user.client.screen -= src - src.loc = F - src.add_fingerprint(user) - return - - ..() - return - - -/obj/item/weapon/weldingtool/process() - if(welding) - ++burned_fuel_for - if(burned_fuel_for >= WELDER_FUEL_BURN_INTERVAL) - remove_fuel(1) - - - - if(get_fuel() < 1) - setWelding(0) - - //I'm not sure what this does. I assume it has to do with starting fires... - //...but it doesnt check to see if the welder is on or not. - var/turf/location = src.loc - if(istype(location, /mob/living)) - var/mob/living/M = location - if(M.item_is_in_hands(src)) - location = get_turf(M) - if (istype(location, /turf)) - location.hotspot_expose(700, 5) - - -/obj/item/weapon/weldingtool/afterattack(obj/O as obj, mob/user as mob, proximity) - if(!proximity) return - if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1) - if(!welding && max_fuel) - O.reagents.trans_to_obj(src, max_fuel) - to_chat(user, "Welder refueled") - playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6) - return - else if(!welding) - to_chat(user, "[src] doesn't use fuel.") - return - else - message_admins("[key_name_admin(user)] triggered a fueltank explosion with a welding tool.") - log_game("[key_name(user)] triggered a fueltank explosion with a welding tool.") - to_chat(user, "You begin welding on the fueltank and with a moment of lucidity you realize, this might not have been the smartest thing you've ever done.") - var/obj/structure/reagent_dispensers/fueltank/tank = O - tank.explode() - return - if (src.welding) - remove_fuel(1) - var/turf/location = get_turf(user) - if(isliving(O)) - var/mob/living/L = O - L.IgniteMob() - if (istype(location, /turf)) - location.hotspot_expose(700, 50, 1) - return - - -/obj/item/weapon/weldingtool/attack_self(mob/user as mob) - setWelding(!welding, usr) - return - -//Returns the amount of fuel in the welder -/obj/item/weapon/weldingtool/proc/get_fuel() - return reagents.get_reagent_amount("fuel") - -/obj/item/weapon/weldingtool/proc/get_max_fuel() - return max_fuel - -//Removes fuel from the welding tool. If a mob is passed, it will perform an eyecheck on the mob. This should probably be renamed to use() -/obj/item/weapon/weldingtool/proc/remove_fuel(var/amount = 1, var/mob/M = null) - if(!welding) - return 0 - if(amount) - burned_fuel_for = 0 // Reset the counter since we're removing fuel. - if(get_fuel() >= amount) - reagents.remove_reagent("fuel", amount) - if(M) - eyecheck(M) - update_icon() - return 1 - else - if(M) - to_chat(M, "You need more welding fuel to complete this task.") - update_icon() - return 0 - -//Returns whether or not the welding tool is currently on. -/obj/item/weapon/weldingtool/proc/isOn() - return src.welding - -/obj/item/weapon/weldingtool/update_icon() - ..() - overlays.Cut() - // Welding overlay. - if(welding) - var/image/I = image(icon, src, "[icon_state]-on") - overlays.Add(I) - item_state = "[initial(item_state)]1" - else - item_state = initial(item_state) - - // Fuel counter overlay. - if(change_icons && get_max_fuel()) - var/ratio = get_fuel() / get_max_fuel() - ratio = Ceiling(ratio*4) * 25 - var/image/I = image(icon, src, "[icon_state][ratio]") - overlays.Add(I) - - // Lights - if(welding && flame_intensity) - set_light(flame_intensity, flame_intensity, flame_color) - else - set_light(0) - -// icon_state = welding ? "[icon_state]1" : "[initial(icon_state)]" - var/mob/M = loc - if(istype(M)) - M.update_inv_l_hand() - M.update_inv_r_hand() - -/obj/item/weapon/weldingtool/MouseDrop(obj/over_object as obj) - if(!canremove) - return - - if (ishuman(usr) || issmall(usr)) //so monkeys can take off their backpacks -- Urist - - if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech. why? - return - - if (!( istype(over_object, /obj/screen) )) - return ..() - - //makes sure that the thing is equipped, so that we can't drag it into our hand from miles away. - //there's got to be a better way of doing this. - if (!(src.loc == usr) || (src.loc && src.loc.loc == usr)) - return - - if (( usr.restrained() ) || ( usr.stat )) - return - - if ((src.loc == usr) && !(istype(over_object, /obj/screen)) && !usr.unEquip(src)) - return - - switch(over_object.name) - if("r_hand") - usr.u_equip(src) - usr.put_in_r_hand(src) - if("l_hand") - usr.u_equip(src) - usr.put_in_l_hand(src) - src.add_fingerprint(usr) - -//Sets the welding state of the welding tool. If you see W.welding = 1 anywhere, please change it to W.setWelding(1) -//so that the welding tool updates accordingly -/obj/item/weapon/weldingtool/proc/setWelding(var/set_welding, var/mob/M) - if(!status) return - - var/turf/T = get_turf(src) - //If we're turning it on - if(set_welding && !welding) - if (get_fuel() > 0) - if(M) - to_chat(M, "You switch the [src] on.") - else if(T) - T.visible_message("\The [src] turns on.") - playsound(loc, acti_sound, 50, 1) - src.force = 15 - src.damtype = "fire" - src.w_class = ITEMSIZE_LARGE - src.hitsound = 'sound/items/welder.ogg' - welding = 1 - update_icon() - if(!always_process) - processing_objects |= src - else - if(M) - var/msg = max_fuel ? "welding fuel" : "charge" - to_chat(M, "You need more [msg] to complete this task.") - return - //Otherwise - else if(!set_welding && welding) - if(!always_process) - processing_objects -= src - if(M) - to_chat(M, "You switch \the [src] off.") - else if(T) - T.visible_message("\The [src] turns off.") - playsound(loc, deac_sound, 50, 1) - src.force = 3 - src.damtype = "brute" - src.w_class = initial(src.w_class) - src.welding = 0 - src.hitsound = initial(src.hitsound) - update_icon() - -//Decides whether or not to damage a player's eyes based on what they're wearing as protection -//Note: This should probably be moved to mob -/obj/item/weapon/weldingtool/proc/eyecheck(mob/living/carbon/user) - if(!istype(user)) - return 1 - var/safety = user.eyecheck() - safety = between(-1, safety + eye_safety_modifier, 2) - if(istype(user, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = user - var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES] - if(!E) - return -<<<<<<< HEAD - if(H.nif && H.nif.flag_check(NIF_V_UVFILTER,NIF_FLAGS_VISION)) return //VOREStation Add - NIF -======= ->>>>>>> 3155d58... Merge pull request #5735 from Neerti/hopefully_last_master_sync - switch(safety) - if(1) - to_chat(usr, "Your eyes sting a little.") - E.damage += rand(1, 2) - if(E.damage > 12) - user.eye_blurry += rand(3,6) - if(0) - to_chat(usr, "Your eyes burn.") - E.damage += rand(2, 4) - if(E.damage > 10) - E.damage += rand(4,10) - if(-1) - to_chat(usr, "Your thermals intensify the welder's glow. Your eyes itch and burn severely.") - user.eye_blurry += rand(12,20) - E.damage += rand(12, 16) - if(safety<2) - - if(E.damage > 10) - to_chat(user, "Your eyes are really starting to hurt. This can't be good for you!") - - if (E.damage >= E.min_broken_damage) - to_chat(user, "You go blind!") - user.sdisabilities |= BLIND - else if (E.damage >= E.min_bruised_damage) - to_chat(user, "You go blind!") - user.Blind(5) - user.eye_blurry = 5 - user.disabilities |= NEARSIGHTED - spawn(100) - user.disabilities &= ~NEARSIGHTED - return - -/obj/item/weapon/weldingtool/is_hot() - return isOn() - -/obj/item/weapon/weldingtool/largetank - name = "industrial welding tool" - desc = "A slightly larger welder with a larger tank." - icon_state = "indwelder" - max_fuel = 40 - origin_tech = list(TECH_ENGINEERING = 2, TECH_PHORON = 2) - matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 60) - -/obj/item/weapon/weldingtool/largetank/cyborg - name = "integrated welding tool" - desc = "An advanced welder designed to be used in robotic systems." - toolspeed = 0.5 - -/obj/item/weapon/weldingtool/hugetank - name = "upgraded welding tool" - desc = "A much larger welder with a huge tank." - icon_state = "indwelder" - max_fuel = 80 - w_class = ITEMSIZE_NORMAL - origin_tech = list(TECH_ENGINEERING = 3) - matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120) - -/obj/item/weapon/weldingtool/mini - name = "emergency welding tool" - desc = "A miniature welder used during emergencies." - icon_state = "miniwelder" - max_fuel = 10 - w_class = ITEMSIZE_SMALL - matter = list(MAT_METAL = 30, MAT_GLASS = 10) - change_icons = 0 - toolspeed = 2 - eye_safety_modifier = 1 // Safer on eyes. - -/obj/item/weapon/weldingtool/alien - name = "alien welding tool" - desc = "An alien welding tool. Whatever fuel it uses, it never runs out." - icon = 'icons/obj/abductor.dmi' - icon_state = "welder" - toolspeed = 0.1 - flame_color = "#6699FF" // Light bluish. - eye_safety_modifier = 2 - change_icons = 0 - origin_tech = list(TECH_PHORON = 5 ,TECH_ENGINEERING = 5) - always_process = TRUE - -/obj/item/weapon/weldingtool/alien/process() - if(get_fuel() <= get_max_fuel()) - reagents.add_reagent("fuel", 1) - ..() - -/obj/item/weapon/weldingtool/experimental - name = "experimental welding tool" - desc = "An experimental welder capable of synthesizing its own fuel from waste compounds. It can output a flame hotter than regular welders." - icon_state = "exwelder" - max_fuel = 40 - w_class = ITEMSIZE_NORMAL - origin_tech = list(TECH_ENGINEERING = 4, TECH_PHORON = 3) - matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120) - toolspeed = 0.5 - change_icons = 0 - flame_intensity = 3 - always_process = TRUE - var/nextrefueltick = 0 - -/obj/item/weapon/weldingtool/experimental/process() - ..() - if(get_fuel() < get_max_fuel() && nextrefueltick < world.time) - nextrefueltick = world.time + 10 - reagents.add_reagent("fuel", 1) - -/* - * Backpack Welder. - */ - -/obj/item/weapon/weldingtool/tubefed - name = "tube-fed welding tool" - desc = "A bulky, cooler-burning welding tool that draws from a worn welding tank." - icon_state = "tubewelder" - max_fuel = 10 - w_class = ITEMSIZE_NO_CONTAINER - matter = null - toolspeed = 1.25 - change_icons = 0 - flame_intensity = 1 - eye_safety_modifier = 1 - always_process = TRUE - var/obj/item/weapon/weldpack/mounted_pack = null - -/obj/item/weapon/weldingtool/tubefed/New(location) - ..() - if(istype(location, /obj/item/weapon/weldpack)) - var/obj/item/weapon/weldpack/holder = location - mounted_pack = holder - else - qdel(src) - -/obj/item/weapon/weldingtool/tubefed/Destroy() - mounted_pack.nozzle = null - mounted_pack = null - return ..() - -/obj/item/weapon/weldingtool/tubefed/process() - if(mounted_pack) - if(!istype(mounted_pack.loc,/mob/living/carbon/human)) - mounted_pack.return_nozzle() - else - var/mob/living/carbon/human/H = mounted_pack.loc - if(H.back != mounted_pack) - mounted_pack.return_nozzle() - - if(mounted_pack.loc != src.loc && src.loc != mounted_pack) - mounted_pack.return_nozzle() - visible_message("\The [src] retracts to its fueltank.") - - if(get_fuel() <= get_max_fuel()) - mounted_pack.reagents.trans_to_obj(src, 1) - - ..() - -/obj/item/weapon/weldingtool/tubefed/dropped(mob/user) - ..() - if(src.loc != user) - mounted_pack.return_nozzle() - to_chat(user, "\The [src] retracts to its fueltank.") - -/* - * Electric/Arc Welder - */ - -/obj/item/weapon/weldingtool/electric //AND HIS WELDING WAS ELECTRIC - name = "electric welding tool" - desc = "A welder which runs off of electricity." - icon_state = "arcwelder" - max_fuel = 0 //We'll handle the consumption later. - item_state = "ewelder" - var/obj/item/weapon/cell/power_supply //What type of power cell this uses - var/charge_cost = 24 //The rough equivalent of 1 unit of fuel, based on us wanting 10 welds per battery - var/cell_type = /obj/item/weapon/cell/device - var/use_external_power = 0 //If in a borg or hardsuit, this needs to = 1 - flame_color = "#00CCFF" // Blue-ish, to set it apart from the gas flames. - acti_sound = 'sound/effects/sparks4.ogg' - deac_sound = 'sound/effects/sparks4.ogg' - -/obj/item/weapon/weldingtool/electric/unloaded/New() - cell_type = null - -/obj/item/weapon/weldingtool/electric/New() - ..() - if(cell_type == null) - update_icon() - else if(cell_type) - power_supply = new cell_type(src) - else - power_supply = new /obj/item/weapon/cell/device(src) - update_icon() - -/obj/item/weapon/weldingtool/electric/get_cell() - return power_supply - -/obj/item/weapon/weldingtool/electric/examine(mob/user) - if(get_dist(src, user) > 1) - to_chat(user, desc) - else // The << need to stay, for some reason - if(power_supply) - user << text("\icon[] The [] has [] charge left.", src, src.name, get_fuel()) - else - user << text("\icon[] The [] has no power cell!", src, src.name) - -/obj/item/weapon/weldingtool/electric/get_fuel() - if(use_external_power) - var/obj/item/weapon/cell/external = get_external_power_supply() - if(external) - return external.charge - else if(power_supply) - return power_supply.charge - else - return 0 - -/obj/item/weapon/weldingtool/electric/get_max_fuel() - if(use_external_power) - var/obj/item/weapon/cell/external = get_external_power_supply() - if(external) - return external.maxcharge - else if(power_supply) - return power_supply.maxcharge - return 0 - -/obj/item/weapon/weldingtool/electric/remove_fuel(var/amount = 1, var/mob/M = null) - if(!welding) - return 0 - if(get_fuel() >= amount) - power_supply.checked_use(charge_cost) - if(use_external_power) - var/obj/item/weapon/cell/external = get_external_power_supply() - if(!external || !external.use(charge_cost)) //Take power from the borg... - power_supply.give(charge_cost) //Give it back to the cell. - if(M) - eyecheck(M) - update_icon() - return 1 - else - if(M) - to_chat(M, "You need more energy to complete this task.") - update_icon() - return 0 - -/obj/item/weapon/weldingtool/electric/attack_hand(mob/user as mob) - if(user.get_inactive_hand() == src) - if(power_supply) - power_supply.update_icon() - user.put_in_hands(power_supply) - power_supply = null - to_chat(user, "You remove the cell from the [src].") - setWelding(0) - update_icon() - return - ..() - else - return ..() - -/obj/item/weapon/weldingtool/electric/attackby(obj/item/weapon/W, mob/user as mob) - if(istype(W, /obj/item/weapon/cell)) - if(istype(W, /obj/item/weapon/cell/device)) - if(!power_supply) - user.drop_item() - W.loc = src - power_supply = W - to_chat(user, "You install a cell in \the [src].") - update_icon() - else - to_chat(user, "\The [src] already has a cell.") - else - to_chat(user, "\The [src] cannot use that type of cell.") - else - ..() - -/obj/item/weapon/weldingtool/electric/proc/get_external_power_supply() - if(isrobot(src.loc)) - var/mob/living/silicon/robot/R = src.loc - return R.cell - if(istype(src.loc, /obj/item/rig_module)) - var/obj/item/rig_module/module = src.loc - if(module.holder && module.holder.wearer) - var/mob/living/carbon/human/H = module.holder.wearer - if(istype(H) && H.back) - var/obj/item/weapon/rig/suit = H.back - if(istype(suit)) - return suit.cell - return null - -/obj/item/weapon/weldingtool/electric/mounted - use_external_power = 1 - -/obj/item/weapon/weldingtool/electric/mounted/cyborg - toolspeed = 0.5 - -#undef WELDER_FUEL_BURN_INTERVAL +#define WELDER_FUEL_BURN_INTERVAL 13 +/* + * Welding Tool + */ +/obj/item/weapon/weldingtool + name = "\improper welding tool" + icon = 'icons/obj/tools.dmi' + icon_state = "welder" + item_state = "welder" + flags = CONDUCT + slot_flags = SLOT_BELT + + //Amount of OUCH when it's thrown + force = 3.0 + throwforce = 5.0 + throw_speed = 1 + throw_range = 5 + w_class = ITEMSIZE_SMALL + + //Cost to make in the autolathe + matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 30) + + //R&D tech level + origin_tech = list(TECH_ENGINEERING = 1) + + //Welding tool specific stuff + var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2) + var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower) + var/max_fuel = 20 //The max amount of fuel the welder can hold + + var/acti_sound = 'sound/items/welderactivate.ogg' + var/deac_sound = 'sound/items/welderdeactivate.ogg' + usesound = 'sound/items/Welder2.ogg' + var/change_icons = TRUE + var/flame_intensity = 2 //how powerful the emitted light is when used. + var/flame_color = "#FF9933" // What color the welder light emits when its on. Default is an orange-ish color. + var/eye_safety_modifier = 0 // Increasing this will make less eye protection needed to stop eye damage. IE at 1, sunglasses will fully protect. + var/burned_fuel_for = 0 // Keeps track of how long the welder's been on, used to gradually empty the welder if left one, without RNG. + var/always_process = FALSE // If true, keeps the welder on the process list even if it's off. Used for when it needs to regenerate fuel. + toolspeed = 1 + +/obj/item/weapon/weldingtool/New() +// var/random_fuel = min(rand(10,20),max_fuel) + var/datum/reagents/R = new/datum/reagents(max_fuel) + reagents = R + R.my_atom = src + R.add_reagent("fuel", max_fuel) + update_icon() + if(always_process) + processing_objects |= src + ..() + +/obj/item/weapon/weldingtool/Destroy() + if(welding || always_process) + processing_objects -= src + return ..() + +/obj/item/weapon/weldingtool/examine(mob/user) + if(..(user, 0)) + if(max_fuel) + to_chat(user, text("\icon[] The [] contains []/[] units of fuel!", src, src.name, get_fuel(),src.max_fuel )) + +/obj/item/weapon/weldingtool/attack(var/atom/A, var/mob/living/user, var/def_zone) + if(ishuman(A) && user.a_intent == I_HELP) + var/mob/living/carbon/human/H = A + var/obj/item/organ/external/S = H.organs_by_name[user.zone_sel.selecting] + + if(!S || S.robotic < ORGAN_ROBOT || S.open == 3) + return ..() + + if(!welding) + to_chat(user, "You'll need to turn [src] on to patch the damage on [H]'s [S.name]!") + return 1 + + if(S.robo_repair(15, BRUTE, "some dents", src, user)) + remove_fuel(1, user) + return 1 + + return ..() + +/obj/item/weapon/weldingtool/attackby(obj/item/W as obj, mob/living/user as mob) + if(istype(W,/obj/item/weapon/tool/screwdriver)) + if(welding) + to_chat(user, "Stop welding first!") + return + status = !status + if(status) + to_chat(user, "You secure the welder.") + else + to_chat(user, "The welder can now be attached and modified.") + src.add_fingerprint(user) + return + + if((!status) && (istype(W,/obj/item/stack/rods))) + var/obj/item/stack/rods/R = W + R.use(1) + var/obj/item/weapon/flamethrower/F = new/obj/item/weapon/flamethrower(user.loc) + src.loc = F + F.weldtool = src + if (user.client) + user.client.screen -= src + if (user.r_hand == src) + user.remove_from_mob(src) + else + user.remove_from_mob(src) + src.master = F + src.layer = initial(src.layer) + user.remove_from_mob(src) + if (user.client) + user.client.screen -= src + src.loc = F + src.add_fingerprint(user) + return + + ..() + return + + +/obj/item/weapon/weldingtool/process() + if(welding) + ++burned_fuel_for + if(burned_fuel_for >= WELDER_FUEL_BURN_INTERVAL) + remove_fuel(1) + + + + if(get_fuel() < 1) + setWelding(0) + + //I'm not sure what this does. I assume it has to do with starting fires... + //...but it doesnt check to see if the welder is on or not. + var/turf/location = src.loc + if(istype(location, /mob/living)) + var/mob/living/M = location + if(M.item_is_in_hands(src)) + location = get_turf(M) + if (istype(location, /turf)) + location.hotspot_expose(700, 5) + + +/obj/item/weapon/weldingtool/afterattack(obj/O as obj, mob/user as mob, proximity) + if(!proximity) return + if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1) + if(!welding && max_fuel) + O.reagents.trans_to_obj(src, max_fuel) + to_chat(user, "Welder refueled") + playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6) + return + else if(!welding) + to_chat(user, "[src] doesn't use fuel.") + return + else + message_admins("[key_name_admin(user)] triggered a fueltank explosion with a welding tool.") + log_game("[key_name(user)] triggered a fueltank explosion with a welding tool.") + to_chat(user, "You begin welding on the fueltank and with a moment of lucidity you realize, this might not have been the smartest thing you've ever done.") + var/obj/structure/reagent_dispensers/fueltank/tank = O + tank.explode() + return + if (src.welding) + remove_fuel(1) + var/turf/location = get_turf(user) + if(isliving(O)) + var/mob/living/L = O + L.IgniteMob() + if (istype(location, /turf)) + location.hotspot_expose(700, 50, 1) + return + + +/obj/item/weapon/weldingtool/attack_self(mob/user as mob) + setWelding(!welding, usr) + return + +//Returns the amount of fuel in the welder +/obj/item/weapon/weldingtool/proc/get_fuel() + return reagents.get_reagent_amount("fuel") + +/obj/item/weapon/weldingtool/proc/get_max_fuel() + return max_fuel + +//Removes fuel from the welding tool. If a mob is passed, it will perform an eyecheck on the mob. This should probably be renamed to use() +/obj/item/weapon/weldingtool/proc/remove_fuel(var/amount = 1, var/mob/M = null) + if(!welding) + return 0 + if(amount) + burned_fuel_for = 0 // Reset the counter since we're removing fuel. + if(get_fuel() >= amount) + reagents.remove_reagent("fuel", amount) + if(M) + eyecheck(M) + update_icon() + return 1 + else + if(M) + to_chat(M, "You need more welding fuel to complete this task.") + update_icon() + return 0 + +//Returns whether or not the welding tool is currently on. +/obj/item/weapon/weldingtool/proc/isOn() + return src.welding + +/obj/item/weapon/weldingtool/update_icon() + ..() + overlays.Cut() + // Welding overlay. + if(welding) + var/image/I = image(icon, src, "[icon_state]-on") + overlays.Add(I) + item_state = "[initial(item_state)]1" + else + item_state = initial(item_state) + + // Fuel counter overlay. + if(change_icons && get_max_fuel()) + var/ratio = get_fuel() / get_max_fuel() + ratio = Ceiling(ratio*4) * 25 + var/image/I = image(icon, src, "[icon_state][ratio]") + overlays.Add(I) + + // Lights + if(welding && flame_intensity) + set_light(flame_intensity, flame_intensity, flame_color) + else + set_light(0) + +// icon_state = welding ? "[icon_state]1" : "[initial(icon_state)]" + var/mob/M = loc + if(istype(M)) + M.update_inv_l_hand() + M.update_inv_r_hand() + +/obj/item/weapon/weldingtool/MouseDrop(obj/over_object as obj) + if(!canremove) + return + + if (ishuman(usr) || issmall(usr)) //so monkeys can take off their backpacks -- Urist + + if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech. why? + return + + if (!( istype(over_object, /obj/screen) )) + return ..() + + //makes sure that the thing is equipped, so that we can't drag it into our hand from miles away. + //there's got to be a better way of doing this. + if (!(src.loc == usr) || (src.loc && src.loc.loc == usr)) + return + + if (( usr.restrained() ) || ( usr.stat )) + return + + if ((src.loc == usr) && !(istype(over_object, /obj/screen)) && !usr.unEquip(src)) + return + + switch(over_object.name) + if("r_hand") + usr.u_equip(src) + usr.put_in_r_hand(src) + if("l_hand") + usr.u_equip(src) + usr.put_in_l_hand(src) + src.add_fingerprint(usr) + +//Sets the welding state of the welding tool. If you see W.welding = 1 anywhere, please change it to W.setWelding(1) +//so that the welding tool updates accordingly +/obj/item/weapon/weldingtool/proc/setWelding(var/set_welding, var/mob/M) + if(!status) return + + var/turf/T = get_turf(src) + //If we're turning it on + if(set_welding && !welding) + if (get_fuel() > 0) + if(M) + to_chat(M, "You switch the [src] on.") + else if(T) + T.visible_message("\The [src] turns on.") + playsound(loc, acti_sound, 50, 1) + src.force = 15 + src.damtype = "fire" + src.w_class = ITEMSIZE_LARGE + src.hitsound = 'sound/items/welder.ogg' + welding = 1 + update_icon() + if(!always_process) + processing_objects |= src + else + if(M) + var/msg = max_fuel ? "welding fuel" : "charge" + to_chat(M, "You need more [msg] to complete this task.") + return + //Otherwise + else if(!set_welding && welding) + if(!always_process) + processing_objects -= src + if(M) + to_chat(M, "You switch \the [src] off.") + else if(T) + T.visible_message("\The [src] turns off.") + playsound(loc, deac_sound, 50, 1) + src.force = 3 + src.damtype = "brute" + src.w_class = initial(src.w_class) + src.welding = 0 + src.hitsound = initial(src.hitsound) + update_icon() + +//Decides whether or not to damage a player's eyes based on what they're wearing as protection +//Note: This should probably be moved to mob +/obj/item/weapon/weldingtool/proc/eyecheck(mob/living/carbon/user) + if(!istype(user)) + return 1 + var/safety = user.eyecheck() + safety = between(-1, safety + eye_safety_modifier, 2) + if(istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES] + if(!E) + return + if(H.nif && H.nif.flag_check(NIF_V_UVFILTER,NIF_FLAGS_VISION)) return //VOREStation Add - NIF + switch(safety) + if(1) + to_chat(usr, "Your eyes sting a little.") + E.damage += rand(1, 2) + if(E.damage > 12) + user.eye_blurry += rand(3,6) + if(0) + to_chat(usr, "Your eyes burn.") + E.damage += rand(2, 4) + if(E.damage > 10) + E.damage += rand(4,10) + if(-1) + to_chat(usr, "Your thermals intensify the welder's glow. Your eyes itch and burn severely.") + user.eye_blurry += rand(12,20) + E.damage += rand(12, 16) + if(safety<2) + + if(E.damage > 10) + to_chat(user, "Your eyes are really starting to hurt. This can't be good for you!") + + if (E.damage >= E.min_broken_damage) + to_chat(user, "You go blind!") + user.sdisabilities |= BLIND + else if (E.damage >= E.min_bruised_damage) + to_chat(user, "You go blind!") + user.Blind(5) + user.eye_blurry = 5 + user.disabilities |= NEARSIGHTED + spawn(100) + user.disabilities &= ~NEARSIGHTED + return + +/obj/item/weapon/weldingtool/is_hot() + return isOn() + +/obj/item/weapon/weldingtool/largetank + name = "industrial welding tool" + desc = "A slightly larger welder with a larger tank." + icon_state = "indwelder" + max_fuel = 40 + origin_tech = list(TECH_ENGINEERING = 2, TECH_PHORON = 2) + matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 60) + +/obj/item/weapon/weldingtool/largetank/cyborg + name = "integrated welding tool" + desc = "An advanced welder designed to be used in robotic systems." + toolspeed = 0.5 + +/obj/item/weapon/weldingtool/hugetank + name = "upgraded welding tool" + desc = "A much larger welder with a huge tank." + icon_state = "indwelder" + max_fuel = 80 + w_class = ITEMSIZE_NORMAL + origin_tech = list(TECH_ENGINEERING = 3) + matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120) + +/obj/item/weapon/weldingtool/mini + name = "emergency welding tool" + desc = "A miniature welder used during emergencies." + icon_state = "miniwelder" + max_fuel = 10 + w_class = ITEMSIZE_SMALL + matter = list(MAT_METAL = 30, MAT_GLASS = 10) + change_icons = 0 + toolspeed = 2 + eye_safety_modifier = 1 // Safer on eyes. + +/obj/item/weapon/weldingtool/alien + name = "alien welding tool" + desc = "An alien welding tool. Whatever fuel it uses, it never runs out." + icon = 'icons/obj/abductor.dmi' + icon_state = "welder" + toolspeed = 0.1 + flame_color = "#6699FF" // Light bluish. + eye_safety_modifier = 2 + change_icons = 0 + origin_tech = list(TECH_PHORON = 5 ,TECH_ENGINEERING = 5) + always_process = TRUE + +/obj/item/weapon/weldingtool/alien/process() + if(get_fuel() <= get_max_fuel()) + reagents.add_reagent("fuel", 1) + ..() + +/obj/item/weapon/weldingtool/experimental + name = "experimental welding tool" + desc = "An experimental welder capable of synthesizing its own fuel from waste compounds. It can output a flame hotter than regular welders." + icon_state = "exwelder" + max_fuel = 40 + w_class = ITEMSIZE_NORMAL + origin_tech = list(TECH_ENGINEERING = 4, TECH_PHORON = 3) + matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120) + toolspeed = 0.5 + change_icons = 0 + flame_intensity = 3 + always_process = TRUE + var/nextrefueltick = 0 + +/obj/item/weapon/weldingtool/experimental/process() + ..() + if(get_fuel() < get_max_fuel() && nextrefueltick < world.time) + nextrefueltick = world.time + 10 + reagents.add_reagent("fuel", 1) + +/* + * Backpack Welder. + */ + +/obj/item/weapon/weldingtool/tubefed + name = "tube-fed welding tool" + desc = "A bulky, cooler-burning welding tool that draws from a worn welding tank." + icon_state = "tubewelder" + max_fuel = 10 + w_class = ITEMSIZE_NO_CONTAINER + matter = null + toolspeed = 1.25 + change_icons = 0 + flame_intensity = 1 + eye_safety_modifier = 1 + always_process = TRUE + var/obj/item/weapon/weldpack/mounted_pack = null + +/obj/item/weapon/weldingtool/tubefed/New(location) + ..() + if(istype(location, /obj/item/weapon/weldpack)) + var/obj/item/weapon/weldpack/holder = location + mounted_pack = holder + else + qdel(src) + +/obj/item/weapon/weldingtool/tubefed/Destroy() + mounted_pack.nozzle = null + mounted_pack = null + return ..() + +/obj/item/weapon/weldingtool/tubefed/process() + if(mounted_pack) + if(!istype(mounted_pack.loc,/mob/living/carbon/human)) + mounted_pack.return_nozzle() + else + var/mob/living/carbon/human/H = mounted_pack.loc + if(H.back != mounted_pack) + mounted_pack.return_nozzle() + + if(mounted_pack.loc != src.loc && src.loc != mounted_pack) + mounted_pack.return_nozzle() + visible_message("\The [src] retracts to its fueltank.") + + if(get_fuel() <= get_max_fuel()) + mounted_pack.reagents.trans_to_obj(src, 1) + + ..() + +/obj/item/weapon/weldingtool/tubefed/dropped(mob/user) + ..() + if(src.loc != user) + mounted_pack.return_nozzle() + to_chat(user, "\The [src] retracts to its fueltank.") + +/* + * Electric/Arc Welder + */ + +/obj/item/weapon/weldingtool/electric //AND HIS WELDING WAS ELECTRIC + name = "electric welding tool" + desc = "A welder which runs off of electricity." + icon_state = "arcwelder" + max_fuel = 0 //We'll handle the consumption later. + item_state = "ewelder" + var/obj/item/weapon/cell/power_supply //What type of power cell this uses + var/charge_cost = 24 //The rough equivalent of 1 unit of fuel, based on us wanting 10 welds per battery + var/cell_type = /obj/item/weapon/cell/device + var/use_external_power = 0 //If in a borg or hardsuit, this needs to = 1 + flame_color = "#00CCFF" // Blue-ish, to set it apart from the gas flames. + acti_sound = 'sound/effects/sparks4.ogg' + deac_sound = 'sound/effects/sparks4.ogg' + +/obj/item/weapon/weldingtool/electric/unloaded/New() + cell_type = null + +/obj/item/weapon/weldingtool/electric/New() + ..() + if(cell_type == null) + update_icon() + else if(cell_type) + power_supply = new cell_type(src) + else + power_supply = new /obj/item/weapon/cell/device(src) + update_icon() + +/obj/item/weapon/weldingtool/electric/get_cell() + return power_supply + +/obj/item/weapon/weldingtool/electric/examine(mob/user) + if(get_dist(src, user) > 1) + to_chat(user, desc) + else // The << need to stay, for some reason + if(power_supply) + user << text("\icon[] The [] has [] charge left.", src, src.name, get_fuel()) + else + user << text("\icon[] The [] has no power cell!", src, src.name) + +/obj/item/weapon/weldingtool/electric/get_fuel() + if(use_external_power) + var/obj/item/weapon/cell/external = get_external_power_supply() + if(external) + return external.charge + else if(power_supply) + return power_supply.charge + else + return 0 + +/obj/item/weapon/weldingtool/electric/get_max_fuel() + if(use_external_power) + var/obj/item/weapon/cell/external = get_external_power_supply() + if(external) + return external.maxcharge + else if(power_supply) + return power_supply.maxcharge + return 0 + +/obj/item/weapon/weldingtool/electric/remove_fuel(var/amount = 1, var/mob/M = null) + if(!welding) + return 0 + if(get_fuel() >= amount) + power_supply.checked_use(charge_cost) + if(use_external_power) + var/obj/item/weapon/cell/external = get_external_power_supply() + if(!external || !external.use(charge_cost)) //Take power from the borg... + power_supply.give(charge_cost) //Give it back to the cell. + if(M) + eyecheck(M) + update_icon() + return 1 + else + if(M) + to_chat(M, "You need more energy to complete this task.") + update_icon() + return 0 + +/obj/item/weapon/weldingtool/electric/attack_hand(mob/user as mob) + if(user.get_inactive_hand() == src) + if(power_supply) + power_supply.update_icon() + user.put_in_hands(power_supply) + power_supply = null + to_chat(user, "You remove the cell from the [src].") + setWelding(0) + update_icon() + return + ..() + else + return ..() + +/obj/item/weapon/weldingtool/electric/attackby(obj/item/weapon/W, mob/user as mob) + if(istype(W, /obj/item/weapon/cell)) + if(istype(W, /obj/item/weapon/cell/device)) + if(!power_supply) + user.drop_item() + W.loc = src + power_supply = W + to_chat(user, "You install a cell in \the [src].") + update_icon() + else + to_chat(user, "\The [src] already has a cell.") + else + to_chat(user, "\The [src] cannot use that type of cell.") + else + ..() + +/obj/item/weapon/weldingtool/electric/proc/get_external_power_supply() + if(isrobot(src.loc)) + var/mob/living/silicon/robot/R = src.loc + return R.cell + if(istype(src.loc, /obj/item/rig_module)) + var/obj/item/rig_module/module = src.loc + if(module.holder && module.holder.wearer) + var/mob/living/carbon/human/H = module.holder.wearer + if(istype(H) && H.back) + var/obj/item/weapon/rig/suit = H.back + if(istype(suit)) + return suit.cell + return null + +/obj/item/weapon/weldingtool/electric/mounted + use_external_power = 1 + +/obj/item/weapon/weldingtool/electric/mounted/cyborg + toolspeed = 0.5 + +#undef WELDER_FUEL_BURN_INTERVAL diff --git a/code/modules/food/kitchen/smartfridge.dm b/code/modules/food/kitchen/smartfridge.dm index b7c3ac443f4..d1b93812160 100644 --- a/code/modules/food/kitchen/smartfridge.dm +++ b/code/modules/food/kitchen/smartfridge.dm @@ -10,11 +10,8 @@ idle_power_usage = 5 active_power_usage = 100 flags = NOREACT -<<<<<<< HEAD var/max_n_of_items = 999 // Sorry but the BYOND infinite loop detector doesn't look things over 1000. //VOREStation Edit - Non-global -======= - var/global/max_n_of_items = 999 // Sorry but the BYOND infinite loop detector doesn't look things over 1000. ->>>>>>> 3155d58... Merge pull request #5735 from Neerti/hopefully_last_master_sync + //var/global/max_n_of_items = 999 // Sorry but the BYOND infinite loop detector doesn't look things over 1000. var/icon_on = "smartfridge" var/icon_off = "smartfridge-off" var/icon_panel = "smartfridge-panel" diff --git a/code/modules/xenoarcheaology/artifacts/autocloner.dm b/code/modules/xenoarcheaology/artifacts/autocloner.dm index d0568b2080b..3370f3f8521 100644 --- a/code/modules/xenoarcheaology/artifacts/autocloner.dm +++ b/code/modules/xenoarcheaology/artifacts/autocloner.dm @@ -21,22 +21,13 @@ //33% chance to spawn nasties if(prob(33)) -<<<<<<< HEAD - spawn_type = pick(\ - /mob/living/simple_animal/hostile/giant_spider/nurse,\ - /mob/living/simple_animal/hostile/alien,\ - /mob/living/simple_animal/hostile/bear,\ - /mob/living/simple_animal/hostile/carp,\ - /mob/living/simple_animal/hostile/creature\ - ) // Vorestation Edits -======= spawn_type = pick( /mob/living/simple_mob/animal/giant_spider/nurse, /mob/living/simple_mob/animal/space/alien, /mob/living/simple_mob/animal/space/bear, + /mob/living/simple_mob/carp,\ // Vorestation edit /mob/living/simple_mob/creature, /mob/living/simple_mob/slime/xenobio) ->>>>>>> 3155d58... Merge pull request #5735 from Neerti/hopefully_last_master_sync else spawn_type = pick(\ /mob/living/simple_mob/animal/passive/cat, diff --git a/code/modules/xenoarcheaology/artifacts/replicator.dm b/code/modules/xenoarcheaology/artifacts/replicator.dm index 7e27528aeb3..2adc23ca7df 100644 --- a/code/modules/xenoarcheaology/artifacts/replicator.dm +++ b/code/modules/xenoarcheaology/artifacts/replicator.dm @@ -26,14 +26,9 @@ /obj/item/roller, /obj/structure/closet/crate, /obj/structure/closet/acloset, -<<<<<<< HEAD - /mob/living/simple_animal/hostile/mimic/crate, - /mob/living/simple_animal/hostile/viscerator, - /mob/living/simple_animal/hostile/hivebot, -======= + /mob/living/simple_mob/mimic/crate, // Vorestation edit /mob/living/simple_mob/mechanical/viscerator, /mob/living/simple_mob/mechanical/hivebot, ->>>>>>> 3155d58... Merge pull request #5735 from Neerti/hopefully_last_master_sync /obj/item/device/analyzer, /obj/item/device/camera, /obj/item/device/flash, diff --git a/code/modules/xenoarcheaology/finds/special.dm b/code/modules/xenoarcheaology/finds/special.dm index d467af7a4b2..0798b4fcfbd 100644 --- a/code/modules/xenoarcheaology/finds/special.dm +++ b/code/modules/xenoarcheaology/finds/special.dm @@ -87,11 +87,7 @@ if(charges >= 3) if(prob(5)) charges -= 1 -<<<<<<< HEAD - var/spawn_type = pick(/mob/living/simple_animal/hostile/creature/vore) // Vorestation Edit -======= var/spawn_type = pick(/mob/living/simple_mob/creature) ->>>>>>> 3155d58... Merge pull request #5735 from Neerti/hopefully_last_master_sync new spawn_type(pick(view(1,src))) playsound(src.loc, pick('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg'), 50, 1, -3) diff --git a/maps/RandomZLevels/wildwest.dm b/maps/RandomZLevels/wildwest.dm index da7377e0b99..6464339edb0 100644 --- a/maps/RandomZLevels/wildwest.dm +++ b/maps/RandomZLevels/wildwest.dm @@ -1,4 +1,3 @@ -<<<<<<< HEAD /* Code for the Wild West map by Brotemis * Contains: * Wish Granter @@ -91,7 +90,7 @@ if("Peace") user << "Whatever alien sentience that the Wish Granter possesses is satisfied with your wish. There is a distant wailing as the last of the Faithless begin to die, then silence." user << "You feel as if you just narrowly avoided a terrible fate..." - for(var/mob/living/simple_animal/hostile/faithless/F in living_mob_list) + for(var/mob/living/simple_mob/faithless/F in living_mob_list) F.health = -10 F.stat = 2 F.icon_state = "faithless_dead" @@ -171,179 +170,4 @@ C << "You have regenerated." C.visible_message("[usr] appears to wake from the dead, having healed all wounds.") C.update_canmove() - return 1 -======= -/* Code for the Wild West map by Brotemis - * Contains: - * Wish Granter - * Meat Grinder - */ - -/* - * Wish Granter - */ -/obj/machinery/wish_granter_dark - name = "Wish Granter" - desc = "You're not so sure about this, anymore..." - icon = 'icons/obj/device.dmi' - icon_state = "syndbeacon" - - anchored = 1 - density = 1 - use_power = 0 - - var/chargesa = 1 - var/insistinga = 0 - -/obj/machinery/wish_granter_dark/attack_hand(var/mob/living/carbon/human/user as mob) - usr.set_machine(src) - - if(chargesa <= 0) - user << "The Wish Granter lies silent." - return - - else if(!istype(user, /mob/living/carbon/human)) - user << "You feel a dark stirring inside of the Wish Granter, something you want nothing of. Your instincts are better than any man's." - return - - else if(is_special_character(user)) - user << "Even to a heart as dark as yours, you know nothing good will come of this. Something instinctual makes you pull away." - - else if (!insistinga) - user << "Your first touch makes the Wish Granter stir, listening to you. Are you really sure you want to do this?" - insistinga++ - - else - chargesa-- - insistinga = 0 - var/wish = input("You want...","Wish") as null|anything in list("Power","Wealth","Immortality","To Kill","Peace") - switch(wish) - if("Power") - user << "Your wish is granted, but at a terrible cost..." - user << "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart." - if (!(LASER in user.mutations)) - user.mutations.Add(LASER) - user << "You feel pressure building behind your eyes." - if (!(COLD_RESISTANCE in user.mutations)) - user.mutations.Add(COLD_RESISTANCE) - user << "Your body feels warm." - if (!(XRAY in user.mutations)) - user.mutations.Add(XRAY) - user.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS) - user.see_in_dark = 8 - user.see_invisible = SEE_INVISIBLE_LEVEL_TWO - user << "The walls suddenly disappear." - user.dna.mutantrace = "shadow" - user.update_mutantrace() - if("Wealth") - user << "Your wish is granted, but at a terrible cost..." - user << "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart." - new /obj/structure/closet/syndicate/resources/everything(loc) - user.dna.mutantrace = "shadow" - user.update_mutantrace() - if("Immortality") - user << "Your wish is granted, but at a terrible cost..." - user << "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart." - user.verbs += /mob/living/carbon/proc/immortality - user.dna.mutantrace = "shadow" - user.update_mutantrace() - if("To Kill") - user << "Your wish is granted, but at a terrible cost..." - user << "The Wish Granter punishes you for your wickedness, claiming your soul and warping your body to match the darkness in your heart." - ticker.mode.traitors += user.mind - user.mind.special_role = "traitor" - var/datum/objective/hijack/hijack = new - hijack.owner = user.mind - user.mind.objectives += hijack - user << "Your inhibitions are swept away, the bonds of loyalty broken, you are free to murder as you please!" - var/obj_count = 1 - for(var/datum/objective/OBJ in user.mind.objectives) - user << "Objective #[obj_count]: [OBJ.explanation_text]" - obj_count++ - user.dna.mutantrace = "shadow" - user.update_mutantrace() - if("Peace") - user << "Whatever alien sentience that the Wish Granter possesses is satisfied with your wish. There is a distant wailing as the last of the Faithless begin to die, then silence." - user << "You feel as if you just narrowly avoided a terrible fate..." - for(var/mob/living/simple_mob/faithless/F in living_mob_list) - F.health = -10 - F.stat = 2 - F.icon_state = "faithless_dead" - - -///////////////Meatgrinder////////////// - - -/obj/effect/meatgrinder - name = "Meat Grinder" - desc = "What is that thing?" - density = 1 - anchored = 1 - icon = 'icons/mob/critter.dmi' - icon_state = "blob" - var/triggerproc = "explode" //name of the proc thats called when the mine is triggered - var/triggered = 0 - -/obj/effect/meatgrinder/New() - icon_state = "blob" - -/obj/effect/meatgrinder/HasEntered(AM as mob|obj) - Bumped(AM) - -/obj/effect/meatgrinder/Bumped(mob/M as mob|obj) - - if(triggered) return - - if(istype(M, /mob/living/carbon/human) || istype(M, /mob/living/carbon/monkey)) - for(var/mob/O in viewers(world.view, src.loc)) - O << "[M] triggered the \icon[src] [src]" - triggered = 1 - call(src,triggerproc)(M) - -/obj/effect/meatgrinder/proc/triggerrad1(mob) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - for(var/mob/O in viewers(world.view, src.loc)) - s.set_up(3, 1, src) - s.start() - explosion(mob, 1, 0, 0, 0) - spawn(0) - qdel(src) - -/obj/effect/meatgrinder - name = "Meat Grinder" - icon_state = "blob" - triggerproc = "triggerrad1" - - -/////For the Wishgranter/////////// - -/mob/living/carbon/proc/immortality() - set category = "Immortality" - set name = "Resurrection" - - var/mob/living/carbon/C = usr - if(!C.stat) - C << "You're not dead yet!" - return - C << "Death is not your end!" - - spawn(rand(800,1200)) - if(C.stat == DEAD) - dead_mob_list -= C - living_mob_list += C - C.stat = CONSCIOUS - C.tod = null - C.setToxLoss(0) - C.setOxyLoss(0) - C.setCloneLoss(0) - C.SetParalysis(0) - C.SetStunned(0) - C.SetWeakened(0) - C.radiation = 0 - C.heal_overall_damage(C.getBruteLoss(), C.getFireLoss()) - C.reagents.clear_reagents() - C << "You have regenerated." - C.visible_message("[usr] appears to wake from the dead, having healed all wounds.") - C.update_canmove() - return 1 ->>>>>>> 3155d58... Merge pull request #5735 from Neerti/hopefully_last_master_sync + return 1 \ No newline at end of file