Commit Graph

2342 Commits

Author SHA1 Message Date
Pete Goodfellow
de8ac52a10 Merge pull request #1552 from Giacom/proj_runtime
Fixes a projectile runtime.
2013-10-12 11:28:10 -07:00
Robson Richards
1c70008d0c Changes Limbs into Obj's
Reworked all the paths for it
Reworked all the procs for it
2013-10-11 19:11:55 +01:00
Giacom
9b7a1bec2a Merge pull request #1535 from Incoming5643/StaffAnimation
Repairs and Expands the Staff of Change
2013-10-11 07:28:58 -07:00
Giacomand
717064bfc6 * Fixes a projectile runtime. 2013-10-10 23:03:14 +01:00
Jordie
416cbee62c Xrays shoot everything but walls 2013-10-09 18:05:33 +11:00
Incoming
f36507723a Fixes my extra side of potatos
Removes the !isanimal and !isrobot checks from robot creation. A fix has been suggested for the pull currently dealing with MMI that will stop the runtimes. https://github.com/tgstation/-tg-station/pull/1529
Keep in mind that if that request is not ultimately pulled the fix will need to be added to this pull to prevent runtimes from the game trying to take DNA from non-carbon based life.
2013-10-08 16:04:38 -04:00
Jordie
272038e2e7 Xray guns unique and buildable 2013-10-09 01:31:39 +11:00
Incoming
9fb9ed20ed Repairs and expands the staff of change:
*Staff of change now has a 20% chance of turning you into a simple animal (all have been tested to make sure they're properly controllable.
*Staff of change now works on simple animals, adding on_hit doesn't double up damage on simple animals or try to inflict non-brute damage because it's hardcoded to avoid inflicting damage to animals in the generic projectile. Special guns seem to work fine on animals (like the syringe gun for example).
*Mutant races were not updating properly thanks the DNA revamp, so that's been fixed and expanded to include all current races.
*Transfering identity for MMI's in newly created robots has been disabled for animal -> robot because it doesn't work properly for them, robot -> robot also apparently NEVER worked and has likewise been disabled.
2013-10-07 21:41:42 -04:00
ACCount12
110e0f420a Sparks! 2013-09-29 21:25:38 +13:00
ACCount12
78e91a59c1 Sparks! 2013-09-29 21:23:13 +13:00
Aranclanos
ef427aff91 Merge pull request #1318 from ACCount12/master
Shotgun dart overhaul, #1181 fixed, NOREACT flag removed from mobs
2013-09-20 00:33:36 -07:00
supersayu
a993ce62db Bugfixen and minor changes. Fixes #136.
Adjusts the click code to not use client/Click().  The code is largely unchanged, except that it allows the compiler default behaviour of calling atom/Click(), and then forwards the call to mob/ClickOn().  I had some reports that melee combat mixed with movement was behaving oddly, and I believe it may be due to the use of client/Click; the byond documentation says that redefining client/Click() causes additional overhead, and it isn't strictly necessary.

Alters the way double clicks are handled, in an attempt to better handle clickspam, as often occurs during pitched combat.  This may also be responsible for the above, but I don't know.

Inserts proximity (aka flag) checks in all afterattack() procs.  The old assumption was that unless an item used the USEDELAY flag, afterattack() was only called when adjacent, but this is no longer true.  This led to beakers, soap, crayons, etc, all being usable at all ranges.

Removes the NODELAY flag, which was unused.  Removes all existing uses of the USEDELAY flag so that it can be readded to things that need extra delay.

Removes the hand_* procs, previously used by restrained actions.  Instead, the mob helper mob/RestrainedClickOn() has abosrbed basically all the functionality they were used for, which is really only monkeys with jungle fever.

Adds a special case of the Adjacency() proc for doors.  This fixes #136, airlocks being unreachable due to border fire doors.  However, this only takes us back to the unpleasant position where you have to open-hand the door, switch to a crowbar, and pry open the firedoor; it still needs a better fix.
2013-09-17 18:19:14 -04: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
ACCount12
df25dbee9a reverted nucgun changes 2013-09-14 16:38:13 +13:00
ACCount12
556d6b5800 Desc update 2013-09-14 16:20:26 +13:00
ACCount12
85f6bce319 No more SEMICOLONS 2013-09-13 08:43:41 +13:00
ACCount12
b6753a6984 Makes nuclear gun really useful
Now nucgun has reputation of shitty gun that will weaken you with radiation mid-battle. This update makes nucguns useful even without CE's RIG or radsuit.
2013-09-09 02:45:18 -07:00
ACCount12
0a7285e0b7 Merge pull request #1 from tgstation/master
Merging with main /tg/
2013-09-09 02:39:03 -07:00
ACCount12
7d2e590233 Update bullets.dm 2013-09-06 14:44:54 -07:00
ACCount12
fcc96919ff Update bullets.dm 2013-09-06 14:39:10 -07:00
ACCount12
ef9862854a Update shotgun.dm 2013-09-06 14:38:06 -07:00
ACCount12
824e7db801 Update bullets.dm 2013-09-06 14:35:27 -07:00
ACCount12
46cfbd2d2b Update bullets.dm 2013-09-06 14:27:30 -07:00
Cheridan
6fb9c6c786 Merge pull request #1298 from Zelacks/silencefix
Energy Crossbows now play the correct sound
2013-09-06 09:04:26 -07:00
Cheridan
ac8cd01c17 Merge pull request #1284 from caelaislinn/terbs_weekly_fun
Terbs weekly fun #3 detective can reskin his gun
2013-09-05 15:46:11 -07:00
Cael_Aislinn
fa84ee1a0e detective can reskin his gun
Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
2013-09-06 08:43:00 +10:00
Zelacks
ec501b1b32 Fixed variable names
Fixed variable names so they use proper naming convention
2013-09-04 22:57:08 +08:00
Zelacks
a8b0824b7a Energy Crossbows now play the correct sound
Changed it so that silenced weapons still play the fire_sound that they
are given
2013-09-04 22:39:56 +08:00
Cael Aislinn
f6206dc6ac Merge pull request #1187 from Tenebrosity/gunshot
Replaces the default gunshot sound effect with four higher quality ones
2013-09-04 02:12:10 -07:00
Robson Richards
e1b1c3c6b0 Commits Buff, Stechkin AGAIN 2013-08-29 20:50:32 +01:00
Tenebrosity
fa496b3ec0 Adds a new sound effect for silenced weapons. 2013-08-19 15:18:07 +12:00
Tenebrosity
9109ef620c Replaces the default gunshot sound effect with four higher quality ones. Replaces the laser sound effect with an arguably better one. 2013-08-19 13:41:25 +12:00
Giacomand
e7718541d6 Changed the projectile code to have a lower probability to hit your target area the further away you are, instead of the further the original target was. This is more logical and makes sense. I also changed how it decides which zone to hit instead, if the random check fails.
Fixes #922
2013-07-10 09:35:07 +01:00
KazeEspada
67da9e7c93 Merge pull request #819 from AlexanderUlanH/projectile
Changed atom's bullet_act to call the projectile's on_hit, and changed most bullet_acts to call on_hit as well. Removed some now-unnecessary snowflake code.

These changes will make projectiles which should effect non-mobs, such as the gyrojet and the ion rifle, work properly. Inanimate objects can now be empulsed with the ion rifle, whose projectiles used to dissipate on hitting anything but a mob. Gyrojets now explode on most objects, as opposed to just on walls and mobs, and the snowflake code that made them work on walls is no longer necessary. The code for pulse rifles' breaking walls has been moved from a check in turf to a check in pulse beams, and has been expanded to include structures, allowing them to (slowly) break girders. For coders, it means that on_hit is a reliable proc for the effect of a bullet's hitting an object.

While it does mean a number of needless procs of on_hit, it's not too much more proccing than is already done by the gun code, and the removal of the snowflake code that was used to mask the issue, such as the two checks every time a shot hit a wall, should mostly if not more than offset the extra procs
2013-06-21 17:19:42 -07:00
AlexanderUlanH
0e7a28e1da Fixes clumsiness with prepare_shot
Thanks Kaze
2013-06-20 21:42:11 -04:00
AlexanderUlanH
1e6aa4788e Added a return to prepare_shot
Apparently that's important.
2013-06-20 18:35:56 -04:00
AlexanderUlanH
9082f884d6 Some Fixes
Fixed problems with projectiles hitting walls, and added a missing check
in floral mutarays that caused runtimes when it hit a non-carbon.
2013-06-20 18:33:32 -04:00
AlexanderUlanH
2fcf26667c Overhauled Projectiles
Changed atom's bullet_act to call the projectile's on_hit, and changed
most bullet_acts to call on_hit as well.  Removed some now-unnecessary
snowflake code.

These changes will make projectiles which should effect non-mobs, such
as the gyrojet and the ion rifle, work properly.  Inanimate objects can
now be empulsed with the ion rifle, whose projectiles used to dissipate
on hitting anything but a mob.  Gyrojets now explode on most objects, as
opposed to just on walls and mobs, and the snowflake code that made them
work on walls is no longer necessary.  The code for pulse rifles'
breaking walls has been moved from a check in turf to a check in pulse
beams, and has been expanded to include structures, allowing them to
(slowly) break girders.  For coders, it means that on_hit is a reliable
proc for the effect of a bullet's hitting an object.
2013-06-19 23:24:00 -04:00
AlexanderUlanH
6c71761979 Fixes temperature guns for the doubly last time
Makes the temperature projectile get its temperature from the gun, using
a proc used to give the bullet properties based on the properties of the
gun, which can be used with other projectiles for different guns.
Also names the temperature projectile based on its temperature.  500
degrees is not a freeze beam, that's just silly.
2013-06-19 22:04:02 -04:00
KazeEspada
6fddcb4e61 gives temperature guns a high capacity cell. fixes #265
removes a duplicated line in power_cells.dm
2013-05-30 10:20:22 -07:00
carnie
043028db83 Resolves #283
DNA modification uses normally distributed random numbers. Radiation strength dictates the standard deviation of the change in the hex character which is hit (higher output means greater chance for a large change) . Similarly, radiation duration dictates how likely we are to hit the hex-character we clicked on (longer duration means more likely to hit). Irradiation is strength*duration. All balancing is done via multiplier defines so you can rebalance it easily.

DNA blocks and structuring all use defines. Making modification/expansion easier. I'll likely expand this into a datum-based system to allow more interesting features, reduce code further and allow admins to interact with the way dna strings behave.

DNA strings can be spliced together using merge_text().
 e.g. string 1: "Hello World"
 string 2: "Seeya______"
 result: "Seeya World"
 This isn't used except for admin-spawnable SE injectors at the moment.

r_hair, g_hair, b_hair, r_facial, g_facial, b_facial, r_eyes, g_eyes, b_eyes were removed and made into 3 short hex-colors.

Skin tones now support colours other than shades of brown. I've had to restrict it heavily until other stuff is done. Skin tones include Albino Caucasian, Oriental, Mediterranean, etc.

Data disks and DNA injectors were reworked to use associative lists so transferring data is just a matter of doing list.Copy()

var/dna is now defined at /mob/living/carbon level. Only monkeys and humans may have dna currently. Support is there for all carbon-based lifeforms to have dna.

DNA modifier console has almost all controls on one screen.

UIs and UEs can be injected separately (appearance and name, respectively)

dna helper procs like ready_dna() and such were changed to make them more versatile. There is now a hardset_dna() proc as an alternative to ready_dna which can initialize dna with properties passed into it or update an existing dna string (useful for cloning and antag spawning)

Every block of SEs are in randomised positions.

Disabled automatic logging of world.log, as it produced undesirable behaviour.

Mr Muggles and God Emperor of Mankind disks removed.

Floor() removed. (it was completely uneccesary, that is what round() is).

Fixed spelling mistakes in modularchangling.dm (thanks tenebrosity)

Tanning removed from beaches (again)

Experimental: monkeys and humans do not have dna until first attempt to read dna (using check_dna_integrity(mob))
This is mainly due to the way everything is hardcoded into New().

Changelog.html updated
Signed-off-by: carnie <elly1989@rocketmail.com>
2013-04-24 09:37:30 +01:00
carnie
732d72e227 Merge branch 'master' of github.com:tgstation/-tg-station into pr/151
Conflicts:
	code/modules/mob/new_player/new_player.dm
2013-03-28 18:35:37 +00:00
Aranclanos
b8caf8768e I didn't even knew that you could add the empty shells to other guns, oh well.
Same fix for the rest of the projectile guns, now they won't "fire" invisible bullets.
2013-03-28 11:17:41 -03:00
carnie
5ca166cae0 Refactored underwear to use datum/sprite_accessory/underwear similar to hair and facial_hair.
People may select any underwear (regardless of gender) at a dresser, but not in preferences.
random_underwear(gender) will return a random pair of underwear suitable for your gender.
Removed an unused variable in sprite_accessory

The new_player preferences screen now randomizes character slots for which there is no data (so no more bald, fat, white guys in diapers greeting new players)
datum/preferences character settings are randomised at New().
replaced /datum/preferences/proc/randomize_appearance_for(human/H) with /datum/preferences/proc/random_character(), it does the same stuff without the copying to a mob. Basically, now when you want to make a random character you just do var/datum/preferences/A = new(); A.copy_to(human_mob), randomisation of appearance and name will already be done. Easy.

Reworked the savefile updating/versioning code to make it easier to work with. I've used it to update underwear preferences to the new system as an example.

Signed-off-by: carnie <elly1989@rocketmail.com>
2013-03-28 11:11:40 +00:00
Aranclanos
56ecfe8ed9 Fixed issues related to shotguns and their shells.
-The description "A weak beanbag shell. This one is spent. This one is spent. This one is spent. This one is spent." made by double barreled shotguns is gone, now the message is only added when the shotgun actually fires and uses the shell
-All other kind of shotguns will now add the "This one is spent." message.
-Shotguns will stop firing invisible bullets, making them less confusing.

Changed the "You break the double barreled shotgun" message to "You open the double barreled shotgun" because it was confusing, the playes (myself included) thought that they actually ruined the pretty gun.
2013-03-28 06:16:53 -03:00
Pete Goodfellow
5ddcc63b83 Removes an unnecessary check from the gun afterattack(). flag does handle rechargers. 2013-03-11 04:52:53 +00:00
Pete Goodfellow
b02c459505 Adding google code commits r5836 to r5849. RIP in peace google code. 2013-03-11 04:26:54 +00:00
petethegoat@gmail.com
8ff7285645 Updates HUD stuff!
The main goal was to remove all the pointless shit in the UI style dmis, but this commit actually goes a bit deeper than that.

Formally renames the "hurt" intent to "harm", in line with everything else in the world.

Removes the old screen1_... .dmis. They've been replaced with screen_... .dmis. They function much the same.
screen_gen.dmi is used for things which apply to multiple UI styles, such as storage slot sprites, or the intent selector. (These can still be overridden in HUD code, though.)

Item action buttons have been changed to use a template from the UI style, and the icon_state of the item.
var/icon_action_button has been removed- varvar/action_button_name must be used instead to add action buttons for items.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5826 316c924e-a436-60f5-8080-3fe189b3f50e
2013-03-08 21:32:00 +00:00
petethegoat@gmail.com
786242f9b2 Big text styling overhaul. Mostly affects reagent related stuff.
Adds a new 'userdanger' class, which is bold and red. 'danger' is now just red. Adjusts all dangerous messages I could think of to use the appropriate class.

Trash items can now be washed away in sinks.

Removes the robodropper, on account of it being awful. Borgs get a normal dropper instead.

Changes the probability of blood spatter from attacking someone from 33 to item.force * 2

Path changes:
/obj/item/weapon/reagent_containers/ld50_syringe > /obj/item/weapon/reagent_containers/syringe/lethal
/obj/item/weapon/reagent_containers/ld50_syringe/choral > /obj/item/weapon/reagent_containers/syringe/lethal/choral
possibly some others? i think this is it.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5815 316c924e-a436-60f5-8080-3fe189b3f50e
2013-03-06 17:44:49 +00:00
aranclanos@hotmail.com
3a2673a284 Changes for all the different update icons procs of humans and monkeys, they now update their own sprite and hud icon (if it's a proc of a slot item) without having to call for update_icons().
A lot of different calls for update_inv_[slot] now won't call for update_icons.dm(). Such as dropping, throwing, picking up objects, moving objects around your gear, using your active hand, firing guns, stripping, etc.
All the different calls for UpdateDamageIcon() now they won't call for update_icons()
The different sprites of humans/monkeys will now have their own layer, humans starting with MUTANTRACE_LAYER in layer -1 to R_HAND_LAYER in layer -20, so the sprites don't get messy overlapping eachother if update_icons() is not called. To help this change, all layers numbers were changed, R_HAND_LAYER used to be 1, now it's 20. (This can be changed back if it ends up being confusing or ugly to read)

TL;RL I removed 90% of the calls for update_icons() modifying the different update procs of update_icons.dm of monkeys/humans. The goal is to reduce lag.

JUST IN CASE, lying down will call for update_icons(), so players have an easy way to update their icons if something goes horribly wrong. Which won't. I hope.


Fixes issue 842. Handcuffs sprites appearing on the player's UI if this one was handcuffed. Because I liked this we'll call it feature and add some awesome sprites made by Cheridan, you'll now have a new sprite on your UI telling you "you're handcuffed buddy!". (Also he named the sprites so don't blame me)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5809 316c924e-a436-60f5-8080-3fe189b3f50e
2013-03-04 05:01:07 +00:00