Commit Graph

91 Commits

Author SHA1 Message Date
MrStonedOne
eb7d5fefa5 Merge remote-tracking branch 'upstream/master' into step-aside-aran-im-here-to-touch-your-precious
Conflicts:
	code/controllers/subsystem/ticker.dm
2015-05-02 03:03:29 -07:00
Cheridan
84d2a5a006 Merge pull request #9228 from Ikarrus/pregamedelay
Admins can now adjust pre-game delay time
2015-05-01 15:03:26 -05:00
Cheridan
509d940746 Merge pull request #9225 from Incoming5643/Unless_its_wizbiz_bugs_will_usually_follow
Fixes Round End Sound
2015-05-01 14:13:07 -05:00
MrStonedOne
94a132dbde pr-9231 changelog and minor subsystem tweaks 2015-05-01 05:24:33 -07:00
MrStonedOne
fe1d3c22d5 Minor rework of lobby admin verbs
Both me and #9228 fixed the same bug, so I reverted mine

Starting the round with the start now verb will now show a tip of the round.
2015-04-30 18:27:58 -07:00
MrStonedOne
bd6d51a0b5 Massive MC and subsystem rewrite
MC:
	No longer tracks a subsystem's cpu usage. This was basically worthless and took up space on the stat panel
	Can calculate wait down to a tenth of a decisecond to make it fps/world.ticklag agnostic
	Now allows subsystems to have a dynamic wait, that is based on a ratio of how long that subsystem has been taking to process(cost). (This system allows for upper and lower bounds, and an changeable cost delta for each subsystem)
	MC can now be told to init a zlevel

All Subsystems:
	Stats panel now allows child subsystems to pass it a message to add to its stats entry. All subsystems have been moved over to this system - This should cut down on subsystems having to copy and paste the stats proc in order to add to it
	All subsystems now properlly handle being given a zlevel in their init proc

Subsystem changes:
	Air:
		Added air to the dynamic wait subsystem. upper bound: 50, lower bound: 5, cost delta: 3 times process cost
		Air now fires 4 times faster when it can do so without lagging things up
		Pipenet has been merged into air
		Atmos machinery now processes with process_atmos(), ticked by air, not machinery.
		Hotspots (the fire object) are now object pooled
	Pipenet:
		Deleted, added to air
	Machinery:
		Moved all atmos calcualtions in all objects's process() to process_atmos().
	Lighting:
		Added Lighting to the dynamic wait subsystem. upper bound: 20, lower bound: 5, cost delta: 3 times process cost
	Ticker:
		Fixed ticker not updating the lobby panel when game start delayed
		Fixed the game start timer updating rapidly from queued fires when game start delay is removed
	Garbage/qdel:
		qdel will now limit its process time to 2ds a fire.
		qdel can now be given hints as a return to Destroy() as to what should be done with the object.
		the options are:
			queue: (default) this is the normal behavior.
			letmelive: old default to non-null/zero. does nothing with the object
			iwillgc: functionally the same as above, mainly to let people working with objects know that the object will not be queued for GC checking
			harddel: this will queue the object to be deleted without storing a soft reference, mainly to save locate() processing time.
			harddel_now: this will del() the object. To allow for a clean removal of every del() not in qdel
		All objects have been updated to the new system, harddel and iwillgc was not added to any new objects.
		Fixed some objects not GCing because they didn't properlly clear references in Destory()
		Fixed some objects getting qdel'ed preventing other objects from getting GCed because they did not null their reference to that object.
2015-04-29 02:00:25 -07:00
Ikarrus
3b96d74955 Admins can now adjust pre-game delay time
Instead of just a simple Pause/Play toggle, it lets admins set a longer (or shorter) time if they want.

Admins can still set -1 for indefinite delays.
2015-04-28 23:00:42 -06:00
Ikarrus
fceaa8f969 Gang Update
- Bosses can now summon their gangsters to a location with the gangtool
- Gangtools cannot recall the shuttle if the station is too damaged (<70% Integrity)
- Fixed SSshuttle.emergencyLastCallLoc not being handled or stored properly. Fukken Carn breaking my shuttle features.
- Fixed a potential injection exploit in gangtool's can_use()
- Jobbanned players cannot be promoted
2015-04-28 22:25:55 -06:00
Incoming
2f0ebbf810 Fixes a pretty significant bug where sounds set with set round end sound would only actually play for the person who set the sound 2015-04-28 23:15:27 -04:00
Incoming
f892127b24 Adds the "set round end sound" fun button so admins can override the generic sounds to play something else if want be. 2015-04-18 15:34:03 -04:00
MrStonedOne
a6602795c9 fixes runtimes with npcpool 2015-04-14 10:30:58 -07:00
Swag McYolosteinen
ffd0db2b7b Merge pull request #8581 from MrPerson/lighting_2015
Object based lighting system
2015-04-12 13:14:32 +02:00
MrPerson
01a8aa662a Moved lighting stuff from controllers folder to its own module
Lighting SS no longer cares about the return of check(); the light datums are responsible for deleting themselves.
Cap on lighting effects from turfs is now 8 because they're static and shouldn't be flashing lights too often. This means starlight actually works now instead of being capped at 1 measly turf.
Lighting related ChangeTurf() code is in the lighting module. Changed it up to be faster on lighting controller init and not leave dangling lights when a turf becomes or stops being opaque or when it turns into space. This diff log is gonna be useless sadly but take my word for it, it all works.
Lighting related Moved() code is also in the lighting module. Opaque objects will now update nearby lights when they move (mechs).
Opaque objects other than the light datum's owner on the same tile as its owner will block the effect of the light. In other words a mech standing on the same square as a light bulb will block all the light of that bulb.

