Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/kirieee/kirie-1
Browse files Browse the repository at this point in the history
  • Loading branch information
kirieee committed Aug 8, 2023
2 parents d0ac454 + c542c2e commit a0d2178
Show file tree
Hide file tree
Showing 33 changed files with 324 additions and 66 deletions.
11 changes: 6 additions & 5 deletions code/__DEFINES/job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -347,11 +347,12 @@ var/global/list/job_command_roles = JOB_COMMAND_ROLES_LIST
#define JOB_PLAYTIME_TIER_4 (175 HOURS)

#define XENO_NO_AGE -1
#define XENO_NORMAL 0
#define XENO_MATURE 1
#define XENO_ELDER 2
#define XENO_ANCIENT 3
#define XENO_PRIME 4
#define XENO_YOUNG 0
#define XENO_NORMAL 1
#define XENO_MATURE 2
#define XENO_ELDER 3
#define XENO_ANCIENT 4
#define XENO_PRIME 5

/// For monthly time tracking
#define JOB_OBSERVER "Observer"
Expand Down
6 changes: 6 additions & 0 deletions code/__DEFINES/xeno.dm
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,12 @@
/// The amount of time after round start before buried larva spawns are disallowed
#define XENO_BURIED_LARVA_TIME_LIMIT (30 MINUTES)

/// The time when xenos can start taking over comm towers
#define XENO_COMM_ACQUISITION_TIME (90 MINUTES)

/// The time it takes for a pylon to give one larva while activated
#define XENO_PYLON_ACTIVATION_COOLDOWN (5 MINUTES)

