They also added extra checks to
-Everytime a mob attacked (checking for super strength and electric hands)
-Every time a mob was attacked (checking for dermal armour)
-Every time a human was shot (checking for reflex)
-Every time a human breathed (checking for rebreather)
-Every tick of human life (checking for regen)
-Every hud update (checking for radar)
Not to mention just cluttered mob code in general. I know there won't be any noticeable performance increase from this but seeing as they were never going to be finished (I asked Doohl beforehand) and mob code is messy enough as is, I think only good can come of removing the code.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5587 316c924e-a436-60f5-8080-3fe189b3f50e
Added Xmas and Xmas Eve holiday-features:
>If ALLOW_HOLIDAYS is in config.txt, random (harmless) wrapped presents will be placed under all xmas trees on z-level 1. :3
>Ian will start wearing a santahat
Added content for the end of the Mayan Calander.
Fixed the spelling of -invisible- pens
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5226 316c924e-a436-60f5-8080-3fe189b3f50e
Slightly improved beartrap code while I was there, mostly standardisation and formatting stuff as usual.
Fixed the Chaplain's PDA spawn.
Reduced the chance of stealthy hulk wall smashing. All but one of the messages will attempt to go over the radio now.
Changed hulk resist text colour to red because it was barely readable in green.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5191 316c924e-a436-60f5-8080-3fe189b3f50e
Moved some mob vars to carbon:
mob/var/handcuffed -> mob/living/carbon/var/handcuffed
mob/var/legcuffed -> mob/living/carbon/var/legcuffed
As a result, I've turned some procs into pure virtual procs and moved their code into carbon.dm.
mob/proc/restrained() -> mob/living/carbon/restrained()
mob/proc/can_use_hands() -> mob/living/carbon/can_use_hands()
The hand and legcuff portion of mob/proc/u_equip() was moved into mob/living/carbon/u_equip().
The handcuffed portion of mob/proc/show_inv() was moved into mob/living/carbon/show_inv().
Fixes issue 1114.
Made parrots immune to bear traps since parrots should be flying over them anyway.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5184 316c924e-a436-60f5-8080-3fe189b3f50e
Replaced the vault katana with a replica.
(svn actually managed a map merge, if it's broken please just revert to r5064's map, and replace the katana in the vault with a replica)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5065 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
Moved some of the static overlays such as the dither effects, druggy effect and blurry-eyes into datum/global_hud. Meaning that only one object is instanced per server rather than per mob. It reduces on code.
Commented out a green and red overlay which aren't used, which were being instanced for every mob.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4767 316c924e-a436-60f5-8080-3fe189b3f50e
Replaced usr references with mob
This means it can be called as a proc for any mob to use that code. Updated the click-procs to use this as they were using slightly different code.
Fixed an issue with AIs using the intent hotkeys
Added more sanity checks to it.
Insert key uses the same code as other hotkeys.
Commented out some unused hud-code from when we had separate intent buttons.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4766 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
Hotkey-Mode: (hotkey-mode must be on)
TAB = toggle hotkey-mode
a = left
s = down
d = east
w = up
q = drop
e = equip
r = throw
t = say
x = swap-hand
f = cycle-intents-left
g = cycle-intents-right
Normal-Mode: (hotkey doesn't need to be on)
Ctrl+a = left
Ctrl+s = down
Ctrl+d = east
Ctrl+w = up
Ctrl+q = drop
Ctrl+e = equip
Ctrl+r = throw
Ctrl+x = swap-hand
Ctrl+f = cycle-intents-left
Ctrl+g = cycle-intents-right
Admin:
F5 = toggle-admin-observe (WIP)
F6 = player-panel-new
F7 = admin-pm
F8 = (WIP)
Regular controls aren't affected.
There's an additional option to press the TAB key to switch into a hotkey-mode. It's a toggle, so it stays on until you press it again. It switches focus between the map and input-bar for you. This mode defaults to off so you won't even notice it unless you decide to toggle it on with the TAB key. Whilst using this hotkey mode you get additional options like pressing "T" to say something.
The mode switching (TAB key) is completely client-sided.
http://nanotrasen.com/phpBB3/viewtopic.php?f=15&t=10024
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4686 316c924e-a436-60f5-8080-3fe189b3f50e
"Don't define this unless you need it, because it generates extra communication that is otherwise avoided. Defining it on only the objects that require it reduces overhead"
I've tested it and it has these overheads for all hud objects.
Added stethoscopes. They are a tie. You can use them to listen for somebody's pulse. Mostly a RP-fluff item. "You place the stethoscope against her chest. You hear a healthy pulse and respiration." You need help intent and it will give different text for each body-part. I might make it more detailed later.
Removing ties from a uniform will now try to place it in you hands.
Stethoscopes placed in a few places around medbay.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4682 316c924e-a436-60f5-8080-3fe189b3f50e
The singularity can no longer stunlock dead or unconscious people.
tgstation.dme updated since one of the files were removed
Changelog updated to put the 'have a bug to report?' bit to a spot just above where coders put their changes.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4521 316c924e-a436-60f5-8080-3fe189b3f50e
Items equipped with the 'equip' button now update the player's hands. Unfortunately since the procs it uses forces an update_icons() call, using the equip button will now call it twice.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4512 316c924e-a436-60f5-8080-3fe189b3f50e
- Fixed an issue where the monkey's slot_l_hand and slot_r_hand slot identifiers were being assigned to the two pieces of the 'swap hand' button instead of the actual hand screen items. Not tomention them being the wrong way around...
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4482 316c924e-a436-60f5-8080-3fe189b3f50e
Code-wide changes: /mob -level procs:
equip_if_possible() is now known as equip_to_slot_or_del() to prevent confusion with equip_to_slot_if_possible() and to better describe what it does.
equip_to_slot_if_possible(item, slot, del_on_fail, disable_warning, redraw_mob)
equip_to_appropriate_slot() is now a /mob - level proc.
equip_to_slot() is an unsafe proc, which just handles the final step of actually getting an item onto the mob. It has no checks of whether it can or can't do that. Use equip_to_slot_if_possible() for that purpose.
New /obj/item -level proc:
/obj/item/proc/mob_can_equip(M as mob, slot, disable_warning = 0)
This proc can be used to determine whehter a mob can pick up an item from the item's side.
Carn, I'll need you to review code/modules/mob/living/carbon/human/inventory.dm to ensure that I'm not redrawing the mob too many times.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4423 316c924e-a436-60f5-8080-3fe189b3f50e
Screenshot: (Upper left)
http://www.kamletos.si/object%20ui%20action%20buttons.png
There can be a maximum of 5 of these buttons shown at any one time.
Currently the following items have a UI button associated with them:
- Flashlights
- Hardhat
- RIG suits
- Welding masks
- Jetpacks
To add more buttons, add a button icon_state to icons/mob/screen1_action.dmi, then set the variable icon_action_button to the icon state of the icon you just added. This is all you need to do if you want the default action to be taken when the button is clicked, which is attack_self(). If you don't want the default, you can redefine the ui_action_click() proc. A call of ..() will call attack_self(), so mind when you use that.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4193 316c924e-a436-60f5-8080-3fe189b3f50e
- Replaced all the .pulling = object instances with start_pulling() and stop_pulling(). Use these from now on.
- Ian and Runtime will now no longer move when being pulled
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4155 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
- Being inside a wrapped locker no longer delete you when you resist out of it. Fixes Issue 596
- Resisting out of a locker now takes longer then 5 seconds
Certain spells can no longer be cast on z2
- 'walk through wall' spells are disabled to prevent people from getting to centcomm
- 'construct turf' spells are disabled because turfs in transit space crash the server
get_contents()
- Now recursively runs through a mobs contents for items and should actually find everything.
- Now take package wrapped items into account.
check_for_contents() now simply calls get_contents() to generate a list instead of using copy/pasted code from get_contents().
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4064 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
- 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
Changed RoundExplosions to a temporary define named USE_CIRCULAR_EXPLOSIONS which is a lot more intuitive and less confusing. Removing this define will compile square explosions code instead of circular ones. (So the cost of having a choice between circular/square is seen at compile-time not at run-time)
Fixed aliums being able to pick up storage objects such as bags/boxes/pillboxes and such.
Fixed unbuckling yourself from beds (via clicking the bed). You can also unbuckle yourself via resisting because beds are hard to click on when you're lying on them and they're covered in a sheet.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3854 316c924e-a436-60f5-8080-3fe189b3f50e
-Tanks in your suit storage, belt, and pockets take priority over tanks on your back when using the internals button on the HUD
-Added an extra set of vents and scrubbers to the prison wing
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3841 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
r3803:
- Contained many bugs, first of which was that it didn't really... work.
- Split the HUD and code into separate objects, thus creating a fork in code. This implies that any changes need to be mirrored on the fork objects, thus doubling the amount of code maintenance we have to do.
- The UI should be one of the most standardized things around. Giving choices here is bad design practice.
- Double the amount of defines does not equal to double the amount of fun.
- The revision does not adhere to our coding standard. See the changes to /trunk/code/modules/mob/hud.dm in r3803 as an example.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3804 316c924e-a436-60f5-8080-3fe189b3f50e
- Making single pane windows now makes them in the direction you're facing. If a window already exists in that direction it makes it 90 degrees to your left, if one exists there too, then another 90 degrees, etc.
- The resist verb and UI button can now be used to escape from welded or locked lockers. It takes the standard 2 minutes to get out of a locker. If this is a secure locker, the locker is broken in the process (same effects as if an emag was used on it).
Added the window thing and resist thing to the changelog. Leather still not available ingame.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3799 316c924e-a436-60f5-8080-3fe189b3f50e
- 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.pnghttp://www.kamletos.si/cuff%20restraints.png
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3770 316c924e-a436-60f5-8080-3fe189b3f50e
- Removed the mouseover thing for intent switching
- Added an 'equip' button to the old hud (just this one for now) which equips the item in your hand to the appropriate slot.
- Prevented the intent switching hotkey from spamming your chat when you use it.
- Mousing over the intent button now switches it's icon to the four 16x16 intent icons, arranged in a 2x2 grid. Clicking anywhere on the icon will still cycle through the intents, it won't auto-select the intent you clicked on. The icon-swap thing exists only to better illustrate how many times you need to click to get to the intent you wish to get to.
Hopefully the new intent switching method works better.
Screenshot of UI:
http://www.kamletos.si/ui%20tweak%205.PNG
Intent changing gif:
http://www.kamletos.si/intent%20switching.gif
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3737 316c924e-a436-60f5-8080-3fe189b3f50e