Commit Graph

1120 Commits

Author SHA1 Message Date
Anewbe
da437e50ee Merge pull request #3485 from Neerti/5/31/2017_make_surgery_slightly_better_again
Surgery Modifications
2017-06-01 14:42:38 -05:00
Anewbe
0af77012c4 Merge pull request #3465 from Yoshax/radiation
Ports radiation rework and stuff from Bay
2017-05-31 18:37:58 -05:00
Neerti
a0a390e887 Surgery Modifications
Semi-rewrites how surgery failure works.  Using an improper surface will call the surgery step's fail proc instead of just doing a melee attack.
Adds 'surgery odds' var to objs, which determines effectiveness.  The numbers for operating tables/roller beds/tables remain unchanged from the previous version, however doing it this way makes it cleaner to add new surfaces in the future.
Adds a proc to get a surgery surface.
Also makes burn repair on FBPs more efficent, so that one scorched robot does not take literally all of robotic's wires.
2017-05-31 17:41:02 -04:00
Leshana
34c73dab69 Optimization/Rewrite of Radiation Controller
* The performance of the radiation controller as-is was not fast enough for inclusion in production servers, but it has some nice featuers, so rewrote it to be more performant.
* Instead of storing the radiation strength for every turf, we only store the sources of radiation, and calculate the strength only for mobs who might be in range.
   * Old method was ray-tracing to every turf in range whether anything was there to be irradiated or not.  Could be hundreds of turfs.  New method only lazily calcualtes strength at a turf if we actually need to know it.   Often times this is zero turfs if nobody is standing in engineering.
  * Removed the automatic processing of objects with "rad_power" set.  Objects are responsible for calling the repository to create/update their radiation sources.   Saves some extra overhead that in practice was redundant with other process controllers.
  * Also tweaked to be more respectful of qdel'd objects and added some comments.
