Commit Graph

2096 Commits

Author SHA1 Message Date
Perakp
1c267d07fd Fixes indentation 2013-10-27 17:45:24 +02:00
Perakp
eae177a586 Testing branching again
Signed-off-by: Perakp <perhal90@hotmail.com>
2013-10-27 10:56:44 +02:00
Perakp
cec73fb2af Testing branching again 2013-10-27 10:37:29 +02:00
Aranclanos
dd281bb6b2 Merge pull request #1561 from RobRichards1997/11/10/2013-Limbs-are-Objects
Changes Limbs into Objects [Merge/Give Feedback]
2013-10-22 00:41:09 -07:00
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