[MIRROR] Hotfix for body colour (#10564)

Co-authored-by: SatinIsle <98125273+SatinIsle@users.noreply.github.com>
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-03-31 14:47:28 -07:00
committed by GitHub
parent 01fc47e997
commit ed8205a364
20 changed files with 317 additions and 10 deletions

View File

@@ -328,6 +328,7 @@
#define SPECIES_CUSTOM "Custom Species" #define SPECIES_CUSTOM "Custom Species"
#define SPECIES_LLEILL "Lleill" #define SPECIES_LLEILL "Lleill"
#define SPECIES_HANNER "Hanner" #define SPECIES_HANNER "Hanner"
#define SPECIES_SPARKLE "Sparkle Dog"
// Monkey and alien monkeys. // Monkey and alien monkeys.
#define SPECIES_MONKEY "Monkey" #define SPECIES_MONKEY "Monkey"

View File

@@ -20,9 +20,13 @@
#define LANGUAGE_SHADEKIN "Shadekin Empathy" #define LANGUAGE_SHADEKIN "Shadekin Empathy"
#define LANGUAGE_LLEILL "Glamour Speak" #define LANGUAGE_LLEILL "Glamour Speak"
#define LANGUAGE_MARISH "Marish" // CHOMPedit
//CHOMPedit Start - Xeno languages selectable #define LANGUAGE_SPARKLE "Sparkle"
// CHOMPAdd Start
#define LANGUAGE_MARISH "Marish"
// Xeno languages selectable
#define LANGUAGE_XENOLINGUA "Xenolingua" #define LANGUAGE_XENOLINGUA "Xenolingua"
#define LANGUAGE_HIVEMIND "Hivemind" #define LANGUAGE_HIVEMIND "Hivemind"
// CHOMPedit End. // CHOMPAdd End

View File

@@ -218,3 +218,16 @@
partial_understanding = list(LANGUAGE_TRADEBAND = 30, LANGUAGE_SOL_COMMON = 10) partial_understanding = list(LANGUAGE_TRADEBAND = 30, LANGUAGE_SOL_COMMON = 10)
/datum/language/human/animal /datum/language/human/animal
flags = RESTRICTED flags = RESTRICTED
/datum/language/sparkle
name = LANGUAGE_SPARKLE
desc = "Eeeeeeeeeeeeee."
speech_verb = "says"
ask_verb = "asks"
exclaim_verb = "squeals"
colour = "rainbow"
key = "Z"
syllables = list(
"lol", "lmao", "rofl", "rawr", "XD", "eeeee", "hehe", "lolz", "0_o", ":>", "l1k3", "mudk1pz", "l33t", "br00tal", "hXc", "wtf", "pwn"
)
flags = WHITELISTED

View File

@@ -257,3 +257,37 @@
player1.visible_message(span_notice("After a gruelling battle, [player1] eventually manages to subdue the thumb of [player2]!")) player1.visible_message(span_notice("After a gruelling battle, [player1] eventually manages to subdue the thumb of [player2]!"))
else else
player2.visible_message(span_notice("After a gruelling battle, [player2] eventually manages to subdue the thumb of [player1]!")) player2.visible_message(span_notice("After a gruelling battle, [player2] eventually manages to subdue the thumb of [player1]!"))
///Play dead for sparkledog memes
/mob/living/carbon/human/proc/play_dead()
set name = "Play Dead"
set desc = "Literally just die on the spot. It's okay, you can get better."
set category = "Abilities.Sparkledog"
if(stat)
to_chat(src, span_warning("You're too messed up right now to act all messed up, it's, like, for real."))
return
if(!resting)
SetResting(1)
add_modifier(/datum/modifier/play_dead, null, src) //Tracks whether they are still resting to remove the status indicator
add_status_indicator("dead")
visible_message(span_warning("\The [src] literally just dies!"))
else
SetResting(0)
/datum/modifier/play_dead
name = "playing dead"
desc = "You are are pretending to be dead, you aren't very convincing!"
on_created_text = span_notice("You begin to play dead!")
on_expired_text = span_notice("You got better.")
/datum/modifier/play_dead/tick()
if(!holder.resting)
expire()
/datum/modifier/play_dead/expire()
holder.remove_status_indicator("dead")
holder.visible_message(span_warning("\The [src] literally just dies!"))
..()

View File

@@ -37,3 +37,6 @@
/mob/living/carbon/human/hanner/New(var/new_loc) /mob/living/carbon/human/hanner/New(var/new_loc)
..(new_loc, SPECIES_HANNER) ..(new_loc, SPECIES_HANNER)
/mob/living/carbon/human/sparkledog/New(var/new_loc)
..(new_loc, SPECIES_SPARKLE)

View File

@@ -2025,3 +2025,48 @@
name = "danger level" name = "danger level"
icon_state = "danger00" //first number is bool of whether or not we're in danger, second is whether or not we're feral icon_state = "danger00" //first number is bool of whether or not we're in danger, second is whether or not we're feral
alpha = 200 alpha = 200
/datum/species/sparkledog //Exists primarily as an april fools joke, along with everything tied to it!
name = SPECIES_SPARKLE
name_plural = "Sparklies"
icobase = 'icons/mob/human_races/r_sparkle.dmi'
icobase_tail = 1
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp)
slowdown = -0.5
brute_mod = 1.5
burn_mod = 1.5
bloodloss_rate = 1.5
toxins_mod = 0.5
radiation_mod = 0
flash_mod = 2
siemens_coefficient = 10
darksight = 2
num_alternate_languages = 3
language = LANGUAGE_SPARKLE
species_language = LANGUAGE_SPARKLE
secondary_langs = list(LANGUAGE_SPARKLE, LANGUAGE_SOL_COMMON)
color_mult = 1
assisted_langs = list(LANGUAGE_EAL, LANGUAGE_ROOTLOCAL, LANGUAGE_ROOTGLOBAL, LANGUAGE_VOX, LANGUAGE_PROMETHEAN)
inherent_verbs = list(/mob/living/carbon/human/proc/tie_hair, /mob/living/proc/toggle_sparkles, /mob/living/proc/healing_rainbows, /mob/living/carbon/human/proc/play_dead)
min_age = 18
max_age = 21
digi_allowed = FALSE //No time for making rainbow legs for the meme, sorry!
pass_flags = PASSTABLE
blurb = "Th3 ultimate lifeform, th3 l@st of th3 sp@rkl3 d0gg0s. M0r3 p0w3rful th@nn @ny 0th3r sp3ci3s in th3 3ntir3 un1v3rs3!!! When 3v3ryth1ng is crashing d0wn, y0u c@nn always r3ly 0n th3m to s@v3 th3 d@y. N0 0n3 3ls3 h@s th@t k1nd of str3ngth. R@wr XD #sp@rkl3d0gg0 #s@v1ngth3d@y #n0b0dyc@r3s"
wikilink="https://wiki.vore-station.net/"
primitive_form = SPECIES_MONKEY_VULPKANIN
genders = list(MALE, FEMALE, PLURAL, NEUTER)
spawn_flags = SPECIES_CAN_JOIN
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_EYE_COLOR
flesh_color = "#ffffff"
base_color = "#ffffff"
blood_color = "#ff00d9"

