Commit Graph

60 Commits

Author SHA1 Message Date
Iamgoofball
9a1036d43b Fixes #6991 2015-02-03 20:26:58 -08:00
tkdrg
7de9a6e1ca Merge pull request #6990 from Incoming5643/only_you_can_prevent_horrific_floating_brains
Magic Mania 1.83: Attack of the Flying Invisible Magic Brains!
2015-01-20 20:20:07 -03:00
Incoming
c46cefd8ff Locks up teleportation spells behind a var, nonabstract_req, that keeps pAI and brain mobs from leaving their respective jail objects.
The crew is none the less emphatically warned of the hilarious danger of putting magic brains in MMIs.
2015-01-11 22:02:19 -05: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
Firecage
6c7af5eb32 SPANCLASSES!!!!! 2014-08-26 09:52:13 +02:00
paprka
d992c907c6 goodbye rigsuits my old friends 2014-07-29 11:43:34 -07:00
Rolan7
1a1bc162ec Fixes a dreadful typo I made in #3949 where wizards couldn't cast spells unless they were muzzled...
Embarassing.
2014-07-02 16:14:10 -04:00
Rolan7
7decfe8621 Merge branch 'master' of https://github.com/tgstation/-tg-station into MidJuneBugfixes
Conflicts:
	code/modules/mob/living/carbon/carbon.dm
