Commit Graph

38 Commits

Author SHA1 Message Date
Neerti
67723de79a Makes it a bit better. 2015-04-14 08:55:09 -04:00
Neerti
fb4543c179 Adds ability for the AI to toggle movement of its hologram. 2015-04-14 08:34:02 -04:00
mwerezak
fb53dd7402 Fixes holopad not checking other holograms being projected from the same projector, if the first one was in range.
Simplifies holopad power usage.
2015-03-27 10:31:44 -04:00
PsiOmega
f248d7de35 Allows multiple AIs to share holopad. 2015-02-16 17:55:26 +01:00
RKF45
db6ff13f5f No painting ghosts!
Holograms can be coloured, though
2015-02-07 23:59:34 +01:00
Zuhayr
3de0562dbe Merge resolution. 2014-12-22 23:28:27 +10:30
Zuhayr
bf17614200 Added a new language-scrambling proc for listeners who don't speak the language. 2014-12-11 13:23:26 +10:30
Neerti
c90e9eb931 More merge conflict resolution goodness. 2014-12-10 02:14:58 -05:00
Neerti
9e9c297b2e Begins work,
Holopads can receive and send emotes.
The AI, when using 'me', will check if a holopad is being used.  If so, the holopad will output the emote.  If not, it's outputted from the core.
The AI will hear emotes from near an active holopad.
There is a new obj verb called 'see_emote()', that works similarly to hear_talk().
custom_emote() modified to have 'seeing_obj' list.  May be resource-intensive, not sure.
pAIs can now hear emotes, without issue.
Carded AIs can hear emotes, but they hear themselves twice.
Mechs do not hear emotes correctly at this time.
2014-12-07 23:03:42 -05:00
GinjaNinja32
6a975a1e6a Noise emotes
Conflicts:
	code/modules/mob/living/carbon/brain/say.dm
2014-12-07 12:09:02 +00:00
Zuhayr
cf68ad7c87 Master to dev merge. 2014-08-27 20:24:07 +09:30
PsiOmega
0090efb210 Fixes an issue where toggling camera lights would disconnect the AI from an active holopad while keeping the pad online. 2014-08-26 16:38:44 +02:00
mwerezak
e1dc7d436b Fixes icons and other things not updating when the master controller updates power status.
This was due to the master controller using update_powered_status()
instead of power_change(), but many machines override power_change() to
do various things when the machine gains or loses power.
2014-08-10 03:45:20 -04:00
Zuhayr
f259aff8c6 Fixes #5109 2014-06-01 20:07:22 +09:30
Ccomp5950
401f5ff1f8 Holopad now states what it hears, what a revolutionary concept. 2014-05-22 00:30:08 -05:00
johnsonmt88@gmail.com
095e84de15 Removed vending.dm and machinery.dm from the defines folder and moved the defines to their respective chunks of code.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5440 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-31 23:51:04 +00:00
giacomand@gmail.com
964b86fdbd New Changeling Powers!
Hive Channel/Hive Absorb. Allows you to share your DNA with other changelings, very expensive chemical wise to absorb (download), not so much to channel (upload)! You cannot achieve your objective by sharing DNA.
Mimic Voice! You can form your voice of a name you enter. You won't look like them but when you talk, people will hear the name of who you selected. While you're mimicing, you can't regenerate chemicals.
Extract DNA! A power that allows you to silently sting someone and take their DNA! Meaning you do not have to absorb someone to become them. Extracting their DNA doesn't count towards completing your objectives.

Misc:

New livingmob proc GetVoice(), used by changeling mimicing and voice changers. Will return the name of the voice that should be heard by people.

