Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into tgui-alerts-and-what-not

This commit is contained in:
SandPoot
2021-10-08 21:05:41 -03:00
135 changed files with 144395 additions and 145067 deletions
@@ -269,6 +269,10 @@ GLOBAL_LIST_INIT(channel_tokens, list(
. = ..()
AddElement(/datum/element/empprotection, EMP_PROTECT_WIRES)
/obj/item/radio/headset/silicon/pai/emp_act(severity)
. = ..()
return EMP_PROTECT_SELF
/obj/item/radio/headset/silicon/ai
name = "\proper Integrated Subspace Transceiver "
keyslot2 = new /obj/item/encryptionkey/ai
+23 -2
View File
@@ -769,12 +769,33 @@
STOP_PROCESSING(SSobj, src)
. = ..()
/obj/item/nullrod/tribal_knife/pickup(mob/user)
. = ..()
reroll()
/obj/item/nullrod/tribal_knife/process()
slowdown = rand(-2, 2)
reroll()
/obj/item/nullrod/tribal_knife/proc/reroll()
if(iscarbon(loc))
var/mob/living/carbon/wielder = loc
if(wielder.is_holding(src))
wielder.update_equipment_speed_mods()
var/current_tiles = 10 / max(wielder.cached_multiplicative_slowdown, world.tick_lag)
var/datum/movespeed_modifier/M = wielder.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/item/arrhythmic_knife, update = FALSE, multiplicative_slowdown = pick(-10, -10, 0, (current_tiles - 2) / 10, (current_tiles - 4) / 10))
M.max_tiles_per_second_boost = pick(3, 6)
wielder.update_movespeed() // update movespeed manually
/obj/item/nullrod/tribal_knife/dropped(mob/user)
user.remove_movespeed_modifier(/datum/movespeed_modifier/item/arrhythmic_knife)
return ..()
/datum/movespeed_modifier/item/arrhythmic_knife
variable = TRUE
flags = IGNORE_NOSLOW
movetypes = ~FLOATING
priority = 750
absolute_max_tiles_per_second = 20
max_tiles_per_second_boost = 6
/obj/item/nullrod/pitchfork
icon_state = "pitchfork0"
@@ -457,6 +457,10 @@ as performing this in action() will cause the upgrade to end up in the borg inst
desc = "An upgrade to a cyborg's hypospray, allowing it to \
pierce armor and thick material."
icon_state = "cyborg_upgrade3"
module_type = list(/obj/item/robot_module/medical,
/obj/item/robot_module/syndicate_medical)
var/list/additional_reagents = list()
module_flags = BORG_MODULE_MEDICAL
/obj/item/borg/upgrade/piercing_hypospray/action(mob/living/silicon/robot/R, user = usr)
. = ..()
@@ -514,6 +518,7 @@ as performing this in action() will cause the upgrade to end up in the borg inst
module_type = list(
/obj/item/robot_module/medical,
/obj/item/robot_module/syndicate_medical)
module_flags = BORG_MODULE_MEDICAL
/obj/item/borg/upgrade/advhealth/action(mob/living/silicon/robot/R, user = usr)
. = ..()
+1 -1
View File
@@ -78,7 +78,7 @@
animate(effect, alpha = 0, pixel_x = px * 1.5, pixel_y = py * 1.5, time = 3, flags = ANIMATION_PARALLEL | ANIMATION_RELATIVE)
/obj/item/shield/proc/bash_target(mob/living/user, mob/living/target, bashdir, harmful)
if(!(target.status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE)) // should probably add stun absorption check at some point I guess..
if(!(HAS_TRAIT(target, CANKNOCKDOWN)) || HAS_TRAIT(target, TRAIT_STUNIMMUNE)) // should probably add stun absorption check at some point I guess..
// unified stun absorption system when lol
target.visible_message("<span class='warning'>[user] slams [target] with [src], but [target] doesn't falter!</span>", "<span class='userdanger'>[user] slams you with [src], but it barely fazes you!</span>")
return FALSE
+8 -16
View File
@@ -16,8 +16,9 @@
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 50, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80)
attack_speed = CLICK_CD_MELEE
var/stamina_loss_amount = 40
var/stamina_loss_amount = 35
var/turned_on = FALSE
var/armor_pen = 100
var/knockdown = TRUE
/// block percent needed to prevent knockdown/disarm
var/block_percent_to_counter = 50
@@ -25,8 +26,8 @@
var/hitcost = 750
var/throw_hit_chance = 35
var/preload_cell_type //if not empty the baton starts with this type of cell
var/cooldown_duration = 3.5 SECONDS //How long our baton rightclick goes on cooldown for after applying a knockdown
var/status_duration = 5 SECONDS //how long our status effects last for otherwise
var/cooldown_duration = 2.5 SECONDS //How long our baton rightclick goes on cooldown for after applying a knockdown
var/status_duration = 3 SECONDS //how long our status effects last for otherwise
COOLDOWN_DECLARE(shove_cooldown)
/obj/item/melee/baton/examine(mob/user)
@@ -80,16 +81,6 @@
//we're below minimum, turn off
switch_status(FALSE)
///Check for our cell to determine how much penetration our weapon does.
/obj/item/melee/baton/proc/get_cell_zap_pen()
var/obj/item/stock_parts/cell/copper_top = get_cell()
if(copper_top)
var/chargepower = copper_top.maxcharge
var/zap_penetration = (chargepower/1000) //This is our effective penetration. Every 1000 max charge, we get 1 pen power. A high capacity cell is equal to 10 armor pen, as an example.
return zap_penetration
else
return 0
/obj/item/melee/baton/proc/switch_status(new_status = FALSE, silent = FALSE)
if(turned_on != new_status)
turned_on = new_status
@@ -198,7 +189,7 @@
return FALSE
var/final_stamina_loss_amount = stamina_loss_amount //Our stunning power for the baton
var/shoved = FALSE //Did we succeed on knocking our target over?
var/zap_penetration = get_cell_zap_pen() //Find out what kind of cell we have, and calculating the resultant armor pen we get from it
var/zap_penetration = armor_pen
var/zap_block = L.run_armor_check(BODY_ZONE_CHEST, "melee", null, null, zap_penetration) //armor check, including calculation for armor penetration, for our attack
final_stamina_loss_amount = block_calculate_resultant_damage(final_stamina_loss_amount, return_list)
@@ -223,7 +214,7 @@
if(shoving && COOLDOWN_FINISHED(src, shove_cooldown) && !HAS_TRAIT(L, TRAIT_IWASBATONED)) //Rightclicking applies a knockdown, but only once every couple of seconds, based on the cooldown_duration var. If they were recently knocked down, they can't be knocked down again by a baton.
L.DefaultCombatKnockdown(50, override_stamdmg = 0)
L.apply_status_effect(STATUS_EFFECT_TASED_WEAK, status_duration) //Even if they shove themselves up, they're still slowed.
L.apply_status_effect(STATUS_EFFECT_TASED_WEAK_NODMG, status_duration) //Even if they shove themselves up, they're still slowed.
L.apply_status_effect(STATUS_EFFECT_OFF_BALANCE, status_duration) //They're very likely to drop items if shoved briefly after a knockdown.
shoved = TRUE
COOLDOWN_START(src, shove_cooldown, cooldown_duration)
@@ -333,7 +324,8 @@
w_class = WEIGHT_CLASS_BULKY
force = 3
throwforce = 5
stamina_loss_amount = 25
stamina_loss_amount = 30
armor_pen = 35
hitcost = 1000
throw_hit_chance = 10
slot_flags = ITEM_SLOT_BACK