Skip to content

Commit

Permalink
Makes borg modules and human species easily spawnable by admins from …
Browse files Browse the repository at this point in the history
…the mob spawn menu.
  • Loading branch information
Firecage committed Sep 25, 2017
1 parent 511e357 commit 63f3423
Show file tree
Hide file tree
Showing 4 changed files with 159 additions and 11 deletions.
4 changes: 2 additions & 2 deletions code/game/gamemodes/antag_spawner.dm
Original file line number Diff line number Diff line change
Expand Up @@ -203,9 +203,9 @@
var/mob/living/silicon/robot/R
switch(borg_to_spawn)
if("Medical")
R = new /mob/living/silicon/robot/syndicate/medical(T)
R = new /mob/living/silicon/robot/modules/syndicate/medical(T)
else
R = new /mob/living/silicon/robot/syndicate(T) //Assault borg by default
R = new /mob/living/silicon/robot/modules/syndicate(T) //Assault borg by default

var/brainfirstname = pick(GLOB.first_names_male)
if(prob(50))
Expand Down
121 changes: 121 additions & 0 deletions code/modules/mob/living/carbon/human/human.dm
Original file line number Diff line number Diff line change
Expand Up @@ -936,3 +936,124 @@
riding_datum.unequip_buckle_inhands(M)
riding_datum.restore_position(M)
. = ..(M, force)

/mob/living/carbon/human/species
var/race = null

/mob/living/carbon/human/species/Initialize()
. = ..()
set_species(race)

/mob/living/carbon/human/species/abductor
race = /datum/species/abductor

/mob/living/carbon/human/species/android
race = /datum/species/android

/mob/living/carbon/human/species/angel
race = /datum/species/angel

/mob/living/carbon/human/species/corporate
race = /datum/species/corporate

/mob/living/carbon/human/species/fly
race = /datum/species/fly

/mob/living/carbon/human/species/golem
race = /datum/species/golem

/mob/living/carbon/human/species/golem/random
race = /datum/species/golem/random

/mob/living/carbon/human/species/golem/adamantine
race = /datum/species/golem/adamantine

/mob/living/carbon/human/species/golem/plasma
race = /datum/species/golem/plasma

/mob/living/carbon/human/species/golem/diamond
race = /datum/species/golem/diamond

/mob/living/carbon/human/species/golem/gold
race = /datum/species/golem/gold

/mob/living/carbon/human/species/golem/silver
race = /datum/species/golem/silver

/mob/living/carbon/human/species/golem/plasteel
race = /datum/species/golem/plasteel

/mob/living/carbon/human/species/golem/titanium
race = /datum/species/golem/titanium

/mob/living/carbon/human/species/golem/plastitanium
race = /datum/species/golem/plastitanium

/mob/living/carbon/human/species/golem/alien_alloy
race = /datum/species/golem/alloy

/mob/living/carbon/human/species/golem/wood
race = /datum/species/golem/wood

/mob/living/carbon/human/species/golem/uranium
race = /datum/species/golem/uranium

/mob/living/carbon/human/species/golem/sand
race = /datum/species/golem/sand

/mob/living/carbon/human/species/golem/glass
race = /datum/species/golem/glass

/mob/living/carbon/human/species/golem/bluespace
race = /datum/species/golem/bluespace

/mob/living/carbon/human/species/golem/bananium
race = /datum/species/golem/bananium

/mob/living/carbon/human/species/golem/blood_cult
race = /datum/species/golem/runic

/mob/living/carbon/human/species/golem/cloth
race = /datum/species/golem/cloth

/mob/living/carbon/human/species/golem/plastic
race = /datum/species/golem/plastic

/mob/living/carbon/human/species/jelly
race = /datum/species/jelly

/mob/living/carbon/human/species/jelly/slime
race = /datum/species/jelly/slime

/mob/living/carbon/human/species/lizard
race = /datum/species/lizard

/mob/living/carbon/human/species/lizard/ashwalker
race = /datum/species/lizard/ashwalker

/mob/living/carbon/human/species/plasma
race = /datum/species/plasmaman

/mob/living/carbon/human/species/pod
race = /datum/species/pod

