Commit Graph

154 Commits

Author SHA1 Message Date
Remie Richards 5fc7af7fbf attackby() now has an argument containing the parameters of the click that called it. Items placed on tables now center their icon where the user clicked. this is NOT true for racks, since racks look organised in their sprite.
Items reset their pixel_x and pixel_y values on pickup.
2015-02-19 13:02:43 +00:00
phil235 a55e6a70be Fixes malf AI lockdown affecting doors on z levels other than station and mining.
Replaces a lot of z level numbers in code by their respective defines.
Adding a define for the Mining asteroid z level.
2015-01-11 15:39:32 +01:00
carnie a3f5e7ebfd Merge branch 'master' of https://github.com/tgstation/-tg-station into SubSystems
Conflicts:
	code/game/gamemodes/setupgame.dm
	code/modules/mob/living/carbon/human/life.dm
	code/modules/reagents/Chemistry-Machinery.dm
2015-01-04 01:52:14 +00:00
tkdrg 34c4c02777 Merge pull request #6646 from RemieRichards/TerminalDecon
Terminal Deconstruction
2014-12-31 21:47:47 -03:00
Remie Richards 341b147088 You can now deconstruct terminals provided the APC or SMES is prepared for this (eg, open panels, exposed wires etc.) 2014-12-31 23:35:07 +00:00
carnie a029a49392 SubSystem rewrite
Misc:

+Fixes unreported issue with initializing lighting on a specific zlevel

+Fixes two similar issues with moveElement and moveRange. Where fromIndex or toIndex could be adjusted incorrectly in certain conditions. Potentially causing bad-sorts, or out of bound errors.

+Rewrites listclearnulls(list/L) to no longer iterate through L.len elements for every null in the list (plus 1). i.e. went from L.len*(number_of_nulls+1) list-element reads (best-case), to L.len list-element reads (worst-case)

+New proc/getElementByVar(list/L, varname, value) which finds the first datum in a list, with a variable named varname, which equals value. You can also feed it atoms instead of lists due to the way the in operator functions.

+Fixes an unreported issue with Yota's list2text rewrite. Under certain conditions, the first element would not be converted into a string. Causing type-mismatch runtimes.

+New global map_ready variable. This is not fully implemented yet, but will be used to avoid duplicate calls to initialize() for map objects.

+All turfs now maintain references to all lights currently illuminating them. This will mean higher memory use unfortunately, due to the huge number of turfs. However, it will speed up updateAffectingLights significantly. I've used list husbandry to reduce baseline memory usage, so it shouldn't be any worse than some past atmos modifications memory-wise.

-Removed 'quadratic lighting', can add this back at some point. Sorry.

+modified the way lum() works slightly, to allow turfs to have overridden delta-lumen. i.e. space cannot be illuminated more than its default ambiance. This allowed removal of some iffy special-snowflake lighting areas implemented by somebody else.

+Lighting images in the dmi can now use arbitrary naming schemes. It is reliant on order now. This allows the dmi to be replaced by simply dropping in a new dmi.

-Removed all subtypes of /area/shuttle. Shuttles now create duplicate 'rooms' of /area/shuttle. (More on this later). This will conflict with most maps. Guide on how to fix to follow.

+All verbs/tools relating to world.tick_lag were refactored to use world.fps. However old config text for setting tick_lag will still work (it converts the value to fps for you)

+MC stats improved using smoothing. They now have their own tab so they dont get in the way when you're playing as an admin.

-removed the push_mob_back stuff due to conflicting changes. Sorry Giacom.

_OK, NOW THE ACTUAL INTERESTING STUFF_

Following systems moved over to subsystem datums:
air_master
garbage_manager
lighting_controller
process_mobs (aka Life())
nanomanager
power
sun
pipenets
AFK kick loops
shuttle_controller (aka emergency shuttle/pods), supply_shuttle and other shuttles
voting
bots
radio
diseases
events
jobs
objects
ticker

