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

Silicon Updates - AI Cores - Holograms - Borgs - On My! #65

Merged
merged 108 commits into from
Feb 19, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
30a0d9e
First Commit
Ossa88 Nov 19, 2024
76ca5f2
missed a comma
Ossa88 Nov 19, 2024
fd7c50e
Modularization of Custom AI Holograms
Ossa88 Nov 20, 2024
2dd4069
Modularized all cyborgs modulars into individual files.
Ossa88 Nov 20, 2024
669e602
forgot to readd the ninja_borg.dm
Ossa88 Nov 20, 2024
a6a1d42
formatting
Ossa88 Nov 20, 2024
e28a8cd
New Borg Object Icons
Ossa88 Nov 21, 2024
037200a
New Comment Block
Ossa88 Nov 21, 2024
30abfba
Cyborg Module for making borgs Ninjas - not placed or makable
Ossa88 Nov 21, 2024
b9a5656
Service Borg Part 1
Ossa88 Nov 21, 2024
1477a5d
Robot Upgrades Modularization - not enabled yet
Ossa88 Nov 21, 2024
c426ad5
More Service Borg Upgrades
Ossa88 Nov 22, 2024
2a62067
Fixed the Admin Borg Panel so my testing is easier
Ossa88 Nov 22, 2024
283a979
God damn random numpad press
Ossa88 Nov 22, 2024
3b15a0d
Readded shovel... will update picture later
Ossa88 Nov 22, 2024
66c3a66
All modules are in... just need to fix the bug.
Ossa88 Nov 22, 2024
b67dea0
Added Fische AI core
Ossa88 Nov 23, 2024
b5422b3
Typo in NuMeka that made sprite invisible
Ossa88 Nov 23, 2024
7b55c12
Split the numeka1 file into male and female sub files.
Ossa88 Nov 23, 2024
b04bfef
Moved all files into proper modularization structure.
Ossa88 Nov 23, 2024
dd23381
Added the Omni Tools to Engi, Med, Service
Ossa88 Nov 23, 2024
a36db08
readded razer and lighter..
Ossa88 Nov 23, 2024
c8ea7bc
readded TG items after requested. Found the rag.
Ossa88 Nov 23, 2024
f1e0c24
Updated some comments
Ossa88 Nov 23, 2024
2575cff
moved my files to prevent a TM conflict
Ossa88 Nov 23, 2024
925bd15
Engiborgs now have 3 omniarms
Ossa88 Nov 24, 2024
f762471
removed test code that wasnt required
Ossa88 Nov 24, 2024
0703283
created a science module sprite
Ossa88 Nov 24, 2024
8bfef86
added science borgs
Ossa88 Nov 24, 2024
b4abe17
science borgs added
Ossa88 Nov 24, 2024
11d5fbe
returns the old med borg tools until I can correct what went wrong in…
Ossa88 Nov 24, 2024
fea34d1
Corrects Omnitools having no force
Ossa88 Nov 24, 2024
3006ae8
Accidently edited a obj at a level higher than intended... corrected.
Ossa88 Nov 24, 2024
19c9507
Comment fix
Ossa88 Nov 25, 2024
e3a0a08
Science borg gets upgraded survey scanner
Ossa88 Nov 25, 2024
5115452
a single indent was missing.... changed the var names to be more unique.
Ossa88 Nov 25, 2024
4b0fb6f
Merge branch 'PentestSS13:master' into AI-Cores
Ossa88 Nov 25, 2024
514a115
Merge branch 'PentestSS13:master' into AI-Cores
Ossa88 Nov 25, 2024
da97a75
Refactor Code
Ossa88 Nov 27, 2024
5ca1c41
Pulled all the code out of robot_upgrades.dm
Ossa88 Nov 27, 2024
d8eb2c8
New Module Icons enabled.
Ossa88 Nov 27, 2024
cb30d50
Updated all the comment blocks
Ossa88 Nov 27, 2024
89ed0ba
these files were not supposed to get refactored.
Ossa88 Nov 27, 2024
ecda40c
corrected comment
Ossa88 Nov 27, 2024
8cea7c5
Did not realize the ash_plating was located inside the old module.dmi…
Ossa88 Nov 27, 2024
8a96905
Lots of Changes:
Ossa88 Nov 28, 2024
3f9f8b6
added missing sprite to janitor.dmi
Ossa88 Nov 28, 2024
3a86ba0
fixed again
Ossa88 Nov 28, 2024
7cdf127
Cyborg Model Selector Update:
Ossa88 Dec 2, 2024
44f5273
Cleans up the Admin Borg Panel by ignoring PKA upgrades for miner models
Ossa88 Dec 2, 2024
e061940
forgot cover open sprites for science borgos
Ossa88 Dec 2, 2024
5d394c6
Revert:
Ossa88 Dec 3, 2024
8634ae9
Merge branch 'PentestSS13:master' into AI-Cores
Ossa88 Dec 3, 2024
a71af66
New Modules for Science Borgs
Ossa88 Dec 3, 2024
7e4ccdd
Seems a change I wanted to push a while ago was never commited and I …
Ossa88 Dec 8, 2024
3aa4754
forgot to change search node id
Ossa88 Dec 8, 2024
7f51106
Merge branch 'PentestSS13:master' into AI-Cores
Ossa88 Dec 8, 2024
e41d3c2
This is just a test... remember to move these back to their proper or…
Ossa88 Dec 10, 2024
48d05be
Merge branch 'PentestSS13:master' into AI-Cores
Ossa88 Dec 14, 2024
e189d23
Corrects a flaw where ionthrusters when removed could still be turned…
Ossa88 Dec 25, 2024
377c582
New syndicate borg sprites from Frenjo
Ossa88 Jan 7, 2025
1d1e268
Merge branch 'PentestSS13:master' into AI-Cores
Ossa88 Jan 7, 2025
2704a4b
Merge branch 'PentestSS13:master' into AI-Cores
Ossa88 Jan 9, 2025
4f027d1
Global Proc Code Created
Ossa88 Jan 13, 2025
c7a1fcf
Comment change
Ossa88 Jan 13, 2025
a7d29cf
Removal of Botany Tools from Service Cyborg Start
Ossa88 Jan 13, 2025
c748cc8
Corrects issue where botany omni tools were not passing hydroponics c…
Ossa88 Jan 13, 2025
8356744
Removed old comment code
Ossa88 Jan 13, 2025
9ffca3e
Botany Omni Tool added to the techweb.
Ossa88 Jan 13, 2025
8d29f1c
redundant add/remove code optimized
Ossa88 Jan 13, 2025
d37c8e1
HighCap Light Replacer Cost Increased
Ossa88 Jan 13, 2025
cce2d4d
Adjusted code
Ossa88 Jan 13, 2025
13c7758
code cleanup
Ossa88 Jan 13, 2025
ff918a6
science borg gets spess knife now
Ossa88 Jan 13, 2025
006feb7
More science borg skins
Ossa88 Jan 13, 2025
e9a9672
Cleaned up clipboard paper printer code
Ossa88 Jan 13, 2025
9fa2c9e
code cleanup
Ossa88 Jan 13, 2025
5e39629
code cleanup
Ossa88 Jan 14, 2025
dd7795f
Added ability for cyborgs to drop things in their grabby hands.
Ossa88 Jan 14, 2025
89c3fed
PANDORA'S BOX ADDED
Ossa88 Jan 14, 2025
bec01d9
fix
Ossa88 Jan 14, 2025
b381584
fix plx
Ossa88 Jan 14, 2025
4a52081
Merge branch 'PentestSS13:master' into AI-Cores
Ossa88 Jan 14, 2025
38d746c
replaced files
Ossa88 Jan 14, 2025
0dee5d9
Merge branch 'AI-Cores' of https://github.com/Ossa88/PentestMain into…
Ossa88 Jan 14, 2025
0f8b4d6
final fix?
Ossa88 Jan 14, 2025
91242c0
Merge branch 'PentestSS13:master' into AI-Cores
Ossa88 Jan 20, 2025
6a0fa1e
added stock parts to the science borg apparatus
Ossa88 Jan 20, 2025
a5bffc1
Merge branch 'AI-Cores' of https://github.com/Ossa88/PentestMain into…
Ossa88 Jan 20, 2025
e24bbbb
Went ahead and swapped back the engi omnitool
Ossa88 Jan 22, 2025
5c6916e
science borgs get a emag module
Ossa88 Jan 22, 2025
78e9a0c
PANDORA gets an emag module
Ossa88 Jan 22, 2025
9aa0a20
Cyborg RPED added to pandora
Ossa88 Jan 22, 2025
5d82178
pandoras_box research added
Ossa88 Jan 22, 2025
82004f3
oppsie
Ossa88 Jan 22, 2025
8a087e9
Capitalization
Ossa88 Jan 22, 2025
167b3f2
Fixes research node not appearing.
Ossa88 Jan 22, 2025
7fd6dd6
Fix 3 year old bug with cyborg lamp sprite
Ossa88 Jan 23, 2025
c5c6e52
Updated Syndi Borg Loadouts
Ossa88 Jan 23, 2025
7f7760d
Adv med scanner for Medical/SyndMedical
Ossa88 Jan 25, 2025
4d1b0d4
LAyout design notes
Ossa88 Jan 25, 2025
6d2a192
Merge branch 'PentestSS13:master' into AI-Cores
Ossa88 Jan 26, 2025
d1f5a23
Merge branch 'PentestSS13:master' into AI-Cores
Ossa88 Feb 11, 2025
d1550c2
Merge branch 'PentestSS13:master' into AI-Cores
Ossa88 Feb 12, 2025
4702737
Merge branch 'PentestSS13:master' into AI-Cores
Ossa88 Feb 13, 2025
a14d846
Nested all robots changes into a single .dme
Ossa88 Feb 17, 2025
4c6cf79
Merge branch 'PentestSS13:master' into AI-Cores
Ossa88 Feb 18, 2025
3d00e4b
Service Borgies can now take care of fish friends
Ossa88 Feb 18, 2025
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
1 change: 1 addition & 0 deletions code/__DEFINES/tools.dm
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#define TOOL_SCALPEL "scalpel"
#define TOOL_SAW "saw"
#define TOOL_KNIFE "knife" //luv me kuh-nyfe
#define TOOL_CULTIVATOR "cultivator" // For Cyborg Botany Omni Tool Checks

