Commit Graph

436 Commits

Author SHA1 Message Date
Miauw
2a7f688d90 Fixes a NODROP runtime. 2014-02-23 19:20:27 +01:00
Perakp
bf6f9d3786 If this works I'll be very happy
I think I’ll try to merge these commits later.
2014-02-19 00:42:15 +02:00
Perakp
9f43935f89 Trying to fix mob.dm merge conflicts
I’ll do this over and over again until it works
2014-02-19 00:28:22 +02:00
Perakp
7e324bb17c - Still fixing merge conflicts
- Giving spells to mobs without minds should work
2014-02-14 21:32:16 +02:00
Perakp
7ca06565b5 Merge remote-tracking branch 'upstream/master' into spellsFromBodyToMind
Conflicts (Resolved):
	code/datums/spells/mind_transfer.dm
	code/game/gamemodes/wizard/artefact.dm
	code/modules/mob/mob.dm
	code/modules/projectiles/projectile/change.dm
2014-02-14 20:57:11 +02:00
Tenebrosity
f495c1caac Removes falling in space
You can still be stunned, slip (unfortunately), be pushed or die, your
icon just remains upright to simulate zero gravity. Upon being dragged
into the station, your body thumps to the ground inside the airlock.
It's pretty neat.
2014-02-08 13:58:22 +13:00
MrPerson
931da9e7ef Many changes
Much diff
2014-02-04 22:49:38 -08:00
Tenebrosity
560c5fc781 Fixes thuds in space and hats falling off
Fixes #2550 by adding a check for space turf at the location of the mob
before playing a bodyfall sound

Fixes #2494 by following Carn's suggestion of determining whether a hat
will fall off based on its head cover and head hide flags.

Thank you @Razharas and @MrPerson for help with bitflags.

Thanks @Supersayu for providing a lot of this code.
2014-01-31 15:17:08 +13:00
Malkevin
a1c4c4bbd7 Merge branch 'master' of https://github.com/tgstation/-tg-station into bugfixes
Conflicts:
	code/modules/mob/mob.dm
2014-01-26 19:22:33 +00:00
MrPerson
5987de4804 Redo on that merge into master, my bad. 2014-01-15 20:12:52 -08:00
MrPerson
9a562efb35 Update to master (branch was way out of date) 2014-01-15 19:34:35 -08:00
Malkevin
a8c153a290 A bunch of bug fixes
-fixed space ninjas not being able to charge directly from power cells - fixes #2139

-'fixed' Distro/Waste Monitors not displaying pressure read out when sensor was reading zero pressure - fixes #
227

-removed the canmove check on camera consoles - fixes #490

-Fixed stealmin's real ckeys showing in the admin-pm reply dialog's title - partially fixes #2163

-Fixed people buckled to chairs not dropping their items when appropriate (like when dead) - fixes #2172

-Fixed people being able to use uplink functions whilst stunned/dead/etc - fixes #2144
2014-01-11 18:37:31 +00:00
Perakp
8ba1e8cd33 - Moves spells from the mob to the mind.
- Construct spells are an exception.
- Spells are transferred whenever a mind is transferred: cloning, pod cloning, borging, staff of changing.
- Spells are not transferred when you create a new mind for a new mob: soul stones, golems, respawns.
- To my surprise, this did not fix the issue where a mind-swapped wizard loses their spells when their original body is destroyed. I do not know why this happens.
- Non-human mobs can't use spells by default. Varedit spell.human_req to do that.
2014-01-10 15:59:55 +02:00
Giacomand
6ab6f4ada0 Re-added the recycler's emag functionality and changed it so that it does massive brute damage and eats the person's equipped items.
The blood on the recycler is now scannable by a forensic scanner.
Fingerprints will now properly show up on the recycler.
The status effect procs will now properly update the can_move()
Admins can now possess the recycler to properly get it to gib people that it moves into.
The mineral stacker in disposals will now release stacks of 10.
2014-01-06 17:21:13 +00:00
Incoming
26a1bb65f2 Merge branch 'master' of https://github.com/tgstation/-tg-station into wands3
Conflicts:
	code/modules/mob/death.dm
	code/modules/mob/living/carbon/alien/death.dm
	code/modules/mob/living/carbon/brain/death.dm
	code/modules/mob/living/carbon/human/death.dm
	code/modules/mob/living/carbon/monkey/death.dm
	code/modules/mob/living/silicon/death.dm
	code/modules/mob/living/silicon/robot/death.dm
