Skillchips are now copied to bitrunning avatars, plus a new chip to dodge bullets while flipping. (#81980)

## About The Pull Request
Active skillchips are now copied on bitrunning avatars. To celebrate
this, I've made a skillchip, which can be ordered through the bitrunning
vendor, that lets you dodge projectiles for the duration of your flips
plus 1/10 of a second (so 8/10 of a sec), at the cost of stamina (if you
think 20 is a bit too low, tell me).

I've also renamed the files containing the orderable bepis disks and
bitrunning tech because they inconsistent with the names of their
sections shown in the UI.

## Why It's Good For The Game
I think (active) skillchips being copied to bitrunning avatars makes
sense as after all they're both tech-y, brainy stuff. It's a bit of a
shame that no one thought of doing that.

## Changelog

🆑
add: Active skillchips are now copied on bitrunning avatars.
add: To celebrate it, a skillchip is now available from the bitrunning
order console, which lets you dodge projectiles for the duration of your
flips, at the cost of stamina.
/🆑
This commit is contained in:
Ghom
2024-03-21 21:44:10 +01:00
committed by GitHub
parent bd8a641a5a
commit 76fa5bcdad
12 changed files with 102 additions and 56 deletions
@@ -507,4 +507,29 @@
activate_message = span_notice("You think of your favourite food and realise that you can rotate its flavour in your mind.")
deactivate_message = span_notice("You feel your food-based mind palace crumbling...")
/obj/item/skillchip/matrix_flip
name = "BULLET_DODGER skillchip"
skill_name = "Flip 2 Dodge"
skill_description = "At the cost of stamina, your flips can also be used to dodge incoming projectiles."
skill_icon = FA_ICON_SPINNER
activate_message = span_notice("You feel the urge to flip scenically as if you are the 'Chosen One'.")
deactivate_message = span_notice("The urge to flip goes away.")
/obj/item/skillchip/matrix_flip/on_activate(mob/living/carbon/user, silent = FALSE)
. = ..()
RegisterSignal(user, COMSIG_MOB_EMOTED("flip"), PROC_REF(on_flip))
/obj/item/skillchip/matrix_flip/on_deactivate(mob/living/carbon/user, silent=FALSE)
UnregisterSignal(user, COMSIG_MOB_EMOTED("flip"))
return ..()
/obj/item/skillchip/matrix_flip/proc/on_flip(mob/living/source)
SIGNAL_HANDLER
if(HAS_TRAIT_FROM(source, TRAIT_UNHITTABLE_BY_PROJECTILES, SKILLCHIP_TRAIT))
return
playsound(source, 'sound/weapons/fwoosh.ogg', 90, FALSE)
ADD_TRAIT(source, TRAIT_UNHITTABLE_BY_PROJECTILES, SKILLCHIP_TRAIT)
source.adjustStaminaLoss(20)
addtimer(TRAIT_CALLBACK_REMOVE(source, TRAIT_UNHITTABLE_BY_PROJECTILES, SKILLCHIP_TRAIT), FLIP_EMOTE_DURATION + 0.1 SECONDS)
#undef SKILLCHIP_CATEGORY_GENERAL