Commit Graph

28 Commits

Author SHA1 Message Date
Bjorn Neergaard b2629a56e2 Make wires use defines, put a wire var on /atom, fix tgui ui_host runtimes 2016-01-22 19:25:33 -06:00
Bjorn Neergaard 87b0857b93 Refactor wire datums
Finish wire port and refactor wire datums to use string keys; widen color
range to support more wires and more colors.
2016-01-22 19:22:09 -06:00
blah 844b10fa33 Whoops I left a debug 2015-12-10 14:42:43 +00:00
blah acf95ccfd9 Fixes the pAI and removes the .gitignore issue that I caused from other stuff 2015-12-10 14:40:04 +00:00
blah 5fff63d62c Changes pAI to have hearable_message() rather than visible_message() as that doesn’t work from inside objects 2015-12-09 20:04:54 +00:00
bear1ake f697ae90f5 removes a bunch of .0 2015-09-10 20:57:30 +09:00
duncathan 51c09f16bf makes all Destroy()'s return properly 2015-08-31 00:21:01 -06:00
Firecage 4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02:00
CosmicScientist a94075d07d Edited pAIcard displayed message, donksoft dart description and some tips of the round. 2015-05-24 20:49:06 +01:00
kingofkosmos 1d14471d00 Ellipses to waiting messages. Warning-spanclasses to failing messages with an exclamation mark. 2015-04-24 20:50:50 +03:00
paprka 25a54a7466 adds walterje's pais 2015-01-20 14:31:17 -08:00
carnie a44795a699 Resolves #6993 - Moved pai controller into a subsystem. 2015-01-15 23:50:46 +00:00
Firecage 6c7af5eb32 SPANCLASSES!!!!! 2014-08-26 09:52:13 +02:00
Cheridan 67fa027afb Missed a message! 2014-04-10 15:39:28 -05:00
Cheridan 2b64683a6b Refactors pAI law code to use the inherited laws datum instead of its own specific variables
Removes annoying double-message box when selecting NEVER FOR THIS ROUND.
Span classes
2014-04-09 12:38:22 -05:00
Razharas 6cb3ae5183 Revert "Merge pull request #3142 from Alek2ander/master"
This reverts commit 6f9b58abce, reversing
changes made to eda7110a23.

Im so sorry aran, so sorry
2014-03-29 18:02:54 +04:00
Alek2ander 223e5f7478 Arcades, overlays and Git being evil
Added the most important damn checks of this entire PR that got eaten by
Git when I synced
Added a visual indication of a pAI being paired with a computer - a tiny
blue light at the bottom
Forbid to pair with computers that have non-standard icons, except the
arcade machine.
When the arcade is emagged, if the pAI loses, it will explode like a
detonated PDA. If it's slotted into a PDA, it will explode with it.
Severs connection if the pAI and the computer are on different z-levels
2014-03-23 12:39:13 +04: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
Cheridan bb9c09df46 Obsoletes flags = FPRINT | TABLEPASS*
*TABLEPASS was already totally obsolete.
FPRINT was used, but it was on virtually everything anyway.

Removes those flags from every instance where they were used. Also assigned and removed other flags where it made sense.

If it is desired, I can revive the flag as NOFPRINT, which would retain the original functionality, though inverted. That way it would be be used only  where it was intentional (holodeck items could use this for example).
2013-12-30 15:03:17 -06:00
Cheridan 43d85cc5c0 PDA Painter Machine
-Adds the PDA painter, which lets you change the appearance of the inserted PDA. Good for job-changes and possibly traitor disguises?
-Cleans up pda.dmi, moves the ai card and pai device sprites to their own .dmi. PDA box sprite moved to storage.dmi where it belongs.
2013-08-19 23:47:07 -05:00
carnie b84d12d949 *Small tidy-up of various helper procs*
-Turns out there was already a Gaussian PRNG proc already, used by mechs and turrets. I've replaced it with my one as mine has almost half the cost. (currently broken! still waiting for fixes to be pulled!)
-replaced between(min, val, max) with Clamp(val, min, max)
-get_turf(thing) now uses var/list/locs to locate its turf, rather than iterating up through loc of its loc of its loc...etc
-sign(num) moved to maths.dm
-InRange(val, min, max) replaced with IsInRange(val, min, max) (they were identical)
-Removed ismultitool() iswrench() iscoil() iswire() iswelder() iscrowbar() etc
-removed modulus(num) as abs() performs the same task! *roll-eyes*
-removed get_mob_with_client_list() as it is no longer needed (we have var/list/player_list now)
-removed get_turf_or_move() as it simply called get_turf
-removed get_turf_loc() as it was identical to get_turf()

*Additions:*
-The "Declare Ready" link in the lobby will automatically become "Join Game" if the round starts before you declare ready, so you don't have to click it twice
2013-05-27 12:21:43 +01:00
carnie 043028db83 Resolves #283
DNA modification uses normally distributed random numbers. Radiation strength dictates the standard deviation of the change in the hex character which is hit (higher output means greater chance for a large change) . Similarly, radiation duration dictates how likely we are to hit the hex-character we clicked on (longer duration means more likely to hit). Irradiation is strength*duration. All balancing is done via multiplier defines so you can rebalance it easily.