2013-12-27 00:55:44 -05:00
MrPerson
0483800e24 update_icons() uses animate() and transforms to actually turn the sprite rather than needing them pre-turned. Mobs that lie down do so with an animation rather than appearing on their side. You can lie down facing THE LEFT OH SHIT.
Cloakers still don't work well. The fix is probably just finding a proc that runs on equip/uequip/when bagged/when dropped. Fuck that. Ninjas work. Things that are cloaked fade to the cloaked alpha, it's pretty cool.

The "lying down" icon_states for everything you could equip are all now unnecessary. They aren't removed yet though.

The dmi changes are to make xenos all face upward so when they turn, they're lying down rather than facing south and looking like they're doing a handstand. They're not terribly good when facing the wrong way. I expect WJohnson to have a fix for this by New Year's.

Comments aren't changed. The overlays_standing list is still around because overlays is not a normal list, and BYOND's normal list functions are worth the extra cost of keeping a spare list of images.
2013-12-23 02:19:15 -08:00
Perakp
0d1ba1eccf Changes mime abilities into spells. Admins can now give these from the 'give spell' menu. Unlike previous mime abilities, these are not transferred when a mime is cloned. 2013-12-21 20:54:07 +02:00
Incoming
689aecc336 I forgot how children work guys
Merge branch 'master' of https://github.com/tgstation/-tg-station into wands3
2013-12-19 15:07:59 -05:00
Incoming
ac1a96fd43 feature: renames the monkeyizing var to "notransform" since that's how it was being used in the code, as a flag to tell code to ignore transformation (initially because they were already turning into a monkey).
bugfix: gives notransform to etheral jaunting based on an observed edge case where a wizard was staff of changed while starting a jaunt and got stuck in bluespace for the rest of the round

meta: modified revive() so I could remove all that horrible snowflake I introduced to let reviving simple mobs come back
2013-12-19 11:50:33 -05:00
Razharas
5045069899 More logging and fingerprints
Added helper proc for general logging, replaced some logging with this
proc
Pulling now leaves fingerprints
Judging by the opinions in the thread will add some more
logging/fingerprints
2013-12-15 05:23:50 +04:00
Razharas
eb8b23b873 Fixed some issues
Removed all item stings legacy
Removed game balance changes
Moved stings handling to AltClickOn, added the dead check i forgot to
add
Reverted monkeyizing keeping items from previous form
Fixed the grammar in the comments
2013-12-03 00:45:05 +04:00
Razharas
e6eab9b7e9 Rewrote stings
Stings are now special cases of carbons' clicks
All the problems with stings-items were solved automatically by this
Clicking the ability sets your active sting
Currently active sting is shown on the UI
Changed sting icons to fit the UI
Clicking other ability will reset the active sting to the new one
Added "retract stinger" ability so you can get rid of any active sting
Added autoequip of items below you if you go from monkey to human form
as ling
Added commented-out greater form, just because
Monkeys now have chem counter in their UI just like humans
Monkeys have active sting icon in UI as well
Hope its not too much commits for one pull request
Also changed some of the previous additiong to ABSTRACT items in
show_inv
2013-11-21 20:36:08 +04:00
Razharas
bb0ce713cb Abstract things stay in hand while on the ground
This means 2 things
1 - you can sting while stunned/weakened and so on
2 - if you are not stunned/weakened but lying - you can grab things
All this ERP potential
2013-11-19 10:04:02 +04:00
Razharas
0473985be4 Abstract items and show_inv, some other things
Abstract things now cant be neither seen in show_inv nor be interacted
there
Added abstract flag to golem armor so now only he himself can see what
he is wearing(seems reasonable to me)
Added my shitty spriting of proboscis and stings to icons/weapons, not
sure it is right play or do we ever need them at all
Actually changed changeling_powers to work with stingers instead of
proboscis, but dont want to push it yet, maybe people will want one
proboscis for all stings instead of separate stingers for each sting
2013-11-19 00:37:33 +04:00
Razharas
26c24d42bd Accidently added this thing
No need for it
2013-11-17 02:21:17 +04:00
Razharas
6d0bbc8b24 Further improvement of ling code
Yadda yadda
2013-11-17 02:09:43 +04:00
YotaXP
d1827c6466 Removes the empty Status tab that is active by default at login.
Has no effect for admins.
2013-11-10 01:53:59 -05:00
Giacomand
476b64bd76 Fixes #1691 by limiting the show_message proc. 2013-11-01 23:51:00 +00:00
Aranclanos
a2981e5f9c Merge pull request #1589 from SuperSayu/clickstuff3
Mecha, hud, and click fixes
2013-10-25 09:16:54 -07:00
Aranclanos
bbd1cfd389 -the number of active turfs on the status tab will be refreshed and the end of each tick and when the air controller setup finishes.
-mining rooms will be generated before the air controller is created
-changed the total of moles of the NO2 turfs from 2000 to 6000 to compensate the replacement of the canister that spawns like 36000 moles on top of it for a normal canister. I'm talking about the NO2 canister inside of the chamber in atmos. (I will replace the canister in another pull request)
2013-10-21 20:09:57 -03:00
supersayu
a7398c2205 Mecha fixes
Prevents mech actions from acting on the user's inventory.  Fixes #1487.
(Almost) fully prevents inventory use from within a mech, to be more consistent.  The internals GUI button still works on the theory that it's emergency equipment.
2013-10-16 01:30:00 -04:00
Giacomand
1bf07a3065 * The AI can now use alt click to get a list of objects and the turf for easy access.
* The AI can interact with all the items in the list.
* The AI can use this for several things:
 * Since the list will not dissappear for the AI, until there's no camera coverage, they can use it to bookmark a single tile to interact while not having to look at it.
 * They can also use this to quickly jump to the listed turf.
 * They can interact with objects under other objects.
