Commit Graph

36 Commits

Author SHA1 Message Date
Remie Richards
1cb1e7bfa8 Merge pull request #15766 from GunHog/WJohnston's_How_To_Nerf_Your_Xeno
Xenos now suffer when the queen dies.
2016-03-02 17:34:45 +00:00
GunHog
379eb3c04f Queen death vulnerability
- The alien queen's death will now severely weaken the remaining alien
forces.

- Disables Hivemind and Evolving for 4 minutes.

- Confuses and cripples aliens for a short while.

- New screen alert to serve as a reminder! Sprite by WJohn!
2016-02-25 21:13:27 -06:00
duncathan salt
aa707c13a1 Merge pull request #15138 from bgobandit/tooltips
Edited tooltip text for accuracy and grammar.
2016-02-10 21:19:57 -06:00
phil235
81ce777ec2 - you now only see turfs when inside gas pipes.
- I renamed some vars of datum/hud to be more selfexplanatory
- Moved all datum/hud mob code into the hud folder.
- fixed alien's zone selection button not using the correct sprites.
- I removed the update_hud() proc (that needed to be removed).
- Fixed a typo in /mob/living/carbon/ContractDisease , using "internals" instead of "internal" (very different things)
- Fixed doTeleport() calling Entered() twice on the destination area.
- To reference a mob's selected zone, you now use a direct mob var ("H.zone_selected" instead of "H.zone_sel.selecting")
- mobs lose certain screen objects var ("healths", "zone_sel", "internals", etc) which are now vars of the mob's datum/hud instead.
- the Blind spell is now done via the blind mutation instead of the blind disabilities.
- Give to mobs a version of forceMove(), so the mob is always properly unbuckled, his pull stopped, his vision updated, etc.
- The "user" var of mob/camera/aiEye/remote is renamed to "eye_user" to avoid confusion.
- reset_view() is replaced by reset_perspective(). Now all changes to client.eye and client.perspective are done with this proc.
- I reworked /obj/machinery/computer/security code, changing camera is instantaneous now, as well as cancelling.
- I reworked /obj/machinery/computer/camera_advanced code as well.
- I changed /obj/item/mecha_parts/mecha_equipment/mining_scanner's meson view to be constant instead of by intermittent.
- Fixes not being able to use /obj/item/device/camera_bug while buckled.
- removed admin_forcemove() proc, admin force moving now uses forceMove() simply.
- Removed the client var "adminobs"
- Added var/vision_correction to glasses.
- Added a thermal_overload() proc for glasses, to remove copypasta in emp_act code.
- Remove the hal_crit mob var
- We no longer delete the mob's hud everytime he logs in.
- Added a stat == dead check in mob's metabolize() so we immediately stop metabolizing if one of the chem kills the mob.
- Being inside disposal bin lowers your vision, like wearing a welding helmet.
- removed the remote_view mob var.
- I changed advanced camera EYE, some fixes, removed unnecessary code when the eye moves, now the mob client eye properly follows the camera mob.
- fixes mob var "machine" not being nullified on logout.
- larva/death() was calling two "living_mob_list -= src"
- I made the Blind screen objects into a global_hud instead of giving one to each mob (like damage overlay).
- I untied tint and eye_blind, TINT_BLIND doesn't give you eye_blind=1.
- gave a visual overlay when inside locker (vimpaired)
- when inside disposal/gas pipes you get sight |= (BLIND|SEE_TURFS)
- glasses toggling updates (atmos meson toggle): DONE
- The new adjust procs serve to properly change eye_blind etc and call vision update procs when needed.
- I added an on_unset_machine() proc to handle perspective reset for camera consoles.
- I moved consequences of eye_check fail inside eye_check() procs themselves.
- I fixed vision updates being fucked by forceMove, especially pipe vision.
- I decided that damage overlay not appearing when dead.
- mob's hud_used is no longer deleted on each login()
- I refactored mob huds a bit, creating subtypes for each mob (/datum/hud/human)
- f12's hud toggling is now available to all mobs
- gave borgs a low_power_mode var so unpowered borg do not use stat= UNCONSCIOUS (which made things weird since you were unconscious but not blind)
- Fixed double Area entering when forced teleporting.
- I fixed larva pulling not being broken when cuffing them, and larva not seeing handcuff alert (and they can resist by clicking it)
- I removed pull updates from life() since it onyl checked for puller's incapacitation.
- I renamed camera/deactivate() to toggle_cam() to be more accurate.
- I fixed mmi brain being immortal (by removing the brain and putting it back)
- I simplified mmi brain emp damage.
2016-02-04 00:33:16 +01:00
bgobandit
ea196989b4 moar editing 2016-02-01 18:30:35 -05:00
bgobandit
d2d57957d7 Edited tooltip text. 2016-02-01 17:40:43 -05:00
AnturK
e82df904da Alert Fixes 2016-01-15 13:48:10 +01:00
swankcookie
5328dc8271 added "breath" 2015-12-12 17:43:01 -06:00
swankcookie
b95c5e6c00 removed "gas" 2015-12-12 16:39:08 -06:00
Tkdrg
88f64c607e Ghost HUD tweaks
Removes links in tooltips. Makes alerts work as clicks when applicable.

