Cleaned up Move() a bit still needs some work.
To help balance them a bit Cyborgs may no longer pick the standard iconstate unless they are the standard module.
Might have fixed space wind.
Donuts added to the secbelt item list.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2304 316c924e-a436-60f5-8080-3fe189b3f50e
- 10 percent of lights with tubes will now start out broken and 25 percent of lights with bulbs will now start out broken.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2261 316c924e-a436-60f5-8080-3fe189b3f50e
Screenshot: http://www.kamletos.si/ss13-dim%20lights.PNG (Note that in this screenshot, tubes were set to a flat 6, this is not the case in the commit tho. So only look at lights with bulbs, most of which are in maintenance shafts)
- Space kudzu added (Original code and sprites donated by I Said No). Currently admin-only. Spawn the spacevine_controller to start the spreading of kudzu
Screenshot: http://www.kamletos.si/kudzu2.png (This was after 15 minutes of unattended growth.)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2226 316c924e-a436-60f5-8080-3fe189b3f50e
Solars should work a bit better now.
Removed the old shield item as it has not been used in forever and was cluttering up some of the mob code.
IonRifle only has 5 shots before it needs to be reloaded down from 10.
Lowered the weakbullet's stun to match the taser.
You can no longer recall the shuttle on meteor.
Fixed a bug I caused on rev where if the revs were in space and dead it would count them as living.
Bit of blob work.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2220 316c924e-a436-60f5-8080-3fe189b3f50e
Removed some awful descriptions from items which should not have descriptions.
See: paper, empty boxes.
Fixed a bug which would cause traitor packs to have an emergency O2 tank and breath mask in them.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2201 316c924e-a436-60f5-8080-3fe189b3f50e
BoH is no longer an instakill on a singularity, the chance the singularity will die from bombs now 25% from 10%.
Finished removing Metabslow from the game because delaying Interface rebuilds is a bad idea.
Sadly THE SUN is gone due to lighting lag issues, the current mob max luminosity is set to 7.
Damage and stun from doors shocking people has been lowered.
process() is now an obj level proc as it was already used by several procs and they can now jump onto the ticker if needed.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2199 316c924e-a436-60f5-8080-3fe189b3f50e
Blob mode updated slightly
Wizard smoke from his smoke spell will partly block lasers that go through it.
Going to try and test a diff way for the singularity to "del" items, might cause less lag, it will also eat absorb other singularities.
RD lost tech storage access, see http://nanotrasen.com/phpBB3/viewtopic.php?f=9&t=5991 for details
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2192 316c924e-a436-60f5-8080-3fe189b3f50e
Lowered the number of spare jumpsuits in most of the lockers from 6 to 3.
The old arrival message is now back in.
Finished the Ion Rifle and added one to the armory. Might need to change it up a bit depending on how well it works.
Bullet_act worked on a bit, EMP effects should work now.
Cyborgs are stunned by EMPs.
Raised the changelings required genome number for multichan at the request of Urist.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2175 316c924e-a436-60f5-8080-3fe189b3f50e
Synaptizine once again helps with stuns however it is slightly toxic to humans and might give you some toxloss every time it ticks to balance the unstun.
Actually removed the logged say file this time.
Cargo main now merged into one area as it's was literally the same room with two areas.
Hydro East cam now is on the SS13 net and the prison station cam comp is actually on the prison station network.
The table in sec lost its two lower parts allowing officers to actually walk around without pushing people.
Added a wrench to the armory for the Warden's portable flashers.
Medical maintenance doors access levels fixed.
Medical is a bit less of a clusterfuck of pipes, I only did most of the west half and the tunnel. The east and tox still have to be done.
Medical Hallway to foyer, internal medhallway, and cryo doors were removed with permission from the head coders.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2164 316c924e-a436-60f5-8080-3fe189b3f50e
Fixed up a few more firedoors on the map
Optables will respect air groups now
The Singularity:
Might produce less lag when eating things now.
80% down from 100% chance for a beacon to force movement.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2126 316c924e-a436-60f5-8080-3fe189b3f50e
Flashlights
Cigs/lighters
Solars
RCDs can no longer build airlocks on doors
Airlocks now smash glass that is under them when they close
AI sat firewall that is not really quite a firewall removed
The solars will no longer update if they lack a controler
Cut down on machines that don't actually do anything like fake sleepers and shuttle engines
There is still a few shuttle engines around and I have no idea where, my map was already corrupted once by this so I am just leaving the define in for now.
After a talk with some of the head coders
Cyborgs can no longer be traitors at round start
Some of the off Z1 areas cleaned up
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2028 316c924e-a436-60f5-8080-3fe189b3f50e
AIs now have a 50% chance to actually get the sender correct if they intercept a PDA message.
Moved Paint and DNAInjectors into their own files
edit_player renamed to show_player_panel
Cleaned up the grille code a bit
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2007 316c924e-a436-60f5-8080-3fe189b3f50e
Flamethrower construction code cleaned up.
Signalers on doors should work fine now.
Changelog Updated.
Weapons:
Xbow radiation has been lowered from 100 to 20 and it has a 5% chance to do no rad damage
Admin:
Attempted to clean up the code a bit
Commands Removed/CommentedOut:
air_status, radio_report, toggletintedweldhelmets, modifytemperature, givetestverbs, restartcontroller, fix_next_move, Cell
Renamed:
edit_memory - show_traitor_panel
un\stealthadmin - show/hide_verbs
Cargo:
Engineering crates cost 10 and contain: 1 mechanical toolbox, 1 electrical toolbox, 1 glove, 1 toolbelt, 1 vest, and 1 hard hat.
PowerCell crates cost 10 and contain: 1 electrical toolbox, 2 wire coils, 2 power cells, and 1 high power cell.
Water/Fuel tank crates cost 15 and contain: 1 water tank and 1 fuel tank.
Cyborg:
Fixed the open cover icons
To override a cyborg's laws you must emag it when the cover is open
Emags can now unlock the cover
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1995 316c924e-a436-60f5-8080-3fe189b3f50e
Old style bombs and suicide vests temporarily removed.
Players can now be job banned from being a pAI.
Added null checks to explosion() due to runtime errors.
Changelog updated
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1980 316c924e-a436-60f5-8080-3fe189b3f50e
Fixed a boatload of runtime errors. There's so many I just completely forgot what they all were!
Explosions / Singularities now do not gib people "one-by-one" as some people may have noticed. This looked absolutely weird.
Sounds:
I was planning on making sounds become all distorted and whatnot if you were "high", but there were some problems. I've instead just settled with making deaf people not being able to hear non-ambient sounds at all.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1941 316c924e-a436-60f5-8080-3fe189b3f50e
auto_use_power only shows up in the master_controller
following code:
***************
for(var/obj/machinery/machine in machines)
if(machine)
machine.process()
if(machine && machine.use_power)
machine.auto_use_power()
***************
on the second line it checks if machine exists. If it doesn't exit it would go to the next machine.
So it is not null at this point.
then it calls machine.process()...
on the fourth line it cehcks again if the machine exists.
Then it calls machine.auto_use_power()
So at this point the machine has been checked twice for existence.
Now moving into aut_use_power() proc
*********************
/obj/machinery/proc/auto_use_power()
if(!powered(power_channel))
return 0
if(src.use_power == 1)
use_power(idle_power_usage,power_channel)
else if(src.use_power >= 2)
use_power(active_power_usage,power_channel)
return 1
*********************
This calls powered() on the second line.
now stepping into powered() proc
**************************
/obj/machinery/proc/powered(var/chan = EQUIP)
var/area/A = src.loc.loc // make sure it's in an area
if(!A || !isarea(A))
return 0 // if not, then not powered
return A.master.powered(chan) // return power status of the area
**************************
the second line "var/area/A = src.loc.loc" line 26 in power.dm is what caused the problem.
It is asking for the location.
src.loc appears to be null. The reason why this call keeps happening and doesn't stop is because the object itself exists but its location does not.
So my final analysis is that src.loc == null and calling loc on src.loc gives us a runtime error since src.loc.loc == null.loc and null cannot call loc.
runtime error: Cannot read null.loc
proc name: powered (/obj/machinery/proc/powered)
source file: power.dm,26
usr: null
src: Emitter (/obj/machinery/emitter)
call stack:
Emitter (/obj/machinery/emitter): powered(1)
Emitter (/obj/machinery/emitter): auto use power()
/datum/controller/game_control... (/datum/controller/game_controller): process()
/datum/controller/game_control... (/datum/controller/game_controller): process()
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1932 316c924e-a436-60f5-8080-3fe189b3f50e
Admin changes:
Admin attack logs now have a timestamps. Basically, before each log entry there is something that displays [hour:minute:second]. I plan on expanding this functionality to all kinds of logs, as well as creating a global attack log, but this will do for now.
Gloves:
You can still electrify any gloves with a power cell, however you have to use wires on non-insulated (yellow) gloves to create a "ghetto-insulation" system. I might make these gloves' stun effects more watered-down than normal insulated gloves, but that will probably be for later on.
Bugfixes:
Fixed some miscellaneous runtime errors, and more importantly, the shotgun. You can dry-pump it by clicking on it, which will eject any used shots or just make that badass "chuck-chick" sound to let everyone know you mean business. Combat shotguns can now shoot twice without the need to pump.
I also possibly fixed the issue with metroids' AI process locking up. Someone's going to have to PM me on the forums to tell me if this worked or not, because I have not been able to reproduce the bug (although I do know where it's happening in the code).
Chemistry:
Alright, so this is where the meat of this update is. In a previous revision (r1905) I mentioned the addition of a new "color" variable. This variable now has a use. When you use a spray cleaner, or a chem sprayer which now is significantly more powerful, the color combination of all the reagents inside the sprayer will be displayed instead of the plain old blue-white color. This will allow for people to easily distinguish reagents and colors, for instance, if you see some chemist running around spraying orange or purple stuff chances are that's acid he's spraying, so you should probably subdue him!
In addition, you will now be able to see beakers (large ones too) fill up visually. The color of the reagents inside the beaker is overlayed on top of the beaker. The colors may be subject to change to make them brighter or more easily identifiable by "category". Currently, most pharmaceuticals have a light pinkish color. Polytrinic acid has a distinct purple color, etc. However, with due time I can picture chemists mixing other, benign-ish reagents with harmful reagents so passerbys think that a chemist is spraying someone with something harmless, but in reality is spraying them with a bunch of PAcid. There are some consequences, for instance, concentrated acid is more powerful than watered-down acid.
Have fun with that.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1922 316c924e-a436-60f5-8080-3fe189b3f50e
This method takes an input of a powernet and merges it with the powernet that called merge_powernets
This is the first step in my updated cable logic. The code should look cleaner as a result.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1913 316c924e-a436-60f5-8080-3fe189b3f50e
- Solars now bring out a fixed value. 700W each, meaning 60 of them (one array) generates 42000W. Not enough to power the station? That's the point. Although 4 x 42000W = 168000. This might be nerfed soon.
- Sun removed. Seriously, that thing ate up processor time and was completely useless.
- Solar tracker remains on the map but is completely useless. Will remove.
- Also reverted the cable updates from r1729. The code from prior to that revision might be as laggy as it was, but it works properly. After the revision powernets didn't calculate available power properly and did not update properly when new pieces were made (They stopped updating at the first wire piece which ended in a knot (non-smooth cable piece))
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1897 316c924e-a436-60f5-8080-3fe189b3f50e
Guns:
The projectile code has been mostly reworked to provide better support for effects, dynamic damage, etc. This also makes adding new projectiles easier for other coders. This is a pretty big change! If you see any bugs, get on IRC and bug me about it before the change goes live on the server!
Miscellaneous:
I fixed some bugs with Metroids hopefully. Turrets now don't identify people laying down as a threat.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1884 316c924e-a436-60f5-8080-3fe189b3f50e
- added roller bed (for medics). Place human, buckle him to this bed, the bed raises and can be pulled.
- eggs and tomatoes can be smashed of wall, floor [s]or captain's face[/s] not yes.
Code by Balagi, sprites by Farart.
-some fixes for the crew monitoring computer. It can be disassembled now.
-added crew monitoring circuit board. Requires programming 3, biotech 2, magnets 2.
-Mech Bay Power Control Console и Solar Control can be disassembled now.
-added crew Mech Bay Power Control Console circuit. Requirements are programming=2, powerstorage=3.
-Solar Control circuit boardcan be researched. Requirements are programming=2, powerstorage=2.
-R&D Console can be researched and created (requires programming 6). But R&D Console cannot be deconstructed for tech points. That's intended.
Code by Jack Rost.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1880 316c924e-a436-60f5-8080-3fe189b3f50e
Three new weapons added to R&D(the protolathe). The Chem Sprayer, the Shock Gun and the Stun Revolver.
A new costume is added to the theatre, the female clown suit and mask.
Thanks for the weapon sprites goes to Khodoque.
Thanks for the female clown suit sprite goes to Cheridan.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1855 316c924e-a436-60f5-8080-3fe189b3f50e
Fixed some typos.
Categorized some noncategorical verbs.
Badmins and trial admins now can use "select equipment" verb.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1770 316c924e-a436-60f5-8080-3fe189b3f50e
Red jumpsuit and security jumpsuit are separate now. Red jumpsuit does not provide additional protection anymore, security jumpsuit does. The green thunderdome team approves this change.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1733 316c924e-a436-60f5-8080-3fe189b3f50e
Currently removed all instances of makepowernets() and update_network() (Update network just called makepowernets()) from cable.dm.
All actings regarding cables went from 0.5 to <0.08 per call.
-Added a verb in the debug panel called Make Powernets. This calls makepowernets().
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1729 316c924e-a436-60f5-8080-3fe189b3f50e
-Right click commands "Make robot/alien/ai/monkey" moved to "edit player" screen.
-Right click commands "Make traitor/cultist/changeling/etc" moved to "edit mind" screen.
-- note: currently the only way to humanize monkey is to use "edit mind" screen.
-Added right click commands showing "edit player" and "edit memory" screens.
In light of an incoming tournament on ss13.ru I have added "Select equipment" right click command. It allows to instantly dress mob as you wish. Coders, feel free to add more dress packs, like "centcom inspector", "space pirate" and so on.
A strange command "list_occ" now called "List free slots" and shows unoccupied jobs.
Added golden cup, sprite belongs to Farart.
You can now take a power cell from charger even if there is no power.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1724 316c924e-a436-60f5-8080-3fe189b3f50e
- fixed issue 88: monkeys now can play with APC.
- Silicon liveforms cannot use malfhacked APCs if they arent an AT who hacked APC or his slaved borgs.
Fixed issue 121.
Latejoiners got their backpacks back.
Fixed attack log.
Fixed ammo icons not showing in dreammaker map editor.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1720 316c924e-a436-60f5-8080-3fe189b3f50e
Tweaked singularity beacon's layer, so it's even more obvious.
Tweaked singularity beacon's price. For 8, it was literally useless.
I don't know why people complain you can release singulo with it, because the code only affects the singulo's move() proc, changing move_direction from pick(cardinals) to get_dir(src,target). That's literally the only thing it affects, and I don't see how it can release singulo.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1717 316c924e-a436-60f5-8080-3fe189b3f50e
Object spells - fixed two minor bugs. Added the possibility of making a critical failure effect for the spells.
Singularity beacon - added to traitor spawn list. Must be screwdrivered to the floor before you can activate it.
Singularity - optimised the code a bit.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1709 316c924e-a436-60f5-8080-3fe189b3f50e
- after losing and restoring power air alarms had wrong icon.
- same for air vents.
- Latejoiners now get filled DNA entry in medical computer.
- Fixed rare bug with APC.
- Electrocuting while laying wires was made more consistent. Do not forget your gloves.
Borgs now can restock wires, glass and metal in recharging station.
Added logging of bagbombing.
Internal buffer in ChemMaster have volume 100 units.
Metalcrafting window improved.
Added Soviet soda vending machine to the derelict.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1705 316c924e-a436-60f5-8080-3fe189b3f50e
I have done lots of work to make selecting players for special roles be fair.
- New options preferences: "be traitor", "be changeling" and so on for all special roles.
- Now you can have job of AI/cyborg in preferences and do not lower your chances to become wizard/changeling/etc. And vice-versa: you do not have to select AI in your preferences to have non zero chance to play malf.
- Jobban from syndicate bans player from any special role (including malf AI, cult, etc).
- Fixed bug with changeling round not ending sometimes.
- All special roles were tuned to work better as admin-driven event.
-- All adminmade special characters will be listed at the end of round of any type.
-- All adminmade special characters are fully functional with following exceptions:
--- The ending conditions are determined at round start, i.e. you cannot end revolution by killing wizards and malf AIs (however, with nuke you can end anything).
--- The cultists cannot get their special objectives.
--- The malf AI can hack the APCs but without any profit.
--- The syndicate operatives must obtain the nuke/working code from admins.
--- As before, nuclear explosion ends round. Even if nuke was used in wrong place.
- Fixed thingy like "Not enough players for revolution game mode. Restarting world in 5 seconds."
- Changeling wont get objective "absorb X genomes" when there are less that X players in game.
- proc/equip_if_possible now has return value, procs like equip_revolutionary (giving a flash) should be more reliable.
- There are no fake wizards anymore. The research staff have to kill ALL wizards on order to win, even adminspawned ones. ("give spell" verb works as before, not making a spellcaster to actually be wizard).
- The semi-new game mode: traitor+changeling. Just like regular traitor mode plus one changeling. Round ends when the shuttle reaches centcom. Option for config.txt: "PROBABILITY TRAITORCHAN".
- Successful malf AI now have 60 seconds to choose to explode the station or not (some players still have to rejoin game to have their new verbs shown in Malfunction tab).
- Monkeys mode fixed, monkeys wouldn't randomly cure anymore.
For admins:
- New powerful mind editor oriented to mixed rounds.
-- Setting someone as special character (like wizard) does not equip him/her automatically. You have to do it it next step. Note, that in case of wizards and nuke operatives their old dress will be deleted! If you do not want it you shall use "undress" link.
-- Only operatives, head revs and cultists have their objectives set immediately.
-- You can unemad borgs!
-- You cannot unemag borgs because calling mind editor for nonhumans is blocked atm.
-- many other useful features.
-- you can fix burned out flashes from mind editor.
-- first assign the new malf AI/wizard then demalf/dewizard old one or round will immediately end.
- if delete the nuke bomb during its downcounting round will stuck. Using "edit ticker variables" set ticker.mode.explosion_in_progress = 0.
For coders:
- /datum/game_mode/malfunction/AI_Module renamed to /datum/AI_Module. Reason: What. The. Fuck.
Unrelated fixes:
- Blueprints can create areas up to 300 tiles (was 100).
- Cyborgs wont leave backpacks at spawn point anymore.
- Fixed bug in preferences causing preferences files to be huge.
- Diseases can infect again.
- The option "SQL_ENABLED 0" now works in config.txt.
- fixed critical bug on assassinate objective.
Bugs:
- We have a bug with job distribution for people who haven't any available jobs in their preferences. Players tends to group by jobs.
- For example, if we have 3 players they with hight chances will got same jobs. And probability of having one engineer and one medic _exactly_ equals _zero_.
- I am not sure if my changes made that bug worse. Anyway I MUST do this commit. Bug will be fixed eventually. Maybe.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1703 316c924e-a436-60f5-8080-3fe189b3f50e
Profile results (total time)
Proc Name Self CPU Total CPU Real Time Calls
----------------------------------------------------------------------------- --------- --------- --------- ---------
Before Revision
/proc/powernet_nextlink 0.068 14.892 14.895 2936
/proc/powernet_nextlink 0.000 0.005 0.005 2936
Before Revision
/proc/powernet_nextlink 0.077 18.886 18.887 3162
/proc/powernet_nextlink 0.000 0.006 0.006 3162
After Revision
/proc/powernet_nextlink 0.046 15.185 15.186 3022
/proc/powernet_nextlink 0.000 0.005 0.005 3022
This decreases the overhead on larger powernet_nextlink() calls and also decreases the cpu usage for the client by ~30%
For larger powernet_nextlink() calls the cpu usage serverside is decreased by a factor of ~30% also.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1691 316c924e-a436-60f5-8080-3fe189b3f50e