Commit Graph

49 Commits

Author SHA1 Message Date
variableundefined
721a7656d2 Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into NPCPoolPort 2018-10-01 16:34:47 +08:00
Crazy Lemon
e3e22ca2ab Merge pull request #9476 from variableundefined/SSNanoMob
Port Nano Mob to StonedMC
2018-10-01 01:13:58 -07:00
variableundefined
bc22544919 Port Shuttle to StonedMC 2018-09-02 22:22:33 +08:00
variableundefined
841463c17e Port Nano Mob to StonedMC 2018-09-02 20:27:52 +08:00
variableundefined
1e8e909847 Actually port it over properly. Also port NPCAI to StonedMC. 2018-09-01 11:31:42 +08:00
Fox McCloud
6cdfe70303 Converts and Updates Weather Subsystem 2018-05-21 00:01:18 -04:00
tigercat2000
7fb8f8d76c Merge remote-tracking branch 'upstream/master' into more_ss_ports
# Conflicts:
#	paradise.dme
2018-04-30 09:27:11 -07:00
tigercat2000
7d8c9a731a SS Conversion: Atoms, Machines, n' Mobs
This converts the machine and mob processes to the SMC. Additionally, it
adds the Atom subsystem, which handles all Initialize() calls in place
of the old gameticker. Due to incompatibility with our atmospherics
(FUCK OUR ATMOSPHERICS FOR FUCKING EVER JESUS CHRIST WHO THE FUCK MADE
THIS PIECE OF GODDAMN SHIT) atmospherics machines do not use
Initialize() as they should, instead opting for a custom atmos_init
proc that the air controller handles.
2018-04-28 17:55:15 -07:00
Fox McCloud
cfe182a1f7 Ports over Timer Subsystem 2018-04-28 20:26:04 -04:00
Fox McCloud
22dc6860b3 Ports TG's Garbage Subsystem 2018-03-28 20:02:39 -04:00
Fox McCloud
5701ea7c75 Ports Nano UI to Subsystems 2018-03-26 23:59:52 -04:00
Fox McCloud
2b6a6eb812 Ports Sun Controller to Subsystem 2018-03-25 19:23:26 -04:00
Fox McCloud
7a548473d4 name 2018-03-25 18:52:06 -04:00
Fox McCloud
ae53aa1d21 Ports over Fires to Subsystems 2018-03-23 18:03:27 -04:00
tigercat2000
dca16e60cf PS -> SMC Ports: LINDA, Spacedrift, Throwing
This commit ports LINDA, spacedrifting, and throwing to the SMC.
2018-03-02 23:58:57 -08:00
tigercat2000
47cd4cb127 StonedMC
This commit ports the StonedMC from /tg/station, intended to replace the
Process Scheduler from goon. Currently, they exist simultaneously, as
it's very difficult to port our 22 processes to the SMC all at once.
Instead, we can make them work together until everything is converted
over at a later point, and then take the old PS out back and put a
couple of rounds into it's deformed skull.

Primary benefits of this new process controller include: Other people
that can actually maintain it, unlike the PS, pre-world-init
initialization for subsystems, ease of ports from /tg/station13, and
potential performance improvement (to be seen).
2018-03-02 21:12:49 -08:00
Fox-McCloud
17d7232cf3 Removes Disease one and Virology 2017-07-08 23:10:17 -04:00
Tigercat2000
129a57bd9b Goonlights
Ports Goon Lighting from /vg/station.

Summary -
 This adds smooth edges to all lighting in order to increase the
 aesthetic appeal of the lighting system.
 It works by using a matrix to change the appearance of the lighting
 overlay sprite, which has been changed to be a base for the matrix to
 modify.
 Ported from /vg/station with the help of @PJB3005. This lighting
 system is a hybrid between Mloc's lighting rewrite and Tobba's
 Goonlights.

Notable changes:
 - Darksight now matters on mobs. The lighting overlays are not
 alpha=255 when they are completely dark, meaning you can still see the
 floor- assuming you can view the turf at all, because it retains the
 luminousity setting.
   - This means Tajaran have 100% night vision again as they are
   intended to. Humans can see in a 3x3 square centered around
   themselves.

   - No, I'm not changing this, if it's even possible. This is how
   BYOND's lighting is meant to work. If you have any complaints about
   game balance, please feel free to make a pull request to change
   see_in_dark values, which will be seperately evaluated.

 - The lighting controller now runs at world.tick_lag, to emulate the
 realtime function of StonedMC. So far with my testing, this hasn't
 caused any noticable performance decreases- the lighting system is
 obviously more expensive than our previous iteration, however, it's not
 the next ZAS ;)

