Commit Graph

36 Commits

Author SHA1 Message Date
phil235 081bae6740 Fixes broken ui action button for toggling chef apron's sleeves and owl's wings.
Fixes surviving suicide
Fixes suicide damage overlays.
Fixes ninja regen "clothes warm" spam message. (moving rad armor check outside of apply_effect)
Fixes ninja smoke bomb count.
Fixes dead shaved corgi
Fixes lipozine still being in code.
Fixes flattening boxes requiring them to have their window opened.
Fixes armor softening message from disarm attack.
Fixes player being forced to play spiders without choosing.
2015-04-14 13:54:36 +02:00
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 135293bedf Fixes object processing list by replacing "SSobj.processing.Add" by "SSobj.processing |= " to avoid having duplicated objects in the list, meaning the objects would be processed more than once per iteration.
Fixes Alien embryo processing that was processed twice.
2015-02-14 14:18:49 +01: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
phil235 d5a7d82959 Fixes a lot of "the the" in messages. 2014-12-16 22:59:55 +01: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
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
Razharas ff456ebaf4 Unwinded most of shit
Meh
2014-11-19 21:36:45 +03:00
Cheridan 24456bcc22 Merge branch 'PipenetRevamp' of https://github.com/Aranclanos/-tg-station into Aranclanos-PipenetRevamp
Conflicts:
	_maps/map_files/tgstation.2.1.3.dmm
	code/ATMOSPHERICS/atmospherics.dm
	code/ATMOSPHERICS/components/portables_connector.dm
2014-11-13 18:55:53 -06:00
Jordie0608 590684e129 Merge branch 'master' of https://github.com/tgstation/-tg-station into beekeepermodewhen
Conflicts:
	icons/mob/animal.dmi
	tgstation.dme
2014-11-09 00:15:12 +11:00
Aranclanos 8aa5a137c5 Pipenet revamp
-Removed the pipenet network datum, now it will all be done with the pipeline datum
-All atmos pipes and machines will always have a pipeline datum
-Moved the valves to the binary subtype and the portable connectors to the unary subtype
-The pipe vents (who were barely used in three spots of the map) are removed, the map slots will replaced with outlets
-Fixes some bugs of pipenet disconnection, mostly on explosions
-Cleaned a bit the copypaste of construction.dm of pipes
-Removed the ID restrictions of digital valves and the frequency (both unused)
2014-11-03 08:21:31 -03:00
hornygranny 16d299e5c5 Merge pull request #5379 from optimumtact/revertclick
Revert my click cooldown changes
2014-10-21 18:39:21 -07:00
Francis adf252df9b Keep the define around as that is a good idea 2014-10-20 22:49:06 +13:00
Francis b3de61552f Revert "Defines for the define god"
This reverts commit f737f7889c.
2014-10-20 22:22:38 +13:00
Francis c50c26a48f Revert "Add the click cooldown define to the last special defines"
This reverts commit 5595d57f57.
2014-10-20 22:22:23 +13:00
phil235 45cfe07f98 Merge branch 'master' of https://github.com/tgstation/-tg-station into DisplacedGirderFix
Conflicts:
	code/modules/recycling/disposal.dm