// If delay between the start and the end of tool operation is less than MIN_TOOL_SOUND_DELAY,
// tool sound is only played when op is started. If not, it's played twice.
Expand Down
20 changes: 20 additions & 0 deletions code/_globalvars/lists/flavor_misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -112,13 +112,23 @@ GLOBAL_LIST_INIT(ai_core_display_screens, sortList(list(
"Alien",
"Angel",
"Banned",
"Bee",
"Borb",
"Boy",
"BoxFort",
"Bliss",
"Blue",
"Catamari",
"Cheese",
"Clown",
"Darkmatter",
"Database",
"Dorf",
"Firewall",
"Fische",
"Fox",
"Fuzzy",
"Girl",
"Gentoo",
"Glitchman",
"Gondola",
Expand All @@ -127,25 +137,35 @@ GLOBAL_LIST_INIT(ai_core_display_screens, sortList(list(
"HAL 9000",
"Heartline",
"Helios",
"Hotdog",
"House",
"Inverted",
"Lamp",
"Liz",
"Matrix",
"Monochrome",
"Murica",
"Nadburn",
"Nanotrasen",
"Not Malf",
"President",
"Random",
"Rainbow",
"Rainbowslime",
"RandomGod",
"Red",
"Red October",
"Static",
"Syndicat Meow",
"Text",
"Terminal",
"Tiger",
"Too Deep",
"Triumvirate",
"Triumvirate-M",
"Voiddonut",
"Vox",
"YesMan",
"Weird")))

/proc/resolve_ai_icon(input)
Expand Down
22 changes: 18 additions & 4 deletions code/modules/admin/verbs/borgpanel.dm
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,24 @@
"scrambledcodes" = borg.scrambledcodes
)
.["upgrades"] = list()
for (var/upgradetype in subtypesof(/obj/item/borg/upgrade)-/obj/item/borg/upgrade/hypospray) //hypospray is a dummy parent for hypospray upgrades
var/obj/item/borg/upgrade/upgrade = upgradetype
if (initial(upgrade.module_type) && !is_type_in_list(borg.module, initial(upgrade.module_type))) // Upgrade requires a different module
continue
var/list/excluded_upgrades = list(
/obj/item/borg/upgrade/hypospray, //hypospray is a dummy parent for hypospray upgrades
/obj/item/borg/upgrade/transform,
/obj/item/borg/upgrade/rename,
/obj/item/borg/upgrade/restart,
/obj/item/borg/upgrade/modkit,
)
for (var/upgradetype in subtypesof(/obj/item/borg/upgrade)-excluded_upgrades)
var/obj/item/borg/upgrade/upgrade = new upgradetype()
if(upgrade.model_type) // Only show upgrades that can be given. Cannot initial() lists either.
// is_type_in_list() doesn't work, so this:
var/has_req_module = FALSE
for(var/req_model_type in upgrade.model_type)
if(borg.module.type == req_model_type)
has_req_module = TRUE
break
if(!has_req_module)
continue
var/installed = FALSE
if (locate(upgradetype) in borg)
installed = TRUE
Expand Down
5 changes: 3 additions & 2 deletions code/modules/hydroponics/hydroponics.dm
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,7 @@
to_chat(user, examine_block(msg))
return

else if(istype(O, /obj/item/cultivator))
else if(istype(O, /obj/item/cultivator) || istype(O, /obj/item/borg/cyborg_omnitool/botany) && O.tool_behaviour == TOOL_CULTIVATOR)
if(weedlevel > 0)
user.visible_message("[user] uproots the weeds.", "<span class='notice'>You remove the weeds from [src].</span>")
weedlevel = 0
Expand All @@ -589,7 +589,7 @@
else if(default_unfasten_wrench(user, O))
return

else if(istype(O, /obj/item/shovel/spade))
else if(istype(O, /obj/item/shovel/spade || istype(O, /obj/item/borg/cyborg_omnitool/botany) && O.tool_behaviour == TOOL_SHOVEL))
if(!myseed && !weedlevel)
to_chat(user, "<span class='warning'>[src] doesn't have any plants or weeds!</span>")
return
Expand All @@ -607,6 +607,7 @@
desc = initial(desc)
weedlevel = 0 //Has a side effect of cleaning up those nasty weeds
update_appearance()

else if(istype(O, /obj/item/gun/energy/floragun))
var/obj/item/gun/energy/floragun/flowergun = O
if(flowergun.cell.charge < REVOLUTION_CHARGE) // In case an admin var edits the gun or guns gain the ability to have their cell upgraded
Expand Down
8 changes: 7 additions & 1 deletion code/modules/mob/living/silicon/ai/ai.dm
Original file line number Diff line number Diff line change
Expand Up @@ -676,7 +676,13 @@
"floating face" = 'icons/mob/ai.dmi',
"xeno queen" = 'icons/mob/alien.dmi',
"horror" = 'icons/mob/ai.dmi',
"clock" = 'icons/mob/ai.dmi'
"clock" = 'icons/mob/ai.dmi',
"holo-angel" = 'modular_pentest/modules/robots/icons/mob/aiholo.dmi',
"holo-borb" = 'modular_pentest/modules/robots/icons/mob/aiholo.dmi',
"holo-biggestfan" = 'modular_pentest/modules/robots/icons/mob/aiholo.dmi',
"holo-cloudkat" = 'modular_pentest/modules/robots/icons/mob/aiholo.dmi',
"holo-donut" = 'modular_pentest/modules/robots/icons/mob/aiholo.dmi',
"holo-frostphoenix" = 'modular_pentest/modules/robots/icons/mob/aiholo.dmi'
)

input = input("Please select a hologram:") as null|anything in sortList(icon_list)
Expand Down
5 changes: 3 additions & 2 deletions code/modules/mob/living/silicon/robot/robot.dm
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,8 @@
"Medical" = /obj/item/robot_module/medical, \
"Miner" = /obj/item/robot_module/miner, \
"Janitor" = /obj/item/robot_module/janitor, \
"Service" = /obj/item/robot_module/butler)
"Service" = /obj/item/robot_module/butler, \
"Science" = /obj/item/robot_module/science)
if(!CONFIG_GET(flag/disable_peaceborg))
modulelist["Peacekeeper"] = /obj/item/robot_module/peacekeeper
if(!CONFIG_GET(flag/disable_secborg))
Expand Down Expand Up @@ -450,7 +451,7 @@
if(stat != DEAD && !(HAS_TRAIT(src, TRAIT_KNOCKEDOUT) || IsStun() || IsParalyzed() || low_power_mode)) //Not dead, not stunned.
if(!eye_lights)
eye_lights = new()
if(lamp_intensity > 2)
if(lamp_enabled)
eye_lights.icon_state = "[module.special_light_key ? "[module.special_light_key]":"[module.cyborg_base_icon]"]_l"
else
eye_lights.icon_state = "[module.special_light_key ? "[module.special_light_key]":"[module.cyborg_base_icon]"]_e"
Expand Down
2 changes: 1 addition & 1 deletion code/modules/mob/living/silicon/robot/robot_defense.dm
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real
var/obj/item/borg/upgrade/U = W
if(!opened)
to_chat(user, "<span class='warning'>You must access the cyborg's internals!</span>")
else if(!src.module && U.require_module)
else if(!src.module && U.require_model)
to_chat(user, "<span class='warning'>The cyborg must choose a module before it can be upgraded!</span>")
else if(U.locked)
to_chat(user, "<span class='warning'>The upgrade is locked and cannot be used yet!</span>")
Expand Down
4 changes: 2 additions & 2 deletions code/modules/projectiles/guns/energy/kinetic_accelerator.dm
Original file line number Diff line number Diff line change
Expand Up @@ -272,8 +272,8 @@
icon = 'icons/obj/objects.dmi'
icon_state = "modkit"
w_class = WEIGHT_CLASS_SMALL
require_module = 1
module_type = list(/obj/item/robot_module/miner)
require_model = TRUE
model_type = list(/obj/item/robot_module/miner)
var/denied_type = null
var/maximum_of_type = 1
var/cost = 30
Expand Down
17 changes: 13 additions & 4 deletions code/modules/research/techweb/all_nodes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -340,9 +340,18 @@
display_name = "Cyborg Upgrades: Utility"
description = "Utility upgrades for cyborgs."
prereq_ids = list("adv_robotics")
design_ids = list("borg_upgrade_thrusters", "borg_upgrade_selfrepair", "borg_upgrade_expand", "borg_upgrade_disablercooler", "borg_upgrade_trashofholding", "borg_upgrade_advancedmop")
design_ids = list("borg_upgrade_thrusters", "borg_upgrade_selfrepair", "borg_upgrade_expand", "borg_upgrade_disablercooler")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000)
export_price = 5000
export_price = 4000

/datum/techweb_node/cyborg_upg_service
id = "cyborg_upg_service"
display_name = "Cyborg Upgrades: Janitor & Service"
description = "Upgrades for Service cyborgs."
prereq_ids = list("adv_robotics")
design_ids = list("borg_upgrade_trashofholding", "borg_upgrade_advancedmop", "borg_upgrade_plunger", "borg_upgrade_high_capacity_replacer", "borg_upgrade_broomer", "borg_upgrade_botany", "borg_upgrade_drink_apparatus", "borg_upgrade_rolling_table", "borg_upgrade_service_apparatus", "borg_upgrade_silicon_knife", "borg_upgrade_condiment_synthesizer")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000)
export_price = 4000

/datum/techweb_node/cyborg_upg_engiminer
id = "cyborg_upg_engiminer"
Expand All @@ -358,7 +367,7 @@
display_name = "Cyborg Upgrades: Medical"
description = "Medical upgrades for cyborgs."
prereq_ids = list("adv_biotech")
design_ids = list("borg_upgrade_defibrillator", "borg_upgrade_piercinghypospray", "borg_upgrade_expandedsynthesiser", "borg_upgrade_pinpointer", "borg_upgrade_surgicalprocessor", "borg_upgrade_beakerapp")
design_ids = list("borg_upgrade_defibrillator", "borg_upgrade_piercinghypospray", "borg_upgrade_expandedsynthesiser", "borg_upgrade_pinpointer", "borg_upgrade_surgicalprocessor", "borg_upgrade_beakerapp", "borg_upgrade_advancedmedscan")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000)
export_price = 5000