2017-05-25 18:43:56 -04:00
Leshana
b89897e8a2 Enhances power monitor computers to use the nano-map to show APC locations.
* In addition to showing APCs on a sensor'd powernet, the same APCs can be shown on the nano-ui map!
* Hover tooltip shows basic information on the APCs.
* Makes it easier to spacially understand where APCs are when you send people out to work on them.
2017-05-22 16:15:47 -04:00
Ben Reeve
6185bbd212 Unified radiation system 2017-05-22 16:24:34 +01:00
Anewbe
04971fcbb4 Merge pull request #3346 from VOREStation/cable-directions
Port multi-z cable improvements from Baystation
2017-04-22 09:36:56 -05:00
Leshana
30d2f16b04 Replace color macros and stream operator with style and to_chat 2017-04-21 11:22:08 -04:00
comma
f614de8387 Updates cable construction
FOrgot to update it to new direction whoops.
Also makes powernet connectino proc for cables multiz aware.
Port of: https://github.com/Baystation12/Baystation12/pull/15940
2017-04-21 11:22:07 -04:00
comma
5f2d23fbd7 Makes cable use BYOND directions
Instead of 11,12 they use 32,16 for DOWN,UP
Merges multiz handling into main logic
Port of: https://github.com/Baystation12/Baystation12/pull/15907
2017-04-21 11:22:07 -04:00
Arokha Sieyes
0fe43a1f2b Removes all the hard references to computer.dmi
I assume these were all lazy copy-pasting. We're changing computer icons to another set in a file we'll keep separate, and these completely pointless references are annoying. They should inherit this from the `/computer/` level, which they do. Has no effect on Polaris, but cleans up code that shouldn't exist.
2017-04-19 16:54:16 -04:00
Arokha Sieyes
e69f5bf981 Make cells show correct icon when they spawn
Initialize is great for cells sitting on a counter or something when the map loads. But not really for cells in guns that R&D prints and stuff. Kinda needs to be in New().
2017-04-02 19:28:11 -04:00
Yoshax
fb7da48588 Fixes an issue with smes deconstruction 2017-03-30 16:42:11 +01:00
Leshana
3a4bc3d897 Fix signularity_pull leaving ghost item in your inventory slot
* It called u_equip()  Nothing should call u_equip(), bad!
* Also replaced magic numbers with defined constants while I was checking singularity code.
2017-03-20 21:31:52 -04:00
Anewbe
19710d9bd8 Reworks empulse and emp_act 2017-03-05 12:22:45 -06:00
Neerti
0f781e36a7 Adds Multi-Z Test Map 2017-03-03 09:40:34 -05:00
Anewbe
bb2adf1290 Merge pull request #3021 from Neerti/2/23/2017_porting_map_datum_system
Ports a large chunk of the map datum system that europa/bay uses.
2017-03-02 16:32:02 -06:00
Neerti
12abb2d6f2 Ports a large chunk of the map datum system that europa/bay uses.
Links many map-specific details such as the station name, z-level information, and allowed jobs from global vars to map datum vars, which should help us maintain multiple maps at once in the future, which will be needed for the future Southern Cross.
Note that a config change will be needed to change GENERATE_ASTEROID to GENERATE_MAP, otherwise no changes should be required to continue normal map usage.
To change to a different map, it's suggested to tick the file that ticks all the other needed files, which for the Northern Star is called northern_star.dm.
2017-02-27 07:36:41 -05:00
Leshana
de85e27e25 Fix construction and deconstrution of PACMANs
* Modernized to use modern machine code instead of doing it itself.
* Made it compatible with modern circuits and machine frames.
* Also fixed some color macros to use CSS while I was there.
2017-02-22 10:32:27 -05:00
Anewbe
cad668a72a Further tweaks to Vox and their toys 2017-02-01 21:43:21 -06:00
ForFoxSake
89d4e3b824 Fixes SMES power window from throwing runtimes while in construction. 2016-12-09 13:05:57 +00:00
Anewbe
8414d25ebc Merge pull request #2800 from Nerezza/APCwork
Misc APC tweaks & fixes
2016-11-24 14:21:33 -06:00
Anewbe
f521625646 Singulo should be more stable now, produce power earlier 2016-11-22 22:00:43 -06:00
Nerezza
d7104ef027 Misc APC fixes & tweaks
-Adds a Polaris version of APC rebooting
-Changes the random APC-bluescreening event to be more sensible in what it does and how to repair it. Bluescreened APCs are permanently unlocked, and can be fixed by removing the power cell and applying a multitool.
-EMP'd APCs now give Bay's timed (or manual) reboot nanoUI so that important places aren't shut off permanently if engineering can't get around to them. 
-Nins and twizs no longer **** up APCs when they drain power from the cell completely. Also, drained power comes from the powernet primarily, and only draws from the battery if the powernet doesn't give enough (random chance) or if the cable is cut.
-Bluescreened APC sprite now switches to an open wire panel sprite if a screwdriver is applied.
-Grid checks put a nanoUI notice on APCs. As it is now, you have to wait for the grid check to end or use the grid checker in engineering before you can manipulate APCs.
-Grammar fixes
-More grammar fixes
-My god the grammar fixes
-to_chat'd the user <<s again.
-Merged a small clean-up to power states.
-Bashing APCs to pieces was always ineffective but would spam everyone anyway. Now, it only spams the person bashing the APC. This is a placeholder, ideally you should be able to bash a working APC's cover off if you want its battery out but this PR is already big enough as is.
2016-11-21 20:04:58 -06:00
Nerezza
c25c2d9f1f Some work on making APCs better
Grammar fixes, more grammar fixes, a couple bug fixes, a few more grammer fixes.