Got rid of the chance to "feel" like someone isn't who they are.
Commented the check for someone's gender being incorrect in life. Looks like the bug hasn't re-occured since it was put in place.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4890 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-16 13:21:44 +00:00
giacomand@gmail.com
e1bdd57bf2 -Fixed holopads not letting you holo_talk when you weren't on the holopad.
-AIs can now double click on living mobs (/mob/living) to instantly start tracking them.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4673 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-10 09:45:07 +00:00
giacomand@gmail.com
ecd2bcec56 -Holograms are range based again.
-Instead of the singularity using range to look for rad_collectors around it, it will now look through the list and check the distance between every rad_collector, if it's less than 15 tiles in range then it'll give it power.
-Fixed naming your revolver.
-

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4638 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-06 21:24:33 +00:00
giacomand@gmail.com
db2d703f72 -Holograms can move around again. I'm also experimenting with them being area based, meaning they can move around an area freely and lose their hologram when they leave the area. I've made it a const option, so change HOLOPAD_MODE to 0 to return it to the old system, which will destroy the hologram when it is out of range of the holopad.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4633 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-06 02:33:30 +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
giacomand@gmail.com
683662f3b6 -Ported/continued AI Freelook. AIs can now look around like a ghost with the exception that they cannot see what cameras cannot see. Meaning if you're in maintenance, and there's no cameras near you, the AI will not know what you are doing. This also means there's no X-Ray vision cameras anymore. I've added documentation to freelook.dm which explains how the system works, if anyone is interested in adding anything. More information here: http://nanotrasen.com/phpBB3/viewtopic.php?f=7&t=9675
-I've added some cameras to rooms that should have cameras but were previously depending on other camera's using their X-Ray vision in order to see into a room.

-AIs have a multitool in their contents that they can use to interact with the telecommunication machines.

-Added "Follow" for observers. Works the same as AI tracking without checking if they can track.

-Added a range to how far Cyborgs can interact with machines. This is to stop Cyborgs from interacting with machines through cameras, which could be used to easily disable the AI.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4531 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-25 05:34:33 +00:00
sieve32@gmail.com
7bf6788082 -OPTIMIZATION TIME
-Almost every instance of 'for(mob in world)' has been killed. Because GODDAMN was it being run a bunch. Instead, a series of global lists have been made, and they are all handled auto-magically through New()'s, Del()'s, Login()'s, death()'s, etc...