Technical Details:
 - /atom/movable/lighting_overlay/proc/get_clamped_lum has been removed,
 succeeded by /turf/proc/get_lumcount. They behave identically.
 - Turf lighting is actually controlled by four "corner" datums, which
 feed information into the overlay.
 - The way opacity is factored into the system has changed. Anything
 that doesn't use set_opacity is not going to work to block light.
 - /area/lighting_use_dynamic has been renamed to
 /area/dynamic_lighting, for consistency with /turf/dynamic_lighting.
 - Lighting is no longer seperately initialized for away missions. It is
 handled in ChangeTurf() as it should be.

Known & Unfixable issues:
 - There is a 5-10 second delay from starting the round to the lights
 turning on. Attribute it to "the powernet being spun up" if you would
 like to- but it's actually just how long it takes the lighting system
 to update every single turf on the map.

 - When you walk with a light on you, the light will actually jump ahead
 of you before you visually get to the tile. This is because of the
 movement gliding on mobs, realtime lighting actually goes faster than
 the glide takes to complete, so it appears that your lights are moving
 faster than you.

Thank you krausy~

Animated Goonlights

This adds an animate() call to the update_overlays() proc. This makes it
so that any light changes will smoothly transition between the changes
instead of instantly changing their appearance.

Also fixes a few issues pointed out on Github.

Change lighting animation (turns out the old one totally breaks if you toggle a light quickly, whoopsies)

Kill LIGHTING_INSTANT_UPDATES

isturf
2017-02-05 07:08:17 -08:00
Markolie
f4c4bfe288 Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into lavaland_megafauna
# Conflicts:
#	code/__HELPERS/unsorted.dm
#	code/_globalvars/lists/objects.dm
#	code/controllers/verbs.dm
#	code/game/gamemodes/cult/ritual.dm
#	code/game/gamemodes/cult/runes.dm
#	code/game/objects/items/stacks/sheets/sheet_types.dm
#	code/modules/mob/spirit/mask/mask.dm
#	code/modules/mob/spirit/viewpoint.dm
#	icons/effects/96x96.dmi
#	icons/effects/effects.dmi
#	icons/mob/actions.dmi
#	icons/obj/weapons.dmi
#	icons/obj/wizard.dmi
#	icons/turf/floors.dmi
2017-01-06 16:36:46 +01:00
Markolie
269ead92ea Legion fixes, debug controller additions, turret fix 2016-10-24 03:04:37 +02:00
FalseIncarnate
6c4bce1eac Changed Mob Hunt Server to be an abstract controller
Adds catch modifier support, track wild captures

Adds support for capture modifiers:
- These modifiers adjust the "effective run chance" of the mob,
potentially making it easier or harder to capture a mob based on the
total modifier
- Attempting to capture a mob in melee (running up and smacking it with
pda in hand) now grants a 20% capture bonus (reduces mob's effective run
chance by 20)
- Attempting to capture a mob at range (throwing the pda) does not grant
a bonus
- Support is in place for a client-based catch modifiers, to allow for
possible things such as bonuses or penalties from things like "item
cards" or achieving X number of captures. This is not currently planned
for this PR

Adds tracking of how many wild mobs you have captured to the game UI.
Mobs from trading cards will not increase this value, only mob you
captured from the wild will.
- Bragging rights for now, but could be used for a future "milestone"
system to earn bonuses

More cleanup and fixes

Thrown PDAs now properly trigger capture attempts

Mobs now properly consider their type preferences for spawning (may need
to up whitelist bonus weight)

Mobs no longer will spawn in holodeck areas, since this results in them
sometimes spawning on z2 in the holodeck source "templates"

show_message replaced with audible_message

Spawn area selection cleanup

Mobs will no longer attempt to spawn in the derelict solars,
constructionsite solars, or the unused /area/construction subtypes (the
base type is used, just not the subtypes as far as I can tell)
- Mobs will also avoid spawning on turfs that are not on the station
z-level, in the event an area is mistakenly mapped onto additional
z-levels or something
2016-09-09 02:20:57 -04:00
Krausus
6cff9b10d6 Further voting controller tweaks
- Adds admin logging to creating and canceling votes
- Adds exception handling
- Adds deletion handling (should, theoretically, never be necessary)
- Adds tick-checking, just in case there's a lot of clients watching a
vote
- Adds the vote controller to the "debug controller" list
- Fixes that one "if" Tiger whined about
2016-07-24 19:46:34 -04:00
Tigercat2000
71e5344a98 Mass replace 2016-07-07 19:34:02 -07:00
Tigercat2000
c3f476f62c Supply shuttle, initial_move() fixes, dock fixes
Supply has been almost completely replaced by -tg-'s system.