Changed "cheap_hypoteneuse()" with an even cheaper version; actually calculating the hypoteneuse! I can prove it's cheaper if needed.
Removed move_contents_to() because it's unused and trying to use it would cause major bugs with lights and other shit and I have no interest in supporting that, so let's not even tempt people.
2015-04-12 02:25:28 -07:00
Iamgoofball
c06ad7e6b8 moved process() to datum. made /datum/reagents/ process instead of the containers. 2015-04-07 17:13:59 -07:00
Jordie
6d34032385 Merge pull request #8628 from Fayrik/AllTheSmallThings
Someone called for pest control?
2015-04-04 20:58:07 +11:00
Fayrik
a634bf7f8a Fixes unreported bug that would delete the cargo shuttle if it was sent to a shuttle loan event while in transit. 2015-04-04 10:54:06 +01:00
hornygranny
35498dc200 Merge pull request #8686 from sawu-tg/npcpool
Fixes to SNPCs
2015-04-01 11:47:57 -07:00
Sawu
799eadb6c8 Fixes to SNPCs
* Fixes two runtimes (stat menu and taking a delegate/assistant)
* Fixes SNPCs not being inserted into the NPCPool
* Makes the NPCPool fire more often for maximum robustness.
2015-04-02 05:19:21 +11:00
MrPerson
907e20c94d Lights are now told when to update instead of constantly asking if they need to. The lighting SS is a lot faster as a result and no longer has :'s everywhere
atom/movable/Destroy() in atoms_movable.dm now calls ..() to fix #8063
Light strength and light radius are no longer a single concept, although right now all lights are max strength for their radius
Updated the comment intro for _DynamicAreaLighting_TG.dm to account for modern fact and not talk so much about the old system(s)
And a changelog for all this lighting shit, not that anybody could possibly miss it
2015-03-31 12:35:10 -07:00
MrPerson
e4a3abdd70 Object based lighting system
Uses actual objects on each non-space, dynamically lit turf. Light levels are switched back and forth via animate() and the object's alpha. Supporting colors shouldn't be too hard. Some hacky efficiency improvements means it isn't that much more expensive than current (I think, needs testing). Most of the lighting ss's cost is in checking all the lights and doing big loops, not anything actually in the loops themselves.

Start PDA flashlights on. This was to speed up testing but frankly I think it's a good change in general.

Added a Moved() proc. Called after a successful move.

In the future I hope to move off the luminosity var entirely but that was too slow in testing for me. That's what all that "for(area in sortedAreas) area.luminosity = 1" stuff in the lighting ss is, tests on removing luminosity outright.
2015-03-31 05:09:42 -07:00
Sawu
1142cbd355 Fixes NPCPool stat runtime 2015-03-30 09:35:33 +11:00
Sawu
ab776cf014 Updates the NPCPool to current branch.
see #7012
* NPCPool will co-ordinate and organize all SNPCs, making them stronger and more intelligent.
* SNPCs can use the botPool system to co-ordinate and delegate with each other.
* SNPCs have been given factions to allow interoperability between certain types of SNPCs.
* Bots (machinery/bot) can use the system too for basic help and coordination.
2015-03-30 02:50:21 +11:00
MrPerson
ce13faed09 Change select holiday names to #defines 2015-03-25 15:01:06 -07:00
MrPerson
9910cf3fe3 Change holidays into datums
Holidays are now actual datums with procs and vars and everything.
Holidays run a proc called celebrate() when it's time to celebrate them. Currently none of them do anything but that should change, wink wink.
Holidays can now run for more than a day. The important ones, april fools, christmas, halloween, new years, and easter, all last at least a week. The idea is so people can celebrate christmas in game without having to, you know, actually play on fucking christmas. And also to put a time limit on how long stuff like the annoying spookoween closet skeletons will stick around so it doesn't overstay its welcome and become annoying as shit like last year.
The event SS now allows more than 1 holiday to run at a time. This matters for new years + christmas, easter + april fools, easter + 4/20, and any holiday that can happen on friday the 13th. The events get stored in a list that's only initialized if there's an active holiday so testing for potential holidays is still pretty easy.
Added more easter dates so we won't have to add more until 2040. The current batch run out in 2017.
2015-03-25 01:46:29 -07:00
Remie Richards
819422bc3e Merge pull request #8410 from Miauw62/yesgunhogimrewritinggoofsay
MIAUW VON SAYCODE 3: RISE OF THE SPANS
2015-03-21 05:05:37 +00:00
Swag McYolosteinen
9e25fe4019 Merge pull request #8431 from AnturK/lawsupdated
Adds total law changes counter
2015-03-20 17:46:44 +01:00
AnturK
7cccf20fc0 Adds total law changes counter 2015-03-19 14:57:12 +01:00
Miauw
1873143e63 Initial say cleanup commit. 2015-03-18 19:23:31 +01:00
Jordie0608
b501710e30 stops backup shuttle coming when already called 2015-03-18 22:27:20 +11:00
phil235
29609457f5 Makes the message when you're attacked slightly bigger for better visibility."
Changes two "for... show_message()" into "visible_message()".
2015-03-12 23:15:54 +01:00
Cheridan
0015d4c120 Merge pull request #8141 from Incoming5643/Subjectivity_is_a_bitch
Skipping mulligan antag based on Time/Subjectivity from admins + tweaks
2015-03-09 00:14:28 -05:00
Cheridan
39cccb82e4 Merge pull request #8123 from Ikarrus/randomspawns
Randomizes Order of Job Spawn Points
2015-03-03 22:57:16 -06:00
Incoming
c28d8ff7d0 Adds the ability for admins to "take the shot" and end rounds at their discretion. This is behind a two confirmation gate with a 20 second reflection period between them. All this is logged.
When mulligan antag is set to kick in, the suggestion for admins to end the round if they feel enough has happened is given. The option can also be found on the check antagonist panel.

