*Reorganised and commented used procs for better visibility/maintenance
*Redid the PriorityQueue class
*Changed the euclidian distance to the byond one (so that we don't calculate float and square root when it's not necessary)
*Made the AStar algorithm use the closed list instead of just filling it
*Some optimization in the open list sorting : last entered is first in case of f ties, slightly less tiles are checked now
*Changes the order directions are checked when adding adjacents turfs to make for more 'realistic' path (read less 'drunk pathing' with lots of diagonals)
*Fixed some turfs densities not being check for diagonal movement
*Closed firedoors are now correctly seens as blocked by the algorithm
*Cleanbots now only moves in cardinal directions, like other bots.
*Updated the info text at the beginning of the file a bit
*Absolutely unrelated : simplified the turf.Bless() proc
Conflicts:
code/__HELPERS/unsorted.dm
code/defines/procs/AStar.dm
code/game/machinery/bots/bots.dm
code/game/machinery/bots/cleanbot.dm
code/game/machinery/doors/firedoor.dm
code/game/machinery/doors/windowdoor.dm
code/game/turfs/turf.dm
As with my previous commit, reverselist() is causing problems in bot
pathing, it is unnecessary. Bot pathing only worked when reverselist()
was doing nothing.
-New wraith sprites by TankNut!
-Decreased flare duration, again(!)
-Made a based interact proc and changed the updateDialog to call that instead of attack_hand. This caused issues with the APC and getting the power cell out of it. I then changed all machines that had their own defined proc (that was everywhere)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5001 316c924e-a436-60f5-8080-3fe189b3f50e
-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
-Fixed some other occurrences of this happening. If you find any, please post it here: http://nanotrasen.com/phpBB3/viewtopic.php?f=7&t=9955
or let me know in #coderbus.
-Split up the Core() verb a bit.
-When sending messages to Centcom or the Syndicate, with the communications console, it would never reset itself since it resets the wrong variable. I've given it the correct variable and I made the cooldown 10 minutes instead of a minute.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4629 316c924e-a436-60f5-8080-3fe189b3f50e
-Changed the air assimilation for ReplaceWithFloor() and ReplaceWithPlating() so that it doesn't count non-floors/non-space turfs against the average.
-Commented them as well
Fixes Issue 851
-Standardized AIbots a bit, primarily with vars, attackby(), emag() and such (Mostly excludes M.U.L.E.'s though)
-AIbots now have a maintenece panel on them, which can be opened after unlocking the access panel by using a screwdriver
-The bots are now repaired by opening the maint panel and using a welder
-Emagging the access panel will unlock it permanatly, and emagging it with the maint panel open will trigger the emag behavior
-Floorbots will actually pull up tiles when emagged, 90% to just pull up the plating (And add it to the tile stock), and 10% to replace the floor with lattice
-When destroyed, floorbots will actually drop all the tiles they have stored, not just 1
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4528 316c924e-a436-60f5-8080-3fe189b3f50e
-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
But first! Unrelated to process():
- Only humans and monkeys can move into sleepers.
- Immovable rods no longer delete themselves if they hit a shuttle. Instead they act as if the shuttle doesn't exist. This should help cut down on rods deleting themselves before going through the station.
And now back to our regularly scheduled programming...
Removed process() that were doing nothing from:
- Dispenser(the one that dispenses O2 and Plasma tanks)
- Robotic Fabricators
- Crew Monitoring computer
Reworked hydroponic's process().
- Merged if statements together since most of them lacked "else if"s or were duplicate checks.
- Changed a while loop into a for loop as sloppy coding or an admin var-editing could cause an infinite loop.
Removed a sleep(100) { process() } from the operating table's constructor as the MC will call process() regardless.
Cleaned up shieldgen.dm
- Changed a while loop into an if statement. The loop was unnecessary
- Moved some stuff around so it's not nearly as confusing.
- Standardized the proc and variable definitions.
- These are not currently in-game but they are amazing items. I'll see about sorting out their bugs and getting them in proper working order.
Removed a for(var in world) from
- cleanbot process()
- floorbot process()
Removed computer/engine/process() from robot/computer code
- /obj/machinery/computer/engine does not exist in the first place...
Note: These are only some of the machinery process()s. I didn't want to potentially break too much at once. More to come.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4017 316c924e-a436-60f5-8080-3fe189b3f50e
Replaced every l_hand = and r_hand = and all that if(hand) crap to use standardised procs. This means we can use procs like Dropped() reliably as they will always be called when things are dropped.
Thorough documentation to come. But generally, if you want a mob's icons to update after deleting something in the inventory...use drop_from_inventory(the_thing_you_wanna_drop) just before deleting it. If you wanna put something in a mob's hands use put_in_hands() (or one of the variants). It'll try putting it in active hand first, then inactive, then the floor. They handle layers, overlays, screenlocs calling various procs such as dropped() etc for you. Easy
mob.equipped() is now mob.get_active_hand() because there was another totally unrelated proc named equipped() and stuff was confusing.
Weakening was made instantaneous.
Minor optimisations for human/handle_regular_status_updates(). I'll port these changes over to the other mobs next. Basically it should stop it constantly incrementing every status effect even after death.
umm... bunch of overlays related fixes... I think that's everything. :/
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3900 316c924e-a436-60f5-8080-3fe189b3f50e
update_clothing() has been broken up into it's key parts. A full explanation can be found in code/modules/mob/living/carbon/human/update_icons.dm
the tl;dr of it is that overlay updates are no longer called by the gameticker. Instead they are called by procs such as u_equip db_cick etc. This means faster updates (although admittedly, more of them can be called per tick). This however is offset by the fact that specific overlays can be updated now, vastly improving its efficiency. This will especially help when there are large numbers of dead mobs.
Fixed the throw code for TKgrab so it can be toggled.
Cloaking for aliens/humans/ninjas was changed. It's very crude at the moment and for that I apologise. But it works and is very efficient.It also stops cloaked individuals becomming invincible due to people being unable to hit them (even when they know exactly where they are)
Fixed a bunch of bugs with damage-overlays. They were updating FAR FAR to frequently. They were also horribly inefficient. They should now be virtually seamless when updating and only use cached icons, so they aren't affected by lag as badly. This may help with explosions lag a little.
There's still a tonne of stuff I need to refine with this. I'll be refining it down into some helper procs to reduce on code duplication and such
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3811 316c924e-a436-60f5-8080-3fe189b3f50e
Rewrote the job selection system to use bitflags and the jobs are now objects.
Fixed a path conflict with effect which caused a few things to be unable to be clicked on.
Commented out the job.txt, Urist if you still want it to load from the .txt give me a yell and I can update it to work with the job objects.
Fixed up the bits that were missing the slightly updated mob organ attack code.
Moved the traps file into unused.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2340 316c924e-a436-60f5-8080-3fe189b3f50e
Moved into their own folder and got split into three files.
Damage zones have been regrouped slightly to make it easier to deal with them. Currently the organ groups are head, l/r leg, l/r arm, and head.
Attacking:
Armor is properly checked.
Currently aiming for the chest gives a higher chance to stun whereas the head will stun for longer.
Stungloves/Disarm now show up in the attack log.
Stungloves ignore intent.
Silicon:
AI units can now move between cams that are not on the ss13 network.
Cyborg's alert screen should not longer pop up every time they get an alert if they have opened it once during the round.
Robot vision now uses the standard amount of energy.
Gamemodes:
Added Deuryn's unrev message.
Runes can only be examined if you are close to them.
Moved the Loyalty implants to the HoS' locker at the request of HerpA.
Nuke agents now come with explosive implants that will activate upon death.
Projectiles:
Once again went though the gun code and cleaned things up, it is much better now.
Bullet_act fixed up and most mobs now use the one in living, just overload it if they need to do something diff.
Freeze /caplaser/xbow no longer have an infinite loop.
Shotguns have to be pumped manually.
Went though the latest runtime log.
Power cells now use return on their give/use procs
Assemblies have been reworked and are nearly finished, just need to finish up the special assembly code, redo the signalers, and add one or two new assembly items.
Laying down will now only take 3 ticks to get up, from 5.
You can no longer punch people on the spawn screen.
This is a big one and was cleared by two heads, TK will only allow you to pick up items. If you have an item in your hand it will act normal.
This revision got much larger than originally intended my tests show everything is working fine, but you never know. Ill likely do more mob teaks in the next few days.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2333 316c924e-a436-60f5-8080-3fe189b3f50e
/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
- All code is now standardized. No more copy-pasted code for each item individually.
- It is now possible to edit the following things with variables alone (ingame too):
- Storage slots number: Ingame HUD support for up to 21 items.
- Max w_class: the maximum w_class of items that the storage item can hold. Note that it will not be able to hold storage items of the same size as it is to prevent the stacking of storage items in eachother.
- Can hold: List of items that the item can hold (old)
- Can't hold: List of items that the item specifically can't hold. (Use in the same way as can_hold, not used at the moment)
- Syringe boxes are no longer listed as first aid kits. I don't think this will affect anything but who knows.
- The HUD interface for storage items is slightly changed. It's just the X button is positioned one tile to the right of the bottom-right-most tile. This is needed for the correct expanding of the HUD.
I THINK I applied all the changes to these settings for all the items that used copy-pasted and slightly altered code. If there are any anomalies anywhere, let me know. If you find any special attackby() procs that still remain, delete them or tell me about them. Thanks.
Also: I checked to make sure first aid bots and floorbots are constructable.
Also: Listing myself as Game Master in the svn copy of admins.txt so I don't have to do it manually every time I do a fresh checkout. I need this to access the mapping helpers and since it doesn't cause any effects to the game, I don't see any potential problems with this.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1683 316c924e-a436-60f5-8080-3fe189b3f50e
For non-coders:
- Added floor lights
- To build: Use wire on glass, use metal on the assembly you get, use it on a plating. To fix flickering or broken tiles, use a lightbulb on them.
- To deconstruct: Crowbar on floor to remove it, crowbar on light tile to remove metal, wirecutters to separate the wire from the glass.
- Click on tile with an empty hand to turn it on/off
For coders:
- The turf system has been rewritten to contain a tile variable which defines what kind of turf it is. The 'intact' var can no longer be used to determine if the turf is a steel floor. Intact only tells if wires and pipes are to be hidden (for hide() procs)
- Use is_plating(), is_steel_floor() and is_light_floor() to determine the floor type.
- Use make_plating(), make_steel_floor() and make_light_floor() to do this. They take the floor tile by default as a parameter, if none is given they will make one themselves.
Credits for the sprites go to Hempuli, used with permission.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1513 316c924e-a436-60f5-8080-3fe189b3f50e
- mass control all air machines in area (5 modes)
- adjustable alarm thresholds
- air alarm in server room now is preset to treat temperature 80 K as okay.
EMP now affects bots internal cameras.
Fixed problem with AI clicking on mulebot.
Some fixes for welding with unlit welder, mostly cosmetic.
Airlock controller (as in EVA) now react to commands faster.
Access controller (was in engineering and virology in past) was speeded up too. One is installed into Incinerator to demonstrate that now it isn't fucking slow.
Airlock in toxin mixing room now have pump, so airlock can work properly.
Added some intercoms to medbay lobby.
Doors now won't lag due do mapmakers mistakes.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1187 316c924e-a436-60f5-8080-3fe189b3f50e
Medibot sprite fixed.
Aliens now attack bots instead of opening control window.
All bots can be damaged and repaired.
All bots are effected to EMP now.
Asteroids generation was tuned to do not spawn asteroid on z-level edges.
Enabling admin verbs now wont turn on deadchat if it was turned off.
An emergency toolbox now contain a red crowbar.
Mime job is now available to join as.
Added radio channel for miners, use :h or :d ("diggers" lol) as shortcut.
Added radio channel for cargo techs, use :h or :q as shortcut.
Added a personal headsets to HoP and QM.
Some unrelated runtime errors was fixed.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1050 316c924e-a436-60f5-8080-3fe189b3f50e
Metal and related materials now noticeable more user-friendly.
Added new canister color: yellow "CAUTION". Used for newly created from metal canisters. Can be relabeled once.
Some typos were fixed.
dsay verb now uses fakekey in stealth mode.
AI cannot remove the cell from the charger.
Added alientalk chat prefix: ":a" by Barhandar. Also added keyboard layout independent russian prefixes.
Binary translator done by more convenient may by Barhandar.
Is possible now to wash bloody hands in sink.
Probably fixed bug causes gibbed revheads be not counted as dead.
Some other fixes.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@752 316c924e-a436-60f5-8080-3fe189b3f50e
If you look at your PDA window, there should be an option to stick an ID in, like with some computers.
While carrying an ID, a PDA can be used for almost everything an ID can.
While ID scanners can read cards through a PDA, it is difficult to shove a PDA into the ID slot on some computers.
It is possible I missed some functions, but I was quite thorough in my sweep through the code.
In the event of PDA destruction, any inserted ID is ejected unharmed.
It is now possible to stick PDAs in your jumpsuit's ID slot.
Since PDAs are named, you can disguise yourself as someone else using one.
Beepsky/ED-209 can see through a PDA disguise if you stick your real ID in for access.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@592 316c924e-a436-60f5-8080-3fe189b3f50e