* Cargo category cleanup (#75374)
## About The Pull Request
I accidentally discovered that when #55504 removed cargo export
categories being a thing during export value evaluation, in two
instances, they forgot to remove passing over the now defunct export
categories, causing it to be passed in as the elasticity value, and by
sheer coincidence, this was not causing problems (due to being overriden
by a named argument in the pirates case, and cargo_exports being
evaluated as true in another).
This PR fixes the arguments, preventing possible bugs in the future.
This also removes the code that set if the cargo shuttle could sell
contraband and emagged items, as that is no longer a thing. I talked
with @ ArcaneMusic about this, and they agreed, albeit with the caveat
that if someone finds a good use case for this feature, it could be
saved.
This PR also autodocs several export related files, and cleans up
various single and two letter vars.
## Why It's Good For The Game
Cleaner code, unused code removed.
## Changelog
🆑
code: cleaned up cargo export code a bit
/🆑
* Cargo category cleanup
---------
Co-authored-by: Profakos <profakos@gmail.com>
* Converts Spiderlings from Structures to Basic Mobs (#75001)
If I could've made this more atomic, I would have in a heartbeat, trust
me.
## About The Pull Request
Hey there. People were mocking us for having spiderlings still be a
subtype of `/obj/structure`. I decided to take a lot of time to fix
that. A lot of behavior it was implementing was just pseudo-mob stuff,
so it was actually easier than it looked for the raw conversion. A lot
of the footwork on spider stuff in the basic framework was already done
previously by Jacquerel, so that was pretty nice.
However, there are two new things that weren't introduced in the code
that had to be put in.
A) A component to handle growth and differentiation into a mob. This may
have already existed, no clue. If it does (and it's NOT
evolutionary_leap), let me know.
B) AI Behavior to handle seeking out a vent, entering a vent, and then
exiting out of a different vent. I may have gone a bit wacky on the
code, but it certainly works as expected (spiderling goes in one vent,
exits the other). Let me know if you can think of a way it can be better
optimized, but it was deliberately written to be very failsafey in case
shit goes yonkers.
One fundamental difference between structure spiderlings and basic mob
spiderlings (beyond the AI and not just a random prob() check for
movement) is the fact that they had vent movement coded in... but we
_really_ don't need stuff like that for our intents and purposes. If the
range turns out to be too OP in the current framework, we can always
change it up a bit, but also there's a _lot_ of vents we can end up in
the station (my testing had one spiderling end up in the AI sat to get
obliterated).
## Why It's Good For The Game
Spiderlings aren't structures! They behave like a mob should! Players
can possess spiderlings! They work seamlessly with differentiating into
a giant spider! Better AI! More room for people to add into this very
under-utilized buggers!
## Changelog
🆑
refactor: Spiderlings are now basic mobs, report any complete
weirdness/deviation from known behavior. They should be a lot more
intelligent now though.
add: AI Spiderlings are super fragile, but they're also super fast,
especially when they get into a vent. Once they're in circulation, they
could end up everywhere! Maybe in the armory, maybe in a locked closet
in maintenance. Be sure to be vigilant and splat them whenever you can
to save the station from a whole lotta heartache!
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Converts Spiderlings from Structures to Basic Mobs
---------
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Minor improvements to mining order console
* merge
* Mining orders can no longer error and don't say they charge you (#71676)
- Mining orders now show the amount of mining points spent as the 'Cost'
instead of a flat 240 credits
- Mining orders now no longer have errors (including nothing being in
the crate at all) because they can't be sent back for a full refund.
- Mining orders no longer say they charged you if they haven't.
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
* quick reorder
* nakamura part 1
* nakamura finished maybe
* blacksteel does not actually make black steel
* renames the folder, special metals part 2 for blacksteel
* WHERE WE PLAY NOTHING BUT ROCK, ROCK, AND MORE ROCK
* file pathing
* blacksteel done
* nri surplus start
* interest stuff, company flags, nri surplus completion
* deforest medical
* theres gonna be multiple nakamuras actually
* donk co
* the prices are behaving strange
* those are a tad expensive
* im so confused
* ticks the other companies to see if maybe they're responsible
* also maybe that?
* on jod bro they just needed to all be the same name
* kahraman mining tools
* nakamura tools
* nt-bolt defense equipment
* the two g*n companies
* ammo company
* good lord what is happening in there
* STOP TALKING ABOUT GUNS, IM TIRED OF HEARING ABOUT IT
* hopefully the last few bits of gun-centricity (i don think that's a word
* price adjustment
* changes what can be a freebie
* those should be the other way around
* well that'd just make the descriptions incorrect now would it
* 1st batch of changes
* pt2
* oopsies (makes every test fail)
* then king minos told me "DIE" and I was like 💀
* some of those things could cause problems
* they even spelled asbestos wrong
* ultrakrill (funny)
* i hate this dumbass """"""advanced"""""" ammo box thing
* nakamura was a bit hard to get interest from
* not much a fan of how interest goes down
* those mod cores should be cheaper
* again fuck this stupid ''''''''advanced'''''''' ammo box shit
* price adjustment
* misinput
* Update accretion_incompatibility.dm
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
* [MDB Ignore] Corrects Automatic Shuttle Boundary Generation (#71220)
When you load a map template, it does many things before considering
itself finalized.
One of these steps is to iterate over all the loaded items and
initialize/process them.
Unfortunately because a shuttle setups the bounds after
initTemplateBounds is called, the mobile docking port ends up being
initialized before the bounds are actually setup correctly.
The solution to this is to explicitly ignore the mobile docking port,
and have it initialize immediately after calculating the bounds.
* [MDB Ignore] Corrects Automatic Shuttle Boundary Generation
* arrivals shuttle
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* [MDB IGNORE] Shuttle engines part 2: Engines are now machines (#69793)
* Makes engines machines instead of structures
* Updates the maps
* Fixes boards and anchoring
* Removes 2 unused engine types
Router was actually used a total of once, so I just replaced it with propulsion.
I think cutting down on these useless engine types that make no difference in-game would be a nice first step to adding more functionalities to them.
* Don't use power (since shuttles dont have)
Shuttles don't have APCs, instead they just have infinite power, so I'm removing their power usage for now. I'm hoping this can be removed when unique mechanics are added to engines, because I would like them to make use of power like other machines.
* re-organizes vars
* deletes deleted dm file
* Slightly improves cargo selling code
* Renames the updatepaths
* Removes in_wall engines
I hate this stupid engine it sucks it's useless it's used solely for the tram it provides nothing of benefit to the server
replaces them with regular engines
* [MDB IGNORE] Shuttle engines part 2: Engines are now machines
* should fix that
* THEY. REMOVED IN WALL ENGINES. THE BASTARDS.
* common mining shuttle
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Adds fax machines to the supply shuttle blacklist (#69766)
Fax machines being present on the supply shuttle creates a risk that there may be ways to send other blacklisted items to CentCom in order to gain access. The neatest and safest solution to this broad realm of potential exploits is to keep the fax machine from being able to get there in the first place.
* Adds fax machines to the supply shuttle blacklist
Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
* Revert "Add stamped requisition forms now give bonus credits (#66230)" (#66851)
This reverts commit f021767645.
This reverts commit f021767 from:
Add stamped requisition forms now give bonus credits #66230
This bug was encountered when we were testing this PR but I thought it got fixed.
Why It's Good For The Game
Cargo crates will now reappear.
* Revert "Add stamped requisition forms now give bonus credits (#66230)"
Co-authored-by: Tim <timothymtorres@gmail.com>
* Removes a repeated entry of hilberts hotel from the blacklisted_cargo_types list (#65171)
* Removes a repeated entry of hilberts hotel from the blacklisted_cargo_types list
Co-authored-by: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
* clean up closets
* add new closets back
* it didnt use dir lights!?!?!
* bye bye
* name can be shorter reee
* com press
* HERE THEY COMEEEEE
* largemine/labor
* consign my love
* h
* tweakingsies
* better miining
* these look nice
* oops
* fix the evac shuttle tiles a bit (i still hate it)
* hngh
* i coulda sworn..
* exodus
* apostraphe
* area
* name
* clozet
* color consistency
* backwards ship moment
* fix my oops with the vents
SUS??
* this is cleaner
* typo moment
* note
* note, no-sell in cockpit, wall lockers
* jsons for crago
* oh hey thats broken cool
* map moment
* totally unrelated fix that I just wanna do here bc no one remembers it
* this doesnt actually work. Yet.
* ferry and readme fixes
* this doesnt work and I cant be bothered to fix it this second. Dunno how
* double period moment
* dir was wrong, oops
* map conversion moment
* CI fail moment
* h
* pain
* Fixes a few cargo exports problems. (#62686)
About The Pull Request
Cargo exports will now start deleting the thing and its contents only after everything has been sold and hopefully stop objects from being deleted before getting sold (no export datum actually deletes anything on sell_object()). This PR also removes a variable only used in one place (an admin only item created by ExcessiveUseOfCobblestone, who probably didn't know there's an argument that stops unsold items from getting deleted) and that may be source of harddels.
Why It's Good For The Game
This will fix#62644, perhaps some harddels and other oddities.
Changelog
cl
fix: Cargo exports will now start deleting items only after everything is sold. This will fix issues such as unachievable exports (like machine ones) and getting less credits than what export scanners says.
/cl
* Fixes a few cargo exports problems.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Routine Cargo Departmental Deliveries (#61992)
About The Pull Request
Document: https://hackmd.io/@ bazelart/HkY-SO9VF
Each department's request console is upgraded. Instead of making requests, they are only able to see crates related to their department that helps the department. They can order one for free (so not out of anyone's wallet) and it will arrive at cargo. Cargo gets the price of the ordered crate for bringing it to the department that ordered it (via an area check, of which the crate will remain locked until satisfied, emitter cracking aside).
Ordering a crate puts the console on a cooldown depending on the price of the crate ordered. The time ranges from 10 minutes at the lowest value, to capped at 20 minutes at 4x the default crate's price. the price in time follows a ease in out circular function, where the time increases slowly as the time goes up, but a lot in the middle. towards the higher end it slows down again.
Cargo will start with far less money, but this is countered by the new source of income.
Finish Mapping it
Finish tgui panel for department orders
Testmerge it for balance and feedback who cares
Maybe give multiple destination areas, just in case one area gets obliterated who cares!
Why It's Good For The Game
Cargo starts with a budget to spend on themselves, which lets them order their department rewards before doing anything. There is no inherent reward to delivering to other departments other than social expectations of filling the job, which means cargo will simply ignore deliveries and requests if there are more self-important things going on, since those deliveries both cost cargo and do not help cargo in any way
Changelog
cl
add: replaced the request consoles in each department with department order consoles, which order for free on a cooldown. cargo gets these orders and delivers the crates, which are locked until delivery. upon delivery, cargo gets paid the value of the crate, and can then sell the crate back on the shuttle.
balance: cargo doesn't start with a budget, other departments get what their budget was split up amongst them
/cl
* Routine Cargo Departmental Deliveries
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Refactors mail and delivery code (#59730)
- Mail now uses weakreferences to minds, which means the presence of
mail will not cause harddels, and persist between mindswaps or cloning
or whatever horrible mob transfer things you've got going on.
- The code for creating a crate of mail has been refactored into a
single proc, rather than having the same code twice.
- Instead of special casing reagents being delivered, instead
reagent mail goodies are just regular bottle items like any other.
* Refactors mail, delivery and goodies code
Co-authored-by: coiax <yellowbounder@gmail.com>
* mail fixes 😎 (#58716)
now mail doesn't get sent to... BAD recipients. (Antags arm, just say antags)
fixes incorrect unwrapping message (bad usage of a visible message)
mail recipients wasn't shuffling either. I'm fairly certain this was leading to some people always getting mail and some never getting it.
* Fixes incorrect unwrapping message, and now mail doesn't get sent to... BAD recipients.
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Chef Produce Console, for cases where there are no botanists (#57298)
* Chef Produce Console, for cases where there are no botanists
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* everything but da map
* everything but da map
* Makes it work ~somehow~, I have genuinely no clue why
Stumbled upon the fix by pure luck
* Trailing newline
* . = ..()
* what the fuck?
* this works
* mapping is pain
* why tf is the CI failing, run it again
* hhh
* wack
* Resolves map conflict
* a
* Actually solves the conflict now
* please
* Webedit spacebar to rerun CI
* i swear to fucking god
* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
* id console -> modular console
* Rerun CI
* deletes the fucking map
* fixes the merge conflict AGAIN
Co-authored-by: Ranged <nickvanderkroon@gmail.com>
* [READY] Adds station traits: Small modifiers that can randomly be chosen each round
* conflicts
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
* Export scanner doesn't need to link + old bounty code is gone (#55504)
Removes the Export scanner's need to link with a console and cleans up the old bounty code
* Export scanner doesn't need to link + old bounty code is gone
Co-authored-by: spessbro <51048066+spessbro@users.noreply.github.com>
* Completely FIX Hilbert's Hotel and its associated ruin to the game. (#53830)
Reverts the removal in #53790.
Broken in #53586.
Because turfNumber++ must be incremented on turf, not on every ATOM it
EVERY TURF, and anyway it don't trigger since first turfs don't have
atoms in it.
Fix#53794, Hilbert's Hotel peephole runtime.
Fix#53795, hhmysteryRoomNumber generates only once.
* Completely FIX Hilbert's Hotel and its associated ruin to the game.
Co-authored-by: Dennok <Deneles@yandex.ru>
* Completely removes Hilbert's Hotel and its associated ruin from the game. (#53790)
The Hotel is a runtime machine. When it swaps rooms, its turfs runtime. When people are actively using it, things in it constantly runtime. It's half broken, half buggy. Turfs don't remember contents. Sometimes blank rooms spawn. Sometimes nothing at all.
It's not worth the time and effort to fix or maintain it.
I'm opening this PR to completely remove it.
* Completely removes Hilbert's Hotel and its associated ruin from the game.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Cleans up some unused procs and makes is_blocked_turf a turf proc. (#52482)
* Cleans up some unused procs and makes is_blocked_turf a turf proc.
* Update code/game/turfs/turf.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
* Cleans up some unused procs and makes is_blocked_turf a turf proc.
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
* Adds coupons
* fixes invalid var
* fixes old var name
* test
* does this please you travis?
* is that a prize, or....
* adjusts odds
* fikou owes me $10
* neatens code per review
* corrects bouncy
* corrects some errors
* redisables price gouging on goodies