From ad227f09254184460c2847f55012f0c9b7b6e775 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Tue, 19 Feb 2013 14:18:55 +1000 Subject: [PATCH 1/6] removed debug string, bumped event intervals, decreased probability of some events Signed-off-by: Cael_Aislinn --- code/modules/events/event_dynamic.dm | 8 ++++---- code/modules/events/event_manager.dm | 10 +++++----- code/modules/events/infestation.dm | 2 +- code/modules/events/viral_infection.dm | 2 +- code/modules/events/viral_outbreak.dm | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/code/modules/events/event_dynamic.dm b/code/modules/events/event_dynamic.dm index 38e86ec0e5..731cc56551 100644 --- a/code/modules/events/event_dynamic.dm +++ b/code/modules/events/event_dynamic.dm @@ -47,13 +47,13 @@ possibleEvents[/datum/event/infestation] = 50 + 25 * active_with_role["Janitor"] possibleEvents[/datum/event/communications_blackout] = 50 + 25 * active_with_role["AI"] + active_with_role["Scientist"] * 25 - possibleEvents[/datum/event/ionstorm] = active_with_role["AI"] * 25 + active_with_role["Cyborg"] * 25 + active_with_role["Engineer"] * 10 + active_with_role["Scientist"] * 5 - possibleEvents[/datum/event/grid_check] = 10 * active_with_role["Engineer"] + possibleEvents[/datum/event/ionstorm] = 25 + active_with_role["AI"] * 25 + active_with_role["Cyborg"] * 25 + active_with_role["Engineer"] * 10 + active_with_role["Scientist"] * 5 + possibleEvents[/datum/event/grid_check] = 25 + 10 * active_with_role["Engineer"] possibleEvents[/datum/event/electrical_storm] = 75 + 25 * active_with_role["Janitor"] + 5 * active_with_role["Engineer"] if(!spacevines_spawned) possibleEvents[/datum/event/spacevine] = 5 + 10 * active_with_role["Engineer"] - if(active_with_role["Engineer"] > 0 && minutes_passed >= 30) // Give engineers time to set up engine + if(minutes_passed >= 30) // Give engineers time to set up engine possibleEvents[/datum/event/meteor_wave] = 20 * active_with_role["Engineer"] possibleEvents[/datum/event/meteor_shower] = 80 * active_with_role["Engineer"] possibleEvents[/datum/event/blob] = 30 * active_with_role["Engineer"] @@ -64,8 +64,8 @@ possibleEvents[/datum/event/spontaneous_appendicitis] = active_with_role["Medical"] * 75 possibleEvents[/datum/event/viral_outbreak] = active_with_role["Medical"] * 5 + possibleEvents[/datum/event/prison_break] = active_with_role["Security"] * 50 if(active_with_role["Security"] > 0) - possibleEvents[/datum/event/prison_break] = active_with_role["Security"] * 50 if(!sent_spiders_to_station) possibleEvents[/datum/event/spider_infestation] = max(active_with_role["Security"], 5) + 5 if(aliens_allowed && !sent_aliens_to_station) diff --git a/code/modules/events/event_manager.dm b/code/modules/events/event_manager.dm index 40f8483ca4..855e4d969b 100644 --- a/code/modules/events/event_manager.dm +++ b/code/modules/events/event_manager.dm @@ -2,8 +2,8 @@ var/list/allEvents = typesof(/datum/event) - /datum/event var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event //var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event - /datum/event/spider_infestation - /datum/event/alien_infestation -var/eventTimeLower = 15000 //15 minutes -var/eventTimeUpper = 30000 //45 minutes +var/eventTimeLower = 20000 //20 minutes +var/eventTimeUpper = 45000 //45 minutes var/scheduledEvent = null @@ -25,11 +25,11 @@ var/scheduledEvent = null playercount_modifier = 1.2 if(11 to 15) playercount_modifier = 1.1 - if(16 to 20) + if(16 to 25) playercount_modifier = 1 - if(21 to 25) + if(26 to 35) playercount_modifier = 0.9 - if(26 to 100000) + if(36 to 100000) playercount_modifier = 0.8 scheduledEvent = world.timeofday + rand(eventTimeLower, eventTimeUpper) * playercount_modifier diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm index 513f83ea5e..04dc7d46a1 100644 --- a/code/modules/events/infestation.dm +++ b/code/modules/events/infestation.dm @@ -94,7 +94,7 @@ var/spawn_type = pick(spawn_types) new spawn_type(T) num-- - world << "[vermstring] spawned in [spawn_area_type]" + //world << "[vermstring] spawned in [spawn_area_type]" /datum/event/infestation/announce() command_alert("Bioscans indicate that [vermstring] have been breeding in [locstring]. Clear them out, before this starts to affect productivity.", "Vermin infestation") diff --git a/code/modules/events/viral_infection.dm b/code/modules/events/viral_infection.dm index 3644905d8c..2798e51dfb 100644 --- a/code/modules/events/viral_infection.dm +++ b/code/modules/events/viral_infection.dm @@ -8,7 +8,7 @@ datum/event/viral_infection/setup() severity = rand(1, 3) datum/event/viral_infection/announce() - command_alert("Confirmed outbreak of level [severity + rand(2,3)] biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") + command_alert("Confirmed outbreak of level five biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") world << sound('sound/AI/outbreak5.ogg') datum/event/viral_infection/start() diff --git a/code/modules/events/viral_outbreak.dm b/code/modules/events/viral_outbreak.dm index 49fbcdebd6..7a21ecccf9 100644 --- a/code/modules/events/viral_outbreak.dm +++ b/code/modules/events/viral_outbreak.dm @@ -8,7 +8,7 @@ datum/event/viral_outbreak/setup() severity = rand(2, 4) datum/event/viral_outbreak/announce() - command_alert("Confirmed outbreak of level [severity + rand(3,5)] biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") + command_alert("Confirmed outbreak of level 7 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") world << sound('sound/AI/outbreak7.ogg') datum/event/viral_outbreak/start() From 29f1095a255a1f6905cc3d7ae80b57c109903469 Mon Sep 17 00:00:00 2001 From: Uristqwerty Date: Tue, 19 Feb 2013 23:40:06 -0500 Subject: [PATCH 2/6] Non-animated runes aren't being cached, probably a bug. --- code/game/magic/Uristrunes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/magic/Uristrunes.dm b/code/game/magic/Uristrunes.dm index 6234c76454..6e0abd177e 100644 --- a/code/game/magic/Uristrunes.dm +++ b/code/game/magic/Uristrunes.dm @@ -126,6 +126,6 @@ var/list/uristrune_cache = list() result.Insert(I3, "", frame = 7, delay = 2) result.Insert(I2, "", frame = 8, delay = 2) - uristrune_cache[lookup] = result + uristrune_cache[lookup] = result return result From 28c8c679467e63bf44e462b7530a22164ab32e37 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Wed, 20 Feb 2013 09:15:27 +0400 Subject: [PATCH 3/6] Fixes issue #2384 Uplink now spawns proper implanters. Fixed missing icon for compressed matter implant. --- code/game/gamemodes/game_mode.dm | 4 ++-- .../items/weapons/implants/implanter.dm | 8 ++++---- .../items/weapons/storage/uplink_kits.dm | 19 ++++++++---------- icons/obj/items.dmi | Bin 57847 -> 58089 bytes 4 files changed, 14 insertions(+), 17 deletions(-) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index f948f76906..94b9c03811 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -64,8 +64,8 @@ Whitespace:Seperator; Implants; /obj/item/weapon/storage/box/syndie_kit/imp_freedom:3:Freedom Implant; /obj/item/weapon/storage/box/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals); -/obj/item/weapon/implant/explosive:6:Explosive Implant (DANGER!); -/obj/item/weapon/implant/compressed:4:Compressed Matter Implant;Whitespace:Seperator; +/obj/item/weapon/storage/box/syndie_kit/imp_explosive:6:Explosive Implant (DANGER!); +/obj/item/weapon/storage/box/syndie_kit/imp_compress:4:Compressed Matter Implant;Whitespace:Seperator; (Pointless) Badassery; /obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"} diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm index ae21beff2d..785997a3db 100644 --- a/code/game/objects/items/weapons/implants/implanter.dm +++ b/code/game/objects/items/weapons/implants/implanter.dm @@ -83,7 +83,7 @@ /obj/item/weapon/implanter/compressed name = "implanter (C)" - icon_state = "cimplanter0" + icon_state = "cimplanter1" /obj/item/weapon/implanter/compressed/New() imp = new /obj/item/weapon/implant/compressed( src ) @@ -95,11 +95,11 @@ if (imp) var/obj/item/weapon/implant/compressed/c = imp if(!c.scanned) - icon_state = "cimplanter0" - else icon_state = "cimplanter1" + else + icon_state = "cimplanter2" else - icon_state = "cimplanter2" + icon_state = "cimplanter0" return /obj/item/weapon/implanter/compressed/attack(mob/M as mob, mob/user as mob) diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 3653d1322e..646fc4d244 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -83,24 +83,21 @@ O.update() return -/*/obj/item/weapon/storage/box/syndie_kit/imp_compress - name = "Compressed Matter Implant (with injector)" +/obj/item/weapon/storage/box/syndie_kit/imp_compress + name = "box (C)" -/obj/item/weapon/storage/syndie_kit/imp_compress/New() +/obj/item/weapon/storage/box/syndie_kit/imp_compress/New() new /obj/item/weapon/implanter/compressed(src) ..() return -/obj/item/weapon/storage/syndie_kit/imp_explosive - name = "Explosive Implant (with injector)" +/obj/item/weapon/storage/box/syndie_kit/imp_explosive + name = "box (E)" -/obj/item/weapon/storage/syndie_kit/imp_explosive/New() - var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src) - O.imp = new /obj/item/weapon/implant/explosive(O) - O.name = "(BIO-HAZARD) BIO-detpack" - O.update() +/obj/item/weapon/storage/box/syndie_kit/imp_explosive/New() + new /obj/item/weapon/implanter/explosive(src) ..() - return*/ + return /obj/item/weapon/storage/box/syndie_kit/imp_uplink name = "Uplink Implant (with injector)" diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index b0a67761b709ad5d9b8ee6bf673a278fbc1c1790..a8f3633eccd1516cb1215e6022b4bc5f72f0152a 100644 GIT binary patch delta 19469 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 m`gucdz=nt delta 19263 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 B=ZOFS From 93ef7b83d88af85a6a8a15c9171d0b879062057c Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Wed, 20 Feb 2013 20:36:16 +1000 Subject: [PATCH 4/6] replaced infestation slimes with spiderlings (with 0% chance to grow into giant spiders), reduced spiderling noisiness, made them less jittery (easier to squish) Signed-off-by: Cael_Aislinn --- code/game/objects/effects/spiders.dm | 26 +++++++++++++++----------- code/modules/events/infestation.dm | 21 ++++++++++++--------- 2 files changed, 27 insertions(+), 20 deletions(-) diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index d357740a6f..68f57112cb 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -95,15 +95,16 @@ anchored = 0 layer = 2.7 health = 3 - var/amount_grown = 0 + var/amount_grown = -1 var/obj/machinery/atmospherics/unary/vent_pump/entry_vent var/travelling_in_vent = 0 New() pixel_x = rand(6,-6) pixel_y = rand(6,-6) + processing_objects.Add(src) //50% chance to grow up if(prob(50)) - processing_objects.Add(src) + amount_grown = 1 /obj/effect/spider/spiderling/Bump(atom/user) if(istype(user, /obj/structure/table)) @@ -134,8 +135,8 @@ entry_vent = null return var/obj/machinery/atmospherics/unary/vent_pump/exit_vent = pick(vents) - if(prob(50)) - src.visible_message("[src] scrambles into the ventillation ducts!") + /*if(prob(50)) + src.visible_message("[src] scrambles into the ventillation ducts!")*/ spawn(rand(20,60)) loc = exit_vent @@ -164,21 +165,24 @@ entry_vent = null //================= - else if(prob(33)) - var/list/nearby = oview(10, src) + else if(prob(25)) + var/list/nearby = oview(5, src) if(nearby.len) var/target_atom = pick(nearby) - walk_to(src, target_atom) - if(prob(40)) + walk_to(src, target_atom, 5) + if(prob(25)) src.visible_message("\blue \the [src] skitters[pick(" away"," around","")].") - else if(prob(10)) + else if(prob(5)) //ventcrawl! for(var/obj/machinery/atmospherics/unary/vent_pump/v in view(7,src)) if(!v.welded) entry_vent = v - walk_to(src, entry_vent, 1) + walk_to(src, entry_vent, 5) break - if(isturf(loc)) + + if(prob(1)) + src.visible_message("\blue \the [src] chitters.") + if(isturf(loc) && amount_grown > 0) amount_grown += rand(0,2) if(amount_grown >= 100) var/spawn_type = pick(typesof(/mob/living/simple_animal/hostile/giant_spider)) diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm index 04dc7d46a1..8cc42d32fd 100644 --- a/code/modules/events/infestation.dm +++ b/code/modules/events/infestation.dm @@ -11,7 +11,7 @@ #define VERM_MICE 0 #define VERM_LIZARDS 1 -#define VERM_SLIMES 2 +#define VERM_SPIDERS 2 /datum/event/infestation announceWhen = 10 @@ -81,20 +81,23 @@ spawn_types = list(/mob/living/simple_animal/lizard) max_number = 6 vermstring = "lizards" - if(VERM_SLIMES) - spawn_types = list(/mob/living/carbon/slime) - max_number = 3 - vermstring = "slimes" + if(VERM_SPIDERS) + spawn_types = list(/obj/effect/spider/spiderling) + max_number = 6 + vermstring = "spiders" spawn(0) var/num = rand(2,max_number) while(turfs.len > 0 && num > 0) var/turf/simulated/floor/T = pick(turfs) turfs.Remove(T) - var/spawn_type = pick(spawn_types) - new spawn_type(T) num-- - //world << "[vermstring] spawned in [spawn_area_type]" + if(vermin == VERM_SPIDERS) + var/obj/effect/spider/spiderling/S = new(T) + S.amount_grown = -1 + else + var/spawn_type = pick(spawn_types) + new spawn_type(T) /datum/event/infestation/announce() command_alert("Bioscans indicate that [vermstring] have been breeding in [locstring]. Clear them out, before this starts to affect productivity.", "Vermin infestation") @@ -111,4 +114,4 @@ #undef VERM_MICE #undef VERM_LIZARDS -#undef VERM_SLIMES \ No newline at end of file +#undef VERM_SPIDERS \ No newline at end of file From b1c20c32d74c408ce437fc4ae2da3f10675040a5 Mon Sep 17 00:00:00 2001 From: Uristqwerty Date: Wed, 20 Feb 2013 14:47:32 -0500 Subject: [PATCH 5/6] Fixed infinite loop in powernet rebuild. If a /obj/machinery/power wasn't anchored, it wouldn't get a new list of connections, so would endlessly loop on the old list, of which that object was the first entry, ensuring that the loop would never terminate. --- code/modules/power/power.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index f3418c8fee..b94901a637 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -186,6 +186,9 @@ M.powernet = PN P = M.get_connections() + else + return + if(P.len == 0) return O = P[1] From 35bf0648ae838d16885fa8f6459fcd50e88a2210 Mon Sep 17 00:00:00 2001 From: cib Date: Wed, 20 Feb 2013 23:05:48 +0100 Subject: [PATCH 6/6] Fixes events being broken. The proc to get active playercounts was utterly broken, which led to there only being events that needed no specific requirements. Fixed, and made events more common(the only reason people were pissed about so many events was that only the annoying ones would spawn ever). --- code/modules/events/event_dynamic.dm | 65 ++++++++++++++++------------ code/modules/events/event_manager.dm | 4 +- 2 files changed, 39 insertions(+), 30 deletions(-) diff --git a/code/modules/events/event_dynamic.dm b/code/modules/events/event_dynamic.dm index 731cc56551..4366293cd5 100644 --- a/code/modules/events/event_dynamic.dm +++ b/code/modules/events/event_dynamic.dm @@ -73,6 +73,15 @@ if(!sent_ninja_to_station && toggle_space_ninja) possibleEvents[/datum/event/space_ninja] = max(active_with_role["Security"], 5) + // Debug code below here, very useful for testing so don't delete please. + /*var/debug_message = "Firing random event. " + for(var/V in active_with_role) + debug_message += "#[V]:[active_with_role[V]] " + debug_message += "||| " + for(var/V in possibleEvents) + debug_message += "[V]:[possibleEvents[V]]" + message_admins(debug_message)*/ + var/picked_event = pickweight(possibleEvents) if(!picked_event) return @@ -160,32 +169,32 @@ for(var/mob/M in player_list) if(!M.client || M.client.inactivity > 10 * 10 * 60) // longer than 10 minutes AFK counts them as inactive continue - switch(role) - if("Engineer") - if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "engineering robot module") - active_with_role["Engineer"]++ - if(M.mind.assigned_role in list("Chief Engineer", "Station Engineer")) - active_with_role["Engineer"]++ - if("Medical") - if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "medical robot module") - active_with_role["Medical"]++ - if(M.mind.assigned_role in list("Chief Medical Officer", "Medical Doctor")) - active_with_role["Medical"]++ - if("Security") - if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "security robot module") - active_with_role["Security"]++ - if(M.mind.assigned_role in security_positions) - active_with_role["Security"]++ - if("Scientist") - if(M.mind.assigned_role in list("Research Director", "Scientist")) - active_with_role["Scientist"]++ - if("AI") - if(M.mind.assigned_role == "AI") - active_with_role["AI"]++ - if("Cyborg") - if(M.mind.assigned_role == "Cyborg") - active_with_role["Cyborg"]++ - if("Janitor") - if(M.mind.assigned_role == "Janitor") - active_with_role["Janitor"]++ + + if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "engineering robot module") + active_with_role["Engineer"]++ + if(M.mind.assigned_role in list("Chief Engineer", "Station Engineer")) + active_with_role["Engineer"]++ + + if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "medical robot module") + active_with_role["Medical"]++ + if(M.mind.assigned_role in list("Chief Medical Officer", "Medical Doctor")) + active_with_role["Medical"]++ + + if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "security robot module") + active_with_role["Security"]++ + if(M.mind.assigned_role in security_positions) + active_with_role["Security"]++ + + if(M.mind.assigned_role in list("Research Director", "Scientist")) + active_with_role["Scientist"]++ + + if(M.mind.assigned_role == "AI") + active_with_role["AI"]++ + + if(M.mind.assigned_role == "Cyborg") + active_with_role["Cyborg"]++ + + if(M.mind.assigned_role == "Janitor") + active_with_role["Janitor"]++ + return active_with_role diff --git a/code/modules/events/event_manager.dm b/code/modules/events/event_manager.dm index 855e4d969b..8cc24df656 100644 --- a/code/modules/events/event_manager.dm +++ b/code/modules/events/event_manager.dm @@ -2,8 +2,8 @@ var/list/allEvents = typesof(/datum/event) - /datum/event var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event //var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event - /datum/event/spider_infestation - /datum/event/alien_infestation -var/eventTimeLower = 20000 //20 minutes -var/eventTimeUpper = 45000 //45 minutes +var/eventTimeLower = 15000 //15 minutes +var/eventTimeUpper = 30000 //30 minutes var/scheduledEvent = null