Skip to content

Commit

Permalink
Merge branch 'sojourn-13:master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
benj8560 authored Oct 10, 2024
2 parents ec7db8a + 3138219 commit f32d334
Show file tree
Hide file tree
Showing 373 changed files with 13,557 additions and 8,122 deletions.
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
* Pull requests should not contain any debug output, variables or procs, unless these are of value to admins/coders for live debugging.
* Pull requests should not contain changes that do not relate with functionality described in commit messages.
* If pull request relates with existing github issue, it should be specified in commit message, for example, "Fix broken floor sprites, close #23" (see https://help.github.com/articles/closing-issues-via-commit-messages/ for additional info).
* If pull request contains map files changes, it MUST be fitted for the correct format exstrenal tools like Strong DMM automatical do this, local in code tools currently do not work so it is best to use proper tool then Dream Makers base. Pull request description should contain screenshots of map changes if it's not obvious from map files diff.
* If pull request contains icon files changes, the pull request description should contain screenshots of changed icon files, well this isn't required its more perferd then digging into the file or checking the Actions Tools for your sprite changes.
* If pull request contains map files changes, it MUST be fitted for the correct format. External tools like StrongDMM automatically do this. Local in-code tools currently do not work so it is best to use proper tools than Dream Makers base. Pull request description should contain screenshots of map changes if it's not obvious from map files diff.
* If pull request contains icon files changes, the pull request description should contain screenshots of changed icon files. While this isn't required, it's more preferred than digging into the file or checking the Actions Tools for your sprite changes.
* If you have the permissions, please set appropriate labels on your PRs. Including, at the very least, Good-To-Merge to indicate that its done.

# Advice for new recruits
Expand Down Expand Up @@ -264,4 +264,4 @@ Procedure arguments should not contain `var/`. Specified input type e.g. `some_t
/proc/rename_area(var/mob/user as mob, var/area/A as area, var/new_name as text)
```
***
***
1 change: 1 addition & 0 deletions code/__DEFINES/chemistry.dm
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
#define IS_OPIFEX 9
#define IS_NARAMAD 10
#define IS_CINDARITE 11
#define IS_TAJ 12

#define CE_STABLE "stable" // Inaprovaline
#define CE_ANTIBIOTIC "antibiotic" // Spaceacilin
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/genetics.dm
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@
#define CLOAKING 12
#define SHOCK_LESS 13
#define VAMPIRE 14
#define PAIN_LESS 15


//Thresholds for mutagenic Destabilization
Expand Down
2 changes: 1 addition & 1 deletion code/__DEFINES/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@

#define ORGAN_HEALTH_MULTIPLIER 1
#define ORGAN_REGENERATION_MULTIPLIER 0.2
#define WOUND_BLEED_MULTIPLIER 0.035 //Bleeding wounds drip damage*this units of blood per process tick, this also cheats by doble taking, so higher numbers byond 0.1 are insainly bleedy
#define WOUND_BLEED_MULTIPLIER 0.035 //Bleeding wounds drip damage*this units of blood per process tick, this also cheats by doble taking, so higher numbers byond 0.1 are insanely bleedy
#define OPEN_ORGAN_BLEED_AMOUNT 0.5 //Wounds with open, unclamped incisions bleed this many units of blood per process tick

#define HEAT_MOBIGNITE_THRESHOLD 530 //minimum amount of heat an object needs to ignite a mob when it hits the mob
Expand Down
2 changes: 1 addition & 1 deletion code/__DEFINES/projectile_defines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#define CAL_LRIFLE "6.5mm carbine"
#define CAL_RIFLE "7.62mm rifle"
#define CAL_HRIFLE "8.6mm heavy rifle"
#define CAL_ANTIM "14.5mm Anti Materiel"
#define CAL_ANTIM "14.5mm Anti-Materiel"
#define CAL_BALL "17mm rolled shot"
#define CAL_SHOTGUN "Shotgun Shell"
#define CAL_50 "12mm heavy pistol"
Expand Down
22 changes: 12 additions & 10 deletions code/__DEFINES/species_languages.dm
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
#define LANGUAGE_MERP "Narad Pidgin"
#define LANGUAGE_BLORP "Aulvae Sonet"
#define LANGUAGE_WEH "Cindarite Voc"
#define LANGUAGE_SABLEKYNE "Crinos"

// Special / Antag langauges.
#define LANGUAGE_MONKEY "Chimpanzee"
Expand All @@ -57,13 +58,14 @@
#define LANGUAGE_BLITZ "Blitzshell Communique"

// Language flags.
#define WHITELISTED 1 // Language is available if the speaker is whitelisted.
#define RESTRICTED 2 // Language can only be acquired by spawning or an admin.
#define NONVERBAL 4 // Language has a significant non-verbal component. Speech is garbled without line-of-sight.
#define SIGNLANG 8 // Language is completely non-verbal. Speech is displayed through emotes for those who can understand.
#define HIVEMIND 16 // Broadcast to all mobs with this language.
#define NONGLOBAL 32 // Do not add to general languages list.
#define INNATE 64 // All mobs can be assumed to speak and understand this language. (audible emotes)
#define NO_TALK_MSG 128 // Do not show the "\The [speaker] talks into \the [radio]" message
#define NO_STUTTER 256 // No stuttering, slurring, or other speech problems
#define NO_TRANSLATE 512 // Prevents translation with omni translators
#define WHITELISTED 1 // Language is available if the speaker is whitelisted.
#define RESTRICTED 2 // Language can only be acquired by spawning or an admin.
#define NONVERBAL 4 // Language has a significant non-verbal component. Speech is garbled without line-of-sight.
#define SIGNLANG 8 // Language is completely non-verbal. Speech is displayed through emotes for those who can understand.
#define HIVEMIND 16 // Broadcast to all mobs with this language.
#define NONGLOBAL 32 // Do not add to general languages list.
#define INNATE 64 // All mobs can be assumed to speak and understand this language. (audible emotes)
#define NO_SPEAK 128 // Language can be understood, but not spoken.
#define NO_TALK_MSG 256 // Do not show the "\The [speaker] talks into \the [radio]" message
#define NO_STUTTER 512 // No stuttering, slurring, or other speech problems
#define NO_TRANSLATE 1024 // Prevents translation with omni translators
27 changes: 17 additions & 10 deletions code/__HELPERS/game.dm
Original file line number Diff line number Diff line change
Expand Up @@ -576,16 +576,23 @@
if (L.len)
return pick(L)

//Tells everyone thats living and is a SSmobs to wake up their AI when aplicable
/proc/activate_mobs_in_range(atom/caller , distance)
//Tells everyone thats living to awaken, if in range.
//If you run this proc a lot use care_about_sightline = TRUE as an optimization
/proc/activate_mobs_in_range(atom/caller , distance, care_about_sightline = TRUE)
var/turf/starting_point = get_turf(caller)
if(!starting_point)
return FALSE
for(var/mob/living/potential_attacker in SSmobs.mob_living_by_zlevel[starting_point.z])
if(potential_attacker == caller)
continue
if(potential_attacker.stat == DEAD)
continue
if(!(get_dist(starting_point, potential_attacker) <= distance))
continue
potential_attacker.try_activate_ai()
if(!care_about_sightline)
for(var/mob/living/potential_attacker in orange(distance, starting_point))
if(potential_attacker == caller)
continue
if(potential_attacker.stat == DEAD)
continue
potential_attacker.try_activate_ai()
else
for(var/mob/living/potential_attacker in ohearers(distance, starting_point))
if(potential_attacker == caller)
continue
if(potential_attacker.stat == DEAD)
continue
potential_attacker.try_activate_ai()
2 changes: 1 addition & 1 deletion code/__HELPERS/global_lists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,7 @@ var/global/list/paramslist_cache = list()

//Soj changes
//bee foods
var/list/bee_food_list = list("harebell", "sunflowers", "thaadra", "telriis", "surik", "vale", "potato", "poppies")
var/list/bee_food_list = list("harebell", "sunflowers", "thaadra", "telriis", "surik", "vale", "potato", "poppy")

//Used to track repeat odditie weapon spawns, as the name suggests. Currently helps reduce repeats
GLOBAL_LIST_EMPTY(reapeat_odditie_weapon_spawn)
2 changes: 1 addition & 1 deletion code/__HELPERS/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ Proc for attack log creation, because really why not
)