The check antagonist panel will show what the muligan roundtype is if it exists.

If absolutely no one wants/can be the midround antags, the round ends there.

The round will end no matter what if the primary antagonist survived over an hour before biting it (unless the shuttle is already past the point of no return, in which case a peaceful ending takes priority)

Adds force_ending to VV editing protection, to avoid admins trying to shinanigans it on.
2015-03-03 16:39:01 -05:00
Razharas
64d0af336d Merge pull request #8099 from Incoming5643/doublemint_heads
Fixes duplicated heads
2015-03-03 21:32:46 +03:00
Ikarrus
c62d387a1d Randomizes Order of Job Spawn Points
The ticker's setup() will shuffle the list of spawn points, so jobs won't always predictably spawn bottom-up and left-to-right
2015-03-02 20:01:36 -07:00
hornygranny
539d51fb57 Merge pull request #8091 from MrStonedOne/whydidthistakesolong
Adds admin alert when random events fire
2015-03-02 12:02:43 -08:00
MrStonedOne
cd75ad8693 Fixes admin alert for event triggering logic
Forgot to have it check the event's config in the second loop
2015-03-02 07:24:45 -08:00
MrStonedOne
a3076ce0eb Admin event alerts can now be disabled per event.
Disabled for electrical overload and space dust.
2015-03-02 07:20:23 -08:00
Incoming
0037d06cbf Fixes a pair of instances where AssignRole() was being called unsafely and shoved a hot spoonful of sanity in there.
Fixes #8086
2015-03-01 16:47:58 -05:00
MrStonedOne
74bd002183 Adds admin alert when random events fire
Not sure why it took this long for this to happened.
Will only trigger on random event firing, and not when an admin triggers an event to prevent unneeded duplicate messages
Also triggers for events triggered by the wizard summon events
Logs in the game log under the GAME: heading as well
2015-03-01 06:50:51 -08:00
Razharas
1a311c2434 Merge pull request #8047 from optimumtact/patch-1
compile your shit they say
2015-03-01 06:21:11 +03:00
Remie Richards
88cc21cb6d Merge pull request #7963 from Incoming5643/manage_ass
Updates Manage Job Slots to work with assistant slots
2015-02-28 21:28:44 +00:00
Orange Borg
d56782f645 compile your shit they say
Don't kill me they say
2015-02-28 10:26:38 +13:00
Razharas
a8cedc14ef Merge pull request #7969 from optimumtact/nanouibeginnings
Auto load required nanoui files on client login
2015-02-27 10:36:13 +03:00
paprka
2d1642dd22 fixes another runtime with starlight 2015-02-24 16:48:06 -08:00
oranges
9b7d23776c Auto load required nanoui files on client login
This is still an inprogress so please do not merge
2015-02-25 12:25:21 +13:00
Incoming
cbcc52beeb Updates Manage Job Slots to work with assistant slots
Any (non-silicon) job can now be set to be an unlimited slot job from Manage Job Slots

People will be allowed to join as assistant if no other jobs are availible

Removes a redundant sanity check from AssignRole()
2015-02-24 16:06:36 -05:00
hornygranny
95f9c59475 Merge pull request #7920 from paprka/starlightconifg
Fixes starlight runtime
2015-02-23 13:03:56 -08:00
Swag McYolosteinen
ac5fc9b044 Merge pull request #7544 from Incoming5643/popcapgames
Adds optional population caps
2015-02-23 17:20:02 +01:00
paprka
68d649b6e1 removes unnecessary crap 2015-02-22 21:07:57 -08:00