Commit Graph

86 Commits

Author SHA1 Message Date
hornygranny
2367ae48c9 Revert "Smooth out gliding so movement isn't (as) jerky" 2015-08-29 13:37:55 -07:00
MrPerson
51a17eeeac Per MSO's advice, Ceiling glide_size until BYOND supports floats 2015-08-18 21:54:53 -07:00
MrPerson
b130f4958d Simplify the math a bit on gliding
Rounding now happens after calculations instead of before. The delay is also unrounded.
2015-08-15 22:28:42 -07:00
MrPerson
831c069404 Smooth out gliding so movement isn't (as) jerky
Only applies to non-ghost, non-camera mob movement. Scales automatically to any fps and any move delay.

Also took this oppurtunity to remove tickcomp because it was USELESS and shit.

All the rounding is because of floating point imprecision. round(2.7, 0.9) != 2.7, for example. 2.7 + world.time would wind up being < than world.time 3 ticks later even though they should be equal.
2015-08-11 22:19:07 -07:00
phil235
94d072828f Merge branch 'master' of https://github.com/tgstation/-tg-station into CatchThrownPieFix
Conflicts:
	code/game/atoms_movable.dm
	code/game/objects/items/weapons/dice.dm
	code/game/objects/weapons.dm
	code/modules/flufftext/Hallucination.dm
	code/modules/mob/living/living_defense.dm
	code/modules/mob/living/living_defines.dm
	code/modules/reagents/reagent_containers.dm
2015-07-19 21:53:39 +02:00
Firecage
4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02:00
phil235
b570af6795 Fixed catching banana creampie in mid throw (and similar objs). 3824 10536 (hitting a wall now makes the smashed pie effect appear ON the wall)
Moved last_bumped var from movable to living.
Renamed /obj/machinery/field/proc/bump to bump_field() to avoid confusion with Bump(). Same thing with /obj/effect/mine/Bumped() -> triggermine().
Fixes sprite when hunter leaps into a wall. 10428
Removed some commented code here and there.
Remove allow_spin var, throw_at now uses a spin argument for that.
Throwpass atom var is no longer used to check whether thrown stuff can pass stuff (now using CanPass() proc like everything else), the var is still used for some adjacency click check.
A thrown mob hitting another mob now produces a sound; also thrown mob and target one no longer swap places even on help intent.
A thrown mob now is lightly hurt (and weakened) if he hits a wall/mob/dense object. Nerf the damage when thrown mob hit wall.(20 -> 10)
Thrown obj/mob no longer bounces off wall unless it's no grav. Heavy thrown items now push an unanchored obj/mob target.
Fixes losing all momentum when getting out of a thrown closet. 6569
A lot of work on throw_at, throw_impact, and hitby to make the code more OOP. Thrown items no longer collide with border items on the side. 10479
Fixes the killer crusher. 10507
2015-07-14 00:51:19 +02:00
NullQuery
b4248b01e4 - Crew monitoring computer using the html_interface module
- Patch: Don't update html_interface clients that have been inactive for more than 10 minutes.
- Patch: Attempt to speed up _renderContent some more (in case of multiple clients) by using spawn.
- Patch: Second argument for hiIsValidClient hook: reference to the current html_interface object (used by crew monitoring computer).
- Feature: procqueue singleton. You can use this to put proc executions on a queue. Used by the crew monitoring computer to queue the update "for the next tick" when humans move.
2015-06-27 10:26:46 +02:00
NullQuery
15cdf9bfca Merge from upstream. 2015-06-25 20:30:19 +02:00
kingofkosmos
1d14471d00 Ellipses to waiting messages. Warning-spanclasses to failing messages with an exclamation mark. 2015-04-24 20:50:50 +03:00
phil235
09df1080e9 Some adjustments:
Fixes with projectile bump() on border objects.
Fixes some projectile on_hit() not calling the parent on_hit.
Move projectile mob hit check code to mob/CanPass().
Simplifies projectile/CanPass()
Fixes runtime in projectile/Bump()
2015-04-02 17:39:02 +02:00
MrPerson
9038fb15af Code cleanup
Removed a bunch of unused or hardly used vars on /mob and /atom/movable.
Added defines for mob/living/var/mob_size so it's not using magic numbers.
2015-03-13 10:41:00 -07:00
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