Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/PvE-CMSS13/PvE-CMSS13 int…
Browse files Browse the repository at this point in the history
…o janny
  • Loading branch information
AmoryBlaine committed Sep 10, 2024
2 parents aeac50d + c0ebcaa commit 5345ddc
Show file tree
Hide file tree
Showing 201 changed files with 44,203 additions and 33,346 deletions.
7 changes: 7 additions & 0 deletions code/__DEFINES/__game.dm
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,7 @@
#define WALL_DEVWALL "devwall"
#define WALL_DEVWALL_R "devwall_r"
#define WALL_HUNTERSHIP "metal"//DMI specific name
#define WALL_AICORE "aiwall"

//Defines for dropship weapon gimbals
#define GIMBAL_LEFT -1
Expand Down Expand Up @@ -552,3 +553,9 @@
#define PERF_TOGGLE_SHUTTLES (1<<3)
/// Disables loading Techwebs and additional Z-Levels
#define PERF_TOGGLE_TECHWEBS (1<<4)

/// Dropship Camos
#define DROPSHIP_CAMO_TAN "Tan"
#define DROPSHIP_CAMO_NAVY "Navy"
#define DROPSHIP_CAMO_URBAN "Urban"
#define DROPSHIP_CAMO_JUNGLE "Jungle"
2 changes: 1 addition & 1 deletion code/__DEFINES/guns.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#define AMMO_BAND_COLOR_TRAINING "#FFFFFF"
// Uncommon
#define AMMO_BAND_COLOR_HOLOTARGETING "#276A74"
#define AMMO_BAND_COLOR_RUBBER "#556696"
#define AMMO_BAND_COLOR_RUBBER "#d8d9db"
#define AMMO_BAND_COLOR_HOLLOWPOINT "#BA5D00"
#define AMMO_BAND_COLOR_INCENDIARY "#9C2219"
#define AMMO_BAND_COLOR_IMPACT "#7866FF"
Expand Down
8 changes: 8 additions & 0 deletions code/__DEFINES/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -449,3 +449,11 @@ var/list/default_xeno_onmob_icons = list(
#define MOBILITY_FLAGS_CARBON_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_REST | MOBILITY_LIEDOWN)
#define MOBILITY_FLAGS_REST_CAPABLE_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_REST | MOBILITY_LIEDOWN)

/// Sleeps for X and will perform return if A is qdeleted or a dead mob.
#define SLEEP_CHECK_DEATH(X, A) \
sleep(X); \
if(QDELETED(A)) return; \
if(ismob(A)) { \
var/mob/sleep_check_death_mob = A; \
if(sleep_check_death_mob.stat == DEAD) return; \
}
4 changes: 4 additions & 0 deletions code/__DEFINES/shuttles.dm
Original file line number Diff line number Diff line change
Expand Up @@ -143,3 +143,7 @@
#define ESCAPE_SHUTTLE_SOUTH_PREFIX "escape_shuttle_s"

#define ESCAPE_SHUTTLE_DOCK_PREFIX "almayer-hangar-escape-shuttle-"

#define MOBILE_SHUTTLE_SHIPMAP_ELEVATOR_ONE "garrow_vehicle_elevator_one"
#define MOBILE_SHUTTLE_SHIPMAP_ELEVATOR_TWO "garrow_vehicle_elevator_two"
#define MOBILE_SHUTTLE_SHIPMAP_ELEVATOR_CARGO "garrow_cargo_elevator"
1 change: 1 addition & 0 deletions code/__DEFINES/sounds.dm
Original file line number Diff line number Diff line change
Expand Up @@ -91,3 +91,4 @@
#define SCAPE_PL_ENG list('sound/soundscape/engamb1.ogg', 'sound/soundscape/engamb2.ogg', 'sound/soundscape/engamb3.ogg', 'sound/soundscape/engamb4.ogg', 'sound/soundscape/engamb5.ogg', 'sound/soundscape/engamb6.ogg', 'sound/soundscape/engamb7.ogg', )
#define SCAPE_PL_HANGAR list('sound/soundscape/hangaramb1.ogg', 'sound/soundscape/hangaramb2.ogg', 'sound/soundscape/hangaramb3.ogg', 'sound/soundscape/hangaramb4.ogg', 'sound/soundscape/hangaramb5.ogg', 'sound/soundscape/hangaramb6.ogg', 'sound/soundscape/hangaramb7.ogg', 'sound/soundscape/hangaramb8.ogg', 'sound/soundscape/hangaramb9.ogg', 'sound/soundscape/hangaramb10.ogg', )
#define SCAPE_PL_ARES list('sound/soundscape/mother.ogg')
#define SCAPE_PL_AICORE list('sound/soundscape/aicore/aicore_beep.ogg', 'sound/soundscape/aicore/aicore_ident.ogg', 'sound/soundscape/aicore/aicore_rumble1.ogg', 'sound/soundscape/aicore/aicore_rumble2.ogg', 'sound/soundscape/aicore/aicore_rumble3.ogg', 'sound/soundscape/aicore/aicore_rumble4.ogg', 'sound/soundscape/aicore/aicore_rumble5.ogg', 'sound/soundscape/aicore/aicore_tone1.ogg', 'sound/soundscape/aicore/aicore_tone2.ogg', 'sound/soundscape/aicore/aicore_tone3.ogg', 'sound/soundscape/aicore/aicore_tone4.ogg', 'sound/soundscape/aicore/aicore_tone5.ogg', 'sound/soundscape/aicore/aicore_tone6.ogg', 'sound/soundscape/aicore/aicore_tone7.ogg', 'sound/soundscape/aicore/aicore_tone8.ogg', 'sound/soundscape/aicore/aicore_tone9.ogg', 'sound/soundscape/aicore/aicore_tone10.ogg', 'sound/soundscape/aicore/aicore_tone11.ogg', 'sound/soundscape/aicore/aicore_tone12.ogg', 'sound/soundscape/aicore/aicore_tone13.ogg', 'sound/soundscape/aicore/aicore_tone14.ogg', 'sound/soundscape/aicore/aicore_tone15.ogg', 'sound/soundscape/aicore/aicore_tone16.ogg', 'sound/soundscape/aicore/aicore_tone17.ogg', 'sound/soundscape/aicore/aicore_tone18.ogg', )
6 changes: 5 additions & 1 deletion code/__DEFINES/xeno.dm
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,7 @@
#define XENO_HEALTH_TIER_14 950 * XENO_UNIVERSAL_HPMULT
#define XENO_HEALTH_QUEEN 1000 * XENO_UNIVERSAL_HPMULT
#define XENO_HEALTH_IMMORTAL 1200 * XENO_UNIVERSAL_HPMULT
#define XENO_HEALTH_KING 1500 * XENO_UNIVERSAL_HPMULT

// Plasma bands
#define XENO_NO_PLASMA 0
Expand Down Expand Up @@ -381,6 +382,7 @@
// Armor mods. Use the above defines for some guidance
// In general, +20 armor should be a little more than +20% effective HP, however,
// the higher the Xeno's base armor, the greater the effect.
#define XENO_ARMOR_MOD_TINY 2.5
#define XENO_ARMOR_MOD_VERY_SMALL 5
#define XENO_ARMOR_MOD_SMALL 10
#define XENO_ARMOR_MOD_MED 15
Expand Down Expand Up @@ -614,6 +616,7 @@
#define XENO_SHIELD_SOURCE_GARDENER 8
#define XENO_SHIELD_SOURCE_SHIELD_PILLAR 9
#define XENO_SHIELD_SOURCE_CUMULATIVE_GENERIC 10
#define XENO_SHIELD_SOURCE_KING_BULWARKSPELL 11

//XENO CASTES
#define XENO_CASTE_LARVA "Bloody Larva"
Expand Down Expand Up @@ -643,12 +646,13 @@
#define XENO_CASTE_RAVAGER "Ravager"
#define XENO_T3_CASTES list(XENO_CASTE_BOILER, XENO_CASTE_PRAETORIAN, XENO_CASTE_CRUSHER, XENO_CASTE_RAVAGER)
//special
#define XENO_CASTE_KING "King"
#define XENO_CASTE_QUEEN "Queen"
#define XENO_CASTE_PREDALIEN "Predalien"
#define XENO_CASTE_HELLHOUND "Hellhound"
#define XENO_SPECIAL_CASTES list(XENO_CASTE_QUEEN, XENO_CASTE_PREDALIEN, XENO_CASTE_HELLHOUND)

#define ALL_XENO_CASTES list(XENO_CASTE_LARVA, XENO_CASTE_PREDALIEN_LARVA, XENO_CASTE_FACEHUGGER, XENO_CASTE_LESSER_DRONE, XENO_CASTE_DRONE, XENO_CASTE_RUNNER, XENO_CASTE_SENTINEL, XENO_CASTE_DEFENDER, XENO_CASTE_BURROWER, XENO_CASTE_CARRIER, XENO_CASTE_HIVELORD, XENO_CASTE_LURKER, XENO_CASTE_WARRIOR, XENO_CASTE_SPITTER, XENO_CASTE_BOILER, XENO_CASTE_PRAETORIAN, XENO_CASTE_CRUSHER, XENO_CASTE_RAVAGER, XENO_CASTE_QUEEN, XENO_CASTE_PREDALIEN, XENO_CASTE_HELLHOUND)
#define ALL_XENO_CASTES list(XENO_CASTE_LARVA, XENO_CASTE_PREDALIEN_LARVA, XENO_CASTE_FACEHUGGER, XENO_CASTE_LESSER_DRONE, XENO_CASTE_DRONE, XENO_CASTE_RUNNER, XENO_CASTE_SENTINEL, XENO_CASTE_DEFENDER, XENO_CASTE_BURROWER, XENO_CASTE_CARRIER, XENO_CASTE_HIVELORD, XENO_CASTE_LURKER, XENO_CASTE_WARRIOR, XENO_CASTE_SPITTER, XENO_CASTE_BOILER, XENO_CASTE_PRAETORIAN, XENO_CASTE_CRUSHER, XENO_CASTE_RAVAGER, XENO_CASTE_QUEEN, XENO_CASTE_PREDALIEN, XENO_CASTE_HELLHOUND, XENO_CASTE_KING)

// Checks if two hives are allied to each other.
// PARAMETERS:
Expand Down
3 changes: 3 additions & 0 deletions code/_globalvars/global_lists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,9 @@ GLOBAL_REFERENCE_LIST_INDEXED(hair_styles_list, /datum/sprite_accessory/hair, na
GLOBAL_REFERENCE_LIST_INDEXED(facial_hair_styles_list, /datum/sprite_accessory/facial_hair, name) //stores /datum/sprite_accessory/facial_hair indexed by name
GLOBAL_REFERENCE_LIST_INDEXED(hair_gradient_list, /datum/sprite_accessory/hair_gradient, name)
GLOBAL_REFERENCE_LIST_INDEXED(yautja_hair_styles_list, /datum/sprite_accessory/yautja_hair, name)
//Dropship camos

GLOBAL_LIST_INIT(dropship_camos, list(DROPSHIP_CAMO_TAN, DROPSHIP_CAMO_NAVY, DROPSHIP_CAMO_URBAN, DROPSHIP_CAMO_JUNGLE))

//Backpacks
var/global/list/backbaglist = list("Backpack", "Satchel")
Expand Down
2 changes: 2 additions & 0 deletions code/_globalvars/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,5 @@ GLOBAL_VAR(obfs_x)
GLOBAL_VAR(obfs_y)

GLOBAL_VAR_INIT(ai_xeno_weeding, TRUE)

GLOBAL_LIST_INIT(alldirs, list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST))
2 changes: 1 addition & 1 deletion code/controllers/subsystem/item_cleanup.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ var/global/list/item_cleanup_list = list()
SUBSYSTEM_DEF(item_cleanup)
name = "Item Cleanup"
wait = 10 MINUTES //should be adjusted for WO
var/start_processing_time = 35 MINUTES //should be adjusted for WO
var/start_processing_time = INFINITY //should be adjusted for WO
var/percentage_of_garbage_to_delete = 0.5 //should be adjusted for WO
//We keep a separate, private list
//So we don't get instant deletions of items
Expand Down
153 changes: 88 additions & 65 deletions code/datums/ammo/bullet/rifle.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
//======
*/

//====== 10X24 Pulse Rifle
/datum/ammo/bullet/rifle
name = "rifle bullet"
name = "10x24 bullet"
headshot_state = HEADSHOT_OVERLAY_MEDIUM

damage = 40
penetration = ARMOR_PENETRATION_TIER_1
accurate_range = 16
Expand All @@ -16,25 +16,25 @@
shell_speed = AMMO_SPEED_TIER_6
effective_range_max = 7
damage_falloff = DAMAGE_FALLOFF_TIER_7
max_range = 24 //So S8 users don't have their bullets magically disappaer at 22 tiles (S8 can see 24 tiles)
max_range = 24

/datum/ammo/bullet/rifle/holo_target
name = "holo-targeting rifle bullet"
name = "holo-targeting 10x24 bullet"
damage = 30
var/holo_stacks = 10

/datum/ammo/bullet/rifle/holo_target/on_hit_mob(mob/M, obj/projectile/P)
. = ..()
M.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time)