Oh I also went ahead and to_chatted them user <<s again.
2016-11-20 03:24:47 -06:00
Anewbe
0418911e0b Robots should not be shocked by wires/machines 2016-11-12 21:35:55 -06:00
Neerti
bb489cb09f Adds the new Grid Check event to rotation.
Maps in a new Grid Checker machine, located in an expanded substation room in Engineering.  When a grid check happens, Engineering can hack that machine to restore power sooner.  Wearing insulated gloves is highly recommended.
2016-10-21 12:47:57 -04:00
Eearslya
66342af864 Fix solar assembly behavior while in inventory 2016-10-10 03:03:48 -07:00
Neerti
337ef499a1 Cleans Up WIP Event System + New Grid Check For It
Separates the 'count and assess everything' stuff to it's own datum, called the metric datum, which I plan to add on to in the future to make counting and metrics easier.
Makes decision process a bit more weight-based, will probably continue tweaking later.
Makes the admin debug UI have links to change settings easily.
Adds replacement for grid check event, which works similar to the old one, but is now based on a physical machine in the game world, that Engineering can hack to make the event end faster, if so desired.  Note that the machine is not mapped in, and won't be mapped in until the event system is ready for launch.
Adds grid_check variables to SMESes and APCs to make them stop doing work without draining the battery.
Grid checks in the new system are caused by a "power spike" which originates from the engine and will cause bad things, should no grid checker machine be connected to the power-net.  These power spikes occur when the GM decides that a grid check is a good event to have.
The grid checker can be built and deconstructed using the standard machine construction methods.
2016-10-05 21:40:07 -04:00
Neerti
6f8603e042 Pulling & Size Fixes
Fixes inability for mobs to pull certain structures like mining crates.
Fixes w_class numbers I missed.
2016-09-24 16:18:32 -04:00
Neerti
828dacf485 Centralizes weight class definitions
A lot of new defines are now in inventory_sizes.dm, which contains;
All the size identifiers (the thing that tells the game if something is bulky, or w/e).
Storage costs for all the sizes, which are exponents of two, as previously.
A few constants for inventory size.

Also changes all storage item's capacity definitions by basing it off of how many 'normal slots' exist for it.  This allows one to change the definition for all of the defines in the file, and everything will follow along without needing to change 500 files.  In testing, I made all ITEMSIZE_COST_* defines doubled, and nothing had broke.

The benefit of doing all of this is that it makes adding new weight classes in the future much simpler, and makes knowing how much space a container has easier, as seeing ITEMSIZE_COST_NORMAL * 7 means it can hold seven normal items.
2016-09-22 00:51:51 -04:00
Neerti
267b5fd17d Minor Emitter Tweaks
Emitters no longer die by shooting a taser or laser tag gun at it.
Emitters don't explode if they are not on a powered wire with sufficient electricity in it.  They will just crumple away instead if integrity is reduced to zero.
Taking any damage to the emitter no longer results in instant death due to me being an idiot awhile ago.
Emitters can be examined to see if they are damaged, and can be repaired by applying metal sheets to it.
2016-08-29 01:08:31 -04:00
SinTwo
eabefc538a Revert "Merge branch 'master' of https://github.com/PolarisSS13/Polaris into NanoGrade"
This reverts commit 6bb5409349, reversing
changes made to f6a83d5ee0.
2016-08-15 12:58:00 -04:00
SinTwo
ed308dcae2 makes atms, apcs, and space heaters use tgui + changelog 2016-07-30 20:34:46 -04:00
SinTwo
0086d61d56 Merge branch 'master' of https://github.com/PolarisSS13/Polaris into NanoGrade
Conflicts:
	code/modules/client/client procs.dm
	nano/templates/robot_control.tmpl
2016-07-27 16:11:55 -04:00
Yoshax
f48a49712f Ghosts seeing power in a wire upon examination 2016-07-25 14:23:53 +01:00
SinTwo
976847a0b4 Merge branch 'master' of https://github.com/PolarisSS13/Polaris into item_state
Conflicts:
	code/modules/clothing/head/jobs.dm
	icons/mob/items/lefthand.dmi
	icons/mob/items/righthand.dmi
	icons/mob/suit.dmi
	icons/mob/uniform.dmi
	icons/obj/items.dmi