/// The time against away_timer when an AFK xeno larva can be replaced
#define XENO_LEAVE_TIMER_LARVA 80 //80 seconds
/// The time against away_timer when an AFK xeno (not larva) can be replaced
Expand Down
4 changes: 2 additions & 2 deletions code/datums/mob_hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -441,9 +441,9 @@ var/list/datum/mob_hud/huds = list(
holder2_set = 1
return

holder.icon_state = "huddead"
holder.icon_state = HAS_TRAIT(src, TRAIT_HARDCORE) || MODE_HAS_TOGGLEABLE_FLAG(MODE_HARDCORE_PERMA) ? "hudhcdead" : "huddead"
if(!holder2_set)
holder2.icon_state = "huddead"
holder2.icon_state = holder.icon_state
holder3.icon_state = "huddead"
holder2_set = 1

Expand Down
11 changes: 0 additions & 11 deletions code/datums/supply_packs/attachments.dm
Original file line number Diff line number Diff line change
Expand Up @@ -84,17 +84,6 @@
containername = "extended barrel attachment crate"
group = "Attachments"

/datum/supply_packs/muzzle_heavy
name = "barrel charger attachment crate (x2)"
contains = list(
/obj/item/attachable/heavy_barrel,
/obj/item/attachable/heavy_barrel,
)
cost = 30
containertype = /obj/structure/closet/crate
containername = "heavy barrel attachment crate"
group = "Attachments"

/datum/supply_packs/muzzle_compensator
name = "compensator attachment crate (x6)"
contains = list(
Expand Down
14 changes: 2 additions & 12 deletions code/game/area/Sulaco.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
is_resin_allowed = FALSE
flags_area = AREA_NOTUNNEL
is_landing_zone = TRUE
ceiling = CEILING_REINFORCED_METAL

/area/shuttle/drop1/Enter(atom/movable/O, atom/oldloc)
if(istype(O, /obj/structure/barricade))
Expand All @@ -23,36 +24,30 @@
name = "\improper Dropship Alamo"
icon_state = "shuttlered"
base_muffle = MUFFLE_HIGH
ceiling = CEILING_REINFORCED_METAL

/area/shuttle/drop1/LV624
name = "\improper Dropship Alamo"
ambience_exterior = AMBIENCE_LV624
icon_state = "shuttle"
ceiling = CEILING_REINFORCED_METAL

/area/shuttle/drop1/prison
name = "\improper Dropship Alamo"
ambience_exterior = AMBIENCE_PRISON
icon_state = "shuttle"
ceiling = CEILING_REINFORCED_METAL

/area/shuttle/drop1/BigRed
name = "\improper Dropship Alamo"
ambience_exterior = AMBIENCE_BIGRED
icon_state = "shuttle"
ceiling = CEILING_REINFORCED_METAL

/area/shuttle/drop1/ice_colony
name = "\improper Dropship Alamo"
icon_state = "shuttle"
ceiling = CEILING_REINFORCED_METAL

/area/shuttle/drop1/DesertDam
name = "\improper Dropship Alamo"
ambience_exterior = AMBIENCE_TRIJENT
icon_state = "shuttle"
ceiling = CEILING_REINFORCED_METAL

/area/shuttle/drop1/transit
ambience_exterior = 'sound/ambience/dropship_ambience_loop.ogg'
Expand All @@ -75,41 +70,36 @@
is_resin_allowed = FALSE
flags_area = AREA_NOTUNNEL
is_landing_zone = TRUE
ceiling = CEILING_REINFORCED_METAL

/area/shuttle/drop2/sulaco
name = "\improper Dropship Normandy"
icon_state = "shuttle"
base_muffle = MUFFLE_HIGH
ceiling = CEILING_REINFORCED_METAL

/area/shuttle/drop2/LV624
name = "\improper Dropship Normandy"
ambience_exterior = AMBIENCE_LV624
icon_state = "shuttle2"
ceiling = CEILING_REINFORCED_METAL

/area/shuttle/drop2/prison
name = "\improper Dropship Normandy"
ambience_exterior = AMBIENCE_PRISON
icon_state = "shuttle2"
ceiling = CEILING_REINFORCED_METAL

/area/shuttle/drop2/BigRed
name = "\improper Dropship Normandy"
ambience_exterior = AMBIENCE_BIGRED
icon_state = "shuttle2"
ceiling = CEILING_REINFORCED_METAL

/area/shuttle/drop2/ice_colony
name = "\improper Dropship Normandy"
icon_state = "shuttle2"
ceiling = CEILING_REINFORCED_METAL

/area/shuttle/drop2/DesertDam
name = "\improper Dropship Normandy"
ambience_exterior = AMBIENCE_TRIJENT
icon_state = "shuttle2"
ceiling = CEILING_REINFORCED_METAL

/area/shuttle/drop2/transit
ambience_exterior = 'sound/ambience/dropship_ambience_loop.ogg'
Expand Down
93 changes: 93 additions & 0 deletions code/game/machinery/telecomms/presets.dm
Original file line number Diff line number Diff line change
Expand Up @@ -212,12 +212,27 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers)
freq_listening = list(COLONY_FREQ)
var/toggle_cooldown = 0

/// Tower has been taken over by xenos, is not usable
var/corrupted = FALSE

/// Held image for the current overlay on the tower from xeno corruption
var/image/corruption_image

/obj/structure/machinery/telecomms/relay/preset/tower/mapcomms/Initialize()
. = ..()

RegisterSignal(src, COMSIG_ATOM_TURF_CHANGE, PROC_REF(register_with_turf))
register_with_turf()

/obj/structure/machinery/telecomms/relay/preset/tower/mapcomms/attack_hand(mob/user)
if(user.action_busy)
return
if(toggle_cooldown > world.time) //cooldown only to prevent spam toggling
to_chat(user, SPAN_WARNING("\The [src]'s processors are still cooling! Wait before trying to flip the switch again."))
return
if(corrupted)
to_chat(user, SPAN_WARNING("[src] is entangled in resin. Impossible to interact with."))
return
var/current_state = on
if(!do_after(user, 20, INTERRUPT_NO_NEEDHAND|BEHAVIOR_IMMOBILE, BUSY_ICON_FRIENDLY, src))
return
Expand Down Expand Up @@ -282,6 +297,84 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers)
else
update_icon()

/// Handles xenos corrupting the tower when weeds touch the turf it is located on
/obj/structure/machinery/telecomms/relay/preset/tower/mapcomms/proc/handle_xeno_acquisition(turf/weeded_turf)
SIGNAL_HANDLER

if(corrupted)
return

if(!weeded_turf.weeds)
return

if(weeded_turf.weeds.weed_strength < WEED_LEVEL_HIVE)
return

if(!weeded_turf.weeds.parent)
return

if(!istype(weeded_turf.weeds.parent, /obj/effect/alien/weeds/node/pylon/cluster))
return

if(SSticker.mode.is_in_endgame)
return

if(ROUND_TIME < XENO_COMM_ACQUISITION_TIME)
addtimer(CALLBACK(src, PROC_REF(handle_xeno_acquisition), weeded_turf), (XENO_COMM_ACQUISITION_TIME - ROUND_TIME))
return

var/obj/effect/alien/weeds/node/pylon/cluster/parent_node = weeded_turf.weeds.parent

var/obj/effect/alien/resin/special/cluster/cluster_parent = parent_node.resin_parent

