Skip to content

Commit

Permalink
[S] The great space horror (#635) (#2483)
Browse files Browse the repository at this point in the history
* The Fleshy bits

* 2

* silly controllers

* 5

* Update fleshmind_structures.dm

* 7

* Update modular_nova/modules/space_ruin_specifics/code/machine_corruption_component.dm



* Update modular_nova/modules/space_ruin_specifics/code/fleshmind_environment_objects.dm



* Update modular_nova/modules/space_ruin_specifics/code/machine_corruption_component.dm



* Update modular_nova/modules/space_ruin_specifics/code/fleshmind_environment_objects.dm



* Update modular_nova/modules/space_ruin_specifics/code/fleshmind_environment_objects.dm



* Update modular_nova/modules/space_ruin_specifics/code/machine_corruption_component.dm



* Update modular_nova/modules/space_ruin_specifics/code/machine_corruption_component.dm



* Update modular_nova/modules/space_ruin_specifics/code/machine_corruption_component.dm



* tweaks

* 5

* cheeky

* Update fleshmind_environment_objects.dm

* 3

* Update cargodiselost.dmm

* Update fleshmind_controller.dm

* 66

* 7

* Update fleshmind_environment_objects.dm

* Update icon_smoothing.dm

* 2

* Update fleshmind_controller.dm

* Update icon_smoothing.dm

* were it so easy?

* Update fleshmind_mobs.dm

* Update fleshmind_mobs.dm

---------

Co-authored-by: Zergspower <[email protected]>
Co-authored-by: Bloop <[email protected]>
  • Loading branch information
3 people authored Mar 22, 2024
1 parent 66ca6f8 commit fed33bc
Show file tree
Hide file tree
Showing 66 changed files with 3,039 additions and 0 deletions.
2 changes: 2 additions & 0 deletions code/__DEFINES/icon_smoothing.dm
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,8 @@ DEFINE_BITFIELD(smoothing_junction, list(
#define SMOOTH_GROUP_SHUTTERS S_OBJ(75)

#define SMOOTH_GROUP_WATER S_OBJ(76) ///obj/effect/abstract/liquid_turf

#define SMOOTH_GROUP_WIREWEED S_OBJ(77)
//NOVA EDIT END

/// Performs the work to set smoothing_groups and canSmoothWith.
Expand Down
13 changes: 13 additions & 0 deletions code/__DEFINES/~nova_defines/signals.dm
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,16 @@

/// Whenever we need to get the soul of the mob inside of the soulcatcher.
#define COMSIG_SOULCATCHER_SCAN_BODY "soulcatcher_scan_body"

// CORRUPTION SIGNALS

/// From /obj/structure/fleshmind/structure/proc/activate_ability() (src)
#define COMSIG_CORRUPTION_STRUCTURE_ABILITY_TRIGGERED "corruption_structure_ability_triggered"

/// From /mob/living/simple_animal/hostile/fleshmind/phaser/proc/phase_move_to(atom/target, nearby = FALSE)
#define COMSIG_PHASER_PHASE_MOVE "phaser_phase_move"
/// from /mob/living/simple_animal/hostile/fleshmind/phaser/proc/enter_nearby_closet()
#define COMSIG_PHASER_ENTER_CLOSET "phaser_enter_closet"

/// from /obj/structure/fleshmind/structure/core/proc/rally_troops()
#define COMSIG_FLESHMIND_CORE_RALLY "fleshmind_core_rally"
11 changes: 11 additions & 0 deletions code/modules/unit_tests/simple_animal_freeze.dm
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,17 @@
/mob/living/simple_animal/hostile/zombie/nocorpse,
/mob/living/simple_animal/pet/gondola/funky,
/mob/living/simple_animal/pet/poppy,
/mob/living/simple_animal/hostile/fleshmind/slicer,
/mob/living/simple_animal/hostile/fleshmind/floater,
/mob/living/simple_animal/hostile/fleshmind/globber,
/mob/living/simple_animal/hostile/fleshmind/stunner,
/mob/living/simple_animal/hostile/fleshmind/hiborg,
/mob/living/simple_animal/hostile/fleshmind/himan,
/mob/living/simple_animal/hostile/fleshmind/treader,
/mob/living/simple_animal/hostile/fleshmind/phaser,
/mob/living/simple_animal/hostile/fleshmind/mechiver,
/mob/living/simple_animal/hostile/fleshmind/mauler_monkey,
/mob/living/simple_animal/hostile/fleshmind,

// DO NOT ADD NEW ENTRIES TO THIS LIST
// READ THE COMMENT ABOVE
Expand Down
103 changes: 103 additions & 0 deletions modular_nova/modules/space_ruin_specifics/code/_fleshmind_defines.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
// GENERAL DEFINES

/// A list of objects that are considered part of a door, used to determine if a wireweed should attack it.
#define DOOR_OBJECT_LIST list(/obj/machinery/door/airlock, /obj/structure/door_assembly, /obj/machinery/door/firedoor, /obj/machinery/door/window)

#define FACTION_FLESHMIND "fleshmind"

#define MALFUNCTION_RESET_TIME 3 SECONDS

#define MALFUNCTION_CORE_DEATH_RESET_TIME 20 SECONDS

#define STRUCTURE_EMP_LIGHT_DISABLE_TIME 3 SECONDS
#define STRUCTURE_EMP_HEAVY_DISABLE_TIME 7 SECONDS

#define STRUCTURE_EMP_LIGHT_DAMAGE 30
#define STRUCTURE_EMP_HEAVY_DAMAGE 50

#define MOB_EMP_LIGHT_DAMAGE 5
#define MOB_EMP_HEAVY_DAMAGE 10

#define FLESHMIND_NAME_MODIFIER_LIST list ("Warped", "Altered", "Modified", "Upgraded", "Abnormal")

/// The range at which most of our objects, mobs and structures activate at. 7 seems to be the perfect number.
#define DEFAULT_VIEW_RANGE 7

#define MALFUNCTION_CHANCE_LOW 0.5
#define MALFUNCTION_CHANCE_MEDIUM 1
#define MALFUNCTION_CHANCE_HIGH 2

#define SPECIES_MONKEY_MAULER "monkey_mauler"

#define MECHIVER_CONSUME_HEALTH_THRESHOLD 0.7

#define FLESHMIND_LIGHT_BLUE "#50edd9"

/// Core is in danger, engage turboboosters
#define MOB_RALLY_SPEED 1

/// The max spread distance a wireweed can spread thru a vent.
#define MAX_VENT_SPREAD_DISTANCE 6

#define CONTROLLED_MOB_POLICY "You are part of the fleshmind, this means any fleshmind entities, structures, mobs are your ally. You must not attack them. \n \
You must roleplay that you are part of the fleshmind. Your number one goal is converting other hosts and spreading the flesh."

#define FLESHMIND_EVENT_MAKE_CORRUPTION_CHANCE 2

#define FLESHMIND_EVENT_MAKE_CORRUPT_MOB 1

// CONTROLLER RELATED DEFINES

#define AI_FORENAME_LIST list("Von Neumann", "Lazarus", "Abattoir", "Tra-Sentience", \
"Vivisector", "Ex Costa", "Apostasy", "Gnosis", "Balaam", "Ophite", \
"Sarif", "VersaLife", "Obsidian", "SHODAN", "Pandora", "Master Controller", "Xerxes")

#define AI_SURNAME_LIST list("Mk I", "Mk II", "Mk III", "Mk IV", "Mk V", "Mk X", \
"v0.9", "v1.0", "v1.1", "v2.0", "2418-B", "Open Beta", \
"Pre-Release", "Commercial Release", "Closed Alpha", "Hivebuilt")

/// The controller must reach this before it can level up to the next level.
#define CONTROLLER_LEVEL_UP_THRESHOLD 300

#define CONTROLLER_LEVEL_1 1
#define CONTROLLER_LEVEL_2 2
#define CONTROLLER_LEVEL_3 3
#define CONTROLLER_LEVEL_4 4
#define CONTROLLER_LEVEL_5 5
#define CONTROLLER_LEVEL_MAX 6

// Balance specific defines
#define FLESHCORE_SPREAD_PROGRESS_REQUIRED 200 // How much progress is required to spread?
#define FLESHCORE_SPREADS_FOR_STRUCTURE 50 // How many times do we need to spread until we can create a new structure?
#define FLESHCORE_INITIAL_EXPANSION_SPREADS 30 // Upon creation, how many times do we spread instantly?
#define FLESHCORE_INITIAL_EXPANSION_STRUCTURES 5 // Upon creation, how many structures do we spawn instantly?
#define FLESHCORE_SPREAD_PROGRESS_PER_SUBSYSTEM_FIRE 40 // Every subsystem fire, how much progress do we gain?
#define FLESHCORE_BASE_SPREAD_PROGRESS_PER_SUBSYSTEM_FIRE 40 // The baseline of the above.
#define FLESHCORE_ATTACK_PROB 20 // How likely are we to attack every SS fire?
#define FLESHCORE_WALL_PROB 30 // How likely are we to spawn a wall to seal a gap every SS fire?
#define FLESHCORE_NEXT_CORE_DAMAGE_WIREWEED_ACTIVATION_COOLDOWN 10 SECONDS // The amount of time until we can activate nearby wireweed again.

#define CONTROLLER_DEATH_DO_NOTHING 1
#define CONTROLLER_DEATH_SLOW_DECAY 2
#define CONTROLLER_DEATH_DELETE_ALL 3

#define CONTROLLER_LEVEL_UP_CORE_INTEGRITY_AMOUNT 300 // How much integrity the cores get when leveling up

// WIREWEED RELATED DEFINES

#define CORE_DAMAGE_WIREWEED_ACTIVATION_RANGE 6
#define GENERAL_DAMAGE_WIREWEED_ACTIVATION_RANGE 2

#define WIREWEED_WIRECUTTER_KILL_TIME 0.5 SECONDS

#define WIREWEED_HEAL_CHANCE 10

#define WIREWEED_REPLACE_BODYPART_CHANCE 5

#define WIREWEED_HEAL_AMOUNT 3

// MECHIVER RELATED DEFINES
#define MECHIVER_INTERNAL_MOB_DAMAGE_UPPER 60 // Upder damage done to internal mob
#define MECHIVER_INTERNAL_MOB_DAMAGE_LOWER 30 // Lower damage done to internal mob
#define MECHIVER_CONVERSION_TIME 20 SECONDS // Time to convert someone inside
#define MECHIVER_CONSUME_COOLDOWN 1 MINUTES // How long it takes to be ready to consume again
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#define is_corrupt_mob(A) (istype(A, /mob/living/simple_animal/hostile/fleshmind))
Loading

0 comments on commit fed33bc

Please sign in to comment.