From 18e52e6a09cf0543cab199998b869cbf2cea465a Mon Sep 17 00:00:00 2001 From: panurgomatic Date: Tue, 2 Nov 2010 06:44:11 +0000 Subject: [PATCH] - Made facehugger ignore mobs disease. - Added disease longevity - Added magboots. They prevent slipping. In space or on wet floors. Found in EVA. - Small meteor fixes. - Some comments and general faggotry. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@364 316c924e-a436-60f5-8080-3fe189b3f50e --- code/ATMOSPHERICS/components/filter.dm | 10 +-- code/WorkInProgress/Chemistry-Machinery.dm | 2 +- code/datums/disease.dm | 25 +++++-- code/defines/obj/clothing.dm | 5 +- code/game/gamemodes/events.dm | 2 + code/game/gamemodes/meteor/meteors.dm | 68 ++++++++++-------- code/game/objects/alien/facehugger.dm | 2 + code/game/objects/devices/PDA.dm | 2 +- code/game/objects/effect_system.dm | 2 +- code/game/objects/items/clothing.dm | 20 +++++- .../game/objects/items/weapons/clown_items.dm | 2 +- code/game/turf.dm | 50 ++++++++----- code/setup.dm | 2 + icons/mob/feet.dmi | Bin 2560 -> 2800 bytes icons/obj/clothing/shoes.dmi | Bin 2864 -> 3551 bytes maps/trunkmap.dmm | 8 +-- 16 files changed, 131 insertions(+), 69 deletions(-) diff --git a/code/ATMOSPHERICS/components/filter.dm b/code/ATMOSPHERICS/components/filter.dm index 8ecddc73847..05652a9350a 100644 --- a/code/ATMOSPHERICS/components/filter.dm +++ b/code/ATMOSPHERICS/components/filter.dm @@ -29,10 +29,12 @@ obj/machinery/atmospherics/filter var/filter_type = 0 /* Filter types: -0: Carbon Molecules: Plasma Toxin, Carbon Dioxide, Oxygen Agent B -1: Oxygen: Oxygen ONLY -2: Nitrogen: Nitrogen and Sleeping Agent -3: Carbon Dioxide: Carbon Dioxide ONLY +-1: Nothing + 0: Carbon Molecules: Plasma Toxin, Oxygen Agent B + 1: Oxygen: Oxygen ONLY + 2: Nitrogen: Nitrogen ONLY + 3: Carbon Dioxide: Carbon Dioxide ONLY + 4: Sleeping Agent (N2O) */ var/frequency = 0 diff --git a/code/WorkInProgress/Chemistry-Machinery.dm b/code/WorkInProgress/Chemistry-Machinery.dm index 05775e5dd8c..299ea2dfb1d 100644 --- a/code/WorkInProgress/Chemistry-Machinery.dm +++ b/code/WorkInProgress/Chemistry-Machinery.dm @@ -385,7 +385,7 @@ dat += "
Eject beaker[((R.total_volume&&R.reagent_list.len) ? "-- Empty beaker":"")]
" dat += "Close" - user << browse("PanD.E.M.I.C 2200
[dat]", "window=pandemic;size=575x400") + user << browse("[src.name]
[dat]", "window=pandemic;size=575x400") onclose(user, "pandemic") return diff --git a/code/datums/disease.dm b/code/datums/disease.dm index 81ecdcb5f4d..19dae7fb857 100644 --- a/code/datums/disease.dm +++ b/code/datums/disease.dm @@ -24,8 +24,8 @@ to null does not delete the object itself. Thank you. var/spread_type = AIRBORNE var/contagious_period = 0//the disease stage when it can be spread var/list/affected_species = list() - var/mob/affected_mob = null - var/holder = null + var/mob/affected_mob = null //the mob which is affected by disease. + var/holder = null //the atom containing the disease (mob or obj) var/carrier = 0.0 //there will be a small chance that the person will be a carrier var/curable = 1 //can this disease be cured? (By itself...) var/list/strain_data = list() //This is passed on to infectees @@ -34,6 +34,7 @@ to null does not delete the object itself. Thank you. var/permeability_mod = 1//permeability modifier coefficient. var/desc = null//description. Leave it null and this disease won't show in med records. var/severity = null//severity descr + var/longevity = 250//time in "ticks" the virus stays in inanimate object (blood stains, corpses, etc). In syringes, bottles and beakers it stays infinitely. /datum/disease/proc/stage_act() var/cure_present = has_cure() @@ -71,6 +72,8 @@ to null does not delete the object itself. Thank you. /mob/proc/contract_disease(var/datum/disease/virus, var/skip_this = 0, var/force_species_check=1) // world << "Contract_disease called by [src] with virus [virus]" + if(src.stat >=2) return + if(force_species_check) var/fail = 1 @@ -98,6 +101,7 @@ to null does not delete the object itself. Thank you. if(prob(99.9)) return src.resistances.Remove(virus.type)//the resistance is futile + /* var/list/clothing_areas = list() var/list/covers = list(UPPER_TORSO,LOWER_TORSO,LEGS,FEET,ARMS,HANDS) @@ -276,8 +280,17 @@ to null does not delete the object itself. Thank you. if(!src.holder) return if(prob(40)) src.spread(holder) - if(src.holder == src.affected_mob && affected_mob.stat < 2) - src.stage_act() + if(src.holder == src.affected_mob) + if(affected_mob.stat < 2) //he's alive + src.stage_act() + else //he's dead. + if(src.spread_type!=SPECIAL) + src.spread_type = CONTACT_GENERAL + src.affected_mob = null + if(!src.affected_mob) //the virus is in inanimate obj +// world << "[src] longevity = [src.longevity]" + if(--src.longevity<=0) + src.cure(0) return /datum/disease/proc/cure(var/resistance=1)//if resistance = 0, the mob won't develop resistance to disease @@ -291,8 +304,8 @@ to null does not delete the object itself. Thank you. return -/datum/disease/New(var/process=1)//adding the object to global list. List is processed by master controller. - if(process) +/datum/disease/New(var/process=1)//process = 1 - adding the object to global list. List is processed by master controller. + if(process) // Viruses in list are considered active. active_diseases += src /* diff --git a/code/defines/obj/clothing.dm b/code/defines/obj/clothing.dm index f81dd57438c..1afec170ce4 100644 --- a/code/defines/obj/clothing.dm +++ b/code/defines/obj/clothing.dm @@ -440,12 +440,15 @@ name = "galoshes" icon_state = "galoshes" permeability_coefficient = 0.05 + flags = NOSLIP /obj/item/clothing/shoes/magboots desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle." name = "magboots" - icon_state = "magboots" + icon_state = "magboots0" protective_temperature = 800 + heat_transfer_coefficient = 0.01 +// flags = NOSLIP //disabled by default /obj/item/clothing/shoes/clown_shoes desc = "Damn, thems some big shoes." diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index 66af86d1b53..4b4f3fe6699 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -265,12 +265,14 @@ D.strain_data["UI"] = H.dna.uni_identity D.strain_data["SE"] = H.dna.struc_enzymes D.carrier = 1 + D.holder = H D.affected_mob = H H.virus = D break else H.virus = new virus_type H.virus.affected_mob = H + H.virus.holder = H H.virus.carrier = 1 break diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index 9a7f2865ea6..c6352856b0d 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -24,41 +24,46 @@ /proc/spawn_meteor() - AGAIN - var/startside = pick(cardinal) var/startx var/starty var/endx var/endy + var/turf/pickedstart + var/turf/pickedgoal + var/max_i = 10//number of tries to spawn meteor. - switch(startside) - if(NORTH) - starty = world.maxy-1 - startx = rand(1, world.maxx-1) - endy = 1 - endx = rand(1, world.maxx-1) - if(EAST) - starty = rand(1,world.maxy-1) - startx = world.maxx-1 - endy = rand(1, world.maxy-1) - endx = 1 - if(SOUTH) - starty = 1 - startx = rand(1, world.maxx-1) - endy = world.maxy-1 - endx = rand(1, world.maxx-1) - if(WEST) - starty = rand(1, world.maxy-1) - startx = 1 - endy = rand(1,world.maxy-1) - endx = world.maxx-1 - var/turf/pickedstart = locate(startx, starty, 1) - var/turf/pickedgoal = locate(endx, endy, 1) + do + switch(startside) + if(NORTH) + starty = world.maxy-1 + startx = rand(1, world.maxx-1) + endy = 1 + endx = rand(1, world.maxx-1) + if(EAST) + starty = rand(1,world.maxy-1) + startx = world.maxx-1 + endy = rand(1, world.maxy-1) + endx = 1 + if(SOUTH) + starty = 1 + startx = rand(1, world.maxx-1) + endy = world.maxy-1 + endx = rand(1, world.maxx-1) + if(WEST) + starty = rand(1, world.maxy-1) + startx = 1 + endy = rand(1,world.maxy-1) + endx = world.maxx-1 + + pickedstart = locate(startx, starty, 1) + pickedgoal = locate(endx, endy, 1) + max_i-- + if(max_i<=0) return + + while (!istype(pickedstart, /turf/space) || locate(/obj/shield in pickedstart) || pickedstart.loc.name != "Space" ) //FUUUCK, should never happen. - if (!istype(pickedstart, /turf/space) || locate(/obj/shield in pickedstart) || pickedstart.loc.name != "Space" ) //FUUUCK, should never happen. - goto AGAIN var/obj/meteor/M if(rand(50)) @@ -67,7 +72,10 @@ M = new /obj/meteor/small( pickedstart ) M.dest = pickedgoal - walk_towards(M, M.dest, 1) + spawn(0) + walk_towards(M, M.dest, 1) + + return /obj/meteor name = "meteor" @@ -91,7 +99,7 @@ /obj/meteor/Bump(atom/A) spawn(0) - for(var/mob/M in view(A, null)) + for(var/mob/M in range(10, src)) if(!M.stat && !istype(M, /mob/living/silicon/ai)) //bad idea to shake an ai's view shake_camera(M, 3, 1) if (A) @@ -99,7 +107,7 @@ playsound(src.loc, 'meteorimpact.ogg', 40, 1) if (--src.hits <= 0) if(prob(15) && !istype(A, /obj/grille)) - explosion(loc, 0, 1, 2, 3) + explosion(src.loc, 0, 1, 2, 3) playsound(src.loc, "explosion", 50, 1) del(src) return diff --git a/code/game/objects/alien/facehugger.dm b/code/game/objects/alien/facehugger.dm index 271214da067..2a823ed392e 100644 --- a/code/game/objects/alien/facehugger.dm +++ b/code/game/objects/alien/facehugger.dm @@ -247,6 +247,8 @@ target.alien_egg_flag = 1 var/mob/trg = target src.death() + if(trg.virus) + trg.virus.cure(0) trg.contract_disease(new /datum/disease/alien_embryo(0)) return else diff --git a/code/game/objects/devices/PDA.dm b/code/game/objects/devices/PDA.dm index 5007ca9f27d..a4fac35c25c 100644 --- a/code/game/objects/devices/PDA.dm +++ b/code/game/objects/devices/PDA.dm @@ -1477,7 +1477,7 @@ Code: /obj/item/device/pda/clown/HasEntered(AM as mob|obj) //Clown PDA is slippery. if (istype(AM, /mob/living/carbon)) var/mob/M = AM - if ((istype(M, /mob/living/carbon/human) && istype(M:shoes, /obj/item/clothing/shoes/galoshes)) || M.m_intent == "walk") + if ((istype(M, /mob/living/carbon/human) && (istype(M:shoes, /obj/item/clothing/shoes) && M:shoes.flags&NOSLIP)) || M.m_intent == "walk") return if ((istype(M, /mob/living/carbon/human) && (M.real_name != src.owner) && (istype(src.cartridge, /obj/item/weapon/cartridge/clown)))) diff --git a/code/game/objects/effect_system.dm b/code/game/objects/effect_system.dm index 299a69dec30..88937afd7d6 100644 --- a/code/game/objects/effect_system.dm +++ b/code/game/objects/effect_system.dm @@ -681,7 +681,7 @@ steam.start() -- spawns the effect if (istype(AM, /mob/living/carbon)) var/mob/M = AM - if ((istype(M, /mob/living/carbon/human) && istype(M:shoes, /obj/item/clothing/shoes/galoshes))) + if (istype(M, /mob/living/carbon/human) && (istype(M:shoes, /obj/item/clothing/shoes) && M:shoes.flags&NOSLIP)) return M.pulling = null diff --git a/code/game/objects/items/clothing.dm b/code/game/objects/items/clothing.dm index 66746c54d5d..45206aec3f6 100644 --- a/code/game/objects/items/clothing.dm +++ b/code/game/objects/items/clothing.dm @@ -306,4 +306,22 @@ DEATH COMMANDO GAS MASK /obj/item/clothing/under/color/orange/mode = 3 /obj/item/clothing/under/color/orange/attack_self(mob/user as mob) - user << "There are no controls for the sensing equipment woven into the fabric." \ No newline at end of file + user << "There are no controls for the sensing equipment woven into the fabric." + + +/obj/item/clothing/shoes/magboots/attack_self(mob/user as mob) + if(src.flags&NOSLIP) + src.flags &= ~NOSLIP + icon_state = "magboots0" + user << "You disable the mag-pulse traction system." + else + src.flags |= NOSLIP + icon_state = "magboots1" + user << "You enable the mag-pulse traction system." + +/obj/item/clothing/shoes/magboots/examine() + ..() + var/state = "disabled" + if(src.flags&NOSLIP) + state = "enabled" + usr << "Its mag-pulse traction system appears to be [state]." \ No newline at end of file diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm index bb0c3e4f9e8..f08d08478a3 100644 --- a/code/game/objects/items/weapons/clown_items.dm +++ b/code/game/objects/items/weapons/clown_items.dm @@ -21,7 +21,7 @@ BIKE HORN /obj/item/weapon/bananapeel/HasEntered(AM as mob|obj) if (istype(AM, /mob/living/carbon)) var/mob/M = AM - if ((istype(M, /mob/living/carbon/human) && istype(M:shoes, /obj/item/clothing/shoes/galoshes))) + if (istype(M, /mob/living/carbon/human) && (isobj(M:shoes) && M:shoes.flags&NOSLIP)) return M.pulling = null diff --git a/code/game/turf.dm b/code/game/turf.dm index e0b880a8550..5054622b0bc 100644 --- a/code/game/turf.dm +++ b/code/game/turf.dm @@ -152,7 +152,7 @@ switch (src.wet) if(1) if (istype(M, /mob/living/carbon/human)) // Added check since monkeys don't have shoes - if ((M.m_intent == "run") && (!istype(M:shoes, /obj/item/clothing/shoes/galoshes))) + if ((M.m_intent == "run") && !(istype(M:shoes, /obj/item/clothing/shoes) && M:shoes.flags&NOSLIP)) M.pulling = null step(M, M.dir) M << "\blue You slipped on the wet floor!" @@ -718,32 +718,44 @@ turf/simulated/floor/proc/update_icon() // if (locate(/obj/movable, src)) // return 1 - if ((istype(A, /mob/) && src.x > 2 && src.x < (world.maxx - 1))) + if ((istype(A, /mob/) && src.x > 2 && src.x < (world.maxx - 1) && src.y > 2 && src.y < (world.maxy-1))) var/mob/M = A if ((!( M.handcuffed) && M.canmove)) var/prob_slip = 5 + var/mag_eq = 0 + if(istype(M, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + if(istype(H.shoes, /obj/item/clothing/shoes/magboots) && H.shoes.flags&NOSLIP) + mag_eq = 1 if (locate(/obj/grille, oview(1, M)) || locate(/obj/lattice, oview(1, M)) ) - if (!( M.l_hand )) - prob_slip -= 2 - else if (M.l_hand.w_class <= 2) - prob_slip -= 1 + if(mag_eq) + prob_slip = 0 + else + if (!( M.l_hand )) + prob_slip -= 2 + else if (M.l_hand.w_class <= 2) + prob_slip -= 1 - if (!( M.r_hand )) - prob_slip -= 2 - else if (M.r_hand.w_class <= 2) - prob_slip -= 1 + if (!( M.r_hand )) + prob_slip -= 2 + else if (M.r_hand.w_class <= 2) + prob_slip -= 1 else if (locate(/turf/unsimulated, oview(1, M)) || locate(/turf/simulated, oview(1, M))) - if (!( M.l_hand )) - prob_slip -= 1 - else if (M.l_hand.w_class <= 2) - prob_slip -= 0.5 + if(mag_eq) + prob_slip = 0 + else + if (!( M.l_hand )) + prob_slip -= 1 + else if (M.l_hand.w_class <= 2) + prob_slip -= 0.5 - if (!( M.r_hand )) - prob_slip -= 1 - else if (M.r_hand.w_class <= 2) - prob_slip -= 0.5 + if (!( M.r_hand )) + prob_slip -= 1 + else if (M.r_hand.w_class <= 2) + prob_slip -= 0.5 prob_slip = round(prob_slip) + if (prob_slip < 5) //next to something, but they might slip off if (prob(prob_slip) ) M << "\blue You slipped!" @@ -942,4 +954,4 @@ turf/simulated/floor/proc/update_icon() A.y = 3 spawn (0) if ((A && A.loc)) - A.loc.Entered(A) \ No newline at end of file + A.loc.Entered(A) diff --git a/code/setup.dm b/code/setup.dm index 5ac2142c4eb..ab4049058e2 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -100,6 +100,8 @@ #define MASKCOVERSMOUTH 2048 // on other items, these are just for mask/head #define HEADCOVERSMOUTH 2048 +#define NOSLIP 1024 //prevents from slipping on wet floors, in space etc + #define OPENCONTAINER 4096 // is an open container for chemistry purposes #define ONESIZEFITSALL 8192 // can be worn by fatties (or children? ugh) diff --git a/icons/mob/feet.dmi b/icons/mob/feet.dmi index 3bf7f36e63a859fd26596e8983fb74b2440726e6..252bef0624eb92481fb1518eaf05f6272bfe69ed 100644 GIT binary patch literal 2800 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 GAO0WRAgh}I literal 2864 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 diff --git a/maps/trunkmap.dmm b/maps/trunkmap.dmm index d993fa7b19a..332f051047d 100644 --- a/maps/trunkmap.dmm +++ b/maps/trunkmap.dmm @@ -512,7 +512,7 @@ "ajR" = (/obj/cable{icon_state = "2-8"; d1 = 2; d2 = 8},/turf/simulated/floor/plating,/area/maintenance/starboard) "ajS" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/maintenance/starboard) "ajT" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboard) -"ajU" = (/obj/item/weapon/screwdriver,/turf/simulated/floor/plating,/area/storage/tech) +"ajU" = (/obj/item/weapon/screwdriver,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plating,/area/storage/tech) "ajV" = (/turf/simulated/floor/plating,/area/storage/tech) "ajW" = (/obj/item/clothing/glasses/meson,/obj/machinery/power/apc{dir = 4; name = "Tech. Storage APC"; pixel_x = 24; pixel_y = 0},/obj/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/storage/tech) "ajX" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/grid,/area/turret_protected/ai) @@ -603,7 +603,7 @@ "alE" = (/obj/rack{dir = 4},/obj/item/weapon/tank/jetpack,/turf/simulated/floor,/area/ai_monitored/storage/eva) "alF" = (/obj/rack{dir = 8},/obj/item/clothing/suit/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/mask/medical,/turf/simulated/floor,/area/ai_monitored/storage/eva) "alG" = (/obj/rack{dir = 4},/obj/item/clothing/suit/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/mask/medical,/turf/simulated/floor,/area/ai_monitored/storage/eva) -"alH" = (/obj/rack{dir = 8},/turf/simulated/floor,/area/ai_monitored/storage/eva) +"alH" = (/obj/rack{dir = 8},/obj/item/clothing/shoes/magboots,/turf/simulated/floor,/area/ai_monitored/storage/eva) "alI" = (/obj/machinery/light{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/ai_monitored/storage/eva) "alJ" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"; initialize_directions = 5; layer = 3},/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva) "alK" = (/obj/machinery/atmospherics/pipe/simple{dir = 10; icon_state = "intact-f"; initialize_directions = 10; layer = 3},/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva) @@ -670,7 +670,7 @@ "amT" = (/obj/closet/wardrobe/red,/obj/machinery/light{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/security/main) "amU" = (/obj/grille,/obj/window/reinforced/west,/obj/window/reinforced/east,/obj/window/reinforced/south,/turf/simulated/floor/plating,/area/security/main) "amV" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 1; initialize_directions = 0; level = 1},/turf/simulated/floor,/area/ai_monitored/storage/eva) -"amW" = (/obj/rack{dir = 4},/turf/simulated/floor,/area/ai_monitored/storage/eva) +"amW" = (/obj/rack{dir = 4},/obj/item/clothing/shoes/magboots,/turf/simulated/floor,/area/ai_monitored/storage/eva) "amX" = (/obj/rack{dir = 8},/obj/item/weapon/tank/jetpack,/turf/simulated/floor,/area/ai_monitored/storage/eva) "amY" = (/obj/machinery/alarm{pixel_y = 22},/obj/item/weapon/sheet/metal{amount = 50},/obj/item/weapon/crowbar,/turf/simulated/floor,/area/ai_monitored/storage/eva) "amZ" = (/obj/table{icon_state = "tabledir"; dir = 9},/obj/item/weapon/sheet/metal{amount = 50},/turf/simulated/floor,/area/ai_monitored/storage/eva) @@ -1775,7 +1775,7 @@ "aIg" = (/obj/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/secondary/exit) "aIh" = (/turf/simulated/floor,/area/hallway/secondary/exit) "aIi" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor,/area/hallway/secondary/exit) -"aIj" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/hallway/secondary/exit) +"aIj" = (/obj/machinery/light{dir = 1},/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor,/area/hallway/secondary/exit) "aIk" = (/obj/cable{icon_state = "1-2"; d1 = 1; d2 = 2},/turf/simulated/floor,/area/hallway/secondary/exit) "aIl" = (/obj/machinery/door/firedoor/border_only{dir = 8},/turf/simulated/floor,/area/hallway/secondary/exit) "aIm" = (/obj/machinery/camera{c_tag = "Escape Shuttle Hallway Central"},/obj/machinery/power/apc{dir = 1; name = "Escape Hall APC"; pixel_y = 24},/obj/cable{icon_state = "0-2"; d2 = 2},/obj/cable,/turf/simulated/floor,/area/hallway/secondary/exit)