for(var/obj/item/clothing/C in src)
if(l_hand == C || r_hand == C)
if(l_hand == C || r_hand == C || slot_l_store == C || slot_r_store == C || slot_s_store == C)
continue
if(C.body_parts_covered & bodyparts[bodypart])
return TRUE
Expand Down
4 changes: 2 additions & 2 deletions code/__HELPERS/time.dm
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ var/round_start_time = 0
return last_roundduration2text

var/mills = roundduration2text_in_ticks // 1/10 of a second, not real milliseconds but whatever
//var/secs = ((mills % 36000) % 600) / 10 //Not really needed, but I'll leave it here for refrence.. or something
//var/secs = ((mills % 36000) % 600) / 10 //Not really needed, but I'll leave it here for reference.. or something
var/mins = round((mills % 36000) / 600)
var/hours = round(mills / 36000)

Expand All @@ -139,7 +139,7 @@ var/round_start_time = 0
return "00:00"
if(last_rounddurationcountdown2text && world.time < last_rounddurationcountdown2text_update)
return last_rounddurationcountdown2text
//var/secs = ((mills % 36000) % 600) / 10 //Not really needed, but I'll leave it here for refrence.. or something
//var/secs = ((mills % 36000) % 600) / 10 //Not really needed, but I'll leave it here for reference.. or something
if(delay && !endtime)
endtime = delay + 1 MINUTE
if(!endtime)
Expand Down
5 changes: 4 additions & 1 deletion code/_onclick/hud/screen_objects/base_screen_objects.dm
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,10 @@
add_overlay( ovrls["health0"])
else
var/mob/living/carbon/parentmobC = parentmob // same parent mob but in correct type for accessing to species
switch(100 - ((parentmobC.species.flags & NO_PAIN) ? 0 : parentmob.traumatic_shock))
var/pain_affect = ((parentmobC.species.flags & NO_PAIN) ? 0 : parentmob.traumatic_shock)
if(PAIN_LESS in parentmobC.mutations)
pain_affect = 0
switch(100 - pain_affect)
if(100 to INFINITY) add_overlay( ovrls["health0"])
if(80 to 100) add_overlay( ovrls["health1"])
if(60 to 80) add_overlay( ovrls["health2"])
Expand Down
12 changes: 12 additions & 0 deletions code/controllers/subsystems/jobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,18 @@ SUBSYSTEM_DEF(job)
make_antagonist(H.mind, ROLE_INQUISITOR)

