Commit Graph

119 Commits

Author SHA1 Message Date
Jordie 9ee247cb8c Merge pull request #8438 from Incoming5643/golem_the_MODE
Identity theft with non crew humans
2015-03-25 16:31:35 +11:00
Cheridan 7ee7af290b More lines changed this way giacom :^) 2015-03-23 19:07:14 -05:00
Incoming 6fb964f34a As a mercy, if your target doesn't have his ID on him (or never had an ID) when you're assigned to steal his identity you won't need to wear an ID to complete the objective.
Have fun DNA stinging the wizard all the same though.
2015-03-19 23:58:32 -04:00
Cheridan 2ca9e8e392 Spring Event Day 1: Martyr Objective! 2015-03-15 22:50:25 -05:00
Remie Richards f6e4c1518d A restructure/removal/cleanup of Ninja Code 2015-03-09 20:43:56 +00:00
tkdrg 674b3b65c0 Merge pull request #6968 from phil235/LockdownMalfFix
Fixes malf AI lockdown affecting doors on away missions
2015-01-14 14:58:10 -03:00
tkdrg b852aa41ea Replaces a bunch of input() with stripped_input()
Some of these were exploitable for XSS, as well.
2015-01-11 19:02:53 -03:00
phil235 a55e6a70be Fixes malf AI lockdown affecting doors on z levels other than station and mining.
Replaces a lot of z level numbers in code by their respective defines.
Adding a define for the Mining asteroid z level.
2015-01-11 15:39:32 +01:00
carnie e7b105488d Resolves #6923 - Mistake made during merging meant that some gamemode objectives were using hardcoded area-type-lists for checking objective completion. (This is why allow/disallow lists are dumb) 2015-01-10 03:57:02 +00:00
carnie a029a49392 SubSystem rewrite
Misc:

+Fixes unreported issue with initializing lighting on a specific zlevel

+Fixes two similar issues with moveElement and moveRange. Where fromIndex or toIndex could be adjusted incorrectly in certain conditions. Potentially causing bad-sorts, or out of bound errors.

+Rewrites listclearnulls(list/L) to no longer iterate through L.len elements for every null in the list (plus 1). i.e. went from L.len*(number_of_nulls+1) list-element reads (best-case), to L.len list-element reads (worst-case)

+New proc/getElementByVar(list/L, varname, value) which finds the first datum in a list, with a variable named varname, which equals value. You can also feed it atoms instead of lists due to the way the in operator functions.

+Fixes an unreported issue with Yota's list2text rewrite. Under certain conditions, the first element would not be converted into a string. Causing type-mismatch runtimes.

+New global map_ready variable. This is not fully implemented yet, but will be used to avoid duplicate calls to initialize() for map objects.

+All turfs now maintain references to all lights currently illuminating them. This will mean higher memory use unfortunately, due to the huge number of turfs. However, it will speed up updateAffectingLights significantly. I've used list husbandry to reduce baseline memory usage, so it shouldn't be any worse than some past atmos modifications memory-wise.

-Removed 'quadratic lighting', can add this back at some point. Sorry.

+modified the way lum() works slightly, to allow turfs to have overridden delta-lumen. i.e. space cannot be illuminated more than its default ambiance. This allowed removal of some iffy special-snowflake lighting areas implemented by somebody else.

+Lighting images in the dmi can now use arbitrary naming schemes. It is reliant on order now. This allows the dmi to be replaced by simply dropping in a new dmi.

-Removed all subtypes of /area/shuttle. Shuttles now create duplicate 'rooms' of /area/shuttle. (More on this later). This will conflict with most maps. Guide on how to fix to follow.

+All verbs/tools relating to world.tick_lag were refactored to use world.fps. However old config text for setting tick_lag will still work (it converts the value to fps for you)

+MC stats improved using smoothing. They now have their own tab so they dont get in the way when you're playing as an admin.

-removed the push_mob_back stuff due to conflicting changes. Sorry Giacom.

_OK, NOW THE ACTUAL INTERESTING STUFF_

Following systems moved over to subsystem datums:
air_master
garbage_manager
lighting_controller
process_mobs (aka Life())
nanomanager
power
sun
pipenets
AFK kick loops
shuttle_controller (aka emergency shuttle/pods), supply_shuttle and other shuttles
voting
bots
radio
diseases
events
jobs
objects
ticker

Subsystems hooks and variables should be commented fairly in-depth. If anything isn't particularly clear, please make an issue.

Many system-specific global variables have been refactored into

All tickers which previously used world.timeofday now use world.time

