Committing for Zekkeit/39kk9t
- Attack logs now display the reagents the pill/snack had when you forced it down someone's throat.
- List entries can now be edited and deleted! (don't try editing any of the contents list entries, it spits a runtime and I don't know how to make it uneditable)
- Fix for issue 598. Now pAI carriers can re-enable the pAI radio settings.
- Adminmoreinfo now displays the status of the mob.
- Added a confirmation message to unjobbanning from the Display Job bans panel.
- When being exposed to a virus, resistances are now taken into account. In addition, list entries that contained a virus that has been cured are now deleted.
Proposed commit: http://nanotrasen.com/phpBB3/viewtopic.php?f=16&t=9262
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4008 316c924e-a436-60f5-8080-3fe189b3f50e
simplified armour rune code a little bit.
Added IP and ID fields to the unban panel. because I told somebody that I'd add it for them aaaages ago but forgot.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4003 316c924e-a436-60f5-8080-3fe189b3f50e
Changed 'traitor' headsets to 'syndicate' headsets to have it make a bit more sense. Syndicate encryption is tied to the keys, so anything with a Syndicate Key can hear the Syndicate Channel.
Also, added 2 intercoms to the Nuke OP shuttle that are on the Syndicate frequency and have the needed encryption.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3991 316c924e-a436-60f5-8080-3fe189b3f50e
- Absorbing someone with the same real_name as a prior victim now properly adds to your genome count for end-round report
- Done via new changeling datum var (ugh) called absorbcount that is just a number that increases on any successful absorb (also increases properly in the event of absorbing another changeling,) couldn't see a better way about this without overhauling the entire changeling datum layout, objective checks, etc.
Removed direct narrate (not global) rank check, since everyone gets subtlemessage and the like it didn't make sense to restrict this
Readded timestamps on fingerprints_hidden which I guess were removed during a revert?
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3968 316c924e-a436-60f5-8080-3fe189b3f50e
Decided to add this after one of our admins put a human inside a toilet cistern causing untold mayhem in the runtime log :P
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3938 316c924e-a436-60f5-8080-3fe189b3f50e
I'm currently working on moving all of the vars in mob_defines.dm and some procs in mob.dm into more fitting places. For example, ghosts and simple animals can not be cloned, so they do not need a cloneloss var. Cloneloss would be better fitting to /mob/living or even /mob/living/carbon.
By moving these defines into proper children of /mob we lower the amount of resources that must be set aside every time a mob is created and we lower the amount of data that gets transfered between mobs when we combine, transfer or transform them. In theory, this should help free up some resources and combat lag.
Due to how integrated some of these defines are in the rest of the code, I'm going to be committing this cleanup in small batches. Doing it this way instead of one massive commit means that bugs will be easier to locate and identify. It is also less likely to overwhelm players with bugs, and if it still does, it will make it easier for us to revert only the section that is causing problems. Smaller commits also means merging with existing code will be less of a nightmare and has less potential for merging mistakes.
One of my goals in this cleanup is to add a description to every single variable in mob defines. While some of them are self explanatory, there are some there that are used in horribly obscure ways on top of having no comment to describe their use.
-----------------------
Mob defines moved to living:
- last_special*
- bruteloss
- oxyloss
- toxloss
- fireloss
- cloneloss
- brainloss
- halloss
- hallucination
- hallucinations(list)
*Note: I believe this variable is not needed, but the code it is used in (the resist verb) is cluttered and messy. That chunk of code probably use a re-write. I'll put it on my TODO list and if I survive mob_defines I'll try to get around to it but if anyone wants to do it for me, that would certainly help!
-----------------------
Mob procs moved to living:
- getBruteLoss()
- adjustBruteLoss()
- getOxyLoss()
- adjustOxyLoss()
- setOxyLoss()
- getToxLoss()
- adjustToxLoss()
- setToxLoss()
- getFireLoss()
- adjustFireLoss()
- getCloneLoss()
- adjustCloneLoss()
- setCloneLoss()
- getHalLoss()
- adjustHalLoss()
- setHalLoss()
- getBrainLoss()
- adjustBrainLoss()
- setBrainLoss
Mob procs moved to carbon:
getDNA()
setDNA()
-----------------------
Mob verbs moved to carbon:
- Sleep
- Lay down / Get up
-----------------------
The : operator...
The thing that has been killing me through this whole cleanup is people using or copy/pasting the : operator everywhere.
*** Please use obj.var_or_procname. Do not use obj:var_or_procname ***
Using obj:procname will not throw a compiler error if obj does not have that specific var or proc. This means that the coder making changes will NOT be informed of an error which will result in a proc failing, potentially being completely unusable and definatly causing a runtime error.
With that said, I fully anticipate that most bugs (if any) caused by this mob define cleanup to be the result of : operators.
I've been replacing many : operators in favour of the . operator as I've been going, most noteably I went out of my way to remove almost every : operator from the 4000+ line Chemistry-Regents.dm
Exceptions:
- Water: Turf and Atmos related vars. I'm not familiar with the members and methods in those class' hierarchy.
- Silicate: because it's commented out and I honestly dont see it returning.
- Thermite: Turf and Atmos related vars.
- Corn Oil: Turf and Atmos related vars.
Final note: While this may be the source of some mob-related bugs, there are two other revisions that have been committed between now and the last time either of the the two tgstation servers have been updated. These revisions both touch mob-related files. I'm not blaming these other revisions for anything, especially since one of them is mine anyway, I'm just listing them here for refrence to help quickly identify any problems.
- My human/life() changes in r3925
- Carn's life() standardizations in r3933
Stuff unrelated to mob defines:
- Fixed borgs and such being able to go into DNA modifiers.
- Changelog updated and I added Sieve to the list of coders.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3934 316c924e-a436-60f5-8080-3fe189b3f50e
* Dragging someone while injured (brute) will have a small chance of injuring them further that increases depending on how damaged they are. This coincides with the blood spatters that are already generated.
* Blood is now actually lost from the person being dragged.
* Added splints that can be applied to broken arms and legs, and will reduce effects of broken limbs. These can be removed the same way as handcuffs. They show up on the mob and on examine.
* Added an autoinjector that can only hold five units, but acts like a hypospray.
* Added an advanced medical kit that Medical Doctors spawn with that has Advanced Trauma Kits, Advanced Burn Kits, autoinjectors, and splints.
* Health Scanners now show unsplinted fractures ONLY in arms or legs.
* People in critical (less than -50 health) from external trauma (100+ damage from brute and/or burn) bleeding, and with unsplinted limbs, will send a message to anyone trying to drag them, to warn them it would be a bad idea trying to move them. They will suffer a lot more damage if dragged while lying down.
* The correct procedure is therefore, A) Bring a roller bed, or B) Splint all limbs, stop all bleeding with gauze, and then drag them.
* Fixed CPR being performed at weird health levels.
Replaced every l_hand = and r_hand = and all that if(hand) crap to use standardised procs. This means we can use procs like Dropped() reliably as they will always be called when things are dropped.
Thorough documentation to come. But generally, if you want a mob's icons to update after deleting something in the inventory...use drop_from_inventory(the_thing_you_wanna_drop) just before deleting it. If you wanna put something in a mob's hands use put_in_hands() (or one of the variants). It'll try putting it in active hand first, then inactive, then the floor. They handle layers, overlays, screenlocs calling various procs such as dropped() etc for you. Easy
mob.equipped() is now mob.get_active_hand() because there was another totally unrelated proc named equipped() and stuff was confusing.
Weakening was made instantaneous.
Minor optimisations for human/handle_regular_status_updates(). I'll port these changes over to the other mobs next. Basically it should stop it constantly incrementing every status effect even after death.
umm... bunch of overlays related fixes... I think that's everything. :/
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3900 316c924e-a436-60f5-8080-3fe189b3f50e
Several head objects path changed so they are not helmets, head means can fit on your head, helmet was securities helmets, space helmets currently still helmet.
Cult restricted job list now has the sec force + cap because you can’t convert them as is.
AI removed from protected traitor jobs as malf is currently effectively out of commission.
A Protected list was added to changling.
Removed the furry mob files that were not checked.
Moved two unchecked files to unused
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3896 316c924e-a436-60f5-8080-3fe189b3f50e
the words for mob names, keys and ckeys. These are then displayed in bold and
black with a (?) next to them. Clicking the questionmark will display additional
information about the mob.
Screenshot:
http://www.kamletos.si/Adminhelp%20parser%206.PNG
Revision: r3778
Author: baloh.matevz
- slightly altered the pray format to include a (SC) link, which stands for
'spawn cookie'. This attempts to spawn a cookie in the hands of the person who
prayed. It's intent is to be a consolation prize when the prayer cannot be
answered, due to it ruining the round. Only humans will get a cookie.
Screenshot:
http://www.kamletos.si/cookie%20spawner.PNG
Revision: r3766
Author: baloh.matevz
- Added channel-specific admin muting. Admins can now mute someone from IC (say, me and whisper), OOC, PRAY, ADMINHELP (adminhelp, admin pm and asay) and DEADCHAT (say while dead and dsay)
- Added a (?) to adminhelps and prayers which displays the same quick overview that all the other (?)-s show, but for the person adminhelping or praying.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3888 316c924e-a436-60f5-8080-3fe189b3f50e
-Asteroid floors cannot be burned into metal tiles anymore
-Added some better comments in the turf.dm as well
-Fixed Issue 329, so Triumvirate works again
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3886 316c924e-a436-60f5-8080-3fe189b3f50e
The MC Delayer in the screenshot is an item coded for testing purposes which simulates a proc break. It is not part of this commit. Clicking on it will open up the view variables panel for the item.
Last-processed-item logging is supported for diseases, processing objects and machinery.
Screenshot:
http://www.kamletos.si/MC%20debug%20report.PNG
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3848 316c924e-a436-60f5-8080-3fe189b3f50e
Added resources.dm where FILE_DIR can be defined manually. It should speed clean-compiles up by reducing the number of places the compiler searches for resource-files to put in the resource-cache (stuff in ' ' quotes. e.g. icon='human.dmi').
To use manual FILE_DIR defines go to:
Build > Preferences for tgstation
in dreammaker. Then un-tick "Automatically set FILE_DIR for sub-directories"
It also means you have less crap to clean up in the .dme before every commit C:
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3820 316c924e-a436-60f5-8080-3fe189b3f50e
update_clothing() has been broken up into it's key parts. A full explanation can be found in code/modules/mob/living/carbon/human/update_icons.dm
the tl;dr of it is that overlay updates are no longer called by the gameticker. Instead they are called by procs such as u_equip db_cick etc. This means faster updates (although admittedly, more of them can be called per tick). This however is offset by the fact that specific overlays can be updated now, vastly improving its efficiency. This will especially help when there are large numbers of dead mobs.
Fixed the throw code for TKgrab so it can be toggled.
Cloaking for aliens/humans/ninjas was changed. It's very crude at the moment and for that I apologise. But it works and is very efficient.It also stops cloaked individuals becomming invincible due to people being unable to hit them (even when they know exactly where they are)
Fixed a bunch of bugs with damage-overlays. They were updating FAR FAR to frequently. They were also horribly inefficient. They should now be virtually seamless when updating and only use cached icons, so they aren't affected by lag as badly. This may help with explosions lag a little.
There's still a tonne of stuff I need to refine with this. I'll be refining it down into some helper procs to reduce on code duplication and such
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3811 316c924e-a436-60f5-8080-3fe189b3f50e
- Fixed a problem where the adminhelp parser would give a "adminname attempted to override the admin panel!" when clicking the links in (?)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3785 316c924e-a436-60f5-8080-3fe189b3f50e
- slightly altered the pray format to include a (SC) link, which stands for 'spawn cookie'. This attempts to spawn a cookie in the hands of the person who prayed. It's intent is to be a consolation prize when the prayer cannot be answered, due to it ruining the round. Only humans will get a cookie.
Screenshot:
http://www.kamletos.si/cookie%20spawner.PNG
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3766 316c924e-a436-60f5-8080-3fe189b3f50e
hrefs". If on, it logs every link clicked. It may be useful for 'debugging' and
spotting malicious clients.
Anti-spam delay raised to 7 ticks. A little over half a second.
Revision: r3722
Author: elly1...@rocketmail.com
* Adds Skrell, they have their own language which is used by typing :k
* Adds soghun language that can be used by typing :o
* Skintone of all species can now be changed.
* Eye colour of all species, except Skrell, can now be changed.
* The preview picture in setup should now be fully accurate for non-human species (excluding Tajaran ears)
* Various fixes for talking, such as talking as your real name while unknown.
* Fixes pAI's universal translator not being universal.
* Added admin update mob sprite command, which should solve any buggy transformations.
* Fixes and slightly nerfs claw attacks.
* Cosmetic fixes for alien species
to MOB_LAYER.
Fixed r501 (underwear not showing) Cause: bad indentation
A possible fix for some very odd bugs caused by restarting the MC related to the
usr variable being passed into the MC. *shrug* Very hard to test.
Removed the need for the world to be in Debug2 mode to edit ticklag as the verb
is hidden behind another proc now anyway, and it's become more of an annoyance
than a thing to stop people accidentally clicking it.
Revision: r3695
Author: elly1...@rocketmail.com
they are banned. Another perk of using IsBanned and not client/New() is that we
now disconnect potential clients before they are given a client object and start
downloading any resources...which is like a 30Mb saving per failed login (after
each server update).
Tidied up the Login and Logout procs for mobs. Moved the sandbox buildmode stuff
to mob/living/login.dm so you shouldn't have to log-out and back in to enable
build mode.
Removed the logged_in variable for mobs as it was the most pointless thing ever.
Made the multikeying checks a separate proc. People are checked the second they
get a new_player mob. Its notices are also less spammy.
Changed AllowUpload from the default. It now restricts uploads of over 1Mb to
prevent admins uploading massive .Oggs and lagging the server to hell whilst it
sends the ogg to 40+ players. Feel free to change the limit.
Moved some of the core client procs into one folder; they should really be
together and not in /modules/mob/mob.dm and various other places. I will be
giving the client stuff a belated spring-clean over the next few commits, just
got to iron out some of the kinks.
Revision: r3694
Author: elly1...@rocketmail.com
* They have their own channel msay, which all mods and admins can use.
* They cannot see or use asay, but they can see and respond to adminhelps and admin PM's.
* Their PM's will come up in maroon and show MOD PM.
* They have a moderator panel that shows name, ckey, IP and CID.
* They can use Set-Play, Set-Observe, Show-Skills, and can read and write Player Info.
* They can Deadmin themselves for the round.
Other Changes:
* Player info now shows the rank of who typed what.
* Admins are messages when player info is modified.
* Tweaks to prevent moderators using some commands.
Anti-spam delay raised to 7 ticks. A little over half a second.
Admins can no longer be banned except by deadminning them or banning through the host's pager.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3722 316c924e-a436-60f5-8080-3fe189b3f50e