Commit Graph

74 Commits

Author SHA1 Message Date
phil235
712f599ccf Fixes restrained message spam by giving it a cooldown. 2015-02-24 14:32:31 +01:00
phil235
e9a943218c Fixes being able to break free from a pull while handcuffed if the puller is buckled.
Add the incapacitated proc to mobs to check for stat, stun, weakened, paralysis, restrained. And replacing those checks by that new proc in some places.
2015-02-21 14:49:47 +01:00
Menshin
0d0ef9e02a Deactivates the Hidden Syndicate Teleportation Device 2015-02-19 16:34:49 +01:00
Remie Richards
96ac837b65 Merge pull request #6960 from Iamgoofball/goonetics
Added 2 new powers and 9 new disabilities from goon and /vg/!
2015-01-19 17:47:33 +00:00
Iamgoofball
b70fde1ed2 Fixes and Tweaks, adds mutations_say_mods() and say_mod() for mutations 2015-01-10 23:42:31 -08:00
Iamgoofball
39ede45b31 Added 2 new powers and 9 new disabilities! 2015-01-10 21:51:24 -08:00
JJRcop
539dac7308 Adds the Chronosuit
Sprites by spheretech
The chronosuit allows you to move via teleportation
Adds mob.remote_control var
2015-01-09 16:14:49 -05:00
tkdrg
188b85ae48 Merge pull request #5641 from MrPerson/autoghosting
Moving while dead causes you to ghost
2014-12-26 21:35:58 -03:00
MrPerson
c159878ace Throwing bugfixes
Removed an unused client verb, changed a usr to src where they're the same mob, and changed a type == check to istype().

Allow turning on throw mode when clicking the UI button (hotkeys already allow you to do this).
Disallow throwing when not on a turf.
Fixes #4823

Make storage items close out the onscreen stuff when they get thrown.
Fixes #5296
2014-11-09 00:29:20 -08:00
MrPerson
f67b5d68c8 Moving while dead causes you to ghost 2014-11-03 05:48:24 -08:00
MrPerson
e9f6e5d17d Added a changelog entry
Also fixed the chair-diagonal drifting bug somehow
2014-10-28 07:37:31 -07:00
MrPerson
785b6ada07 Fixes and a change 2014-10-26 14:25:07 -07:00
MrPerson
ef6204656f Space movement rewrite to allow everything to drift
Removes a version of atom/movable/Move() that was in mob_movement.dm.
New proc called newtonian_move() that's called as a result of things like shooting a gun or spraying a fire extinguisher and as part of atom/movable/Move().
It pushes src if it's not under gravity and gives the object a chance to stop itself.
As a result, inertial_drift() is kill.
Moved Process_Spacemove() out to atom/movable. It does the same thing, it's called whenever a drift is attempted and stops the drift if it returns 1. Default check is to look for nearby lattices to make dragging shit around the station less annoying. Mobs still call it in Client/Move()
The mob version of Process_Spacemove() will shove non-anchored nearby objects out of the way if you try to move like that. For example if you're free-floating in space next to a closet and try to move right, the closet will drift off to the left.
Mechs call their occupant's version of Process_Spacemove() so mining with a mech isn't retarded. The pussy wagon does the same thing and thus no longer works like a jetpack. Will it be making a comeback?!?! (no)
Any move will attempt to keep dragging your pulled object, not just ones initiated by the client. Should make space wind a little less annoying. Was needed to make drifting not break your drags.
Mechs drift correctly without any special snowflake crap.
Spaceslipping is gone because fuck that shit
Space movement is now slow instead of fast. Having a jetpack helps go faster but even that's slower than current. Hopefully means nuke ops can see each other as they move to the station instead of losing sight of each other instantly. Having your hands full makes spacemovement even slower.
You can drift in office chairs and drag mobs in beds or the bed itself. Currently drifting diagonally while in an office chair is bugged and I need help to solve it. It winds up in cardinal movement instead of a diagonal one.
Changes up the jetpacking effects system to cause fewer errant ion trails but it's still awful code. In hindsight I shouldn't have bothered but here we go.
2014-10-25 23:19:46 -07:00
phil235
dbea503e88 Removing the fourth argument (air_group) of CanPass() everywhere, because it isn't used anywhere.
Fixing one instance of "for(mob in viewers) show_message()" to "visible_message()"
2014-10-15 18:03:06 +02:00
Hornygranny
f920d6854f PASSMOB created
larvae have PASSMOB
larvae can no longer pull
2014-09-18 12:24:11 -07:00
Remie Richards
473bcd1858 Ports Drones from NTstation + New Improvements/Features 2014-09-13 15:02:57 +01:00
Firecage
6c7af5eb32 SPANCLASSES!!!!! 2014-08-26 09:52:13 +02:00
Giacomand
f4b0a48253 Merge branch 'master' of https://github.com/tgstation/-tg-station into gravity_bounce
Conflicts:
	code/modules/mob/living/living.dm
	code/modules/mob/mob_movement.dm
	code/modules/power/gravitygenerator.dm