var/list/held_children_weeds = parent_node.children
var/cluster_loc = cluster_parent.loc
var/linked_hive = cluster_parent.linked_hive

parent_node.children = list()

qdel(cluster_parent)

var/obj/effect/alien/resin/special/pylon/endgame/new_pylon = new(cluster_loc, linked_hive)
new_pylon.node.children = held_children_weeds

for(var/obj/effect/alien/weeds/weed in new_pylon.node.children)
weed.parent = new_pylon.node

RegisterSignal(new_pylon, COMSIG_PARENT_QDELETING, PROC_REF(uncorrupt))

corrupted = TRUE

corruption_image = image(icon, icon_state = "resin_growing")

flick_overlay(src, corruption_image, (2 SECONDS))
addtimer(CALLBACK(src, PROC_REF(switch_to_idle_corruption)), (2 SECONDS))

new_pylon.comms_relay_connection()

/// Handles removing corruption effects from the comms relay
/obj/structure/machinery/telecomms/relay/preset/tower/mapcomms/proc/uncorrupt(datum/deleting_datum)
SIGNAL_HANDLER

corrupted = FALSE

overlays -= corruption_image

/// Handles moving the overlay from growing to idle
/obj/structure/machinery/telecomms/relay/preset/tower/mapcomms/proc/switch_to_idle_corruption()
if(!corrupted)
return

corruption_image = image(icon, icon_state = "resin_idle")

overlays += corruption_image

/// Handles re-registering signals on new turfs if changed
/obj/structure/machinery/telecomms/relay/preset/tower/mapcomms/proc/register_with_turf()
SIGNAL_HANDLER

RegisterSignal(get_turf(src), COMSIG_WEEDNODE_GROWTH, PROC_REF(handle_xeno_acquisition))