* Made the CTRL Click on the APC directly use the toggle_breaker() proc.
2013-10-14 17:23:53 +01:00
Pete Goodfellow
0195caad16 Ported and improved Sayu's awesome alt-click stat panel. Alt-clicking a tile will bring up a list of the objects on it in a stat panel- these can be interacted with normally, with both left and right clicks. This is particularly useful for getting specific items from lockers. 2013-09-18 23:04:08 +01:00
supersayu
c172e52dce Adds telekinesis to click code. Fixes issue #1202, #1129, #247.
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.
2013-09-17 18:19:09 -04:00
supersayu
62f7bc11c2 Timing adjustments
attack_self use should be somewhat more standard; previously the activate object verb (and pagedown) had no delay at all.

Lowers the time taken when interacting with things on your person or in your square.
2013-09-17 18:18:34 -04:00
supersayu
475042a212 Click code rework
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.
2013-09-17 18:15:54 -04:00
Mark Aherne (Faerdan)
de6e75c533 Merge branch 'master' of https://github.com/tgstation/-tg-station
Removed admins.txt conflict.
2013-09-01 13:42:06 +01:00
Cheridan
1ee6c4f5c7 Merge pull request #1166 from Carn/admin_ranks
Fixes #1147 (type-mismatch) +features
2013-08-28 11:57:21 -07:00
Mark Aherne (Faerdan)
57fa79a89d Nano UI Framework
------------------------------------------------------------
nanoui - For creating and updating browser UIs
manomanager - For managing nanouis
Includes the "D:\Development\SS13-TG\code\game\machinery\cryo.dm" rebuilt using Nano.
Templates are stored in /nano/templates

This code is in development, it's also not commented yet.
2013-08-19 21:23:53 +01:00
carnie
bbe7354265 Fixes #1147 - type-mismatch
Added helper: /proc/findchar(haystack, needles, start=1, end=0)
works like findtext except it finds the first occurrence of one of the characters from the needles string, within haystack.

Permissions can now be removed as well as added, by replacing the + with a -. e.g. +BAN adds bans permissions, -BAN removes them. This applies to admin_ranks.txt and the permissions panel.

Verb overrides are now possible for admins_ranks. Specific verbs can be forced-on, or forced-off via keywords like +/client/proc/mimespeak or -/client/verb/ooc. This applies both to admin_ranks.txt and the permissions panel. SQL system is not compatible.

admin_ranks are now datums. This means admin_ranks actually behave more like permission groups as intended.
When you temporarily modify an admin's permissions via the permissions panel, their rank_name is appended with "([ckey])". This prevents modifications to their rights affecting everyone.

