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
@@ -3,7 +3,7 @@
desc = "A tank of compressed gas for use as propulsion in zero-gravity areas. Use with caution."
icon_state = "jetpack"
item_state = "jetpack"
w_class = 4
w_class = WEIGHT_CLASS_BULKY
distribute_pressure = ONE_ATMOSPHERE * O2STANDARD
actions_types = list(/datum/action/item_action/set_internals, /datum/action/item_action/toggle_jetpack, /datum/action/item_action/jetpack_stabilization)
var/gas_type = "o2"
@@ -13,16 +13,17 @@
/obj/item/weapon/tank/jetpack/New()
..()
air_contents.assert_gas(gas_type)
air_contents.gases[gas_type][MOLES] = (6 * ONE_ATMOSPHERE) * volume / (R_IDEAL_GAS_EQUATION * T20C)
if(gas_type)
air_contents.assert_gas(gas_type)
air_contents.gases[gas_type][MOLES] = (6 * ONE_ATMOSPHERE) * volume / (R_IDEAL_GAS_EQUATION * T20C)
ion_trail = new
ion_trail.set_up(src)
/obj/item/weapon/tank/jetpack/ui_action_click(mob/user, actiontype)
if(actiontype == /datum/action/item_action/toggle_jetpack)
/obj/item/weapon/tank/jetpack/ui_action_click(mob/user, action)
if(istype(action, /datum/action/item_action/toggle_jetpack))
cycle(user)
else if(actiontype == /datum/action/item_action/jetpack_stabilization)
else if(istype(action, /datum/action/item_action/jetpack_stabilization))
if(on)
stabilizers = !stabilizers
user << "<span class='notice'>You turn the jetpack stabilization [stabilizers ? "on" : "off"].</span>"
@@ -73,6 +74,15 @@
return 1
/obj/item/weapon/tank/jetpack/suicide_act(mob/user)
if (istype(user,/mob/living/carbon/human/))
var/mob/living/carbon/human/H = user
H.forcesay("WHAT THE FUCK IS CARBON DIOXIDE?")
H.visible_message("<span class='suicide'>[user] is suffocating [user.p_them()]self with [src]! It looks like [user.p_they()] didn't read what that jetpack says!</span>")
return (OXYLOSS)
else
..()
/obj/item/weapon/tank/jetpack/void
name = "void jetpack (oxygen)"
desc = "It works well in a void."
@@ -92,15 +102,16 @@
item_state = "jetpack-mini"
volume = 40
throw_range = 7
w_class = 3
w_class = WEIGHT_CLASS_NORMAL
/obj/item/weapon/tank/jetpack/oxygen/captain
name = "\improper Captain's jetpack"
desc = "A compact, lightweight jetpack containing a high amount of compressed oxygen."
icon_state = "jetpack-captain"
item_state = "jetpack-captain"
w_class = 3
w_class = WEIGHT_CLASS_NORMAL
volume = 90
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF //steal objective items are hard to destroy.
/obj/item/weapon/tank/jetpack/carbondioxide
name = "jetpack (carbon dioxide)"
@@ -110,20 +121,34 @@
distribute_pressure = 0
gas_type = "co2"
/obj/item/weapon/tank/jetpack/suit
name = "suit inbuilt jetpack"
desc = "A device that will use your internals tank as a gas source for propulsion."
icon_state = "jetpack-void"
item_state = "jetpack-void"
name = "hardsuit jetpack upgrade"
desc = "A modular, compact set of thrusters designed to integrate with a hardsuit. It is fueled by a tank inserted into the suit's storage compartment."
origin_tech = "materials=4;magnets=4;engineering=5"
icon_state = "jetpack-upgrade"
item_state = "jetpack-black"
w_class = WEIGHT_CLASS_NORMAL
actions_types = list(/datum/action/item_action/toggle_jetpack, /datum/action/item_action/jetpack_stabilization)
volume = 1
slot_flags = null
gas_type = null
var/datum/gas_mixture/temp_air_contents
var/obj/item/weapon/tank/internals/tank = null
/obj/item/weapon/tank/jetpack/suit/New()
..()
STOP_PROCESSING(SSobj, src)
air_contents = null
temp_air_contents = air_contents
/obj/item/weapon/tank/jetpack/suit/attack_self()
return
/obj/item/weapon/tank/jetpack/suit/cycle(mob/user)
if(!istype(loc, /obj/item/clothing/suit/space/hardsuit))
user << "<span class='warning'>\The [src] must be connected to a hardsuit!</span>"
return
var/mob/living/carbon/human/H = user
if(!istype(H.s_store, /obj/item/weapon/tank/internals))
user << "<span class='warning'>You need a tank in your suit storage!</span>"
@@ -131,7 +156,7 @@
..()
/obj/item/weapon/tank/jetpack/suit/turn_on()
if(!ishuman(loc.loc))
if(!istype(loc, /obj/item/clothing/suit/space/hardsuit) || !ishuman(loc.loc))
return
var/mob/living/carbon/human/H = loc.loc
tank = H.s_store
@@ -141,12 +166,12 @@
/obj/item/weapon/tank/jetpack/suit/turn_off()
tank = null
air_contents = null
air_contents = temp_air_contents
STOP_PROCESSING(SSobj, src)
..()
/obj/item/weapon/tank/jetpack/suit/process()
if(!ishuman(loc.loc))
if(!istype(loc, /obj/item/clothing/suit/space/hardsuit) || !ishuman(loc.loc))
turn_off()
return
var/mob/living/carbon/human/H = loc.loc
@@ -158,7 +158,7 @@
icon_state = "emergency"
flags = CONDUCT
slot_flags = SLOT_BELT
w_class = 2
w_class = WEIGHT_CLASS_SMALL
force = 4
distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE
volume = 3 //Tiny. Real life equivalents only have 21 breaths of oxygen in them. They're EMERGENCY tanks anyway -errorage (dangercon 2011)
+19 -9
View File
@@ -10,6 +10,7 @@
throw_speed = 1
throw_range = 4
actions_types = list(/datum/action/item_action/set_internals)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 0, rad = 0, fire = 80, acid = 30)
var/datum/gas_mixture/air_contents = null
var/distribute_pressure = ONE_ATMOSPHERE
var/integrity = 3
@@ -60,7 +61,7 @@
qdel(air_contents)
STOP_PROCESSING(SSobj, src)
return ..()
. = ..()
/obj/item/weapon/tank/examine(mob/user)
var/obj/icon = src
@@ -91,20 +92,29 @@
user << "<span class='notice'>It feels [descriptive].</span>"
/obj/item/weapon/tank/blob_act(obj/effect/blob/B)
if(prob(50))
var/turf/location = src.loc
if (!( istype(location, /turf) ))
/obj/item/weapon/tank/blob_act(obj/structure/blob/B)
if(B && B.loc == loc)
var/turf/location = get_turf(src)
if(!location)
qdel(src)
if(src.air_contents)
if(air_contents)
location.assume_air(air_contents)
qdel(src)
/obj/item/weapon/tank/deconstruct(disassembled = TRUE)
if(!disassembled)
var/turf/T = get_turf(src)
if(T)
T.assume_air(air_contents)
air_update_turf()
playsound(src.loc, 'sound/effects/spray.ogg', 10, 1, -3)
qdel(src)
/obj/item/weapon/tank/suicide_act(mob/user)
var/mob/living/carbon/human/H = user
user.visible_message("<span class='suicide'>[user] is putting the [src]'s valve to their lips! I don't think they're gonna stop!</span>")
user.visible_message("<span class='suicide'>[user] is putting [src]'s valve to [user.p_their()] lips! It looks like [user.p_theyre()] trying to commit suicide!</span>")
playsound(loc, 'sound/effects/spray.ogg', 10, 1, -3)
if (H && !qdeleted(H))
for(var/obj/item/W in H)
@@ -114,7 +124,7 @@
H.hair_style = "Bald"
H.update_hair()
H.bleed_rate = 5
gibs(H.loc, H.viruses, H.dna)
new /obj/effect/gibspawner/generic(H.loc, H.viruses, H.dna)
H.adjustBruteLoss(1000) //to make the body super-bloody
return (BRUTELOSS)
@@ -127,7 +137,7 @@
else if(istype(W, /obj/item/device/assembly_holder))
bomb_assemble(W,user)
else
return ..()
. = ..()
/obj/item/weapon/tank/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \
datum/tgui/master_ui = null, datum/ui_state/state = hands_state)
@@ -5,10 +5,14 @@
icon = 'icons/obj/hydroponics/equipment.dmi'
icon_state = "waterbackpack"
item_state = "waterbackpack"
w_class = 4
w_class = WEIGHT_CLASS_BULKY
slot_flags = SLOT_BACK
slowdown = 1
actions_types = list(/datum/action/item_action/toggle_mister)
obj_integrity = 200
max_integrity = 200
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 30)
resistance_flags = FIRE_PROOF
var/obj/item/weapon/noz
var/on = 0
@@ -83,19 +87,10 @@
var/mob/M = src.loc
if(istype(M) && istype(over_object, /obj/screen/inventory/hand))
var/obj/screen/inventory/hand/H = over_object
switch(H.slot_id)
if(slot_r_hand)
if(M.r_hand)
return
if(!M.unEquip(src))
return
M.put_in_r_hand(src)
if(slot_l_hand)
if(M.l_hand)
return
if(!M.unEquip(src))
return
M.put_in_l_hand(src)
if(!M.unEquip(src))
return
M.put_in_hand(src, H.held_index)
/obj/item/weapon/watertank/attackby(obj/item/W, mob/user, params)
if(W == noz)
@@ -114,7 +109,7 @@
icon = 'icons/obj/hydroponics/equipment.dmi'
icon_state = "mister"
item_state = "mister"
w_class = 4
w_class = WEIGHT_CLASS_BULKY
amount_per_transfer_from_this = 50
possible_transfer_amounts = list(25,50,100)
volume = 500
@@ -223,7 +218,7 @@
power = 8
precision = 1
cooling_power = 5
w_class = 5
w_class = WEIGHT_CLASS_HUGE
flags = NODROP //Necessary to ensure that the nozzle and tank never seperate
var/obj/item/weapon/watertank/tank
var/nozzle_mode = 0
@@ -231,12 +226,13 @@
var/nanofrost_cooldown = 0
/obj/item/weapon/extinguisher/mini/nozzle/New(parent_tank)
..()
if(check_tank_exists(parent_tank, src))
tank = parent_tank
reagents = tank.reagents
max_water = tank.volume
loc = tank
return
/obj/item/weapon/extinguisher/mini/nozzle/Move()
..()
@@ -300,7 +296,7 @@
nanofrost_cooldown = 0
return
if(nozzle_mode == METAL_FOAM)
if(!Adj|| !istype(target, /turf))
if(!Adj|| !isturf(target))
return
if(metal_synthesis_cooldown < 5)
var/obj/effect/particle_effect/foam/metal/F = PoolOrNew(/obj/effect/particle_effect/foam/metal, get_turf(target))
@@ -325,7 +321,7 @@
S.set_up(2, src.loc, blasting=1)
S.start()
var/obj/effect/decal/cleanable/flour/F = new /obj/effect/decal/cleanable/flour(src.loc)
F.color = "#B2FFFF"
F.add_atom_colour("#B2FFFF", FIXED_COLOUR_PRIORITY)
F.name = "nanofrost residue"
F.desc = "Residue left behind from a nanofrost detonation. Perhaps there was a fire here?"
playsound(src,'sound/effects/bamf.ogg',100,1)
@@ -341,7 +337,7 @@
icon = 'icons/obj/hydroponics/equipment.dmi'
icon_state = "waterbackpackatmos"
item_state = "waterbackpackatmos"
w_class = 4
w_class = WEIGHT_CLASS_BULKY
slot_flags = SLOT_BACK
slowdown = 1
actions_types = list(/datum/action/item_action/activate_injector)
@@ -424,7 +420,7 @@
loc << "<span class='notice'>[src] turns off.</span>"
/obj/item/weapon/reagent_containers/chemtank/process()
if(!istype(loc,/mob/living/carbon/human))
if(!ishuman(loc))
turn_off()
return
if(!reagents.total_volume)
@@ -452,7 +448,7 @@
desc = "A New Russian backpack spray for systematic cleansing of carbon lifeforms."
icon_state = "waterbackpackjani"
item_state = "waterbackpackjani"
w_class = 3
w_class = WEIGHT_CLASS_NORMAL
volume = 2000
slowdown = 0
@@ -472,7 +468,7 @@
icon = 'icons/obj/hydroponics/equipment.dmi'
icon_state = "misterjani"
item_state = "misterjani"
w_class = 4
w_class = WEIGHT_CLASS_BULKY
amount_per_transfer_from_this = 100
possible_transfer_amounts = list(75,100,150)