//Occulus Edit, Right here! Custom skills.

//Caps before stats
H.stats.set_Stat_cap(STAT_BIO, H.client.prefs.BIO_CAP)
H.stats.set_Stat_cap(STAT_COG, H.client.prefs.COG_CAP)
H.stats.set_Stat_cap(STAT_MEC, H.client.prefs.MEC_CAP)
H.stats.set_Stat_cap(STAT_ROB, H.client.prefs.ROB_CAP)
H.stats.set_Stat_cap(STAT_TGH, H.client.prefs.TGH_CAP)
H.stats.set_Stat_cap(STAT_VIG, H.client.prefs.VIG_CAP)
H.stats.set_Stat_cap(STAT_VIV, H.client.prefs.VIV_CAP)
H.stats.set_Stat_cap(STAT_ANA, H.client.prefs.ANA_CAP)

//Stats get added here after cap so we dont have silly over-filling
H.stats.changeStat(STAT_BIO, H.client.prefs.BIOMOD)
H.stats.changeStat(STAT_COG, H.client.prefs.COGMOD)
H.stats.changeStat(STAT_MEC, H.client.prefs.MECMOD)
Expand Down
2 changes: 1 addition & 1 deletion code/controllers/subsystems/trade.dm
Original file line number Diff line number Diff line change
Expand Up @@ -393,7 +393,7 @@ SUBSYSTEM_DEF(trade)
var/offer_attach_count = offer_content["attach_count"]
var/list/item_list = exported[offer_path]

if(!item_list || !offer_amount)
if(!item_list || !offer_amount || TS.disallow_mass)
continue

// Check attachments after assessing offers since we need station-specific info
Expand Down
2 changes: 1 addition & 1 deletion code/datums/autolathe/parts.dm
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,7 @@
build_path = /obj/item/part/gun/barrel/shotgun

/datum/design/autolathe/part/barrel/amr
name = "firearm 14.5mm anti-material rifle barrel"
name = "firearm 14.5mm anti-materiel rifle barrel"
build_path = /obj/item/part/gun/barrel/antim

// Bootleg steel parts - for the shitty disk.
Expand Down
38 changes: 38 additions & 0 deletions code/datums/craft/recipes/clothing.dm
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,44 @@
list(QUALITY_CUTTING, 10, 60)
)

// Flower Crowns

/datum/craft_recipe/clothing/poppycrown
name = "Poppy Crown"
result = /obj/item/clothing/head/flowercrown
icon_state = "clothing"
steps = list(
list(/obj/item/stack/cable_coil, 15, time = 15),
list(/obj/item/clothing/head/hairflower, 3, time = 30)
)

/datum/craft_recipe/clothing/sunflowerflowercrown
name = "Sunflower Crown"
result = /obj/item/clothing/head/flowercrown/sunflower
icon_state = "clothing"
steps = list(
list(/obj/item/stack/cable_coil, 15, time = 15),
list(/obj/item/clothing/head/hairflower/yellow, 3, time = 30)
)