Lists are as follows:
-mob_list : Contains all atom/mobs by ref
-player_list : Like mob_list, but only contains mobs with clients attached
-admin_list : Like player_list, but holds all mobs with clients attached and admin status
-living_mob_list : Contains all mobs that ARE alive, regardless of client status
-dead_mob_list : Contains all mobs that are dead, which comes down to corpses and ghosts
-cable_list : A list containing every obj/structure/cable in existence
Note: There is an object (/obj/item/debuglist) that you can use to check the contents of each of the lists except for cables (Since getting a message saying "a cable," x9001 isn't very helpful)

These lists have been tested as much as I could on my own, and have been mostly implemented. There are still places where they could be used, but for now it's important that the core is working. If this all checks out I would really like to implement it into the MC as well, simply so it doesn't check call Life() on every mob by checking for all the ones in world every damn tick.

Just testing locally I was able to notice improvements with certain aspects, like admin verbs being MUCH more responsive (They checked for every mob in the world every time they were clicked), many sources of needless lag were cut out (Like Adminwho and Who checking every single mob when clicked), and due to the cable_list powernet rebuilding is MUCH more efficient, because instead of checking for every cable in the world every time a powernet was broken (read: A cable was deleted), it runs though the pre-made list, and even with a singulo tearing all the way across the station, the powernet load was VERY small compared to pretty much everything else.

If you want to know how any of this works, check global_lists.dm, there I have it rigorously commented, and it should provide an understanding of what's going on.

Mob related in worlds before this commit: 1262
After: 4
I'm helping


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4179 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-26 03:04:05 +00:00
sieve32@gmail.com
459c558898 -Make holodeck eswords a child of obj/item/weapon/holo instead of regular eswords, clumsy check removed as a result, and you can no longer do things like cutting through walls or doors or what have you. (Fixes Issue 665)
-Redid icons to be more optimized at compile by setting icon = 'icons/folder/icon.dmi' instead of just icon = 'icon.dmi', meaning that Dream Maker doesn't have to search through every single file for every single .dmi. This shouldn't lead to any errors because of how I went about it, plus the fact that Dream Maker would have freaked out if I screwed something up. Also moved around 2 icons that weren't sorted well.

r4146 compile time: 1 minute, 40 seconds
r4147 compile time: 45 seconds

[VGTG]

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4147 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-23 00:48:51 +00:00
petethegoat@gmail.com
3f99a92261 Undid my hologram changes. I could have sworn that wasn't ticked.
i suck at svn

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3549 316c924e-a436-60f5-8080-3fe189b3f50e
2012-05-03 18:11:02 +00:00
petethegoat@gmail.com
bbf7ab41b0 Fix for the map, i'm dumb. Thanks carn!
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3548 316c924e-a436-60f5-8080-3fe189b3f50e
2012-05-03 17:58:00 +00:00
vageyenaman@gmail.com
eadf904ff1 Applied Carn's Holopad requests patch. Basically allows for people to request the presence of an AI at a holopad.
Some work on porta turrets.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3270 316c924e-a436-60f5-8080-3fe189b3f50e
2012-03-11 20:33:11 +00:00
mport2004@gmail.com
17ed3899c4 Fixed the map/code issues that the body bags caused.
/obj/effects is now /obj/effect.
/obj/station_objects is now /obj/structure.
Did a bit of minor blob work. 
The Bay 12 body bags were replaced with closets because having two sets of code that do almost the same thing is silly.
Changed back a few of the last jobproc edits as the remove from list before assign was a check to see if the mob was fucked up and if it was remove it so we did not check it again as it would still be fucked up.
The medbay/tox monkeys names are random once more.  More random name monkeys will help with changeling and clean up the observe/mob menus.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2324 316c924e-a436-60f5-8080-3fe189b3f50e
2011-10-03 10:28:57 +00:00
baloh.matevz
e8c6b08419 - Object tree grouped a bit more.
Two new categories were made: station_objects and effects. station_objects, which I'm sure someone will want renamed to 'structures' contains the objects which don't need process() or power code.

Effects contains objects which are either landmarks, triggers, spawners or decal.

Screenshot:
http://www.kamletos.si/new%20object%20tree.PNG

I didn't notice any bugs, but with a revision editing 276 files of byond code, you never know.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2323 316c924e-a436-60f5-8080-3fe189b3f50e
2011-10-03 06:54:28 +00:00
noisomehollow@lycos.com
ca2af1cde2 Created new icon dmi for ai icons. Threw all AI- related stuff in there.
Replaced swat gear in assassin equip list with black gloves and shoes. CentCom Commander equip now includes a bullet-proof vest.
Upgraded holograms. It is now possible to create them dybamically through getHologramIcon(). If you want to tweak how they look, change that proc.
AI can now project holograms for anyone registered on the crew. Holograms that do no fit this category can also be added now (like the one the AI starts with).
Added generic holographic projection machinery category. Should now be possible to create wanted hologram projections and two-way communication using holograms. Unfinished but someone else can work on it.
Fixed regular cigar sprite from another commit.
Fixed deathsquad helmet down sprite. Also, adjusted it to look more unique.
Updated swat mask.
Made the swat boots use the jackboot sprite. Made swatboots actually as fast as other boots.
Added a Honker destroyed and open sprites.
Some misc icon tweaks.

Ninjas:
Adrenaline boost now resets player stat to 0. Due to lag, it was possible to adrenaline boost but remain helpless while life.dm resets stat. It's technically possible to come back from crit health (momentarily, before life.dm knocks you right back in crit) but I think it's a fair tradeoff.
Some minor fixes.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1769 316c924e-a436-60f5-8080-3fe189b3f50e
2011-07-05 04:41:35 +00:00
noisomehollow@lycos.com
449e0b765a Fixed some typos in traitorchan (lol).
Adjusted ninja random event to go with the new mode changes.
Due to inclusion of monkey mode, added back monkey ability to vent crawl. Identical to larva.
Brains can now suicide.
Warden now starts out with a special hat. Welcome to Hat Station 13.
Holograms should no longer be draggable by space wind.
Slight change to pulse rifle so it looks like the older sprite.
Added deathsquad armor to admin equip list.
Added tunnel clown gear to admin equip list.
Fixed minor announcement bug with respawn_character.
PDAs now redirect to Notekeeper when the code is used again with an unlocked uplink.
Added a note for built AIs to adjust camera network. Camera movement doesn't always work right without adjusting the network first.
Ninjas can now hold an extra battery in their hat and suit slots.
C4s now give a message when planted on people and are recorded in the attack log.
Fixed spelling on messaging server.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1735 316c924e-a436-60f5-8080-3fe189b3f50e
2011-06-26 21:28:23 +00:00
noisomehollow@lycos.com
321b26e39c #Huge code overhaul and cleanup for ninjas. Basically, the suit is about as modular now as I probably care to make it. Admins, read the commented text under Admin Notes, in space_ninja.dm. Tell your friends.
#Ninja suit now supports pAIs. Further functionality will probably come from their development.
#Ninja suit can now replenish chemicals from beakers. Simply use a beaker on the suit and it will do the rest, if the beaker contains the right combination of chemicals.
#Draining from a wire is now done through clicking instead of a verb. There is no more delay to it.
#Ninja stars cost a bit more energy than before.
#Ninja suit will start initializing automatically (and quickly) when ninja spawned.
#Minor sprite fix for female ninja suit.
#Note: AI-related verbs for the ninja suit will be bugged until BYOND 484 comes out. Not a huge deal but worth noting.

#The has_reagent() proc will now return the reagent being checked for, instead of 1. Will return 0 if reagent is not found (or the amount does not match). Removed a duplicate arithrazine entry.
#AIs should now properly camera_cancel() when carded/physically transfered.
#Fixed a small menu display bug for AI cards. AI cards should now properly auto close their window when appropriate.
#AI holograms should now project above everything.
#Mal AIs can now choose to display an alternative (and awesome) sprite.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1655 316c924e-a436-60f5-8080-3fe189b3f50e
2011-06-03 04:53:55 +00:00
noisomehollow@lycos.com
e68ce8721f #Finished the respawn_character proc. Use it to quickly bring a player back into the game with their previous character if they were gibbed/deleted. If you want them to make a new character, kick them out and let them rejoin. Can also be used to quickly enter the game by admins and the like. It's fairly robust so you can read the code to find out what it does (and does not).
#Added a locked list to datacore in order to track character spawn, particularly for respawn_character(). May be useful in the future.
#Added a proc to randomize appearance for any human mob, randomize_appearance_for(mob). It will not take into account gender as you will have to provide it. Names and so on are also randomized but that can be overwritten in the code following.
#Added AI holopads around the station. To use as the AI: click on the pad to center view on it. Click again to activate the hologram. Move it with the directional keys. You can still interact with objects normally. To remove it, either move it too far out or click the pad again. Use robot talk to directly speak through the holopad (and only the holopad, unlike regular robot speak). Could be added on to (like different images for different AIs) but it's basically finished.
#Fixed a bugged message on changeling transformation sting. It will no longer give away your identity.
#Made law datum a silicon define. var/datum/ai_laws/laws.
#A few more ninja adjustments. Added a new view mode for the ninja mask, allowing to see special roles and a few other things.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1608 316c924e-a436-60f5-8080-3fe189b3f50e
2011-05-22 23:48:29 +00:00
mport2004@gmail.com
cd79ae951d Updated:
Singularity Engine
-Recoded some parts, still works mostly the same
Welders
-Recoded, it works mostly the same but is easier to use in code
-Cyborgs have a larger fuel tank
-Brought most if not all of the areas that use welders upto spec
Moved the changeling chem recharge code into the human life proc
New players who log out before spawning in are now deleted
New minor Common event
Machines around the station use more power, system might need some changes later
Likely few other minor changes that I just cant think of atm

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@945 316c924e-a436-60f5-8080-3fe189b3f50e
2011-02-03 08:15:17 +00:00
uporotiy
4215819c9a Various hologram changes, namely ability to walk through windows and such, ability to hear humans (I hope, can't test that) and inheritance of parent AI name. Also disappears when knocked unconscious (will fix it getting attacked later).
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@716 316c924e-a436-60f5-8080-3fe189b3f50e
2010-12-27 23:03:52 +00:00
n3ophyt3@gmail.com
80d3f6c115 Those holothingies that whatsisface added can now check their laws while running around cybering people.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@712 316c924e-a436-60f5-8080-3fe189b3f50e
2010-12-27 16:01:55 +00:00
uporotiy
5f42e2ec35 Herp derp forgot to uncheck a file.
Holograms added, though I won't be surprised if they're buggy. We'll see.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@708 316c924e-a436-60f5-8080-3fe189b3f50e
2010-12-27 12:01:48 +00:00
only.lurking
662c08272a git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2 316c924e-a436-60f5-8080-3fe189b3f50e 2010-08-23 14:29:20 +00:00