mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-27 15:17:01 +01:00
Merge branch 'master' of https://github.com/tgstation/-tg-station into turfs
Conflicts: _maps/RandomZLevels/Cabin.dmm _maps/RandomZLevels/beach2.dmm _maps/RandomZLevels/caves.dmm _maps/RandomZLevels/research.dmm _maps/RandomZLevels/snowdin.dmm _maps/RandomZLevels/undergroundoutpost45.dmm _maps/map_files/DreamStation/dreamstation04.dmm _maps/map_files/EfficiencyStation/EfficiencyStation.dmm _maps/map_files/MetaStation/MetaStation.v41I.dmm _maps/map_files/MiniStation/MiniStation.dmm _maps/map_files/TgStation/tgstation.2.1.3.dmm _maps/map_files/generic/z4.dmm _maps/templates/lavaland_surface_automated_trade_outpost.dmm _maps/templates/lavaland_surface_biodome_winter.dmm _maps/templates/lavaland_surface_prisoner_crash.dmm _maps/templates/lavaland_surface_seed_vault.dmm code/controllers/subsystem/air.dm code/game/asteroid.dm code/game/atoms.dm code/game/gamemodes/nuclear/nuclearbomb.dm code/game/machinery/computer/arcade.dm code/game/objects/effects/aliens.dm code/game/objects/effects/overlays.dm code/game/objects/items/apc_frame.dm code/game/objects/structures/false_walls.dm code/game/objects/structures/girders.dm code/game/turfs/simulated.dm code/game/turfs/simulated/floor/fancy_floor.dm code/game/turfs/simulated/floor/mineral_floor.dm code/game/turfs/simulated/floor/plating.dm code/game/turfs/simulated/river.dm code/game/turfs/simulated/walls_misc.dm code/game/turfs/simulated/walls_reinforced.dm code/modules/admin/verbs/buildmode.dm code/modules/atmospherics/environmental/LINDA_turf_tile.dm code/modules/events/spacevine.dm code/modules/flufftext/Hallucination.dm code/modules/holodeck/turfs.dm code/modules/mining/mine_items.dm code/modules/mining/mine_turfs.dm code/modules/mob/interactive.dm code/modules/mob/living/carbon/human/life.dm code/modules/mob/living/living.dm code/modules/mob/living/simple_animal/bot/floorbot.dm code/modules/mob/living/simple_animal/guardian/guardian.dm code/modules/mob/living/simple_animal/hostile/hostile.dm code/modules/mob/mob_movement.dm code/modules/power/singularity/narsie.dm code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm code/modules/research/server.dm
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
/datum/surgery_step/dethrall/success(mob/user, mob/living/carbon/target, target_zone, datum/surgery/surgery)
|
||||
if(target.dna.species.id == "l_shadowling") //Empowered thralls cannot be deconverted
|
||||
target << "<span class='shadowling'><b><i>NOT LIKE THIS!</i></b></span>"
|
||||
user.visible_message("<span class='warning'><b>[target] suddenly slams upward and knocks down [user]!</span>", \
|
||||
user.visible_message("<span class='danger'>[target] suddenly slams upward and knocks down [user]!</span>", \
|
||||
"<span class='userdanger'>[target] suddenly bolts up and slams you with tremendous force!</span>")
|
||||
user.resting = 0 //Remove all stuns
|
||||
user.SetSleeping(0)
|
||||
|
||||
@@ -176,7 +176,7 @@
|
||||
|
||||
/obj/item/organ/internal/cyberimp/arm/toolset/emag_act()
|
||||
if(!(locate(/obj/item/weapon/kitchen/knife/combat/cyborg) in items_list))
|
||||
owner << "<span class='notice'>You unlock [src]'s integrated knife!</span>"
|
||||
usr << "<span class='notice'>You unlock [src]'s integrated knife!</span>"
|
||||
items_list += new /obj/item/weapon/kitchen/knife/combat/cyborg(src)
|
||||
return 1
|
||||
return 0
|
||||
@@ -103,4 +103,94 @@
|
||||
spawn(600 / severity)
|
||||
H.heart_attack = 0
|
||||
if(H.stat == CONSCIOUS)
|
||||
H << "<span class='notice'>You feel your heart beating again!</span>"
|
||||
H << "<span class='notice'>You feel your heart beating again!</span>"
|
||||
|
||||
|
||||
|
||||
|
||||
/obj/item/organ/internal/cyberimp/chest/thrusters
|
||||
name = "implantable thrusters set"
|
||||
desc = "An implantable set of thruster ports. They use the gas from environment or subject's internals for propulsion in zero-gravity areas. \
|
||||
Unlike regular jetpack, this device has no stablilzation system."
|
||||
slot = "thrusters"
|
||||
icon_state = "imp_jetpack"
|
||||
origin_tech = "materials=6;programming=4;magnets=3;biotech=4;engineering=4"
|
||||
implant_overlay = null
|
||||
implant_color = null
|
||||
actions_types = list(/datum/action/item_action/organ_action/toggle)
|
||||
w_class = 3
|
||||
var/on = 0
|
||||
var/datum/effect_system/trail_follow/ion/ion_trail
|
||||
|
||||
/obj/item/organ/internal/cyberimp/chest/thrusters/Insert(mob/living/carbon/M, special = 0)
|
||||
..()
|
||||
if(!ion_trail)
|
||||
ion_trail = new
|
||||
ion_trail.set_up(M)
|
||||
|
||||
/obj/item/organ/internal/cyberimp/chest/thrusters/Remove(mob/living/carbon/M, special = 0)
|
||||
if(on)
|
||||
toggle(silent=1)
|
||||
..()
|
||||
|
||||
/obj/item/organ/internal/cyberimp/chest/thrusters/ui_action_click()
|
||||
toggle()
|
||||
|
||||
/obj/item/organ/internal/cyberimp/chest/thrusters/proc/toggle(silent=0)
|
||||
if(!on)
|
||||
if(crit_fail)
|
||||
if(!silent)
|
||||
owner << "<span class='warning'>Your thrusters set seems to be broken!</span>"
|
||||
return 0
|
||||
on = 1
|
||||
if(allow_thrust(0.01))
|
||||
ion_trail.start()
|
||||
if(!silent)
|
||||
owner << "<span class='notice'>You turn your thrusters set on.</span>"
|
||||
else
|
||||
ion_trail.stop()
|
||||
if(!silent)
|
||||
owner << "<span class='notice'>You turn your thrusters set off.</span>"
|
||||
on = 0
|
||||
update_icon()
|
||||
|
||||
/obj/item/organ/internal/cyberimp/chest/thrusters/update_icon()
|
||||
if(on)
|
||||
icon_state = "imp_jetpack-on"
|
||||
else
|
||||
icon_state = "imp_jetpack"
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/organ/internal/cyberimp/chest/thrusters/proc/allow_thrust(num)
|
||||
if(!on || !owner)
|
||||
return 0
|
||||
|
||||
var/turf/T = get_turf(owner)
|
||||
if(!T) // No more runtimes from being stuck in nullspace.
|
||||
return 0
|
||||
|
||||
// Priority 1: use air from environment.
|
||||
var/datum/gas_mixture/environment = T.return_air()
|
||||
if(environment && environment.return_pressure() > 30)
|
||||
return 1
|
||||
|
||||
// Priority 2: use plasma from internal plasma storage.
|
||||
// (just in case someone would ever use this implant system to make cyber-alien ops with jetpacks and taser arms)
|
||||
if(owner.getPlasma() >= num*100)
|
||||
owner.adjustPlasma(-num*100)
|
||||
return 1
|
||||
|
||||
// Priority 3: use internals tank.
|
||||
var/obj/item/weapon/tank/I = owner.internal
|
||||
if(I && I.air_contents && I.air_contents.total_moles() > num)
|
||||
var/datum/gas_mixture/removed = I.air_contents.remove(num)
|
||||
if(removed.total_moles() > 0.005)
|
||||
T.assume_air(removed)
|
||||
return 1
|
||||
else
|
||||
T.assume_air(removed)
|
||||
|
||||
toggle(silent=1)
|
||||
return 0
|
||||
@@ -152,7 +152,7 @@
|
||||
/obj/item/organ/internal/cyberimp/mouth/breathing_tube
|
||||
name = "breathing tube implant"
|
||||
desc = "This simple implant adds an internals connector to your back, allowing you to use internals without a mask and protecting you from being choked."
|
||||
icon_state = "breathing_tube"
|
||||
icon_state = "implant_mask"
|
||||
slot = "breathing_tube"
|
||||
w_class = 1
|
||||
origin_tech = "materials=2;biotech=3"
|
||||
|
||||
Reference in New Issue
Block a user