View File

@@ -54,3 +54,62 @@
else else
touch_reaction_flags |= SPECIES_TRAIT_PERSONAL_BUBBLE touch_reaction_flags |= SPECIES_TRAIT_PERSONAL_BUBBLE
to_chat(src,span_notice("You will now dodge all attempts at hugging, patting, booping, licking, smelling and hand shaking.")) to_chat(src,span_notice("You will now dodge all attempts at hugging, patting, booping, licking, smelling and hand shaking."))
/mob/living/proc/toggle_sparkles()
set name = "Toggle Sparkles"
set desc = "Toggle fancy glowing sparkles!"
set category = "Abilities.Sparkledog"
if(!glow_toggle)
glow_range = 3
glow_intensity = 2
glow_color = "#FFFFFF"
glow_toggle = TRUE
add_modifier(/datum/modifier/sparkle, null, src)
else
glow_toggle = FALSE
/datum/modifier/sparkle
name = "sparkling"
desc = "You are sparkling, woo!"
mob_overlay_state = "cyan_sparkles"
on_created_text = span_notice("You begin to sparkle!")
on_expired_text = span_notice("Your sparkling fades away...")
/datum/modifier/sparkle/tick()
if(!holder.glow_toggle || holder.stat)
expire()
/mob/living/proc/healing_rainbows()
set name = "Firin Mah Lazor"
set desc = "Fire a glowing beam of rainbows at another person to heal them!"
set category = "Abilities.Sparkledog"
if(src.stat)
to_chat(src, span_warning("You can't vomit rainbows in this condition!"))
var/list/targets = list()
for(var/mob/living/carbon/human/M in oview(7,src))
if(M.z != src.z || get_dist(src,M) > 7)
continue
if(src == M)
continue
targets |= M
if(!targets)
to_chat(src, span_warning("There is nobody next to you."))
return
var/mob/living/carbon/human/chosen_target = tgui_input_list(src, "Who do you wish to shoot rainbows at?", "Rainbow", targets)
if(!chosen_target)
return
visible_message(span_warning("[src] begins chargin' their lazor!"))
if(!do_after(src, 5 SECONDS, chosen_target, exclusive = TASK_USER_EXCLUSIVE))
return
if(chosen_target.z != src.z || get_dist(src,chosen_target) > 7)
return
visible_message(span_warning("[src] fires their lazor at [chosen_target]!"))
var/obj/item/projectile/P = new /obj/item/projectile/beam/sparkledog(get_turf(src))
playsound(src, "'sound/weapons/sparkle.ogg'", 50, 1)
P.launch_projectile(chosen_target, BP_TORSO, src)