2014-06-09 20:26:17 +01:00
Giacomand
29232bbbdc Mobs will now slowly bop up and down while in zero gravity. 2014-05-09 00:00:44 +01:00
Hornygranny
237cabd1c5 removed old code 2014-05-01 17:55:12 -07:00
Hornygranny
4fd7a6312d Moved check for magboots to human_movement 2014-05-01 17:48:56 -07:00
Hornygranny
25b6628b89 Fixes #3157 2014-04-30 17:56:07 -07:00
MrPerson
ee716586b9 GEE THANKS GIA FOR MORE CONFLICTS (gravitygen changes to c4 vs qdel)
Merge branch 'master' of https://github.com/tgstation/-tg-station into qdel_r

Conflicts:
	code/game/objects/items/weapons/explosives.dm
2014-03-21 19:04:51 -07:00
Giacomand
cc4dd68bdf Added a new gravity generator which will produce gravity for the station.
Sprites by Ausop, which he posted in his sprite thread.

The gravity generator is very sturdy, as it is almost indestructible, but explosions can break it and it will need repairs.
Changed C4 to stop del()'ing and instead will only use ex_act().
Added an interact_offline variable for machines that will allow you to interact with them even if they are depowered. The gravity generator only uses this at the moment.

Removed the stun that people get when gravity changes.
Shuttles have gravity still.

Added a gravity generator room to the west of Engineering. It is very secure, with a foyer and requiring CE or Captain access. There are instructions on the table for repairing and enabling/disabling the machine.
2014-03-15 16:59:48 +00:00
MrPerson
9eee3e5067 First pass at a qdel() garbage collection system for tgstation
Works pretty well. If it can't GC something, it'll just del() it and be done.
Speed is amazing, holy shit.

New procs you should be aware of:
qdel(atom/movable) - sets up an object for garbage collection. Call this rather than del(atom/movable).
atom/movable/Destroy() - called right before the object is GC'd, so it still has a loc. Also called if the object is del()'d.
new controller - garbage.dm has all the details on this. Basically it nulls all references on GC'd objects and force del() them if necessary.
Generally speaking, objects should use Destroy() for behavior prior to deletion rather than Del(). You should also always call the parent so the object gets the right gc_destroyed var set.

ISSUES:
Tries to GC mobs atm. This actually works for new players, not so much for humans/monkies/simple_animals/anything. I'm guessing it needs to clear out their mind and HUD and maybe other things.
Gibbing is really bugged. It works, but the overlays just sit there for awhile and ugh. I'm very tempted just to del() mob/living and mob/camera and call it a day.
qdel() equipment doesn't unequip the item.
Pipes don't generally GC correctly. Debugging suggests they get referenced in many pipenets and that isn't cleared properly. However some do work fine. Need assistance here.
Bots don't GC, probably in the radio controller.
Lots of other shit doesn't GC but it's hard to find them because of the pipe spam.
I think I'm calling Destroy() twice by accident.
2014-02-23 14:55:12 -08:00
Pete Goodfellow
9df2455cfb Speeds up walking from 7 delay to 4. Removes the hardcoded walk/running delays, and uses the config options instead. 2014-01-19 19:44:11 +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
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
Perakp
b54cab665a No slipping when lying down
- No slipping when lying down
- Doesn’t change slipping mechanics otherwise.
2013-12-18 15:03:03 +02:00
Aranclanos
e162235922 Meh.
Added some checks to see if the mob that you just pulled to a location still exists once it finished their step()
2013-11-22 03:37:26 -03:00
Mloc-Argent
d2e8531ee5 Made cyborg middle-clicks cycle through the list of selected modules, and added some new helper procs for selected modules.
New procs:
* module_selected(module) - Checks whether the module slot specified by "module" is currently selected.
* module_active(module) - Checks whether there is a module active in the slot specified by "module".
* get_selected_module() - Returns the slot number of the currently selected module.  Returns 0 if no modules are selected.
* select_module(module) - Selects the module slot specified by "module"
* deselect_module(module) - Deselects the module slot specified by "module"
* toggle_module(module) - Toggles the selection of the module slot specified by "module".
* cycle_modules() - Cycles through the list of selected modules.

