Adds Research Lab POI and some other stuff. (#9026)

* Adds random zippo lighter.

* Adds random zippo lighter part 2.

* Adds random zippo.

* first prototype of the Research POI.

* Research POI definitions.

* Adding android simplemobs.

* Adds voice lines for fleeing.

* Fix robocorpses.

* Progress as of 28-02-23.

* Progress as of 02-03-23.

* Add detailing to the map

* de-stationifying the POI a bit

* Finishes adding android drone enemies.

* Final pass on Gene Lab POI.

* Fix corpse.dm linter error.

---------

Co-authored-by: Cerebulon <tanhindmarsh@yahoo.com>
This commit is contained in:
Martin Rivard
2023-03-23 19:40:29 -08:00
committed by GitHub
co-authored by Cerebulon
parent 8ede4b4c79
commit a8b209ef93
12 changed files with 2622 additions and 4 deletions
+124
View File
@@ -127,6 +127,130 @@
corpseidjob = "Operative"
corpseidaccess = "Syndicate"
/obj/effect/landmark/mobcorpse/android
name = "Android Drone"
var/list/brandList = list(
BP_L_HAND = "Unbranded",
BP_R_HAND = "Unbranded",
BP_L_FOOT = "Unbranded",
BP_R_FOOT = "Unbranded",
BP_L_ARM = "Unbranded",
BP_R_ARM = "Unbranded",
BP_L_LEG = "Unbranded",
BP_R_LEG = "Unbranded",
BP_HEAD = "Unbranded",
BP_TORSO = "Unbranded",
BP_GROIN = "Unbranded"
)
corpseid = 0
/obj/effect/landmark/mobcorpse/android/createCorpse()
var/mob/living/carbon/human/M = new /mob/living/carbon/human (src.loc)
M.real_name = src.name
for(var/injuries in 1 to rand(3,5))
var/deal_brute = rand(round(M.species.total_health * 0.10), round(M.species.total_health * 0.30))
M.take_overall_damage(deal_brute, "Death Trauma")
M.set_stat(DEAD) //Kills the new mob
var/obj/item/organ/internal/brain = M.internal_organs_by_name[O_BRAIN] //specific special cases
brain.digitize()
var/obj/item/organ/internal/eyes = M.internal_organs_by_name[O_EYES]
eyes.robotize()
for (var/limb in brandList)
var/obj/item/organ/external/E = M.get_organ(limb)
if(E)
E.robotize(brandList[limb])
if(src.corpseuniform)
M.equip_to_slot_or_del(new src.corpseuniform(M), slot_w_uniform)
if(src.corpsesuit)
M.equip_to_slot_or_del(new src.corpsesuit(M), slot_wear_suit)
if(src.corpseshoes)
M.equip_to_slot_or_del(new src.corpseshoes(M), slot_shoes)
if(src.corpsegloves)
M.equip_to_slot_or_del(new src.corpsegloves(M), slot_gloves)
if(src.corpseradio)
M.equip_to_slot_or_del(new src.corpseradio(M), slot_l_ear)
if(src.corpseglasses)
M.equip_to_slot_or_del(new src.corpseglasses(M), slot_glasses)
if(src.corpsemask)
M.equip_to_slot_or_del(new src.corpsemask(M), slot_wear_mask)
if(src.corpsehelmet)
M.equip_to_slot_or_del(new src.corpsehelmet(M), slot_head)
if(src.corpsebelt)
M.equip_to_slot_or_del(new src.corpsebelt(M), slot_belt)
if(src.corpsepocket1)
M.equip_to_slot_or_del(new src.corpsepocket1(M), slot_r_store)
if(src.corpsepocket2)
M.equip_to_slot_or_del(new src.corpsepocket2(M), slot_l_store)
if(src.corpseback)
M.equip_to_slot_or_del(new src.corpseback(M), slot_back)
if(src.corpseid == 1)
var/obj/item/card/id/W = new(M)
W.name = "[M.real_name]'s ID Card"
var/datum/job/jobdatum
for(var/jobtype in typesof(/datum/job))
var/datum/job/J = new jobtype
if(J.title == corpseidaccess)
jobdatum = J
break
if(src.corpseidicon)
W.icon_state = corpseidicon
if(src.corpseidaccess)
if(jobdatum)
W.access = jobdatum.get_access()
else
W.access = list()
if(corpseidjob)
W.assignment = corpseidjob
W.registered_name = M.real_name
M.equip_to_slot_or_del(W, slot_wear_id)
delete_me = 1
/obj/effect/landmark/mobcorpse/android/scientist
name = "Scientific Drone"
corpseuniform = /obj/item/clothing/under/lawyer/bluesuit
corpsesuit = /obj/item/clothing/suit/storage/toggle/labcoat
corpseshoes = /obj/item/clothing/shoes/boots/duty
brandList = list(
BP_L_HAND = "Cyber Solutions - Wight",
BP_R_HAND = "Cyber Solutions - Wight",
BP_L_FOOT = "Cyber Solutions - Wight",
BP_R_FOOT = "Cyber Solutions - Wight",
BP_L_ARM = "Cyber Solutions - Wight",
BP_R_ARM = "Cyber Solutions - Wight",
BP_L_LEG = "Cyber Solutions - Wight",
BP_R_LEG = "Cyber Solutions - Wight",
BP_HEAD = "Grayson",
BP_TORSO = "Cyber Solutions - Wight",
BP_GROIN = "Cyber Solutions - Wight"
)
/obj/effect/landmark/mobcorpse/android/combat
name = "Combat Drone"
corpseuniform = /obj/item/clothing/under/color/white
corpsesuit = /obj/item/clothing/suit/armor/vest/alt
corpseshoes = /obj/item/clothing/shoes/boots/duty
corpsegloves = /obj/item/clothing/gloves/swat
brandList = list(
BP_L_HAND = "Unbranded - Mantis Prosis",
BP_R_HAND = "Unbranded - Mantis Prosis",
BP_L_FOOT = "Unbranded - Mantis Prosis",
BP_R_FOOT = "Unbranded - Mantis Prosis",
BP_L_ARM = "Unbranded - Mantis Prosis",
BP_R_ARM = "Unbranded - Mantis Prosis",
BP_L_LEG = "Unbranded - Mantis Prosis",
BP_R_LEG = "Unbranded - Mantis Prosis",
BP_HEAD = "Hephaestus - Athena",
BP_TORSO = "Hephaestus - Athena",
BP_GROIN = "Hephaestus - Athena"
)
/obj/effect/landmark/mobcorpse/clown