April sync (#360)

* Maps and things no code/icons

* helpers defines globalvars

* Onclick world.dm orphaned_procs

* subsystems

Round vote and shuttle autocall done here too

* datums

* Game folder

* Admin - chatter modules

* clothing - mining

* modular computers - zambies

* client

* mob level 1

* mob stage 2 + simple_animal

* silicons n brains

* mob stage 3 + Alien/Monkey

* human mobs

* icons updated

* some sounds

* emitter y u no commit

* update tgstation.dme

* compile fixes

* travis fixes

Also removes Fast digest mode, because reasons.

* tweaks for travis Mentors are broke again

Also fixes Sizeray guns

* oxygen loss fix for vore code.

* removes unused code

* some code updates

* bulk fixes

* further fixes

* outside things

* whoops.

* Maint bar ported

* GLOBs.
This commit is contained in:
Poojawa
2017-04-13 23:37:00 -05:00
committed by GitHub
parent cdc32c98fa
commit 7e9b96a00f
1322 changed files with 174827 additions and 23888 deletions
+31 -35
View File
@@ -24,6 +24,8 @@
slot_flags = SLOT_BACK
resistance_flags = FIRE_PROOF
var/processing_mode = FLIGHTSUIT_PROCESSING_FULL
var/obj/item/clothing/suit/space/hardsuit/flightsuit/suit = null
var/mob/living/carbon/human/wearer = null
var/slowdown_ground = 1
@@ -104,14 +106,15 @@
//Start/Stop processing the item to use momentum and flight mechanics.
/obj/item/device/flightpack/New()
/obj/item/device/flightpack/Initialize()
ion_trail = new
ion_trail.set_up(src)
START_PROCESSING(SSflightpacks, src)
..()
update_parts()
sync_processing(SSflightpacks)
..()
/obj/item/device/flightpack/full/New()
/obj/item/device/flightpack/full/Initialize()
part_manip = new /obj/item/weapon/stock_parts/manipulator/pico(src)
part_scan = new /obj/item/weapon/stock_parts/scanning_module/phasic(src)
part_cap = new /obj/item/weapon/stock_parts/capacitor/super(src)
@@ -120,6 +123,18 @@
assembled = TRUE
..()
/obj/item/device/flightpack/proc/sync_processing(datum/controller/subsystem/processing/flightpacks/FPS)
processing_mode = FPS.flightsuit_processing
if(processing_mode == FLIGHTSUIT_PROCESSING_NONE)
momentum_x = 0
momentum_y = 0
momentum_speed_x = 0
momentum_speed_y = 0
momentum_speed = 0
boost_charge = 0
boost = FALSE
update_slowdown()
/obj/item/device/flightpack/proc/update_parts()
boost_chargerate = initial(boost_chargerate)
boost_drain = initial(boost_drain)
@@ -339,7 +354,7 @@
suit.slowdown = slowdown_air
/obj/item/device/flightpack/process()
if(!suit)
if(!suit || (processing_mode == FLIGHTSUIT_PROCESSING_NONE))
return FALSE
update_slowdown()
update_icon()
@@ -451,7 +466,7 @@
wearer.visible_message("[wearer] is knocked flying by the impact!")
/obj/item/device/flightpack/proc/flight_impact(atom/unmovablevictim, crashdir) //Yes, victim.
if((unmovablevictim == wearer) || crashing)
if((unmovablevictim == wearer) || crashing || (processing_mode == FLIGHTSUIT_PROCESSING_NONE))
return FALSE
crashing = TRUE
var/crashpower = 0
@@ -563,9 +578,12 @@
spawn()
A.open()
wearer.visible_message("<span class='warning'>[wearer] rolls sideways and slips past [A]</span>")
wearer.forceMove(get_turf(A))
var/turf/target = get_turf(A)
if(istype(A, /obj/machinery/door/window) && (get_turf(wearer) == get_turf(A)))
target = get_step(A, A.dir)
wearer.forceMove(target)
if(dragging_through)
dragging_through.forceMove(get_turf(A))
dragging_through.forceMove(target)
wearer.pulling = dragging_through
return pass
@@ -573,30 +591,8 @@
/obj/item/device/flightpack/proc/mobknockback(mob/living/victim, power, direction)
if(!ismob(victim))
return FALSE
var/knockmessage = "<span class='warning'>[victim] is knocked back by [wearer] as they narrowly avoid a collision!"
if(power == 1)
knockmessage = "<span class='warning'>[wearer] soars into [victim], pushing them away!"
var/knockback = 0
var/stun = boost * 2 + (power - 2)
if((stun >= 0) || (power == 3))
knockmessage += " [wearer] dashes across [victim] at full impulse, knocking them [stun ? "down" : "away"]!" //Impulse...
knockmessage += "</span>"
knockback += power
knockback += (part_manip.rating / 2)
knockback += (part_bin.rating / 2)
knockback += boost*2
switch(power)
if(1)
knockback = 1
if(2)
knockback /= 1.5
var/throwdir = pick(alldirs)
var/turf/target = get_step(victim, throwdir)
for(var/i in 1 to (knockback-1))
target = get_step(target, throwdir)
wearer.visible_message(knockmessage)
victim.throw_at(target, knockback, 1)
victim.Weaken(stun)
wearer.forceMove(get_turf(victim))
wearer.visible_message("<span class='notice'>[wearer] flies over [victim]!</span>")
/obj/item/device/flightpack/proc/victimknockback(atom/movable/victim, power, direction)
if(!victim)
@@ -621,7 +617,7 @@
for(var/i in 1 to knockback)
target = get_step(target, direction)
for(var/i in 1 to knockback/3)
target = get_step(target, pick(alldirs))
target = get_step(target, pick(GLOB.alldirs))
if(knockback)
victim.throw_at(target, knockback, part_manip.rating)
if(isobj(victim))
@@ -639,7 +635,7 @@
if(move)
while(momentum_x != 0 || momentum_y != 0)
sleep(2)
step(wearer, pick(cardinal))
step(wearer, pick(GLOB.cardinal))
momentum_decay()
adjust_momentum(0, 0, 10)
wearer.visible_message("<span class='warning'>[wearer]'s flight suit crashes into the ground!</span>")
@@ -1270,13 +1266,13 @@
/obj/item/clothing/head/helmet/space/hardsuit/flightsuit/equipped(mob/living/carbon/human/wearer, slot)
..()
for(var/hudtype in datahuds)
var/datum/atom_hud/H = huds[hudtype]
var/datum/atom_hud/H = GLOB.huds[hudtype]
H.add_hud_to(wearer)
/obj/item/clothing/head/helmet/space/hardsuit/flightsuit/dropped(mob/living/carbon/human/wearer)
..()
for(var/hudtype in datahuds)
var/datum/atom_hud/H = huds[hudtype]
var/datum/atom_hud/H = GLOB.huds[hudtype]
H.remove_hud_from(wearer)
if(zoom)
toggle_zoom(wearer, TRUE)
+2 -2
View File
@@ -430,13 +430,13 @@
to_chat(user, ("<span class='warning'>Your [user.glasses] prevents you using [src]'s diagnostic visor HUD.</span>"))
else
onboard_hud_enabled = 1
var/datum/atom_hud/DHUD = huds[DATA_HUD_DIAGNOSTIC]
var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC]
DHUD.add_hud_to(user)
/obj/item/clothing/head/helmet/space/hardsuit/rd/dropped(mob/living/carbon/human/user)
..()
if(onboard_hud_enabled && !(user.glasses && istype(user.glasses, /obj/item/clothing/glasses/hud/diagnostic)))
var/datum/atom_hud/DHUD = huds[DATA_HUD_DIAGNOSTIC]
var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC]
DHUD.remove_hud_from(user)
/obj/item/clothing/suit/space/hardsuit/rd
@@ -308,3 +308,33 @@ Contains:
desc = "Peering into the eyes of the helmet is enough to seal damnation."
icon_state = "hardsuit0-beserker"
item_state = "hardsuit0-beserker"
/obj/item/clothing/head/helmet/space/fragile
name = "emergency space helmet"
desc = "A bulky, air-tight helmet meant to protect the user during emergency situations. It doesn't look very durable."
icon_state = "syndicate-helm-orange"
item_state = "syndicate-helm-orange"
armor = list(melee = 5, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10, fire = 0, acid = 0)
strip_delay = 65
/obj/item/clothing/suit/space/fragile
name = "emergency space suit"
desc = "A bulky, air-tight suit meant to protect the user during emergency situations. It doesn't look very durable."
var/torn = FALSE
icon_state = "syndicate-orange"
item_state = "syndicate-orange"
slowdown = 2
armor = list(melee = 5, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10, fire = 0, acid = 0)
strip_delay = 65
/obj/item/clothing/suit/space/fragile/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance)
if(!torn && prob(50))
to_chat(owner, "<span class='warning'>[src] tears from the damage, breaking the air-tight seal!</span>")
src.flags -= STOPSPRESSUREDMAGE
src.name = "torn [src]."
src.desc = "A bulky suit meant to protect the user during emergency situations, at least until someone tore a hole in the suit."
src.torn = TRUE
playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1)
playsound(loc, 'sound/effects/refill.ogg', 50, 1)