Commit Graph

94 Commits

Author SHA1 Message Date
Razharas 122796dfb7 Merge pull request #12726 from MrPerson/delay_of_game_5_yard_penalty_repeat_first_down
Refactor mob movement delay calculation
2015-11-01 02:04:44 +03:00
MrPerson d575219887 Refactor mob movement delay calculation
Basic premise: Get all mob movement delays calculated in movement_delay() instead of having half of them in Client/Move(). Except for the slowdown from grabbing, which is so shit I can't even. The idea here is to eventually have the AI movements be at the same speed as client-initiated ones.

Let's try this again: Removes TickComp because it's a useless pile of shit that's based on a false idea of how BYOND's ticks and tile-based movement work.
2015-10-29 05:15:41 -07:00
MrPerson 2f9c5b38f0 Removes the unused lastarea mob var
I think it was used for ambience music a long time ago.
2015-10-28 04:25:18 -07:00
xxalpha e82a216447 Changed various instances of range() and orange() to ultra_range(). 2015-10-19 20:04:14 +01:00
AnturK 83354fa364 Fixes 2015-09-24 18:26:12 +02:00
AnturK a99ed56f27 Atom Buckling - Squashed 2015-09-24 16:21:05 +02:00
unknown 68b824e727 increased confusion multiplier, increased confusion sources 2015-09-13 12:39:41 -06:00
unknown 16ac3baa88 made confusion directional and probabilistic 2015-09-12 13:15:45 -06:00
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