No fancy UI, unfortunately, but modifying bay's directly was not possible.
2015-12-04 21:48:40 -08:00
Tigercat2000
e60799474b tgshuttles unfinished 2015-12-03 10:59:06 -08:00
Markolie
fd3056792d Enable NanoUI debugging properly 2015-08-09 19:50:49 +02:00
Markolie
73e94b5dc4 Alarm system overhaul 2015-08-02 07:13:03 +02:00
Markolie
660ffad9a0 Merge branch 'master' of https://github.com/ParadiseSS13/Paradise
Conflicts:
	code/modules/power/port_gen.dm
2015-07-30 03:08:33 +02:00
Markolie
56989c8fbd Convert multi shuttle UI's to NanoUI 2015-07-28 04:39:00 +02:00
DZD
29e70854e9 Fix merge conflicts
🖕 map conflicts over lines that weren't even edited by both upstream
and this branch.
2015-07-15 22:28:12 -04:00
Fox-McCloud
545aaf4003 Adds in Lighting Controller Debugability 2015-07-14 04:40:56 -04:00
DZD
916f9bf4bb Sort of compiles
Time to fix xenoarch, and then the map.
2015-07-09 15:55:36 -04:00
Tigercat2000
e1249fc640 Lighting overhaul.
This commit overhauls the lighting system to Bay12 standards. It is better
in pretty much every way.
2015-05-10 12:03:27 -07:00
ZomgPonies
5c14d9c5f2 vg Garbage Collector 2015-02-23 17:18:38 -05:00
Markolie
efb45ea228 Table crafting refactor 2015-02-22 01:50:57 +01:00
Markolie
956f2ba703 Event overhaul from Bay, atmos fixes 2015-01-21 23:05:59 +01:00
Zuhayr
333c3c8ae7 Mining rework. Added ore scanner, adjusted values for spawn, added debug verbs.
Conflicts:
	baystation12.dme
	code/modules/admin/admin_verbs.dm
	maps/tgstation2.dmm
2014-07-13 08:44:47 -04:00
ZomgPonies
02395a5273 Missing debug controller 2014-06-26 15:09:16 -04:00
mwerezak
e6944b989c Adds shuttle controller
Moves all ferry shuttle processing into one place: the new shuttle
controller.

Also cleans up the emergency shuttle controller a bit more and fixes
multi-shuttle cooldown.

Conflicts:
	code/controllers/master_controller.dm
	code/controllers/verbs.dm
	code/game/supplyshuttle.dm
	code/modules/shuttles/shuttle.dm
2014-06-24 07:06:48 -04:00
mwerezak
723979115c Renames supply controller global var
Renamed from 'supply_shuttle' to 'supply_controller'

Conflicts:
	code/controllers/verbs.dm
	code/game/gamemodes/gameticker.dm
	code/game/supplyshuttle.dm
2014-06-19 09:52:35 -04:00
Razharas
95b6406adb Makes this shit actually work
Yeah, also added crafting controller to debug controllers(who will need
to debug crafting, but whatever)

Conflicts:
	code/controllers/verbs.dm
2014-05-04 22:55:42 -04:00
alex-gh
521ad31671 Revert the new lighting system. 2014-04-07 23:51:35 +02:00
Rob Nelson
30996e58d5 Use /tg/'s better GC code.
Conflicts:
	code/controllers/garbage.dm
2014-03-02 19:46:51 -05:00
Aryn
5b2f811b71 Lighting system is too buggy to continue until I know wtf is going on
Conflicts:
	baystation12.dme
	code/game/turfs/turf.dm
2014-02-28 17:47:50 -05:00
elly1989@rocketmail.com
a10f6e0ec2 Added a switch inside client/Topic which can direct the topic call to a few frequently used destinations.
Before, when making a link to an admin tool, you done this:
<a href='?src=\ref[C.holder];parameter=1;>link</a>

Now, we do not need to use a reference to direct it to places like usr or usr.client.holder (or client, but you never needed src for that anyway)
usr: <a href='?_src_=usr;parameter=1;>link</a>
holder: <a href='?_src_=holder;parameter=1;>link</a>

This basically allows us to move a LOT of code outside of loops as we no longer have to create a \ref for every recipient of the message. They can all be sent identical links. A simple example of this would be in pray.dm Although it's most noticeable in the adminhelp code which is vastly simplified.

Adminhelp name spotting code thingy...whatever... looks for ckey matches first, then surnames, then forenames. This is to stop it possibly weirding out if there is a station full of "Ed"s of "Sarah"s

Prayer code no longer loads a new icon into memory every time a prayer is sent. Use image() not icon()!

key_name() no longer needs a reference for it's admin_link argument.