/datum/ammo/bullet/rifle/holo_target/hunting
name = "holo-targeting hunting bullet"
name = "holo-targeting 10x24 bullet"
damage = 25
holo_stacks = 15

/datum/ammo/bullet/rifle/explosive
name = "explosive rifle bullet"

name = "explosive 10x24 bullet"
damage = 25
accurate_range = 22
accuracy = 0
Expand All @@ -51,15 +51,17 @@
if(T.density)
cell_explosion(T, 80, 40, EXPLOSION_FALLOFF_SHAPE_LINEAR, P.dir, P.weapon_cause_data)


/datum/ammo/bullet/rifle/ap
name = "armor-piercing rifle bullet"
name = "armor-piercing 10x24 bullet"

damage = 30
penetration = ARMOR_PENETRATION_TIER_8


// Basically AP but better. Focused at taking out armour temporarily
/datum/ammo/bullet/rifle/ap/toxin
name = "toxic rifle bullet"
name = "toxic 10x24 bullet"
var/acid_per_hit = 7
var/organic_damage_mult = 3

Expand All @@ -79,7 +81,7 @@


/datum/ammo/bullet/rifle/ap/penetrating
name = "wall-penetrating rifle bullet"
name = "wall-penetrating 10x24 bullet"
shrapnel_chance = 0

