This adds two atom procs, attack_tk() and attack_self_tk(). attack_tk is used as per attack_hand; attack_self_tk exists on all atoms (not just items) but is similar to the item proc, but without the assumption that it is in the user's hand.
Removes the functionality where entering throw mode would create a tk grab, as it is redundant.
As a default, attack_tk does the following:
* Creates a telekinetic throw for items and un-anchored objects
* Does an attack_hand (paw, animal, etc) for anchored objects
* Does nothing to mobs
As a default, attack_self_tk does nothing. An attack_self_tk was added to closets to open and close them since that's a common thing.
The following items have added attack_tk procs:
* Fire axe cabinet, extinguisher cabinet, and bedsheet bin will drop into their square instead of putting it in your hand
* Doors only open telekinetically if they require no access
* Chairs will rotate if nobody is buckled to them
* Filing cabinets will remove a paper at random.
* Tables and racks return to prevent telehulk smash
This is INCOMPLETE. Adding proper TK interaction to everything is something best done in pieces.
In particular, interacting with mobs and items both open up the floodgates for bugs, so we/I need to decide how we want it to go before we commit, and then fix bugs along the way. Stumbling forward, fixing bugs, and then changing course halfway would be a bad idea.
Fixes#646, #579, #863
Completely redoes the click code. Moves all click related code into code/_onclick for reference. Also moves hud datum code and all the screen object code I could find into code/_onclick/hud, as it is related. Item attack(), attackby(), afterattack(), and attack_self() have been moved into item_attack.dm for consistency.
Completely removes dummy objects and adds atom.Adjacent(user). This proc checks for border items and anything marked with throwpass for determining whether or not you can reach a given square. A turf helper, ClickCross(), was added to facilitate this.
Removes the monolithic Atom.Click() proc in favor of an overridable click handler attached to mobs. Click code no longer uses the : path operator as a consequence, and mob/lastDblClick has been moved to Client/next_click. A few end arounds were necessary (screen objects, buildmode, and spells), but this has been handled by repurposing Atom.Click(); if you have special click code, insert it in the object's Click() function and return 1 to prevent normal processing.
This update adds support for attack_ghost(); the previous "new" click handler had support for it but was never finished. I have taken the liberty of letting ghosts click portals, the gateway, and the teleporter to jump to the intended target square, and kept the previous default action of examine()ing every damn thing you click. It is to be suggested that you could do more with this proc when ghost interactions are enabled.
This update also adds support for double clicking. It is currently only used for ghosts and AIs, because the original (first) click still registers normally. For both of these, double clicking a square will jump you to it, and double clicking a mob will follow it. In the case of ghosts, double clicking bots and the singularity will also set you following it; if you double click your own corpse, you will re-enter it; this also works if your body is in a closet, sleeper, DNA scanner, etc. Default mobs ignore double clicks as normal.
-- NOTE --
There are two flags which were previously unused or misused by click code: USEDELAY and NODELAY. Ostensibly, USEDELAY would double the normal 1sec delay, and NODELAY would remove it.
Using either of these flags as intended would significantly affect the timing of the game. In particular, USEDELAY is currently applied to guns and about everything else that acts at range. I am adding USEDELAY as a half-second increase for now, but I have not put a significant amount of thought into it. I considered lowering the normal 1sec delay to .8sec to balance it, but the consequences of that on combat involve more calculations than I care to make.
NODELAY seems to never have been used, and I did not implement it, but I could do so trivially.
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>
This updates everything that used equip_e, particularly the strip panel, but also DNA injectors and CPR.
Removed unused mob vars:
var/obj/effect/organstructure/organStructure
var/other
var/proc_holder_list[]
Removed unused alien suit and head slots.
Removed var/obj/item/weapon/card/id/wear_id from monkeys, and updated ed209s to not use :
Renamed HUMAN_STRIP_DELAY to STRIP_DELAY.
Muddled Topics() around so that mobs are now a bit more OO. Also updated quite a few misc inventory procs to various degrees.
Updated monkey and aliens huds a little bit.
Random movement when confused now happens half the time.
Fixed monkey breathmask onmobs.
Added a .unconscious text style, for that nice bold blue text you get when you're unconscious. Only CPR uses it at the moment.
This has been tested fairly extensively, and everything seems to work fine.
-Merged commits ~carnie
Signed-off-by: carnie <elly1989@rocketmail.com>
var/obj/item/weapon/back
var/obj/item/clothing/mask/wear_mask
var/obj/item/weapon/tank/internal
from /mob to /mob/living/carbon.
/mob/proc/abiotic() no longer does any extra checks even if full_body == 1.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5722 316c924e-a436-60f5-8080-3fe189b3f50e
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
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
Changed the hostile code to allow for ranged mobs. Will port syndies over to hostile at some point (I don't want to go and replace the syndies on all the away maps right now).
Added pirate simple animals for Inti (icons are from him). Icons for russians and an on mob bear belt are in as well. There is a ranged version and a melee version.
Set factions for constructs, shades, carp, bears, faithless.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5176 316c924e-a436-60f5-8080-3fe189b3f50e
Removed var/constant/Pi It's already defined in setup.dm
Moved a bunch of global_lists to global_lists.dm
Fixed hair randomisation. (still bits to do)
Moved a lot of preferences_setup.dm stuff into __HELPERS/mobs.dm They'll be FAR more helpful as generic procs, rather than something tied to preferences.
Merged mob/var/nopush into status_flags with the CANPUSH flag
Merged mob/var/nodamage into status_flags with the GODMODE flag
Removed mob/var/be_syndicate and mob/var/be_random_name as they are not used.
Added /proc/ui_style2icon(ui_style) proc. It converts a string like "Midnight" into its corresponding dmi file. The code fore creating a new hud uses it.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5164 316c924e-a436-60f5-8080-3fe189b3f50e
They include such procs as sanitize_integer(num, min, max, default) which will check num is a number, round num to make it an integer, then check if it is between min and max (inclusive). If it fails the bound-checks it will return default. There are others, have a look.
PERSISTENT PREFERENCES: Every ckey which connects to the game gets its own persistent /datum/preferences datum.
It is archived in var/list/preferences_datums = list("ckey" = datum)
At connect it is automatically associated with the client defines.dm (or a new one is created if it can't find an archived prefs datum). This means clients will ALWAYS have a var/datum/preferences/prefs which references this datum. So you can use it without checking if(client.prefs)
This has simplified only a few bits of code. It will however, allow us to make preferences like see_deadchat ghost_ears etc, persistent. So they will not reset when you DC.
SAVEFILES: Changed the player savefile code a lot. Hopefully I've not fucked it up too much. Every single variable loaded from saves is now sanity checked using the new sanity procs. This should help prevent savefiles becomming obsolete by sanitizing input to meet current requirements, without deleting all the ok variables and making you start from scratch >_> NOTE: I still need to sort out the savefile version stuff. I'll probably figure it out before the server updates anyway. It sees to be fine without it.
You can no longer choose your blood type. It is randomised (with each bloodtype having a realistic probability of occuring). This is to make blood analysis (detective/medical) less pointless. It is chosen as soon as you connect. It remains persistent throughout each round so you won't be able to change it by logging in/out over and over.
Replaces some copypasta code with is_afk() (still a fair bit to do)
There are new hyperlink shortcut things. _src_=vars will direct your hyperlink to viewvars. _src_=prefs to your preferences datum. (These are the only way to access those bits of code via links). This means that the overall amount of operations in almost every Topic has pretty much halved and is much prettier.
Replaced and removed adminplayervars from datum/admins/Topic. It was superfluous. They now all point directly to the viewvars code using _src_=vars
Removed the changelog popup at round start. Instead a button on your game-window will glow white if there are new updates. To peruse at your convenience. This will speed up connect times.
Removed the AFK_THRESHOLD define. It is integrated into is_afk() now.
TODO: remove the prefs stuff from mobs and clients and update code to use client.prefs to access that info.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5121 316c924e-a436-60f5-8080-3fe189b3f50e
Trying to move everything into datum/hud, doing this will allow huds to be made more modular. Meaning more mobs can have huds with smaller and maintainable code.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4773 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
- Tested with various damtypes/locations/mobs but if i'm a dumbass and overlooked a problem feel free to punch me and revert this
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4762 316c924e-a436-60f5-8080-3fe189b3f50e
This includes:
- Individual wounds
- Dismemberment
- Bone breaking
It also adds configuration values to config/game_options.txt to control the point at which bones break and limbs are cut off.
Does not include surgery or bleeding yet.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4720 316c924e-a436-60f5-8080-3fe189b3f50e
Comments for lighting:
Like sd_DAL (what we used to use), it changes the shading overlays of areas by splitting each type of area into sub-areas
by using the var/tag variable and moving turfs into the contents list of the correct sub-area.
Unlike sd_DAL however it uses a queueing system. Everytime we call a change to opacity or luminosity
(through SetOpacity() or SetLuminosity()) we are simply updating variables and scheduling certain lights/turfs for an
update. Actual updates are handled periodically by the lighting_controller. This carries additional overheads, however it
means that each thing is changed only once per lighting_controller.processing_interval ticks. Allowing for greater control
over how much priority we'd like lighting updates to have. It also makes it possible for us to simply delay updates by
setting lighting_controller.processing = 0 at say, the start of a large explosion, waiting for it to finish, and then
turning it back on with lighting_controller.processing = 1.
Unlike our old system there is a hardcoded maximum luminosity. This is to discourage coders using large luminosity values
for dynamic lighting, as the cost of lighting grows rapidly at large luminosity levels (especially when changing opacity
at runtime)
Also, in order for the queueing system to work, each light remembers the effect it casts on each turf. This is going to
have larger memory requirements than our previous system but hopefully it's worth the hassle for the greater control we
gain. Besides, there are far far worse uses of needless lists in the game, it'd be worth pruning some of them to offset
costs.
Known Issues/TODO:
admin-spawned turfs will have broken lumcounts. Not willing to fix it at this moment
mob luminosity will be lower than expected when one of multiple light sources is dropped after exceeding the maximum luminosity
Shuttles still do not have support for dynamic lighting (I hope to fix this at some point)
No directional lighting support. Fairly easy to add this and the code is ready.
When opening airlocks etc, lighting does not always update to account for the change in opacity.
Explosions now cause lighting to cease processing temporarily.
Moved controller datums to the code/controllers directory. I plan on standardising them.
"Master","Ticker","Lighting","Air","Jobs","Sun","Radio","Supply Shuttle","Emergency Shuttle","Configuration","pAI" controller datums can be accessed via the debug controller verb (used to be the debug master controller verb)
Supply shuttle now uses a controller datum. Shuttles tend to arrive up to 30 seconds late, this is not a bug.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4537 316c924e-a436-60f5-8080-3fe189b3f50e
As such, changelings can now be reported at round-end, even after gibbing. Resolves Issue 251
Changeling power proc_holders are now datums rather than objects.
Condensed all those changeling stings down a bit. This will make fixing issue 351 easier to fix
Replaced changeling fakedeath and a number of checks for the zombiepowder reagent with a bitflag: mob/var/status_flags & FAKEDEATH
setting the FAKEDEATH flag will make the mob appear dead in exactly the same way changeling parasting and parapens worked. I've updated changelings and zombiepowder to work with this flag.
Bug fixes for the staff of change. There was a type mismatch and I typo'd "alien" as "xeno" so xenos were not being randomly picked.
TODO:
changeling purchased verbs could probably be moved to mind/special_verbs. Likewise, other modular antag proc-holders can be merged with the changeling system using the same type of datum. (namely wizards)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4377 316c924e-a436-60f5-8080-3fe189b3f50e
Replaced mob/var/original_name with datum/mind/var/name.
Halved the speak-chances of every simple-animal because that constant squeaking was insufferable.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4346 316c924e-a436-60f5-8080-3fe189b3f50e
- - If a breath is successful, meaning it had enough oxygen, another breath will be taken in 4 ticks. This is the same as it was before. (The presence of other gases will damage you, but it will not make the breath not count as a 'successful' one)
- - If a breath is not successful, you will not wait another 4 ticks for another breath! You will try to breathe again in the next tick. Every time a breath is deemed unsuccessful, it will cause damage to you. If there is no oxygen on the tile, it will cause 3 oxyloss damage to you, if there is some oxygen, but not enough, it will do a percentage of that. The amount of damage is the same as before, but it's dealt as 3 per tick instead of 12 per four ticks. The reason for this is to make the 'slowly passing out' effects more visible, as the overlay changes for every 5 points of oxy damage.
- - The healing effect of an area to oxyloss remains at 5 points per FOUR ticks, as it's only applied on successful breaths, which then don't try to breathe again for another 4 ticks.
- - You still pass out at 50 oxygen damage.
- The dark image overlay you have when blind or in critical condition now has mouse opacity set to 0, which means all mouse clicks pass through. If this causes any problems - let me know, it is however needed as it otherwise prevents any clicks. So while you could see a small circle around you, you wouldn't be able to interact with anything in it.
Video: http://youtu.be/fJAU8Tppxi0
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4281 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
replaced canweaken and canstun variables with status_flags bitfield. Current flags are CANWEAKEN CANSTUN CANPARALYSE. Although you could add stuff like CANDAMAGE, CANBLIND, CANDEAFEN etc. to add additional flexibility to mob code and reduce on duplication.
Added humans_need_surnames as a config option. If when spawning a human has only one name it will give them a random surname. I'd recommend leaving it on so that people can't name themselves "floor" "Unknown" etc.
totally removed autolowercasing of names (except for first letter) due to people pestering me. inb4 everyone starts CRUISECONTROLLING.
allowed a few characters like @ # etc for when the flag allow_numbers is set. So AIs can use those symbols (numbers and symbols cannot be used as the first character because of syntax.
Added alium nests. They're basically beds that only aliums can use. They are made of sticky resin which aliums secure their prey too for sexytimes.
Weed nodes are no longer dense.
Tidied up some alium verbs so that they are more structured. This will allow me to add Alt-Click neurotoxin shooting for queens and sentinels
Queens can secrete resin now to build nests/walls/membranes (doors to come!)
Drones that evolve into queens when there is already a live Queen will become princesses instead so the hive can tell them how stupid they are for splitting from the will of the hive. It also gives them a number so they can be differentiated between.
Credits to 39kk9t for fixing larva/death.dm, hissing which I forgot to do and some of the alium verbs. You're awesome <3
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3983 316c924e-a436-60f5-8080-3fe189b3f50e
Moved the simple_animal folder into /mob/living.
- Thanks to tortoiseSVN issues, I will have to remove the old simple_animal folder in a second commit.
Moved to living:
- maxHealth
- health
- control_object
- incorporeal_move
Moved to carbon:
- silent
- alien_egg_flag
Moved to human: (human_defines.dm)
- All vars that used to be defined in human.dm
- underwear
- backbag
- miming
Deleted from mob:
- r_epil //Old var, not used anymore
- r_ch_cou //Old var, not used anymore
- r_Tourette //Old var, not used anymore
- spellvoice() //Old proc, not used anymore
- get_damage() //Unused, we have getHealth() that does the same thing
Removed some unticked files that have already been replaced.
This also fixes cyborgs being 'knocked unconscious' by rolling pins and secure breifcases
- Additionally; to knock someone out with a rolling pin you must now be targeting the victims head.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3976 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
- 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
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
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.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3694 316c924e-a436-60f5-8080-3fe189b3f50e
- I added in the foundations for traitor factions. See factions.dm for all the different faction datums. They don't do anything yet.
- I completely ported mob/var/mutations from a bitfield to a generic list. Mutation enumerated-identifiers are added into this list. For instance, TK = 1, COLD_RESISTANCE = 2, XRAY = 3, etc... The purpose of this was because bitwise operations could not actually be used after a certain size (because BYOND is stuck in the 16bit era).
- I've added in completely-functional nano-augmentations. Check under implantnanoaug.dm for a list of implants and implaners. As mentioned previously, they are completely functional but may be slightly OP. Among these nanoaugs are Super Strength, Psionic Radar, Electric Hands, Energy Blade/Sword Synthesizer, Rebreather, Dermal Armor, Combat Reflexes, and Regenerative Nanorobots. I won't go into detail as to what they do, but hopefully they should be self-explanitory. If not, check out their descriptions in the file previously mentioned.
- Added in a future traitor item, the Mind Batterer. Along with it a new .ogg file.
- New telecomms bus mainframe sprite, thanks to WJohnston.
- New holdable shield, sprites courtesy of Muncher (i had to mangle the side sprites because of a technical little issue. I'll change it back to the original soon). It can be retracted and expanded. Probably only going to be given to traitors.
- A couple of minor bugfixes here and there, along with some code tidying.
Hope this isn't too large a commit. I intended it to be MUCH larger, but I've decided to split up my Traitor Factions expansion into smaller commits.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3692 316c924e-a436-60f5-8080-3fe189b3f50e
- Deleted most of the unneeded icons from screen1_Midnight.dmi Use that as the reference for making new icon sets.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3647 316c924e-a436-60f5-8080-3fe189b3f50e
Reverted dismemberment
- This is the majority of the files
Reverted the gun change
- You wont shoot yourself putting your gun away
- You don't have to fire off all of your shots before hitting someone with your gun
Reverted Tarajans
- As requested
Hotfix for the Holodeck.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3574 316c924e-a436-60f5-8080-3fe189b3f50e
Adds greater changeling code, but doesn't change the genome count yet on it.
Renames registered to registered_name on IDs because bs12 had it and it seemed like a good idea to do last night. For some reason.
Adds an afterattack to mobs that can be used. (In fairness, lots of shit in attack_hand should be in there instead, like stungloves and stuff, to minimize duplicated code)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3537 316c924e-a436-60f5-8080-3fe189b3f50e