View File

@@ -37,7 +37,7 @@ GLOBAL_LIST_INIT(fancy_sprite_accessory_color_channel_names, list("Primary", "Se
var/gender = NEUTER var/gender = NEUTER
// Restrict some styles to specific species. Default to all species to avoid runtimes in character creator. // Restrict some styles to specific species. Default to all species to avoid runtimes in character creator.
var/list/species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER, SPECIES_ZADDAT) var/list/species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER, SPECIES_ZADDAT, SPECIES_SPARKLE)
// Whether or not the accessory can be affected by colouration // Whether or not the accessory can be affected by colouration
var/do_colouration = 1 var/do_colouration = 1

View File

@@ -15,7 +15,7 @@
var/extra_overlay2 var/extra_overlay2
var/desc = DEVELOPER_WARNING_NAME var/desc = DEVELOPER_WARNING_NAME
em_block = TRUE em_block = TRUE
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER) species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER, SPECIES_SPARKLE)
/** /**
* Gets the number of color channels we have. * Gets the number of color channels we have.

View File

@@ -21,7 +21,7 @@
var/extra_overlay_w // Flapping state for extra overlay var/extra_overlay_w // Flapping state for extra overlay
var/extra_overlay2_w var/extra_overlay2_w
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER) species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER, SPECIES_SPARKLE)
var/wing_offset = 0 var/wing_offset = 0
var/multi_dir = FALSE // Does it use different sprites at different layers? _front will be added for sprites on low layer, _back to high layer var/multi_dir = FALSE // Does it use different sprites at different layers? _front will be added for sprites on low layer, _back to high layer

View File

@@ -500,6 +500,29 @@
impact_type = /obj/effect/projectile/impact/rainbow impact_type = /obj/effect/projectile/impact/rainbow
hud_state = "laser" hud_state = "laser"
damage = 20 damage = 20
/obj/item/projectile/beam/sparkledog
name = "rainbow"
fire_sound = 'sound/weapons/sparkle.ogg'
icon_state = "rainbow"
light_color = "#ffffff"
muzzle_type = /obj/effect/projectile/muzzle/rainbow
tracer_type = /obj/effect/projectile/tracer/rainbow
impact_type = /obj/effect/projectile/impact/rainbow
hud_state = "laser"
damage = 0
nodamage = TRUE
/obj/item/projectile/beam/sparkledog/on_hit(var/atom/target, var/blocked = 0)
if(ishuman(target))
var/mob/living/carbon/human/M = target
M.druggy = max(M.druggy, 20)
if(M.health < M.maxHealth)
to_chat(target, span_notice("As the beam strikes you, you feel a little healthier!"))
M.adjustBruteLoss(-5)
M.adjustFireLoss(-5)
return 1
// //
// Projectile Beam Definitions // Projectile Beam Definitions
// //

Binary file not shown.

Before

Width:  |  Height:  |  Size: 313 KiB

After

Width:  |  Height:  |  Size: 424 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -147,6 +147,7 @@ h1.alert, h2.alert {color: #000000;}
.teppi {color: #816540; word-spacing:4pt; font-family: "Segoe Script Bold","Segoe Script",sans-serif,Verdana;} .teppi {color: #816540; word-spacing:4pt; font-family: "Segoe Script Bold","Segoe Script",sans-serif,Verdana;}
.marish {color: #9e31a4;} .marish {color: #9e31a4;}
.shadekin {color: #be3cc5; font-size: 150%; font-weight: bold; font-family: "Gabriola", cursive, sans-serif;} .shadekin {color: #be3cc5; font-size: 150%; font-weight: bold; font-family: "Gabriola", cursive, sans-serif;}
.rainbow-text {color: #ff00ff;}
BIG IMG.icon {width: 32px; height: 32px;} BIG IMG.icon {width: 32px; height: 32px;}

View File

@@ -22,7 +22,7 @@
/datum/map/stellar_delight/New() /datum/map/stellar_delight/New()
..() ..()
var/choice = pickweight(list( /* var/choice = pickweight(list(
"logo1" = 50, "logo1" = 50,
"logo2" = 50, "logo2" = 50,
"gateway" = 5, "gateway" = 5,
@@ -31,7 +31,7 @@
"above3b" = 200 "above3b" = 200
)) ))
if(choice) if(choice)
lobby_screens = list(choice) lobby_screens = list(choice)*/
/datum/map/stellar_delight /datum/map/stellar_delight
name = "StellarDelight" name = "StellarDelight"
@@ -46,8 +46,8 @@
zlevel_datum_type = /datum/map_z_level/stellar_delight zlevel_datum_type = /datum/map_z_level/stellar_delight
lobby_icon = 'icons/misc/title_vr.dmi' lobby_icon = 'icons/misc/title_vr_2.dmi' //remove the _2 after the event
lobby_screens = list("youcanttaketheskyfromme") lobby_screens = list("sparkles") //set back to youcanttaketheskyfromme
id_hud_icons = 'icons/mob/hud_jobs_vr.dmi' id_hud_icons = 'icons/mob/hud_jobs_vr.dmi'