some subsystems can iterate before round start. this resolves the issue with votes not working pregame
2014-12-31 13:25:41 +00:00
oranges abd34dfd87 make it clear you need the ID card of a user for the changeling escape as objective 2014-12-09 09:41:14 +13:00
hornygranny 3a316dc233 Merge pull request #5111 from Perakp/removeAbsorbObjective
Remove absorb objective and other changes to changeling
2014-11-08 15:18:44 -08:00
Aranclanos 9818a26167 Assassinate and other objective messages will now output the mind name instead of the current name of the mob.
Fixes issue #3829
2014-11-05 15:17:39 -03:00
Perakp ecadcd830f - Changelings no longer receive the absorb objective. The objective was broken because of the interaction between extract DNA and hivemind.
- New objective 'Escape with identity' requires the changeling to have the DNA and ID of their target when escaping
- Hallucination and transformation stings and engorged glands now require 3 absorptions.
- Can't purchase abilities you can't use. Cleans up the evolution menu.
- Extract DNA sting costs 1 point and doesn't count towards absorptions.
- Increased chemical recharge rate from 0.5 to 2. Engorged glands increase recharge rate by 1.
- You can absorb people even if you have their DNA already
2014-10-06 10:55:23 +03:00
ikarrus 51a333ebe7 Merge gang mode into latest version 2014-08-30 23:31:44 -06:00
ikarrus 4c801434a8 Gang Mode 2014-08-30 23:17:14 -06:00
Alex a64217bafb Merge pull request #4538 from Ikarrus/maroon
Maroon and Destroy objectives for Traitor and Changeling
2014-08-26 08:14:01 +01:00
ikarrus f8df362da0 Checks for minds before adding AIs to the list of destroy candidates 2014-08-23 09:46:28 -06:00
ikarrus 06a6a21864 Can add maroon and destroy via Traitor Panel 2014-08-22 22:22:44 -06:00
ikarrus 76b0ce1a8a Maroon and Destroy objectives for Traitor and Changeling
Maroon
-Maroon objectives are a variation of assassination, where preventing the escape of the person also counts as a success.
-Aprox. 30% of assasinations will be maroonings instead
-Disincentivizes players from staying behind on the station when the shuttle leaves simply because "it's more safe"

Destroy
-Basically an assasination objective where the AI is the target
-All traitors have a 1% of getting this objective. Changelings have 2% chance.
-Adds variety, counterplay between those who want to destroy the AI and save/restore/steal it
-It is entirely possible to get Destroy AI and Steal AI at the same time. While it would be difficult, it's still entirely possible to destroy your target and steal a different AI. The chances of getting both are very slim, however.
-Encourages restoring the AI over killing it wherever possible. Discourages AIs from cooperating with antagonists.

And there you go, my hamhanded attempts at some new objective types.
2014-08-22 21:58:25 -06:00
Firecage d3e88660e9 Gives escape alive objective better description text. 2014-08-22 18:56:05 +02:00
Alex 55e329eef3 Merge pull request #3931 from Ikarrus/exchangeupdate
Bugfixes for Exchange Objectives
2014-06-27 13:59:55 +01:00
Giacomand 2450342cef Fixed a typo causing duplicate steal objectives. 2014-06-23 20:13:04 +01:00
ikarrus 9e3f4effb8 Resolved Conflicts:
code/game/gamemodes/traitor/traitor.dm
2014-06-21 14:11:43 -06:00
ikarrus 4a06ff4d88 Bugfixes for Exchange Objectives
-Will no longer be assigned to latejoiners
-Objective description will report the other agent's real_name
-Objective description will report what job the other agent is
-Objective description will properly rename itself if the other agent is renamed (e.g. clowns, mimes)
-Explanation text made more noticeable
-Cleaned up the code a bit
2014-06-14 18:14:38 -06:00
Giacomand 67ee39541b Stops the objectives automatically giving you two of the same target. 2014-06-13 21:04:54 +01:00
ikarrus 8dc32877ad Bugfixes for Exchange Objectives
-Will no longer be assigned to latejoiners
-Objective description will report the other agent's real_name
-Objective description will report what job the other agent is
-Objective description will properly rename itself if the other agent is renamed (e.g. clowns, mimes)
-Explanation text made more noticeable
-Cleaned up the code a bit
2014-06-11 23:56:19 -06:00
ikarrus 47fbd14f57 Glory to absolute pathing 2014-05-06 09:02:19 -06:00
ikarrus 58b2ff1671 -Removed some duplicate code
-Made the syndicate document names appear like codenames
2014-05-04 16:18:48 -06:00
ikarrus 82639d14a6 Secret Document Objectives
Adds new steal objective "Secret Documents"
-A set of secret documents spawn in the vault's filing cabinet, but even syndicate documents qualify as valid steals

