mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-18 13:43:27 +00:00
3591 individual conflicts Update build.js Update install_node.sh Update byond.js oh my fucking god hat slow huh holy shit we all fall down 2 more I missed 2900 individual conflicts 2700 Individual conflicts replaces yarn file with tg version, bumping us down to 2200-ish Down to 2000 individual conflicts 140 down mmm aaaaaaaaaaaaaaaaaaa not yt 575 soon 900 individual conflicts 600 individual conflicts, 121 file conflicts im not okay 160 across 19 files 29 in 4 files 0 conflicts, compiletime fix time some minor incap stuff missed ticks weird dupe definition stuff missed ticks 2 incap fixes undefs and pie fix Radio update and some extra minor stuff returns a single override no more dupe definitions, 175 compiletime errors Unticked file fix sound and emote stuff honk and more radio stuff
86 lines
3.1 KiB
Plaintext
86 lines
3.1 KiB
Plaintext
//Chameleon causes the owner to slowly become transparent when not moving.
|
|
/datum/mutation/human/chameleon
|
|
name = "Chameleon"
|
|
desc = "A genome that causes the holder's skin to become transparent over time."
|
|
quality = POSITIVE
|
|
difficulty = 16
|
|
text_gain_indication = span_notice("You feel one with your surroundings.")
|
|
text_lose_indication = span_notice("You feel oddly exposed.")
|
|
instability = POSITIVE_INSTABILITY_MAJOR
|
|
power_coeff = 1
|
|
|
|
/datum/mutation/human/chameleon/on_acquiring(mob/living/carbon/human/owner)
|
|
if(..())
|
|
return
|
|
/// SKYRAT EDIT BEGIN
|
|
if(HAS_TRAIT(owner, TRAIT_CHAMELEON_SKIN))
|
|
return
|
|
ADD_TRAIT(owner, TRAIT_CHAMELEON_SKIN, GENETIC_MUTATION)
|
|
/// SKYRAT EDIT END
|
|
owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY
|
|
RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(on_move))
|
|
RegisterSignal(owner, COMSIG_LIVING_UNARMED_ATTACK, PROC_REF(on_attack_hand))
|
|
|
|
/datum/mutation/human/chameleon/on_life(seconds_per_tick, times_fired)
|
|
/// SKYRAT EDIT BEGIN
|
|
if(HAS_TRAIT(owner, TRAIT_CHAMELEON_SKIN))
|
|
owner.alpha = max(owner.alpha - (12.5 * (GET_MUTATION_POWER(src)) * seconds_per_tick), 0)
|
|
/// SKYRAT EDIT END
|
|
|
|
//Upgraded mutation of the base variant, used for changelings. No instability and better power_coeff
|
|
/datum/mutation/human/chameleon/changeling
|
|
instability = 0
|
|
power_coeff = 2.5
|
|
locked = TRUE
|
|
|
|
/**
|
|
* Resets the alpha of the host to the chameleon default if they move.
|
|
*
|
|
* Arguments:
|
|
* - [source][/atom/movable]: The source of the signal. Presumably the host mob.
|
|
* - [old_loc][/atom]: The location the host mob used to be in.
|
|
* - move_dir: The direction the host mob moved in.
|
|
* - forced: Whether the movement was caused by a forceMove or moveToNullspace.
|
|
* - [old_locs][/list/atom]: The locations the host mob used to be in.
|
|
*/
|
|
/datum/mutation/human/chameleon/proc/on_move(atom/movable/source, atom/old_loc, move_dir, forced, list/atom/old_locs)
|
|
SIGNAL_HANDLER
|
|
|
|
/// SKYRAT EDIT BEGIN
|
|
if(HAS_TRAIT(owner, TRAIT_CHAMELEON_SKIN))
|
|
owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY
|
|
else
|
|
owner.alpha = 255
|
|
/// SKYRAT EDIT END
|
|
|
|
/**
|
|
* Resets the alpha of the host if they click on something nearby.
|
|
*
|
|
* Arguments:
|
|
* - [source][/mob/living/carbon/human]: The host mob that just clicked on something.
|
|
* - [target][/atom]: The thing the host mob clicked on.
|
|
* - proximity: Whether the host mob can physically reach the thing that they clicked on.
|
|
* - [modifiers][/list]: The set of click modifiers associated with this attack chain call.
|
|
*/
|
|
/datum/mutation/human/chameleon/proc/on_attack_hand(mob/living/carbon/human/source, atom/target, proximity, list/modifiers)
|
|
SIGNAL_HANDLER
|
|
|
|
if(!proximity) //stops tk from breaking chameleon
|
|
return
|
|
|
|
/// SKYRAT EDIT BEGIN
|
|
if(HAS_TRAIT(owner, TRAIT_CHAMELEON_SKIN))
|
|
owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY
|
|
else
|
|
owner.alpha = 255
|
|
/// SKYRAT EDIT END
|
|
|
|
/datum/mutation/human/chameleon/on_losing(mob/living/carbon/human/owner)
|
|
if(..())
|
|
return
|
|
owner.alpha = 255
|
|
UnregisterSignal(owner, list(COMSIG_MOVABLE_MOVED, COMSIG_LIVING_UNARMED_ATTACK))
|
|
/// SKYRAT EDIT BEGIN
|
|
REMOVE_TRAIT(owner, TRAIT_CHAMELEON_SKIN, GENETIC_MUTATION)
|
|
/// SKYRAT EDIT END
|