/datum/craft_recipe/clothing/lilyflowercrown
name = "Lily Crown"
result = /obj/item/clothing/head/flowercrown/lily
icon_state = "clothing"
steps = list(
list(/obj/item/stack/cable_coil, 15, time = 15),
list(/obj/item/clothing/head/pin/clover, 3, time = 30)
)

/datum/craft_recipe/clothing/rainbowflowercrown
name = "Rainbow Crown"
result = /obj/item/clothing/head/flowercrown/rainbow
icon_state = "clothing"
steps = list(
list(/obj/item/stack/cable_coil, 15, time = 15),
list(/obj/item/clothing/head/hairflower/violet, 3, time = 30)
)

// Butcher some clothes into rags to make some cloak
/datum/craft_recipe/clothing/cloak
name = "ragged cloak"
Expand Down
2 changes: 1 addition & 1 deletion code/datums/craft/recipes/guild.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
icon_state = "clothing"
steps = list(
list(CRAFT_MATERIAL, 2, MATERIAL_GLASS, "time" = 1),
list(QUALITY_WELDING, 40, "time" = 5), //Insainly quick do tobeing 1 sheet a time
list(QUALITY_WELDING, 40, "time" = 5), //Insanely quick do tobeing 1 sheet a time
list(CRAFT_MATERIAL, 1, MATERIAL_PLASMA, "time" = 1),
list(QUALITY_WELDING, 40, "time" = 5),
list(QUALITY_SAWING, 30, "time" = 5)
Expand Down
110 changes: 110 additions & 0 deletions code/datums/craft/recipes/lodge.dm
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,61 @@
list(/obj/item/reagent_containers/food/snacks/grown, 3, "time" = 1) //Takes a second
)

/datum/craft_recipe/lodge/throwing_knife/bone_needle
name = "throwing bone needles"
result = /obj/item/stack/thrown/throwing_knife/bone_needle
steps = list(
list(CRAFT_MATERIAL, 3, MATERIAL_BONE, "time" = 1), //Takes a second
list(QUALITY_SAWING, 20, "time" = 5),
list(QUALITY_WELDING, 30, "time" = 60),
list(QUALITY_CUTTING, 50, "time" = 1)
)

/datum/craft_recipe/lodge/throwing_knife/bone_needle/poison
name = "poisoned throwing bone needle"
result = /obj/item/stack/thrown/throwing_knife/bone_needle/poison/full
steps = list(
list(/obj/item/stack/thrown/throwing_knife/bone_needle, 3, "time" = 5),
list(/obj/item/reagent_containers/glass/bottle, 1, "time" = 20),
list(/obj/item/reagent_containers/food/snacks/amanitajelly, 1, "time" = 1),
list(QUALITY_HAMMERING, 30, "time" = 40)
)

/datum/craft_recipe/lodge/throwing_knife/bone_needle/poison_spider_alt
name = "poisoned throwing bone needle (Spider Alt)"
result = /obj/item/stack/thrown/throwing_knife/bone_needle/poison/full
steps = list(
list(/obj/item/stack/thrown/throwing_knife/bone_needle, 3, "time" = 5),
list(/obj/item/reagent_containers/glass/bottle, 1, "time" = 20),
list(/obj/item/reagent_containers/food/snacks/meat/spider, 1, "time" = 5),
list(QUALITY_HAMMERING, 30, "time" = 40)
)

/datum/craft_recipe/lodge/throwing_knife/bone_needle/poison_spider_alt
name = "poisoned throwing bone needle (Roach Alt)"
result = /obj/item/stack/thrown/throwing_knife/bone_needle/poison/full
steps = list(
list(/obj/item/stack/thrown/throwing_knife/bone_needle, 3, "time" = 5),
list(/obj/item/reagent_containers/glass/bottle, 1, "time" = 20),
list(/obj/item/reagent_containers/food/snacks/meat/roachmeat/glowing, 1, "time" = 1),
list(QUALITY_HAMMERING, 30, "time" = 40)
)

/datum/craft_recipe/lodge/throwing_knife/hunter
name = "throwing hunting knife"
result = /obj/item/stack/thrown/throwing_knife/hunter
steps = list(
list(CRAFT_MATERIAL, 10, MATERIAL_STEEL, "time" = 1), //Takes a second
list(/obj/item/stack/thrown/throwing_knife/bone_needle, 1, "time" = 5),
list(QUALITY_SCREW_DRIVING, 30, "time" = 60),
list(CRAFT_MATERIAL, 5, MATERIAL_PLASTEEL, "time" = 60),
list(QUALITY_WELDING, 30, "time" = 60),
list(CRAFT_MATERIAL, 5, MATERIAL_LEATHER, "time" = 30),
list(QUALITY_CUTTING, 30, "time" = 1),
list(/obj/item/tool_upgrade/augment/spikes, 1),
list(QUALITY_WELDING, 30, "time" = 60)
)