Adds the exchange objective for traitors
-If there are at least 6 traitors, two of them will be selected to make an exchange of secret documents
-There is a low (20%) chance that one of them will have an additional backstab objective, where they will require both sets of documents to win
2014-05-04 15:00:47 -06: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 6bdcf64525 Completes code changes; reimplements ninja steal objective. 2014-01-29 12:28:15 -06:00
Cheridan 3a9541df96 Converts Steal objectives (except for blueprints grr) to a datum-based system. This is to support further changes to the objective system, though it does make adding new objectives nice, simple and compartmentalized. 2014-01-25 18:10:06 -06:00
Cheridan 2ff10b72f8 Standardizes and cleans up objective.dm 2014-01-23 16:33:47 -06:00
ChuckTheSheep 8b55ed97f0 Fixes the Hijack Objective
The objective did not check if the owner of the objective was on the
shuttle, only if other people were.
2014-01-13 16:35:26 -05:00
ikarrus 0ac332f6b8 Moves laser pointer to special steal objectives list
Because its too silly and makes no sense.
2013-11-09 08:35:18 -07:00
AlexanderUlanH 87b72833bd Added the labor shuttle 2013-11-02 15:16:39 -04:00
Fleure 1cd02ac34c Fixes target names not being updated on change, reduces some duplicated code 2013-09-26 20:16:00 +01:00
Cael_Aislinn 35f5fbf17e adds laser pointer, makes RD + lawyer + librarian spawn with one, makes laser pointer a steal objective
Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
2013-09-01 13:42:28 +10:00
Cheridan 049dcaa46b Further Ling Tweaks
-Fixes a bug where a changeling could use revive after being husked by another changeling. The husk also loses his absorb points to the changeling that ate him.
-Fixes some objective text to use appropriate cases when dealing with numbered objectives ("1 genome", "2 genomes", so on)

-Resonant shriek now acts as a "flash" for cyborgs in range, giving changelings an in my opinion much-needed anti-silicon ability. Changelings in the area will also be able to hear the shriek.
-Spread Infestation requires fewer DNA absorptions now, but costs more chems to use and creates 1 fewer spiders.
2013-08-01 21:14:50 -05:00
Matevž Baloh ff262dcab0 Merge pull request #1039 from Cheridan/Changelings
Additional Changeling Changes!
2013-07-29 14:33:22 -07:00
Cheridan ae246d0403 Additional Changeling Changes!
-Lowers the max genome target by 1.
-40% chance of getting a debrain objective instead of a steal objective. They'll probably keep it in a jar on a shelf, the sickos.
-Chance to get a Survive objective removed.
-Changes the objective text to prevent confusion.

Minor ability cost changes. Fleshmend no longer heals toxin damage (that's covered by Panacea!)
2013-07-28 12:11:42 -05:00
Giacomand bb5cfb7e42 * Added a client check to revheads and heads, when checking for victory conditions. Having a clientless revhead or head will count them as dead.
* Made sure the check_rev_victory() checked only for mutiny objectives, otherwise anymore custom objectives will cause the game to never end.
2013-07-28 16:16:40 +01:00
Giacomand 58b63f33f2 * Fixed spelling typos. Tratior -> Traitor 2013-06-20 21:29:14 +01:00
Ikarrus fc4c10c63e Replaced pinpointer steal objective with the nuke disk. 2013-05-04 11:06:39 -06:00
Ikarrus a3f51ecbeb Adds the RD's reactive armor to possible steal objectives.
Reactive armor now spawns in the RD's locker.
Replaced some tables with racks in the RD's office.
2013-04-27 18:35:12 -06:00
Ikarrus 16ee4ed750 **This is a remake of https://github.com/tgstation/-tg-station/pull/453 after git imploded on itself.
-Removed head jumpsuits from the steal objectives list, as they were hardly taken seriously.
-Added Medal of Captaincy to list of steal objectives
-Readded Nuke Disk to list of special steal objectives. I've tested it and it DOES work.
-Grammar fix for special steal objectives
2013-04-27 09:37:08 +10:00
Pete Goodfellow aa82ae4ba6 Objective items in a cheesewheel in a book in your backpack will now be located properly by the game. 2013-03-28 12:57:49 +00:00
MrPerson a88b30ab31 Removed mind.original
All usage of it on silicons is replaced by is_special_character()
is_special_character moved from admin.dm to mob_helpers.dm
Also fixed a runtime having to do with objectives.
2013-03-11 05:40:21 -07:00
ericgfwong@hotmail.com d9f4eb9b72 Changed "nuclear gun" to "advanced energy gun" to make it clear what you're supposed to steal.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5813 316c924e-a436-60f5-8080-3fe189b3f50e
2013-03-06 04:15:49 +00:00