2014-06-21 09:00:21 -04:00
Rolan7
98367cb162 Changelings can use hivechat while muzzled.
Monkey-lings can use hivechat.
Lings can return to human form even if monkeyed through genetics.
One-line fix for Destroying Angels (..() wasn't being called)
Spelling correction in Destroying Angel description
2014-06-17 00:13:56 -04:00
Alex
901081fc8f Merge pull request #3924 from Cheridan/stupidfuckingfireballs
Gives spells tablepass
2014-06-16 10:45:03 +01:00
Cheridan
3f1837d21d Gives spells tablepass
hurhurrrrhrurhurh lets make these things that act like projectiles but aren't at all hgluhbglbuhglbuhgbluhguhlgubhgblhhblgbh
2014-06-13 23:01:28 -05:00
Cheridan
b80e9eda57 Nar-Sie update 2014-06-11 14:19:58 -05:00
Cheridan
38ab0be4ad Spells are now anchored.
Space Carp and Bears now take damage from high temperatures.
2014-05-19 15:06:54 -05:00
MrPerson
f1645bcf64 Fixed a serious as fuck bug where wizard spells don't recharge 2014-04-01 05:56:06 -07:00
MrPerson
1fa3dbde0c Make ei nath not destroy brains
Also small tweaks to make spells GC if you use the spellremove() proc.
2014-03-26 08:38:26 -07:00
Perakp
88f62dbfa7 small mime fixes
- mime wall doesn’t disrupt sounds no more
- you can do mime walls even while wearing a muzzle
2014-03-22 12:04:04 +02: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
Perakp
6ae1a18970 - Destroying a mindswapper's old body won't destroy the spells.
- Reverts a non-fun change to silly spellcasters.
- Mime's spells are bound to the mob. They do not transfer and can not be lost in mindswap.
2014-01-10 20:04:54 +02:00
Perakp
8ba1e8cd33 - Moves spells from the mob to the mind.
- Construct spells are an exception.
- Spells are transferred whenever a mind is transferred: cloning, pod cloning, borging, staff of changing.
- Spells are not transferred when you create a new mind for a new mob: soul stones, golems, respawns.
- To my surprise, this did not fix the issue where a mind-swapped wizard loses their spells when their original body is destroyed. I do not know why this happens.
- Non-human mobs can't use spells by default. Varedit spell.human_req to do that.
2014-01-10 15:59:55 +02:00
Cheridan
0102191bbc Merge pull request #2247 from Giacom/blinkyoself
Changed blink to only spawn a single static smoke cloud.
2014-01-07 08:28:06 -08:00
Giacomand
3fbeebfb6e Changed blink to only spawn a single static smoke cloud.
Fixed blink not triggering the AI turrets.
2014-01-05 20:41:06 +00:00
Incoming
50838d701d Adds attack logging to learning spells from one time use spellbooks and casting of spells. 2014-01-03 17:40:32 -05:00
Giacom
0cd059432e Merge pull request #2135 from ChuckTheSheep/patch-2
Fixed an oversight in Wizard-Spell targeting code
2014-01-02 10:33:27 -08:00
ChuckTheSheep
56059f67c3 Update spell.dm 2013-12-24 09:31:00 -05:00
ChuckTheSheep
4a59eca9ba Fixed an oversight in Wizard-Spell targeting code
Added an extra safety check to check if targets selected via inputs were actually in range. Previously someone could open a bunch of inputs and activate them from what ever range.
2013-12-23 18:42:15 -05:00
Perakp
0d1ba1eccf Changes mime abilities into spells. Admins can now give these from the 'give spell' menu. Unlike previous mime abilities, these are not transferred when a mime is cloned. 2013-12-21 20:54:07 +02:00
Ricotez
bf58d406a5 Merge pull request #1450 from Incoming5643/wizardspells2
Quickened Spells (ready to merge edition)
2013-09-25 16:01:26 -07:00
supersayu
475042a212 Click code rework
Fixes #646, #579, #863

Completely redoes the click code.  Moves all click related code into code/_onclick for reference.  Also moves hud datum code and all the screen object code I could find into code/_onclick/hud, as it is related.  Item attack(), attackby(), afterattack(), and attack_self() have been moved into item_attack.dm for consistency.

Completely removes dummy objects and adds atom.Adjacent(user).  This proc checks for border items and anything marked with throwpass for determining whether or not you can reach a given square.  A turf helper, ClickCross(), was added to facilitate this.

Removes the monolithic Atom.Click() proc in favor of an overridable click handler attached to mobs.  Click code no longer uses the : path operator as a consequence, and mob/lastDblClick has been moved to Client/next_click.  A few end arounds were necessary (screen objects, buildmode, and spells), but this has been handled by repurposing Atom.Click(); if you have special click code, insert it in the object's Click() function and return 1 to prevent normal processing.

This update adds support for attack_ghost(); the previous "new" click handler had support for it but was never finished.  I have taken the liberty of letting ghosts click portals, the gateway, and the teleporter to jump to the intended target square, and kept the previous default action of examine()ing every damn thing you click.  It is to be suggested that you could do more with this proc when ghost interactions are enabled.

This update also adds support for double clicking.  It is currently only used for ghosts and AIs, because the original (first) click still registers normally.  For both of these, double clicking a square will jump you to it, and double clicking a mob will follow it.  In the case of ghosts, double clicking bots and the singularity will also set you following it; if you double click your own corpse, you will re-enter it; this also works if your body is in a closet, sleeper, DNA scanner, etc.  Default mobs ignore double clicks as normal.

-- NOTE --

There are two flags which were previously unused or misused by click code: USEDELAY and NODELAY.  Ostensibly, USEDELAY would double the normal 1sec delay, and NODELAY would remove it.

Using either of these flags as intended would significantly affect the timing of the game.  In particular, USEDELAY is currently applied to guns and about everything else that acts at range.  I am adding USEDELAY as a half-second increase for now, but I have not put a significant amount of thought into it.  I considered lowering the normal 1sec delay to .8sec to balance it, but the consequences of that on combat involve more calculations than I care to make.

NODELAY seems to never have been used, and I did not implement it, but I could do so trivially.
2013-09-17 18:15:54 -04:00
Incoming
6cf018d5a2 Reworked the equation so that you gain a constant cooldown reduction per rank
Additionally all spells can now use all 5 spell points now (though the functionality to have spells that don't follow this rule is still there).
The new variable "cooldown_min" defines (in deciseconds) what the cooldown should be if all 5 spell points are used on it.
For example if you had a 100 charge_max and a 60 cooldown_min, every rank used on that spell would reduce charge_max by 10
Specifics of how the cooldown is affected for each spell has been commented in
2013-09-14 17:50:34 -04:00
Incoming
e6af82a2e5 Extra charges can now be used to reduce the cool down of a wizard's spells. This effect can stack to different levels depending on the spell. 2013-09-13 17:54:13 -04:00
Ikarrus
1518d285e7 Standardized spelling of all instances of "Centcom"
Centcomm/CentComm -> Centcom
centcomm -> centcom
2013-06-17 20:49:01 -06:00
aranclanos@hotmail.com
47ba70aec9 Fixes issue 1365 - Spells not working for nonhumans mobs.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5811 316c924e-a436-60f5-8080-3fe189b3f50e
2013-03-06 01:40:48 +00:00
petethegoat@gmail.com
58c7f79398 Moved
var/obj/item/weapon/back
var/obj/item/clothing/mask/wear_mask
var/obj/item/weapon/tank/internal

from /mob to /mob/living/carbon.

/mob/proc/abiotic() no longer does any extra checks even if full_body == 1.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5722 316c924e-a436-60f5-8080-3fe189b3f50e
2013-02-17 18:53:09 +00:00
johnsonmt88@gmail.com
b86d90c6c2 Couple of bugfixes:
Wizards can no longer cast spells when muzzled. Fixes issue 843.

You can no longer take bags of holding or mechs to the clown planet. Fixes issue 1061.

Removed the infared sensor from the autolathe construct list. Fixes issue 1092.
- The infared sensor already does nothing, the code for it seems to have been removed ages ago, so there's no harm in doing this.
- Commenting out the define caused a few problems that I couldn't quite figure out. I'll leave it for now with a warning.

Removed the ability for pAI's to set arrest status. Dead players really shouldn't be allowed to grief people like that. Fixes issue 1093.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5060 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-14 01:17:40 +00:00
elly1989@rocketmail.com
4d9876fd65 Fixes issues with pen bbcode. Replacetext did not work correctly after I changed text2list - (It was missing 'needles' at the beginning of 'haystacks').
>dd_replacetext and dd_replacetext_case are now replacetext and replacetextEx respectively.
>replacetext and replacetextEx works using strings only; it doesn't convert it into a list and then back into a string.

Fixes some dumb-dumbs in textlist and text2listEx
> "<" where there should be a "<="
> no else case for when the separator is longer than the text (causing empty lists to be returned)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4971 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-27 21:21:17 +00:00
d_h2005@yahoo.com
60bce6c53b -Adds a new wizard artifact, the gem-encrusted hardsuit. Attack protection is equal to the highest values of robes + normal rig suit, and it allows spellcasting like a normal set of robes. Maybe now wizards can stop dying after blinking into space/teleporting to Borg Deathsquad Arrived.
And hopefully they WON'T use it to explore the derelict all around every round. We'll see.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4794 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-02 05:34:03 +00:00
giacomand@gmail.com
4595e70d27 Fixed Issue 897
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4654 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-08 07:04:22 +00:00
giacomand@gmail.com
0b0719f2bb -Made wizard require at least 20 players, instead of any. This is hopefully stop a low pop wizard from killing the whole crew and not calling the shuttle until an admin intervenes.
-Made nuke ops require at least 20 players. I did this because 15 wasn't low enough and it is a 5 heavily manned organized team vs 10 crew members who are just going along their own business.
-Made the spells only target living mobs. This was because the spells were listing the AI eye as a target.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4573 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-28 11:24:59 +00:00
baloh.matevz
44fb70ffd4 - Changed all "male" and "female" assignments to use the constants MALE and FEMALE.
- Added a message_admins() message which is sent if a character setup mismatch is detected to help diagnose the problem.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4496 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-19 17:56:51 +00:00
elly1989@rocketmail.com
4073ac9b00 Replaced all 'file.extension' references with 'relativepath/file.extension' using a script by thvortex of ss13-daedalus.
All credits to the author for this handy little script.
I Committed the modified python script to tool directory. Although it needs to be in the root folder of your repo to work.

To notice the improved compile times, in dreammaker go to Build > Preferences > and untick "automatically set file_dir for subfolders"

If this commit inteferes with any large projects just revert it, do your thing, then rerun the script. Easy-peasy.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4488 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-18 16:33:40 +00:00
sieve32@gmail.com
5f8c56bb7d Fixes Issue 721
-Small change that psuedo-randomizes cult and wizard incantations. For cultists, it's just a [pick("'","`")] in place of a "'" in their incantation, and wizard invocations have a 50% chance to replace the spaces with "`".


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4307 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-03 21:02:22 +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
johnsonmt88@gmail.com
8432f2aabe Resisting out of lockers
- Being inside a wrapped locker no longer delete you when you resist out of it. Fixes Issue 596
- Resisting out of a locker now takes longer then 5 seconds

Certain spells can no longer be cast on z2
- 'walk through wall' spells are disabled to prevent people from getting to centcomm
- 'construct turf' spells are disabled because turfs in transit space crash the server

get_contents()
- Now recursively runs through a mobs contents for items and should actually find everything.
- Now take package wrapped items into account.

check_for_contents() now simply calls get_contents() to generate a list instead of using copy/pasted code from get_contents().

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4064 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-14 01:00:22 +00:00
johnsonmt88@gmail.com
80b15df54b ** Mob Define Cleanup: Part 1 **
I'm currently working on moving all of the vars in mob_defines.dm and some procs in mob.dm into more fitting places. For example, ghosts and simple animals can not be cloned, so they do not need a cloneloss var. Cloneloss would be better fitting to /mob/living or even /mob/living/carbon. 

By moving these defines into proper children of /mob we lower the amount of resources that must be set aside every time a mob is created and we lower the amount of data that gets transfered between mobs when we combine, transfer or transform them. In theory, this should help free up some resources and combat lag.

Due to how integrated some of these defines are in the rest of the code, I'm going to be committing this cleanup in small batches. Doing it this way instead of one massive commit means that bugs will be easier to locate and identify. It is also less likely to overwhelm players with bugs, and if it still does, it will make it easier for us to revert only the section that is causing problems. Smaller commits also means merging with existing code will be less of a nightmare and has less potential for merging mistakes.

One of my goals in this cleanup is to add a description to every single variable in mob defines. While some of them are self explanatory, there are some there that are used in horribly obscure ways on top of having no comment to describe their use.

-----------------------

Mob defines moved to living:
- last_special*
- bruteloss
- oxyloss
- toxloss
- fireloss
- cloneloss
- brainloss
- halloss
- hallucination
- hallucinations(list)

*Note: I believe this variable is not needed, but the code it is used in (the resist verb) is cluttered and messy. That chunk of code probably use a re-write. I'll put it on my TODO list and if I survive mob_defines I'll try to get around to it but if anyone wants to do it for me, that would certainly help!

-----------------------

Mob procs moved to living:
- getBruteLoss()
- adjustBruteLoss()
- getOxyLoss()
- adjustOxyLoss()
- setOxyLoss()
- getToxLoss()
- adjustToxLoss()
- setToxLoss()
- getFireLoss()
- adjustFireLoss()
- getCloneLoss()
- adjustCloneLoss()
- setCloneLoss()
- getHalLoss()
- adjustHalLoss()
- setHalLoss()
- getBrainLoss()
- adjustBrainLoss()
- setBrainLoss

Mob procs moved to carbon:
getDNA()
setDNA()

-----------------------

Mob verbs moved to carbon:
- Sleep
- Lay down / Get up

-----------------------

The : operator...

The thing that has been killing me through this whole cleanup is people using or copy/pasting the : operator everywhere. 


*** Please use obj.var_or_procname. Do not use obj:var_or_procname ***


Using obj:procname will not throw a compiler error if obj does not have that specific var or proc. This means that the coder making changes will NOT be informed of an error which will result in a proc failing, potentially being completely unusable and definatly causing a runtime error.

With that said, I fully anticipate that most bugs (if any) caused by this mob define cleanup to be the result of : operators.

I've been replacing many : operators in favour of the . operator as I've been going, most noteably I went out of my way to remove almost every : operator from the 4000+ line Chemistry-Regents.dm
Exceptions:
- Water: Turf and Atmos related vars. I'm not familiar with the members and methods in those class' hierarchy.
- Silicate: because it's commented out and I honestly dont see it returning.
- Thermite: Turf and Atmos related vars.
- Corn Oil: Turf and Atmos related vars.

Final note: While this may be the source of some mob-related bugs, there are two other revisions that have been committed between now and the last time either of the the two tgstation servers have been updated. These revisions both touch mob-related files. I'm not blaming these other revisions for anything, especially since one of them is mine anyway, I'm just listing them here for refrence to help quickly identify any problems.
- My human/life() changes in r3925 
- Carn's life() standardizations in r3933

Stuff unrelated to mob defines:
- Fixed borgs and such being able to go into DNA modifiers.
- Changelog updated and I added Sieve to the list of coders.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3934 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-28 17:06:19 +00:00
quartz235@gmail.com
3769ce0998 - Welding shards while on top of a stack of glass (with less than 50 sheets) now adds the produced glass to the stack.
- Some runtime fixes

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2919 316c924e-a436-60f5-8080-3fe189b3f50e
2012-01-06 21:45:49 +00:00
uporotiy
c48b97519e Spells can now be based on the variables of their holder for cost. This allows cool things like a spell that deals 20 fire damage to you when you cast it.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2717 316c924e-a436-60f5-8080-3fe189b3f50e
2011-12-17 10:46:04 +00:00
mport2004@gmail.com
46a7143e3a Energy projectiles work again.
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
2011-10-11 07:52:30 +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
LastBattaWolf@hotmail.com
228be07b7c some fixes for more stuff I broke
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2064 316c924e-a436-60f5-8080-3fe189b3f50e
2011-08-29 05:24:28 +00:00