Commit Graph

125 Commits

Author SHA1 Message Date
Bjorn Neergaard c9f61fd7da Rework portable atmos; tgui portable pump 2016-02-05 17:06:00 -06:00
Remie Richards 10a924fc64 Adds Mecha Pilots! Syndicate soldiers who can pilot Mecha and use that Mecha's abilities and equipment. 2016-01-24 21:04:18 +00:00
Remie Richards b99ecdfbe0 Merge pull request #12597 from AnturK/atoningmycodingsins
Action Button Minor Rework Cleanup
2015-10-25 23:02:59 +00:00
AnturK 77d3260894 Action Button Cleanup
Removing action_type in lieu of subtypes
2015-10-22 21:34:27 +02:00
phil235 d3ee910211 Makes effect system code more OOP.
obj/effect/effect is now renamed obj/effect/particle_effect for better usability.
datum/effect/system and /datum/effect/effect/system are now both /datum/effect_system.
Fixes a bug where wall mounted igniters (and other spark producing objects) didn't produce sparks sometimes.
Moved explosion_particles.dm into the effect_system folder, because it has effect_systems code.
2015-10-21 23:28:29 +02:00
phil235 47909d525f Changes smoke to behave more like foam. Each covered tile has one smoke cloud. This makes smoke clouds much less random, especially in terms of reagent application.
Also smoke reaction now uses the TOUCH method instead of VAPOR, to differentiate smoke and foam. Mob without internals or gas masks also ingests reagents in the smoke.
Moved nanofrost smoke code to effects/effect_system/effects_smoke.dm
2015-10-15 21:52:37 +02:00
Razharas 3c275abb27 Makes combat mechs scale based on parts
Makes combat mechs scale based on parts
Capacitor and scanning module
2015-09-26 22:06:43 +03:00
phil235 f90ee4aa8c - Fixed monkey starting with no dna.
- Fixed bugs with monkeyize/humanize: 7803 (humanized monkey nobloodtype)
- Fixes 9298 monkeyed ling have troubles humanizing themself (already fixed?)
- Fixes despawning clothes when monkeyizing. 11855
- Replaced check_dna_integrity proc by simpler has_dna proc when required.
- created set_species() proc
- fixed space retrovirus not transfering SE (despite having a domutcheck()). Still need to check if it needs a name = real_name.
- I renamed mecha/var/dna to dna_lock to avoid confusion
- I renamed an armor var in a species proc to armor_block to avoid confusion with species/var/armor.
- I removed many if(dna) checks in lots of files.
- I removed duplicate defense procs between human/proc/X and dna.species/proc/X since dna is now always set.
- Anatomic panacea from changeling removes alien embryo correctly. 6247
- Fixes runtime when trying to put dna-less brain mmi into a dnalocked mech.
- Removed carbon/var/list/features, we now only have dna.features and prefs.features
- Remove hulk mutation from lizards and other species (Fixed 6413); only real humans can acquire hulk. (less work on sprites for each ones, fixes lizard tail not in hulk color)
- Fixes cloning not setting up correctly dna UE and dna.real_name
- I fixed the issue with sucked+cloned ling being unable to absorb
- I fixed issue with changeling proc checking if they have the dna already not working.
- Fixed 4095, low health hulk with DAA getting stuck in loop of acquiring/losing hulk.
- I added a second layer for mutations to differientate mutations that go below and above the body layer (Fixes 7858)
- Fixes 10048, the transform to initial appearence button was fucking up the dna.

