diff --git a/_maps/map_files/cyberiad/z3.dmm b/_maps/map_files/cyberiad/z3.dmm index 7d02094520b..ef201353f85 100644 --- a/_maps/map_files/cyberiad/z3.dmm +++ b/_maps/map_files/cyberiad/z3.dmm @@ -63,8 +63,8 @@ "bk" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) "bl" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/space) "bm" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"; dir = 2},/area/space) -"bn" = (/obj/effect/mob_spawn/human/golem/adamantine,/obj/machinery/light{dir = 1; on = 1},/turf/simulated/shuttle/floor{icon_state = "floor5"},/area/shuttle/freegolem) -"bo" = (/obj/effect/mob_spawn/human/golem/adamantine,/turf/simulated/shuttle/floor{icon_state = "floor5"},/area/shuttle/freegolem) +"bn" = (/obj/machinery/light{dir = 1; on = 1},/obj/effect/landmark/free_golem_spawn,/turf/simulated/shuttle/floor{icon_state = "floor5"},/area/shuttle/freegolem) +"bo" = (/obj/effect/landmark/free_golem_spawn,/turf/simulated/shuttle/floor{icon_state = "floor5"},/area/shuttle/freegolem) "bp" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) "bq" = (/obj/machinery/mineral/equipment_vendor/golem,/turf/simulated/shuttle/floor{icon_state = "floor5"},/area/shuttle/freegolem) "br" = (/obj/structure/fans/tiny,/obj/machinery/door/airlock/shuttle{id_tag = "s_docking_airlock"; locked = 1},/turf/simulated/shuttle/floor{icon_state = "floor5"},/area/shuttle/freegolem) @@ -96,7 +96,7 @@ "bR" = (/obj/structure/table/wood,/obj/machinery/reagentgrinder,/turf/simulated/shuttle/floor{icon_state = "floor5"},/area/shuttle/freegolem) "bS" = (/obj/machinery/computer/arcade/orion_trail,/turf/simulated/shuttle/floor{icon_state = "floor5"},/area/shuttle/freegolem) "bT" = (/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor5"},/area/shuttle/freegolem) -"bU" = (/obj/effect/mob_spawn/human/golem/adamantine,/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor5"},/area/shuttle/freegolem) +"bU" = (/obj/machinery/light,/obj/effect/landmark/free_golem_spawn,/turf/simulated/shuttle/floor{icon_state = "floor5"},/area/shuttle/freegolem) "bV" = (/obj/machinery/vending/coffee/free,/turf/simulated/shuttle/floor{icon_state = "floor5"},/area/shuttle/freegolem) "bW" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space) "bX" = (/obj/machinery/power/solar,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/space) @@ -695,3 +695,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} + diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 5ecc6938aa2..bae7002d711 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -36,7 +36,6 @@ GLOBAL_LIST_INIT(tracked_implants, list()) //list of all current implants that GLOBAL_LIST_INIT(pinpointer_list, list()) //list of all pinpointers. Used to change stuff they are pointing to all at once. GLOBAL_LIST_INIT(nuclear_uplink_list, list()) //list of all existing nuke ops uplinks GLOBAL_LIST_INIT(abductor_equipment, list()) //list of all abductor equipment -GLOBAL_LIST_INIT(free_golem_shells, list()) //list of all free golem shells GLOBAL_LIST_INIT(global_intercoms, list()) //list of all intercomms, across all z-levels GLOBAL_LIST_INIT(global_radios, list()) //list of all radios, across all z-levels diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index a2acb097b93..1423e9155b4 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -44,6 +44,7 @@ var/global/list/all_cults = list() required_players = 30 required_enemies = 3 recommended_enemies = 4 + free_golems_disabled = TRUE var/datum/mind/sacrifice_target = null var/finished = 0 diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index ae3ddb35000..76074c254bb 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -499,6 +499,7 @@ proc/display_roundstart_logout_report() G.print_result() /datum/game_mode/proc/check_free_golems() //check config and gamemode for free golems setting and run the prob to check if the round will have free golems spawned or not - if((!config.unrestricted_free_golems && free_golems_disabled) || !prob(config.prob_free_golems)) - for(var/obj/effect/mob_spawn/human/golem/G in GLOB.free_golem_shells) - qdel(G) \ No newline at end of file + if((config.unrestricted_free_golems || !free_golems_disabled) && prob(config.prob_free_golems)) + for(var/obj/effect/landmark/free_golem_spawn/L in GLOB.landmarks_list) + if(isturf(L.loc)) + new /obj/effect/mob_spawn/human/golem/adamantine(L.loc) \ No newline at end of file diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 626662b9567..1dacf315e9c 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -293,4 +293,7 @@ /obj/effect/landmark/battle_mob_point - name = "Nanomob Battle Avatar Spawn Point" \ No newline at end of file + name = "Nanomob Battle Avatar Spawn Point" + +/obj/effect/landmark/free_golem_spawn + name = "Free Golem Spawn Point" \ No newline at end of file diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index d48e0e663a0..9d4fb95d58b 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -795,7 +795,7 @@ /obj/item/card/id/golem/attack_self(mob/user as mob) if(!registered && ishuman(user)) - registered_name = user.name + registered_name = user.real_name SetOwnerInfo(user) assignment = "Free Golem" RebuildHTML() diff --git a/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm b/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm index 95057e90d54..2fb72161a2a 100644 --- a/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm +++ b/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm @@ -67,11 +67,6 @@ travel the stars with a single declaration: \"Yeah go do whatever.\" Though you are bound to the one who created you, it is customary in your society to repeat those same words to newborn \ golems, so that no golem may ever be forced to serve again." -/obj/effect/mob_spawn/human/golem/New() - ..() - if(!has_owner) - GLOB.free_golem_shells += src - /obj/effect/mob_spawn/human/golem/Initialize(mapload, datum/species/golem/species = null, mob/creator = null) if(species) //spawners list uses object name to register so this goes before ..() name += " ([initial(species.prefix)])" diff --git a/config/example/config.txt b/config/example/config.txt index 69a5ba67b73..3894de80f5b 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -98,9 +98,9 @@ PROBABILITY DEVIL 0 PROBABILITY DEVILAGENTS 0 ## Probability in % for Free Golems to spawn at roundstart, set to 0 for no golems -PROB_FREEGOLEMS 50 +PROB_FREEGOLEMS 100 -## Uncomment to allow free golems on all roundtypes. Otherwise, disabled on wiz, raging mages, blob, and nuclear. +## Uncomment to allow free golems on all roundtypes. Otherwise, disabled on cult, wiz, raging mages, blob, and nuclear. #UNRESTRICTED_FREEGOLEMS ## Maximum cycles shadowlings can remain unhatched before they take damage. 1800 = 60 minutes, 900 = 30 minutes, 0 = feature disabled.