Expand All @@ -369,7 +378,7 @@
prereq_ids = list("adv_robotics")
design_ids = list("aifixer", "aicore", "safeguard_module", "onehuman_module", "protectstation_module", "quarantine_module", "oxygen_module", "freeform_module",
"reset_module", "purge_module", "remove_module", "freeformcore_module", "asimov_module", "paladin_module", "tyrant_module", "overlord_module", "corporate_module",
"default_module", "borg_ai_control", "mecha_tracking_ai_control", "aiupload", "intellicard")
"default_module", "borg_ai_control", "mecha_tracking_ai_control", "aiupload", "intellicard", "borg_upgrade_survey_scanner")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000

Expand Down
Binary file modified icons/mob/ai.dmi
Binary file not shown.
Binary file modified icons/obj/janitor.dmi
Binary file not shown.
28 changes: 28 additions & 0 deletions modular_pentest/master_files/code/game/pentest_proc.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/*

Purpose of modularization:
Located here are custom created proc code that is not bound to any particular
Pentest submodule.

Editing code here could have drastic effects to downstream code.area

- Ossa


*/


/**
* Returns the atom(either itself or an internal module) that will interact/attack the target on behalf of us
* For example an object can have different `tool_behaviours` (e.g borg omni tool) but will return an internal reference of that tool to attack for us
* You can use it for general purpose polymorphism if you need a proxy atom to interact in a specific way
* with a target on behalf on this atom
*
* Currently used only in the object melee attack chain but can be used anywhere else or even moved up to the atom level if required
*/

// modular_pentest/master_files/code/game/_robot_omnitool.dm
/obj/item/proc/get_proxy_attacker_for(atom/target, mob/user)
RETURN_TYPE(/obj/item)

return src
Loading