- Fixes cloning not setting up correctly dna UE and dna.real_name
- Fixed the issue with sucked+cloned ling being unable to absorb
- Fixed issue with changeling proc checking if they have the dna already not working.
- Fixed 4095, low health hulk with DAA getting stuck in loop of acquiring/losing hulk.
- Added a second layer for mutations to differientate mutations that go below and above the body layer (Fixes 7858)
- Fixes 10048, the transform to initial appearence button was fucking up the dna.
2015-09-19 22:18:28 +02:00
duncathan 51c09f16bf makes all Destroy()'s return properly 2015-08-31 00:21:01 -06:00
phil235 84305062fe Fixes Bump() of mechs and bots not handling thrown cases correctly.
Mecha/Bump() now calls Bumped() in all cases as it should.
2015-07-27 14:33:13 +02:00
phil235 36c1768a77 Mech action buttons have new sprites by ZyloWalsh.
The dark gygax now has thrusters like the marauder, so that the nuke ops don't lose in space the mech they bought.
The gygax's leg actuator overload now uses an action button.
2015-07-24 00:24:52 +02:00
phil235 34db8dd695 Merge branch 'master' of https://github.com/tgstation/-tg-station into MechRefactoring
Conflicts:
	code/game/mecha/equipment/mecha_equipment.dm
	code/game/mecha/equipment/tools/medical_tools.dm
	code/game/mecha/equipment/tools/tools.dm
	code/game/mecha/equipment/weapons/weapons.dm
	code/game/mecha/mecha.dm
2015-07-16 13:50:01 +02:00
Firecage 4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02:00
phil235 9cc577273f added update_action_buttons to mmi life subproc
Fixes seraph smoke not working.
buff energy relay so it's closet to the old effect
Fixes 6812 (mmi in mech cant use equipment) somehow.
Moved check to prevent drilling inventory to mecha/click_action so that it also happens with an AI occupant.
Fixes 9562 (verbs sometimes aren't given to the pilot) by removing the verbs
Upon destroy() we delete cabin_air: Fixes 8110
Changed armor booster availability back to all mechs.
Fixes repair droid overlay not updating when turned off after repair done
Fixes heavy plasma cutter not being attachable to anything.
2015-07-08 02:24:29 +02:00
phil235 ea1780ce97 - Mech equipment was using its unique processing method, with specific timing for each equipment, but now it uses obj processing, I
changed the values so the equipment effect stays the same. Remove global_iterator datum.
- fiddled with equip_ready procs of mech tools.
- removed mecha/proc/do_after and /enter_after() procs.
- Renamed mech sleeper occupant var to "patient" to avoid confusion with the occupant of the mech.
- all non instant tool (drill) now show a progbar when drilling etc..
- action cooldown now use do_after_cooldown() (that itself uses do_after) and start_cooldown (for instantaneous actions).
- Removed mecha_equipment's destroy proc, it's now all in Destroy(). No confusion.
- modified mecha_equipment/proc/can_attach() to not check istype(mecha) b/c it can't not be. (so the child only have one istype check.
- Removed diamonddrill/can_attach() , all done at drill level.
- armor booster now only for combat mech, instead of all except honkmech.
- Removed dynhitby, dynbulletdamage, dynattackby, dynusepower(), dyngetcharge(), dynabsorbdamage()
- I split the tools.dm file into smaller ones: work tools, mining tools, other tools.
- I split mecha.dm into mecha.dm, mecha_topic.dm and mecha_defense.dm
- refactored mech weapon ballistic/launcher, new proj_init proc, more OOP.
- Moving consumes energy! Lights consumes energy. Fixes #9425.
- Fixed #7354 xeno not bursting if host is inside a mech.
- Added action buttons to mech. Moved toggle lights, internal tank, eject, view stats from verbs to action buttons, these can now only

be done via these buttons (removed them from the big stats window).
- Removed port connect verbs b/C it's automated now.
- regular hud is no longer hidden when inside a mech (doesn't matter b/c you can't interact with most stuff in it while in a mecha). Fixes issue 10387
- can't walk when shooting projectiles. Makes walking on your projectile a bit harder. Helps against issue 10315 (but doesn't fix it).
- also made into action buttons: the special abilities of certain combat mechs.
- Added thrown alerts for mech charge and integrity.
- Fixes teleporting occupant out not properly removing it from the mech. Fixes issue 10330
- fixes ballistic mech weapons spinning when launched. proc/throw_at() now has a spin argument instead of using var/allow_spin that was added to all atoms just for that.
- added a update_action_buttons() to ai/life() to handle ai mech.
2015-07-07 19:40:32 +02:00
phil235 b0cd6d34b1 Lots of work on acids, smoke, foam, reagents reaction() proc.
- fixed the fraction argument in reaction(...., INGESTED, fraction) so the proper amounts of each reagent react, not all of it.
- slight optimization of datum/reagents/reaction()
- small optimization /datum/reagent/proc/reaction_mob
- the smoke's reagents no longer do direct transfer upon crossed()/move() but uses "reagents.reaction( mob, TOUCH)" only.
- fixes no ingesting smoke if it's in the dark.
- removed block gas smoke effect flag from clown mask and other non "actual" gas mask.
- refactor how protection against touched chems being absorbed is done. get_permeability_protection() to get that protection. No more

