Commit Graph

268 Commits

Author SHA1 Message Date
Anewbe
a942e145b6 Tweaks emitters and Pacman 2018-09-22 18:45:57 -05:00
Anewbe
8f42127837 Ports the supermatter grenade, supporting code 2018-08-11 20:10:05 -05:00
Anewbe
c2794c571d Hopefully fixes some tool-conversion things 2018-08-03 15:13:29 -05:00
Anewbe
729ce71aa0 Converts most istype(thing,tool) procs into an appropriate thing.is_tool() format 2018-08-02 21:45:15 -05:00
Neerti
be73b8c36a for(var/bad_code in world)
Removes a very large amount of world loops.
Adds a macro to painlessly generate a global list, and the needed code to modify the list when an object is made or deleted automatically.
Cleans up some commented out code.
2018-04-29 17:55:04 -04:00
Leshana
c7cd04b2bb POLARIS: Fix emitters connected to powernet remotely.
Ensure when we unanchor an emitter that we disconnect from powernet.
2018-04-19 20:51:15 -04:00
Aronai Sieyes
7d3aec96fd Arranges lots of things into planes (#5072)
* Rearranges a billion things into planes

* Make cryotubes fancy

* Update Travis

* Fix hiding logic
2018-03-28 12:59:12 -07:00
Arokha Sieyes
102041b2b6 POLARIS: Log more engine info 2018-03-13 18:57:52 -04:00
Leshana
5847319443 Update every initialize() proc to return an initialize hint.
* Yes, all of them.
* Also did a few corrections to redundant New() and broken Destroy() along the way
* Renamed the turf_initializer.initialize() proc to InitializeTurf to avoid confusion.
* Subsumed /area/proc/initialize into /atom/proc/initialize() - Made /area's LateInitialize to get same behavior as before.
2018-02-05 15:50:13 -05:00
Cyantime
2cf7149607 Makes containment fields and tesla bolts bypass gloves 2018-02-04 02:22:35 -05:00
Cyantime
5b358cb7c5 PA sprites 2018-01-29 00:33:09 -05:00
Leshana
00d13c5832 Fix more Destroy / GC issues.
Fixes recursive Destroy call on containment field.
Fix unable to GC issue on air alarms.
Fix unable to GC issue on radiation sources.
2018-01-21 22:49:27 -05:00
Leshana
db0ba60f64 Implements the Tesla engine and supporting features (#4539)
* Adds "typecache" utility functions. A fast way to filter lists by type.

Ported from TG

* Ports the "orbit" feature and subsystem from TG

* Adds a feature that allows mobs and objs to "orbit" around some atom.  They literally are moved around in circles.  See the `orbit` proc in orbit.dm.
* Adds a subsystem that processes the actual movement of orbiting items.

* Adds utility methods for common machinery behavior.

* Adds default_unfasten_wrench which handles the standard anchor/unanchor behavior of wrenches being used on machines.  Together with the other default_x_tool machinery procs we can eliminate having that code duplicated in dozens of places!
* Adds is_wire_tool proc to easily detect when a machine is hit with a tool that should open its wires UI (if it has one).

Based on ideas from Paradise, with improvements for us.

* Implements the Tesla Engine

Ported from a mixture of TG and Paradise code and assets: Edison's Bane

Includes the tesla energy ball itself, the generator that makes it, tesla coils, grounding rods, the circuits and frames to build them.

* Switch dusting to zapping on impact and spin better

Ported /tg SpinAnimation which supports more than triangles.
2018-01-19 14:56:08 -06:00
Leshana
0e6f2fcb09 Make Singulo Stable Again (#4521)
* Make Singulo Stable Again

* Prevents emitter beam effects from being pulled by singulo.  Now watch them hit the field gens.
* Prevent singulo from consuming the PA particle effects.  It already gets fed by impact, don't try to eat them.
* Improve the Setup Singularity debug verb to do more better setup (including PA)
* Fix the energy dissipation values so that singularity does not just keep on growing even when setup properly.

* Enhance singularity proc/eat()

* Use `var/simulated` as a more generic way to ignore lighting overlays etc
* Remove redundant code in the rest of the proc body.
* Slight optimization: avoiding typecheck in loop over return from orange()
2018-01-13 21:43:32 -06:00
Neerti
acb208dd3f Works on New Blob 2017-11-29 22:35:01 -05:00
Neerti
99eb6f9404 Updates Tools
Adds toolspeed var, which is a multiplier on how 'fast' the tool works.  0.5 means it goes twice as fast.
Adds usesound var, which determines what sound is used when a tool is being used.
Changes a lot of code to use those two vars instead.
Adds 'ayyy' tools, which are ported from /tg/'s abductor gamemode.  They're currently admin only but I might make them obtainable by xenoarch later.
Adds powertools, also from /tg/.  CE starts with them in a new toolbelt that spawns in their locker, ported from (you guessed it) /tg/.
Changes welder sprites to look nicer, ported yet again from /tg/.  Modified the blue welder slightly so it can be the electric welder sprite.
Adds various sounds from /tg/, for tools and welders.
2017-08-03 04:49:23 -04:00
Cameron653
97957fcaee Replaces more macros. (#3647)
* MORE MACRO CHANGES

AHHHHHHHHHHHHHHHHHHHH

* Fixes a few typos

* Fixes compile error

* Fixes for real

* 4 macros left that I can't find
2017-07-27 21:12:21 -05:00
silveryferret
d9526bde2c Puts initial_fire_delay and burst_delay into variables instead of hardcoded numbers, as requested. 2017-07-22 17:24:08 -04:00
silveryferret
7567726c07 Ports R-UST from Baystation12 + small admin debug verb 2017-07-19 20:33:16 -04:00
Cameron653
e158fcd3cc Macro Replacements. (#3574)
* A preface to my madness

Travis failed one of my PR's because I copied old code
that used /red /blue /green.

Because of this, I am going to find and replace every
instance of it that I find.

Also this is a test commit to make sure I'm comitting
to the correct branch.

* /blue /green /red replacements

Dear god.

A slow and painful death from acid is more fun than this.

I wouldn't wish this torture on my worst enemy.
And this is only the beginning

* Replace part 2.

Time to fix the human error.

* Fixes mismatches

* Sets macro count to 220

One above the current number of macros in the code.

* Fixes last of the mismatches.

* Removes spaces, replaces \black

Removes spaces
Replaces \black in a few areas where seen
Replaces \bold with <B> </B> where seen

* Updating macro count again

* More fixes!

* Issues fixed! For real this time!

I swear!

* Fixing all the merge conflict files.
2017-07-19 12:47:23 -05:00
Leshana
e48b548f2b More and more Destroy() cleanups all across the board - Return qdel hints. 2017-06-05 23:01:41 -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
Ben Reeve
6185bbd212 Unified radiation system 2017-05-22 16:24:34 +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
Anewbe
f521625646 Singulo should be more stable now, produce power earlier 2016-11-22 22:00:43 -06: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
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
Kelenius
acc78a8000 Changes types of ghosts and eyes
``/mob/dead/observer`` -> ``/mob/observer/dead``
``/mob/eye`` -> ``/mob/observer/eye``

Reason being that they are similar in that they both don't interact with
the world in any way. Some procs were shared, some checks as well, and
it overall makes more sense this way. Plus, there were no ``/mob/dead``
mobs.
2016-02-20 15:36:05 +03:00
Jon
85c704676f Updates all get_base_turf usages to get_base_turf_by_area.
This means that instead of the base turf being defined by the z-level, it's now defined by area and defaulted by z-level.

Updates all "shuttle" and "solar" areas to have a base_turf of space.
Updates docking arms 1, 2, and 3 on the main asteroid level to have a base_turf of space.

Other z-levels may still need updating.

This change means that all actions which destroy or dismantle a tile - for example bombs, a singularity, a shuttle leaving, or deconstruction - now leave these new areas as space not asteroid. Future mapping efforts may need to take this into account.
2015-12-05 04:24:17 +00:00
Kelenius
83adba88d4 Updates blob
Remains of player blob axed.
blob_act() axed. Blob now has an arbitary set of things it can attack.
It will flow over everything else. Blob has an awful tendency to destroy
non-craftables.
Will test more tomorrow.
Blob will now attack mechs.
Fixes #8106.
Fixes #10705.
2015-10-05 18:10:16 +03:00
PsiOmegaDelta
9dd1a54191 Destroy tweaks.
Ports Destroy() proc tweaks from Paradise and /tg/, sourced from https://github.com/ParadiseSS13/Paradise/pull/2091.
Adds returns in Destroy()s, to prepare for future return values.
2015-09-25 10:44:23 +02:00
Cael Aislinn
1de511b545 fixes emitter runtime by using new calling syntax
Signed-off-by: Cael Aislinn <cael_aislinn@yahoo.com.au>
2015-08-31 16:41:43 +10:00
mwerezak
ac738f3db4 Moves flags values to item_flags var
Moves flags that seemed to pertain more to equipment to a new item_flags
var in /obj/item
2015-08-18 17:18:25 -04:00
Zuhayr
3b712adb5f Removed intact var in favour of is_plating() proc, fixed issues with invisible initialized pipes. 2015-08-16 17:51:19 -07:00
Zuhayr
c8baafed2a Removed turf_animation for now, ported vg hasproximity optimisation. Rewrite and refactor of how turfs handle icon updates, edge smoothing and
construction/deconstruction. Major map rework/changes.
2015-08-16 06:05:21 -07:00
PsiOmegaDelta
b5a47fd43b Merge remote-tracking branch 'upstream/dev-freeze' into dev
Conflicts:
	code/modules/mob/living/silicon/ai/life.dm
	code/modules/power/rust/circuits_and_design.dm
	code/modules/power/rust/core_gen.dm
	code/modules/power/rust/fuel_compressor_construction.dm
	code/modules/power/rust/fuel_injector.dm
2015-07-01 22:46:40 +02:00
Zuhayr
8ab80b7394 Removes the RUST engine. 2015-07-01 15:50:55 +09:30
PsiOmegaDelta
cc7c502fb8 Updates emag attackby usages to emag_act where it's not too much of a headache. 2015-06-16 09:34:13 +02:00
PsiOmegaDelta
bad9c103eb Merge remote-tracking branch 'upstream/dev' into 150605-Meteors
Conflicts:
	code/game/gamemodes/meteor/meteors.dm
2015-06-05 14:59:52 +02:00
PsiOmegaDelta
a07d20d657 Ports /tg/'s meteor implementation.
Merges the two meteor events into one, and now takes severity into consideration instead.
Including the basic meteors there are also new types ranging from flaming to radioactive which may drop appropriate types of ore.
2015-06-05 14:58:35 +02:00
Chinsky
ad0652d864 Moved some stuff from global.dm into defines files that fit the theme, some into files where they are used (and only there, much global). Axed some obsolete stuff (rip Debug var). 2015-06-04 22:51:15 +03:00
Zuhayr
ebe62cefd8 Refactored random map generator system and added several terrain generators.
Created a global list to track base turfs for explosions/shuttle moves.
Remaps the asteroid to be a moonlet. Tidies up some references to 'asteroid', removes moonbase from the accessible z level list.
2015-06-03 04:36:19 +09:30
PsiOmega
bf27545841 End game turf changes now simply alters color. 2015-05-29 23:38:09 +02:00
PsiOmega
bcb1ea5413 Endgame tweaks.
Now instead calls the proper round-end proc when finishing the round, allowing admins to interrupt restart if desired.
None of the current end game variants currently use over/underlays, they are now content with coloring space.
On endgame start, the entire world is now updated in a spawn() instead, reducing crippling lag.
Adds support to designate APCs are critical, these are not drained during world end events.
Fixes a couple of potential runtime errors if no escape points have bee mapped in.
People in wheelchairs and mechas can now enter the world end rift.
Cult walls no longer cultify over and over, indefinitely.
2015-05-26 12:29:50 +02:00
Zuhayr
e28acd5045 Dev merge. 2015-05-11 18:45:14 +09:30
Zuhayr
bc50ba5166 Merge resolution. 2015-05-11 11:47:24 +09:30
Mloc
16d50c645d new object-based lighting system
Signed-off-by: Mloc <colmohici@gmail.com>
2015-05-10 20:54:25 +01:00
Mloc
733c6a4fb5 simulated var for atoms, used to filter explosions and other actions
kind of a stronger anchored var, used by lighting overlays

Signed-off-by: Mloc <colmohici@gmail.com>
2015-05-10 17:06:30 +01:00
Zuhayr
79e3acc95e Finalized wall refactor. 2015-04-26 12:58:57 +09:30