Fixes #12843
Fixes #12844
2015-11-08 22:53:41 -03:00
xxalpha
c313bd2c46 Fixed buckled, handcuffed and legcuffed alert buttons not calling resist. 2015-11-02 18:57:52 +00:00
kingofkosmos
2c0f178e31 Embedded object -alert can be clicked to remove the object.
When handcuffed, a handcuffed-alert appears and clicking it is the same as clicking on resist. Same with legcuffing.
Moving in a Suit Storage Unit or welded/locked locker or morgue tray is now the equivalent of pressing resist.
2015-10-28 21:10:50 +02:00
Razharas
9357602233 Merge pull request #12665 from tkdrg/ghost_medsechuds
[READY] Adds a ghost on-screen HUD
2015-10-28 05:19:19 +03:00
Tkdrg
dd20530f0e Adds ghost alerts.
Adds ghost alerts for revival (cloning, MMIs, nar-sie, drones, etc).
2015-10-27 23:07:41 -03:00
Razharas
39d861cf44 Merge pull request #12043 from kingofkosmos/firescreenalert
Screen alert for being on fire
2015-10-26 19:17:40 +03:00
Remie Richards
2ad13eea59 Updates ToolTips system to V1.1, by Wirewraith 2015-10-22 21:40:16 +01:00
Remie Richards
124fc81cdb Adds tooltips to Screen Alerts, showing their name and their helptext, shift-click remains in in-case you want the information without keeping your mouse over the alert. 2015-10-21 13:23:49 +01:00
kingofkosmos
a733924782 Makes fire screen alert resist when you click on it + fixes few typos. 2015-10-16 21:05:37 +03:00
kingofkosmos
f52dd1cb1f Merge branch 'master' of https://github.com/tgstation/-tg-station into firescreenalert 2015-10-16 19:43:34 +03:00
MrPerson
610483ea1e Mild rewrite of screen alerts to enable more functionality
Specifically I wanted to allow #12043 to correctly implement clicking an "on fire" alert to call resist without affecting other alerts which is currently impssible. Plus this whole mess was stupid and bothering me so here we go.
2015-10-13 17:16:23 -07:00
duncathan
4475824890 fixes #12143 2015-10-04 07:33:32 -06:00
kingofkosmos
a3b7625c96 Adds "On Fire" screen alert. Resists when you click it.
Adds a warning-message when you try to help-intent someone who's on fire.
Makes fire spread from burning people who are lying down take 2 seconds if you stand on top of them. Spreading is immediate if you're covered in flammable stuff.
2015-09-27 12:33:26 +03:00
Jordie
9fbabcc305 Merge pull request #10798 from MrPerson/exceptions_to_help_phil_fix_potential_bugs_and_also_aran_maybe
Change many ERROR() calls into thrown exceptions
2015-07-25 19:22:46 +10:00
MrPerson
471d69fcf7 Change many ERROR() calls into thrown exceptions
This requires a 508 beta version to use. If Travis fails this he's a bitch

Exceptions will generate a stack trace, which is way easier to see and more helpful in actually solving this kind of crap. Also logs all the arguments, src, line, and file automatically.
Removed any dubiously helpful information in the exception names so the runtime condenser won't see each one as a different runtime. If the information is critical to solve these bugs (camera one maybe?), then I'll just make these warnings.
Thrown exceptions crash the currently running proc. Yes that means there's useless returns in a bunch of these, sue me. spawn()'s are to let the proc continue.

Almost all of these are difficult to trigger, but I did test playsound. And frankly even if they do cause bugs by crashing procs, big whoop
2015-07-23 08:19:08 -07: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
MrPerson
9dc713ba9c Merge branch 'master' of https://github.com/tgstation/-tg-station into screen_alert_2
Conflicts:
	code/_onclick/hud/alert.dm
	code/game/objects/items.dm
	code/modules/mob/living/carbon/human/human.dm
	icons/mob/screen_alert.dmi