Signed-off-by: Mloc-Argent <colmohici@gmail.com>
2013-10-08 20:15:57 +01:00
supersayu
92b0f7d0a4 Fixes mobs not moving pulled objects 2013-09-22 20:29:30 -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
Giacomand
f3e63c8841 New powers, such as rally.
Blob spores can move through blob pieces now.
Blob gamemode chooses someone to turn into the blob
Other small changes based on feedback.
2013-07-09 00:52:29 +01:00
Aranclanos
88a516acca A world << "" passed, deleting it. Sorry. 2013-06-21 18:08:04 -03:00
Aranclanos
2f3e1eb9e6 Removed a bunch of copy pasted code regarding moving pulled atmos by clicking on turfs or conveyors. Now this is handled by a mob proc, Move_Pulled()
Now all turfs work with this feature. (shuttle shitty turfs didn't because they were not part of /floor)
Added a check on Move_Pulled() to see if the pulled atom is on a turf. This will stop the sleeper exploit and others.
2013-06-21 17:55:32 -03: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
Pete Goodfellow
b02c459505 Adding google code commits r5836 to r5849. RIP in peace google code. 2013-03-11 04:26:54 +00: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
petethegoat@gmail.com
3c02e14efd Fixes issue 1179. If gravity is off, can't escape trash chutes
Fixes issue 1219. Cloning Scanner Popping Out Prematurely
Fixes issue 1182. Using wrapping paper on a bodybag
Fixes issue 1238. Reading while blind (fixes paper, photographs, and books)
Fixes issue 1253. Braindead message when converting non braindead people (rev)
Fixes issue 1188. Head revs converting unconscious people

Added is_blind(A) as a helper proc for blindness. It returns 1 if A is a fully blinded carbon mob.

Updated the loot spawner to use a list instead of a text string.

Updated gun reloading to use text styles.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5619 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-27 13:20:59 +00:00
petethegoat@gmail.com
dd909aa5f8 Added an upgraded mopbucket for the janitor and placed it on the map.
Updated the changelog.

Moved Agouri's vehicle code into his dm in unused. Moved the vehicle dmi into icons/obj.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5234 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-30 22:37:00 +00:00
giacomand@gmail.com
32a855049f -Cyborgs can use Page Down to activate an item in their held module.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5092 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-17 00:08:37 +00:00
johnsonmt88@gmail.com
a3b99bccfa Reverts "world.time -> world.timeofday" in mob movement code. Hopefully this stops people freezing at midnight GMT.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4818 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-06 13:24:34 +00:00
elly1989@rocketmail.com
b903680fbd Changed client/verb/a_intent_change() to mob/verb/a_intent_change()
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
2012-09-28 06:45:57 +00:00
johnsonmt88@gmail.com
1a92acefa7 Mob movement now works on world.timeofday instead of world.time.
I've tested each mobtype with this and didn't see any issues but as always, it's possible that I've missed something. If it's an issue let me know. If it's a critical issue, go ahead and revert.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4578 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-28 17:48:32 +00:00
johnsonmt88@gmail.com
024c16df00 Added movement speed config options.
Basically these numbers get added directly to movement values.

run_delay and walk_delay affect all mob's walk/run speeds before their mob-specific modifiers take effect. Make this number higher to slow things down, make it lower to speed things up.

human_delay, robot_delay, monkey_delay, alien_delay, metroid_delay and animal_delay will affect those mobs specifically. So if you'd like humans to slow down but you don't want robots to suffer, just raise the value of human_delay! Same as before, raise the number to slow things down, lower it to speed it up.

Note: most mobs already run as fast as byond will let them.

Although these are config options. It is possible to adjust these values in-game. The values will reset at the end of the round however.
To adjust the values in-game you must be a high enough level admin to have access to the 'Debug' tab. Open the Debug tab and select 'Debug Controller". In the popup list, select "Configuration". The variables will have the same name as those in the config options.

Note: The values will act a little differently between servers with ticklag compensation turned on and those which have it turned off.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4576 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-28 16:20:35 +00:00
elly1989@rocketmail.com
904f71f08a Removing some unused loops and the last of the speech-bubble stuff.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4370 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-11 15:41:21 +00:00
baloh.matevz
e3d3f2b8e9 - Added support for pulledby, which tells you who is pulling this object.
- 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
2012-07-23 07:45:27 +00:00
sieve32@gmail.com
459c558898 -Make holodeck eswords a child of obj/item/weapon/holo instead of regular eswords, clumsy check removed as a result, and you can no longer do things like cutting through walls or doors or what have you. (Fixes Issue 665)
-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
2012-07-23 00:48:51 +00:00
johnsonmt88@gmail.com
8063f6dd06 Bugfixes:
Projectiles now last 50 ticks then dissipate. 
- This is to prevent people from firing these into space causing large amounts of projectiles to be processed needlessly.

Re-coded the cremator's cremate(), it should not lock up any more.

Removed a duplicate attackby() in pill bottles. They should now be able to pick up all pills on a tile properly.
- Fixes Issue 490
- Thanks to Zelacks for pointing this out.

Handcuffed mobs who are being dragged by another player can now move when the puller is stunned or paralysed.

Ashes are now decal/cleanable and can be mopped up by janitors

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4103 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-18 04:53:18 +00:00