Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds a random wig crate #15547

Merged
merged 4 commits into from Sep 20, 2023
Merged

Adds a random wig crate #15547

merged 4 commits into from Sep 20, 2023

Conversation

unfunnyperson
Copy link
Contributor

[CLOTHING] [FEATURE]

About the PR

Adds a wig crate for 2000 credits that contains 7 randomized wigs.

Why's this needed?

More things for cargo to buy are always cool. Also allows for bald people, borgs, and mutantraces to get hair more easily.

Changelog

(u)UnfunnyPerson
(+)Added a randomized wig crate. Cargo can order this crate for 2000 credits.

@keywordlabeler keywordlabeler bot added A-Clothing Deals with clothing of whatever sort C-Feature A new feature or enhancements to existing features labels Aug 27, 2023
@github-actions github-actions bot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Aug 27, 2023
@TealSeer
Copy link
Contributor

I love the idea, but the way you have wigs being generated currently leads to some really bizarre ones that I don't know if anybody would want to wear (multiple base hairstyles overlapping, ones that are just the detail modifier of a hairstyle and nothing else, etc.) It might be worth checking out the code used to generate a random character because it has some checks to make sure you only get base hair styles first, then roll a chance to add the details for that hair style. Relevant stuff starts here:

var/type_first
if (AH.gender == MALE)
if (prob(5)) // small chance to have a hairstyle more geared to the other gender
type_first = pick(filtered_concrete_typesof(/datum/customization_style, /proc/isfem))
AH.customization_first = new type_first
else // otherwise just use one standard to the current gender
type_first = pick(filtered_concrete_typesof(/datum/customization_style, /proc/ismasc))
AH.customization_first = new type_first
if (prob(33)) // since we're a guy, a chance for facial hair
var/type_second = pick(concrete_typesof(/datum/customization_style/beard) + concrete_typesof(/datum/customization_style/moustache))
AH.customization_second = new type_second
has_second = 1 // so the detail check doesn't do anything - we already got a secondary thing!!
else // if FEMALE
if (prob(8)) // same as above for guys, just reversed and with a slightly higher chance since it's ~more appropriate~ for ladies to have guy haircuts than vice versa :I
type_first = pick(filtered_concrete_typesof(/datum/customization_style, /proc/ismasc))
AH.customization_first = new type_first
else // ss13 is coded with gender stereotypes IN ITS VERY CORE
type_first = pick(filtered_concrete_typesof(/datum/customization_style, /proc/isfem))
AH.customization_first = new type_first
if (!has_second)
var/hair_detail = hair_details[AH.customization_first.name] // check for detail styles for our chosen style
if (hair_detail && prob(50)) // found something in the list
AH.customization_second = new hair_detail // default to being whatever we found
if (islist(hair_detail)) // if we found a bunch of things in the list
var/type_second = pick(hair_detail) // let's choose just one (we don't need to assign a list as someone's hair detail)
AH.customization_second = new type_second
if (prob(20)) // with a small chance for another detail thing
var/type_third = pick(hair_detail)
AH.customization_third = new type_third
AH.customization_third_color = random_saturated_hex_color()
if (prob(5))
AH.customization_third_color = randomize_hair_color(pick(hair_colors))
else
AH.customization_third = new /datum/customization_style/none
AH.customization_second_color = random_saturated_hex_color() // if you have a detail style you're likely to want a crazy color
if (prob(15))
AH.customization_second_color = randomize_hair_color(pick(hair_colors)) // but have a chance to be a normal hair color
else if (prob(5)) // chance for a special eye color
var/type_second = pick(/datum/customization_style/biological/hetcroL, /datum/customization_style/biological/hetcroR)
AH.customization_second = new type_second
if (prob(75))
AH.customization_second_color = random_saturated_hex_color()
else
AH.customization_second_color = randomize_eye_color(pick(eye_colors))
AH.customization_third = new /datum/customization_style/none
else // otherwise, nada
AH.customization_second = new /datum/customization_style/none
AH.customization_third = new /datum/customization_style/none

code/modules/barber/barber_shop.dm Outdated Show resolved Hide resolved
code/modules/economy/supply_packs.dm Outdated Show resolved Hide resolved
@github-actions github-actions bot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Sep 5, 2023
@github-actions
Copy link
Contributor

This PR has been inactive for two weeks, and has been automatically marked as stale. This means it is at risk of being auto closed in another week. Please address any outstanding review items and ensure your PR is finished. If you are auto-staled anyway, ask developers if your PR will be merged. Once you have done any of the previous actions then you should request a developer remove the stale label on your PR, to reset the stale timer. If you feel no developer will respond in that time, you may wish to close this PR youself, while you seek developer comment, as you will then be able to reopen the PR yourself.

@github-actions github-actions bot added the S-Stale An inactive PR that has had no updates in the past two weeks label Sep 20, 2023
@Tarmunora Tarmunora merged commit 98e50f5 into goonstation:master Sep 20, 2023
21 checks passed
github-actions bot pushed a commit that referenced this pull request Sep 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Clothing Deals with clothing of whatever sort C-Feature A new feature or enhancements to existing features S-Stale An inactive PR that has had no updates in the past two weeks size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants