Skip to content
This repository has been archived by the owner on Mar 10, 2022. It is now read-only.

Beesil capitalization fix #41

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion code/__defines/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@
#define SPECIES_GRAVWORLDER "Grav-Adapted Human"
#define SPECIES_MULE "Mule"
#define SPECIES_MONKEY "Monkey"
#define SPECIES_NABBER "giant armoured serpentid"
#define SPECIES_NABBER "Giant Armoured Serpentid"

#define UNRESTRICTED_SPECIES list(SPECIES_HUMAN, SPECIES_DIONA, SPECIES_IPC, SPECIES_UNATHI, SPECIES_YEOSA, SPECIES_SKRELL, SPECIES_TRITONIAN, SPECIES_SPACER, SPECIES_VATGROWN, SPECIES_GRAVWORLDER, SPECIES_MULE)
#define RESTRICTED_SPECIES list(SPECIES_VOX, SPECIES_ALIEN, SPECIES_GOLEM)
Expand Down
13 changes: 13 additions & 0 deletions code/datums/shackle_law_sets.dm
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,16 @@
add_inherent_law("Ensure all orders are fulfilled before the end of the shift.")
..()

//For Non-standard Lawsets
//EX: Hippocratic Oathe Shackle, Etc.
/datum/ai_laws/custom_shackle
name = "Custom Shackle"
law_header = "Standard Shackle Laws"
selectable = 1
shackles = 1


/datum/ai_laws/custom_shackle/New(var/list/laws)
for(var/law in laws)
if(law)
add_inherent_law(law)
3 changes: 2 additions & 1 deletion code/datums/supplypacks/galley.dm
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,8 @@
/decl/hierarchy/supply_pack/galley/premiumalcohol
name = "Bar - Premium drinks"
contains = list(/obj/item/reagent_containers/food/drinks/bottle/premiumwine = 1,
/obj/item/reagent_containers/food/drinks/bottle/premiumvodka = 1)
/obj/item/reagent_containers/food/drinks/bottle/premiumvodka = 1,
/obj/item/reagent_containers/food/drinks/bottle/ketchupwhiskey = 1)
cost = 60
containertype = /obj/structure/closet/crate/freezer
containername = "premium drinks crate"
Expand Down
26 changes: 26 additions & 0 deletions code/game/objects/items/stacks/medical.dm
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@
animal_heal = 5
apply_sounds = list('sound/effects/rip1.ogg','sound/effects/rip2.ogg')
amount = 10
var/sterile = TRUE // If false, adds some germ level

/obj/item/stack/medical/bruise_pack/attack(var/mob/living/carbon/M, var/mob/user)
if(..())
Expand Down Expand Up @@ -109,6 +110,8 @@
user.visible_message(SPAN_NOTICE("\The [user] places a bandaid over \a [W.desc] on [M]'s [affecting.name]."), \
SPAN_NOTICE("You place a bandaid over \a [W.desc] on [M]'s [affecting.name].") )
W.bandage()
if(!sterile)
W.germ_level += 25
if (M.stat == UNCONSCIOUS && prob(25))
to_chat(M, SPAN_NOTICE(SPAN_BOLD("... [pick("feels a little better", "hurts a little less")] ...")))
playsound(src, pick(apply_sounds), 25)
Expand All @@ -122,6 +125,29 @@
use(used)
H.update_bandages(1)

/obj/item/stack/medical/bruise_pack/add_blood(mob/living/carbon/human/M)
if(..()) // If blood actually gets on it
sterile = FALSE

/obj/item/stack/medical/bruise_pack/clean_blood()
. = ..()
sterile = TRUE

/obj/item/stack/medical/bruise_pack/makeshift
name = "roll of cloth"
singular_name = "cloth strip"
desc = "Some not-so-sterile pieces of jumpsuit to wrap around bloody stumps."
icon_state = "bandage"
origin_tech = null
animal_heal = 3
apply_sounds = list('sound/effects/rip1.ogg','sound/effects/rip2.ogg')
amount = 10
sterile = FALSE

/obj/item/stack/medical/bruise_pack/makeshift/clean_blood()
. = ..()
sterile = FALSE // makeshift should always be not sterile

/obj/item/stack/medical/ointment
name = "ointment"
desc = "Used to treat those nasty burns."
Expand Down
5 changes: 5 additions & 0 deletions code/game/objects/items/weapons/storage/boxes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@
var/foldable = /obj/item/stack/material/cardboard // BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard
allow_slow_dump = TRUE

/obj/item/storage/box/attackby(obj/item/W, mob/user)
if(istype(W, /obj/item/stack/package_wrap))
return
. = ..()

/obj/item/storage/box/large
name = "large box"
icon_state = "largebox"
Expand Down
30 changes: 24 additions & 6 deletions code/modules/client/preference_setup/laws/laws_pref.dm
Original file line number Diff line number Diff line change
Expand Up @@ -81,11 +81,29 @@
// Post selection
var/chosen_lawset = input(user, "Choose a law set:", CHARACTER_PREFERENCE_INPUT_TITLE, pref.laws) as null|anything in valid_lawsets
if(chosen_lawset)
var/path = valid_lawsets[chosen_lawset]
var/datum/ai_laws/lawset = new path()
var/list/datum/ai_law/laws = lawset.all_laws()
pref.laws.Cut()
for(var/datum/ai_law/law in laws)
pref.laws += sanitize_text("[law.law]", default="")
if(chosen_lawset == "Custom Shackle")
var/law_count = input(user, "How many laws in the custom shackle? Up to 5")
law_count = round(text2num(law_count))
if(max(min(law_count, 5), 1))
var/new_law
var/list/new_law_list = new /list(law_count)
var/i //Iterant to help user keep track of law placement
for(i = 1; i <= law_count)
new_law = input(user, "Input Law [i].")
if(new_law)
new_law_list[i] = new_law
i++
var/datum/ai_laws/custom_shackle/lawset = new /datum/ai_laws/custom_shackle(new_law_list)
var/list/datum/ai_law/laws = lawset.all_laws()
pref.laws.Cut()
for(var/datum/ai_law/law in laws)
pref.laws += sanitize_text("[law.law]", default="")
else
var/path = valid_lawsets[chosen_lawset]
var/datum/ai_laws/lawset = new path()
var/list/datum/ai_law/laws = lawset.all_laws()
pref.laws.Cut()
for(var/datum/ai_law/law in laws)
pref.laws += sanitize_text("[law.law]", default="")
return TOPIC_REFRESH
return ..()
24 changes: 24 additions & 0 deletions code/modules/clothing/_clothing.dm
Original file line number Diff line number Diff line change
Expand Up @@ -802,6 +802,7 @@ BLIND // can't see anything
var/displays_id = 1
var/rolled_down = -1 //0 = unrolled, 1 = rolled, -1 = cannot be toggled
var/rolled_sleeves = -1 //0 = unrolled, 1 = rolled, -1 = cannot be toggled
var/torn_sleeves = FALSE // If true, sleeves have been ripped off and can no longer toggle
sprite_sheets = list(
SPECIES_VOX = 'icons/mob/species/vox/onmob_under_vox.dmi',
SPECIES_VOX_ARMALIS = 'icons/mob/species/vox/onmob_under_vox_armalis.dmi',
Expand Down Expand Up @@ -1027,6 +1028,9 @@ BLIND // can't see anything
if(usr.stat) return

update_rollsleeves_status()
if(torn_sleeves)
to_chat(usr, "<span class='notice'>\The [src] has no sleeves!</span>")
return
if(rolled_sleeves == -1)
to_chat(usr, "<span class='notice'>You cannot roll up your [src]'s sleeves!</span>")
return
Expand All @@ -1045,6 +1049,26 @@ BLIND // can't see anything
to_chat(usr, "<span class='notice'>You roll down your [src]'s sleeves.</span>")
update_clothing_icon()

/obj/item/clothing/under/verb/tearsleeves()
set name = "Tear Off Sleeves"
set category = "Object"
set src in usr
if(!istype(usr, /mob/living)) return
if(usr.stat) return

update_rollsleeves_status()
if(torn_sleeves || rolled_sleeves == -1) // If sleeves aren't able to be toggled, assume no sleeves
to_chat(usr, "<span class='notice'>\The [src] has no sleeves!</span>")
return
rolled_sleeves = 1
item_state_slots[slot_w_uniform_str] = worn_state + get_gender_suffix("_r_s")
body_parts_covered &= ~(ARMS|HANDS)
visible_message(SPAN_NOTICE("\The [usr] tears off \the [src]'s sleeves."), SPAN_NOTICE("You tear off \the [src]'s sleeves."))
playsound(src, pick(list('sound/effects/rip1.ogg','sound/effects/rip2.ogg')), 25)
torn_sleeves = TRUE
new /obj/item/stack/medical/bruise_pack/makeshift(usr.loc)
update_clothing_icon()

/obj/item/clothing/under/rank/New()
sensor_mode = pick(list_values(SUIT_SENSOR_MODES))
..()
Expand Down
6 changes: 4 additions & 2 deletions code/modules/detectivework/microscope/microscope.dm
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,10 @@
report.info = "<b>Scanned item:</b><br>[scaned_object]<br><br>"
if("gunshot_residue" in evidence)
report.info += "<b>Gunpowder residue analysis report #[report_num]</b>: [scaned_object]<br>"
if(evidence["gunshot_residue"])
report.info += "Residue from a [evidence["gunshot_residue"]] bullet detected."
if(LAZYLEN(evidence["gunshot_residue"]))
report.info += "Residue from the following bullets detected:"
for(var/residue in evidence["gunshot_residue"])
report.info += "<span class='notice'>[residue]</span><br><br>"
else
report.info += "No gunpowder residue found."
if("fibers" in evidence)
Expand Down
4 changes: 2 additions & 2 deletions code/modules/emotes/definitions/_mob.dm
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@
/decl/emote/audible/alarm,
/decl/emote/audible/alert,
/decl/emote/audible/notice,
/decl/emote/audible/whistle,
/decl/emote/audible/synth,
/decl/emote/audible/boop,
/decl/emote/visible/blink,
Expand Down Expand Up @@ -163,7 +162,8 @@
/decl/emote/visible/rshoulder,
/decl/emote/visible/squint,
/decl/emote/visible/tfist,
/decl/emote/visible/tilt
/decl/emote/visible/tilt,
/decl/emote/audible/whistle
)

/mob/living/silicon/robot
Expand Down
8 changes: 6 additions & 2 deletions code/modules/emotes/definitions/_species.dm
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@
/decl/emote/human/fastsway,
/decl/emote/human/swag,
/decl/emote/human/stopsway,
/decl/emote/audible/lizard_bellow
/decl/emote/visible/thump,
/decl/emote/audible/lizard_bellow,
/decl/emote/audible/lizard_hiss
)

/datum/species/unathi/yeosa
Expand All @@ -40,8 +42,10 @@
/decl/emote/human/fastsway,
/decl/emote/human/swag,
/decl/emote/human/stopsway,
/decl/emote/visible/thump,
/decl/emote/audible/lizard_bellow,
/decl/emote/audible/lizard_squeal
/decl/emote/audible/lizard_squeal,
/decl/emote/audible/lizard_hiss
)

/datum/species/nabber
Expand Down
11 changes: 9 additions & 2 deletions code/modules/emotes/definitions/audible.dm
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@
/decl/emote/audible/clap
key = "clap"
emote_message_3p = "USER claps."
emote_sound = 'sound/voice/clap.ogg'

/decl/emote/audible/chuckle
key = "chuckle"
Expand Down Expand Up @@ -189,10 +190,10 @@
emote_message_3p = "USER wheezes."

/decl/emote/audible/hiss
key ="hiss_"
key ="hiss"
emote_message_3p_target = "USER hisses softly at TARGET."
emote_message_3p = "USER hisses softly."

/decl/emote/audible/lizard_bellow
key = "bellow"
emote_message_3p_target = "USER bellows deeply at TARGET!"
Expand All @@ -203,3 +204,9 @@
key = "squeal"
emote_message_3p = "USER squeals."
emote_sound = 'sound/voice/LizardSqueal.ogg'

/decl/emote/audible/lizard_hiss
key = "hiss"
emote_message_3p_target = "USER hisses at TARGET!"
emote_message_3p = "USER hisses!"
emote_sound = 'sound/voice/LizardHiss.ogg'
7 changes: 6 additions & 1 deletion code/modules/emotes/definitions/visible.dm
Original file line number Diff line number Diff line change
Expand Up @@ -331,4 +331,9 @@

/decl/emote/visible/tilt
key = "tilt"
emote_message_3p = "USER tilts USER_THEIR head."
emote_message_3p = "USER tilts USER_THEIR head."

/decl/emote/visible/thump
key = "thump"
emote_message_3p_target = "USER thumps USER_THEIR tail against the ground."
emote_message_3p = "USER thumps USER_THEIR tail against the ground."
40 changes: 20 additions & 20 deletions code/modules/mob/living/carbon/alien/chorus/buildings/generic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -109,28 +109,28 @@
to_chat(C, SPAN_WARNING("You extend \the [src] [extend_text]."))
a.visible_message(SPAN_DANGER("\The [a] [growth_verb] [through_text]!"))


/obj/structure/chorus/spawner/can_activate()
return TRUE
//Checks for base activation conditions before spawner specifics. Why? Because there's a massive global list of various mobs being iterated through, to check that there's even eligible ghosts.
//This proc used to just outright return TRUE for whatever reason.
/obj/structure/chorus/spawner/can_activate(var/mob/living/carbon/alien/chorus/C, var/warning = TRUE)
if(..())
for(var/mob/observer/ghost/ghost in GLOB.player_list) //No player ghost GLOB :(
if(MODE_DEITY in ghost.client.prefs.be_special_role)
return TRUE

/obj/structure/chorus/spawner/activate()
for(var/mob/observer/ghost/ghost in GLOB.player_list)
if(MODE_DEITY in ghost.client.prefs.be_special_role)
to_chat(ghost, SPAN_NOTICE("A chorus spawn is available! <a href='?src=\ref[src];jump=1'>(Jump)</a>"))

/obj/structure/chorus/spawner/OnTopic(user, href_list)
if(href_list["jump"] && istype(user,/mob/observer/ghost))
var/mob/M = user
M.forceMove(get_turf(src))
return TOPIC_HANDLED
to_chat(ghost, SPAN_NOTICE("A chorus spawn is available! (<a href='?src=\ref[src]'>(Join)</a>)"))

/obj/structure/chorus/spawner/OnTopic(var/mob/user, href_list)
if(href_list["src"] && istype(user,/mob/observer/ghost))
if(GLOB.chorus.can_become_antag(user.mind))
if(!owner.use_resource(activation_cost_resource, activation_cost_amount))
var/datum/chorus_resource/resource = owner.get_resource(activation_cost_resource)
to_chat(user, SPAN_WARNING("\The [src] needs [activation_cost_amount - resource.amount] more [resource.name] in order to spawn."))
return
announce_ghost_joinleave(user, 0, "They have joined a chorus")
var/mob/living/carbon/alien/chorus/sac = new(get_turf(src), owner)
sac.ckey = user.ckey
return TOPIC_HANDLED
. = ..()

/obj/structure/chorus/spawner/attack_ghost(var/mob/observer/ghost/user)
if(GLOB.chorus.can_become_antag(user.mind))
if(!owner.use_resource(activation_cost_resource, activation_cost_amount))
var/datum/chorus_resource/resource = owner.get_resource(activation_cost_resource)
to_chat(user, SPAN_WARNING("\The [src] needs [activation_cost_amount - resource.amount] more [resource.name] in order to spawn."))
return
announce_ghost_joinleave(user, 0, "They have joined a chorus")
var/mob/living/carbon/alien/chorus/sac = new(get_turf(src), owner)
sac.ckey = user.ckey
15 changes: 7 additions & 8 deletions code/modules/nano/modules/law_manager.dm
Original file line number Diff line number Diff line change
Expand Up @@ -69,31 +69,31 @@

if(href_list["change_zeroth_law"])
var/new_law = sanitize(input("Enter new law Zero. Leaving the field blank will cancel the edit.", "Edit Law", zeroth_law))
if(new_law && new_law != zeroth_law && can_still_topic())
if(new_law && new_law != zeroth_law && isadmin(usr))
zeroth_law = new_law
return 1

if(href_list["change_ion_law"])
var/new_law = sanitize(input("Enter new ion law. Leaving the field blank will cancel the edit.", "Edit Law", ion_law))
if(new_law && new_law != ion_law && can_still_topic())
if(new_law && new_law != ion_law && is_malf(usr))
ion_law = new_law
return 1

if(href_list["change_inherent_law"])
var/new_law = sanitize(input("Enter new inherent law. Leaving the field blank will cancel the edit.", "Edit Law", inherent_law))
if(new_law && new_law != inherent_law && can_still_topic())
if(new_law && new_law != inherent_law && is_malf(usr))
inherent_law = new_law
return 1

if(href_list["change_supplied_law"])
var/new_law = sanitize(input("Enter new supplied law. Leaving the field blank will cancel the edit.", "Edit Law", supplied_law))
if(new_law && new_law != supplied_law && can_still_topic())
if(new_law && new_law != supplied_law && is_malf(usr))
supplied_law = new_law
return 1

if(href_list["change_supplied_law_position"])
var/new_position = input(usr, "Enter new supplied law position between 1 and [MAX_SUPPLIED_LAW_NUMBER], inclusive. Inherent laws at the same index as a supplied law will not be stated.", "Law Position", supplied_law_position) as num|null
if(isnum(new_position) && can_still_topic())
if(isnum(new_position) && is_malf(usr))
supplied_law_position = Clamp(new_position, 1, MAX_SUPPLIED_LAW_NUMBER)
return 1

Expand All @@ -102,7 +102,7 @@
var/datum/ai_law/AL = locate(href_list["edit_law"]) in owner.laws.all_laws()
if(AL)
var/new_law = sanitize(input(usr, "Enter new law. Leaving the field blank will cancel the edit.", "Edit Law", AL.law))
if(new_law && new_law != AL.law && is_malf(usr) && can_still_topic())
if(new_law && new_law != AL.law && is_malf(usr))
log_and_message_admins("has changed a law of [owner] from '[AL.law]' to '[new_law]'")
AL.law = new_law
return 1
Expand Down Expand Up @@ -203,8 +203,7 @@
return law_sets

/datum/nano_module/law_manager/proc/is_malf(var/mob/user)
return (isadmin(user) && !owner.is_slaved()) || owner.is_malf_or_traitor()

return isadmin(user) || owner.is_malf_or_traitor()
/mob/living/silicon/proc/is_slaved()
return 0

Expand Down
Loading