mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-18 18:44:48 +01:00
Merge branch 'feature' of github.com:CIB/Baystation12 into feature
This commit is contained in:
@@ -204,12 +204,12 @@ Implants;
|
||||
|
||||
|
||||
/datum/game_mode/proc/send_intercept()
|
||||
var/intercepttext = "<FONT size = 3><B>Cent. Com. Update</B> Requested staus information:</FONT><HR>"
|
||||
var/intercepttext = "<FONT size = 3><B>Cent. Com. Update</B> Requested status information:</FONT><HR>"
|
||||
intercepttext += "<B> Cent. Com has recently been contacted by the following syndicate affiliated organisations in your area, please investigate any information you may have:</B>"
|
||||
|
||||
var/list/possible_modes = list()
|
||||
possible_modes.Add("revolution", "wizard", "nuke", "traitor", "malf", "changeling", "cult")
|
||||
possible_modes -= "[ticker.mode]"
|
||||
//possible_modes -= "[ticker.mode]"
|
||||
var/number = pick(2, 3)
|
||||
var/i = 0
|
||||
for(i = 0, i < number, i++)
|
||||
@@ -428,3 +428,15 @@ proc/display_roundstart_logout_report()
|
||||
for(var/mob/M in mob_list)
|
||||
if(M.client && M.client.holder)
|
||||
M << msg
|
||||
|
||||
|
||||
proc/get_nt_opposed()
|
||||
var/list/dudes = list()
|
||||
for(var/mob/living/carbon/human/man in player_list)
|
||||
if(man.client)
|
||||
if(man.client.prefs.nanotrasen_relation == "Opposed")
|
||||
dudes += man
|
||||
else if(man.client.prefs.nanotrasen_relation == "Skeptical" && prob(50))
|
||||
dudes += man
|
||||
if(dudes.len == 0) return null
|
||||
return pick(dudes)
|
||||
@@ -111,114 +111,70 @@
|
||||
return num2text(md5(num2text(rand(1,10000))))
|
||||
*/
|
||||
|
||||
/datum/intercept_text/proc/get_suspect()
|
||||
var/list/dudes = list()
|
||||
for(var/mob/living/carbon/human/man in player_list) if(man.client && man.client.prefs.nanotrasen_relation == "Opposed")
|
||||
dudes += man
|
||||
for(var/i = 0, i < max(player_list.len/10,2), i++)
|
||||
dudes += pick(player_list)
|
||||
return pick(dudes)
|
||||
|
||||
/datum/intercept_text/proc/build_traitor(datum/mind/correct_person)
|
||||
var/name_1 = pick(src.org_names_1)
|
||||
var/name_2 = pick(src.org_names_2)
|
||||
|
||||
/*
|
||||
var/fingerprints
|
||||
var/traitor_name
|
||||
var/prob_right_dude = rand(prob_correct_person_lower, prob_correct_person_higher)
|
||||
if(prob(prob_right_dude) && ticker.mode == "traitor")
|
||||
if(correct_person:assigned_role=="MODE")
|
||||
traitor_name = pick_mob()
|
||||
else
|
||||
traitor_name = correct_person:current
|
||||
else if(prob(prob_right_dude))
|
||||
traitor_name = pick_mob()
|
||||
else
|
||||
fingerprints = pick_fingerprints()
|
||||
*/
|
||||
var/mob/living/carbon/human/H = get_suspect()
|
||||
var/fingerprints = num2text(md5(H.dna.uni_identity))
|
||||
var/traitor_name = H.real_name
|
||||
var/prob_right_dude = rand(1, 100)
|
||||
|
||||
src.text += "<BR><BR>The <B>[name_1] [name_2]</B> implied an undercover operative was acting on their behalf on the station currently."
|
||||
src.text += "It would be in your best interests to suspect everybody, as these undercover operatives could have implants which trigger them to have their memories removed until they are needed. He, or she, could even be a high ranking officer."
|
||||
/*
|
||||
|
||||
src.text += "After some investigation, we "
|
||||
if(traitor_name)
|
||||
if(prob(50))
|
||||
src.text += "are [prob_right_dude]% sure that [traitor_name] may have been involved, and should be closely observed."
|
||||
src.text += "<BR>Note: This group are known to be untrustworthy, so do not act on this information without proper discourse."
|
||||
else
|
||||
src.text += "discovered the following set of fingerprints ([fingerprints]) on sensitive materials, and their owner should be closely observed."
|
||||
src.text += "However, these could also belong to a current Cent. Com employee, so do not act on this without reason."
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/datum/intercept_text/proc/build_cult(datum/mind/correct_person)
|
||||
var/name_1 = pick(src.org_names_1)
|
||||
var/name_2 = pick(src.org_names_2)
|
||||
/*
|
||||
var/traitor_name
|
||||
var/traitor_job
|
||||
var/prob_right_dude = rand(prob_correct_person_lower, prob_correct_person_higher)
|
||||
var/prob_right_job = rand(prob_correct_job_lower, prob_correct_job_higher)
|
||||
if(prob(prob_right_job) && is_convertable_to_cult(correct_person))
|
||||
if (correct_person)
|
||||
if(correct_person:assigned_role=="MODE")
|
||||
traitor_job = pick(get_all_jobs())
|
||||
else
|
||||
traitor_job = correct_person:assigned_role
|
||||
else
|
||||
var/list/job_tmp = get_all_jobs()
|
||||
job_tmp.Remove("Captain", "Chaplain", "AI", "Cyborg", "Security Officer", "Detective", "Head Of Security", "Head of Personnel", "Chief Engineer", "Research Director", "Chief Medical Officer")
|
||||
traitor_job = pick(job_tmp)
|
||||
if(prob(prob_right_dude) && ticker.mode == "cult")
|
||||
if(correct_person:assigned_role=="MODE")
|
||||
traitor_name = src.pick_mob()
|
||||
else
|
||||
traitor_name = correct_person:current
|
||||
else
|
||||
traitor_name = pick_mob()
|
||||
*/
|
||||
|
||||
var/prob_right_dude = rand(1, 100)
|
||||
var/mob/living/carbon/human/H = get_suspect()
|
||||
var/traitor_job = H.mind.assigned_role
|
||||
|
||||
src.text += "<BR><BR>It has been brought to our attention that the [name_1] [name_2] have stumbled upon some dark secrets. They apparently want to spread the dangerous knowledge onto as many stations as they can."
|
||||
src.text += "Watch out for the following: praying to an unfamilar god, preaching the word of \[REDACTED\], sacrifices, magical dark power, living constructs of evil and a portal to the dimension of the underworld."
|
||||
/*
|
||||
src.text += "Based on our intelligence, we are [prob_right_job]% sure that if true, someone doing the job of [traitor_job] on your station may have been converted "
|
||||
|
||||
src.text += "Based on our intelligence, we are [prob_right_dude]% sure that if true, someone doing the job of [traitor_job] on your station may have been converted "
|
||||
src.text += "and instilled with the idea of the flimsiness of the real world, seeking to destroy it. "
|
||||
if(prob(prob_right_dude))
|
||||
src.text += "<BR> In addition, we are [prob_right_dude]% sure that [traitor_name] may have also some in to contact with this "
|
||||
src.text += "organisation."
|
||||
|
||||
src.text += "<BR>However, if this information is acted on without substantial evidence, those responsible will face severe repercussions."
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/datum/intercept_text/proc/build_rev(datum/mind/correct_person)
|
||||
var/name_1 = pick(src.org_names_1)
|
||||
var/name_2 = pick(src.org_names_2)
|
||||
/*
|
||||
var/traitor_name
|
||||
var/traitor_job
|
||||
var/prob_right_dude = rand(prob_correct_person_lower, prob_correct_person_higher)
|
||||
var/prob_right_job = rand(prob_correct_job_lower, prob_correct_job_higher)
|
||||
if(prob(prob_right_job) && is_convertable_to_rev(correct_person))
|
||||
if (correct_person)
|
||||
if(correct_person.assigned_role=="MODE")
|
||||
traitor_job = pick(get_all_jobs())
|
||||
else
|
||||
traitor_job = correct_person.assigned_role
|
||||
else
|
||||
var/list/job_tmp = get_all_jobs()
|
||||
job_tmp-=nonhuman_positions
|
||||
job_tmp-=command_positions
|
||||
job_tmp.Remove("Security Officer", "Detective", "Warden", "MODE")
|
||||
traitor_job = pick(job_tmp)
|
||||
if(prob(prob_right_dude) && ticker.mode.config_tag == "revolution")
|
||||
if(correct_person.assigned_role=="MODE")
|
||||
traitor_name = src.pick_mob()
|
||||
else
|
||||
traitor_name = correct_person.current
|
||||
else
|
||||
traitor_name = src.pick_mob()
|
||||
*/
|
||||
|
||||
var/prob_right_dude = rand(1, 100)
|
||||
var/mob/living/carbon/human/H = get_suspect()
|
||||
var/traitor_job = H.mind.assigned_role
|
||||
|
||||
src.text += "<BR><BR>It has been brought to our attention that the [name_1] [name_2] are attempting to stir unrest on one of our stations in your sector."
|
||||
src.text += "Watch out for suspicious activity among the crew and make sure that all heads of staff report in periodically."
|
||||
/*
|
||||
src.text += "Based on our intelligence, we are [prob_right_job]% sure that if true, someone doing the job of [traitor_job] on your station may have been brainwashed "
|
||||
|
||||
src.text += "Based on our intelligence, we are [prob_right_dude]% sure that if true, someone doing the job of [traitor_job] on your station may have been brainwashed "
|
||||
src.text += "at a recent conference, and their department should be closely monitored for signs of mutiny. "
|
||||
if(prob(prob_right_dude))
|
||||
src.text += "<BR> In addition, we are [prob_right_dude]% sure that [traitor_name] may have also some in to contact with this "
|
||||
src.text += "organisation."
|
||||
|
||||
src.text += "<BR>However, if this information is acted on without substantial evidence, those responsible will face severe repercussions."
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/datum/intercept_text/proc/build_wizard(datum/mind/correct_person)
|
||||
|
||||
@@ -291,3 +291,9 @@
|
||||
traitor_mob << "Unfortunately, the Syndicate did not provide you with a code response."
|
||||
traitor_mob << "Use the code words in the order provided, during regular conversation, to identify other agents. Proceed with caution, however, as everyone is a potential foe."
|
||||
//End code phrase.
|
||||
|
||||
// Tell them about people they might want to contact.
|
||||
var/mob/living/carbon/human/M = get_nt_opposed()
|
||||
if(M != traitor_mob)
|
||||
traitor_mob << "We have received credible reports that [M.real_name] might be willing to help our cause. If you need assistance, consider contacting them."
|
||||
traitor_mob.mind.store_memory("<b>Potential Collaborator</b>: [M.real_name]")
|
||||
@@ -98,6 +98,8 @@ datum/preferences
|
||||
var/sec_record = ""
|
||||
var/disabilities = 0
|
||||
|
||||
var/nanotrasen_relation = "Neutral"
|
||||
|
||||
// OOC Metadata:
|
||||
var/metadata = ""
|
||||
var/slot_name = ""
|
||||
@@ -298,6 +300,8 @@ datum/preferences
|
||||
|
||||
dat += "Backpack Type:<br><a href ='?_src_=prefs;preference=bag;task=input'><b>[backbaglist[backbag]]</b></a><br>"
|
||||
|
||||
dat += "Nanotrasen Relation:<br><a href ='?_src_=prefs;preference=nt_relation;task=input'><b>[nanotrasen_relation]</b></a><br>"
|
||||
|
||||
dat += "</td><td><b>Preview</b><br><img src=previewicon.png height=64 width=64><img src=previewicon2.png height=64 width=64></td></tr></table>"
|
||||
|
||||
dat += "</td><td width='300px' height='300px'>"
|
||||
@@ -919,6 +923,11 @@ datum/preferences
|
||||
if(new_backbag)
|
||||
backbag = backbaglist.Find(new_backbag)
|
||||
|
||||
if("nt_relation")
|
||||
var/new_relation = input(user, "Choose your relation to NT. Note that this represents what others can find out about your character by researching your background, not what your character actually thinks.", "Character Preference") as null|anything in list("Loyal", "Supportive", "Neutral", "Skeptical", "Opposed")
|
||||
if(new_relation)
|
||||
nanotrasen_relation = new_relation
|
||||
|
||||
if("flavor_text")
|
||||
var/msg = input(usr,"Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!","Flavor Text",html_decode(flavor_text)) as message
|
||||
|
||||
|
||||
@@ -211,7 +211,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
|
||||
continue
|
||||
for(var/datum/wound/W in temp.wounds) if(W.bleeding())
|
||||
blood_max += W.damage / 4
|
||||
if(temp.status & ORGAN_DESTROYED && !(temp.status & ORGAN_GAUZED))
|
||||
if(temp.status & ORGAN_DESTROYED && !(temp.status & ORGAN_GAUZED) && !temp.amputated)
|
||||
blood_max += 20 //Yer missing a fucking limb.
|
||||
drip(blood_max)
|
||||
|
||||
|
||||
@@ -13,10 +13,9 @@
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "hits the"
|
||||
speed = -1
|
||||
speed = 4
|
||||
maxHealth = 25
|
||||
health = 25
|
||||
destroy_surroundings = 0
|
||||
|
||||
harm_intent_damage = 8
|
||||
melee_damage_lower = 15
|
||||
@@ -35,6 +34,8 @@
|
||||
max_n2 = 0
|
||||
minbodytemp = 0
|
||||
|
||||
break_stuff_probability = 2
|
||||
|
||||
faction = "carp"
|
||||
|
||||
/mob/living/simple_animal/hostile/carp/Process_Spacemove(var/check_drift = 0)
|
||||
|
||||
@@ -13,3 +13,4 @@
|
||||
attacktext = "chomps"
|
||||
attack_sound = 'sound/weapons/bite.ogg'
|
||||
faction = "creature"
|
||||
speed = 4
|
||||
@@ -28,6 +28,7 @@
|
||||
min_n2 = 0
|
||||
max_n2 = 0
|
||||
minbodytemp = 0
|
||||
speed = 4
|
||||
|
||||
faction = "faithless"
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
var/busy = 0
|
||||
pass_flags = PASSTABLE
|
||||
move_to_delay = 6
|
||||
destroy_surroundings = 0
|
||||
speed = 3
|
||||
|
||||
//nursemaids - these create webs and eggs
|
||||
/mob/living/simple_animal/hostile/giant_spider/nurse
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
min_n2 = 0
|
||||
max_n2 = 0
|
||||
minbodytemp = 0
|
||||
speed = 4
|
||||
|
||||
/mob/living/simple_animal/hostile/hivebot/range
|
||||
name = "Hivebot"
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
var/casingtype
|
||||
var/move_to_delay = 2 //delay for the automated movement.
|
||||
var/list/friends = list()
|
||||
var/break_stuff_probability = 10
|
||||
stop_automated_movement_when_pulled = 0
|
||||
var/destroy_surroundings = 1
|
||||
|
||||
@@ -173,7 +174,8 @@
|
||||
return
|
||||
|
||||
/mob/living/simple_animal/hostile/proc/DestroySurroundings()
|
||||
for(var/dir in cardinal) // North, South, East, West
|
||||
var/obj/structure/obstacle = locate(/obj/structure, get_step(src, dir))
|
||||
if(istype(obstacle, /obj/structure/window) || istype(obstacle, /obj/structure/closet) || istype(obstacle, /obj/structure/table) || istype(obstacle, /obj/structure/grille))
|
||||
obstacle.attack_animal(src)
|
||||
if(prob(break_stuff_probability))
|
||||
for(var/dir in cardinal) // North, South, East, West
|
||||
var/obj/structure/obstacle = locate(/obj/structure, get_step(src, dir))
|
||||
if(istype(obstacle, /obj/structure/window) || istype(obstacle, /obj/structure/closet) || istype(obstacle, /obj/structure/table) || istype(obstacle, /obj/structure/grille))
|
||||
obstacle.attack_animal(src)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
response_help = "touches the"
|
||||
response_disarm = "pushes the"
|
||||
response_harm = "hits the"
|
||||
speed = -1
|
||||
speed = 4
|
||||
maxHealth = 250
|
||||
health = 250
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
response_help = "pushes the"
|
||||
response_disarm = "shoves"
|
||||
response_harm = "hits the"
|
||||
speed = -1
|
||||
speed = 4
|
||||
stop_automated_movement_when_pulled = 0
|
||||
maxHealth = 100
|
||||
health = 100
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
response_help = "pokes the"
|
||||
response_disarm = "shoves the"
|
||||
response_harm = "hits the"
|
||||
speed = -1
|
||||
speed = 4
|
||||
stop_automated_movement_when_pulled = 0
|
||||
maxHealth = 100
|
||||
health = 100
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
response_help = "pokes the"
|
||||
response_disarm = "shoves the"
|
||||
response_harm = "hits the"
|
||||
speed = -1
|
||||
speed = 4
|
||||
stop_automated_movement_when_pulled = 0
|
||||
maxHealth = 100
|
||||
health = 100
|
||||
|
||||
@@ -444,7 +444,7 @@
|
||||
/mob/living/simple_animal/proc/SA_attackable(target_mob)
|
||||
if (isliving(target_mob))
|
||||
var/mob/living/L = target_mob
|
||||
if(!L.stat)
|
||||
if(!L.stat || L.health <= 0)
|
||||
return (0)
|
||||
if (istype(target_mob,/obj/mecha))
|
||||
var/obj/mecha/M = target_mob
|
||||
|
||||
Reference in New Issue
Block a user