mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-02-09 15:59:24 +00:00
ba5c112a86bb2845df830df81d59cd54ca8ac99f
69 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
ba5c112a86 |
Huge Mirror fixes (#27488)
* Fixes incorrect operator usage in mecha code (#82570) ## About The Pull Request I completely screwed up and told the original PR author of #82415 ( |
||
|
|
59d74624b1 |
Upstream power stuff combined and shit (#27284)
* Converts arbitrary energy units to the joule. Fixes conservation of energy issues relating to charging cells. (#81579) Removes all arbitrary energy and power units in the codebase. Everything is replaced with the joule and watt, with 1 = 1 joule, or 1 watt if you are going to multiply by time. This is a visible change, where all arbitrary energy units you see in the game will get proper prefixed units of energy. With power cells being converted to the joule, charging one joule of a power cell will require one joule of energy. The grid will now store energy, instead of power. When an energy usage is described as using the watt, a power to energy conversion based on the relevant subsystem's timing (usually multiplying by seconds_per_tick or applying power_to_energy()) is needed before adding or removing from the grid. Power usages that are described as the watt is really anything you would scale by time before applying the load. If it's described as a joule, no time conversion is needed. Players will still read the grid as power, having no visible change. Machines that dynamically use power with the use_power() proc will directly drain from the grid (and apc cell if there isn't enough) instead of just tallying it up on the dynamic power usages for the area. This should be more robust at conserving energy as the surplus is updated on the go, preventing charging cells from nothing. APCs no longer consume power for the dynamic power usage channels. APCs will consume power for static power usages. Because static power usages are added up without checking surplus, static power consumption will be applied before any machine processes. This will give a more truthful surplus for dynamic power consumers. APCs will display how much power it is using for charging the cell. APC cell charging applies power in its own channel, which gets added up to the total. This will prevent invisible power usage you see when looking at the power monitoring console. After testing in MetaStation, I found roundstart power consumption to be around 406kW after all APCs get fully charged. During the roundstart APC charge rush, the power consumption can get as high as over 2MW (up to 25kW per roundstart APC charging) as long as there's that much available. Because of the absurd potential power consumption of charging APCs near roundstart, I have changed how APCs decide to charge. APCs will now charge only after all other machines have processed in the machines processing subsystem. This will make sure APC charging won't disrupt machines taking from the grid, and should stop APCs getting their power drained due to others demanding too much power while charging. I have removed the delays for APC charging too, so they start charging immediately whenever there's excess power. It also stops them turning red when a small amount of cell gets drained (airlocks opening and shit during APC charge rush), as they immediately become fully charged (unless too much energy got drained somehow) before changing icon. Engineering SMES now start at 100% charge instead of 75%. I noticed cells were draining earlier than usual after these changes, so I am making them start maxed to try and combat that. These changes will fix all conservation of energy issues relating to charging powercells. Closes #73438 Closes #75789 Closes #80634 Closes #82031 Makes it much easier to interface with the power system in the codebase. It's more intuitive. Removes a bunch of conservation of energy issues, making energy and power much more meaningful. It will help the simulation remain immersive as players won't encounter energy duplication so easily. Arbitrary energy units getting replaced with the joule will also tell people more meaningful information when reading it. APC charging will feel more snappy. 🆑 fix: Fixes conservation of energy issues relating to charging powercells. qol: APCs will display how much power they are using to charge their cell. This is accounted for in the power monitoring console. qol: All arbitrary power cell energy units you see are replaced with prefixed joules. balance: As a consequence of the conservation of energy issues getting fixed, the power consumption for charging cells is now very significant. balance: APCs only use surplus power from the grid after every machine processes when charging, preventing APCs from causing others to discharge while charging. balance: Engineering SMES start at max charge to combat the increased energy loss due to conservation of energy fixes. /🆑 --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> * Corrects Suit Storage Unit charge rate (#82192) ## About The Pull Request Adjusts SSU charge rate according to the new conversion ratio. Betcha didn't know SSUs recharge suit and MOD cells? This number is actually supposed to be equal to the rate a recharger station does it. I don't know if we have some macro for it. ## Changelog 🆑 Melbert fix: Fixed Suit Storage Unit cell charging rate /🆑 * Corrects EVA thermal regulator cell cost (#82195) ## About The Pull Request Another unit not converted to watts / joules ## Changelog 🆑 Melbert fix: Fixed space suit thermal regulators cell usage. /🆑 * Fixing cell power usage (Part 1) (#82197) ## About The Pull Request Yeah i am not about to create 30 different PR's to address 1 issue at a time. The changes are small enough to be grouped together in bulk. This fixes the following issues specified in #82196 - Borg & exosuit RCD (Fixes #82193) - Motorized wheelchair - Canister shielding - Electrolyser - Potato cell - Space heater - Microwave ## Changelog 🆑 fix: Fixed cell energy usage for a bunch of stuff(Part 1). See PR 82197 for details /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * Fixing cell power usage (Part 2) (#82198) ## About The Pull Request Continuation of #82197. Fixes these issues in #82196 - Cyborg self repair - Cyborg lollipop dispenser - Mauna mug - Plasma cutter (Initial charge not the number of laser shots so partial fix) ## Changelog 🆑 fix: Fixed more energy usages for cells(Part 2). See PR 82198 for details /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * Fixing cell power usage (Part 3) (#82204) ## About The Pull Request Continuation of #82198 Fixes these issues in #82196 - Borg hypo spray - Borg projectile dampen - Borg chameleon - Firelance - MODlink scryer - Emergency light usage ## Changelog 🆑 fix: Fixed more energy usages for cells(Part 3). See PR 82204 for details /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * [NO GBP]Fixes static power usage not always drawing the remaining energy of an APC cell. (#82205) ## About The Pull Request Makes APC static power draw consume the remaining energy of the cell if there's not enough energy. ## Why It's Good For The Game Prevents a niche issue where an area composed entirely of static power users with no dynamic users from running forever with no power supply. ## Changelog 🆑 fix: Fixes static power usage from being able to not draw power. /🆑 * Fixes recharge stations charge rates (#82191) ## About The Pull Request - Fixes #82190 Have to now use the assigned constants and not magic number `10000`. Also stuff will take the exact charge needed without any wastage. ## Changelog 🆑 fix: recharge stations draw the same amount of power as before but directly from grid(without using apc cell power) and won't waste any excess power /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * Fixes space heater power usage (#82208) ## About The Pull Request Related to https://github.com/tgstation/tgstation/issues/82196 fixes the space heater power cell usage relating to power per tile heated. Space heater calculates the amount of power required to heat a tile, but only uses power at the end of the processing loop. Fixes so the power consumption matches the calculated usage per tile. Reverts changes to space heater power efficiency in https://github.com/tgstation/tgstation/pull/82197 that causes the heater to instantly drain the cell. Fixes https://github.com/tgstation/tgstation/issues/82228 ## Changelog 🆑 LT3 fix: Fixes Schrödinger's space heater, where a space heater both consumes a power cell instantly while also not consuming power when heating adjacent tiles /🆑 * General maintenance for reagent grinder (#82161) ## About The Pull Request **1. Qol** - Adds examines & screentips for screwdriver, crowbar & wrench acts. - Adds examines & screentips for inserting, replacing & removing beaker, Also for inserting items from bags or directly - Adds an off icon overlay for when the reagent grinder is either screwed open or loses power, **2. Code Improvements** - Replaced `attackby()` with `item_interaction()` so we can end the attack chain early for non combat operations like inserting beakers/ ingredients for grinding etc. - Removed custom shake animations & replaced it with the global `Shake()` proc cause it did the same thing - Removed constructed version of reagent grinder. We instead just check `mapload` to see if we need the beaker to be created or not for round start reagent grinders - Grinding & Juicing use the same `operate_for()` rather than having seperate procs for each operation - Removed trait `TRAIT_MAY_CONTAIN_BLENDED_DUST`. Why do we have this? Its just used to change the grinder description to warn it may contain dust. It's a waste. **3. Fixes** - You cannot insert hologram items into the grinder. Rather than destroying that item & making it vanish you simply won't be allowed to put it inside the grinder so you can save that item - You can hit the grinder with items like screwdriver, wrench, crowbar, beaker & even with stuff you would normally put in the grinder when in combat mode - Adds `can_interact()` checks for using the UI & other stuff - Fixes #46356. All items of type `obj/item/grown` can be put from any bag into the grinder - The item "and its contents" are now grinded/juiced recursively to get all the reagents it has to offer just like a real grinder would - An AI/Human with AI access examining the reagent grinder now actually works. **4. Refactors** - The grinder now measures its available capacity based on the "total weight" of all items present & not its number. This is more realistic because the grinder has limited space inside & so inserting huge items should have greater impact rather than deciding on an arbitrary number like 10(The grinder having the capacity for 10 items of any size inside its small compartment makes no sense). Examines are displayed to show how much capacity of the grinder has been filled. Upgrading the grinder with better matter bins will allow for higher storage capacities. - Total power consumed is measured based on the duration & weight of all items grinded cause you know its realistic. 🆑 qol: adds examines & screentips for tool acts & other operations for reagent grinder qol: adds an off icon for when the grinder panel is open/not powered code: auto docs vars & procs. Shared common proc for grinding or juicing code: removed trait for blended dust, changed some item interactions to end the attack chain early & save time fix: no inserting hologram items into the reagent grinder fix: you can hit the reagent grinder tools like screwdriver, wrench, crowbar & even beakers/ingredients etc when in combat mode fix; adds sanity checks for when & how mobs interact with the reagent grinder fix: examining a reagent grinder by an AI/Human with AI access now actually works. fix: you can insert Nova flowers & other food items from any bag type fix: reagent grinder now grinds all the contents of an item recursively to produce maximum reagents like a real grinder would refactor: reagent grinder now measures available capacity to store items as total weight of stored items & not number. Capacity can be increased with upgraded matter bin refactor: reagent grinder power usage is now a function of duration & total weight of items blended, meaining blending more number of items/larger items will consume more power refactor: reagent grinder code has been optimized overall. Report bugs on github /🆑 --------- Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk> * Suit Storage Units / Inducers can charge MODsuits without necessitating them be screwdrivered opened (#82194) ## About The Pull Request So MODsuits do this thing here with `get_cell` in that they don't return anything when they're closed  And I... can't tell why they do this. I looked through every use of `get_cell` and the only things affected by this are A. Suit Storage Units, which I believe have always been intended to charge MODsuits? and B. Inducers So I removed the `open` check. Allowing both Inducers and Suit Storage Units to charge mods without needing you screwdriver their panel open first. I also took the opportunity to allow SSUs to charge multiple items at once (divvying charge accross all items) ## Why It's Good For The Game I asked Fikou and they said it was "probably not" intended that you need to screwdriver them open so yeah. I think I remember charging my MODs during the original test merges years back but I can't remember if I opened the suit first when I did or not. Either way, it's not super intuitive. Though it's already not very intuitive that SSUs charge things. ## Changelog 🆑 Melbert qol: Suit Storage Units charge MODsuits while their cell panel is closed or open, rather than only when screwed open qol: Inducers can charge MODsuits while their cell panel is closed or open, rather than only when screwed open qol: Suit Storage Units will charge all items within simultaneously (if possible) /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * Fixes modular computer boot-up (#82254) ## About The Pull Request Fixes a bug where modular computers (specifically PDAs) will fail to start up if there is zero required application power draw. PDA will now consume base active power usage during startup. Related https://github.com/tgstation/tgstation/issues/82196 Fixes https://github.com/tgstation/tgstation/issues/82245 Fixes https://github.com/tgstation/tgstation/issues/82229 ## Changelog 🆑 LT3 fix: Fixed modular computers failing to boot up using cell power (eg: contractor tablet) /🆑 * Fixing cell power usage (Part 4) (#82227) ## About The Pull Request Continuation of #82204 Fixes these issues in #82196 - Cyborg Electroadaptive Pseudocircuit - Defib EMP - Cell EMP - `/datum/action/cooldown/mob_cooldown/charge_apc` stuff - Mecha movement, melee, light ,weapon & tool energy drains - Ninja drain ## Changelog 🆑 fix: Fixed more energy usages for cells(Part 4). See PR 82227 for details /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * Fixing cell power usage (Part 5) (#82296) ## About The Pull Request Continuation of #82227 Fixes these issues in https://github.com/tgstation/tgstation/issues/82196 and others that weren't noticed. - Batton emp protection - Cyborg stun arm - Cyborg energy sword - Cyborg hug attack - Mechanical god religious sect charge check - Mecha fixes - Phasing energy drain - Short circuit energy drain - Durand shield damage energy drain - Plasma engine recharge rate - Mechbay recharge power rate - Recharge station charge rate Stuff that was already working & didn't require fixing. - Plasma cutter energy shots - Botany cell charging ## Changelog 🆑 fix: Fixed cell energy usage for a bunch of stuff(Part 5). See PR 82296 for details /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * Ties power limit of anchored circuits to 20 * standard cell charge to make it consistent with power changes. (#82287) ## About The Pull Request It just makes the power requirement 20 * standard cell charge instead of 20000 ## Why It's Good For The Game This is too restrictive to make anything with. https://github.com/tgstation/tgstation/assets/62126254/e39dcf27-8793-42b0-84a0-7f747e95efcc ## Changelog 🆑 fix: anchored circuits no longer blow up after 2 components are used. /🆑 --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> * Space heater power and heating tweaks (#82344) ## About The Pull Request - Fixes #82342 - Space heater computes total power for heating adjacent turfs and uses cell energy once rather multiple times per turf - Improvised space heater actually works & uses beaker heat capacity and not a constant of 200 for heating beaker contents ## Changelog 🆑 SyncIt21,Pickle-Coding fix: space heater(including improvised) turns off when cell is drained fix: optimized power usage for both improvised and main space heater. Improvised heater now works & uses beaker heat capacity /🆑 * Improved lathe error message (#82260) ## About The Pull Request Improves the auto/protolathe low charge error message. Instead of simply saying low power, it will tell you how long until it has enough charge to print.  ## Why It's Good For The Game Less mashing the lathe over and over with no idea how much APC charge it needs to start printing again ## Changelog 🆑 LT3 code: APCs can now calculate time-to-charge qol: Overloaded lathes will now tell you the wait time until they're ready to print again /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * Fixes issues with multitools on power objects (#82389) ## About The Pull Request So at some point the power object's `multitool_act(...)` proc was set to _always_ block, for what I could find to be no discernable reason. ### The Main Thing |
||
|
|
fb99259785 |
[MIRROR] Fixes runtime from examining mod PCs (#26318)
* Fixes runtime from examining mod PCs (#81200) ## About The Pull Request It's a classic  `EXAMINE_HINT(x)` resolves to `"<b>" + x + "</b>"` When placed in this line directly, you get: `["<b>" + HAS_TRAIT_FROM(...) ? "..." : "..." + "</b>"]` You see the issue, right? This resolves as you would expect: `("<b>" + HAS_TRAIT_FROM(...)) ? ("...") : ("..." + "</b>")` Which, of course, runtimes as it's adding a string to an integer (0). By pulling it out to its own var we can get around this: `["<b>" + frame_or_pc + "</b>"]` ## Changelog 🆑 Melbert fix: Fixed examining modular PCs /🆑 * Fixes runtime from examining mod PCs --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
fdcfabefd8 |
[MIRROR] Integrated circuits for modular computers (#26196)
Integrated circuits for modular computers (#80530) This PR integrates circuits for modular computers and a good bits of their programs. The peculiarity here is that modular computers have no fixed amount of unremovable components (except the base one with just a couple ports for now), instead, they're added and removed along with programs. With a few exceptions (such as the messenger and signaler), for these program circuits to work, their associated program has to be either open or in the background. For a reason or another, not all programs have a circuit associated to them, still, however the programs with a circuit are still a handful. They are: - Nanotrasen Pay System - Notepad - SiliConnect - WireCarp - MODsuit Control - Spectre Meter - Direct Messenger* - LifeConnect - Custodial Locator - Fission360 - Camera - Status Display - SignalCommander *By the by, sending messages has a cooldown, so it shouldn't be as spammy. If it turns out to not be enough, I can make it so messages from circuit will be ignored by other messenger circuits. The PR is no longer WIP. I believe modular computers could make for some interesting setups with circuits, since they're fairly flexible and stocked with features unlike many other appliances, therefore also a speck more abusable, though limits, cooldowns, logging and sanitization have been implemented to keep it in check. 🆑 add: Modular Computers now support integrated circuits. What can be done with them depends on the programs installed and whether they're running (open or background). add: Modular Consoles (the machinery) now have a small backup cell they draw power from if the power goes out. /🆑 Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
d34aab9be3 |
[MIRROR] PDA general maintenance (NTNet downloader rework) [MDB IGNORE] (#25133)
* PDA general maintenance (NTNet downloader rework) * Update modular_computer.dm * e * weh * Update archive_viewer.dm * Update three_layer_hats.json --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
41ea46d5f2 |
[MIRROR] Scopes NODECONSTRUCT_1 from flags_1 to obj_flags [MDB IGNORE] (#25496)
* Scopes `NODECONSTRUCT_1` from `flags_1` to `obj_flags` * Update bitfields.dm * Modular * Update rack.dm --------- Co-authored-by: san7890 <the@san7890.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
b1aefe3a74 |
[MIRROR] pdas now use their cells more [MDB IGNORE] (#23977)
* pdas now use their cells more (#78580) ## About The Pull Request So one aspect of PDAs that I quite liked previously was managing and upgrading your power. This was lost when all cell parts got removed, mostly, and now I'd like to re-add it. PDAs and Tablets now use more power each second it's on Programs being active/idle now take charge too. And all this now takes ``seconds_per_tick`` into account. Screenshots of APC use before and after having 6 programs open at once   PDA default power cells have a max charge of 1000, each cell use is around ``1.00970340315`` power, which is ``1.01013789399`` w/ 2 programs in idle and 1 active program (which is what PDAs are capable of). This means it takes about 990 ticks to fully drain your power, or about 50 minutes, at max use. This is completely blasted away the moment you put anything beyond a t1 cell inside of it, which is unfortunate but what can you do about tiered parts being so poor. The problem of no public PDA chargers are alleviated by https://github.com/tgstation/tgstation/pull/78600 ### Update The PDA flashlight being on now also drains the battery 25% times faster. PDA running out of charge now also turns the flashlight off. ## Why It's Good For The Game You may or may not have to actually charge your PDA once in a round now, maybe. I liked this part of tablets and would like to see it brought back, managing your power to use your apps is important to ensure you're not just using all apps 24/7 Because this also adds the functionality to add/remove power cells again, it opens up to some minor little pranks/messing with people that isn't completely destroying their tools, as well as some minor upgradeability. ## Changelog 🆑 balance: You can now remove and replace power cells from PDAs (with screwdriver). balance: PDAs now drain their power cells harder, and also take into account active programs & their flashlight being on. balance: PDAs running out of charge now turn their flashlights off. /🆑 * pdas now use their cells more * reduce power usage * Update computer.dm --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> |
||
|
|
ee8c524e7c |
[MIRROR] Fixes Intellicards in computers being deleted when the computer is destroyed [MDB IGNORE] (#23900)
* Fixes Intellicards in computers being deleted when the computer is destroyed (#78475) ## About The Pull Request As described in #78467, if an Intellicard is inserted into a laptop or stationary modular computer, and said computer is destroyed, then the Intellicard (as well as any AI on it) is instantly deleted. This PR makes the Intellicard get dropped instead. Closes #78467. ## Why It's Good For The Game Bugs are bad. ## Changelog 🆑 fix: Intellicards in computers are no longer deleted when the computer is destroyed. fix: Modular consoles can now be deconstructed by right clicking with a wrench. /🆑 * Fixes Intellicards in computers being deleted when the computer is destroyed --------- Co-authored-by: GPeckman <21979502+GPeckman@users.noreply.github.com> |
||
|
|
2f552919c1 |
[MIRROR] Icons folder cleaning wave two [MDB IGNORE] (#22454)
* Icons folder cleaning wave two * Merge conflict resolution * Modular path hell * hmm * Update 2022-10.yml * Another modular thing --------- Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com> Co-authored-by: Giz <vinylspiders@gmail.com> |
||
|
|
e264ee3644 |
[MIRROR] Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts [MDB IGNORE] (#22469)
* Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts * Update communications.dm * Modular override * Some modular adjustments, removes 'emagged' vars in favor of obj_flags * whoops, mobs don't have obj_flags. --------- Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com> Co-authored-by: Giz <vinylspiders@gmail.com> |
||
|
|
3079143be5 |
[MIRROR] Tablet apps are now deleted when necessary & removes console preset. [MDB IGNORE] (#21942)
* Tablet apps are now deleted when necessary & removes console preset. (#75863) ## About The Pull Request Apps now properly delete themselves when removed, so they don't exist in nullspace anymore. Chat client now actually updates the uid, because its New() didn't call parent. Deletes the 'console' subtype of modular computer Updates how downloading and transferring files are handled Fixes being able to infinitely upload apps to a disk ## Why It's Good For The Game Fixes some more bugs I found with apps and prevents spamming apps in a disk. ## Changelog 🆑 fix: Maintenance data disks now properly transfer from PC to disk fix: Disks can no longer be flooded with the same app repeatedly. /🆑 * Tablet apps are now deleted when necessary & removes console preset. * updatepaths * feex --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com> |
||
|
|
64be8f7adf |
[MIRROR] Removes ID computer parts (Removes computer hardware) [MDB IGNORE] (#17612)
* Removes ID computer parts (Removes computer hardware) * Removes missed file * oop Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: tastyfish <crazychris32@gmail.com> |
||
|
|
5afc46835b |
[MIRROR] Removes tablet cell parts [MDB IGNORE] (#17498)
* Removes tablet cell parts (#71078) ## About The Pull Request Removes cell parts and cell part cells, now tablets directly stole a power cell in them, and uses regular stock cells like every other machine in the game. This also makes it less confusing because people are more used to stock cells over computer cells. Because cells generally hold more power than computer ones, I bumped up the active power usage from 50 to 75. ## Why It's Good For The Game We are nearly finished removing all parts, holy cr*p ## Changelog 🆑 balance: Tablets now use regular cells instead of computer cells. balance: Tablets no longer need a power cell component to hold power cells. /🆑 * Removes tablet cell parts * Feex Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com> |
||
|
|
9854cd8eeb |
[MIRROR] Fixes some inconsistencies with computers [MDB IGNORE] (#17084)
* Fixes some inconsistencies with computers (#70679) * Modular computers now have their initial name if they don't have an idenfitication and job, which previously meant they would have the name () * Removes MACHINE modular computer's process, because all it did was update the name, then call computer's process. Now it just does what every computer does, BUT UpdateDisplay on ITEM modular computers will now update the machine's name. * Additionally, I moved the modular computer processor's New to an Initialize, and removed the shutdown_computer code, because we already register update_icon signal to update the computer's appearance, why do we need to do it twice? * Fixes some inconsistencies with computers Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> |
||
|
|
58752b0969 |
[MIRROR] Removes a ton of unused tablet vars, re-organizes the rest [MDB IGNORE] (#17014)
* Removes a ton of unused tablet vars, re-organizes the rest (#70344) * Removes a ton of unused vars, re-organizes the rest Removes a ton of unused vars from Modular computers Re-organizes the rest, and adds autodoc comments to most of them Moved 2 vars (saved_image and invisible) from the tablet to the messenger app, since that's where it was used. I didn't see the point of having these vars be on every computer anyways, only PDAs have the app. Renames Clown's honk virus var Makes Messenger app's saved image, actually used. * static list and NODECONSTRUCT_1 check * oops * Removes a ton of unused tablet vars, re-organizes the rest * cryopod Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: tastyfish <crazychris32@gmail.com> |
||
|
|
d89adf597a |
[MIRROR] Modular computer fixes [MDB IGNORE] (#16966)
* Modular computer fixes (#70606) * Moves a lot of modular computer attackbys to the cpu instead, which is what handles it all. This allows their parts to be removed and the console deconstructed/repaired once again. * Modular computer fixes Co-authored-by: GoblinBackwards <22856555+GoblinBackwards@users.noreply.github.com> |
||
|
|
d0b706c041 |
[MIRROR] Removes AI and Charge parts from tablets, adds support for more later. [MDB IGNORE] (#16381)
* Removes AI and Charge parts from tablets, adds support for more later. * merge conflict * remove modular tablet loadout item * fix SR maps referencing tablets, add clear PDA instead of modular tablet loadout * remove pda loadout item Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: tastyfish <crazychris32@gmail.com> |
||
|
|
9e9b8584d6 |
[MIRROR] Removes CPU, Sensors and Identify ModPC parts. [MDB IGNORE] (#13594)
* Removes CPU, Sensors and Identify ModPC parts. * Update computer_part_designs.dm * Update tablet.dm Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com> |
||
|
|
729132a4e0 |
[MIRROR] Rebalanced Power consumption, increase for machines [MDB IGNORE] (#12930)
* Rebalanced Power consumption, increase for machines * wew Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
c23bd1cb8c |
[MIRROR] every case of initialize that should have mapload, does (#8374)
* every case of initialize that should have mapload, does * E Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com> Co-authored-by: Gandalf <jzo123@hotmail.com> |
||
|
|
eae7233c5b |
[MIRROR] small refactor to can_interact() so that borg range is fully respected (#7891)
* small refactor to can_interact() so that borg range is fully respected (#60693) Its a relatively small refactor that changes the previous machinery "can_interact()" proc that literally did a full override despite half of their checks already existing in not one, but TWO parent procs, so i removed the redundant checks, added callbacks to its parents and then added the cyborg range check on the can_interact_with() itself. in doing so i also moved the interaction range var from silicons only, to mobs as a whole and defaulted it to a single tile, silicons override it to 7 (so pAIs and borgs like before) but then set AI and AI.eye to "null", because i have a check in can_interact that if there is no range set, then the range is effectively unlimited. and i even added code for when AI is carded and their wireless transmission is disabled it sets their range to "0" aka, it has no range to do anything even if it could this was really complicated for me so despite my extensive testing it probably would be a bad thing if any of you want to test my code yourself to ensure there isnt a bug with this (theres no runtimes ive come across) note: i did a lot of searching and going through machinery to ensure i caught all the little snowflake overrides and added can_interact() checks to them, but i may have missed one or two things, especially maybe a altclick or ctrlclick somewhere, however i believe i caught most of them one nice side effect of this refactor is that you can actually set another mobs range to something other than 1 tile and they can interact at range, rather than only silicons getting this ability, an admin could VV a human to have a 3 tile arm reach as a meme if they want * small refactor to can_interact() so that borg range is fully respected Co-authored-by: 小月猫 <alina.r.starkova@gmail.com> |
||
|
|
7d1d0e1fad |
[MIRROR] Refactors most spans into span procs (#6315)
* Refactors most spans into span procs * AA * a * AAAAAAAAAAAAAAAAAAAAAA * Update species.dm Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> Co-authored-by: Gandalf <jzo123@hotmail.com> |
||
|
|
fbb78302cf |
[MIRROR] Makes obj_integrity private and only updated through procs (#6125)
* Makes obj_integrity only updated through procs (#59474) Having things updating integrity directly is just going to cause more problems down the line as more elements and components depend on being notified of integrity changes. It's an easy mistake to make so making it private should deal with the problem. get_integrity() might be useful in the future but is mainly a side effect of making obj_integrity private as that also disallows reads. * Makes obj_integrity private and only updated through procs * Mirror! Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com> Co-authored-by: Funce <funce.973@gmail.com> |
||
|
|
1ca81d9b86 |
[MIRROR] adds #cargobus and gauntlets (also modernizes ntchat) (#5458)
* adds #cargobus and gauntlets (also modernizes ntchat) * Update quartermaster.dm * Update DeltaStation2_skyrat.dmm * mirrors changes Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com> Co-authored-by: KathrinBailey <53862927+KathrinBailey@users.noreply.github.com> Co-authored-by: KathrinBailey <evesovereign@hotmail.co.uk> |
||
|
|
9ffdf58259 |
[MIRROR] Some explosions code cleanup (#4276)
* Some explosions code cleanup (#57493) Clears out two deprecated explosions systems (explosion ids and explosion levels) Refactors a bunch of contents_explosions procs to be maybe slightly faster. Cleans up a bunch of ex_act code. Slightly cleaner code A few less unused vars on /atom and /turf * Some explosions code cleanup Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com> |
||
|
|
5a0b30616c |
[MIRROR] Miscellaneous appearance fixes. (#3771)
* Miscellaneous appearance fixes. (#57133) * Fixes modular computer runtimes - Adds a proc to eat the source arg of the update icon signal. * Fixes a couple things not passing the right args - Fixes the alien leap hallucination passing a string as the first arg to updat_icon - Fixes the roulette machine passing the payout as the first arg to update_icon. * Miscellaneous appearance fixes. Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com> |
||
|
|
18eca27569 |
[MIRROR] update_appearance (#3508)
* update_appearance * a * a Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com> Co-authored-by: Gandalf2k15 <jzo123@hotmail.com> |
||
|
|
b332b46b65 |
[MIRROR] Remove hideous inline tab indentation, and bans it in contributing guidelines (#3394)
* Remove hideous inline tab indentation, and bans it in contributing guidelines * a Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> Co-authored-by: Gandalf2k15 <jzo123@hotmail.com> |
||
|
|
e890b1282b |
[MIRROR] Replaces intents with combat mode (#3063)
* Replaces intents with combat mode * updates * a * Update living_defense.dm * https://github.com/tgstation/tgstation/pull/56638/files * gunsafety! Co-authored-by: Qustinnus <Floydje123@hotmail.com> Co-authored-by: Gandalf2k15 <jzo123@hotmail.com> |
||
|
|
3190f290ae |
[MIRROR] Modular computers can now be attacked (#2259)
* Allow modular computers to be attacked (#55629) You will now attack modular computers if you are not in help intent, rather than opening up their menu. Why It's Good For The Game i died here as nightmare because i couldnt attack the computer * Modular computers can now be attacked Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com> |
||
|
|
b8d9874c27 |
[MIRROR] Converts all A && A.B into A?.B (#1292)
* Converts A && A.B into A?.B (#54342) Implements the ?. operator, replacing code like A && A.B with A?.B BYOND Ref: When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call. * Converts all A && A.B into A?.B Co-authored-by: ZeWaka <zewakagamer@gmail.com> |
||
|
|
fd11d35489 |
[MIRROR] Adds borg tablets, and RoboTact as a borg self-management app (#959)
* tgui: Borg tablets and RoboTact as a borg self-management app (#53373) * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * take one * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * part 2 * Automatic changelog compile [ci skip] * part 3 * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * part three I think * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * who even knows what step I'm on anymore * and another one * Automatic changelog compile [ci skip] * PR time * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Forward Progress * Automatic changelog compile [ci skip] * Merge remote-tracking branch 'upstream/master' into SiliScreen * more foward progress * RoboTact * bad tab * Improvements all around Plus some changes to vis_overlay to allow for color * Lights and things * borg network card borg tablets lose networking when borg is locked or has no power * hud changes not done yet, but getting close * better modPC screen button * updoot * more useful colors * linter * Do I finally get a green ✓ * better law sync catching * hate linters Co-authored-by: Changelogs <action@ github.com> * Adds borg tablets, and RoboTact as a borg self-management app Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com> Co-authored-by: Changelogs <action@ github.com> |
||
|
|
1e705faa19 |
[MIRROR] Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#709)
* Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#52981) * Process procs now properly use deltatime when implementing rates, timers and probabilities * Review fixes * Geiger counters cleanup Made hardsuit geiger code more similar to geiger counter code Geiger counters are more responsive now * Moved SS*_DT defines to subsystems.dm * Rebase fix * Redefined the SS*_DT defines to use the subsystem wait vars * Implemented suggested changes by @AnturK * Commented /datum/proc/process about the deltatime stuff * Send delta_time as a process parameter instead of the defines Also DTfied acid_processing * Dtfied new acid component * Process procs now properly utilize deltatime when implementing rates, timers and probabilities Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com> |
||
|
|
63a0ca874c |
[MIRROR] Refactors machine_stat and is_processing() to process on demand (#515)
* Refactors machine_stat and is_processing() to process on demand (#53150) * Refactors machine_stat and is_processing() to process on demand * Fixes master (#53193) * fixes master, damn it me/mothblocks * fuck again * ANOTHER ONE * Fixes master Co-authored-by: Rohesie <rohesie@gmail.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
d3f6e8d49f |
[MIRROR] Explosions SS runtime fix + code cleanup (#461)
* Explosions SS runtime fix + code cleanup (#52894) * runtime fix * turf references are immortal * Explosions SS runtime fix + code cleanup Co-authored-by: Rohesie <rohesie@gmail.com> |
||
|
|
ee324ab3c2 |
[MIRROR] Cleanup up all instances of using var/ definitions in proc parameters. (#240)
* Cleanup up all instances of using var/ definitions in proc parameters. (#52728) * var/list cleanup * The rest of the owl * plushvar bad * Can't follow my own advice. * Cleanup up all instances of using var/ definitions in proc parameters. Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk> |
||
|
|
ae0dd35813 |
[MIRROR] Replaces modular computer card eject verbs with UI buttons (#148)
* Replaces modular computer card eject verbs with UI buttons (#52489) * Replaces mod-CPU card eject verbs with UI buttons * ? * Replaces modular computer card eject verbs with UI buttons Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com> |
||
|
|
4156b79b94 |
Adds Syndicate tablets, replaces the pinpointer used by Nuke Ops (#51386)
* Synux * cleanup * I bet this merge conflicts we hate tgui.bundle * extra bits * Syndix * small fixes * Summary (required) * this linter drives me up the wall * final touchups * Forgot this thing |
||
|
|
a3aa69701a |
[READY] Basically, Instant Explosions 2: The Search For More Money: Eternal: A Tail Of Two Kitties: 33 1/3 (#50594)
About The Pull Request Extools maptick stuff is in the game. Stolen from BeeStation/BeeStation-Hornet#1119, improves performance. Requires ex-tools on the server, though. Explosions have been refactored to do the actual exploding in a subsystem. Credit to goon. Here's some videos! Why It's Good For The Game Basically instant max-caps now. We can now give more of a tick over to the sending of map updates Changelog cl Goonstation Coders, Beestation, Extools devs refactor: Explosions have been heavily optimized. /cl |
||
|
|
7bef84f009 |
Mass-replacement of stat to machine_stat (#48758)
Living and machine stat vars are pretty different, one uses flags and other number-defines. This should make some other mass-replacements and searches a bit easier. |
||
|
|
a394ccdc2b |
Material datum chairs & tables and applies materials to all items (Now with less pain for mining & RnD) (#46525)
removes materials list from items, uses custom_materials instead. This might introduce some bugs so we should testmerge this for a while (and Ill test stuff locally as much as I can) this also adds material crafting to sheets. Test case being chairs. In the future we can add stuff like tables, walls, doors etc. also applies materials to everything, with fixes, which can close #46299 |
||
|
|
a148cae769 |
Kills obj/item/projectile in favour of obj/projectile (#46692)
* Kills obj/item/projectile in favour of obj/projectile * Resolves conflicts properly * fixes that one map * it lives |
||
|
|
68c8b71ae9 |
Changes power_change() to respect parent calls for toggling NOPOWER (#46486)
About The Pull Request Similar to #46485 Now all relevant uses of power_change() call parent, theres a signal sent when a machine changes the NOPOWER flag, all remaining machines that were using power_change() instead of update_icon() have been fixed. Why It's Good For The Game code quality, eventually signal stuff. and signal stuff |
||
|
|
8ddc9677c7 |
examine-code refactor (#44636)
* 1/4 done? maybe? * more * stuff * incremental stuff * stuff * stuff & things * mostly done but not yet * stuffing * stuffing 2: electric boogaloo * Git Commit and the Kingdom of the Crystal Skull * make it actually compile * found more stuff * fixes * fix AI laws appearing out of order * fix windows * should be the remaining stuff * this time for real * i guess it should compile too * fix sechuds |
||
|
|
fc6cc11ff4 | Makes modular computer examine text more robust (#40729) | ||
|
|
1eccbcca18 |
Adds an EMP protection component, allowing ANYTHING to be protected from EMP (#37671)
The component is initialized with any combination of three flags, EMP_PROTECT_SELF protects against effects that target the object itself, EMP_PROTECT_WIRES protects against wires being messed with similar to the NO_EMP_WIRES_1 flag which this PR removes, EMP_PROTECT_CONTENTS protects against things that are inside the object like organs, internal "non-virtual" power cells and the like This enables (but doesn't introduce) new mechanics such as adding EMP shielding at runtime to any atom, or taking it away. |
||
|
|
057aa31cda |
Kills off /obj/item/device (#37297)
* Kills off /obj/item/device * whoops * whoops * Fix |
||
|
|
f300a5c155 | Interaction/Attack Hand Refactor (#36405) | ||
|
|
7460f2c5b8 | Replaced flags with flags_1 | ||
|
|
af4d9a85c9 | Repaths /obj/item/weapon to /obj/item (#29929) |