2016-07-13 17:07:52 -04:00
SinTwo
7192bf08fd item_state cleanup 2016-07-11 22:31:32 -04:00
Techhead0
111310ef32 Adds the Solar Storm event.
New Random Event: Solar Storms. Similar to a radiation storm, but anywhere inside the station is safe.
Also boosts solar panel output significantly for the duration.
2016-07-10 04:15:23 +01:00
EmperorJon
5b3c952be9 Merge pull request #2039 from SinTwo/smallfeatures
Water-Coolers, Floor Lamps, and Benches
2016-07-08 09:54:11 +01:00
Neerti
bcca19bc71 AI Core Update
Changes layout of the AI core, see picture in PR.
Moves APCs for core and upload to the backs of the rooms.
Critical APCs can somewhat resist EMP now.
Gives turrets a ten second timeout until they go underneath the turret covers, unless turned off manually or if they lose power.
Adds a new type of turret specifically for the AI upload/core.  This type has more health, has a 1/3 chance to ignore EMP, and fires xray lasers, to counter ablative armor.
A new material called Durasteel has been added.  It is made from Plasteel and diamonds, and boasts more toughness than Plasteel alone, as well as reflectivity.  The inner walls of the AI core are made out of this new material, which makes emitters less helpful.
Emitters can be damaged by projectiles, and will explode if too much damage is sustained.  Shooting a Durasteel wall will likely cause you to lose the emitter.
New AI core turrets turn green when on lethal, to show that xray is coming.
2016-07-05 17:33:34 -04:00
SinTwo
4fa126b7e7 a whole lot of nanoui upgrades 2016-06-24 00:43:16 -04:00
SinTwo
8ecc72412d minor fixes and icon adjustment 2016-06-19 23:30:46 -04:00
SinTwo
da38eca686 Merge branch 'master' of https://github.com/PolarisSS13/Polaris into featureattack 2016-06-19 22:28:31 -04:00
SinTwo
86e500d25c Adds floor lamp, benches, new tank sprites, and cup dispenser on water coolers. 2016-06-19 22:28:01 -04:00
Arokha Sieyes
2000f95886 "1" Spam
Why would you do this to meeee.
2016-06-10 09:50:54 -04:00
SinTwo
dc29227895 Fixes power monitor computer screens 2016-06-03 22:10:52 -04:00
Arokha Sieyes
ea6754597e Ports Bay's Robolimb Changes (#1779)
* Consolidates copypasta for repairing robolimbs

Also prevents self-repairing a limb you are using to hold the tool

* Fixes robot organs becoming undamagable after reaching cap

* Fixes repairing with cable not using any cable, repairing with weldingtool not doing eyecheck

* Removes ORGAN_ROBOT and ORGAN_ASSISTED flags, fixes #13123

* Fixes damage to robotic limbs not triggering organ processing

At the same time, robotic limbs with damage don't need to process.
However, it's much safer to explicitly have robot limbs return 0 from
needs_process() instead of not rechecking bad external organs.

* Build on HarpyEagle changes to apply to Polaris

Had to apply the change from flag to an enumeration.

* Removes unneeded file

* Fix bruisepacks, remove heart

Well, the unused bay version of the heart anyway

* Tweaks examine, reverts isSynthetic

Reverted that because Bay doesn't use it the same way. Also changed Examine to not list every robo-limb on non-FBPs in red, but left them listed as normal per Spookerton
2016-05-28 14:12:19 +01:00
Yoshax
8d72648ae6 Adjusts and adds more colors of cables
Removes limitation of being unable to join different colors of cable
Allows merging of different kinds of cable
Adjusts the color changing proc to be nicer as per Baystation12/Baystation#11645
2016-05-19 18:13:12 +01:00
Zuhayr
6edb8b31f3 Made slimes more interesting. 2016-05-06 04:07:52 +09:30