/obj/structure/machinery/telecomms/relay/preset/telecomms
id = "Telecomms Relay"
autolinkers = list("relay")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ GLOBAL_LIST_INIT(cm_vending_gear_commanding_officer, list(
list("Underbarrel Flamethrower", 15, /obj/item/attachable/attached_gun/flamer, null, VENDOR_ITEM_REGULAR),

list("BARREL ATTACHMENTS", 0, null, null, null),
list("Barrel Charger", 25, /obj/item/attachable/heavy_barrel, null, VENDOR_ITEM_RECOMMENDED),
list("Suppressor", 15, /obj/item/attachable/suppressor, null, VENDOR_ITEM_REGULAR),
list("Extended Barrel", 15, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR),
list("Recoil Compensator", 15, /obj/item/attachable/compensator, null, VENDOR_ITEM_REGULAR),
Expand Down
1 change: 1 addition & 0 deletions code/game/machinery/vending/vendor_types/crew/synthetic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
list("Industrial Blowtorch", 2, /obj/item/tool/weldingtool/largetank, null, VENDOR_ITEM_REGULAR),
list("High-Capacity Industrial Blowtorch", 4, /obj/item/tool/weldingtool/hugetank, null, VENDOR_ITEM_REGULAR),
list("Plastic Explosive", 3, /obj/item/explosive/plastic, null, VENDOR_ITEM_REGULAR),
list("Toolkit", 1, /obj/item/storage/firstaid/toolkit/empty, null, VENDOR_ITEM_REGULAR),

list("FIRSTAID KITS", 0, null, null, null),
list("Advanced Firstaid Kit", 12, /obj/item/storage/firstaid/adv, null, VENDOR_ITEM_REGULAR),
Expand Down
2 changes: 2 additions & 0 deletions code/game/machinery/vending/vendor_types/engineering.dm
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
list("Utility Tool Belt", round(scale * 2), /obj/item/storage/belt/utility, VENDOR_ITEM_REGULAR),
list("Welding Goggles", round(scale * 2), /obj/item/clothing/glasses/welding, VENDOR_ITEM_REGULAR),
list("Welding Helmet", round(scale * 2), /obj/item/clothing/head/welding, VENDOR_ITEM_REGULAR),
list("Toolkit", round(scale * 4), /obj/item/storage/firstaid/toolkit/empty, VENDOR_ITEM_REGULAR),

list("SCANNERS", -1, null, null),
list("Atmos Scanner", round(scale * 2), /obj/item/device/analyzer, VENDOR_ITEM_REGULAR),
Expand Down Expand Up @@ -54,6 +55,7 @@
list("EQUIPMENT", -1, null, null),
list("Utility Tool Belt", round(scale * 4), /obj/item/storage/belt/utility, VENDOR_ITEM_REGULAR),
list("Cable Coil", round(scale * 4), /obj/item/stack/cable_coil/random, VENDOR_ITEM_REGULAR),
list("Toolkit", round(scale * 12), /obj/item/storage/firstaid/toolkit/empty, VENDOR_ITEM_REGULAR),

list("TOOLS", -1, null, null),
list("Blowtorch", round(scale * 4), /obj/item/tool/weldingtool, VENDOR_ITEM_REGULAR),
Expand Down
1 change: 0 additions & 1 deletion code/game/machinery/vending/vendor_types/requisitions.dm
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,6 @@
/obj/structure/machinery/cm_vending/sorted/attachments/populate_product_list(scale)
listed_products = list(
list("BARREL", -1, null, null),
list("Barrel Charger", round(scale * 2.5), /obj/item/attachable/heavy_barrel, VENDOR_ITEM_REGULAR),
list("Extended Barrel", round(scale * 6.5), /obj/item/attachable/extended_barrel, VENDOR_ITEM_REGULAR),
list("M5 Bayonet", round(scale * 10.5), /obj/item/attachable/bayonet, VENDOR_ITEM_REGULAR),
list("Recoil Compensator", round(scale * 6.5), /obj/item/attachable/compensator, VENDOR_ITEM_REGULAR),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,6 @@
/obj/structure/machinery/cm_vending/sorted/attachments/squad/populate_product_list(scale)
listed_products = list(
list("BARREL", -1, null, null),
list("Barrel Charger", round(scale * 0.9), /obj/item/attachable/heavy_barrel, VENDOR_ITEM_REGULAR),
list("Extended Barrel", round(scale * 2.5), /obj/item/attachable/extended_barrel, VENDOR_ITEM_REGULAR),
list("Recoil Compensator", round(scale * 2.5), /obj/item/attachable/compensator, VENDOR_ITEM_REGULAR),
list("Suppressor", round(scale * 2.5), /obj/item/attachable/suppressor, VENDOR_ITEM_REGULAR),
Expand Down
25 changes: 24 additions & 1 deletion code/game/objects/items/storage/firstaid.dm
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,22 @@
/obj/item/storage/firstaid/surgical/empty/fill_preset_inventory()
return

//---------TOOLKIT---------

/obj/item/storage/firstaid/toolkit
name = "toolkit"
desc = "An combat engineering toolkit intended to carry electrical and mechanical supplies into combat."
icon_state = "toolkit"
item_state = "fulton"

/obj/item/storage/firstaid/toolkit/update_icon()
if(content_watchers || !length(contents))
icon_state = "toolkit_empty"
else
icon_state = icon_full

/obj/item/storage/firstaid/toolkit/empty/fill_preset_inventory()
return

//---------SYRINGE CASE---------

Expand Down Expand Up @@ -265,7 +281,14 @@

/obj/item/storage/surgical_case
name = "surgical case"
desc = "It's a medical case for storing basic surgical tools."
desc = "It's a medical case for storing basic surgical tools. It comes with a brief description for treating common internal bleeds.\
\nBefore surgery: Verify correct location and patient is adequately numb to pain.\
\nStep one: Open an incision at the site with the scalpel.\
\nStep two: Clamp bleeders with the hemostat.\
\nStep three: Draw back the skin with the retracter.\
\nStep four: Patch the damaged vein with a surgical line.\
\nStep five: Close the incision with a surgical line."

icon_state = "surgical_case"
throw_speed = SPEED_FAST
throw_range = 8
Expand Down
8 changes: 4 additions & 4 deletions code/modules/asset_cache/asset_list_items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -205,10 +205,10 @@

/datum/asset/spritesheet/playtime_rank/register()
var/icon_file = 'icons/mob/hud/hud.dmi'
var/tier1_state = "hudxenoupgrade1"
var/tier2_state = "hudxenoupgrade2"
var/tier3_state = "hudxenoupgrade3"
var/tier4_state = "hudxenoupgrade4"
var/tier1_state = "hudxenoupgrade2"
var/tier2_state = "hudxenoupgrade3"
var/tier3_state = "hudxenoupgrade4"
var/tier4_state = "hudxenoupgrade5"

var/icon/tier1_icon = icon(icon_file, tier1_state, SOUTH)
var/icon/tier2_icon = icon(icon_file, tier2_state, SOUTH)
Expand Down
Loading

0 comments on commit a0d2178

Please sign in to comment.