diff --git a/code/__defines/planets.dm b/code/__defines/planets.dm index e8f526382e..98b10b328a 100644 --- a/code/__defines/planets.dm +++ b/code/__defines/planets.dm @@ -10,6 +10,5 @@ #define WEATHER_HOT "hot" #define WEATHER_BLOOD_MOON "blood moon" // For admin fun or cult later on. -#define PLANET_PROCESS_WEATHER 0x1 -#define PLANET_PROCESS_SUN 0x2 -#define PLANET_PROCESS_TEMP 0x4 \ No newline at end of file +#define PLANET_PROCESS_SUN 0x1 +#define PLANET_PROCESS_TEMP 0x2 \ No newline at end of file diff --git a/code/controllers/Processes/planet.dm b/code/controllers/Processes/planet.dm index 9ab541c80d..770b3a5e87 100644 --- a/code/controllers/Processes/planet.dm +++ b/code/controllers/Processes/planet.dm @@ -21,6 +21,7 @@ var/datum/controller/process/planet/planet_controller = null for(var/datum/planet/P in planets) if(OT.z in P.expected_z_levels) P.planet_floors |= OT + OT.vis_contents |= P.weather_holder.visuals break outdoor_turfs.Cut() //Why were you in there INCORRECTLY? @@ -36,6 +37,7 @@ var/datum/controller/process/planet/planet_controller = null var/datum/planet/P = planet if(T.z in P.expected_z_levels) P.planet_floors -= T + T.vis_contents -= P.weather_holder.visuals /datum/controller/process/planet/doWork() if(outdoor_turfs.len || planetary_walls.len) @@ -44,19 +46,6 @@ var/datum/controller/process/planet/planet_controller = null for(var/datum/planet/P in planets) P.process(schedule_interval / 10) SCHECK //Your process() really shouldn't take this long... - //Weather style needs redrawing - if(P.needs_work & PLANET_PROCESS_WEATHER) - P.needs_work &= ~PLANET_PROCESS_WEATHER - var/image/new_overlay = image(icon = P.weather_holder.current_weather.icon, icon_state = P.weather_holder.current_weather.icon_state) - new_overlay.plane = PLANE_PLANETLIGHTING - //Redraw weather icons - for(var/T in P.planet_floors) - var/turf/simulated/turf = T - // turf.overlays -= turf.weather_overlay - turf.weather_overlay = new_overlay - // turf.overlays += turf.weather_overlay - turf.update_icon() - SCHECK //Sun light needs changing if(P.needs_work & PLANET_PROCESS_SUN) diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 1bc9fa761d..0a1f358eb4 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -450,7 +450,7 @@ item_state_slots = list(slot_r_hand_str = "medicalpack", slot_l_hand_str = "medicalpack") foldable = null max_w_class = ITEMSIZE_NORMAL - can_hold = list(/obj/item/organ, /obj/item/weapon/reagent_containers/food, /obj/item/weapon/reagent_containers/glass) + can_hold = list(/obj/item/organ) max_storage_space = ITEMSIZE_COST_NORMAL * 5 // Formally 21. Odd numbers are bad. use_to_pickup = 1 // for picking up broken bulbs, not that most people will try diff --git a/code/game/objects/random/guns_and_ammo.dm b/code/game/objects/random/guns_and_ammo.dm index a910881a76..62dde5a3df 100644 --- a/code/game/objects/random/guns_and_ammo.dm +++ b/code/game/objects/random/guns_and_ammo.dm @@ -1,6 +1,16 @@ +/obj/random/gun/random + name = "Random Weapon" + desc = "This is a random energy or ballistic weapon." + icon = 'icons/obj/gun.dmi' + icon_state = "energystun100" + +/obj/random/gun/random/item_to_spawn() + return pick(prob(5);/obj/random/energy, + prob(5);/obj/random/projectile/random) + /obj/random/energy name = "Random Energy Weapon" - desc = "This is a random security weapon." + desc = "This is a random weapon." icon = 'icons/obj/gun.dmi' icon_state = "energykill100" @@ -83,6 +93,18 @@ prob(2);/obj/item/weapon/gun/projectile/automatic/wt550, prob(1);/obj/item/weapon/gun/projectile/shotgun/pump/combat) +/obj/random/projectile/shotgun + name = "Random Projectile Weapon" + desc = "This is a random projectile weapon." + icon = 'icons/obj/gun.dmi' + icon_state = "shotgun" + +/obj/random/projectile/item_to_spawn() + return pick(prob(4);/obj/item/weapon/gun/projectile/shotgun/doublebarrel, + prob(3);/obj/item/weapon/gun/projectile/shotgun/doublebarrel/sawn, + prob(3);/obj/item/weapon/gun/projectile/shotgun/pump, + prob(1);/obj/item/weapon/gun/projectile/shotgun/pump/combat) + /obj/random/handgun name = "Random Handgun" desc = "This is a random sidearm." @@ -126,4 +148,256 @@ prob(4);/obj/item/ammo_magazine/m45/rubber, prob(4);/obj/item/ammo_magazine/m45/flash, prob(2);/obj/item/ammo_magazine/m9mmt, - prob(6);/obj/item/ammo_magazine/m9mmt/rubber) \ No newline at end of file + prob(6);/obj/item/ammo_magazine/m9mmt/rubber) + +/obj/random/projectile/random + name = "Random Projectile Weapon" + desc = "This is a random weapon." + icon = 'icons/obj/gun.dmi' + icon_state = "revolver" + +/obj/random/projectile/random/item_to_spawn() + return pick(prob(3);/obj/random/multiple/gun/projectile/handgun, + prob(2);/obj/random/multiple/gun/projectile/smg, + prob(2);/obj/random/multiple/gun/projectile/shotgun, + prob(1);/obj/random/multiple/gun/projectile/rifle) + +/obj/random/multiple/gun/projectile/smg + name = "random smg projectile gun" + desc = "Loot for PoIs." + icon = 'icons/obj/gun.dmi' + icon_state = "saber" + +/obj/random/multiple/gun/projectile/smg/item_to_spawn() + return pick( + prob(3);list( + /obj/item/weapon/gun/projectile/automatic/wt550, + /obj/item/ammo_magazine/m9mmt, + /obj/item/ammo_magazine/m9mmt + ), + prob(3);list( + /obj/item/weapon/gun/projectile/automatic/mini_uzi, + /obj/item/ammo_magazine/m45uzi, + /obj/item/ammo_magazine/m45uzi + ), + prob(3);list( + /obj/item/weapon/gun/projectile/automatic/tommygun, + /obj/item/ammo_magazine/m45tommy, + /obj/item/ammo_magazine/m45tommy + ), + prob(2);list( + /obj/item/weapon/gun/projectile/automatic/c20r, + /obj/item/ammo_magazine/m10mm, + /obj/item/ammo_magazine/m10mm + ), + prob(1);list( + /obj/item/weapon/gun/projectile/automatic/p90, + /obj/item/ammo_magazine/m9mmp90 + ) + ) + +/obj/random/multiple/gun/projectile/rifle + name = "random rifle projectile gun" + desc = "Loot for PoIs." + icon = 'icons/obj/gun.dmi' + icon_state = "carbine" + +//Concerns about the bullpup, but currently seems to be only a slightly stronger z8. But we shall see. + +/obj/random/multiple/gun/projectile/rifle/item_to_spawn() + return pick( + prob(2);list( + /obj/item/weapon/gun/projectile/automatic/sts35, + /obj/item/ammo_magazine/m545, + /obj/item/ammo_magazine/m545 + ), + prob(2);list( + /obj/item/weapon/gun/projectile/automatic/z8, + /obj/item/ammo_magazine/m762, + /obj/item/ammo_magazine/m762 + ), + prob(4);list( + /obj/item/weapon/gun/projectile/shotgun/pump/rifle, + /obj/item/ammo_magazine/clip/c762, + /obj/item/ammo_magazine/clip/c762 + ), + prob(3);list( + /obj/item/weapon/gun/projectile/shotgun/pump/rifle/lever, + /obj/item/ammo_magazine/clip/c762, + /obj/item/ammo_magazine/clip/c762 + ), + prob(1);list( + /obj/item/weapon/gun/projectile/garand, + /obj/item/ammo_magazine/m762garand, + /obj/item/ammo_magazine/m762garand + ), + prob(1);list( + /obj/item/weapon/gun/projectile/automatic/bullpup, + /obj/item/ammo_magazine/m762, + /obj/item/ammo_magazine/m762 + ) + ) + +/obj/random/multiple/gun/projectile/handgun + name = "random handgun projectile gun" + desc = "Loot for PoIs." + icon = 'icons/obj/gun.dmi' + icon_state = "revolver" + +/obj/random/multiple/gun/projectile/handgun/item_to_spawn() + return pick( + prob(5);list( + /obj/item/weapon/gun/projectile/colt, + /obj/item/ammo_magazine/m45, + /obj/item/ammo_magazine/m45 + ), + prob(4);list( + /obj/item/weapon/gun/projectile/contender, + /obj/item/ammo_magazine/s357, + /obj/item/ammo_magazine/s357 + ), + prob(3);list( + /obj/item/weapon/gun/projectile/contender/tacticool, + /obj/item/ammo_magazine/s357, + /obj/item/ammo_magazine/s357 + ), + prob(2);list( + /obj/item/weapon/gun/projectile/deagle, + /obj/item/ammo_magazine/m44, + /obj/item/ammo_magazine/m44 + ), + prob(1);list( + /obj/item/weapon/gun/projectile/deagle/camo, + /obj/item/ammo_magazine/m44, + /obj/item/ammo_magazine/m44 + ), + prob(1);list( + /obj/item/weapon/gun/projectile/deagle/gold, + /obj/item/ammo_magazine/m44, + /obj/item/ammo_magazine/m44 + ), + prob(4);list( + /obj/item/weapon/gun/projectile/derringer, + /obj/item/ammo_magazine/s357, + /obj/item/ammo_magazine/s357 + ), + prob(5);list( + /obj/item/weapon/gun/projectile/luger, + /obj/item/ammo_magazine/m9mm/compact, + /obj/item/ammo_magazine/m9mm/compact + ), + prob(4);list( + /obj/item/weapon/gun/projectile/luger/brown, + /obj/item/ammo_magazine/m9mm/compact, + /obj/item/ammo_magazine/m9mm/compact + ), + prob(5);list( + /obj/item/weapon/gun/projectile/sec, + /obj/item/ammo_magazine/m45, + /obj/item/ammo_magazine/m45 + ), + prob(4);list( + /obj/item/weapon/gun/projectile/sec/wood, + /obj/item/ammo_magazine/m45, + /obj/item/ammo_magazine/m45 + ), + prob(5);list( + /obj/item/weapon/gun/projectile/p92x, + /obj/item/ammo_magazine/m9mm, + /obj/item/ammo_magazine/m9mm + ), + prob(4);list( + /obj/item/weapon/gun/projectile/p92x/brown, + /obj/item/ammo_magazine/m9mm, + /obj/item/ammo_magazine/m9mm + ), + prob(2);list( + /obj/item/weapon/gun/projectile/p92x/large, + /obj/item/ammo_magazine/m9mm/large, + /obj/item/ammo_magazine/m9mm/large + ), + prob(5);list( + /obj/item/weapon/gun/projectile/pistol, + /obj/item/ammo_magazine/m9mm/compact, + /obj/item/ammo_magazine/m9mm/compact + ), + prob(2);list( + /obj/item/weapon/gun/projectile/silenced, + /obj/item/ammo_magazine/m45, + /obj/item/ammo_magazine/m45 + ), + prob(2);list( + /obj/item/weapon/gun/projectile/revolver, + /obj/item/ammo_magazine/s357, + /obj/item/ammo_magazine/s357 + ), + prob(4);list( + /obj/item/weapon/gun/projectile/revolver/deckard, + /obj/item/ammo_magazine/s38, + /obj/item/ammo_magazine/s38 + ), + prob(4);list( + /obj/item/weapon/gun/projectile/revolver/detective, + /obj/item/ammo_magazine/s38, + /obj/item/ammo_magazine/s38 + ), + prob(2);list( + /obj/item/weapon/gun/projectile/revolver/judge, + /obj/item/ammo_magazine/clip/c12g, + /obj/item/ammo_magazine/clip/c12g, + /obj/item/ammo_magazine/clip/c12g + ), + prob(2);list( + /obj/item/weapon/gun/projectile/revolver/lemat, + /obj/item/ammo_magazine/s38, + /obj/item/ammo_magazine/s38, + /obj/item/ammo_magazine/clip/c12g + ), + prob(2);list( + /obj/item/weapon/gun/projectile/revolver/mateba, + /obj/item/ammo_magazine/s357, + /obj/item/ammo_magazine/s357 + ), + prob(2);list( + /obj/item/weapon/gun/projectile/revolver/webley, + /obj/item/ammo_magazine/s44, + /obj/item/ammo_magazine/s44 + ), + prob(1);list( + /obj/item/weapon/gun/projectile/revolver/webley/auto, + /obj/item/ammo_magazine/s44, + /obj/item/ammo_magazine/s44 + ) + ) + +/obj/random/multiple/gun/projectile/shotgun + name = "random shotgun projectile gun" + desc = "Loot for PoIs." + icon = 'icons/obj/gun.dmi' + icon_state = "shotgun" + +/obj/random/multiple/gun/projectile/shotgun/item_to_spawn() + return pick( + prob(4);list( + /obj/item/weapon/gun/projectile/shotgun/doublebarrel/pellet, + /obj/item/ammo_magazine/clip/c12g/pellet, + /obj/item/ammo_magazine/clip/c12g/pellet, + /obj/item/ammo_magazine/clip/c12g/pellet, + /obj/item/ammo_magazine/clip/c12g/pellet + ), + prob(3);list( + /obj/item/weapon/gun/projectile/shotgun/doublebarrel/sawn, + /obj/item/ammo_magazine/clip/c12g/pellet, + /obj/item/ammo_magazine/clip/c12g/pellet, + /obj/item/ammo_magazine/clip/c12g/pellet, + /obj/item/ammo_magazine/clip/c12g/pellet + ), + prob(3);list( + /obj/item/weapon/gun/projectile/shotgun/pump/slug, + /obj/item/weapon/storage/box/shotgunammo + ), + prob(1);list( + /obj/item/weapon/gun/projectile/shotgun/pump/combat, + /obj/item/weapon/storage/box/shotgunammo + ) + ) \ No newline at end of file diff --git a/code/game/objects/random/mapping.dm b/code/game/objects/random/mapping.dm index 57ff7acdcd..aba62d0806 100644 --- a/code/game/objects/random/mapping.dm +++ b/code/game/objects/random/mapping.dm @@ -92,8 +92,8 @@ /obj/random/multiple/minevault name = "random vault loot" desc = "Loot for mine vaults." - icon = 'icons/misc/mark.dmi' - icon_state = "rup" + icon = 'icons/obj/storage.dmi' + icon_state = "crate" /obj/random/multiple/minevault/item_to_spawn() return pick( diff --git a/code/game/objects/random/misc.dm b/code/game/objects/random/misc.dm index 29b597d460..c918425221 100644 --- a/code/game/objects/random/misc.dm +++ b/code/game/objects/random/misc.dm @@ -159,8 +159,8 @@ /obj/random/medical name = "Random Medicine" desc = "This is a random medical item." - icon = 'icons/obj/items.dmi' - icon_state = "advfirstaid" + icon = 'icons/obj/stacks.dmi' + icon_state = "traumakit" /obj/random/medical/item_to_spawn() return pick(prob(21);/obj/random/medical/lite, diff --git a/code/game/objects/random/mob.dm b/code/game/objects/random/mob.dm index 2043ef0240..3aefa9a84c 100644 --- a/code/game/objects/random/mob.dm +++ b/code/game/objects/random/mob.dm @@ -74,6 +74,23 @@ prob(1);/mob/living/simple_animal/hostile/goose, prob(20);/mob/living/simple_animal/giant_crab) + +/obj/random/mob/sif/peaceful + name = "Random Peaceful Sif Animal" + desc = "This is a random peaceful cold weather animal." + icon_state = "penguin" + + mob_returns_home = 1 + mob_wander_distance = 12 + +/obj/random/mob/sif/peaceful/item_to_spawn() + return pick(prob(30);/mob/living/simple_animal/retaliate/diyaab, + prob(15);/mob/living/simple_animal/crab, + prob(15);/mob/living/simple_animal/penguin, + prob(15);/mob/living/simple_animal/mouse, + prob(15);/mob/living/simple_animal/corgi/tamaskan, + prob(20);/mob/living/simple_animal/giant_crab) + /obj/random/mob/sif/hostile name = "Random Hostile Sif Animal" desc = "This is a random hostile cold weather animal." @@ -97,6 +114,18 @@ prob(33);/mob/living/simple_animal/hostile/giant_spider/hunter, prob(45);/mob/living/simple_animal/hostile/giant_spider) +/obj/random/mob/spider/nurse + name = "Random Nurse Spider" + desc = "This is a random nurse spider." + icon_state = "nurse" + + mob_returns_home = 1 + mob_wander_distance = 4 + +/obj/random/mob/spider/nurse/item_to_spawn() + return pick(prob(22);/mob/living/simple_animal/hostile/giant_spider/nurse/hat, + prob(45);/mob/living/simple_animal/hostile/giant_spider/nurse) + /obj/random/mob/spider/mutant name = "Random Mutant Spider" desc = "This is a random mutated spider." diff --git a/code/game/objects/random/spacesuits.dm b/code/game/objects/random/spacesuits.dm index cb4ec6d4e9..29bd799c5c 100644 --- a/code/game/objects/random/spacesuits.dm +++ b/code/game/objects/random/spacesuits.dm @@ -97,6 +97,31 @@ ) ) +/obj/random/multiple/voidsuit/medical + name = "Random Mining Voidsuit" + desc = "This is a random mining voidsuit." + icon = 'icons/obj/clothing/suits.dmi' + icon_state = "rig-mining" + +/obj/random/multiple/voidsuit/medical/item_to_spawn() + return pick( + prob(5);list( + /obj/item/clothing/suit/space/void/medical, + /obj/item/clothing/head/helmet/space/void/medical + ), + prob(1);list( + /obj/item/clothing/suit/space/void/medical/alt, + /obj/item/clothing/head/helmet/space/void/medical/alt + ), + prob(3);list( + /obj/item/clothing/suit/space/void/medical/bio, + /obj/item/clothing/head/helmet/space/void/medical/bio + ), + prob(4);list( + /obj/item/clothing/suit/space/void/medical/emt, + /obj/item/clothing/head/helmet/space/void/medical/emt + ) + ) /obj/random/rigsuit name = "Random rigsuit" diff --git a/code/game/objects/structures/loot_piles.dm b/code/game/objects/structures/loot_piles.dm index 353dbe31a7..96416e0229 100644 --- a/code/game/objects/structures/loot_piles.dm +++ b/code/game/objects/structures/loot_piles.dm @@ -830,3 +830,42 @@ Loot piles can be depleted, if loot_depleted is turned on. Note that players wh /obj/item/mecha_parts/mecha_equipment/repair_droid, /obj/item/mecha_parts/mecha_equipment/teleporter ) + +/obj/structure/loot_pile/surface/drone + name = "drone wreckage" + desc = "The ruins of some unfortunate drone. Perhaps something is salvageable." + icon = 'icons/mob/animal.dmi' + icon_state = "drone_dead" + +// Since the actual drone loot is a bit stupid in how it is handled, this is a sparse and empty list with items I don't exactly want in it. But until we can get the proper items in . . . + + common_loot = list( + /obj/random/tool, + /obj/item/stack/cable_coil/random, + /obj/random/tank, + /obj/random/tech_supply/component, + /obj/item/stack/material/steel{amount = 25}, + /obj/item/stack/material/glass{amount = 10}, + /obj/item/stack/material/plasteel{amount = 5}, + /obj/item/weapon/cell, + /obj/item/weapon/material/shard + ) + + uncommon_loot = list( + /obj/item/weapon/cell/high, + /obj/item/robot_parts/robot_component/actuator, + /obj/item/robot_parts/robot_component/armour, + /obj/item/robot_parts/robot_component/binary_communication_device, + /obj/item/robot_parts/robot_component/camera, + /obj/item/robot_parts/robot_component/diagnosis_unit, + /obj/item/robot_parts/robot_component/radio + ) + + rare_loot = list( + /obj/item/weapon/cell/super, + /obj/item/borg/upgrade/restart, + /obj/item/borg/upgrade/jetpack, + /obj/item/borg/upgrade/tasercooler, + /obj/item/borg/upgrade/syndicate, + /obj/item/borg/upgrade/vtec + ) \ No newline at end of file diff --git a/code/game/turfs/simulated/dungeon/wall.dm b/code/game/turfs/simulated/dungeon/wall.dm index 156fddac6a..176c10142c 100644 --- a/code/game/turfs/simulated/dungeon/wall.dm +++ b/code/game/turfs/simulated/dungeon/wall.dm @@ -13,6 +13,9 @@ return /turf/simulated/wall/solidrock //for more stylish anti-cheese. + name = "solid rock" + desc = "This rock seems dense, impossible to drill." + description_info = "Probably not going to be able to drill or bomb your way through this, best to try and find a way around." icon_state = "bedrock" var/base_state = "bedrock" block_tele = TRUE diff --git a/code/game/turfs/simulated/floor_icon.dm b/code/game/turfs/simulated/floor_icon.dm index a7cab51424..cf5396aa96 100644 --- a/code/game/turfs/simulated/floor_icon.dm +++ b/code/game/turfs/simulated/floor_icon.dm @@ -84,9 +84,6 @@ var/image/no_ceiling_image = null if(!isnull(burnt) && (flooring.flags & TURF_CAN_BURN)) add_overlay(get_flooring_overlay("[flooring.icon_base]-burned-[burnt]","burned[burnt]")) // VOREStation Edit - Eris overlays - if(weather_overlay) - add_overlay(weather_overlay) - if(update_neighbors) for(var/turf/simulated/floor/F in range(src, 1)) if(F == src) diff --git a/code/game/turfs/simulated/outdoors/outdoors.dm b/code/game/turfs/simulated/outdoors/outdoors.dm index cd358b7d5e..729095a666 100644 --- a/code/game/turfs/simulated/outdoors/outdoors.dm +++ b/code/game/turfs/simulated/outdoors/outdoors.dm @@ -7,8 +7,6 @@ var/list/outdoor_turfs = list() var/edge_blending_priority = 0 // Outdoors var determines if the game should consider the turf to be 'outdoors', which controls certain things such as weather effects. var/outdoors = FALSE - // This holds the image for the current weather effect. - var/image/weather_overlay = null /turf/simulated/floor/outdoors name = "generic ground" @@ -32,7 +30,7 @@ var/list/outdoor_turfs = list() /turf/simulated/floor/Destroy() if(outdoors) planet_controller.unallocateTurf(src) - ..() + return ..() /turf/simulated/proc/make_outdoors() outdoors = TRUE @@ -44,20 +42,14 @@ var/list/outdoor_turfs = list() planet_controller.unallocateTurf(src) else // This is happening during map gen, if there's no planet_controller (hopefully). outdoor_turfs -= src - if(weather_overlay) - cut_overlay(weather_overlay) - qdel_null(weather_overlay) - update_icon() /turf/simulated/post_change() ..() // If it was outdoors and still is, it will not get added twice when the planet controller gets around to putting it in. if(outdoors) make_outdoors() - // outdoor_turfs += src else make_indoors() - // planet_controller.unallocateTurf(src) /turf/simulated/proc/update_icon_edge() if(edge_blending_priority) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 2b0158b5fc..8d26d11543 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -137,6 +137,8 @@ turf/attackby(obj/item/weapon/W as obj, mob/user as mob) animate(O, transform = turn(O.transform, -40), time = 4) sleep(4) animate(O, transform = turn(O.transform, 20), time = 2) + sleep(2) + O.update_transform() /turf/Enter(atom/movable/mover as mob|obj, atom/forget as mob|obj|turf|area) if(movement_disabled && usr.ckey != movement_disabled_exception) diff --git a/code/game/turfs/turf_changing.dm b/code/game/turfs/turf_changing.dm index 89940e5532..b355ec6328 100644 --- a/code/game/turfs/turf_changing.dm +++ b/code/game/turfs/turf_changing.dm @@ -39,7 +39,6 @@ var/old_dynamic_lighting = dynamic_lighting var/old_affecting_lights = affecting_lights var/old_lighting_overlay = lighting_overlay - var/old_weather_overlay = weather_overlay var/old_corners = corners //world << "Replacing [src.type] with [N]" @@ -58,9 +57,6 @@ if(old_fire) fire = old_fire - if(old_weather_overlay) - W.weather_overlay = old_weather_overlay - if (istype(W,/turf/simulated/floor)) W.RemoveLattice() @@ -85,9 +81,6 @@ if(old_fire) old_fire.RemoveFire() - if(old_weather_overlay) - W.weather_overlay = old_weather_overlay - if(tell_universe) universe.OnTurfChange(W) diff --git a/code/modules/client/preference_setup/loadout/loadout_suit.dm b/code/modules/client/preference_setup/loadout/loadout_suit.dm index 6b32034b31..9276384602 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit.dm @@ -455,4 +455,4 @@ datum/gear/suit/duster /datum/gear/suit/snowsuit/cargo display_name = "snowsuit, supply" path = /obj/item/clothing/suit/storage/snowsuit/cargo - allowed_roles = list("Quartermaster","shaft Miner","Cargo Technician","Head of Personnel") \ No newline at end of file + allowed_roles = list("Quartermaster","Shaft Miner","Cargo Technician","Head of Personnel") \ No newline at end of file diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index d48cda9dca..5768ed6fe6 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -60,7 +60,7 @@ var/global/list/severity_to_string = list(EVENT_LEVEL_MUNDANE = "Mundane", EVENT var/list/possible_events = list() for(var/datum/event_meta/EM in available_events) var/event_weight = get_weight(EM, active_with_role) - if(event_weight) + if(event_weight > 0) possible_events[EM] = event_weight if(possible_events.len == 0) diff --git a/code/modules/mob/living/simple_animal/aliens/mimic.dm b/code/modules/mob/living/simple_animal/aliens/mimic.dm index c13e1721ce..fff75ecbe7 100644 --- a/code/modules/mob/living/simple_animal/aliens/mimic.dm +++ b/code/modules/mob/living/simple_animal/aliens/mimic.dm @@ -49,10 +49,7 @@ qdel(src) /mob/living/simple_animal/hostile/mimic/MouseEntered(location, control, params) - ..() - closeToolTip(usr) - // ideally, we'd remove the code in ..() that opens the tooltip, - // but then we'd need to duplicate all the other code in ..() + return // Do not call parent: Mimics shouldn't have tooltips! // // Crate Mimic diff --git a/code/modules/mob/living/simple_animal/animals/giant_spider.dm b/code/modules/mob/living/simple_animal/animals/giant_spider.dm index defdfb9644..50b6300c7b 100644 --- a/code/modules/mob/living/simple_animal/animals/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/animals/giant_spider.dm @@ -84,13 +84,16 @@ Nurse Family var/atom/cocoon_target var/egg_inject_chance = 5 -// VOREStation Edit - Keep Nurse Hat Spiders -/mob/living/simple_animal/hostile/giant_spider/nurse/medical +/mob/living/simple_animal/hostile/giant_spider/nurse/hat desc = "Furry and beige, it makes you shudder to look at it. This one has brilliant green eyes and a tiny nurse hat." icon_state = "nursemed" icon_living = "nursemed" icon_dead = "nursemed_dead" + maxHealth = 50 + health = 50 + +// VOREStation Edit melee_damage_lower = 8 melee_damage_upper = 16 poison_type = "tramadol" diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 665f95f694..5691cf3ebc 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -2,9 +2,10 @@ /mob/new_player var/ready = 0 - var/spawning = 0//Referenced when you want to delete the new_player later on in the code. - var/totalPlayers = 0 //Player counts for the Lobby tab + var/spawning = 0 //Referenced when you want to delete the new_player later on in the code. + var/totalPlayers = 0 //Player counts for the Lobby tab var/totalPlayersReady = 0 + var/show_hidden_jobs = 0 //Show jobs that are set to "Never" in preferences var/datum/browser/panel universal_speak = 1 @@ -115,7 +116,7 @@ if(alert(src,"Are you sure you wish to observe? You will have to wait 1 minute before being able to respawn!","Player Setup","Yes","No") == "Yes") if(!client) return 1 - + //Make a new mannequin quickly, and allow the observer to take the appearance var/mob/living/carbon/human/dummy/mannequin = new() client.prefs.dress_preview_mob(mannequin) @@ -291,6 +292,10 @@ handle_server_news() return + if(href_list["hidden_jobs"]) + show_hidden_jobs = !show_hidden_jobs + LateChoices() + /mob/new_player/proc/handle_server_news() if(!client) return @@ -421,10 +426,18 @@ dat += "The station is currently undergoing crew transfer procedures.
" dat += "Choose from the following open/valid positions:
" + dat += "[show_hidden_jobs ? "Hide":"Show"] Hidden Jobs.
" for(var/datum/job/job in job_master.occupations) if(job && IsJobAvailable(job.title)) + // Checks for jobs with minimum age requirements if(job.minimum_character_age && (client.prefs.age < job.minimum_character_age)) continue + // Checks for jobs set to "Never" in preferences //TODO: Figure out a better way to check for this + if(!(client.prefs.GetJobDepartment(job, 1) & job.flag)) + if(!(client.prefs.GetJobDepartment(job, 2) & job.flag)) + if(!(client.prefs.GetJobDepartment(job, 3) & job.flag)) + if(!show_hidden_jobs && job.title != "Assistant") // Assistant is always an option + continue var/active = 0 // Only players with the job assigned and AFK for less than 10 minutes count as active for(var/mob/M in player_list) if(M.mind && M.client && M.mind.assigned_role == job.title && M.client.inactivity <= 10 * 60 * 10) diff --git a/code/modules/planet/weather.dm b/code/modules/planet/weather.dm index 512981d44e..a0fa603980 100644 --- a/code/modules/planet/weather.dm +++ b/code/modules/planet/weather.dm @@ -8,6 +8,9 @@ var/list/roundstart_weather_chances = list() var/next_weather_shift = null + // Holds the weather icon, using vis_contents. Documentation says an /atom/movable is required for placing inside another atom's vis_contents. + var/atom/movable/weather_visuals/visuals = null + /datum/weather_holder/New(var/source) ..() our_planet = source @@ -15,6 +18,7 @@ var/datum/weather/W = allowed_weather_types[A] if(istype(W)) W.holder = src + visuals = new() /datum/weather_holder/proc/change_weather(var/new_weather) var/old_light_modifier = null @@ -41,7 +45,7 @@ current_weather.process_effects() /datum/weather_holder/proc/update_icon_effects() - our_planet.needs_work |= PLANET_PROCESS_WEATHER + visuals.icon_state = current_weather.icon_state /datum/weather_holder/proc/update_temperature() temperature = Interpolate(current_weather.temp_low, current_weather.temp_high, weight = our_planet.sun_position) @@ -65,3 +69,9 @@ /datum/weather/proc/process_effects() return + +// All this does is hold the weather icon. +/atom/movable/weather_visuals + icon = 'icons/effects/weather.dmi' + mouse_opacity = 0 + plane = PLANE_PLANETLIGHTING diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index b3d861d4db..bbba664bd1 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -161,7 +161,7 @@ layer = ABOVE_MOB_LAYER use_power = 2 idle_power_usage = 2 - active_power_usage = 20 + active_power_usage = 10 // Previously 20. power_channel = LIGHT //Lights are calc'd via area so they dont need to be in the machine list var/on = 0 // 1 if on, 0 if off var/brightness_range = 10 // luminosity when on, also used in power calculation // VOREStation Edit - Put light range back how it was for now. diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index 94cf0ab21e..0c3c76caaf 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -472,7 +472,7 @@ /obj/item/ammo_magazine/m44 name = "magazine (.44)" - icon_state = "44" + icon_state = "m44" origin_tech = list(TECH_COMBAT = 2) mag_type = MAGAZINE caliber = ".44" diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 087543091d..183ead39d1 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -41,6 +41,9 @@ update_icon() +/obj/item/weapon/gun/projectile/shotgun/pump/slug + ammo_type = /obj/item/ammo_casing/a12g + /obj/item/weapon/gun/projectile/shotgun/pump/combat name = "combat shotgun" desc = "Built for close quarters combat, the Hephaestus Industries KS-40 is widely regarded as a weapon of choice for repelling boarders. Uses 12g rounds." diff --git a/code/modules/shieldgen/shield_diffuser.dm b/code/modules/shieldgen/shield_diffuser.dm index 1d2edb43cb..c30f8a7351 100644 --- a/code/modules/shieldgen/shield_diffuser.dm +++ b/code/modules/shieldgen/shield_diffuser.dm @@ -5,8 +5,8 @@ icon = 'icons/obj/machines/shielding.dmi' icon_state = "fdiffuser_on" use_power = 2 - idle_power_usage = 100 - active_power_usage = 2000 + idle_power_usage = 25 // Previously 100. + active_power_usage = 500 // Previously 2000 anchored = 1 density = 0 level = 1 diff --git a/code/modules/xenoarcheaology/finds/misc.dm b/code/modules/xenoarcheaology/finds/misc.dm index 129033bf6e..cc02a7f41b 100644 --- a/code/modules/xenoarcheaology/finds/misc.dm +++ b/code/modules/xenoarcheaology/finds/misc.dm @@ -19,6 +19,20 @@ else set_light(3, 3, "#33CC33") +/obj/machinery/crystal/alt + name = "Crystal" + icon = 'icons/obj/mining.dmi' + icon_state = "crystal" + density = TRUE + anchored = TRUE + +/obj/machinery/crystal/alt/New() + if(prob(50)) + icon_state = "crystal2" + set_light(3, 3, "#CC00CC") + else + set_light(3, 3, "#33CC33") + /obj/machinery/crystal/ice //slightly more thematic crystals name = "ice crystal" desc = "A large crystalline ice formation." diff --git a/html/changelog.html b/html/changelog.html index 6f16ef8461..ae3d6222bd 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -53,6 +53,31 @@ -->
+

28 April 2018

+

Anewbe updated:

+ +

Arokha updated:

+ +

Atermonera updated:

+ +

Cerebulon updated:

+ +

schnayy updated:

+ +

19 April 2018

Anewbe updated: