Skip to content
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

Upstream Merge the Squeakquel #195

Merged
merged 15 commits into from
Jan 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 18 additions & 2 deletions _maps/virtual_domains/ancientmilsim_nova.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,10 @@
/obj/effect/landmark/bitrunning/curiosity_spawn,
/turf/open/floor/grass/fairy,
/area/virtual_domain/protected_space/ancient_milsim)
"ds" = (
/obj/item/stack/sheet/mineral/sandbags/fifty,
/turf/open/misc/grass/planet/ancient_milsim,
/area/virtual_domain/ancient_milsim/loot_camp)
"dB" = (
/obj/effect/landmark/bitrunning/curiosity_spawn,
/turf/open/misc/dirt/planet,
Expand Down Expand Up @@ -494,6 +498,9 @@
/obj/item/ammo_box/magazine/c35sol_pistol/stendo,
/obj/item/ammo_box/magazine/c35sol_pistol/stendo,
/obj/item/ammo_box/magazine/lanca,
/obj/item/minespawner/ancient_milsim,
/obj/item/minespawner/ancient_milsim,
/obj/item/minespawner/ancient_milsim,
/turf/open/floor/iron/dark,
/area/virtual_domain/ancient_milsim/loot_camp)
"ob" = (
Expand All @@ -510,6 +517,7 @@
/turf/open/floor/plating,
/area/virtual_domain/ancient_milsim/maintenance)
"ol" = (
/obj/item/automatic_turret_folded,
/turf/open/floor/iron/dark,
/area/virtual_domain/ancient_milsim/carrier)
"or" = (
Expand Down Expand Up @@ -1078,6 +1086,10 @@
/obj/item/storage/medkit/frontier/stocked,
/turf/open/floor/iron/white,
/area/virtual_domain/ancient_milsim/medbay)
"Cj" = (
/obj/item/storage/barricade,
/turf/open/floor/iron/dark,
/area/virtual_domain/ancient_milsim/loot_camp)
"Cr" = (
/obj/structure/chair/office/light{
dir = 4
Expand Down Expand Up @@ -1531,6 +1543,7 @@
/area/virtual_domain/ancient_milsim/carrier)
"My" = (
/obj/structure/table,
/obj/item/storage/barricade,
/turf/open/floor/iron/dark,
/area/virtual_domain/ancient_milsim/loot_camp)
"Mz" = (
Expand Down Expand Up @@ -1743,6 +1756,9 @@
/obj/item/ammo_box/magazine/c35sol_pistol/stendo,
/obj/item/ammo_box/magazine/c35sol_pistol/stendo,
/obj/item/stock_parts/matter_bin/super,
/obj/item/minespawner/ancient_milsim,
/obj/item/minespawner/ancient_milsim,
/obj/item/minespawner/ancient_milsim,
/turf/open/floor/iron/dark,
/area/virtual_domain/ancient_milsim/loot_camp)
"RC" = (
Expand Down Expand Up @@ -4183,7 +4199,7 @@ Uz
"}
(38,1,1) = {"
Uz
Vl
ds
Vl
Vl
TG
Expand Down Expand Up @@ -4360,7 +4376,7 @@ Uz
TQ
bB
bB
ki
Cj
vQ
ki
Ww
Expand Down
2 changes: 1 addition & 1 deletion code/modules/hydroponics/grown/cannabis.dm
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@
product = /obj/item/food/grown/cannabis/ultimate
genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/glow/green, /datum/plant_gene/trait/modified_volume/omega_weed)
mutatelist = null
reagents_add = list(/datum/reagent/drug/thc = 0.3, //NOVA EDIT CHANGE - MORE NARCOTICS - ORIGINAL: reagents_add = list(/datum/reagent/drug/cannabis = 0.3,
reagents_add = list(/datum/reagent/drug/thc = 0.3, // NOVA EDIT CHANGE - MORE NARCOTICS - ORIGINAL: reagents_add = list(/datum/reagent/drug/cannabis = 0.3,
/datum/reagent/toxin/mindbreaker = 0.3,
/datum/reagent/mercury = 0.15,
/datum/reagent/lithium = 0.15,
Expand Down
16 changes: 16 additions & 0 deletions html/changelogs/archive/2024-12.yml
Original file line number Diff line number Diff line change
Expand Up @@ -932,3 +932,19 @@
in a consumer grade battery recharger, these atmos blocking, aesthetically pleasing,
and now superconductivity insulators can be made by the average crewmember if
they follow the easy to follow 32 steps!
2024-12-30:
Stalkeros:
- rscadd: Three new Ancient MilSim DLC loadouts have been added. Go try them all!
- qol: Ancient MilSim DLC loadouts now show the general rundown of their abilities
in the crate name, consequently the spawner beacon too.
- balance: In general, it should be easier for bitrunners to defend themselves in
Ancient MilSim, thanks to numerous scattered barricades and landmines.
- balance: In general, it should also be easier for SNPCs to defend themselves in
Ancient MilSim, too, thanks to the fully automatic mounted machine gun.
- balance: Similarly vague item/spell reshuffle has been done for bitrunning disks
and abilities.
- bugfix: Scream For Me can now actually be used.
- qol: If you are to select a random name as a Syndicate Assault ghost role, -Cybersun
Counter-Bitrunner-, you'll get a random bitrunning alias instead of your own.
- balance: Cybersun Counter-Bitrunners can become immune to spells, on demand.
- code_imp: General code cleanup of several Ancient MilSim-related things.
14 changes: 14 additions & 0 deletions html/changelogs/archive/2025-01.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
2025-01-01:
vinylspiders:
- bugfix: hash can now be created again by grinding dried cannabis leaves in a grinder
or with a mortar and pestle
2025-01-02:
CoiledLamb, JohnFulpWillard, Ebin-Halcyon, axietheaxolotl, sergeirocks100:
- image: The coroner's scrubs and jumpsuit now have digitigrade sprites.
RatFromTheJungle:
- qol: made previously required experiments into discounts for a majority of the
tech-web, pretty much everything but alien tech, surgeries (to keep the coroners
job safe,) fishing, and illegal tech.
2025-01-04:
somenetwork:
- rscadd: Donation reward for bonkaitheroris
Binary file not shown.
Binary file not shown.
Binary file modified modular_nova/master_files/icons/mob/clothing/under/medical.dmi
Binary file not shown.
Binary file not shown.
Binary file modified modular_nova/master_files/icons/obj/plushes.dmi
Binary file not shown.
34 changes: 34 additions & 0 deletions modular_nova/modules/bitrunning/code/anchor.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/obj/item/domain_anchor
name = "domain connection anchor"
desc = "A disposable tablet with a set of programs and utilities meant to stabilize the local square meter of domain infospace for new connections to be hopefully-safe. <br>\
In layman's terms, this creates additional bitrunning spawn points."
icon = 'modular_nova/modules/bitrunning/icons/remote.dmi'
icon_state = "delivery_running"

/obj/item/domain_anchor/examine(mob/user)
. = ..()
. += span_notice("Use in-hand to create a new spawn point.")

/obj/item/domain_anchor/attack_self(mob/user, modifiers)
for(var/obj/machinery/quantum_server/server in SSmachines.get_machines_by_type(/obj/machinery/quantum_server))
server.exit_turfs += get_turf(src)
server.retries_spent -= 1
server.threat += 1
server.radio.talk_into(src, "Potential secure datastream detected. Locking on the new spawn point.", RADIO_CHANNEL_SUPPLY)
new /obj/effect/landmark/bitrunning/domain_anchor(drop_location())
user.balloon_alert(user, "connection stabilized!")
qdel(src)

/obj/effect/landmark/bitrunning/domain_anchor
name = "anchored secure connection"
desc = "Highly stable connection protocol, and consequentially a trojan, used by bitrunners during attacks on high-value targets when numbers are key and \
just three attempts aren't enough.<br>\
In several seconds it will merge itself with the code, becoming nigh-invisible to any means of detection."
icon = 'icons/effects/effects.dmi'
icon_state = "curse"
invisibility = INVISIBILITY_NONE

/obj/effect/landmark/bitrunning/domain_anchor/Initialize(mapload)
. = ..()
animate(src, alpha = 0, 10 SECONDS)
QDEL_IN(src, 10 SECONDS)
31 changes: 24 additions & 7 deletions modular_nova/modules/bitrunning/code/disks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
/datum/action/cooldown/spell/shapeshift/minor_illusion,
/datum/action/cooldown/spell/conjure_item/fire,
/datum/action/cooldown/spell/conjure_item/water,
/datum/action/cooldown/spell/conjure/cheese,
)

/obj/item/bitrunning_disk/item/tier0
Expand Down Expand Up @@ -70,7 +71,7 @@
/datum/orderable_item/bitrunning_tech/ability_tier0
cost_per_order = 350
purchase_path = /obj/item/bitrunning_disk/ability/tier0
desc = "This disk contains a program that lets you cast Minor Illusion, Conjure Presents!, Produce Flame, or Produce Water."
desc = "This disk contains a program that lets you cast Minor Illusion, Summon Cheese, Produce Flame, or Produce Water."

/datum/orderable_item/bitrunning_tech/item_tier0
cost_per_order = 350
Expand All @@ -81,6 +82,7 @@
. = ..()
selectable_items += list(
/obj/item/storage/belt/military,
/obj/item/book_of_babel,
)

/obj/item/bitrunning_disk/item/tier2/Initialize(mapload)
Expand All @@ -90,40 +92,55 @@
)
selectable_items += list(
/obj/item/storage/toolbox/guncase/clandestine,
/obj/item/autosurgeon/syndicate/hackerman,
/obj/item/autosurgeon/syndicate/hackerman/bitrunning,
/obj/item/clothing/head/helmet,
/obj/item/melee/energy/sword/saber/blue,
/obj/item/shield/energy,
/obj/item/storage/medkit/expeditionary/surplus,
)

/obj/item/autosurgeon/syndicate/hackerman/bitrunning
name = "hacking arm implanter"

/obj/item/bitrunning_disk/item/tier3/Initialize(mapload)
. = ..()
selectable_items -= list(
/obj/item/gun/energy/e_gun/nuclear,
)
selectable_items += list(
/obj/item/autosurgeon/syndicate/nodrop,
/obj/item/domain_anchor,
/obj/item/autosurgeon/syndicate/nodrop/bitrunning,
/obj/item/gun/energy/modular_laser_rifle,
/obj/item/storage/belt/holster/energy/nanite,
/obj/item/minigunpack,
)

/obj/item/autosurgeon/syndicate/nodrop/bitrunning
name = "anti-drop implanter"

/obj/item/bitrunning_disk/ability/tier1/Initialize(mapload)
. = ..()
selectable_actions += list(
/datum/action/cooldown/spell/touch/lay_on_hands,
/datum/action/cooldown/spell/conjure/flare,
)
selectable_actions -= list(
/datum/action/cooldown/spell/conjure/cheese,
)

/obj/item/bitrunning_disk/ability/tier2/Initialize(mapload)
. = ..()
selectable_actions += list(
/datum/action/cooldown/adrenaline,
/datum/action/cooldown/spell/charge,
/datum/action/cooldown/mob_cooldown/dash,
/datum/action/cooldown/spell/touch/scream_for_me,
/datum/action/cooldown/spell/touch/scream_for_me/bitrunning,
)

/datum/action/cooldown/spell/touch/scream_for_me/bitrunning
name = "Unshackled Scream For Me"
spell_requirements = SPELL_REQUIRES_NO_ANTIMAGIC

/obj/item/bitrunning_disk/ability/tier3/Initialize(mapload)
. = ..()
selectable_actions += list(
Expand All @@ -148,13 +165,13 @@
desc = "This disk contains a program that lets you equip a luxury medipen, a pistol case, an armour vest, a helmet, an energy sword, an expeditionary medkit, or a hacker implant."

/datum/orderable_item/bitrunning_tech/item_tier3
desc = "This disk contains a program that lets you equip a Hyeseong laser rifle, a laser minigun pack, a nanite pistol holster, a dual bladed energy sword, a minibomb, or an anti-drop implanter."
desc = "This disk contains a program that lets you equip a domain connection anchor, Hyeseong laser rifle, a laser minigun pack, a nanite pistol holster, a dual bladed energy sword, a minibomb, or an anti-drop implanter."

/datum/orderable_item/bitrunning_tech/ability_tier1
desc = "This disk contains a program that lets you cast Summon Cheese, Summon Light Source, Lesser Heal, or Mending Touch."
desc = "This disk contains a program that lets you cast Summon Light Source, Lesser Heal, or Mending Touch."

/datum/orderable_item/bitrunning_tech/ability_tier2
desc = "This disk contains a program that lets you cast Fireball, Lightning Bolt, Scream For Me, Forcewall, Adrenaline Rush, Dash, or Charge Item."
desc = "This disk contains a program that lets you cast Fireball, Lightning Bolt, Unshackled Scream For Me, Forcewall, Adrenaline Rush, Dash, or Charge Item."

/datum/orderable_item/bitrunning_tech/ability_tier3
desc = "This disk contains a program that lets you shapeshift into a lesser ashdrake, a polar bear, a holy juggernaut, or a holy wraith; or cast Death Loop."
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
/obj/item/choice_beacon/ancient_milsim
name = "early access equipment beacon"
desc = "Summon a gear closet for your contributions in the early access testing. Synchronises with the current game version to give you the most up-to-date class equipment."
icon = 'modular_nova/modules/bitrunning/icons/remote.dmi'
icon_state = "delivery_dlc"
company_source = "'Time Of Valor 2' development team"
company_message = span_bold("Thanks, and have fun!")

Expand All @@ -12,41 +14,65 @@
gear_options[initial(crate.name)] = crate
return gear_options

/obj/structure/closet/crate/secure/weapon/milsim
desc = "(ToV 2 Playtester Reward) UNIF Counter-Insurgency Detachment bundle: featuring equipment provided to field operators in medium-intensity firefights. <br>\
'VCIM (Void Combat Identification Measures) camo' Skin (Alt 1/Strobeless, Opaque Glass)."

/obj/structure/closet/crate/secure/weapon/milsim/PopulateContents()
. = ..()
new /obj/item/knife/combat(src)
new /obj/item/gun/energy/modular_laser_rifle/carbine(src)
new /obj/item/radio/headset/headset_faction(src)

/obj/structure/closet/crate/secure/weapon/milsim/after_open()
qdel(src)

/obj/structure/closet/crate/secure/weapon/milsim/mechanic
name = "mechanic loadout crate"
name = "mechanic (abductor toolbelt/cable coil dispenser/medHUD)"

/obj/structure/closet/crate/secure/weapon/milsim/mechanic/PopulateContents()
. = ..()
new /obj/item/knife/combat(src)
new /obj/item/gun/energy/modular_laser_rifle/carbine(src)
new /obj/item/mod/control/pre_equipped/responsory/milsim_mechanic(src)
new /obj/item/mod/control/pre_equipped/responsory/milsim/mechanic(src)

/obj/structure/closet/crate/secure/weapon/milsim/marksman
name = "marksman loadout crate"
name = "marksman (barricade box/throwing knife dispenser/NVG-sonar)"

/obj/structure/closet/crate/secure/weapon/milsim/marksman/PopulateContents()
. = ..()
new /obj/item/knife/combat(src)
new /obj/item/gun/energy/modular_laser_rifle/carbine(src)
new /obj/item/mod/control/pre_equipped/responsory/milsim_marksman(src)
new /obj/item/mod/control/pre_equipped/responsory/milsim/marksman(src)

/obj/structure/closet/crate/secure/weapon/milsim/medic
name = "medic loadout crate"
name = "medic (combat hypospray/combat hypovials dispenser/medHUD)"

/obj/structure/closet/crate/secure/weapon/milsim/medic/PopulateContents()
. = ..()
new /obj/item/knife/combat(src)
new /obj/item/gun/energy/modular_laser_rifle/carbine(src)
new /obj/item/mod/control/pre_equipped/responsory/milsim_medic(src)
new /obj/item/mod/control/pre_equipped/responsory/milsim/medic(src)

/obj/structure/closet/crate/secure/weapon/milsim/trapper
name = "trapper loadout crate"
name = "trapper (chameleon projector/stealth landmine dispenser/thermals)"

/obj/structure/closet/crate/secure/weapon/milsim/trapper/PopulateContents()
. = ..()
new /obj/item/knife/combat(src)
new /obj/item/gun/energy/modular_laser_rifle/carbine(src)
new /obj/item/mod/control/pre_equipped/responsory/milsim_trapper(src)
new /obj/item/mod/control/pre_equipped/responsory/milsim/trapper(src)

/obj/structure/closet/crate/secure/weapon/milsim/saboteur
name = "saboteur (Binyat implanter/EMP grenade dispenser/material scanner-mesons)"

/obj/structure/closet/crate/secure/weapon/milsim/saboteur/PopulateContents()
. = ..()
new /obj/item/clothing/glasses/material(src)
new /obj/item/mod/control/pre_equipped/responsory/milsim/saboteur(src)

/obj/structure/closet/crate/secure/weapon/milsim/sentinel
name = "sentinel (heavy machinegun/burger dispenser/NVG-sonar)"

/obj/structure/closet/crate/secure/weapon/milsim/sentinel/PopulateContents()
. = ..()
new /obj/item/mod/control/pre_equipped/responsory/milsim/sentinel(src)

/obj/structure/closet/crate/secure/weapon/milsim/trooper
name = "trooper (Sol rifle/Sol rifle magazine dispenser/NVG-sonar)"

/obj/structure/closet/crate/secure/weapon/milsim/trooper/PopulateContents()
. = ..()
new /obj/item/mod/control/pre_equipped/responsory/milsim/trooper(src)
Loading
Loading