Cleaned up the code.
Removed the copy and paste of the PDA medical scanner.
Removed monkey gamemode checks.
Removed the unused PDA detective scanning code.
-Added logging for admins editing objectives
-Added logging for admins adding new antagonists
-Changed the antag role assignment buttons to something more appropriate for the game modes. Will now tell you if someone is loyal (implanted).
-Added a isloyal() proc to check if a mob is loyalty implanted.
-Made the headrev message more noticeable
There wasn't much feedback, so I just threw together something acceptable, not being able to think of anything particularly clever.
- Universal bug: atmos analyzer or subspace analyzer
- Sabotage bug: Igniter, infrared tripwire thing, or subspace amplifier
- Network bug: Radio, signaler, or subspace transmitter
- Advanced bug: Detective scanner, pAI card, or scanning module stock part
Department channels that are turned off now cannot be broadcasted into.
EMPs will now shift the frequency of a radio a bit.
This is supposed to make EMP a viable option for a traitors or nuke agents that are looking to take someone out without the entire station knowing about it.
Signed-off-by: dumpdavidson <gtb.schmidt@gmail.com>
Adds an associative list sorter to the helper procs. This will sort a list while maintaining the key=value structure.
The tracking functions of the camera bug will now auto-refresh if you keep the window open. The functionality was there but broken previously. This allows you to creepily stalk someone or observe a sensitive area.
The camera bug is now extensible. If you add an extension of certain types, the bug will have additional functionality. A screwdriver will remove the existing extension. Additionally, an admin/testing version of the camera bug can be created with the research admin spawnable item.
This is not the final version of this code; sane item types for the extensions must be chosen. I do not have any that are feasible right now.
New sprites by Cheridan.
Tape recorders now use tapes.
Tape recorders can no longer be emagged (probably temporary)
Tape recorders can no longer print transcripts (may be replaced)
-Turns out there was already a Gaussian PRNG proc already, used by mechs and turrets. I've replaced it with my one as mine has almost half the cost. (currently broken! still waiting for fixes to be pulled!)
-replaced between(min, val, max) with Clamp(val, min, max)
-get_turf(thing) now uses var/list/locs to locate its turf, rather than iterating up through loc of its loc of its loc...etc
-sign(num) moved to maths.dm
-InRange(val, min, max) replaced with IsInRange(val, min, max) (they were identical)
-Removed ismultitool() iswrench() iscoil() iswire() iswelder() iscrowbar() etc
-removed modulus(num) as abs() performs the same task! *roll-eyes*
-removed get_mob_with_client_list() as it is no longer needed (we have var/list/player_list now)
-removed get_turf_or_move() as it simply called get_turf
-removed get_turf_loc() as it was identical to get_turf()
*Additions:*
-The "Declare Ready" link in the lobby will automatically become "Join Game" if the round starts before you declare ready, so you don't have to click it twice
* Edited tools.dm: Fixes "screwwy" typo in screwdriver description
* Edited paper.dm: Updates DJ station instruction sheet in light of the removal of the broadcaster and receiver from the DJ station
* Edited lib_items.dm: Fixes typo in "unwrenched" in a bookshelf deconstruction step
* Edited tgstation.2.1.2.dmm: Adds updated DJ station sheet to DJ station, replaces missing disposal pipe underneath HoP office door.
* Edited utility_closets.dm: Fixed oxygen closet description
* Edited DJ station paper to read better
<Ikarrus> So we have the problem of some HoPs disregarding their jobs just to act like security/p2w right?
<Ikarrus> I was thinking removing the HoP's sec radio channel would help
<Ikarrus> I feel like sec radio is just a remnant of old code and design
<Ikarrus> and his role has since become more specialized
<Ikarrus> I don't feel he needs it, and it would help distance him from security
* Vanilla - Sees its own bugs only
* Universal - Sees all bugs
* Networked - Sees all cameras
* Sabotage - Sacrifices a bug to EMP a camera
* Tracker - Lets you monitor who is near a camera and what camera a person is near. Some limitations.
-Adds service headsets to barman/botanist closets (chef doesn't get one for now since he doesn't have a closet, all his spare stuff is just placed in a crate)
-Adds a Service headset channel, given to the botanists, barman, and chef. The HoP also gets the service channel on his headset.
Note: The Service Preset Server will have to be added to Telecomms on the map before the channel is usable. I'll put up the map when/if this gets merged.
Camera bug acts as a mini-camera computer with access to all bugged cameras.
Adjusts camera checks to determine who is looking through them; instead of checking their machine, it now checks the client eye.
Adds camera bug to the uplink list with a cost of 2TC.
Camera bug acts as a mini-camera computer with access to all bugged cameras.
Adjusts camera checks to determine who is looking through them; instead of checking their machine, it now checks the client eye.
Adds camera bug to the uplink list with a cost of 2TC.
-New sprites for about half of the headsets:
-Cargo headset now tan instead of white, science now has a unique headset instead of using the command headset sprite (wtf?), medical headset center changed to green from blue. New sprite for medsci headsets.
-Command, centcomm, & basic headsets tweaked a bit, with better shading.
-Made descriptions for command headsets less bad.
Created a new subtype from radios, /obj/item/device/radio/bounced They have no difference except from spawning with their speakers off.
The only reason is to reduce in a 30% the amount of loops in the general channel chat lag.
DNA modification uses normally distributed random numbers. Radiation strength dictates the standard deviation of the change in the hex character which is hit (higher output means greater chance for a large change) . Similarly, radiation duration dictates how likely we are to hit the hex-character we clicked on (longer duration means more likely to hit). Irradiation is strength*duration. All balancing is done via multiplier defines so you can rebalance it easily.
DNA blocks and structuring all use defines. Making modification/expansion easier. I'll likely expand this into a datum-based system to allow more interesting features, reduce code further and allow admins to interact with the way dna strings behave.
DNA strings can be spliced together using merge_text().
e.g. string 1: "Hello World"
string 2: "Seeya______"
result: "Seeya World"
This isn't used except for admin-spawnable SE injectors at the moment.
r_hair, g_hair, b_hair, r_facial, g_facial, b_facial, r_eyes, g_eyes, b_eyes were removed and made into 3 short hex-colors.
Skin tones now support colours other than shades of brown. I've had to restrict it heavily until other stuff is done. Skin tones include Albino Caucasian, Oriental, Mediterranean, etc.
Data disks and DNA injectors were reworked to use associative lists so transferring data is just a matter of doing list.Copy()
var/dna is now defined at /mob/living/carbon level. Only monkeys and humans may have dna currently. Support is there for all carbon-based lifeforms to have dna.
DNA modifier console has almost all controls on one screen.
UIs and UEs can be injected separately (appearance and name, respectively)
dna helper procs like ready_dna() and such were changed to make them more versatile. There is now a hardset_dna() proc as an alternative to ready_dna which can initialize dna with properties passed into it or update an existing dna string (useful for cloning and antag spawning)
Every block of SEs are in randomised positions.
Disabled automatic logging of world.log, as it produced undesirable behaviour.
Mr Muggles and God Emperor of Mankind disks removed.
Floor() removed. (it was completely uneccesary, that is what round() is).
Fixed spelling mistakes in modularchangling.dm (thanks tenebrosity)
Tanning removed from beaches (again)
Experimental: monkeys and humans do not have dna until first attempt to read dna (using check_dna_integrity(mob))
This is mainly due to the way everything is hardcoded into New().
Changelog.html updated
Signed-off-by: carnie <elly1989@rocketmail.com>