damage = 35
Expand All @@ -91,47 +93,93 @@
BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating)
))

/datum/ammo/bullet/rifle/le
name = "armor-shredding rifle bullet"

/datum/ammo/bullet/rifle/le
name = "armor-shredding 10x24 bullet"
damage = 20
penetration = ARMOR_PENETRATION_TIER_4
pen_armor_punch = 5

/datum/ammo/bullet/rifle/heap
name = "high-explosive armor-piercing rifle bullet"

/datum/ammo/bullet/rifle/heap
name = "high-explosive armor-piercing 10x24 bullet"
headshot_state = HEADSHOT_OVERLAY_HEAVY
damage = 55//big damage, doesn't actually blow up because thats stupid.
penetration = ARMOR_PENETRATION_TIER_8
shrapnel_chance = SHRAPNEL_CHANCE_TIER_3

/datum/ammo/bullet/rifle/rubber
name = "rubber rifle bullet"
sound_override = 'sound/weapons/gun_c99.ogg'

damage = 0
/datum/ammo/bullet/rifle/rubber
name = "rubber 10x24 bullet"
damage = 5
stamina_damage = 15
shrapnel_chance = 0

/datum/ammo/bullet/rifle/incendiary
name = "incendiary rifle bullet"
name = "incendiary 10x24 bullet"
damage_type = BURN
shrapnel_chance = 0
flags_ammo_behavior = AMMO_BALLISTIC