message_admin() pretty much doesn't need those extra arguments for finding and replacing %holder_ref%. I've got to go through all the code to check before I remove it though.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5105 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-18 08:27:11 +00:00
giacomand@gmail.com
3dd4f8cbc5 -Optimized freelooking a bit.
-Larva can now die, instead of staying in critical.
-Improved the prison break event.
-Added the cameranet to the list of debuggable controllers (I know it's not technically a controller but it seems like the best place to be).

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4858 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-13 19:52:41 +00:00
elly1989@rocketmail.com
9f1362c68d Failsafe added to the debug/restart controller verbs.dm
Failsafe now checks the lighting_controller too. It will restart it if it doesn't progress for 5 cycles (same as MC)
datum/failsafe is now datum/controller/failsafe

The probability of lights breaking after spawn was reduced from tube:10 and bulb:25 to tube:2 bulb:5

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4674 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-10 12:53:55 +00:00
elly1989@rocketmail.com
e97813d2b6 Replaced the master_controller with the WIP sequential version.
Fixed a problem where TG was using this sequential master_controller but I had removed a spawn where master_controller.process() was called because I was working with the default master_controller. This problem was causing the master_controller to prevent the lighting_controller.process() ever running properly because it was hogging the current thread (thread isn't the right word there, not sure what you call it....stack?)

Added debugging to both the lighting_controller and master_controller. http://filesmelt.com/dl/debugging.png

Both lighting_controller and master_controller may be deleted to terminate their processes (this is done via the restart controller verb. This allows for clean restarts without 'doubling up' (where, for instance, the master_controller would be running more than one instance).

lighting_controller has a prototype recovery proc which is called by the "restart controller - lighting" verb. It's basically an overly paranoid version of process() which will only transfer light_sources to the replacement controller if they don't runtime. It's not needed at the moment as the process() has yet to runtime.

master_controller has the beginnings of self pruning lists. This method using list.Cut(index,index+1) is faster than doing list.Remove(thing) all over the place (the latter iterates through the list to find the thing).

Added more detailed time-measurements for the master_controller. It now displays the processing costs (in real-world seconds) of each part of the master_controller's cycle.

The stat panel only updates for mobs actually -looking- at the stat panel.

Explosion debugging is now hidden behind a if(Debug2). To have it print that data to world.log just click the DebugGame verb

debug controller and restart controller verbs are now both GameAdmin rank. Not sure how they got split up.

Fixed another cause of dark splotchy space turfs. (turf/wall/ex_act was replacing the turf with space and then deleting that new space turf)


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4593 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-31 04:14:26 +00:00
elly1989@rocketmail.com
6e274cd395 New lighting, it's essentially just the old DAL system with a queue.
Comments for lighting:
	Like sd_DAL (what we used to use), it changes the shading overlays of areas by splitting each type of area into sub-areas
	by using the var/tag variable and moving turfs into the contents list of the correct sub-area.

	Unlike sd_DAL however it uses a queueing system. Everytime we  call a change to opacity or luminosity
	(through SetOpacity() or SetLuminosity()) we are  simply updating variables and scheduling certain lights/turfs for an
	update. Actual updates are handled periodically by the lighting_controller. This carries additional overheads, however it
	means that each thing is changed only once per lighting_controller.processing_interval ticks. Allowing for greater control
	over how much priority we'd like lighting updates to have. It also makes it possible for us to simply delay updates by
	setting lighting_controller.processing = 0 at say, the start of a large explosion, waiting for it to finish, and then
	turning it back on with lighting_controller.processing = 1.

	Unlike our old system there is a hardcoded maximum luminosity. This is to discourage coders using large luminosity values
	for dynamic lighting, as the cost of lighting grows rapidly at large luminosity levels (especially when changing opacity
	at runtime)

	Also, in order for the queueing system to work, each light remembers the effect it casts on each turf. This is going to
	have larger memory requirements than our previous system but hopefully it's worth the hassle for the greater control we
	gain. Besides, there are far far worse uses of needless lists in the game, it'd be worth pruning some of them to offset
	costs.

	Known Issues/TODO:
		admin-spawned turfs will have broken lumcounts. Not willing to fix it at this moment
		mob luminosity will be lower than expected when one of multiple light sources is dropped after exceeding the maximum luminosity
		Shuttles still do not have support for dynamic lighting (I hope to fix this at some point)
		No directional lighting support. Fairly easy to add this and the code is ready.
		When opening airlocks etc, lighting does not always update to account for the change in opacity.

Explosions now cause lighting to cease processing temporarily.

Moved controller datums to the code/controllers directory. I plan on standardising them.
"Master","Ticker","Lighting","Air","Jobs","Sun","Radio","Supply Shuttle","Emergency Shuttle","Configuration","pAI" controller datums can be accessed via the debug controller verb (used to be the debug master controller verb)
Supply shuttle now uses a controller datum. Shuttles tend to arrive up to 30 seconds late, this is not a bug.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4537 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-25 16:06:57 +00:00