DNA blocks and structuring all use defines. Making modification/expansion easier. I'll likely expand this into a datum-based system to allow more interesting features, reduce code further and allow admins to interact with the way dna strings behave.

DNA strings can be spliced together using merge_text().
 e.g. string 1: "Hello World"
 string 2: "Seeya______"
 result: "Seeya World"
 This isn't used except for admin-spawnable SE injectors at the moment.

r_hair, g_hair, b_hair, r_facial, g_facial, b_facial, r_eyes, g_eyes, b_eyes were removed and made into 3 short hex-colors.

Skin tones now support colours other than shades of brown. I've had to restrict it heavily until other stuff is done. Skin tones include Albino Caucasian, Oriental, Mediterranean, etc.

Data disks and DNA injectors were reworked to use associative lists so transferring data is just a matter of doing list.Copy()

var/dna is now defined at /mob/living/carbon level. Only monkeys and humans may have dna currently. Support is there for all carbon-based lifeforms to have dna.

DNA modifier console has almost all controls on one screen.

UIs and UEs can be injected separately (appearance and name, respectively)

dna helper procs like ready_dna() and such were changed to make them more versatile. There is now a hardset_dna() proc as an alternative to ready_dna which can initialize dna with properties passed into it or update an existing dna string (useful for cloning and antag spawning)

Every block of SEs are in randomised positions.

Disabled automatic logging of world.log, as it produced undesirable behaviour.

Mr Muggles and God Emperor of Mankind disks removed.

Floor() removed. (it was completely uneccesary, that is what round() is).

Fixed spelling mistakes in modularchangling.dm (thanks tenebrosity)

Tanning removed from beaches (again)

Experimental: monkeys and humans do not have dna until first attempt to read dna (using check_dna_integrity(mob))
This is mainly due to the way everything is hardcoded into New().

Changelog.html updated
Signed-off-by: carnie <elly1989@rocketmail.com>
2013-04-24 09:37:30 +01:00
giacomand@gmail.com a3b74c9d2b - Multiple runtime fixes.
- Moved some fingerprint procs to detective_work.dm.
 - Removed some unnecessary del() usage in the detective code.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5800 316c924e-a436-60f5-8080-3fe189b3f50e
2013-03-02 01:19:02 +00:00
aranclanos@hotmail.com a2b5256121 You might hate it. You might despise it. It's ugly. It's hacky. But you had 6 months to fix this issue.
-pAIs are no longer deaf to sounds and they see emotes.
The pAI mob now follows the card just like the AI eye tracking someone or a ghost using the verb follow.
I do not close the issue because intellicards are not fixed yet.
-Added a "On/Off" for some things on the pAI interface
-Fixed some really obscure runtimes about a human using the pAI card interface when the pAI is dead.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5661 316c924e-a436-60f5-8080-3fe189b3f50e
2013-02-07 01:04:54 +00:00
rockdtben@gmail.com 169c96db1b Too remove potential excessive garbage collection per tick. We will be reusing lists for overlays instead of deleting and creating them.
the .Cut() proc on a list will empty a list by default. This also will set the len to 0.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5465 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-04 15:11:06 +00:00
giacomand@gmail.com 6a2d78bc94 -Killed the updateDialog lag. I added a check to see if there were any mobs to update, if not it will stop checking until a user uses the machine again. I had to replace all the machine = src and machine = null with procs to help make it manageable. I believe this is one of the culprits causing the server to lag as the round goes on, as more players will interact with machines.
-Atmos delay is now based on active players, to help fight lag for massive player rounds.

-Changed some for(blah in world) loops to use the correct lists.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4958 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-25 19:15:51 +00:00
sieve32@gmail.com 8c387f2158 -Made all contructs children of /mob/living/simple_animal/construct and changed the type paths as needed
-Now when examining someone you can tell if their brain is missing, and it doesn't give the 'catatonic' part (Because the player is in a different mob and it's kind of misleading)
-Committed Lugar223's patch for the temperature gun, preventing the window from re-opening as it heats up/cools down
Fixes Issue 900
-Fixed the issue where dead players could use pAI carts if they left the window open
Fixes Issue 967
-Changed how the Destructive Analyzer handles sheets, now it will only deconstruct 1 sheet out of the stack at a time. Also found a bug where it would destroy its own components, so that is fixed as well.
Fixes Issue 989
-Secborgs can no longer put their stun baton or energy gun in rechargers, added a check for /mob/living/silicon
Fixes Issue 972

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4807 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-04 22:08:27 +00:00
johnsonmt88@gmail.com d36387607f More file structure stuff.
- The folders themselves are now finished
- Next I'll go through each file and organize them
- Lastly I'll start pulling the object definitions out of /code/defines/ and put them into their respective files.

**Note to committers**
Make sure the .dme file updates when you update to this revision. If necessary delete the .dme and svn-update.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4546 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-26 01:20:02 +00:00