mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-28 22:48:38 +01:00
Have you bingled that (#17407)
* Initial wiki system * wiki organization and spoilers * hide belly chems * move ads to tgui * add search * . * load screen * error screen * 8 * center * . * . * make this more realistic * tgui errro col * move search to top * . * non NT theme * logo to common * base custom theme * . * wip refactor * almost halfway * reworked wiki data * easy fix * get data fix * Material Page in tgui * catch null supply points * . * forward crash * reset pages * . * canvas prep * fix icon stacking * . * colored outlined images * fix sm datum * fix material names * subType prep * only on crash * fix null crash * . * fix solgov * clean hiding * . * implement catalog page * . * particle smasher page * I'm lazy * unfuck some sins * ore page * botany page * allergen list * allergen returns null too * slime injection var * slime core data * fixed warning * wip * proper data list for chems * pass is_slime as null * chems * split that * . * . * . * . * donation for bingle, some cleanup * return types * partially colord icons for chemistry * . * more sillies * donation page * thaler * needs some variation * . * this will crash until implemented * handle it * fix that * dismiss donation banner button * . * fix that * donating procs * donation stuff for comp * - * drink glass for drinks * illegal iconstate pass * fixes * . * nuke drink fix * . * . * . * Drink reagent fix * more cleanup * adjust * . * simple food * . * food list * sending nulls, removed flavor from recipes * . * . * get_donation_current added * . * missing key * . * duped recipes fixed * . * . * wiki food reagent recipes * double list add * properly forbid remaining bad reagent * hide this too * stacky * enable eslint const * fix typing * update that * use proper donation proc * printing fixes * grinding * . * beaker fill volume * plant ore and mat grinding results * duped recipes fixed, unit test tweak * yes this is terrible * . * . * . * chem analyzer tgui mode, some subsystem changes to support it * redoce * . * , * . * small fixes, missing reagent volume * push * sort * catalog entries unlocked by explo * new chem stuff * . * fix byond code * fix scroll tracking * comment * alphabetical * also this * . * fallback icon * . * ... * rel path * that too * to defines * organ to define * . * . * . --------- Co-authored-by: Willburd <7099514+Willburd@users.noreply.github.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
co-authored by
Willburd
Kashargul
parent
0d340a761b
commit
c42610c5ae
@@ -56,9 +56,9 @@
|
||||
if(!istype(M, /mob/living/carbon)) return
|
||||
if (ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/external/temp = H.organs_by_name["r_hand"]
|
||||
var/obj/item/organ/external/temp = H.organs_by_name[BP_R_HAND]
|
||||
if (H.hand)
|
||||
temp = H.organs_by_name["l_hand"]
|
||||
temp = H.organs_by_name[BP_L_HAND]
|
||||
if(temp && !temp.is_usable())
|
||||
to_chat(H, span_warning("You can't use your [temp.name]"))
|
||||
return
|
||||
@@ -121,7 +121,7 @@
|
||||
|
||||
/mob/living/carbon/electrocute_act(var/shock_damage, var/obj/source, var/siemens_coeff = 1.0, var/def_zone = null, var/stun = 1)
|
||||
if(status_flags & GODMODE) return 0 //godmode
|
||||
if(def_zone == "l_hand" || def_zone == "r_hand") //Diona (And any other potential plant people) hands don't get shocked.
|
||||
if(def_zone == BP_L_HAND || def_zone == BP_R_HAND) //Diona (And any other potential plant people) hands don't get shocked.
|
||||
if(species.flags & IS_PLANT)
|
||||
return 0
|
||||
shock_damage *= siemens_coeff
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
user.visible_message(span_danger("\The [user] plunges \the [W] into \the [src]!"))
|
||||
|
||||
var/damage = shank_armor_helper(W, G, user)
|
||||
apply_damage(damage, W.damtype, "torso", 0, sharp=W.sharp, edge=W.edge)
|
||||
apply_damage(damage, W.damtype, BP_TORSO, 0, sharp=W.sharp, edge=W.edge)
|
||||
|
||||
if(W.hitsound)
|
||||
playsound(src, W.hitsound, 50, 1, -1)
|
||||
|
||||
@@ -312,7 +312,7 @@
|
||||
msg += span_warning("[T.He] [T.is] on fire!.")
|
||||
|
||||
var/ssd_msg = species.get_ssd(src)
|
||||
if(ssd_msg && (!should_have_organ("brain") || has_brain()) && stat != DEAD)
|
||||
if(ssd_msg && (!should_have_organ(O_BRAIN) || has_brain()) && stat != DEAD)
|
||||
if(!key)
|
||||
msg += span_deadsay("[T.He] [T.is] [ssd_msg]. It doesn't look like [T.he] [T.is] waking up anytime soon.")
|
||||
else if(!client)
|
||||
|
||||
@@ -138,7 +138,7 @@
|
||||
L[++L.len] = list("Suit charge: [cell_status]", null, null, null, null)
|
||||
for(var/obj/item/rig_module/module in R.installed_modules)
|
||||
{
|
||||
for(var/stat_rig_module/SRM in module.stat_modules)
|
||||
for(var/atom/movable/stat_rig_module/SRM in module.stat_modules)
|
||||
if(SRM.CanUse())
|
||||
L[++L.len] = list(SRM.module.interface_name,null,null,SRM.name,REF(SRM))
|
||||
}
|
||||
@@ -376,7 +376,7 @@
|
||||
if(status_flags & GODMODE) return 0 //godmode
|
||||
|
||||
if (!def_zone)
|
||||
def_zone = pick("l_hand", "r_hand")
|
||||
def_zone = pick(BP_L_HAND, BP_R_HAND)
|
||||
|
||||
if(species.siemens_coefficient == -1)
|
||||
if(stored_shock_by_ref["\ref[src]"])
|
||||
@@ -812,7 +812,7 @@
|
||||
|
||||
//Used by various things that knock people out by applying blunt trauma to the head.
|
||||
//Checks that the species has a "head" (brain containing organ) and that hit_zone refers to it.
|
||||
/mob/living/carbon/human/proc/headcheck(var/target_zone, var/brain_tag = "brain")
|
||||
/mob/living/carbon/human/proc/headcheck(var/target_zone, var/brain_tag = O_BRAIN)
|
||||
|
||||
var/obj/item/organ/affecting = internal_organs_by_name[brain_tag]
|
||||
|
||||
@@ -1634,7 +1634,7 @@
|
||||
/mob/living/carbon/human/can_stand_overridden()
|
||||
if(wearing_rig && wearing_rig.ai_can_move_suit(check_for_ai = 1))
|
||||
// Actually missing a leg will screw you up. Everything else can be compensated for.
|
||||
for(var/limbcheck in list("l_leg","r_leg"))
|
||||
for(var/limbcheck in list(BP_L_LEG,BP_R_LEG))
|
||||
var/obj/item/organ/affecting = get_organ(limbcheck)
|
||||
if(!affecting)
|
||||
return 0
|
||||
|
||||
@@ -41,9 +41,9 @@
|
||||
|
||||
var/has_hands = TRUE
|
||||
if(istype(H))
|
||||
var/obj/item/organ/external/temp = H.organs_by_name["r_hand"]
|
||||
var/obj/item/organ/external/temp = H.organs_by_name[BP_R_HAND]
|
||||
if(H.hand)
|
||||
temp = H.organs_by_name["l_hand"]
|
||||
temp = H.organs_by_name[BP_L_HAND]
|
||||
if(!temp || !temp.is_usable())
|
||||
has_hands = FALSE
|
||||
for(var/thing in GetViruses()) //This is intentionally not having a has_hands check. If you are clicking on someone next to them, you're close enough to sneeze/cough on them!
|
||||
|
||||
@@ -26,8 +26,8 @@
|
||||
|
||||
if(status_flags & GODMODE) return 0 //godmode
|
||||
|
||||
if(should_have_organ("brain"))
|
||||
var/obj/item/organ/internal/brain/sponge = internal_organs_by_name["brain"]
|
||||
if(should_have_organ(O_BRAIN))
|
||||
var/obj/item/organ/internal/brain/sponge = internal_organs_by_name[O_BRAIN]
|
||||
if(sponge)
|
||||
sponge.take_damage(amount)
|
||||
brainloss = sponge.damage
|
||||
@@ -40,8 +40,8 @@
|
||||
|
||||
if(status_flags & GODMODE) return 0 //godmode
|
||||
|
||||
if(should_have_organ("brain"))
|
||||
var/obj/item/organ/internal/brain/sponge = internal_organs_by_name["brain"]
|
||||
if(should_have_organ(O_BRAIN))
|
||||
var/obj/item/organ/internal/brain/sponge = internal_organs_by_name[O_BRAIN]
|
||||
if(sponge)
|
||||
sponge.damage = min(max(amount, 0),(getMaxHealth()*2))
|
||||
brainloss = sponge.damage
|
||||
@@ -54,8 +54,8 @@
|
||||
|
||||
if(status_flags & GODMODE) return 0 //godmode
|
||||
|
||||
if(should_have_organ("brain"))
|
||||
var/obj/item/organ/internal/brain/sponge = internal_organs_by_name["brain"]
|
||||
if(should_have_organ(O_BRAIN))
|
||||
var/obj/item/organ/internal/brain/sponge = internal_organs_by_name[O_BRAIN]
|
||||
if(sponge)
|
||||
brainloss = min(sponge.damage,getMaxHealth()*2)
|
||||
else
|
||||
|
||||
@@ -541,9 +541,9 @@ emp_act
|
||||
// This does a prob check to catch the thing flying at you, with a minimum of 1%
|
||||
/mob/living/carbon/human/proc/can_catch(var/obj/O)
|
||||
if(!get_active_hand()) // If active hand is empty
|
||||
var/obj/item/organ/external/temp = organs_by_name["r_hand"]
|
||||
var/obj/item/organ/external/temp = organs_by_name[BP_R_HAND]
|
||||
if (hand)
|
||||
temp = organs_by_name["l_hand"]
|
||||
temp = organs_by_name[BP_L_HAND]
|
||||
if(temp && !temp.is_usable())
|
||||
return FALSE // The hand isn't working in the first place
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
return
|
||||
|
||||
var/limb_pain = FALSE
|
||||
for(var/limb_tag in list("l_leg","r_leg","l_foot","r_foot"))
|
||||
for(var/limb_tag in list(BP_L_LEG,BP_R_LEG,BP_L_FOOT,BP_R_FOOT))
|
||||
var/obj/item/organ/external/E = organs_by_name[limb_tag]
|
||||
if(!E || !E.is_usable())
|
||||
stance_damage += 2 // let it fail even if just foot&leg
|
||||
|
||||
@@ -47,8 +47,8 @@
|
||||
if(stat)
|
||||
return
|
||||
|
||||
var/obj/item/organ/external/l_hand = get_organ("l_hand")
|
||||
var/obj/item/organ/external/r_hand = get_organ("r_hand")
|
||||
var/obj/item/organ/external/l_hand = get_organ(BP_L_HAND)
|
||||
var/obj/item/organ/external/r_hand = get_organ(BP_R_HAND)
|
||||
if((!l_hand || l_hand.is_stump()) && (!r_hand || r_hand.is_stump()))
|
||||
to_chat(src, span_warning("You have no hands to play games with!"))
|
||||
return
|
||||
@@ -59,8 +59,8 @@
|
||||
continue
|
||||
if(H == src)
|
||||
continue
|
||||
var/obj/item/organ/external/l_hand2 = H.get_organ("l_hand")
|
||||
var/obj/item/organ/external/r_hand2 = H.get_organ("r_hand")
|
||||
var/obj/item/organ/external/l_hand2 = H.get_organ(BP_L_HAND)
|
||||
var/obj/item/organ/external/r_hand2 = H.get_organ(BP_R_HAND)
|
||||
if((!l_hand2 || l_hand2.is_stump()) && (!r_hand2 || r_hand2.is_stump()))
|
||||
continue
|
||||
nearby |= H
|
||||
@@ -70,8 +70,8 @@
|
||||
continue
|
||||
if(H == src)
|
||||
continue
|
||||
var/obj/item/organ/external/l_hand2 = H.get_organ("l_hand")
|
||||
var/obj/item/organ/external/r_hand2 = H.get_organ("r_hand")
|
||||
var/obj/item/organ/external/l_hand2 = H.get_organ(BP_L_HAND)
|
||||
var/obj/item/organ/external/r_hand2 = H.get_organ(BP_R_HAND)
|
||||
if((!l_hand2 || l_hand2.is_stump()) && (!r_hand2 || r_hand2.is_stump()))
|
||||
continue
|
||||
nearby |= H
|
||||
|
||||
@@ -1282,7 +1282,7 @@
|
||||
else //ALIVE. LIGHTS ARE ON
|
||||
updatehealth() //TODO
|
||||
|
||||
if(health <= CONFIG_GET(number/health_threshold_dead) || (should_have_organ("brain") && !has_brain()))
|
||||
if(health <= CONFIG_GET(number/health_threshold_dead) || (should_have_organ(O_BRAIN) && !has_brain()))
|
||||
death()
|
||||
blinded = 1
|
||||
silent = 0
|
||||
@@ -1310,7 +1310,7 @@
|
||||
qdel(a)
|
||||
|
||||
//Brain damage from Oxyloss
|
||||
if(should_have_organ("brain"))
|
||||
if(should_have_organ(O_BRAIN))
|
||||
var/brainOxPercent = 0.015 //Default 1.5% of your current oxyloss is applied as brain damage, 50 oxyloss is 1 brain damage
|
||||
if(CE_STABLE in chem_effects)
|
||||
brainOxPercent = 0.008 //Halved in effect
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#ffffff"
|
||||
scannable = 1
|
||||
wiki_flag = WIKI_SPOILER
|
||||
|
||||
/datum/reagent/glamour_scaling/affect_blood(var/mob/living/carbon/target, var/removed)
|
||||
if(!(/mob/living/proc/set_size in target.verbs))
|
||||
|
||||
@@ -528,7 +528,7 @@
|
||||
return
|
||||
|
||||
//VOREStation Edit Start - Headpats and Handshakes.
|
||||
if(H.zone_sel.selecting == "head")
|
||||
if(H.zone_sel.selecting == BP_HEAD)
|
||||
if(target.touch_reaction_flags & SPECIES_TRAIT_PATTING_DEFENCE)
|
||||
H.visible_message( \
|
||||
span_warning("[target] reflexively bites the hand of [H] to prevent head patting!"), \
|
||||
@@ -541,7 +541,7 @@
|
||||
H.visible_message( \
|
||||
span_notice("[H] pats [target] on the head."), \
|
||||
span_notice("You pat [target] on the head."), )
|
||||
else if(H.zone_sel.selecting == "r_hand" || H.zone_sel.selecting == "l_hand")
|
||||
else if(H.zone_sel.selecting == BP_R_HAND || H.zone_sel.selecting == BP_L_HAND)
|
||||
H.visible_message( \
|
||||
span_notice("[H] shakes [target]'s hand."), \
|
||||
span_notice("You shake [target]'s hand."), )
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
virus_immune = 1
|
||||
|
||||
has_organ = list(
|
||||
"brain" = /obj/item/organ/internal/brain/golem
|
||||
O_BRAIN = /obj/item/organ/internal/brain/golem
|
||||
)
|
||||
|
||||
death_message = "becomes completely motionless..."
|
||||
|
||||
@@ -30,11 +30,11 @@ var/global/list/sparring_attack_cache = list()
|
||||
return FALSE
|
||||
|
||||
// Check if they have a functioning hand.
|
||||
var/obj/item/organ/external/E = user.organs_by_name["l_hand"]
|
||||
var/obj/item/organ/external/E = user.organs_by_name[BP_L_HAND]
|
||||
if(E && !E.is_stump())
|
||||
return TRUE
|
||||
|
||||
E = user.organs_by_name["r_hand"]
|
||||
E = user.organs_by_name[BP_R_HAND]
|
||||
if(E && !E.is_stump())
|
||||
return TRUE
|
||||
|
||||
@@ -79,7 +79,7 @@ var/global/list/sparring_attack_cache = list()
|
||||
if(BP_GROIN)
|
||||
target.visible_message(span_warning("[target] looks like [TT.he] [TT.is] in pain!"), span_warning("[(target.gender=="female") ? "Oh god that hurt!" : "Oh no, not your[pick("testicles", "crown jewels", "clockweights", "family jewels", "marbles", "bean bags", "teabags", "sweetmeats", "goolies")]!"]")) // I see no easy way to fix this for non-organic or neuter characters.
|
||||
target.apply_effects(stutter = attack_damage * 2, agony = attack_damage* 3, blocked = armour)
|
||||
if("l_leg", "l_foot", "r_leg", "r_foot")
|
||||
if(BP_L_LEG, BP_L_FOOT, BP_R_LEG, BP_R_FOOT)
|
||||
if(!target.lying)
|
||||
target.visible_message(span_warning("[target] gives way slightly."))
|
||||
target.apply_effect(attack_damage*3, AGONY, armour)
|
||||
@@ -199,14 +199,14 @@ var/global/list/sparring_attack_cache = list()
|
||||
if(user.legcuffed || user.buckled)
|
||||
return FALSE
|
||||
|
||||
if(!(zone in list("l_leg", "r_leg", "l_foot", "r_foot", BP_GROIN)))
|
||||
if(!(zone in list(BP_L_LEG, BP_R_LEG, BP_L_FOOT, BP_R_FOOT, BP_GROIN)))
|
||||
return FALSE
|
||||
|
||||
var/obj/item/organ/external/E = user.organs_by_name["l_foot"]
|
||||
var/obj/item/organ/external/E = user.organs_by_name[BP_L_FOOT]
|
||||
if(E && !E.is_stump())
|
||||
return TRUE
|
||||
|
||||
E = user.organs_by_name["r_foot"]
|
||||
E = user.organs_by_name[BP_R_FOOT]
|
||||
if(E && !E.is_stump())
|
||||
return TRUE
|
||||
|
||||
@@ -247,14 +247,14 @@ var/global/list/sparring_attack_cache = list()
|
||||
if(!istype(target))
|
||||
return FALSE
|
||||
|
||||
if (!user.lying && (target.lying || (zone in list("l_foot", "r_foot"))))
|
||||
if (!user.lying && (target.lying || (zone in list(BP_L_FOOT, BP_R_FOOT))))
|
||||
if(target.grabbed_by == user && target.lying)
|
||||
return FALSE
|
||||
var/obj/item/organ/external/E = user.organs_by_name["l_foot"]
|
||||
var/obj/item/organ/external/E = user.organs_by_name[BP_L_FOOT]
|
||||
if(E && !E.is_stump())
|
||||
return TRUE
|
||||
|
||||
E = user.organs_by_name["r_foot"]
|
||||
E = user.organs_by_name[BP_R_FOOT]
|
||||
if(E && !E.is_stump())
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -943,7 +943,7 @@
|
||||
if(ishuman(src))
|
||||
var/mob/living/carbon/human/H = src
|
||||
if(!H.isSynthetic())
|
||||
var/obj/item/organ/internal/liver/L = H.internal_organs_by_name["liver"]
|
||||
var/obj/item/organ/internal/liver/L = H.internal_organs_by_name[O_LIVER]
|
||||
if(!L || L.is_broken())
|
||||
blood_vomit = 1
|
||||
|
||||
|
||||
@@ -336,11 +336,11 @@
|
||||
else
|
||||
t_him = "them"
|
||||
|
||||
if(H.zone_sel.selecting == "head")
|
||||
if(H.zone_sel.selecting == BP_HEAD)
|
||||
H.visible_message( \
|
||||
span_notice("[H] pats [target] on the head."), \
|
||||
span_notice("You pat [target] on the head."), )
|
||||
else if(H.zone_sel.selecting == "r_hand" || H.zone_sel.selecting == "l_hand")
|
||||
else if(H.zone_sel.selecting == BP_R_HAND || H.zone_sel.selecting == BP_L_HAND)
|
||||
H.visible_message( \
|
||||
span_notice("[H] shakes [target]'s hand."), \
|
||||
span_notice("You shake [target]'s hand."), )
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
if(!E || E.is_stump())
|
||||
to_chat(src, span_warning("\The [H] does not have a head!"))
|
||||
|
||||
if(!H.should_have_organ("brain"))
|
||||
if(!H.should_have_organ(O_BRAIN))
|
||||
to_chat(src, span_warning("\The [H] does not seem to have an ear canal to breach."))
|
||||
return
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/I = H.internal_organs_by_name["brain"]
|
||||
var/obj/item/organ/I = H.internal_organs_by_name[O_BRAIN]
|
||||
if(!I) // No brain organ, so the borer moves in and replaces it permanently.
|
||||
replace_brain()
|
||||
else
|
||||
@@ -182,7 +182,7 @@
|
||||
H.ChangeToHusk()
|
||||
|
||||
var/obj/item/organ/internal/borer/B = new(H)
|
||||
H.internal_organs_by_name["brain"] = B
|
||||
H.internal_organs_by_name[O_BRAIN] = B
|
||||
H.internal_organs |= B
|
||||
|
||||
var/obj/item/organ/external/affecting = H.get_organ(BP_HEAD)
|
||||
|
||||
@@ -267,8 +267,8 @@
|
||||
else if(istype(my_mob.buckled, /obj/structure/bed/chair/wheelchair))
|
||||
if(ishuman(my_mob))
|
||||
var/mob/living/carbon/human/driver = my_mob
|
||||
var/obj/item/organ/external/l_hand = driver.get_organ("l_hand")
|
||||
var/obj/item/organ/external/r_hand = driver.get_organ("r_hand")
|
||||
var/obj/item/organ/external/l_hand = driver.get_organ(BP_L_HAND)
|
||||
var/obj/item/organ/external/r_hand = driver.get_organ(BP_R_HAND)
|
||||
if((!l_hand || l_hand.is_stump()) && (!r_hand || r_hand.is_stump()))
|
||||
return // No hands to drive your chair? Tough luck!
|
||||
//drunk wheelchair driving
|
||||
|
||||
@@ -50,12 +50,14 @@ var/obj/effect/lobby_image = new /obj/effect/lobby_image
|
||||
created_for = ckey
|
||||
|
||||
new_player_panel()
|
||||
client.init_verbs()
|
||||
spawn(40)
|
||||
if(client)
|
||||
handle_privacy_poll()
|
||||
client.playtitlemusic()
|
||||
version_warnings()
|
||||
addtimer(CALLBACK(src, PROC_REF(do_after_login)), 4 SECONDS, TIMER_DELETE_ME)
|
||||
|
||||
/mob/new_player/proc/do_after_login()
|
||||
PRIVATE_PROC(TRUE)
|
||||
if(client)
|
||||
handle_privacy_poll()
|
||||
client.playtitlemusic()
|
||||
version_warnings()
|
||||
|
||||
/mob/new_player/proc/version_warnings()
|
||||
var/problems // string to store message to present to player as a problem
|
||||
|
||||
@@ -190,7 +190,6 @@
|
||||
client.prefs.dress_preview_mob(mannequin)
|
||||
var/mob/observer/dead/observer = new(mannequin)
|
||||
observer.moveToNullspace() //Let's not stay in our doomed mannequin
|
||||
qdel(mannequin) //We're not used anymore, so goodbye!
|
||||
|
||||
spawning = 1
|
||||
if(client.media)
|
||||
|
||||
Reference in New Issue
Block a user