Skip to content

Commit

Permalink
Upstream merge
Browse files Browse the repository at this point in the history
  • Loading branch information
SynthTwo committed Nov 8, 2024
1 parent 5ba9b82 commit ccdff04
Show file tree
Hide file tree
Showing 14 changed files with 216 additions and 121 deletions.
178 changes: 73 additions & 105 deletions _maps/map_files/Ouroboros/Ouroboros.dmm

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions code/game/objects/effects/spawners/random/engineering.dm
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,13 @@
icon_state = "diamond"
spawn_loot_count = 3
loot = list( // Space loot spawner. Random selecton of a few rarer materials.
/obj/item/stack/sheet/runed_metal/ten = 20,
//obj/item/stack/sheet/runed_metal/ten = 20, // NOVA EDIT REMOVAL - No more Runed Metal
/obj/item/stack/sheet/mineral/diamond{amount = 15} = 15,
/obj/item/stack/sheet/mineral/uranium{amount = 15} = 15,
/obj/item/stack/sheet/mineral/plasma{amount = 15} = 15,
/obj/item/stack/sheet/mineral/gold{amount = 15} = 15,
/obj/item/stack/sheet/plastic/fifty = 5,
/obj/item/stack/sheet/runed_metal/fifty = 5,
//obj/item/stack/sheet/runed_metal/fifty = 5, // NOVA EDIT REMOVAL - No more Runed Metal
)

/obj/effect/spawner/random/engineering/toolbox
Expand Down
18 changes: 8 additions & 10 deletions code/modules/surgery/surgery_step.dm
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,14 @@

return FALSE

#define SURGERY_SPEEDUP_AREA 0.5 // NOVA EDIT Addition - reward for doing surgery in surgery
#define SURGERY_SLOWDOWN_CAP_MULTIPLIER 2.5 //increase to make surgery slower but fail less, and decrease to make surgery faster but fail more
///Modifier given to surgery speed for dissected bodies.
#define SURGERY_SPEED_DISSECTION_MODIFIER 0.8
///Modifier given to users with TRAIT_MORBID on certain surgeries
#define SURGERY_SPEED_MORBID_CURIOSITY 0.7
///Modifier given to patients with TRAIT_ANALGESIA
#define SURGERY_SPEED_TRAIT_ANALGESIA 0.8
#define SURGERY_SPEED_CALM_ENVIRONMENT 0.8 // NOVA EDIT ADDITION - Modifier given to surgery when done in calm areas (no other humans around)

/datum/surgery_step/proc/initiate(mob/living/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, try_to_fail = FALSE)
// Only followers of Asclepius have the ability to use Healing Touch and perform miracle feats of surgery.
Expand Down Expand Up @@ -122,6 +122,7 @@

if(HAS_TRAIT(target, TRAIT_ANALGESIA))
speed_mod *= SURGERY_SPEED_TRAIT_ANALGESIA
to_chat(user, span_notice("You are able to work faster due to the patient's calm attitude!")) // NOVA EDIT ADDITION - Better feedback for the use of analgesia

var/implement_speed_mod = 1
if(implement_type) //this means it isn't a require hand or any item step.
Expand All @@ -141,17 +142,14 @@

var/was_sleeping = (target.stat != DEAD && target.IsSleeping())

// NOVA EDIT ADDITION START - reward for doing surgery on calm patients, and for using surgery rooms(ie. surgerying alone)
if(was_sleeping || HAS_TRAIT(target, TRAIT_ANALGESIA) || target.stat == DEAD)
modded_time *= SURGERY_SPEEDUP_AREA
to_chat(user, span_notice("You are able to work faster due to the patient's calm attitude!"))
var/quiet_enviromnent = TRUE
// NOVA EDIT ADDITION START - reward for doing surgery on a calm environment (no other humans around)
var/quiet_environment = TRUE
for(var/mob/living/carbon/human/loud_people in view(3, target))
if(loud_people != user && loud_people != target)
quiet_enviromnent = FALSE
quiet_environment = FALSE
break
if(quiet_enviromnent)
modded_time *= SURGERY_SPEEDUP_AREA
if(quiet_environment)
modded_time *= SURGERY_SPEED_CALM_ENVIRONMENT
to_chat(user, span_notice("You are able to work faster due to the quiet environment!"))
// NOVA EDIT ADDITION END
if(do_after(user, modded_time, target = target, interaction_key = user.has_status_effect(/datum/status_effect/hippocratic_oath) ? target : DOAFTER_SOURCE_SURGERY)) //If we have the hippocratic oath, we can perform one surgery on each target, otherwise we can only do one surgery in total.
Expand Down Expand Up @@ -179,7 +177,7 @@

surgery.step_in_progress = FALSE
return advance
#undef SURGERY_SPEEDUP_AREA // NOVA EDIT ADDITION
#undef SURGERY_SPEED_CALM_ENVIRONMENT // NOVA EDIT ADDITION