/mob/living/carbon/human/species/shadow
race = /datum/species/shadow

/mob/living/carbon/human/species/skeleton
race = /datum/species/skeleton

/mob/living/carbon/human/species/synth
race = /datum/species/synth

/mob/living/carbon/human/species/synth/military
race = /datum/species/synth/military

/mob/living/carbon/human/species/zombie
race = /datum/species/zombie

/mob/living/carbon/human/species/zombie/infectious
race = /datum/species/zombie/infectious

/mob/living/carbon/human/species/zombie/krokodil_addict
race = /datum/species/krokodil_addict
41 changes: 34 additions & 7 deletions code/modules/mob/living/silicon/robot/robot.dm
Original file line number Diff line number Diff line change
Expand Up @@ -781,7 +781,35 @@
cell = null
qdel(src)

/mob/living/silicon/robot/syndicate
/mob/living/silicon/robot/modules
var/set_module = null

/mob/living/silicon/robot/modules/Initialize()
. = ..()
module.transform_to(set_module)

/mob/living/silicon/robot/modules/standard
set_module = /obj/item/robot_module/standard

/mob/living/silicon/robot/modules/medical
set_module = /obj/item/robot_module/medical

/mob/living/silicon/robot/modules/engineering
set_module = /obj/item/robot_module/engineering

/mob/living/silicon/robot/modules/security
set_module = /obj/item/robot_module/security

/mob/living/silicon/robot/modules/peacekeeper
set_module = /obj/item/robot_module/peacekeeper

/mob/living/silicon/robot/modules/miner
set_module = /obj/item/robot_module/miner

/mob/living/silicon/robot/modules/janitor
set_module = /obj/item/robot_module/janitor

/mob/living/silicon/robot/modules/syndicate
icon_state = "syndie_bloodhound"
faction = list("syndicate")
bubble_icon = "syndibot"
Expand All @@ -793,25 +821,24 @@
<b>You are armed with powerful offensive tools to aid you in your mission: help the operatives secure the nuclear authentication disk. \
Your cyborg LMG will slowly produce ammunition from your power supply, and your operative pinpointer will find and locate fellow nuclear operatives. \
<i>Help the operatives secure the disk at all costs!</i></b>"
var/set_module = /obj/item/robot_module/syndicate
set_module = /obj/item/robot_module/syndicate

/mob/living/silicon/robot/syndicate/Initialize()
/mob/living/silicon/robot/modules/syndicate/Initialize()
. = ..()
cell.maxcharge = 25000
cell.charge = 25000
radio = new /obj/item/device/radio/borg/syndicate(src)
module.transform_to(set_module)
laws = new /datum/ai_laws/syndicate_override()
addtimer(CALLBACK(src, .proc/show_playstyle), 5)

/mob/living/silicon/robot/syndicate/proc/show_playstyle()
/mob/living/silicon/robot/modules/syndicate/proc/show_playstyle()
if(playstyle_string)
to_chat(src, playstyle_string)

/mob/living/silicon/robot/syndicate/ResetModule()
/mob/living/silicon/robot/modules/syndicate/ResetModule()
return

/mob/living/silicon/robot/syndicate/medical
/mob/living/silicon/robot/modules/syndicate/medical
icon_state = "syndi-medi"
playstyle_string = "<span class='userdanger'>You are a Syndicate medical cyborg!</span><br>\
<b>You are armed with powerful medical tools to aid you in your mission: help the operatives secure the nuclear authentication disk. \
Expand Down
4 changes: 2 additions & 2 deletions code/modules/projectiles/projectile/magic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -139,9 +139,9 @@
if("syndiborg")
var/path
if(prob(50))
path = /mob/living/silicon/robot/syndicate
path = /mob/living/silicon/robot/modules/syndicate
else
path = /mob/living/silicon/robot/syndicate/medical
path = /mob/living/silicon/robot/modules/syndicate/medical
new_mob = new path(M.loc)
if("drone")
new_mob = new /mob/living/simple_animal/drone/polymorphed(M.loc)
Expand Down

0 comments on commit 63f3423

Please sign in to comment.