2014-10-15 18:23:40 +02: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
Francis Devine 5595d57f57 Add the click cooldown define to the last special defines
This will stop these getting out of sync and let you change
all times with a single define
2014-10-09 14:52:47 +13:00
Francis Devine f737f7889c Defines for the define god 2014-10-09 14:49:28 +13:00
Incoming 8e99152226 Updates spiders to have full player functionality
*All spiders can now web turf (but AI controlled non-nurses won't choose to), only nurse spiders can wrap items and lay eggs.
*Eggs laid by a player controlled nurse spider will eventually grow into player controlled spiders, while AI lain eggs will only result in AI spiders
*Adds non nurse spiders to the staff of change as they pass my rules for inclusion (Leaves a corpse, can do everything as a player the NPC can do, can't dominate a round by reproduction)

I take no responsibility for spidercode, it's a bit iffy but as far as I can tell it all works for players now.
2014-10-01 18:58:07 -04:00
phil235 87d7c9e91e Create the audible_message() proc to replace most instance of " for(var/mob/M in hearers(...) show_message(..., 2)"
fixing typos and missing emotes in emote lists.
2014-09-14 01:15:15 +02:00
Firecage 6c7af5eb32 SPANCLASSES!!!!! 2014-08-26 09:52:13 +02:00
Firecage 22743b77f4 Adds asbolute paths to some effect files. 2014-08-07 18:59:06 +02:00
phil235 382397a6ea Fix for #3151
Removes the useless periods.
2014-04-21 19:36:33 +02:00
Aranclanos 7bcb69ad88 Removes the click cooldown from almost everything, now it should be always be 0.1 seconds.
Ranged weapons and laser eyes have a cooldown of 0.4.
Grilles, windows, windoors, walls and blobs have a cooldown of 0.8.
Hitting mobs will also have a cooldown of 0.8.
Removes the unused USEDELAY flag.
2014-03-28 06:32:47 -03:00
MrPerson 3c58091437 Merge branch 'master' of https://github.com/tgstation/-tg-station into qdel
Hopefully nothing went wrong but you never know.

Conflicts:
	code/FEA/FEA_fire.dm
	code/controllers/supply_shuttle.dm
	code/game/gamemodes/changeling/changeling_powers.dm
	code/game/machinery/autolathe.dm
	code/game/machinery/drying_rack.dm
	code/modules/hydroponics/hydroponics.dm
	code/modules/projectiles/projectile/magic.dm
	code/modules/reagents/Chemistry-Recipes.dm
	code/modules/reagents/reagent_dispenser.dm
2014-03-02 21:39:27 -08: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
hornygranny ed12a9cfb0 missing exclamation points 2014-02-20 12:41:23 -08:00
hornygranny a86de57c05 Fixes #2726 2014-02-20 12:11:00 -08:00
adrix89 c1ae410869 Fixes 1653
Projectiles now have a layer threshold 2.75 which is the spiderlings layer.
2014-02-03 17:15:49 +02:00
Fleure aaf68d2a12 Included additional structures to escape from 2013-11-05 00:26:30 +00:00
MrPerson eaf201bd1c Grammer fixes
You put the the pen into the box ( Fixes #671 )
Capitalization errors on spiders and cocoons. ( Fixes #679 )
2013-09-01 01:40:50 -07:00
giacomand@gmail.com 54d02d75a3 - Committed SuperSayu's patch fix for silicon alarms.
- Made the singularity not move stuff while contained, should help and make it easier to work with; such as fixing the field generator.
 - Added logging for gold slime extracts.
 - Removed unneeded deletion of signals in telecomms code.
 - Added a debug verb which will record pointers of signals that weren't garbage collected.
 - Removed the need to create a mob to compare it in telecomms code.
 - The spider infestation is more likely going to spawn nurses.
 - Runtime fix with spells. 
 - Reverse list actually does something now. Bots never needed it so I removed it. (Thanks carn)
 - Added an ON_BORDER flag for border firedoors.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5601 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-22 23:45:47 +00:00
giacomand@gmail.com f6078aba78 - Bugfix for user created areas not correctly powering machinery.
- Fix for retaliating hostile mobs to not attack itself.
- Grammar fix for goats and cows.
- Fix for malfunction and continuous rounds; which doesn't stop the count down timer when the AI dies.
- Spiderlings won't grow inside vents and spiderlings are much easier to kill, can be shot with a projectile and display a message after dying.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5548 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-14 17:46:33 +00:00
giacomand@gmail.com a56e922053 Committing for Cael_Aislinn:
= Giant Spiders =
- Nurses spin webs which impede progress, bundle items and mobs up in cocoons, lay eggs to create spiderlings
- Nurses are slow and weak, but their bite has a chance to paralyse the victim
- Spiderlings skitter about and eventually grow into giant spiders. 
- Spiderlings will ventcrawl, so they can spread over the station pretty fast. 
- Hunters are fast, have decent health and the most effective poison
- Guards are medium speed but the health and direct damage
- The poison of hunters and guards can cause hallucinations if they bite you

= Farm animals =
- Cows can be milked or butchered for a large supply of meat. Sadists can also tip them over (with intent_help). 
- Goats can also be milked, but have a nasty temperament. 
- Chicks grow up to be chickens, who lay eggs and continue the cycle. But where did it start? (they're very noisy). 
- All three are orderable via QM. 

My changes:

- Added a spider infestation event.
- Optimized code with spiders and simple_animals.
- Made a /hostile/retaliate type which will only fight back when hurt. Based on Cael's code.
- Added some farm animals on the map.
- Changed events, added a setup() proc which can let you setup variables or the event. Made the event only kill itself when it has called, announce(), start() and end().
- Brainrot will only need alkysine as a cure.
- Communication blackout will always be silent.
- Changed some admin buttons to use the new event system.
- Added a forceEvent proc which you can use when you enable debug verbs.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5525 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-12 16:44:06 +00:00