-
Notifications
You must be signed in to change notification settings - Fork 550
Shell May Cry: A comprehensive rework of synthetics. #20721
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
Open
NonQueueingMatt
wants to merge
163
commits into
Aurorastation:master
Choose a base branch
from
NonQueueingMatt:whereabouts_of_the_heart
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+5,478
−901
Open
Changes from 70 commits
Commits
Show all changes
163 commits
Select commit
Hold shift + click to select a range
74afd1d
wingman
liermattia 3238598
this is either the most stupid idea ever or an all timer
liermattia 9386a96
Merge remote-tracking branch 'Aurora/master' into whereabouts_of_the_…
liermattia 7abf68e
turns out it was really dumb but we can salvage this
liermattia 09d3de0
cooling unit beginning
liermattia 8fa0cdd
Merge remote-tracking branch 'Aurora/master' into whereabouts_of_the_…
liermattia 803c78a
shadows on the walls
liermattia 6785c80
bishop internal pda and ranged interact (it's probably shitcode)
liermattia 09a4d27
Merge remote-tracking branch 'Aurora/master' into whereabouts_of_the_…
liermattia 00a4da3
not entirely sold on damage this diversified
liermattia 17bcfec
that temperature code's gonna be the death of me
liermattia 5a03090
cooling unit v1
liermattia d11a1fc
cooling unit v2
liermattia 9515899
final cooling unit work, synthetic internals update, plating update, …
liermattia dc7b3f3
more stuff
liermattia 694e35f
i swear this is probably the final tweak to the cooling unit
liermattia 9aac5a5
quality pass
liermattia a406aaf
oh right, we don't use that anymore
liermattia c9065ee
Merge remote-tracking branch 'Aurora/master' into whereabouts_of_the_…
liermattia f08593e
lint
liermattia e22af12
power unit v1 and preset refactor
liermattia f4d5d27
make it compile and change a few things
liermattia 68c4ba7
superfluous code removal
liermattia 86e97f2
surge protector define
liermattia 2b28a6d
power core v2
liermattia 9404f73
weight, reactor updates
liermattia 1cf678b
internal storage, bio reactor
liermattia d8af630
bioreactor fixes
liermattia 238781d
some more cleanup
liermattia d7ad71f
safeties, beginning of posibrain code (temperature as damage?)
liermattia 4f8c4ad
standardize probabilities, cooling unit update
liermattia 0e691e7
access ports part 1
liermattia a6893a9
porting cm tethers would've been easier but i like a challenge
liermattia cc69896
part 1 of actually using access cable (it's kinda shit)
liermattia bc1da0e
yeah okay that's probably better
liermattia 70547c4
rewrite access cable code for the 17th time
liermattia f9adbe6
a surprise span that will help us later
liermattia fe630a1
uuuuuuugh
liermattia 9d52a46
resist and disorder
liermattia c8c6d30
Merge remote-tracking branch 'Aurora/master' into whereabouts_of_the_…
liermattia 3fd4ed4
lint
liermattia 1147911
cleanup part one
liermattia 9d4fe87
pfffgdfgfdggfd
liermattia 8836f3a
fixes
liermattia 340fad4
Ports CM's langchat to replace floating chat.
liermattia f407467
stuff
liermattia a70232c
cl
liermattia ff8c6b6
add screen text
liermattia d39f923
remove looc
liermattia 040630a
Merge remote-tracking branch 'Aurora/master' into langchat
liermattia 3eef3ed
fix whispers probably
liermattia b484ba2
fix the Comically Large Asterisk
liermattia b629792
my dopamine's all gone because of you
liermattia d719206
world on fire
liermattia af3153a
Merge remote-tracking branch 'Aurora/master' into whereabouts_of_the_…
liermattia 4f19362
almost there
liermattia ce2579b
pt 2
liermattia ced79f9
final placeholder
liermattia d3b1e0b
fix it
liermattia 1a30c2f
Merge branch 'langchat' into whereabouts_of_the_heart
liermattia bc43a76
some fixees
liermattia f486eee
Merge remote-tracking branch 'Aurora/master' into whereabouts_of_the_…
liermattia ebc3094
finish line
liermattia 048f6b0
update that value before i forget
liermattia a358956
fool or sage
liermattia af1a6d2
funny message
liermattia 2b3a6dc
compile
liermattia d689a90
Merge remote-tracking branch 'Aurora/master' into whereabouts_of_the_…
liermattia f592e1a
Merge remote-tracking branch 'Aurora/master' into whereabouts_of_the_…
liermattia d120f97
holy fuck this thing is ASS
liermattia e7612cf
parade
liermattia 209879d
a lot of Stuff
liermattia d3cf5ad
hell is over
liermattia 890ae42
Merge remote-tracking branch 'Aurora/master' into whereabouts_of_the_…
liermattia 6801a2e
virtual communication, sounds, fragmentation
liermattia a271489
sss
liermattia 4447e77
better solution
liermattia ca6d1d5
yeppp
liermattia 8f36564
so close i can taste it
liermattia 9556f6b
that's most things done
liermattia afef189
the optable probably works now
liermattia fc42a89
relative sizes
liermattia 5c4238f
oops
liermattia 40305d3
Merge remote-tracking branch 'Aurora/master' into whereabouts_of_the_…
liermattia 9194970
why isn-t this working
liermattia 25a827a
and i dreamed of being braver
liermattia 8700944
robot pain is real
liermattia 1330873
stuff
liermattia 9cf4e80
it could be that maybe?
liermattia 7fd9019
dssddsds
liermattia 3af9299
rly
liermattia a56ac2f
maybe fixes that
liermattia 1d964e0
Merge remote-tracking branch 'Aurora/master' into whereabouts_of_the_…
liermattia fb8ff7a
merg
liermattia 1fd4feb
fixes again
liermattia feda3c9
Merge remote-tracking branch 'Aurora/master' into whereabouts_of_the_…
liermattia 7c10abf
more sounds
liermattia 7232758
stuff
liermattia 73ffd44
Brain Scrambling
Geevies f34c64e
Merge pull request #30 from Geevies/weird_eyes
NonQueueingMatt 3725713
Custom Prosthesis Fix
Geevies 983ecad
indent
liermattia 52447cc
Merge pull request #31 from Geevies/custom_prosthesis_fix
NonQueueingMatt 1064425
emp tweaks
liermattia 65369ee
we're here
liermattia 5856c3a
max damage for organs
liermattia 1cc98b3
burst dmg tweak
liermattia acbf62f
few fixes
liermattia 7469bfc
action buttons
liermattia 0b9ee74
fuck this shit ass fucking code fuck you whoever wrote this in 2013 f…
liermattia 1298d3e
the ghost of christmas past
liermattia 30a9d48
mechfab no sync button
liermattia 20e8baf
industrial sec
liermattia 59559a4
fixes
liermattia d6dca65
rebalance
liermattia c9b74e5
temperature
liermattia 95921df
whoops
liermattia 239f52d
emp nerf
liermattia 71409ff
more fixes
liermattia 90ea0aa
power fixes
liermattia 76ab279
G1 fix, cable inside backpackf ix, cyborg fix, machineryc hair beam fix
liermattia 78749a5
several fixes to do with damage and cooling
liermattia 573c6f8
fix cooling once and for all
liermattia 462bac0
i'm not throwin ones, fives or even twennies
liermattia 0cc22f5
actually fix it
liermattia 274a945
fix it again
liermattia 59a2491
g1 storage fix
liermattia 3b46533
hotfix for carrier burning
liermattia 35ea65b
move fragmentation sound
liermattia 2de6375
compilemoment
liermattia 990b7cf
whatever i didn't like that soundanyway
liermattia e559ba5
the cooking update
liermattia ac68618
ssdsd
liermattia b13bb09
Merge remote-tracking branch 'Aurora/master' into whereabouts_of_the_…
liermattia 6b1deac
fix the cooling unit once and for all
liermattia 0d53362
bio-reactor degunking, solar power fixes
liermattia a30eddb
solar fixes
liermattia eef612f
update to the solar charge
liermattia 419ee9c
fix the warning
liermattia 6ec20ff
Merge branch 'master' into whereabouts_of_the_heart
Arrow768 beec6e7
Merge remote-tracking branch 'Aurora/master' into whereabouts_of_the_…
liermattia b54492d
synth armor + subspecies adjustments + rel_size
liermattia 7162ed5
fix the mechfab probably for real
liermattia e5d59fc
a lot of life/posibrain/emp tweaks
liermattia c09af70
is this arcadia?
liermattia e7ad450
fix a lot of stuff
liermattia 91c7074
fix xions dying in space
liermattia 68e731c
Merge remote-tracking branch 'Aurora/master' into whereabouts_of_the_…
liermattia 29431ba
temporary event fix
liermattia d34477e
more event fixes
liermattia 3a51874
fix the hardsuit coolig unit and cap temperature in some places
liermattia 7abe9cf
fixes 2
liermattia a5a834c
probably fix integrity damage weirdness
liermattia f4d6b00
experimental damage things
liermattia 251a27e
some more changes
liermattia 2ef3447
fixes again
liermattia eeb1ccc
moooore changes
liermattia 4561df2
ok stop here for now
liermattia e2fa2e6
i want to go to bed
liermattia 72a306b
TODO fix posibrain death and finish this FUCKING computer
liermattia c9fba75
and do that before i forget
liermattia 2586f55
Merge remote-tracking branch 'Aurora/master' into whereabouts_of_the_…
liermattia c843fb8
it begins again
liermattia File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
///from datum/species/machine/handle_sprint_cost() | ||
#define COMSIG_IPC_HAS_SPRINTED "ipc_sprinted" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
GLOBAL_LIST_EMPTY(mob_config_movespeed_type_lookup) | ||
GLOBAL_LIST_INIT(low_integrity_messages, world.file2list("config/synthetic_messages/low_integrity_messages.txt")) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
// An edit of ablative armor, taken from Baystation12. | ||
/datum/component/armor/synthetic | ||
full_block_message = "Your external plating absorbs the blow!" | ||
partial_block_message = "Your external plating dulls the blow!" | ||
|
||
/// Maximum armor values. | ||
var/list/max_armor_values | ||
/// How fast armor degrades with blocked damage, with armor value reduced by [coef * damage taken] | ||
var/armor_degradation_coef = 0.8 | ||
/// Wearer feedback. | ||
var/list/last_reported_damage | ||
|
||
/datum/component/armor/synthetic/Initialize(list/armor, armor_type, _armor_degradation_speed) | ||
. = ..() | ||
max_armor_values = armor_values.Copy() | ||
if(_armor_degradation_speed) | ||
armor_degradation_coef = _armor_degradation_speed | ||
|
||
/datum/component/armor/synthetic/on_blocking(damage, damage_type, damage_flags, armor_pen, blocked) | ||
if (!(damage_type == DAMAGE_BRUTE || damage_type == DAMAGE_BURN)) | ||
return | ||
if(armor_degradation_coef) | ||
var/key = get_armor_key(damage_type, damage_flags) | ||
var/damage_taken | ||
if(blocked) | ||
damage_taken = round(damage * blocked) | ||
else | ||
damage_taken = damage | ||
var/new_armor = max(0, get_value(key) - armor_degradation_coef * damage_taken) | ||
set_value(key, new_armor) | ||
var/mob/M = parent | ||
if(istype(M)) | ||
var/list/visible = get_visible_damage() | ||
for(var/k in visible) | ||
if(LAZYACCESS(last_reported_damage, k) != visible[k]) | ||
LAZYSET(last_reported_damage, k, visible[k]) | ||
to_chat(M, SPAN_WARNING("Your external plating has [visible[k]] damage now!")) | ||
|
||
/datum/component/armor/synthetic/proc/get_damage() | ||
for(var/key in armor_values) | ||
var/damage = max_armor_values[key] - armor_values[key] | ||
if(damage > 0) | ||
LAZYSET(., key, damage) | ||
|
||
/datum/component/armor/synthetic/proc/get_visible_damage() | ||
var/list/damages = get_damage() | ||
if(!LAZYLEN(damages)) | ||
return | ||
var/result = list() | ||
for(var/key in damages) | ||
switch(round(100 * damages[key]/max_armor_values[key])) | ||
if(5 to 10) | ||
result[key] = "minor" | ||
if(11 to 25) | ||
result[key] = "moderate" | ||
if(26 to 50) | ||
result[key] = "serious" | ||
if(51 to 100) | ||
result[key] = "catastrophic" | ||
return result |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
// Synthetic internals represent things that are not physically modelled as an organ, but are rather part of the organ. | ||
// That means wiring, plating, and electronics. Damaging organs has adverse effects on these components. | ||
// The goal is to emulate damaging effects similar to arterial bleeding, infections, etc. on organics. | ||
|
||
// The specific effects of each synthetic internal can vary organ by organ. They all have different health measurements as well. | ||
// These measurements can change depending on the organ they are attached to. | ||
|
||
/datum/synthetic_internal | ||
/// The name of the internal component. Shows up in analysis tools. | ||
var/name = "default synthetic internal" | ||
/// The description. Shows up in analysis tools. | ||
var/desc = "A default synthetic internal component." | ||
/// The organ this synthetic internal belongs to. | ||
var/obj/item/organ/internal/machine/organ | ||
|
||
/datum/synthetic_internal/New(obj/item/organ/internal/machine/attached_organ) | ||
. = ..() | ||
if(istype(attached_organ)) | ||
if(isipc(attached_organ.owner)) | ||
organ = attached_organ | ||
else | ||
LOG_DEBUG("Synthetic internal [type] generated on organ [attached_organ] with invalid owner [attached_organ.owner]. Aborting.") | ||
qdel(src) | ||
else | ||
LOG_DEBUG("Synthetic internal [type] generated on invalid organ [attached_organ]. Aborting.") | ||
qdel(src) | ||
|
||
/datum/synthetic_internal/Destroy(force) | ||
organ = null | ||
return ..() | ||
|
||
/** | ||
* The proc that handles taking damage. As some components take damage differently, | ||
* this is overridden by them. | ||
*/ | ||
/datum/synthetic_internal/proc/take_damage(amount) | ||
return | ||
|
||
/** | ||
* The proc that handles restoring damage. As some components restore damage differently, | ||
* this is overridden by them. | ||
*/ | ||
/datum/synthetic_internal/proc/heal_damage(amount) | ||
return | ||
|
||
/** | ||
* This proc returns the status of this synthetic internal as a percentage. | ||
* It will return 100 if the component is 100% healthy, a value between 0 and 100 if not, and 0 if broken. | ||
* This logic can be overridden for custom behaviour. | ||
*/ | ||
/datum/synthetic_internal/proc/get_status() | ||
return | ||
|
||
/** | ||
* This proc returns the status of this internal component, but imprecisely. | ||
* Basically what could be obvious at an eye-glance. | ||
*/ | ||
/datum/synthetic_internal/proc/analyse_integrity_imprecise() | ||
return | ||
|
||
/** | ||
* This proc returns the status of this internal component, but precisely. | ||
* Basically the results of an in-depth analysis with an appropriate tool. | ||
*/ | ||
/datum/synthetic_internal/proc/analyze_integrity_precise() | ||
return | ||
|
||
/** | ||
* Replaces the health by setting a new max health and setting the health to the new max_health value. | ||
* Needs to be overridden on every subtype. | ||
*/ | ||
/datum/synthetic_internal/proc/replace_health(new_max_health) | ||
return |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
// The synthetic's electronics. Represents both the hardware and software component. | ||
// The integrity of electronics only goes from 0% to 100%. It does not vary, unlike other components. | ||
|
||
/datum/synthetic_internal/electronics | ||
name = "internal electronics" | ||
desc = "The electronics and the code responsible for many internal functions." | ||
/// The maximum integrity percentage of the internals. Represents code coherence and physical damage. | ||
var/max_integrity = 100 | ||
/// The integrity of the internals in percentage. Represents code coherence and physical damage. | ||
var/integrity = 100 | ||
|
||
/datum/synthetic_internal/electronics/get_status() | ||
return (integrity / max_integrity) * 100 | ||
|
||
/datum/synthetic_internal/electronics/take_damage(amount) | ||
// Integrity is really slow to damage. Hacking does a way better job than just shooting the thing. | ||
integrity = max(integrity - (amount * 0.75), 0) | ||
|
||
/datum/synthetic_internal/electronics/heal_damage(amount) | ||
integrity = min(integrity + amount, max_integrity) |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.