simple RNG get touched or not, now the amount that touches you depends on your protection and the volume in question.
- changes acid_act to take volume into account.
- chem_smoke now uses process() just like foam, we remove the reaction from crossed() and Move(), it's only done in process() now.
- optimization of effect/smoke, OOP! And now all smoke effects use objprocessing instead of shitty sleep/spawn
- removed mob var/coughedtime.
- add a volume check to item/acid_act(), there's a threshold to be able to melt and then a probability to melt (acidpwr&volume).
- greatly lowered the amount of reagent in the smoke from dead blobspore (so the volume isn't enough for melting)
- human/acid_act(): damage to limbs depends on acidpwr&volume.
- fixes metalfoam not working.
- smoke powder: only one start() call.
- Amound of smoke objects depends on amount of smoke recipe created.
- Adds an argument to add_reagent() to block automatic call of handle_reaction()
- When using reagents/proc/trans_to(), reactions are now only handled after every reagent is transfered and not before.
- Amount of smoke objects depends on amount of smoke reagent created.
- radius of foam reaction depends on amount of foam reagent created.
- The amount of other reagents inside the smoke/foam decides the life expectancy of the effect.
- The amount of reagents in each small smoke cloud/foam cell depends on the amount of other reagents in the initial reaction but also

how much smoke/foam was created (more smoke means dilution of the reagents).
- smoke/foam's reagent reaction on mob decreases the life expectancy of the effect (to avoid reagent duplication)
- The amount of reagent reacting with atoms is less if the life expectancy is high.(to avoid reagent duplication)
- The amount of movement from the smoke now depends on the number of smoke clouds created.
- removing some useless code in chem_grenade/prime().
- When calling human/acid_act(), item acid melting chance lowers after each each successful melt in the list, some of the acid is

"used" to melt that item so the next items have a lower chance to melt (to make melting every clothing harder).
- remove the banned reagent list from sprays, not needed anymore now that acid is nerfed.
- chem_grenade reaction, if there's no reagent left after reaction (smoke/foam/etc, reagents cleared) you don't get the steam effect

and immediate reaction with all atoms around the grenade explosion. (Fixes foam cleaner grenade deleting bloodstains around it as soon

as the grenade explodes, even if the foam hasn't reached the tile yet).
- melted storage items now drop their content instead of deleting everything.
2015-06-22 00:35:24 +02:00
Firecage f79e0fc1aa Updates more paths, for example obj/stuff to /obj/stuff 2015-05-31 17:48:33 +02:00
MrStonedOne bd6d51a0b5 Massive MC and subsystem rewrite
MC:
	No longer tracks a subsystem's cpu usage. This was basically worthless and took up space on the stat panel
	Can calculate wait down to a tenth of a decisecond to make it fps/world.ticklag agnostic
	Now allows subsystems to have a dynamic wait, that is based on a ratio of how long that subsystem has been taking to process(cost). (This system allows for upper and lower bounds, and an changeable cost delta for each subsystem)
	MC can now be told to init a zlevel

All Subsystems:
	Stats panel now allows child subsystems to pass it a message to add to its stats entry. All subsystems have been moved over to this system - This should cut down on subsystems having to copy and paste the stats proc in order to add to it
	All subsystems now properlly handle being given a zlevel in their init proc

Subsystem changes:
	Air:
		Added air to the dynamic wait subsystem. upper bound: 50, lower bound: 5, cost delta: 3 times process cost
		Air now fires 4 times faster when it can do so without lagging things up
		Pipenet has been merged into air
		Atmos machinery now processes with process_atmos(), ticked by air, not machinery.
		Hotspots (the fire object) are now object pooled
	Pipenet:
		Deleted, added to air
	Machinery:
		Moved all atmos calcualtions in all objects's process() to process_atmos().
	Lighting:
		Added Lighting to the dynamic wait subsystem. upper bound: 20, lower bound: 5, cost delta: 3 times process cost
	Ticker:
		Fixed ticker not updating the lobby panel when game start delayed
		Fixed the game start timer updating rapidly from queued fires when game start delay is removed
	Garbage/qdel:
		qdel will now limit its process time to 2ds a fire.
		qdel can now be given hints as a return to Destroy() as to what should be done with the object.
		the options are:
			queue: (default) this is the normal behavior.
			letmelive: old default to non-null/zero. does nothing with the object
			iwillgc: functionally the same as above, mainly to let people working with objects know that the object will not be queued for GC checking
			harddel: this will queue the object to be deleted without storing a soft reference, mainly to save locate() processing time.
			harddel_now: this will del() the object. To allow for a clean removal of every del() not in qdel
		All objects have been updated to the new system, harddel and iwillgc was not added to any new objects.
		Fixed some objects not GCing because they didn't properlly clear references in Destory()
		Fixed some objects getting qdel'ed preventing other objects from getting GCed because they did not null their reference to that object.
2015-04-29 02:00:25 -07:00
phil235 1eaaf35b41 Merge branch 'master' of https://github.com/tgstation/-tg-station into MechAtkFix1
Conflicts:
	code/game/objects/objs.dm
	code/modules/mob/living/carbon/human/human_defense.dm
2014-11-04 18:24:52 +01:00
hornygranny abc9fb947b Merge pull request #5622 from phil235/MechaProtocolFix
Mech maintenance protocol fix
2014-11-03 17:28:32 -08:00
phil235 746d22a9ec better remove that... 2014-11-03 21:47:41 +01:00
phil235 9c11d9fa25 All mechs have a melee attack now, the force of non combat mechs is 5.
Changing the mech melee attack code to be more object oriented. Creating mech_melee_attack() proc for atom and overidden in its children.
Mechs can now hit windoors with their melee attack. (they can still open them by bumping)
2014-11-03 21:40:25 +01:00
phil235 90a4271fed Fix runtime when using id on mecha as a monkey
All mecha start wit maintenance protocol forbidden by default
Only roboticist/engineers can access the ID/maintenance protocol panel
Tried to simplify the code checking the access in mecha.
2014-11-02 18:03:44 +01:00
phil235 128c9222e5 Adding checks for stun, restrained to many object verbs.
Fixing paper and supply manifest description upon examination.
Fixing being able to adjust jumpsuit while restrained.
Fixing one typo.
2014-11-01 19:18:01 +01:00
MrPerson ef6204656f Space movement rewrite to allow everything to drift
Removes a version of atom/movable/Move() that was in mob_movement.dm.
New proc called newtonian_move() that's called as a result of things like shooting a gun or spraying a fire extinguisher and as part of atom/movable/Move().
It pushes src if it's not under gravity and gives the object a chance to stop itself.
As a result, inertial_drift() is kill.
Moved Process_Spacemove() out to atom/movable. It does the same thing, it's called whenever a drift is attempted and stops the drift if it returns 1. Default check is to look for nearby lattices to make dragging shit around the station less annoying. Mobs still call it in Client/Move()
The mob version of Process_Spacemove() will shove non-anchored nearby objects out of the way if you try to move like that. For example if you're free-floating in space next to a closet and try to move right, the closet will drift off to the left.
Mechs call their occupant's version of Process_Spacemove() so mining with a mech isn't retarded. The pussy wagon does the same thing and thus no longer works like a jetpack. Will it be making a comeback?!?! (no)
Any move will attempt to keep dragging your pulled object, not just ones initiated by the client. Should make space wind a little less annoying. Was needed to make drifting not break your drags.
Mechs drift correctly without any special snowflake crap.
Spaceslipping is gone because fuck that shit
Space movement is now slow instead of fast. Having a jetpack helps go faster but even that's slower than current. Hopefully means nuke ops can see each other as they move to the station instead of losing sight of each other instantly. Having your hands full makes spacemovement even slower.
You can drift in office chairs and drag mobs in beds or the bed itself. Currently drifting diagonally while in an office chair is bugged and I need help to solve it. It winds up in cardinal movement instead of a diagonal one.
Changes up the jetpacking effects system to cause fewer errant ion trails but it's still awful code. In hindsight I shouldn't have bothered but here we go.
2014-10-25 23:19:46 -07:00
PatchouliKnowledge 8b9881a682 I accidentally the phasing 2014-10-11 22:37:37 +03:00
PatchouliKnowledge d31ed2583b Removes comments from combat.dm and phazon.dm 2014-10-11 21:42:55 +03:00
PatchouliKnowledge 6c649997e4 Fixes duplicate Ripley proc code, moves messages to switch() in Phazon damtype change code 2014-10-11 21:31:33 +03:00
PatchouliKnowledge 481135177c Lots of mecha changes and additions.
- Added constructible Phazon parts and circuits to R&D machines
- Added a Phazon construction path
- Nerfed the Phazon greatly
 > equip slots down to 3 from 4
 > step_in up to 2 from 1
 > toxin punch damage greatly nerfed (from ~80 tox damage to ~20 per hit)
 > research levels required increased (materials 7, bluespace 6, power 6, emp 6, data 5)
 > research levels from parts reduced
- Fluffed out the Phazon in general (sounds, descriptions)

- Grammar fixes to mecha construction process - added a bunch of missing periods and articles
- Changed Durand construction to require a super capacitor and phasic scanner instead of advanced ones

- Buffed the exosuit extinguisher (now has 1000 water instead of 200)
- Buffed the exosuit plasma generator (now consumes fuel at half the speed and doesn't burn through masses of plasma in minutes)
- Moved the cable layer tool from medical_tools.dm to tools.dm (why even)

- Buffed Ripley's default armour (brute from 20% to 40%, bomb protection 80% instead of none)
- All Ripley variants now have the same lights_power 7 (from Default Ripley's 6, and Death Ripley's 60 which basically created a fully lit square around it)
- The default Ripley can now be augmented with goliath armour plates, up to 70% brute protection (plates drop if Ripley is killed)
- Goliath-plated Ripleys get a different sprite and examine-description
2014-10-11 20:51:54 +03:00
Firecage 9ea09fe63c Spanclasses for files in the Linda, mecha, Turfs folders 2014-08-23 10:48:10 +02:00
MrPerson 8cabe95aac Fixes some issues with mechs getting deleted
Mechs delete correctly, and delete their special looping iterator datums just for good measure. Also now sanity check them because now they can be null.

Fixes #4067 hopefully. This issue is impossible to repro alone and even then it's one-in-a-million, but I've removed a bunch of spawn()s that only served to create a window one can jump inside between the mech running the deletion proc and actually running Destroy() and setting loc = null. I've also added two safeguards to make sure it doesn't happen in the future. Can't enter a deleted mech and getting deleted kicks anyone inside out just to be sure.

Removed the super pointless obj/mecha/proc/destroy(). Even when this was written, it should have just been in Del()!
2014-07-10 03:37:15 -07:00
Cheridan ffb06c029a mechs are stompy again 2014-05-19 12:09:13 -05:00
ikarrus 81f2140fd2 Hulk Wall-Smashing Sounds
Added sounds for wall-smashing.
2014-04-29 21:20:08 -06:00
Mloc-Hibernia 8af8a43d6f Initial pass to convert LF to CRLF
Signed-off-by: Mloc-Hibernia <colmohici@gmail.com>
2014-03-24 08:53:40 +00:00
MrPerson 6930283efc Merge branch 'master' of https://github.com/tgstation/-tg-station into qdel_r
Conflicts:
	code/game/gamemodes/changeling/changeling_mutations.dm
	code/game/gamemodes/changeling/changeling_powers.dm
	code/game/gamemodes/malfunction/Malf_Modules.dm
	code/game/objects/items/weapons/tanks/watertank.dm
	code/game/objects/structures/tables_racks.dm
	code/modules/research/server.dm
2014-03-21 03:05:39 -07:00
Aranclanos b1a489ac07 Merge pull request #3000 from Cheridan/3000
adds the mime mech
2014-03-10 23:21:34 -02:00
fleure bb2ca0f901 Merge pull request #3012 from Miauw62/goodbyecreed
Removes creed access from the game.
2014-03-11 00:27:15 +00:00
MrPerson 6b29fecda1 Merge branch 'master' of https://github.com/tgstation/-tg-station into qdel_r
Conflicts:
	code/game/machinery/bots/ed209bot.dm
	code/game/machinery/rechargestation.dm
	code/game/machinery/turrets.dm
	code/game/objects/structures/crates_lockers/closets.dm
	code/modules/research/circuitprinter.dm
2014-03-08 22:03:03 -08:00
Cheridan deeb79717e typo what typo i do not make mistakes of zat kind 2014-03-07 21:24:20 -06:00
Cheridan 888e5fbe61 mime mech needs theater access
obviously
2014-03-06 16:30:04 -06:00
Miauw 1c629bcd69 Removes creed access from the game. 2014-03-06 20:00:28 +01:00
Cheridan c67bcfa19c support for alternate mecha step sounds
better sprites and code for mime mecha
2014-03-05 19:59:13 -06:00
Cheridan 7ea56ca131 adds the mime mech 2014-03-05 18:06:56 -06:00
Razharas c548df264b Conflict fix 2014-03-05 06:30:29 +04:00
Cheridan d4c81ce247 Merge pull request #2936 from MrPerson/jitterbug_dizzydummies
Redo of jitteriness and dizziness.
2014-03-03 11:35:27 -06:00
MrPerson 3c58091437 Merge branch 'master' of https://github.com/tgstation/-tg-station into qdel
Hopefully nothing went wrong but you never know.

Conflicts:
	code/FEA/FEA_fire.dm
	code/controllers/supply_shuttle.dm
	code/game/gamemodes/changeling/changeling_powers.dm
	code/game/machinery/autolathe.dm
	code/game/machinery/drying_rack.dm
	code/modules/hydroponics/hydroponics.dm
	code/modules/projectiles/projectile/magic.dm
	code/modules/reagents/Chemistry-Recipes.dm
	code/modules/reagents/reagent_dispenser.dm
2014-03-02 21:39:27 -08:00
Razharas 2fd5557682 Conflict fix 2014-03-02 04:14:32 +04:00
MrPerson 48923f9ce5 Redo of jitteriness and dizziness.
Fixes #2923
2014-02-27 23:19:44 -08:00
hornygranny 84a6aeae05 Some mecha slightly slower 2014-02-27 11:58:25 -08:00
Razharas b27d9c7396 Added RPED, some sprites and new power cell path
Your dreams of big part storage and fast machine part exchange came true
14 slot R&D part-only autoseeker/picker/dropper/exchager is in
Added different sprites for better capacitors and scanning modules
Changed the power cell type to be compatible with all this machine
changing faggotry
All sprites here are codersprites so ask nien/WJ for better ones if you
want
2014-02-24 05:14:43 +04:00