View File

@@ -1436,6 +1436,37 @@ $border-width-px: $border-width * 1px;
font-family: Wingdings, Webdings; font-family: Wingdings, Webdings;
} }
.rainbow {
font-family: monospace;
font-weight: bold;
background: linear-gradient(
to right,
hsl(300, 76%, 72%),
hsl(275, 100%, 25%),
hsl(240, 100%, 50%),
hsl(120, 100%, 25%),
hsl(60, 100%, 50%),
hsl(39, 100%, 50%),
hsl(0, 100%, 50%)
);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
animation: rainbow_animation 6s ease-in-out infinite;
background-size: 400% 100%;
}
@keyframes rainbow_animation {
0%,
100% {
background-position: 0 0;
}
50% {
background-position: 100% 0;
}
}
.spoiler { .spoiler {
background-color: hsl(0, 0%, 50%); background-color: hsl(0, 0%, 50%);
color: transparent; color: transparent;

View File

@@ -1463,6 +1463,37 @@ $border-width-px: $border-width * 1px;
font-family: Wingdings, Webdings; font-family: Wingdings, Webdings;
} }
.rainbow {
font-family: monospace;
font-weight: bold;
background: linear-gradient(
to right,
hsl(300, 76%, 72%),
hsl(275, 100%, 25%),
hsl(240, 100%, 50%),
hsl(120, 100%, 25%),
hsl(60, 100%, 50%),
hsl(39, 100%, 50%),
hsl(0, 100%, 50%)
);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
animation: rainbow_animation 6s ease-in-out infinite;
background-size: 400% 100%;
}
@keyframes rainbow_animation {
0%,
100% {
background-position: 0 0;
}
50% {
background-position: 100% 0;
}
}
.spoiler { .spoiler {
background-color: hsl(0, 0%, 50%); background-color: hsl(0, 0%, 50%);
color: transparent; color: transparent;

View File

@@ -1437,6 +1437,37 @@ $border-width-px: $border-width * 1px;
font-family: Wingdings, Webdings; font-family: Wingdings, Webdings;
} }
.rainbow {
font-family: monospace;
font-weight: bold;
background: linear-gradient(
to right,
hsl(300, 76%, 72%),
hsl(275, 100%, 25%),
hsl(240, 100%, 50%),
hsl(120, 100%, 25%),
hsl(60, 100%, 50%),
hsl(39, 100%, 50%),
hsl(0, 100%, 50%)
);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
animation: rainbow_animation 6s ease-in-out infinite;
background-size: 400% 100%;
}
@keyframes rainbow_animation {
0%,
100% {
background-position: 0 0;
}
50% {
background-position: 100% 0;
}
}
.spoiler { .spoiler {
background-color: hsl(0, 0%, 50%); background-color: hsl(0, 0%, 50%);
color: transparent; color: transparent;

View File

@@ -1461,6 +1461,37 @@ $border-width-px: $border-width * 1px;
font-family: Wingdings, Webdings; font-family: Wingdings, Webdings;
} }
.rainbow {
font-family: monospace;
font-weight: bold;
background: linear-gradient(
to right,
hsl(300, 76%, 72%),
hsl(275, 100%, 25%),
hsl(240, 100%, 50%),
hsl(120, 100%, 25%),
hsl(60, 100%, 50%),
hsl(39, 100%, 50%),
hsl(0, 100%, 50%)
);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
animation: rainbow_animation 6s ease-in-out infinite;
background-size: 400% 100%;
}
@keyframes rainbow_animation {
0%,
100% {
background-position: 0 0;
}
50% {
background-position: 100% 0;
}
}
.spoiler { .spoiler {
background-color: hsl(0, 0%, 50%); background-color: hsl(0, 0%, 50%);
color: transparent; color: transparent;