damage = 30
shell_speed = AMMO_SPEED_TIER_4
accuracy = -HIT_ACCURACY_TIER_2
damage_falloff = DAMAGE_FALLOFF_TIER_10


/datum/ammo/bullet/rifle/incendiary/set_bullet_traits()
. = ..()
LAZYADD(traits_to_give, list(
BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary)
))

/datum/ammo/bullet/rifle/m4ra
name = "A19 high velocity bullet"
//====== 10X28 Smartgun

/datum/ammo/bullet/rifle/heavy
name = "10x28 bullet"
headshot_state = HEADSHOT_OVERLAY_MEDIUM
damage = 55
penetration = ARMOR_PENETRATION_TIER_3
accuracy = HIT_ACCURACY_TIER_3
shell_speed = AMMO_SPEED_TIER_6
effective_range_max = 10
damage_falloff = DAMAGE_FALLOFF_TIER_9

/datum/ammo/bullet/rifle/heavy/ap
name = "armor-piercing 10x28 bullet"
headshot_state = HEADSHOT_OVERLAY_MEDIUM
damage = 40
penetration = ARMOR_PENETRATION_TIER_8

/datum/ammo/bullet/rifle/heavy/heap
headshot_state = HEADSHOT_OVERLAY_HEAVY
name = "high explosive armor-piercing 10x28 bullet"
headshot_state = HEADSHOT_OVERLAY_MEDIUM
damage = 70
penetration = ARMOR_PENETRATION_TIER_10
shrapnel_chance = SHRAPNEL_CHANCE_TIER_3

/datum/ammo/bullet/rifle/heavy/du
name = "depleted uranium 10x28 bullet"

damage = 60
accurate_range_min = 4
penetration = ARMOR_PENETRATION_TIER_5
scatter = -SCATTER_AMOUNT_TIER_8

/datum/ammo/bullet/rifle/heavy/du/set_bullet_traits()
. = ..()
LAZYADD(traits_to_give, list(
BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating)
))