2015-06-09 03:23:18 -07:00
Cheridan
78e25c3175 Merge pull request #9220 from RemieRichards/PlasmaaaaaaaMeeeeeeen
Ports VG's Plasmamen + Species breathing additions
2015-05-04 00:19:18 -05:00
MrStonedOne
702181e605 git rebase mishap fix part 2 2015-04-29 02:35:36 -07:00
MrStonedOne
2f0db5c46e Rebase mishap fix part 1 2015-04-29 02:34:40 -07:00
MrStonedOne
9d78b82ddc Makes hud/alert's destroy request obj pooling 2015-04-29 02:30:50 -07: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
Remie Richards
e9363ef31a Fixes alert feedback typo 2015-04-28 21:36:55 +01:00
Remie Richards
fca3c0bdb5 Adds Plasmamen! Adds the ability for species to breathe other gases! 2015-04-28 20:48:14 +01:00
MrPerson
8f0cda1afa More screen alerts
High (uses "Hallucinating" icon), blind, embedded objects, asleep, weightlessness, new law (silicons), hacked (cyborgs), and locked down (cyborgs). The new law alert times out on its own after 30 seconds. The code for timing out is rough but works.

Sprites are provided by ZyloWalsh and can be seen at https://tgstation13.org/phpBB/viewtopic.php?f=11&t=3167
Drunk isn't in atm because I was waiting on phil to finish some reagent stuff. Hallu kind of ruined the "surprise" so I decided not to use it. Weaken/stun/paralysis are also not in right now because I'm lazy. All the sprites are included even if they're unused.

Added a proc human/has_embedded_objects() that returns 1 if src has any objects embedded in any limbs.
2015-04-18 16:54:36 -07:00
phil235
71d560bd3a Fixes a runtime with buckling screen alert
Fixes being able to buckle to janicart while crit and when there's a dense object on the janicart's turf.
Fixes alien nest not buckling and being wrongly pixel shifted, and fixed a runtime.
Fixes golems being super easy to weaken by punch and not doing more damage themselves via punch.
Fixes some typos.
2015-03-09 19:09:52 +01:00
MrPerson
8ffbc1be14 On screen alert system
Replaces some of the hardcoded HUD icons defined at mob level with a pair of mob procs throw_alert() and clear_alert(). Alerts will appear on the top-right side of the screen.
You can shift-click alerts to get a description of what's wrong and sometimes a tip on how to solve the alert.

Alerts can be given a master, which overlays the master on top of a box and forwards clicks of the alert to that master. Getting buckled will put an alert of what you're buckled to, for example. If it's a chair, you just click the alert and you're unbuckled. The idea I'm shooting for is to replace resist entirely with this kind of stuff.

Making a new alert and using it is a little complicated. This explanation will suck, but this is simpler than I'm making it sound, I promise. Throw_alert() has 4 args, category, id, severity, and obj/new_master. If you don't supply an id, category will be used as id. Only 1 alert per category is allowed; any duplicate will be replaced. Additionally clear_alert() clears alerts by category. Id MUST match a type path of /obj/screen/alert/[id]. That type path is where the alert's name and desc come from. The icon_state of the alert will either be "template" if new_master is set or [id][severity] otherwise. new_master is totally optional.

Examples:
throw_alert("oxy") -- takes name/desc of obj/screen/alert/oxy, icon_state = "oxy" -- clear_alert("oxy")
throw_alert("nutrition","fat") -- takes name/desc of obj/screen/alert/fat, icon_state = "fat" -- clear_alert("nutrition")
throw_alert("nutrition","starving") -- takes name/desc of obj/screen/alert/starving, icon_state = "starving" -- clear_alert("nutrition")
throw_alert("temp","cold",1) -- takes name/desc of obj/screen/alert/cold, icon_state = "cold1" -- clear_alert("temp")
throw_alert("temp","cold",3) -- takes name/desc of obj/screen/alert/cold, icon_state = "cold3" -- clear_alert("temp")

If you pass a new_master, id is only used to get name/desc and still must match a path, but the icon_state is "template" and icon is from the mob's ui preference instead of icons/mob/screen_alert.dmi.

Several unused icons removed, like borg oxygen and temperature alerts. Also some icons were used but now are not and were removed, like the nutrition icon for being well-fed and cyborg charge icon for being fully charged.
2015-03-01 17:31:26 -08:00