/**
* Handles updating the mob's mood depending on the surgery states.
Expand Down
22 changes: 22 additions & 0 deletions html/changelogs/archive/2024-11.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,25 @@
Curls'
Jinshee:
- rscadd: New gecko tail!
2024-11-06:
A.C.M.O.:
- rscadd: Added a music synthesizer action to Ethereal and Synthetic species.
- rscadd: Added the personal holosign projector. Use it to mark areas as explicitly
lewd or private. Right-click to toggle modes.
Hardly:
- balance: Removes the 50% speedup surgery speed bonus from being in a calm environments
and numb/dead patients
- balance: Calm environment instead now boosts surgery speed by 20%
MajManatee:
- rscdel: Runed metal no longer spawns as a "Rare Material"
OrbisAnima:
- bugfix: fixed an exploit with Twitch.
RatFromTheJungle:
- image: The mantis blade's sprite is now bigger and more obvious.
dwasint:
- bugfix: Evoker-type RSD now properly respect if you are trying to put a soul into
a body that was previously occupied.
norsvenska:
- map: cleaned up the ouroboros medical department's floor decals and lights
- bugfix: ouroboros surgery shutters are now linked to their buttons
- bugfix: you can now climb the staircase to the paramedic dispatch room on ouroboros
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
/datum/species/ethereal/on_species_gain(mob/living/carbon/human/new_ethereal, datum/species/old_species, pref_load)
. = ..()
var/datum/action/sing_tones/sing_action = new
sing_action.Grant(new_ethereal)

/datum/species/ethereal/create_pref_unique_perks()
var/list/to_add = list()

Expand All @@ -14,6 +19,12 @@
SPECIES_PERK_NAME = "Disco Ball",
SPECIES_PERK_DESC = "Ethereals passively generate their own light.",
),
list(
SPECIES_PERK_TYPE = SPECIES_POSITIVE_PERK,
SPECIES_PERK_ICON = "music",
SPECIES_PERK_NAME = "Musical Discharger",
SPECIES_PERK_DESC = "Ethereals can sing musical tones using their electric discharger.",
),
list(
SPECIES_PERK_TYPE = SPECIES_NEUTRAL_PERK,
SPECIES_PERK_ICON = "gem",
Expand Down
Binary file modified modular_nova/master_files/icons/obj/devices/tools.dmi
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
. = ..()

our_guy.add_movespeed_modifier(/datum/movespeed_modifier/reagent/twitch)
our_guy.next_move_modifier -= 0.3 // For the duration of this you move and attack faster
our_guy.next_move_modifier *= 0.7 // For the duration of this you move and attack faster

our_guy.sound_environment_override = SOUND_ENVIRONMENT_DIZZY

Expand Down Expand Up @@ -76,7 +76,7 @@
. = ..()

our_guy.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/twitch)
our_guy.next_move_modifier += (overdosed ? 0.5 : 0.3)
our_guy.next_move_modifier /= (overdosed ? 0.49 : 0.7)

our_guy.sound_environment_override = NONE

Expand Down Expand Up @@ -174,7 +174,7 @@

RegisterSignal(our_guy, COMSIG_ATOM_PRE_BULLET_ACT, PROC_REF(dodge_bullets))

our_guy.next_move_modifier -= 0.2 // Overdosing makes you a liiitle faster but you know has some really bad consequences
our_guy.next_move_modifier *= 0.7 // Overdosing makes you a liiitle faster but you know has some really bad consequences

if(!our_guy.hud_used)
return
Expand Down
Binary file modified modular_nova/modules/implants/icons/implanted_blade_lefthand.dmi
Binary file not shown.
Binary file modified modular_nova/modules/implants/icons/implanted_blade_righthand.dmi
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@
to_chat(user, span_warning("[target_mob]'s brain isn't compatible."))
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN

if(target_mob.mind || target_mob.ckey || GetComponent(/datum/component/previous_body))
if(target_mob.mind || target_mob.ckey || target_mob.GetComponent(/datum/component/previous_body))
to_chat(user, span_warning("[target_mob] is not able to receive a soul"))
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN

Expand Down
22 changes: 22 additions & 0 deletions modular_nova/modules/species_synthesizer/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
https://github.com/NovaSector/NovaSector/pull/4531

## Title: All the emotes.

MODULE ID: species_synthesizer

### Description:

Adds an action to Synthetic and Ethereal species that allows them to synthesize music.

- Added to `modular_nova/modules/synths/code/species/synthetic.dm`:
- Edited `/datum/species/synthetic/on_species_gain()` to add the action to the mob.
- Added to `/datum/species/ethereal/create_pref_unique_perks()` to add the "Musical Discharger" species perk.

### Master File Additions

- Added to `modular_nova/master_files/code/modules/mob/living/carbon/human/species_type/ethereal.dm`:
- Overrode `/datum/species/ethereal/on_species_gain()` to add the action to the mob.
- Added to `/datum/species/synthetic/create_pref_unique_perks()` to add the "Tone Synthesizer" species perk.

### Credits:
- [@Floofies](https://github.com/Floofies)
48 changes: 48 additions & 0 deletions modular_nova/modules/species_synthesizer/sing_tones.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/datum/action/sing_tones
name = "Sing Tones"
desc = "Use your internal synthesizer to sing!"
button_icon = 'icons/obj/art/musician.dmi'
button_icon_state = "xylophone"
var/datum/song/song
/// What instruments can be used.
var/allowed_instrument_ids = list("spaceman", "meowsynth", "square", "sine", "saw")
/// Instruments added after being emagged.
var/emag_instrument_ids = list("honk")
/// Set to TRUE if already emagged.
var/emagged = FALSE

/datum/action/sing_tones/Grant(mob/grant_to)
..()
RegisterSignal(grant_to, COMSIG_SPECIES_LOSS, PROC_REF(on_species_loss))
RegisterSignal(grant_to, COMSIG_ATOM_EMAG_ACT, PROC_REF(on_emag_act))
song = new(grant_to, allowed_instrument_ids, 15)
if(isethereal(grant_to))
desc = "Use your electric discharger to sing!"

/datum/action/sing_tones/Remove(mob/remove_from)
..()
QDEL_NULL(song)
UnregisterSignal(remove_from, list(
COMSIG_SPECIES_LOSS,
COMSIG_ATOM_EMAG_ACT,
))

/datum/action/sing_tones/proc/on_species_loss(mob/living/carbon/human/human)
SIGNAL_HANDLER

qdel(src)

/datum/action/sing_tones/proc/on_emag_act(mob/living/carbon/human/source, mob/user)
SIGNAL_HANDLER

if(emagged)
return
emagged = TRUE
song.allowed_instrument_ids += emag_instrument_ids
song.set_instrument("honk")

/datum/action/sing_tones/Trigger(trigger_flags)
. = ..()
if(!.)
return
song.ui_interact(owner)
25 changes: 25 additions & 0 deletions modular_nova/modules/synths/code/species/synthetic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@
var/datum/action/innate/monitor_change/screen
/// This is the screen that is given to the user after they get revived. On death, their screen is temporarily set to BSOD before it turns off, hence the need for this var.
var/saved_screen = "Blank"
/// Set to TRUE if the species was emagged before
var/emag_effect = FALSE

/datum/species/synthetic/allows_food_preferences()
return FALSE
Expand Down Expand Up @@ -87,6 +89,11 @@
/datum/species/synthetic/on_species_gain(mob/living/carbon/human/transformer)
. = ..()

RegisterSignal(transformer, COMSIG_ATOM_EMAG_ACT, PROC_REF(on_emag_act))

var/datum/action/sing_tones/sing_action = new
sing_action.Grant(transformer)

var/screen_mutant_bodypart = transformer.dna.mutant_bodyparts[MUTANT_SYNTH_SCREEN]
var/obj/item/organ/internal/eyes/eyes = transformer.get_organ_slot(ORGAN_SLOT_EYES)

Expand Down Expand Up @@ -142,6 +149,8 @@
/datum/species/synthetic/on_species_loss(mob/living/carbon/human/human)
. = ..()

UnregisterSignal(human, COMSIG_ATOM_EMAG_ACT)

var/obj/item/organ/internal/eyes/eyes = human.get_organ_slot(ORGAN_SLOT_EYES)

if(eyes)
Expand All @@ -166,6 +175,15 @@
old_stomach.moveToNullspace()
STOP_PROCESSING(SSobj, old_stomach)

/datum/species/synthetic/proc/on_emag_act(mob/living/carbon/human/source, mob/user)
SIGNAL_HANDLER

if(emag_effect)
return
emag_effect = TRUE
playsound(source.loc, 'sound/misc/interference.ogg', 50)
to_chat(source, span_warning("Alert: Security breach detected in central processing unit. Error Code: 540-EXO"))

/**
* Makes the IPC screen switch to BSOD followed by a blank screen
*
Expand Down Expand Up @@ -219,6 +237,13 @@
SPECIES_PERK_DESC = "[plural_form] can't be husked, disappointing changelings galaxy-wide.",
))

perk_descriptions += list(list(
SPECIES_PERK_TYPE = SPECIES_POSITIVE_PERK,
SPECIES_PERK_ICON = "music",
SPECIES_PERK_NAME = "Tone Synthesizer",
SPECIES_PERK_DESC = "[plural_form] can sing musical tones using an internal synthesizer.",
))

perk_descriptions += list(list(
SPECIES_PERK_TYPE = SPECIES_NEUTRAL_PERK,
SPECIES_PERK_ICON = "robot",
Expand Down
1 change: 1 addition & 0 deletions tgstation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -8467,6 +8467,7 @@
#include "modular_nova\modules\specialist_armor\code\hardened.dm"
#include "modular_nova\modules\specialist_armor\code\peacekeeper.dm"
#include "modular_nova\modules\specialist_armor\code\sacrificial.dm"
#include "modular_nova\modules\species_synthesizer\sing_tones.dm"
#include "modular_nova\modules\stasisrework\code\all_nodes.dm"
#include "modular_nova\modules\stasisrework\code\bodybag.dm"
#include "modular_nova\modules\stasisrework\code\bodybag_structure.dm"
Expand Down

0 comments on commit ccdff04

Please sign in to comment.