Commit Graph

5039 Commits

Author SHA1 Message Date
elly1989@rocketmail.com 3941c9b86c Standardised the handle_regular_status_updates() procs for alien hunter, queen and sentinel. They were just copypasta so I fixed the updatehealth() procs and removed the unneeded code.
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
2012-06-28 17:37:42 +00:00
johnsonmt88@gmail.com 80b15df54b ** Mob Define Cleanup: Part 1 **
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
2012-06-28 17:06:19 +00:00
Erthilo 92b7eb534a Fixes sleeping resting message spam. 2012-06-27 22:34:55 +01:00
elly1989@rocketmail.com ea333ff216 Ugh another big 'Carn broke everything' commit.
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
2012-06-27 19:47:17 +00:00
Erthilo 1e63e35ab4 Fixes double icons in examine, and random " on his head" " on his groin" messages. 2012-06-27 20:29:40 +01:00
elly1989@rocketmail.com 1cd5085a0f Fix for update_inv_l_hand() and update_inv_r_hand(). Forgot to uncomment these again after testing in a previous commit. :/
Thanks Nodrak

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3932 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-27 18:58:37 +00:00
Erthilo 4460bc2011 Simple animals can now use the Me verb. 2012-06-27 18:09:32 +01:00
johnsonmt88@gmail.com db89a2aefb Viruses no longer re-infect people who have been vaccinated or otherwise cured.
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
2012-06-27 17:05:27 +00:00
baloh.matevz 9f3005255c - Renamed the obj/hud other_update() proc to hidden_inventory_update()
- 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
2012-06-27 08:13:23 +00:00
johnsonmt88@gmail.com da5bfd3b0f Setting people's criminal status via SecHUDs now require the user to be alive, and to actually be wearing the HUD.
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
2012-06-27 06:16:31 +00:00
elly1989@rocketmail.com 5d3c6a9259 Please stop committing all the #define FILE_DIR stuff every commit. Dreammaker updates it automatically anyway. Just remove that section prior to commit.
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
2012-06-26 01:47:40 +00:00
mport2004@gmail.com 88c867ea25 Fixed a supply shuttle runtime due to the stamping missing a null check.
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
2012-06-26 01:20:19 +00:00
Erthilo c95a5a512c TG: - The adminhelp sound is now a character setup option for admins of any rank.
Revision: r3784
Author: 	 baloh.matevz
2012-06-26 01:00:06 +01:00
CIB d8a5824cbc Merge pull request #1392 from Erthilo/master
Medical System Updates + Bug fixes
2012-06-25 02:52:05 -07:00
CIB 47aca7ca44 Merge pull request #1393 from CIB/master
Fixed a derp
2012-06-24 19:30:27 -07:00
cib 7f5db7ab68 Fixed BE_CULTIST/BE_PAI derp. 2012-06-25 04:27:19 -07:00
Erthilo bb8f21a431 Possible fix for everyone being referred to as "It". 2012-06-25 01:19:47 +01:00
Erthilo 67c5e8e3a8 Medical System Updates...
* 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.
2012-06-25 01:18:55 +01:00
baloh.matevz 159ff955a6 - Fixed the old iconset's equip button fitting a million batons into your suit storage slot.
- Fixed aliens not being able to tell which hand they have selected

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3913 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-24 14:27:58 +00:00
elly1989@rocketmail.com b21a3ed742 Fixes issue 586.
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
2012-06-24 09:54:36 +00:00
elly1989@rocketmail.com 65a84484cf Removed a debug message.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3909 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-24 09:01:17 +00:00
elly1989@rocketmail.com 4f910f122f Runtime fix for db_click when clicking the mask inventory slot with an empty hand. This proc will get rewritten anyway (when I've gathered enough courage and/or vodka :3)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3907 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-24 07:28:42 +00:00
SkyMarshal 315e027b05 Merge pull request #1385 from SkyMarshal/BugFixes
Sanity for the "give" command, changelog.
2012-06-23 21:39:46 -07:00
SkyMarshal 484c01498d Sanity for the "give" command, changelog. 2012-06-23 21:38:39 -07:00
Erthilo a4f3cada24 Compile error fixing. 2012-06-24 02:42:30 +01:00
Erthilo ce6cd204f2 Accidentaly reverted a file. 2012-06-24 01:57:12 +01:00
Erthilo b3285fd716 Updated use of gender proc. 2012-06-24 01:54:48 +01:00
Erthilo 0f8cf93095 Merge branch 'master' of github.com:Baystation12/Baystation12 2012-06-24 01:53:10 +01:00
Erthilo 163c269cc3 Fixes disarm not working due to armour. 2012-06-24 01:52:44 +01:00
Erthilo f88f097777 Fixes ghost with ghost ears off hearing whispers. 2012-06-24 01:23:43 +01:00
Erthilo 85f75e639c Fixes morph and appearance editing not updating sprites. 2012-06-24 01:12:16 +01:00
Erthilo a5adf9377f Fixes changing hairstyles if you pick the same species. 2012-06-24 01:11:31 +01:00
SkyMarshal 0737f64d12 Goddammit 2012-06-23 17:07:33 -07:00
mport2004@gmail.com 69753b0190 Worked on blob mode a bit
Readded the AM stuff to the dme
Added another explosion edit from Willox


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3903 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-24 00:03:31 +00:00
SkyMarshal 3efa1d4e6b More fixes. 2012-06-23 17:00:28 -07:00
SkyMarshal 25757511d6 Fixed a derp 2012-06-23 16:36:34 -07:00
SkyMarshal 62c3d1d11d De-retarded wound system. 2012-06-23 16:35:58 -07:00
elly1989@rocketmail.com 48088b79d9 ugh...this was horrible. I'm really sorry if I fucked anything up, I was literally going braindead towards the end.
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
2012-06-23 21:24:45 +00:00
Erthilo 00b4a234c4 Merge fixes. 2012-06-23 22:17:59 +01:00
mport2004@gmail.com c86c8e1505 Finished moving the clothes in defines over to modules.
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
2012-06-23 19:25:01 +00:00
Erthilo a9bfaf4173 TG: - Added basic heavy-duty cables, they cannot be destroyed with wirecutters,
unfortunately they currently cannot be created either. Not present anywhere on
the map yet.
- Fixed a bug with masks, which did not follow the equipment rules of the
SLOT_MASK flag.
- Fixed a problem where monkeys could not equip a backpack.
Revision: r3774
Author: 	 baloh.matevz

TG: - Added the heavy cable sprites, sprited by Thunder11.
Revision: r3775
Author: 	 baloh.matevz
2012-06-23 16:21:44 +01:00
Erthilo e7e1b8f9e8 More compile stuff. 2012-06-23 16:14:00 +01:00
baloh.matevz ffbed502f1 - Added a privacy poll to the startup process (feedback database needs to be set up for it to show up.). The intention of this poll is to get a general playerbase opinion on whether player-specific data should be gathered to help with statistics as well as to allow in-game polls.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3894 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-23 15:10:18 +00:00
Erthilo 8b4033c410 TG: - Ported cable restraints from Bay12. You make them by using a verb on cable
coils. Takes 15 lengths to make, applied the same way as handcuffs, they have
the same effects as handcuffs, but only take 30s to remove if you resist. They
can also be removed by using wirecutters on a handcuffed mob.
- Added 4 new cable colors. Pink (ported from Bay12), orange, cyan and white.
- Engineer tool belts can now also spawn with orange wire, in addition to yellow
and red.
- Tool closets and electrical toolboxes can now spawn with cables in any of the
8 colors.
- Added cablecuff.ogg from bay12, played when you apply cable cuffs on someone
- Added this stuff to the changelog

So yeah, some stuff is credited to bay12, tho some of it was nearly enough
completely recoded.

Screenshots:
http://www.kamletos.si/wire%20colors.png
http://www.kamletos.si/cuff%20restraints.png
Revision: r3770
Author: 	 baloh.matevz
2012-06-23 16:04:24 +01:00
Erthilo f63b61cbda TG: Fixed some lag caused by improper usage of loops. Enjoy.
Revision: r3764
Author: 	 rockdtben
2012-06-23 15:39:43 +01:00
Erthilo e379715ce6 TG: - Department radio keys are now a global list and no longer a list that gets
created every single time 'say :X' is used
- You can no longer whisper when stung by a changeling or had another thing make
your 'silent' var get set.
- Added a single empty toolbelt to robotics, added a wrench and screwdriver to
toxins.
- Power cells now always spawn full. The double use of the 'charge' variable was
not good, as when creating the map it had a value of 0 - 100 to represent the
percentage of the cell's power, while it was used as a numeric representation of
the amper-hours that were still left in the cell. The problem this caused was
that cells created mid-round (cells which spawned in closets or were spawned by
admins) always started empty. They all start fully charged now. Additional
obj/item/weapon/cell/X/empty types were added if we want empty cells.
Revision: r3763
Author: 	 baloh.matevz
2012-06-23 15:36:53 +01:00
Erthilo dfb6676ebb TG: Not a whole lot going on in this commit, just more work on preparation for the
traitor factions update. Added some new sprites and weapons.

New weapon: Delivery grenade. Can spawn an x amount of mob/object y in a
constant radius. It is currently used for carp and manhack delivery grenades.

!! Important !!: Certain telecomms computers were causing very nasty machine
disruption through some very silly mishap involving re-programming a computer's
network. Basically, it was breaking machine procs every time you messed with
them. This should hopefully make telecomms a lot more stable.

Fixed a bug where the reflexes nanoaug would not actually dodge the projectile
if the person was clicking directly inside the target's 32x32 border.

I changed around some core PDA messaging functions in preparation to PDA
Chatrooms (yes Legality it's happening). However I'm going to hold off actually
implementing it until Messycakes is either completed with his PDA UI overhaul or
just stops working on it.

Committed two patches from separate people in the forums. Chemical Cigarettes by
Neek (http://nanotrasen.com/phpBB3/viewtopic.php?f=16&t=8775) and Clicking
genetics blocks by Willox
(http://nanotrasen.com/phpBB3/viewtopic.php?f=16&t=8857). Check their respective
threads for more details. Sorry I couldn't get this earlier, guys!
Revision: r3755
Author: 	 vageyenaman
2012-06-23 14:59:54 +01:00
daniel.cf.hultgren@gmail.com 0b41114584 * Fixed antag randomizing
* 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
2012-06-23 13:07:50 +00:00
cib b1774030df Issue #1366: Optimized UpdateDamageIcon 2012-06-22 22:10:26 -07:00
johnsonmt88@gmail.com ec52b9c032 Moved cyborg upgrade items out of mob code and into item code.
- 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
2012-06-23 00:12:27 +00:00