/datum/craft_recipe/lodge/baroqe
name = "Baroque Bone Rifle"
result = /obj/item/gun/projectile/boltgun/baroque
Expand Down Expand Up @@ -130,6 +185,30 @@
list(QUALITY_WELDING, 30, "time" = 10)
)

/datum/craft_recipe/lodge/cannibal_scythe
name = "\"Cannibal Strike\" scythe"
result = /obj/item/tool/cannibal_scythe
icon_state = "woodworking"
steps = list(
list(CRAFT_MATERIAL, 20, MATERIAL_WOOD, "time" = 20),
list(QUALITY_SAWING, 20, "time" = 40),
list(/obj/item/animal_part/cannibal_tooth, 1, "time" = 20),
list(/obj/item/tool_upgrade/productivity/whetstone, 1, "time" = 30),
list(QUALITY_WELDING, 30, "time" = 10),
list(QUALITY_HAMMERING, 30, "time" = 40),
list(/obj/item/animal_part/stalker_spur, 1, "time" = 20),
list(CRAFT_MATERIAL, 15, MATERIAL_LEATHER, "time" = 60),
list(/obj/item/animal_part/tangu_horn, 2, "time" = 20),
list(CRAFT_MATERIAL, 30, MATERIAL_BONE, "time" = 60),
list(/obj/item/animal_part/stalker_chitin, 1, "time" = 20),
list(QUALITY_SAWING, 20, "time" = 40),
list(/obj/item/stack/cable_coil, 5, "time" = 20),
list(QUALITY_WIRE_CUTTING, 10, "time" = 40),
list(CRAFT_MATERIAL, 5, MATERIAL_STEEL, "time" = 60),
list(/obj/item/oddity, 1, "time" = 10),
list(QUALITY_WELDING, 30, "time" = 10)
)

/datum/craft_recipe/lodge/render_gauntlet
name = "Render Gauntlet"
result = /obj/item/tool/gauntlet
Expand Down Expand Up @@ -269,6 +348,37 @@
list(QUALITY_WIRE_CUTTING, 15, 30)
)

/datum/craft_recipe/lodge/hunter_rig
name = "Lodge \"Apex\" control module"
result = /obj/item/rig/combat/hunter
icon_state = "clothing"
steps = list(
list(/obj/item/rig, 1, "time" = 60),
list(QUALITY_SCREW_DRIVING, 15, "time" = 50),
list(QUALITY_WIRE_CUTTING, 15, 30),
list(/obj/item/clothing/suit/armor/hunter, 1, "time" = 20),
list(QUALITY_WELDING, 20, "time" = 90),
list(CRAFT_MATERIAL, 20, MATERIAL_STEEL, "time" = 60),
list(QUALITY_BOLT_TURNING, 30, "time" = 40),
list(QUALITY_WELDING, 20, "time" = 90),
list(/obj/item/oddity, 1, "time" = 10),
list(QUALITY_SCREW_DRIVING, 15, "time" = 50),
list(CRAFT_MATERIAL, 45, MATERIAL_BONE, "time" = 10),
list(CRAFT_MATERIAL, 20, MATERIAL_LEATHER, "time" = 60),
list(/obj/item/animal_part/stalker_chitin, 2, "time" = 20),
list(QUALITY_SCREW_DRIVING, 15, "time" = 50),
list(/obj/item/animal_part/stalker_spur, 2, "time" = 20),
list(QUALITY_CUTTING, 50, "time" = 10),
list(QUALITY_WELDING, 20, "time" = 90),
list(/obj/item/animal_part/render_claw, 2, "time" = 20),
list(QUALITY_SAWING, 10, "time" = 40),
list(QUALITY_BOLT_TURNING, 30, "time" = 40),
list(/obj/item/stack/cable_coil, 10, "time" = 20),
list(QUALITY_ADHESIVE, 10, "time" = 60),
list(CRAFT_MATERIAL, 1, MATERIAL_PLASMA),
list(QUALITY_WELDING, 20, "time" = 90)
)

/datum/craft_recipe/lodge/hunter_boots
name = "Hunter Boots"
result = /obj/item/clothing/shoes/hunterboots
Expand Down
Loading

0 comments on commit f32d334

Please sign in to comment.