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
+53 -85
View File
@@ -9,41 +9,44 @@
/obj/structure/alien
icon = 'icons/mob/alien.dmi'
var/health = 100
obj_integrity = 100
max_integrity = 100
/obj/structure/alien/attacked_by(obj/item/I, mob/user)
..()
var/damage = I.force
switch(I.damtype)
if(BRUTE)
damage *= 0.25
if(BURN)
damage *= 2
else
damage = 0 //stamina damage does no damage
take_damage(damage, I.damtype)
/obj/structure/alien/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir)
if(damage_flag == "melee")
switch(damage_type)
if(BRUTE)
damage_amount *= 0.25
if(BURN)
damage_amount *= 2
. = ..()
/obj/structure/alien/proc/take_damage(amount, damage_type = BRUTE, sound_effect = 1)
/obj/structure/alien/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
switch(damage_type)
if(BRUTE)
if(sound_effect)
if(damage_amount)
playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
else
playsound(src, 'sound/weapons/tap.ogg', 50, 1)
if(BURN)
if(sound_effect)
if(damage_amount)
playsound(loc, 'sound/items/Welder.ogg', 100, 1)
else
return
health = max(health - amount, 0)
if(!health)
Break()
/obj/structure/alien/proc/Break()
/*
* Generic alien stuff, not related to the purple lizards but still alien-like
*/
/obj/structure/alien/gelpod
name = "gelatinous mound"
desc = "A mound of jelly-like substance encasing something inside."
icon = 'icons/obj/fluff.dmi'
icon_state = "gelmound"
/obj/structure/alien/gelpod/deconstruct(disassembled = TRUE)
if(!(flags & NODECONSTRUCT))
new/obj/effect/mob_spawn/human/corpse/damaged(get_turf(src))
qdel(src)
/obj/structure/alien/bullet_act(obj/item/projectile/P)
. = ..()
take_damage(P.damage, P.damage_type)
/*
* Resin
*/
@@ -56,10 +59,11 @@
opacity = 1
anchored = 1
canSmoothWith = list(/obj/structure/alien/resin)
health = 200
obj_integrity = 200
max_integrity = 200
smooth = SMOOTH_TRUE
var/resintype = null
CanAtmosPass = ATMOS_PASS_DENSITY
/obj/structure/alien/resin/New(location)
@@ -72,9 +76,6 @@
..()
move_update_air(T)
/obj/structure/alien/resin/CanAtmosPass()
return !density
/obj/structure/alien/resin/wall
name = "resin wall"
desc = "Thick resin solidified into a wall."
@@ -92,55 +93,15 @@
icon = 'icons/obj/smooth_structures/alien/resin_membrane.dmi'
icon_state = "membrane0"
opacity = 0
health = 160
obj_integrity = 160
max_integrity = 160
resintype = "membrane"
canSmoothWith = list(/obj/structure/alien/resin/wall, /obj/structure/alien/resin/membrane)
/obj/structure/alien/resin/ex_act(severity, target)
switch(severity)
if(1)
take_damage(150, BRUTE, 0)
if(2)
take_damage(100, BRUTE, 0)
if(3)
take_damage(50, BRUTE, 0)
/obj/structure/alien/blob_act(obj/effect/blob/B)
take_damage(50, BRUTE, 0)
/obj/structure/alien/resin/hitby(atom/movable/AM)
..()
var/tforce = 0
if(!isobj(AM))
tforce = 10
else
var/obj/O = AM
tforce = O.throwforce
take_damage(tforce)
/obj/structure/alien/resin/attack_hulk(mob/living/carbon/human/user)
..(user, 1)
user.visible_message("<span class='danger'>[user] destroys [src]!</span>")
take_damage(200)
/obj/structure/alien/resin/attack_paw(mob/user)
return attack_hand(user)
/obj/structure/alien/resin/attack_alien(mob/living/user)
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src)
user.visible_message("<span class='danger'>[user] claws at the resin!</span>")
take_damage(50)
/obj/structure/alien/resin/attack_animal(mob/living/simple_animal/M)
M.changeNext_move(CLICK_CD_MELEE)
M.do_attack_animation(src)
if(!M.melee_damage_upper)
return
visible_message("<span class='danger'>[M] [M.attacktext] [src]!</span>")
take_damage(M.melee_damage_upper, M.melee_damage_type)
/obj/structure/alien/resin/CanPass(atom/movable/mover, turf/target, height=0)
return !density
@@ -159,7 +120,8 @@
density = 0
layer = TURF_LAYER
icon_state = "weeds"
health = 15
obj_integrity = 15
max_integrity = 15
var/obj/structure/alien/weeds/node/linked_node = null
canSmoothWith = list(/obj/structure/alien/weeds, /turf/closed/wall)
smooth = SMOOTH_MORE
@@ -178,7 +140,7 @@
if(3)
icon = 'icons/obj/smooth_structures/alien/weeds3.dmi'
linked_node = node
if(istype(loc, /turf/open/space))
if(isspaceturf(loc))
qdel(src)
return
addtimer(src, "Life", rand(150, 200))
@@ -191,7 +153,7 @@
set background = BACKGROUND_ENABLED
var/turf/U = get_turf(src)
if(istype(U, /turf/open/space))
if(isspaceturf(U))
qdel(src)
return
@@ -200,7 +162,7 @@
for(var/turf/T in U.GetAtmosAdjacentTurfs())
if (locate(/obj/structure/alien/weeds) in T || istype(T, /turf/open/space))
if (locate(/obj/structure/alien/weeds) in T || isspaceturf(T))
continue
new /obj/structure/alien/weeds(T, linked_node)
@@ -212,7 +174,7 @@
/obj/structure/alien/weeds/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
if(exposed_temperature > 300)
take_damage(5, BURN, 0)
take_damage(5, BURN, 0, 0)
//Weed nodes
@@ -249,7 +211,8 @@
icon_state = "egg_growing"
density = 0
anchored = 1
health = 100
obj_integrity = 100
max_integrity = 100
var/status = GROWING //can be GROWING, GROWN or BURST; all mutually exclusive
layer = MOB_LAYER
@@ -266,6 +229,9 @@
/obj/structure/alien/egg/attack_paw(mob/living/user)
return attack_hand(user)
/obj/structure/alien/egg/attack_alien(mob/living/carbon/alien/user)
return attack_hand(user)
/obj/structure/alien/egg/attack_hand(mob/living/user)
if(user.getorgan(/obj/item/organ/alien/plasmavessel))
switch(status)
@@ -317,16 +283,18 @@
remove_from_proximity_list(src, 1)
..()
/obj/structure/alien/egg/Break()
if(status != BURST && status != BURSTING)
Burst()
else if(status == BURST)
qdel(src) //Remove the egg after it has been hit after bursting.
/obj/structure/alien/egg/deconstruct()
if(!(flags & NODECONSTRUCT))
if(status != BURST && status != BURSTING)
Burst()
else if(status == BURST)
qdel(src) //Remove the egg after it has been hit after bursting.
else
qdel(src)
/obj/structure/alien/egg/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
if(exposed_temperature > 500)
take_damage(5, BURN, 0)
take_damage(5, BURN, 0, 0)
/obj/structure/alien/egg/HasProximity(atom/movable/AM)