-Changed the exchange rate for plasma to supply points to 2:1
-Admins can now see photos in newscaster channels when using the button in the fun tab.
-Updated changelog.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5383 316c924e-a436-60f5-8080-3fe189b3f50e
-Permission from Erro to remove the "redeem a mech by colllecting all the toys" feature. Removed the description from the mech toys too.
-Fixed a possible exploit with ghost following to create more than one follow loop.
-Re-added send mob to the player panel.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5377 316c924e-a436-60f5-8080-3fe189b3f50e
-Atmos delay is now based on active players, to help fight lag for massive player rounds.
-Changed some for(blah in world) loops to use the correct lists.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4958 316c924e-a436-60f5-8080-3fe189b3f50e
Clicking cancel when prompted for a reason for an order will cancel the order rather than using a default reason.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4779 316c924e-a436-60f5-8080-3fe189b3f50e
YouTool is now all access so assistants can use it.
You can no longer ride office chairs under flaps to become unpullable/ungrabbable etc.
Updated the changelog with some of Aranclanos's recent fixes.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4764 316c924e-a436-60f5-8080-3fe189b3f50e
Once again, Only crates may be sold on the supply shuttle.
Changed adminverb updates to be called by Login if holder.state changes. This is so we don't have to mess around with it elsewhere and we don't have to call it as often.
Added some missing verbs to the clearadminverbs proc
Fixed a icon reference not using the fullpath (Goddamn stop doing that)
Going catatonic makes you fall down
All mobs with the resting variable can now unrest (god damn what were you doing).
"Lay down / Get up" was renamed to "Rest".
Rest now uses src rather than usr (again, wtf)
Added some ugly fatty fat hacky code to make admin-ghosted mobs appear braindead rather than catatonic
Admin-ghosting (set-observe and set-play) merged into one verb named "Aghost" (short for admin ghost, same convention as asay)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4708 316c924e-a436-60f5-8080-3fe189b3f50e
machine.process() now uses a return value to remove itself from the processing machines list. This is more efficient and will help reduce costs especially at round start where some 5000+ machines were removed from the list using first-find. Now there is no searching involved. Instead of machines.Remove(src) just do .=PROCESS_KILL that will return the flag to the proc which called it (the MC) and trigger its removal from the list. If you're deleting something don't even bother removing it from the machines list, there is no need to.
Simplified the last_processed stuff for the MC. It's now a single variable rather than 3. It is simply a typepath rather than a reference to an object (this is so it works even if said object is deleted)
MC stats in admin status_panels now show the length of the processing lists (indicated by #). I've just realised I forgot to mention what the abbreviations are:
The less obvious ones are: Dis=diseases; Net=pipes; Pnet=powernets; Mch=Machines; Tick=the game-mode ticker.
Beach-water now uses an overlay image rather than a separate object.
Fixed a typo in the shuttle console.
Hydroponics trays no longer use first-find within their process() for checking the plant is in the tray (why is that even there anyway? talk about lazy)
Removed some junk/placeholder procs like organ/proc/process() return
Removed newscasters from the processing machines lists.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4603 316c924e-a436-60f5-8080-3fe189b3f50e
Supply_packs ow use paths rather than strings. This is because paths for some of the items have changed with recent updates which was causing the strings to become invalid, but the compiler does not check them. Now that they are paths, the compiler will warn you. Fixes a number of runtimes with supply_packs/shuttle. A number of items that were meant to spawn in supply crates that were affected by this now spawn again. (stuff like grenades, spray bottles, etc)
Added a damp rag to the janitorial closet.
Added ammonia to the hydro crate (removed 2 bottles of pest-spray and increased cost slightly to offset)
Moved explosion2.dm to WIP/carn/Explosion2.dm
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4601 316c924e-a436-60f5-8080-3fe189b3f50e
Comments for lighting:
Like sd_DAL (what we used to use), it changes the shading overlays of areas by splitting each type of area into sub-areas
by using the var/tag variable and moving turfs into the contents list of the correct sub-area.
Unlike sd_DAL however it uses a queueing system. Everytime we call a change to opacity or luminosity
(through SetOpacity() or SetLuminosity()) we are simply updating variables and scheduling certain lights/turfs for an
update. Actual updates are handled periodically by the lighting_controller. This carries additional overheads, however it
means that each thing is changed only once per lighting_controller.processing_interval ticks. Allowing for greater control
over how much priority we'd like lighting updates to have. It also makes it possible for us to simply delay updates by
setting lighting_controller.processing = 0 at say, the start of a large explosion, waiting for it to finish, and then
turning it back on with lighting_controller.processing = 1.
Unlike our old system there is a hardcoded maximum luminosity. This is to discourage coders using large luminosity values
for dynamic lighting, as the cost of lighting grows rapidly at large luminosity levels (especially when changing opacity
at runtime)
Also, in order for the queueing system to work, each light remembers the effect it casts on each turf. This is going to
have larger memory requirements than our previous system but hopefully it's worth the hassle for the greater control we
gain. Besides, there are far far worse uses of needless lists in the game, it'd be worth pruning some of them to offset
costs.
Known Issues/TODO:
admin-spawned turfs will have broken lumcounts. Not willing to fix it at this moment
mob luminosity will be lower than expected when one of multiple light sources is dropped after exceeding the maximum luminosity
Shuttles still do not have support for dynamic lighting (I hope to fix this at some point)
No directional lighting support. Fairly easy to add this and the code is ready.
When opening airlocks etc, lighting does not always update to account for the change in opacity.
Explosions now cause lighting to cease processing temporarily.
Moved controller datums to the code/controllers directory. I plan on standardising them.
"Master","Ticker","Lighting","Air","Jobs","Sun","Radio","Supply Shuttle","Emergency Shuttle","Configuration","pAI" controller datums can be accessed via the debug controller verb (used to be the debug master controller verb)
Supply shuttle now uses a controller datum. Shuttles tend to arrive up to 30 seconds late, this is not a bug.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4537 316c924e-a436-60f5-8080-3fe189b3f50e
All credits to the author for this handy little script.
I Committed the modified python script to tool directory. Although it needs to be in the root folder of your repo to work.
To notice the improved compile times, in dreammaker go to Build > Preferences > and untick "automatically set file_dir for subfolders"
If this commit inteferes with any large projects just revert it, do your thing, then rerun the script. Easy-peasy.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4488 316c924e-a436-60f5-8080-3fe189b3f50e
-Almost every instance of 'for(mob in world)' has been killed. Because GODDAMN was it being run a bunch. Instead, a series of global lists have been made, and they are all handled auto-magically through New()'s, Del()'s, Login()'s, death()'s, etc...
Lists are as follows:
-mob_list : Contains all atom/mobs by ref
-player_list : Like mob_list, but only contains mobs with clients attached
-admin_list : Like player_list, but holds all mobs with clients attached and admin status
-living_mob_list : Contains all mobs that ARE alive, regardless of client status
-dead_mob_list : Contains all mobs that are dead, which comes down to corpses and ghosts
-cable_list : A list containing every obj/structure/cable in existence
Note: There is an object (/obj/item/debuglist) that you can use to check the contents of each of the lists except for cables (Since getting a message saying "a cable," x9001 isn't very helpful)
These lists have been tested as much as I could on my own, and have been mostly implemented. There are still places where they could be used, but for now it's important that the core is working. If this all checks out I would really like to implement it into the MC as well, simply so it doesn't check call Life() on every mob by checking for all the ones in world every damn tick.
Just testing locally I was able to notice improvements with certain aspects, like admin verbs being MUCH more responsive (They checked for every mob in the world every time they were clicked), many sources of needless lag were cut out (Like Adminwho and Who checking every single mob when clicked), and due to the cable_list powernet rebuilding is MUCH more efficient, because instead of checking for every cable in the world every time a powernet was broken (read: A cable was deleted), it runs though the pre-made list, and even with a singulo tearing all the way across the station, the powernet load was VERY small compared to pretty much everything else.
If you want to know how any of this works, check global_lists.dm, there I have it rigorously commented, and it should provide an understanding of what's going on.
Mob related in worlds before this commit: 1262
After: 4
I'm helping
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4179 316c924e-a436-60f5-8080-3fe189b3f50e
-Redid icons to be more optimized at compile by setting icon = 'icons/folder/icon.dmi' instead of just icon = 'icon.dmi', meaning that Dream Maker doesn't have to search through every single file for every single .dmi. This shouldn't lead to any errors because of how I went about it, plus the fact that Dream Maker would have freaked out if I screwed something up. Also moved around 2 icons that weren't sorted well.
r4146 compile time: 1 minute, 40 seconds
r4147 compile time: 45 seconds
[VGTG]
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4147 316c924e-a436-60f5-8080-3fe189b3f50e
- Hopefully fixed the bug which allowed players to get a million toys from one arcade game.
- Removed poly's master controller failsafe due to it doubling up the master controller for no reason whatsoever.
- You can now redeem a full collection of mech toys at the quartermaster's for an actual mech!
- Added this stuff to the changelog.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4138 316c924e-a436-60f5-8080-3fe189b3f50e
Added a null check to cleanbots and new player preferences.
Did a bit of blob and antimatter work.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3919 316c924e-a436-60f5-8080-3fe189b3f50e
Added large crates, for dense objects. Currently they're only used for water and fuel tanks, and mulebots.
Removed uterus.dmm and tgstation.2.0.8.dmm from the repo, as they were unused and outdated.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3884 316c924e-a436-60f5-8080-3fe189b3f50e
Fixed plastic flaps not letting small creatures pass (An if-statement was partly backwards)
Re-added the teleporter circut board to secure tech storage.
- I think someone accidentally replaced it with a duplicate cyboard upload at some point.
Lowered the chance for Perriot's Throat to HONK words.
- Max chance before was 4*20% chance now it's 4*12%
Perriot's throat will no longer HONK words when you're dead so that deadchat is spared.
Portable flashers no longer ignore certain eye protection. Fixes issue 535.
- They now use the mob's eyecheck() proc instead of using its own out-of-date proc
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3788 316c924e-a436-60f5-8080-3fe189b3f50e
- Timers
- Remote Signallers (Fixes issue 325)
- Proximity Sensors
- Infared Sensors (Man.. these really need to be fixed.. or just re-done entierly)
Cargo shuttle:
- People in the area of the cargo shuttle get gibbed when the shuttle shows up. (Fixes issue 508)
- Renamed 'Dock' to 'Away' because Station -> Dock is confusing...
Committing for Sieve:
- The toggle throw hotkey (end) now works with TK (Fixes issue 523)
- Borg diamond drills now properly dig sand (I still don't understand why they don't just have a shovel...)
Updated changelog to reflect some of these changes.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3747 316c924e-a436-60f5-8080-3fe189b3f50e
- Hopefully this will cut down on the server spamming/crashing escapades happening on other servers. (This wont stop that from happening, this just makes it less severe)
- Some of the sanitizes were probably unnecessary, but better safe then sorry.
Added MAX_NAME_LEN constant which is initialized to 26.
- Please use MAX_NAME_LEN instead of typing in 26 when cutting inputs short. 26's are annoying when they have to be changed and you have to hunt through over a hundred files and tens of thousands of lines of code to find them all.
Moved uplink_kits.dm to code/game/objects/storage
Moved uplinks.dm to code/game/objects
- The stuff inside uplinks.dm could really be chopped up and split into separate dm files but this will do for now.
*********************************************************
**********************Important**************************
*********************************************************
When you create code that asks the user for an input consider whether or not it gets shown to the user through html or the like.
If it does please sanatize() or strip_html() it. Also use copytext() to cutoff spam by using MAX_NAME_LEN and MAX_MESSAGE_LEN as the cutoff var.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3652 316c924e-a436-60f5-8080-3fe189b3f50e
Adds greater changeling code, but doesn't change the genome count yet on it.
Renames registered to registered_name on IDs because bs12 had it and it seemed like a good idea to do last night. For some reason.
Adds an afterattack to mobs that can be used. (In fairness, lots of shit in attack_hand should be in there instead, like stungloves and stuff, to minimize duplicated code)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3537 316c924e-a436-60f5-8080-3fe189b3f50e
- Merged 'Game' and 'Lobby' tabs during pre-game into one tab.
- Late-joiners now see round duration.
- Late-joiners are warned if the shuttle is not recallable or has already left to Centcomm.
- Added the little red X to the top corner of the late-join job list window
- Supply shuttle derp fix
- Removed duplicate mining shuttle code that was inside atmos computer stuff
- - This should fix the player seeing both the 'Shuttle has been sent' and 'The shuttle is already moving' messages.
- Updated changelog
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3433 316c924e-a436-60f5-8080-3fe189b3f50e
•How to obtain:
1.Get the circuitboard of your supply computer
2.Multitool it and set its receiver to the appropriate spectrum
3.Put it back in. You can now order contraband
4.Note that contraband is illegal. Security can do whatever they wish to it, and therefore you for bringing it on board, within logical boundaries.
Apart from that, I would like to start the small project of adding references of every on-wall object to the actual contents of the wall. I think of it as nice if we could have walls drop contents (in some unfinished form, so it actually makes a difference) once deleted so we don't have any more of those pesky hovering-over-nothing decals/machinery/whatever
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3423 316c924e-a436-60f5-8080-3fe189b3f50e
- Created far more robust method of detecting beacons/humans/mechs on the cargo shuttle.
As a result:
- It is no longer possible to send mobs/mechs/tracking beacons to Centcomm.
- It is no longer possible to send the nuke disk away on the shuttle. (This should prevent people from magically duplicating nuke disks)
- Centcomm cargo techs now clean up the shuttle when it arrives in case something somehow manages to bypass the previous checks.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3373 316c924e-a436-60f5-8080-3fe189b3f50e
You need to swipe and ID to lock an emitter,
PDAs will no longer have a popup when you attempt to put an ID into them.
PDAs have an Update Info button just below the ID slot when an ID is in it.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2867 316c924e-a436-60f5-8080-3fe189b3f50e
Fixed some issues with paper.
Slightly adjusted the atmospheric door sprites.
Added some SMES assembly sprites.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2829 316c924e-a436-60f5-8080-3fe189b3f50e
- Stopped an exploit to get to centcom (for justice)
- Added 5 second cooldown to printing requisition to stop spam (also for justice)
- Atmos pipes are now backpackable and do damage because they're FUCKING PIPES (not really for justice but just a pet peeve)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2700 316c924e-a436-60f5-8080-3fe189b3f50e
/obj/effects is now /obj/effect.
/obj/station_objects is now /obj/structure.
Did a bit of minor blob work.
The Bay 12 body bags were replaced with closets because having two sets of code that do almost the same thing is silly.
Changed back a few of the last jobproc edits as the remove from list before assign was a check to see if the mob was fucked up and if it was remove it so we did not check it again as it would still be fucked up.
The medbay/tox monkeys names are random once more. More random name monkeys will help with changeling and clean up the observe/mob menus.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2324 316c924e-a436-60f5-8080-3fe189b3f50e
Two new categories were made: station_objects and effects. station_objects, which I'm sure someone will want renamed to 'structures' contains the objects which don't need process() or power code.
Effects contains objects which are either landmarks, triggers, spawners or decal.
Screenshot:
http://www.kamletos.si/new%20object%20tree.PNG
I didn't notice any bugs, but with a revision editing 276 files of byond code, you never know.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2323 316c924e-a436-60f5-8080-3fe189b3f50e
Laser Cannon:
After IRC talk cost went up by 2k diamonds and 1k glass
Heavy version removed as it was more or less the same as the normal
Cargo:
cancelorder commented out as it is broken and throws runtimes. I don't really have the time or will to dig though the code and fix it right now. If anyone else or the guy who added it wants to fix it be my guest.
runtime error: Cannot read "/datum/supply_order".object
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2009 316c924e-a436-60f5-8080-3fe189b3f50e
- Their AI has been fixed. Previously, when they began "starving" they would lock up when they located a target. This was because I was only allowing Metroids to attack people when they were only attacked themselves.
- Small stun time added to wrestling Metroids off or beating them off with objects.
- You should now not be able to enter mechas, cryos and sleepers if you have Metroid on your head.
Cargo:
- You can now cancel cargo orders.
Miscellaneous:
- Manifests no longer show "unassigned" for everyone on round start.
- The manifest is updated realtime, in that when new arrivals arrive or a job is changed, the information gets passed onto the central database.
- New arrivals now generate security records, medical records, etc. Jubilations!
- I, perhaps, have increased the efficiency of the reaction system. Preliminary tests confirmed that it's slightly faster, but I worry about whether I may have ruined someone's vision of a perfect multiple reaction system. This "change" is nothing more than adding a break; line to the end of a loop. If this proves too buggy, I'll just revert it.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1952 316c924e-a436-60f5-8080-3fe189b3f50e
Currently there are three - PASSTABLE, PASSGLASS and PASSGRILLE. PASSTABLE - same as TABLEPASS, PASSGRILLE - can this atom pass through grilles and PASSGLASS - can this atom pass through windows, glass doors, etc. Most can_pass() procs were updated.
Added checkpass atom proc to check if this atom has certain pass_flag set.
- Added proc/sanitize_simple() and proc/strip_html_simple(). sanitize_simple does not html_encode the string and strip_html_simple does not sanitize it. Additionally, sanitize_simple and sanitize can take associative list of key-val chars as second argument, where key is char to searh for and val is replacement.
- Added datum/gas_mixture/proc/return_volume() and datum/gas_mixture/proc/return_temperature().
- Added proc/tg_text2list() and proc/tg_list2text(). tg_list2text is slower then dd_list2text, but processes associative lists differently (it adds not the keys, but associated values). tg_text2list is somewhat faster then dd_text2list.
- Added proc/listclearnulls(), proc/difflist(), proc/intersectlist() and proc/uniquemergelist(). Check the code comments for more info.
- Mechs can hold 3 equipment pieces. Gygax can hold 4.
- Tweaked global_iterator CRASH report.
- Fixed mech pilot ejection if mecha was destroyed.
- Fixed mech fabricator process() waiting for sync() to finish.
- Fixed mech fabricator Topic() waiting for process_queue() to finish.
- Some bugixes related to global map and random sectors.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1722 316c924e-a436-60f5-8080-3fe189b3f50e