12/21 modernizations from TG live (#103)

* sync (#3)

* shuttle auto call

* Merge /vore into /master (#39)

* progress

* Compile errors fixed

No idea if it's test worthy tho as conflicts with race overhaul and
narky removal.

* Update admins.txt

* efforts continue

Fuck grab code, seriously

* grab code is cancer

* Execute the Narkism

Do not hesitate.

Show no mercy.

* holy shit grab code is awful

* have I bitched about grab code

My bitching, let me show you it

* código de agarre es una mierda

No really it is

* yeah I don't even know anymore.

* Lolnope. Fuck grab code

* I'm not even sure what to fix anymore

* Self eating is not an acceptable fate

* Taste the void, son.

* My code doesn't pass it's own sanity check.

Maybe it's a sign of things to come.

* uncommented and notes

* It Works and I Don't Know Why (#38)

* shuttle auto call

* it works and I don't know why

* Subsystem 12/21

Most Recent TG subsystem folder

* globalvars 12/21

Tossed out the flavor_misc and parallax files

* Onclick 12/21

as well as .dme updates

* _defines 12/21

ommited old _MC.dm

* _HELPERS 12/21

Preserved snowflake placement of furry sprites

* _defeines/genetics

reapplied narkism holdover for snowflake races.

* Oops forgot mutant colors

* modules porting 12/21 + Sounds/icons

Admin, Client and most of mob life files ommitted

* enviroment file

* Admin optimizations

ahelp log system kept

* Mob ports 12/21

Flavor text preserved

* datums ported 12/21

* Game ported 12/21

* batch of duplicate fixes/dogborg work

Dogborgs need to be modernized to refractored borg standards.

* moar fixes

* Maps and futher compile fixes
This commit is contained in:
Poojawa
2016-12-22 03:57:55 -06:00
committed by GitHub
parent f5e143a452
commit cf59ac1c3d
2215 changed files with 707445 additions and 87041 deletions
+115 -69
View File
@@ -4,20 +4,34 @@
//Handle items on mob
//first implants & organs
var/list/implants = list()
var/list/stored_implants = list()
var/list/int_organs = list()
if (tr_flags & TR_KEEPIMPLANTS)
for(var/obj/item/weapon/implant/W in src)
implants += W
for(var/X in implants)
var/obj/item/weapon/implant/IMP = X
stored_implants += IMP
IMP.removed(src, 1, 1)
if (tr_flags & TR_KEEPORGANS)
for(var/obj/item/organ/I in internal_organs)
for(var/X in internal_organs)
var/obj/item/organ/I = X
int_organs += I
I.Remove(src, 1)
var/list/missing_bodyparts_zones = get_missing_limbs()
var/obj/item/cavity_object
var/obj/item/bodypart/chest/CH = get_bodypart("chest")
if(CH.cavity_item)
cavity_object = CH.cavity_item
CH.cavity_item = null
if(tr_flags & TR_KEEPITEMS)
for(var/obj/item/W in (src.contents-implants-int_organs))
var/Itemlist = get_equipped_items()
Itemlist += held_items
for(var/obj/item/W in Itemlist)
unEquip(W)
//Make mob invisible and spawn animation
@@ -28,14 +42,9 @@
cut_overlays()
invisibility = INVISIBILITY_MAXIMUM
var/atom/movable/overlay/animation = new( loc )
animation.icon_state = "blank"
animation.icon = 'icons/mob/mob.dmi'
animation.master = src
flick("h2monkey", animation)
PoolOrNew(/obj/effect/overlay/temp/monkeyify, get_turf(src))
sleep(22)
var/mob/living/carbon/monkey/O = new /mob/living/carbon/monkey( loc )
qdel(animation)
// hash the original name?
if(tr_flags & TR_HASHNAME)
@@ -56,7 +65,7 @@
if(hellbound)
O.hellbound = hellbound
O.loc = loc
O.a_intent = "harm"
O.a_intent = INTENT_HARM
//keep viruses?
if (tr_flags & TR_KEEPVIRUS)
@@ -68,31 +77,53 @@
//keep damage?
if (tr_flags & TR_KEEPDAMAGE)
O.setToxLoss(getToxLoss())
O.adjustBruteLoss(getBruteLoss())
O.setOxyLoss(getOxyLoss())
O.adjustFireLoss(getFireLoss())
O.setToxLoss(getToxLoss(), 0)
O.adjustBruteLoss(getBruteLoss(), 0)
O.setOxyLoss(getOxyLoss(), 0)
O.setCloneLoss(getCloneLoss(), 0)
O.adjustFireLoss(getFireLoss(), 0)
O.updatehealth()
O.radiation = radiation
//re-add implants to new mob
if (tr_flags & TR_KEEPIMPLANTS)
for(var/obj/item/weapon/implant/I in implants)
I.loc = O
I.implanted = O
for(var/Y in implants)
var/obj/item/weapon/implant/IMP = Y
IMP.implant(O, null, 1)
//re-add organs to new mob
if(tr_flags & TR_KEEPORGANS)
for(var/obj/item/organ/I in O.internal_organs)
qdel(I)
for(var/X in O.internal_organs)
qdel(X)
for(var/obj/item/organ/I in int_organs)
for(var/X in int_organs)
var/obj/item/organ/I = X
I.Insert(O, 1)
var/obj/item/bodypart/chest/torso = O.get_bodypart("chest")
if(cavity_object)
torso.cavity_item = cavity_object //cavity item is given to the new chest
cavity_object.loc = O
for(var/missing_zone in missing_bodyparts_zones)
var/obj/item/bodypart/BP = O.get_bodypart(missing_zone)
BP.drop_limb(1)
if(!(tr_flags & TR_KEEPORGANS)) //we didn't already get rid of the organs of the newly spawned mob
for(var/X in O.internal_organs)
var/obj/item/organ/G = X
if(BP.body_zone == check_zone(G.zone))
if(mind && mind.changeling && istype(G, /obj/item/organ/brain))
continue //so headless changelings don't lose their brain when transforming
qdel(G) //we lose the organs in the missing limbs
qdel(BP)
//transfer mind and delete old mob
if(mind)
mind.transfer_to(O)
if(O.mind.changeling)
O.mind.changeling.purchasedpowers += new /obj/effect/proc_holder/changeling/humanform(null)
if (tr_flags & TR_DEFAULTMSG)
O << "<B>You are now a monkey.</B>"
@@ -113,21 +144,35 @@
//Handle items on mob
//first implants & organs
var/list/implants = list()
var/list/stored_implants = list()
var/list/int_organs = list()
if (tr_flags & TR_KEEPIMPLANTS)
for(var/obj/item/weapon/implant/W in src)
implants += W
for(var/X in implants)
var/obj/item/weapon/implant/IMP = X
stored_implants += IMP
IMP.removed(src, 1, 1)
if (tr_flags & TR_KEEPORGANS)
for(var/obj/item/organ/I in internal_organs)
for(var/X in internal_organs)
var/obj/item/organ/I = X
int_organs += I
I.Remove(src, 1)
var/list/missing_bodyparts_zones = get_missing_limbs()
var/obj/item/cavity_object
var/obj/item/bodypart/chest/CH = get_bodypart("chest")
if(CH.cavity_item)
cavity_object = CH.cavity_item
CH.cavity_item = null
//now the rest
if (tr_flags & TR_KEEPITEMS)
for(var/obj/item/W in (src.contents-implants-int_organs))
var/Itemlist = get_equipped_items()
Itemlist += held_items
for(var/obj/item/W in Itemlist)
unEquip(W)
if (client)
client.screen -= W
@@ -135,6 +180,9 @@
W.loc = loc
W.dropped(src)
W.layer = initial(W.layer)
W.plane = initial(W.plane)
//Make mob invisible and spawn animation
notransform = 1
@@ -143,16 +191,11 @@
icon = null
cut_overlays()
invisibility = INVISIBILITY_MAXIMUM
var/atom/movable/overlay/animation = new( loc )
animation.icon_state = "blank"
animation.icon = 'icons/mob/mob.dmi'
animation.master = src
flick("monkey2h", animation)
PoolOrNew(/obj/effect/overlay/temp/monkeyify/humanify, get_turf(src))
sleep(22)
var/mob/living/carbon/human/O = new( loc )
for(var/obj/item/C in O.loc)
O.equip_to_appropriate_slot(C)
qdel(animation)
dna.transfer_identity(O)
O.updateappearance(mutcolor_update=1)
@@ -188,33 +231,53 @@
//keep damage?
if (tr_flags & TR_KEEPDAMAGE)
O.setToxLoss(getToxLoss())
O.adjustBruteLoss(getBruteLoss())
O.setOxyLoss(getOxyLoss())
O.adjustFireLoss(getFireLoss())
O.setToxLoss(getToxLoss(), 0)
O.adjustBruteLoss(getBruteLoss(), 0)
O.setOxyLoss(getOxyLoss(), 0)
O.setCloneLoss(getCloneLoss(), 0)
O.adjustFireLoss(getFireLoss(), 0)
O.updatehealth()
O.radiation = radiation
//re-add implants to new mob
if (tr_flags & TR_KEEPIMPLANTS)
for(var/obj/item/weapon/implant/I in implants)
I.loc = O
I.implanted = O
O.sec_hud_set_implants()
for(var/Y in implants)
var/obj/item/weapon/implant/IMP = Y
IMP.implant(O, null, 1)
if(tr_flags & TR_KEEPORGANS)
for(var/obj/item/organ/I in O.internal_organs)
qdel(I)
for(var/X in O.internal_organs)
qdel(X)
for(var/obj/item/organ/I in int_organs)
for(var/X in int_organs)
var/obj/item/organ/I = X
I.Insert(O, 1)
var/obj/item/bodypart/chest/torso = get_bodypart("chest")
if(cavity_object)
torso.cavity_item = cavity_object //cavity item is given to the new chest
cavity_object.loc = O
for(var/missing_zone in missing_bodyparts_zones)
var/obj/item/bodypart/BP = O.get_bodypart(missing_zone)
BP.drop_limb(1)
if(!(tr_flags & TR_KEEPORGANS)) //we didn't already get rid of the organs of the newly spawned mob
for(var/X in O.internal_organs)
var/obj/item/organ/G = X
if(BP.body_zone == check_zone(G.zone))
if(mind && mind.changeling && istype(G, /obj/item/organ/brain))
continue //so headless changelings don't lose their brain when transforming
qdel(G) //we lose the organs in the missing limbs
qdel(BP)
if(mind)
mind.transfer_to(O)
if(O.mind.changeling)
for(var/obj/effect/proc_holder/changeling/humanform/HF in O.mind.changeling.purchasedpowers)
mind.changeling.purchasedpowers -= HF
O.a_intent = "help"
O.a_intent = INTENT_HELP
if (tr_flags & TR_DEFAULTMSG)
O << "<B>You are now a human.</B>"
@@ -383,7 +446,7 @@
if("Drone")
new_xeno = new /mob/living/carbon/alien/humanoid/drone(loc)
new_xeno.a_intent = "harm"
new_xeno.a_intent = INTENT_HARM
new_xeno.key = key
new_xeno << "<B>You are now an alien.</B>"
@@ -415,15 +478,15 @@
new_slime = pick(babies)
else
new_slime = new /mob/living/simple_animal/slime(loc)
new_slime.a_intent = "harm"
new_slime.a_intent = INTENT_HARM
new_slime.key = key
new_slime << "<B>You are now a slime. Skreee!</B>"
. = new_slime
qdel(src)
/mob/proc/become_overmind(mode_made = 0)
var/mob/camera/blob/B = new /mob/camera/blob(loc, 0, mode_made)
/mob/proc/become_overmind(mode_made, starting_points = 60)
var/mob/camera/blob/B = new /mob/camera/blob(loc, 0, mode_made, starting_points)
if(mind)
mind.transfer_to(B)
else
@@ -432,23 +495,6 @@
qdel(src)
/mob/proc/become_god(var/side_colour)
var/mob/camera/god/G = new /mob/camera/god(loc)
G.side = side_colour
if(mind)
mind.transfer_to(G)
else
G.key = key
G.job = "Deity"
G.rename_self("deity")
G.update_icons()
. = G
qdel(src)
/mob/living/carbon/human/proc/corgize()
if (notransform)
return
@@ -463,7 +509,7 @@
qdel(t)
var/mob/living/simple_animal/pet/dog/corgi/new_corgi = new /mob/living/simple_animal/pet/dog/corgi (loc)
new_corgi.a_intent = "harm"
new_corgi.a_intent = INTENT_HARM
new_corgi.key = key
new_corgi << "<B>You are now a Corgi. Yap Yap!</B>"
@@ -496,7 +542,7 @@
var/mob/new_mob = new mobpath(src.loc)
new_mob.key = key
new_mob.a_intent = "harm"
new_mob.a_intent = INTENT_HARM
new_mob << "You suddenly feel more... animalistic."
@@ -515,7 +561,7 @@
var/mob/new_mob = new mobpath(src.loc)
new_mob.key = key
new_mob.a_intent = "harm"
new_mob.a_intent = INTENT_HARM
new_mob << "You feel more... animalistic"
. = new_mob