admin rank names now support - _ and @ characters (since ckeyEx() does not strip these).

SQL permissions system was modified. SQL databases will have to be updated or they will no longer work.

WARNING: admin_ranks.txt and admins.txt format has changed slightly! You will need to redo those txt files!
2013-08-14 18:10:26 +01:00
Aranclanos
0ce01d1583 Adding Linda. 2013-08-10 06:15:14 -03:00
Giacomand
537ede1e02 * Cleaned up the interface a bit.
* Made the window name be the pointer of the mob, instead of the name, to prevent multiple windows opening when the mob changes name while being stripped.
2013-06-24 20:50:22 +01:00
Giacomand
27b4a6c443 * CTRL+Clicking won't cancel a pull if you try to pull the same object. 2013-06-15 15:43:28 +01:00
carnie
043028db83 Resolves #283
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>
2013-04-24 09:37:30 +01:00
Pete Goodfellow
62b848c6ce Removes equip_e - Fixes #423
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>
2013-04-24 04:07:39 +01:00
carnie
66e6a2dbf0 Mobs each now have a unique tag which are not after they are deleted (unlike byond's \ref[] macro)
Since tag replaces the output of the \ref[] macro, this means that menus which use hrefs with \ref[mob] will no longer be able to accidentally link to the wrong mob.
The tags are of the form "mob_475" etc

Admin_pms now use ckey instead of client-reference. This means that PMs will no longer accidentally get sent to the wrong people.
There is no risk of players using hrefs to send adminhelps to known admin ckeys to see if they are online (as I'd already changed the PM system to not tell non-admin users whom received their message).

key_name() now accepts text input (key or ckey) - it is slightly more efficient to feed it a client or mob however!
This functionality is provided to allow certain admintools to become more robust when we want to talk about e.g. a griefer whom has just DCed whom no-longer has a corpse (no client/mob...just a ckey reference).
key_name() now reports DCed players properly.
2013-03-31 11:26:22 +01:00
petethegoat@gmail.com
bdf8abff40 Overhauled grabs. They should pretty much do the same thing as before, although they should be a fair bit more effective.
Updated some text styles and such along the way.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5818 316c924e-a436-60f5-8080-3fe189b3f50e
2013-03-07 01:30:29 +00:00
aranclanos@hotmail.com
3a2673a284 Changes for all the different update icons procs of humans and monkeys, they now update their own sprite and hud icon (if it's a proc of a slot item) without having to call for update_icons().
A lot of different calls for update_inv_[slot] now won't call for update_icons.dm(). Such as dropping, throwing, picking up objects, moving objects around your gear, using your active hand, firing guns, stripping, etc.
All the different calls for UpdateDamageIcon() now they won't call for update_icons()
The different sprites of humans/monkeys will now have their own layer, humans starting with MUTANTRACE_LAYER in layer -1 to R_HAND_LAYER in layer -20, so the sprites don't get messy overlapping eachother if update_icons() is not called. To help this change, all layers numbers were changed, R_HAND_LAYER used to be 1, now it's 20. (This can be changed back if it ends up being confusing or ugly to read)

TL;RL I removed 90% of the calls for update_icons() modifying the different update procs of update_icons.dm of monkeys/humans. The goal is to reduce lag.

JUST IN CASE, lying down will call for update_icons(), so players have an easy way to update their icons if something goes horribly wrong. Which won't. I hope.


Fixes issue 842. Handcuffs sprites appearing on the player's UI if this one was handcuffed. Because I liked this we'll call it feature and add some awesome sprites made by Cheridan, you'll now have a new sprite on your UI telling you "you're handcuffed buddy!". (Also he named the sprites so don't blame me)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5809 316c924e-a436-60f5-8080-3fe189b3f50e
2013-03-04 05:01:07 +00:00
d_h2005@yahoo.com
dc6d26e067 -Fixes issue 1349 : Space bears not switching to dead sprites when dead. As an added bonus, also fixes space bears being unable to move in space. Durr.
-Moves the Add Note/Notes verbs from OOC tab to IC tab, since Notes holds your IC information such as traitor objectives.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5789 316c924e-a436-60f5-8080-3fe189b3f50e
2013-02-26 16:09:45 +00:00
petethegoat@gmail.com
58c7f79398 Moved
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
2013-02-17 18:53:09 +00:00