mirror of
https://github.com/quotefox/Hyper-Station-13.git
synced 2026-08-25 21:56:13 +01:00
Merge branch 'quotefox:master' into master
This commit is contained in:
@@ -196,6 +196,7 @@
|
||||
#define TRAIT_MACROPHILE "macrophile" //likes the big
|
||||
#define TRAIT_MICROPHILE "microphile" //likes the small
|
||||
#define TRAIT_APATHETIC "apathetic" //doesn't care
|
||||
#define TRAIT_LOW_PRESSURE_LUNGS "low_puressure_lungs" //used to lower kPa of Lavaland and other low kPa Atmos.
|
||||
|
||||
#define TRAIT_TOUGH "tough" //you have 10% more maxhealth
|
||||
#define TRAIT_AUTO_CATCH_ITEM "auto_catch_item"
|
||||
|
||||
@@ -697,7 +697,8 @@ SUBSYSTEM_DEF(ticker)
|
||||
'hyperstation/sound/roundend/starbucks.ogg',
|
||||
'hyperstation/sound/roundend/tired.ogg',
|
||||
'hyperstation/sound/roundend/toys.ogg',
|
||||
'hyperstation/sound/roundend/water.ogg'\
|
||||
'hyperstation/sound/roundend/water.ogg',
|
||||
'hyperstation/sound/roundend/whatiswrong.ogg'\
|
||||
)
|
||||
|
||||
SEND_SOUND(world, sound(round_end_sound))
|
||||
|
||||
@@ -267,6 +267,71 @@
|
||||
if(quirk_holder)
|
||||
quirk_holder.blood_ratio = 1
|
||||
|
||||
/datum/quirk/low_pressure_lungs
|
||||
name = "Low Pressure Lungs"
|
||||
desc = "You're not quite used to the high air pressure! Perfect for characters who are used to the atmosphere of Lavaland or Asteroids!"
|
||||
value = -1
|
||||
category = CATEGORY_BODY
|
||||
mob_trait = TRAIT_LOW_PRESSURE_LUNGS
|
||||
var/slot_string = "lungs"
|
||||
var/specific = null
|
||||
gain_text = "<span class='notice'>You feel your lungs taking in more air.</span>"
|
||||
lose_text = "<span class='notice'>You feel like the air is not as plentiful.</span>"
|
||||
medical_record_text = "During physical examination, patient was found to have lungs adapted to low pressure environments."
|
||||
|
||||
/datum/quirk/low_pressure_lungs/add() //*Edits your lungs*
|
||||
var/obj/item/organ/lungs/lungs = quirk_holder.getorgan(/obj/item/organ/lungs)
|
||||
|
||||
lungs.safe_oxygen_min = 3
|
||||
lungs.safe_oxygen_max = 18
|
||||
|
||||
|
||||
lungs.cold_level_1_threshold = 280
|
||||
lungs.cold_level_2_threshold = 240
|
||||
lungs.cold_level_3_threshold = 200
|
||||
|
||||
lungs.heat_level_1_threshold = 400
|
||||
lungs.heat_level_2_threshold = 600
|
||||
|
||||
/datum/quirk/low_pressure_lungs/remove() //*Unedits your lungs*
|
||||
var/obj/item/organ/lungs/lungs = quirk_holder.getorgan(/obj/item/organ/lungs)
|
||||
|
||||
lungs.safe_oxygen_min = 16
|
||||
lungs.safe_oxygen_max = 50
|
||||
|
||||
|
||||
lungs.cold_level_1_threshold = 260
|
||||
lungs.cold_level_2_threshold = 200
|
||||
lungs.cold_level_3_threshold = 120
|
||||
|
||||
lungs.heat_level_1_threshold = 360
|
||||
lungs.heat_level_2_threshold = 400
|
||||
|
||||
/datum/quirk/low_pressure_lungs/post_add()
|
||||
to_chat(quirk_holder, "<span class='boldannounce'>Your [slot_string] feel the heavy pressure of the air.</span>")
|
||||
|
||||
/datum/quirk/low_pressure_lungs/on_spawn()
|
||||
var/mob/living/carbon/human/H = quirk_holder
|
||||
|
||||
//Adding Breath Mask and Emergency Tank
|
||||
var/obj/item/clothing/mask/breath/breath = new(get_turf(H))
|
||||
var/list/breth = list ( //shu-ut up, Brethyyyy.
|
||||
"face" = SLOT_WEAR_MASK
|
||||
)
|
||||
H.equip_in_one_of_slots(breath, breth, qdel_on_fail = FALSE)
|
||||
|
||||
var/obj/item/tank/internals/emergency_oxygen/emergency_oxygen = new(get_turf(H))
|
||||
var/list/oxy_tank = list (
|
||||
"left pocket" = SLOT_L_STORE,
|
||||
"right pocket" = SLOT_R_STORE,
|
||||
"hands" = SLOT_HANDS
|
||||
)
|
||||
emergency_oxygen.air_contents.gases[/datum/gas/oxygen] = (6*ONE_ATMOSPHERE)*6/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
H.equip_in_one_of_slots(emergency_oxygen, oxy_tank, qdel_on_fail = FALSE)
|
||||
H.internal = emergency_oxygen
|
||||
H.update_internals_hud_icon(1)
|
||||
H.regenerate_icons()
|
||||
|
||||
/datum/quirk/tough
|
||||
name = "Tough"
|
||||
desc = "Your body is abnormally enduring and can take 10% more damage."
|
||||
|
||||
@@ -717,7 +717,7 @@
|
||||
typepath = /datum/round_event/camera_failure
|
||||
requirements = list(0,0,0,0,0,0,0,0,0,0)
|
||||
high_population_requirement = 0
|
||||
weight = 100
|
||||
weight = 8
|
||||
cost = 2
|
||||
repeatable_weight_decrease = 2 //Slightly drop the weight each time it is called to keep the pool from getting too diluted as the round goes on.
|
||||
repeatable = TRUE
|
||||
@@ -726,12 +726,14 @@
|
||||
/datum/dynamic_ruleset/event/filler
|
||||
name = "Filler"
|
||||
typepath = /datum/round_event/filler
|
||||
requirements = list(0,0,0,0,0,0,0,0,0,0)
|
||||
high_population_requirement = 0
|
||||
chaos_max = 3
|
||||
weight = 9
|
||||
cost = 1
|
||||
weight = 200
|
||||
repeatable_weight_decrease = 0
|
||||
repeatable = TRUE
|
||||
occurances_max = 35
|
||||
occurances_max = 250 //Testing with this number for now
|
||||
|
||||
/datum/dynamic_ruleset/event/disease_outbreak
|
||||
name = "Disease Outbreak"
|
||||
@@ -772,8 +774,8 @@
|
||||
typepath = /datum/round_event/mass_hallucination
|
||||
requirements = list(0,0,0,0,0,0,0,0,0,0)
|
||||
high_population_requirement = 0
|
||||
weight = 4
|
||||
cost = 2
|
||||
weight = 1
|
||||
cost = 4
|
||||
repeatable_weight_decrease = 5
|
||||
repeatable = TRUE
|
||||
occurances_max = 2
|
||||
@@ -810,7 +812,7 @@
|
||||
requirements = list(101,101,0,0,0,0,0,0,0,0)
|
||||
high_population_requirement = 0
|
||||
weight = 5
|
||||
cost = 2 //STOP ROLLING SO MUCH YOU MENACE
|
||||
cost = 10 //STOP ROLLING SO MUCH YOU MENACE
|
||||
repeatable_weight_decrease = 1
|
||||
|
||||
/datum/dynamic_ruleset/event/shuttle_loan
|
||||
|
||||
@@ -673,7 +673,7 @@
|
||||
primetime = 10
|
||||
return TRUE
|
||||
if(istype(I, /obj/item/disk/medical/defib_decay))
|
||||
if(!timedeath == initial(timedeath))
|
||||
if(timedeath != initial(timedeath))
|
||||
to_chat(user, "<span class='notice'>This unit is already upgraded with this disk!</span>")
|
||||
return TRUE
|
||||
to_chat(user, "<span class='notice'>You upgrade the unit with Longer Decay upgrade disk!</span>")
|
||||
|
||||
@@ -662,8 +662,8 @@ This is here to make the tiles around the station mininuke change when it's arme
|
||||
var/datum/round_event_control/operative/loneop = locate(/datum/round_event_control/operative) in SSevents.control
|
||||
if(istype(loneop))
|
||||
loneop.weight += 1
|
||||
if(loneop.weight % 5 == 0)
|
||||
message_admins("[src] is stationary in [ADMIN_VERBOSEJMP(newturf)]. The weight of Lone Operative is now [loneop.weight].")
|
||||
// if(loneop.weight % 5 == 0)
|
||||
// message_admins("[src] is stationary in [ADMIN_VERBOSEJMP(newturf)]. The weight of Lone Operative is now [loneop.weight].")
|
||||
log_game("[src] is stationary for too long in [loc_name(newturf)], and has increased the weight of the Lone Operative event to [loneop.weight].")
|
||||
else
|
||||
lastlocation = newturf
|
||||
@@ -671,8 +671,8 @@ This is here to make the tiles around the station mininuke change when it's arme
|
||||
var/datum/round_event_control/operative/loneop = locate(/datum/round_event_control/operative) in SSevents.control
|
||||
if(istype(loneop) && prob(loneop.weight))
|
||||
loneop.weight = max(loneop.weight - 1, 0)
|
||||
if(loneop.weight % 5 == 0)
|
||||
message_admins("[src] is on the move (currently in [ADMIN_VERBOSEJMP(newturf)]). The weight of Lone Operative is now [loneop.weight].")
|
||||
// if(loneop.weight % 5 == 0)
|
||||
// message_admins("[src] is on the move (currently in [ADMIN_VERBOSEJMP(newturf)]). The weight of Lone Operative is now [loneop.weight].")
|
||||
log_game("[src] being on the move has reduced the weight of the Lone Operative event to [loneop.weight].")
|
||||
|
||||
/obj/item/disk/nuclear/examine(mob/user)
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
|
||||
/datum/round_event_control/valentines
|
||||
name = "Valentines!"
|
||||
holidayID = VALENTINES
|
||||
//holidayID = VALENTINES this is just asking for noncon and bad shit
|
||||
typepath = /datum/round_event/valentines
|
||||
weight = -1 //forces it to be called, regardless of weight
|
||||
max_occurrences = 1
|
||||
weight = 0
|
||||
max_occurrences = 0
|
||||
earliest_start = 0 MINUTES
|
||||
|
||||
/datum/round_event/valentines/start()
|
||||
|
||||
@@ -256,6 +256,45 @@
|
||||
tastes = list("fudge" = 1)
|
||||
foodtype = JUNKFOOD | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/choccogun
|
||||
name = "golden gun"
|
||||
desc = "It's a golden gun! Probably will instantly kill who ever is hit."
|
||||
icon_state = "pyritegun"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
attack_verb = list("pistol whipped")
|
||||
bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/sugar = 5, /datum/reagent/iron = 1)
|
||||
list_reagents = list(/datum/reagent/consumable/nutriment = 15, /datum/reagent/consumable/coco = 5)
|
||||
filling_color = "#A0522D"
|
||||
tastes = list("fudge" = 1, "metal" = 1)
|
||||
bitesize = 0.1
|
||||
foodtype = JUNKFOOD | SUGAR
|
||||
|
||||
var is_wrapped = 1
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/choccogun/afterattack(user)
|
||||
if (is_wrapped == 1)
|
||||
to_chat(user, "<span class='danger'>*click*</span>")
|
||||
playsound(src, "gun_dry_fire", 30, 1)
|
||||
else //no more clicking chocolate for you. <3
|
||||
return
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/choccogun/attack_self(mob/user)
|
||||
if (is_wrapped == 1)
|
||||
to_chat(user, "You look at the gun and find it's made of chocolate, unwrapping it.")
|
||||
|
||||
name = "chocolate gun"
|
||||
desc = "This explains why it wasn't firing at all.."
|
||||
icon_state = "choccogun"
|
||||
bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/sugar = 5, /datum/reagent/gold = 1)
|
||||
list_reagents = list(/datum/reagent/consumable/nutriment = 15, /datum/reagent/consumable/coco = 5)
|
||||
filling_color = "#A0522D"
|
||||
tastes = list("fudge" = 1)
|
||||
foodtype = JUNKFOOD | SUGAR
|
||||
|
||||
is_wrapped = 0
|
||||
else
|
||||
return
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/chocoorange
|
||||
name = "chocolate orange"
|
||||
desc = "A festive chocolate orange."
|
||||
|
||||
@@ -49,6 +49,15 @@
|
||||
result = /obj/item/reagent_containers/food/snacks/chocoorange
|
||||
subcategory = CAT_MISCFOOD
|
||||
|
||||
/datum/crafting_recipe/food/choccogun
|
||||
name = "Choco gun"
|
||||
reqs = list(
|
||||
/datum/reagent/iron = 1,
|
||||
/obj/item/reagent_containers/food/snacks/chocolatebar = 1,
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/choccogun
|
||||
subcategory = CAT_MISCFOOD
|
||||
|
||||
/datum/crafting_recipe/food/loadedbakedpotato
|
||||
name = "Loaded baked potato"
|
||||
time = 40
|
||||
|
||||
@@ -3,7 +3,10 @@
|
||||
name = "Podperson"
|
||||
id = "pod"
|
||||
default_color = "59CE00"
|
||||
species_traits = list(MUTCOLORS,EYECOLOR)
|
||||
species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,FACEHAIR,WINGCOLOR)
|
||||
inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID)
|
||||
mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "mam_snouts", "legs", "deco_wings")
|
||||
default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_snouts" = "None", "mam_tail" = "None", "mam_ears" = "None", "mam_body_markings" = "None", "legs" = "Normal Legs" , "deco_wings" = "None" )
|
||||
attack_verb = "slash"
|
||||
attack_sound = 'sound/weapons/slice.ogg'
|
||||
miss_sound = 'sound/weapons/slashmiss.ogg'
|
||||
@@ -68,6 +71,37 @@
|
||||
if(/obj/item/projectile/energy/florayield)
|
||||
H.nutrition = min(H.nutrition+30, NUTRITION_LEVEL_FULL)
|
||||
|
||||
/datum/species/pod/spec_death(gibbed, mob/living/carbon/human/H)
|
||||
if(H)
|
||||
stop_wagging_tail(H)
|
||||
|
||||
/datum/species/pod/spec_stun(mob/living/carbon/human/H,amount)
|
||||
if(H)
|
||||
stop_wagging_tail(H)
|
||||
. = ..()
|
||||
|
||||
/datum/species/pod/can_wag_tail(mob/living/carbon/human/H)
|
||||
return ("mam_tail" in mutant_bodyparts) || ("mam_waggingtail" in mutant_bodyparts)
|
||||
|
||||
/datum/species/pod/is_wagging_tail(mob/living/carbon/human/H)
|
||||
return ("mam_waggingtail" in mutant_bodyparts)
|
||||
|
||||
/datum/species/pod/start_wagging_tail(mob/living/carbon/human/H)
|
||||
if("mam_tail" in mutant_bodyparts)
|
||||
mutant_bodyparts -= "mam_tail"
|
||||
mutant_bodyparts |= "mam_waggingtail"
|
||||
H.update_body()
|
||||
|
||||
/datum/species/pod/stop_wagging_tail(mob/living/carbon/human/H)
|
||||
if("mam_waggingtail" in mutant_bodyparts)
|
||||
mutant_bodyparts -= "mam_waggingtail"
|
||||
mutant_bodyparts |= "mam_tail"
|
||||
H.update_body()
|
||||
|
||||
|
||||
/datum/species/pod/qualifies_for_rank(rank, list/features)
|
||||
return TRUE
|
||||
|
||||
/datum/species/pod/pseudo_weak
|
||||
id = "podweak"
|
||||
limbs_id = "pod"
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
if(user.a_intent == INTENT_DISARM && user.zone_selected == BODY_ZONE_PRECISE_MOUTH)
|
||||
if(M != user)
|
||||
M.visible_message("<span class='warning'>[user] attempts nuzzles into [M]'s.</span>", \
|
||||
"<span class='userwarning'>[user] attempts to bump his snout against yours.</span>")
|
||||
"<span class='userwarning'>[user] attempts to bump their snout against yours.</span>")
|
||||
if(!do_mob(user, M, 10))
|
||||
return
|
||||
playsound(M.loc,'sound/effects/attackblob.ogg', rand(10,50), 1)
|
||||
|
||||
@@ -233,12 +233,9 @@
|
||||
/obj/item/clothing/head/soft/black = 4,
|
||||
/obj/item/clothing/shoes/sneakers/black = 4,
|
||||
/obj/item/reagent_containers/rag = 4,
|
||||
/obj/item/storage/box/beanbag = 1,
|
||||
/obj/item/clothing/suit/armor/vest/alt = 1,
|
||||
/obj/item/circuitboard/machine/dish_drive = 1,
|
||||
/obj/item/clothing/glasses/sunglasses/reagent = 1,
|
||||
/obj/item/clothing/neck/petcollar = 3,
|
||||
/obj/item/storage/belt/bandolier = 1)
|
||||
/obj/item/clothing/neck/petcollar = 3)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/bar_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/bar_wardrobe
|
||||
|
||||
Reference in New Issue
Block a user