Subsystems hooks and variables should be commented fairly in-depth. If anything isn't particularly clear, please make an issue.

Many system-specific global variables have been refactored into

All tickers which previously used world.timeofday now use world.time

some subsystems can iterate before round start. this resolves the issue with votes not working pregame
2014-12-31 13:25:41 +00:00
Perakp ee3617310e Merge remote-tracking branch 'upstream/master' into droneFix 2014-12-30 13:32:51 +02:00
Hornygranny 99f364f480 makes APC call parent 2014-12-09 18:53:29 -08:00
Hornygranny af3f1aa4d8 Merge remote-tracking branch 'remotes/upstream/master' into emagrefactor
Conflicts:
	code/game/machinery/deployable.dm
	code/game/objects/items/weapons/storage/lockbox.dm
	code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
	code/modules/clothing/glasses/hud.dm
	code/modules/mob/living/silicon/robot/robot.dm
2014-12-09 16:03:45 -08:00
Razharas 7758a0afed Ok now explosions shall work properly
Changed severity to target, make items not destroy themselves on
severity lower than 1, all that stuff
2014-12-05 23:21:48 +03:00
Cheridan f909d59d1a Merge pull request #6130 from phil235/AttackMsgStandardizedFormat
Standardizing attack messages to always show the attacker first
2014-12-04 12:45:31 -06:00
Perakp 7f357963bd - Fixes belts getting stuck in drone inventory. Fixes #5563.
- Gives drones the ability to interact with APCs and air alarms without requiring them to have an ID card. Fixes #5565.
- Drones have to be adjacent to the APC/alarm when using it, for balance.
2014-11-29 14:36:36 +02:00
phil235 86405fa8c0 Standardizes attack messages to always show the attacker first (when there is an attacker).
Replacing some fo mob in viewers() show_message() with visible message().
Simplifying some message code in a couple places, fixing typos and span classes.
2014-11-24 01:49:34 +01:00
Hornygranny 678a13c451 moves emag effects from attackby() into atom proc emag_act() 2014-11-20 17:49:06 -08:00
Razharas ff456ebaf4 Unwinded most of shit
Meh
2014-11-19 21:36:45 +03:00
Razharas b071a0167e Made explosions work in a slightly different way
Yep
2014-11-18 16:22:41 +03:00
phil235 bc5754b378 adding diagonal attack animation. 2014-11-07 15:42:07 +01:00
phil235 1506383b2c Adding some missing do_attack_animation()
Moving do_attack_animation() proc to mob/living
Fixing the pixel offset issue from beds especially rollerbed.
Fixing the nograv bouncing stopping because of another animation being used.(lying down, jittering, attack animation)
2014-11-03 15:11:39 +01:00
phil235 8b49caa5ee Fixes typos and show messages. Fixes attack animation code. 2014-11-03 01:06:02 +01:00
phil235 3f30912c51 WIP - Adding attack animation to most attacks.
Fixing a couple "for(......) show_message()".
2014-11-02 22:50:58 +01:00
Cheridan f5b5ead3ef Merge pull request #4516 from MrPerson/examinate_the_doctor
Change examine() from an atom verb to a mob verb
2014-10-05 23:37:34 -05:00
Cheridan 08be1b34eb Revert "Changes a few green crosses to blue on sprites that I missed last time" 2014-10-04 19:22:10 -05:00
MrPerson 651c3e6db5 Merge to master - sole conflicting file was ninja.dm FUCK NINJAS 2014-10-04 01:45:39 -07:00
Menshin ed807f8538 * Polished the malf timer logic
* added a protection to prevent division by 0 when all hacked apcs are destroyed
* added a midnight rollover check for the MC (fixes #4905)
* toggling breakers won't add/remove a hacked APC from the AI apcs pool anymore
2014-09-28 12:16:21 +02:00
Remie Richards 473bcd1858 Ports Drones from NTstation + New Improvements/Features 2014-09-13 15:02:57 +01:00
MrPerson a23dbe2357 Merge branch 'master' of https://github.com/tgstation/-tg-station into examinate_the_doctor
Conflicts:
	code/game/objects/items/devices/radio/radio.dm
	code/game/objects/items/toys.dm
	code/game/objects/items/weapons/tanks/tank_types.dm
	code/game/objects/items/weapons/tanks/tanks.dm
	code/modules/events/ninja.dm
	code/modules/power/cell.dm
	code/modules/power/port_gen.dm
	code/modules/reagents/reagent_dispenser.dm
2014-08-29 04:21:15 -07:00
Firecage 0948391502 Span classes for files in the following Modules folders: Power, Projectiles, Reagents, Recycling, Research 2014-08-23 02:02:46 +02:00
MrPerson 44383ec1c8 Disregard that I suck cocks 2014-08-21 07:35:51 -07:00
MrPerson d0c97aae72 Merge branch 'master' of https://github.com/tgstation/-tg-station into examinate_the_doctor
Conflicts:
	code/ATMOSPHERICS/components/unary/vent_pump.dm
	code/game/gamemodes/cult/ritual.dm
	code/game/gamemodes/nuclear/pinpointer.dm
	code/game/machinery/spaceheater.dm
	code/game/machinery/status_display.dm
	code/game/objects/effects/decals/crayon.dm
	code/game/objects/items/stacks/stack.dm
	code/game/objects/items/weapons/airlock_painter.dm
	code/game/objects/items/weapons/cigs_lighters.dm
	code/game/objects/items/weapons/storage/secure.dm
	code/game/objects/items/weapons/tanks/tank_types.dm
	code/modules/assembly/assembly.dm
	code/modules/assembly/holder.dm
	code/modules/assembly/mousetrap.dm
	code/modules/mob/living/carbon/alien/special/facehugger.dm
	code/modules/mob/living/carbon/slime/examine.dm
	code/modules/power/cable.dm
	code/modules/reagents/grenade_launcher.dm
	code/modules/reagents/reagent_containers/food/drinks.dm
	code/modules/reagents/reagent_containers/food/snacks.dm
	code/modules/reagents/reagent_containers/glass.dm
	code/modules/recycling/sortingmachinery.dm

Thanks Firecage, this is all your fault
2014-08-20 05:54:20 -07:00
Aranclanos 55dd64fdc2 Adds static power value on areas. These variables should replace machines on the process list, that are only there to consume power.
This commit removes lights from the process list, about 500 of them on the current map.
The purpose of this is to reduce lag from the master controller ticker.
2014-08-06 06:57:52 -03:00
MrPerson c43518351f Some fixes and minor improvements to examining. 2014-06-13 09:01:52 -07:00
Kelenius 3908160998 One big update for stacks. 2014-06-10 20:36:08 +04:00
MrPerson 59d64656c4 Some fixes and minor improvements to examining. 2014-06-09 11:35:29 -07:00
MrPerson 645ca7f8a1 Merge branch 'master' of https://github.com/tgstation/-tg-station into examinate_the_doctor
Conflicts:
	code/_onclick/click.dm
	code/game/atoms.dm
	code/game/objects/items/toys.dm
	code/modules/paperwork/folders.dm
	code/modules/power/cable.dm
2014-06-09 01:50:44 -07:00
Menshin 6749f21042 Tweaked the power distribution handling :
* the power is correctly handled each tick instead of 1 tick on 2, because of bad reinitalization,
* apcs now draw power as others machines and fixed the amount of power send to them

Partially fixes #3761.
2014-05-25 00:54:41 +02:00
MrPerson 9d9a657acf Change examine() from an atom verb to a mob verb
Just in time for the feature freeze, a big change that will introduce bugs! Yay!
Mob verb is called verb/examinate(target), which just calls target.examine(user) and face_atom(target)
For explanation why, see http://www.byond.com/forum/?post=1326139&page=2#comment8198716
Long story short, mob verbs are much faster than object verbs. The goal is to make right-click menus populate faster.

Also changes a bunch of examine() procs to always, ALWAYS call the parent. Except mobs, but you have 1 guess why I'm not touching them. Mostly this affects obj/item/examine().
And also remove a whole shitload of pointless set src in view(2) kind of crap. Also span classes.
2014-05-01 09:56:39 -07:00
Cheridan 4d8160ab14 meteorhit() is kill 2014-04-22 12:16:02 -05:00
iamgoofball 810b91e7ac removes a ton of things checking the ticker to see if it's monkey, a gamemode that no longer exists. 2014-04-06 11:46:12 -07:00
Mloc-Hibernia 8af8a43d6f Initial pass to convert LF to CRLF
Signed-off-by: Mloc-Hibernia <colmohici@gmail.com>
2014-03-24 08:53:40 +00:00
MrPerson 6930283efc Merge branch 'master' of https://github.com/tgstation/-tg-station into qdel_r
Conflicts:
	code/game/gamemodes/changeling/changeling_mutations.dm
	code/game/gamemodes/changeling/changeling_powers.dm
	code/game/gamemodes/malfunction/Malf_Modules.dm
	code/game/objects/items/weapons/tanks/watertank.dm
	code/game/objects/structures/tables_racks.dm
	code/modules/research/server.dm
2014-03-21 03:05:39 -07:00
fleure 7d0ddb0e72 Merge pull request #2987 from Ccomp5950/apc_bugfix
APC overlay bugfix.
2014-03-12 10:46:19 +00:00
MrPerson 6b29fecda1 Merge branch 'master' of https://github.com/tgstation/-tg-station into qdel_r
Conflicts:
	code/game/machinery/bots/ed209bot.dm
	code/game/machinery/rechargestation.dm
	code/game/machinery/turrets.dm
	code/game/objects/structures/crates_lockers/closets.dm
	code/modules/research/circuitprinter.dm
2014-03-08 22:03:03 -08:00
Ccomp5950 d8df1df6b5 APC overlay bugfix.
Before: If you turned off the breaker and fiddled with on/off states and turned on the breaker it wouldn't update the overlay because the check_updates wasn't doing an if(operating) check and would think it didn't need to update the overlays once you turned on the breaker.

After: Check_update() now takes into account the operating (breaker on/off) variable and accounts for it in update_overlay.

Thanks Razharas from /tg/ #coderbus for bringing this to my attention.
2014-03-04 20:50:34 -06:00
Razharas b27d9c7396 Added RPED, some sprites and new power cell path
Your dreams of big part storage and fast machine part exchange came true
14 slot R&D part-only autoseeker/picker/dropper/exchager is in
Added different sprites for better capacitors and scanning modules
Changed the power cell type to be compatible with all this machine
changing faggotry
All sprites here are codersprites so ask nien/WJ for better ones if you
want
2014-02-24 05:14:43 +04: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
Ccomp5950 fdc0a26b00 Removed extra overlays length check.
No reason to do that if we're doing it again 2 lines down.
2014-02-17 19:07:53 -06:00
Ccomp5950 91fbd0ef88 Code effeciency project: apc icon_update()
caching the icon states instead of creating them each time
checking to see if any icon_state or overlay changes and only
applying the ones that do.
2014-02-16 12:17:41 -06:00
Razharas 2d125f0fc5 And more fixes
The ride never ends
2014-02-06 22:32:28 +04:00
MrPerson 931da9e7ef Many changes
Much diff
2014-02-04 22:49:38 -08:00
Razharas b4f011bacb Merge branch 'master' of https://github.com/tgstation/-tg-station into CraftingTable
Conflicts:
	code/modules/mob/living/carbon/human/human_defense.dm
	code/modules/power/cable.dm

Fixing conflicts
2014-01-31 05:20:59 +04:00