Merge branch 'master' into upstream-merge-29611
This commit is contained in:
@@ -1,5 +1,14 @@
|
||||
//horrifying power drain proc made for clockcult's power drain in lieu of six istypes or six for(x in view) loops
|
||||
/atom/movable/proc/power_drain(clockcult_user)
|
||||
var/obj/item/weapon/stock_parts/cell/cell = get_cell()
|
||||
if(cell)
|
||||
return cell.power_drain(clockcult_user)
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/melee/baton/power_drain(clockcult_user) //balance memes
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/gun/power_drain(clockcult_user) //balance memes
|
||||
return 0
|
||||
|
||||
/obj/machinery/power/apc/power_drain(clockcult_user)
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
/datum/clockwork_scripture/channeled/belligerent/chant_effects(chant_number)
|
||||
for(var/mob/living/carbon/C in hearers(7, invoker))
|
||||
C.apply_status_effect(STATUS_EFFECT_BELLIGERENT)
|
||||
new /obj/effect/temp_visual/ratvar/belligerent(get_turf(invoker))
|
||||
return TRUE
|
||||
|
||||
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
var/acolytes_survived = 0
|
||||
for(var/datum/mind/cult_mind in cult)
|
||||
if (cult_mind.current && cult_mind.current.stat != DEAD)
|
||||
if(cult_mind.current.onCentcom() || cult_mind.current.onSyndieBase())
|
||||
if(cult_mind.current.onCentCom() || cult_mind.current.onSyndieBase())
|
||||
acolytes_survived++
|
||||
if(acolytes_survived>=acolytes_needed)
|
||||
return 0
|
||||
|
||||
@@ -161,11 +161,15 @@
|
||||
/obj/item/weapon/sharpener/cult
|
||||
name = "eldritch whetstone"
|
||||
desc = "A block, empowered by dark magic. Sharp weapons will be enhanced when used on the stone."
|
||||
icon_state = "cult_sharpener"
|
||||
used = 0
|
||||
increment = 5
|
||||
max = 40
|
||||
prefix = "darkened"
|
||||
|
||||
/obj/item/weapon/sharpener/cult/update_icon()
|
||||
icon_state = "cult_sharpener[used ? "_used" : ""]"
|
||||
|
||||
/obj/item/clothing/suit/hooded/cultrobes/cult_shield
|
||||
name = "empowered cultist armor"
|
||||
desc = "Empowered garb which creates a powerful shield around the user."
|
||||
@@ -391,7 +395,7 @@
|
||||
if(!iscultist(user))
|
||||
to_chat(user, "That doesn't seem to do anything useful.")
|
||||
return
|
||||
|
||||
|
||||
if(istype(A, /obj/item))
|
||||
|
||||
var/list/cultists = list()
|
||||
|
||||
@@ -538,7 +538,7 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
mob_to_revive = input(user, "Choose a cultist to revive.", "Cultist to Revive") as null|anything in potential_revive_mobs
|
||||
else
|
||||
mob_to_revive = potential_revive_mobs[1]
|
||||
if(!src || QDELETED(src) || rune_in_use || !validness_checks(mob_to_revive, user))
|
||||
if(QDELETED(src) || !validness_checks(mob_to_revive, user))
|
||||
rune_in_use = FALSE
|
||||
return
|
||||
if(user.name == "Herbert West")
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
var/list/living_crew = list()
|
||||
|
||||
for(var/mob/Player in GLOB.mob_list)
|
||||
if(Player.mind && Player.stat != DEAD && !isnewplayer(Player) &&!isbrain(Player))
|
||||
if(Player.mind && Player.stat != DEAD && !isnewplayer(Player) && !isbrain(Player) && Player.client)
|
||||
living_crew += Player
|
||||
if(living_crew.len / GLOB.joined_player_list.len <= config.midround_antag_life_check) //If a lot of the player base died, we start fresh
|
||||
message_admins("Convert_roundtype failed due to too many dead people. Limit is [config.midround_antag_life_check * 100]% living crew")
|
||||
@@ -120,7 +120,7 @@
|
||||
var/list/datum/game_mode/runnable_modes = config.get_runnable_midround_modes(living_crew.len)
|
||||
var/list/datum/game_mode/usable_modes = list()
|
||||
for(var/datum/game_mode/G in runnable_modes)
|
||||
if(G.reroll_friendly)
|
||||
if(G.reroll_friendly && living_crew >= G.required_players)
|
||||
usable_modes += G
|
||||
else
|
||||
qdel(G)
|
||||
@@ -208,7 +208,7 @@
|
||||
return 0 //A resource saver: once we find someone who has to die for all antags to be dead, we can just keep checking them, cycling over everyone only when we lose our mark.
|
||||
|
||||
for(var/mob/Player in GLOB.living_mob_list)
|
||||
if(Player.mind && Player.stat != DEAD && !isnewplayer(Player) &&!isbrain(Player))
|
||||
if(Player.mind && Player.stat != DEAD && !isnewplayer(Player) &&!isbrain(Player) && Player.client)
|
||||
if(Player.mind.special_role) //Someone's still antaging!
|
||||
living_antag_player = Player
|
||||
return 0
|
||||
|
||||
@@ -37,8 +37,8 @@
|
||||
if(player.stat != DEAD)
|
||||
++survivors
|
||||
|
||||
if(player.onCentcom())
|
||||
text += "<br><b><font size=2>[player.real_name] escaped to the safety of Centcom.</font></b>"
|
||||
if(player.onCentCom())
|
||||
text += "<br><b><font size=2>[player.real_name] escaped to the safety of CentCom.</font></b>"
|
||||
else if(player.onSyndieBase())
|
||||
text += "<br><b><font size=2>[player.real_name] escaped to the (relative) safety of Syndicate Space.</font></b>"
|
||||
else
|
||||
|
||||
@@ -29,6 +29,12 @@
|
||||
3. Biological resources will be harvested at a later date; do not harm them.
|
||||
"}
|
||||
|
||||
/obj/effect/mob_spawn/swarmer/Initialize()
|
||||
. = ..()
|
||||
var/area/A = get_area(src)
|
||||
if(A)
|
||||
notify_ghosts("A swarmer shell has been created in [A.name].", 'sound/effects/bin_close.ogg', source = src, action = NOTIFY_ATTACK, flashwindow = FALSE)
|
||||
|
||||
/obj/effect/mob_spawn/swarmer/attack_hand(mob/living/user)
|
||||
to_chat(user, "<span class='notice'>Picking up the swarmer may cause it to activate. You should be careful about this.</span>")
|
||||
|
||||
@@ -648,7 +654,7 @@
|
||||
to_chat(M, "[link] [rendered]")
|
||||
|
||||
/mob/living/simple_animal/hostile/swarmer/proc/ContactSwarmers()
|
||||
var/message = input(src, "Announce to other swarmers", "Swarmer contact")
|
||||
var/message = stripped_input(src, "Announce to other swarmers", "Swarmer contact")
|
||||
// TODO get swarmers their own colour rather than just boldtext
|
||||
if(message)
|
||||
swarmer_chat(message)
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
/datum/game_mode/monkey/announce()
|
||||
to_chat(world, "<B>The current game mode is - Monkey!</B>")
|
||||
to_chat(world, "<B>One or more crewmembers have been infected with Jungle Fever! Crew: Contain the outbreak. None of the infected monkeys may escape alive to Centcom. \
|
||||
to_chat(world, "<B>One or more crewmembers have been infected with Jungle Fever! Crew: Contain the outbreak. None of the infected monkeys may escape alive to CentCom. \
|
||||
Monkeys: Ensure that your kind lives on! Rise up against your captors!</B>")
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
to_chat(carrier.current, "<b>You have been planted onto this station by the Animal Rights Consortium.</b>")
|
||||
to_chat(carrier.current, "<b>Soon the disease will transform you into an ape. Afterwards, you will be able spread the infection to others with a bite.</b>")
|
||||
to_chat(carrier.current, "<b>While your infection strain is undetectable by scanners, any other infectees will show up on medical equipment.</b>")
|
||||
to_chat(carrier.current, "<b>Your mission will be deemed a success if any of the live infected monkeys reach Centcom.</b>")
|
||||
to_chat(carrier.current, "<b>Your mission will be deemed a success if any of the live infected monkeys reach CentCom.</b>")
|
||||
return
|
||||
|
||||
/datum/game_mode/monkey/post_setup()
|
||||
@@ -88,7 +88,7 @@
|
||||
var/datum/disease/D = new /datum/disease/transformation/jungle_fever()
|
||||
for(var/mob/living/carbon/monkey/M in GLOB.living_mob_list)
|
||||
if (M.HasDisease(D))
|
||||
if(M.onCentcom() || M.onSyndieBase())
|
||||
if(M.onCentCom() || M.onSyndieBase())
|
||||
escaped_monkeys++
|
||||
if(escaped_monkeys >= monkeys_to_win)
|
||||
return 1
|
||||
|
||||
@@ -187,7 +187,7 @@
|
||||
/datum/game_mode/nuclear/declare_completion()
|
||||
var/disk_rescued = 1
|
||||
for(var/obj/item/weapon/disk/nuclear/D in GLOB.poi_list)
|
||||
if(!D.onCentcom())
|
||||
if(!D.onCentCom())
|
||||
disk_rescued = 0
|
||||
break
|
||||
var/crew_evacuated = (SSshuttle.emergency.mode == SHUTTLE_ENDGAME)
|
||||
|
||||
@@ -157,7 +157,7 @@
|
||||
H = target.current
|
||||
if(target.current.stat == DEAD || issilicon(target.current) || isbrain(target.current) || target.current.z > 6 || !target.current.ckey || (H && H.dna.species.id == "memezombies")) //Borgs/brains/AIs count as dead for traitor objectives. --NeoFite
|
||||
return 1
|
||||
if(target.current.onCentcom() || target.current.onSyndieBase())
|
||||
if(target.current.onCentCom() || target.current.onSyndieBase())
|
||||
return 0
|
||||
return 1
|
||||
|
||||
@@ -357,7 +357,7 @@
|
||||
if(istype(location, /turf/open/floor/plasteel/shuttle/red) || istype(location, /turf/open/floor/mineral/plastitanium/brig)) // Fails traitors if they are in the shuttle brig -- Polymorph
|
||||
return 0
|
||||
|
||||
if(location.onCentcom() || location.onSyndieBase())
|
||||
if(location.onCentCom() || location.onSyndieBase())
|
||||
return 1
|
||||
|
||||
return 0
|
||||
@@ -832,15 +832,15 @@ GLOBAL_LIST_EMPTY(possible_items_special)
|
||||
|
||||
var/list/check_names = department_real_names.Copy()
|
||||
|
||||
//Check each department member's mind to see if any of them made it to centcomm alive, if they did it's an automatic fail
|
||||
//Check each department member's mind to see if any of them made it to centcom alive, if they did it's an automatic fail
|
||||
for(var/datum/mind/M in department_minds)
|
||||
if(M in SSticker.mode.changelings) //Lings aren't picked for this, but let's be safe
|
||||
continue
|
||||
|
||||
if(M.current)
|
||||
var/turf/mloc = get_turf(M.current)
|
||||
if(mloc.onCentcom() && (M.current.stat != DEAD))
|
||||
return 0 //A Non-ling living target got to centcomm, fail
|
||||
if(mloc.onCentCom() && (M.current.stat != DEAD))
|
||||
return 0 //A Non-ling living target got to centcom, fail
|
||||
|
||||
//Check each staff member has been replaced, by cross referencing changeling minds, changeling current dna, the staff minds and their original DNA names
|
||||
var/success = 0
|
||||
@@ -851,11 +851,11 @@ GLOBAL_LIST_EMPTY(possible_items_special)
|
||||
if(ishuman(changeling.current))
|
||||
var/mob/living/carbon/human/H = changeling.current
|
||||
var/turf/cloc = get_turf(changeling.current)
|
||||
if(cloc && cloc.onCentcom() && (changeling.current.stat != DEAD)) //Living changeling on centcomm....
|
||||
if(cloc && cloc.onCentCom() && (changeling.current.stat != DEAD)) //Living changeling on centcom....
|
||||
for(var/name in check_names) //Is he (disguised as) one of the staff?
|
||||
if(H.dna.real_name == name)
|
||||
check_names -= name //This staff member is accounted for, remove them, so the team don't succeed by escape as 7 of the same engineer
|
||||
success++ //A living changeling staff member made it to centcomm
|
||||
success++ //A living changeling staff member made it to centcom
|
||||
continue changelings
|
||||
|
||||
if(success >= department_minds.len)
|
||||
|
||||
Reference in New Issue
Block a user