/datum/ammo/bullet/rifle/heavy/du/on_hit_mob(mob/target, obj/projectile/fired_proj)
target.AddComponent(/datum/component/toxic_buildup)
knockback(target, fired_proj, max_range = 2)

// Custom Specialist M4RA rounds

/datum/ammo/bullet/rifle/heavy/spec
name = "high velocity 10x28 bullet"
shrapnel_chance = 0
damage_falloff = 0
flags_ammo_behavior = AMMO_BALLISTIC
Expand All @@ -142,8 +190,8 @@
penetration= ARMOR_PENETRATION_TIER_7
shell_speed = AMMO_SPEED_TIER_6

/datum/ammo/bullet/rifle/m4ra/incendiary
name = "A19 high velocity incendiary bullet"
/datum/ammo/bullet/rifle/heavy/spec/incendiary
name = "high velocity incendiary 10x28 bullet"
flags_ammo_behavior = AMMO_BALLISTIC

damage = 40
Expand All @@ -152,14 +200,14 @@
penetration= ARMOR_PENETRATION_TIER_5
shell_speed = AMMO_SPEED_TIER_6

/datum/ammo/bullet/rifle/m4ra/incendiary/set_bullet_traits()
/datum/ammo/bullet/rifle/heavy/spec/incendiary/set_bullet_traits()
. = ..()
LAZYADD(traits_to_give, list(
BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary)
))

/datum/ammo/bullet/rifle/m4ra/impact
name = "A19 high velocity impact bullet"
/datum/ammo/bullet/rifle/heavy/spec/impact
name = "high velocity impact 10x28 bullet"
flags_ammo_behavior = AMMO_BALLISTIC

damage = 40
Expand All @@ -168,10 +216,10 @@
penetration = ARMOR_PENETRATION_TIER_10
shell_speed = AMMO_SPEED_TIER_6

/datum/ammo/bullet/rifle/m4ra/impact/on_hit_mob(mob/M, obj/projectile/P)
/datum/ammo/bullet/rifle/heavy/spec/impact/on_hit_mob(mob/M, obj/projectile/P)
knockback(M, P, 32) // Can knockback basically at max range

/datum/ammo/bullet/rifle/m4ra/impact/knockback_effects(mob/living/living_mob, obj/projectile/fired_projectile)
/datum/ammo/bullet/rifle/heavy/spec/impact/knockback_effects(mob/living/living_mob, obj/projectile/fired_projectile)
if(iscarbonsizexeno(living_mob))
var/mob/living/carbon/xenomorph/target = living_mob
to_chat(target, SPAN_XENODANGER("You are shaken and slowed by the sudden impact!"))
Expand All @@ -186,45 +234,20 @@
to_chat(living_mob, SPAN_HIGHDANGER("The impact knocks you off-balance!"))
living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET)

//====== 10x31 Type 71

// PvE M4RA rounds - pens&does toxin to whomever gets hit by it
/datum/ammo/bullet/rifle/m4ra/du
name = "depleted uranium bullet"
/datum/ammo/bullet/rifle/heavy/upp
name = "10x31 bullet"

damage = 60
penetration = ARMOR_PENETRATION_TIER_5
/datum/ammo/bullet/rifle/heavy/ap/upp
name = "armor-piercing 10x31 bullet"

/datum/ammo/bullet/rifle/m4ra/du/set_bullet_traits()
. = ..()
LAZYADD(traits_to_give, list(
BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating)
))

/datum/ammo/bullet/rifle/m4ra/du/on_hit_mob(mob/target, obj/projectile/fired_proj)
target.AddComponent(/datum/component/toxic_buildup)
knockback(target, fired_proj, max_range = 2)
/datum/ammo/bullet/rifle/heavy/heap/upp
name = "high-explosive armor-piercing 10x31 bullet"

// Misc

/datum/ammo/bullet/rifle/mar40
name = "heavy rifle bullet"

damage = 55

/datum/ammo/bullet/rifle/type71
name = "heavy rifle bullet"

damage = 55
penetration = ARMOR_PENETRATION_TIER_3

/datum/ammo/bullet/rifle/type71/ap
name = "heavy armor-piercing rifle bullet"

damage = 40
penetration = ARMOR_PENETRATION_TIER_10

/datum/ammo/bullet/rifle/type71/heap
name = "heavy high-explosive armor-piercing rifle bullet"

headshot_state = HEADSHOT_OVERLAY_HEAVY
damage = 65
penetration = ARMOR_PENETRATION_TIER_10
name = "7.62x39mm rifle bullet"
damage = 45
penetration = ARMOR_PENETRATION_TIER_2
Loading

0 comments on commit 5345ddc

Please sign in to comment.