Removed the invisibility verb for hunters. They now cloak when using stalk intent instead. :3 rawr
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3935 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
Tried to standardise the (confusing as all hell) handle_regular_status_updates() procs for monkeys alien/humanoid, alien/larva, brains and humans.
Removed clamp_values as per Rockdtben's request.
Hopefully this should make those procs a lot easier to read and work with as well as reduce the number of calculations done every call.
Admin's rejuvinate verb cures disabilities, sdisabilities and sight/hearing.
Xenos can actually use their sleeping icon properly now.
If I've broken anything let me know directly and I'll have it fixed/reverted within 24 hours.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3933 316c924e-a436-60f5-8080-3fe189b3f50e
Chameleon projectors no longer let you move freely in space.
- I realize the way I fixed this is terrible, but the whole relaymove() proc in chameleon projectors is terrible. I was unable to rewrite it without breaking it completely so this fix will have to do.
Runtime fix for facehuggers having a null target (the mob they're attacking.)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3930 316c924e-a436-60f5-8080-3fe189b3f50e
- Renamed the obj/hud show_otherinventory var to inventory_shown
- Added the F12 hotkey which hides most of the UI except for the intent switcher, hands, health indicator, damage indicators and the other pop-in indicators on the right. The proc is called /mob/verb/button_pressed_F12(), the verb abbreviation is "F12" and it's hidden, so it won't show in the info panel. This currently only works for human mobs.
Screenshot:
http://www.kamletos.si/minimal%20UI.png
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3926 316c924e-a436-60f5-8080-3fe189b3f50e
Set the solar control computers to 'off' by default since you have to set them off then back on again to get them working properly anyway.
Fixed a typo in glass/attackby() causing lit-glass tiles to not be created. Fixes issue 593
Moved certain procs in human/life.dm() into an if(stat != DEAD). This means that certain procs will update only if the mob is alive.
Affected procs:
- handle_virus_updates()
- handle_changeling()
- handle_mutations_and_radiation()
- handle_chemicals_in_body()
- handle_disabilities()
- handle_random_events()
- update_canmove()
- - If dead, it forces mob.canmove to 0, meaning you don't get to be the walking dead.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3925 316c924e-a436-60f5-8080-3fe189b3f50e
- Fixed a library problem which prevented you from ordering books by their SS13ID.
- You can now once again properly retitle books and change their authors.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3924 316c924e-a436-60f5-8080-3fe189b3f50e
The cult tome/desk now gives off light.
The librarians back room is decorated with cult floors to go with the "forbidden knowledge" theme.
Removed the extra paper from the holo-deck.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3923 316c924e-a436-60f5-8080-3fe189b3f50e
- Changeling parasting now only affects muscles. It weakens you, but does not silence you. Added this to the changelog.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3922 316c924e-a436-60f5-8080-3fe189b3f50e
Added some WIP master controller alternatives. Located in code/WorkInProgress/carn They should stop the MC doubling up and smooth the lagspikes over a little bit (depending on how they are set up). They need a bit of work still, but are functional. Just untick code/game/master_controller.dm and tick the version you want to try out.
Committing Giacom's pai remote-signaller code.
Minor map fix for Travis (extra grille NE corner of atmos)
Added a debug tool that prints powernets into a text-based map.
Fixed a runtime that occurred everytime somebody cut a laid cable. It was updating the power networks twice each time >_>
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3920 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
Culprit code:
/obj/item/clothing/gloves/latex/attackby(obj/item/weapon/cable_coil/O as obj, loc)
if (istype(O) && O.amount==1)
var/obj/item/latexballon/LB = new
if (usr.get_inactive_hand()==src)
usr.before_take_item(src)
usr.put_in_inactive_hand(LB)
else
LB.loc = src.loc
del(O)
del(src)
else
return ..()
I was going to fix said code but after seeing that BALLOON is spelled incorrectly, that it uses amount == 1, balloons have no in-hand sprite AND don't even have a desc I decided I shouldn't waste my time when the authorsimply couldn't be bothered. Commented it out.
Runtime fix for:
untime error: Cannot modify null.icon_state.
proc name: insert key pressed (/client/verb/insert_key_pressed)
source file: mob_movement.dm,84
Cause: AIs don't have intents and stuff.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3911 316c924e-a436-60f5-8080-3fe189b3f50e
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
* Reworked job randomizing
* Added some user feedback to recharger
* Added a new preference setting in job preferences. This setting will make you get a random job if your picked occupations were already filled. This defaults to on to make less graypride.
* Updated changelog
I have tested the new job randomizing with friends and it works good, not sure about large scale however. Feel free to revert this change if it fucks up everything. (and notify me of problems)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3893 316c924e-a436-60f5-8080-3fe189b3f50e
-Added a couple salads and golden apple tarts for the chef.
-Renamed the 'sleep rejuvinate' chemical and gave it a new id. If there was a REASON for it having the same ID as sleep toxin(i can't imagine why), please comment.
-Capsaicin and Frost Oil reworked heavily. They now make you much hotter/colder depending on how much you consume. It's not really wise to consume either in excessive amounts. Drinking coffee removes some frost oil from your system.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3891 316c924e-a436-60f5-8080-3fe189b3f50e
- Item declarations have no place in mob code. MMI and pAI code being the exception.
Removed a cyborg upgrade that made them immune to flashes
- An item that removes one of the very few weaknesses a borg has? No thanks.
Removed mob\living\silicon\robot\robot_defense.dm
- It was an empty file.
Removed uplink.dm and uplink_kits.dm from WorkInProgress
- Duplicate files: they're already in the main chunk of the code.
- They are no longer a work in progress.
Here's hoping I dont break anything with this commit...
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3890 316c924e-a436-60f5-8080-3fe189b3f50e
- 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
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
-Both Ambrosia forms have had their reagent contents modified to prevent going over the 50-unit cap at high potencies. Fixes issue 469. Ambrosia Deus now contains space drugs instead of poison, as it ended up being more deadly in practice than I intended.
-Drinking milk removes capsaicin from your body~
-Frost oil should hurt less upon consumption.
-Liquid plasma can be converted back into solid plasma sheets, by mixing 20 plasma, 5 iron, and 5 frost oil.
-Pumpkins can be carved with knives now.
-Added additional checks to prevent hydro tray stats from going out of bounds when injected with certain chemicals.
-Added effects for holy water on hydro trays.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3883 316c924e-a436-60f5-8080-3fe189b3f50e