Commit Graph

32 Commits

Author SHA1 Message Date
AnturK
52a99c09d6 Uppercase slot defines 2018-04-27 10:38:32 +02:00
AnturK
beea82aca9 Fixes monkey ui slots 2017-04-02 21:35:14 +02:00
coiax
7554b5f454 Language datums; removes the talk wheel (#25333)
* Initial burst of languages

* Scratchings of beginnings

* Code review I

* Compilation!

* You can now understand your own speech

* Fixes whispering

* Gets typecaches working again

* Remie's `PASS`ing

* Back to pass() to stop the compiler whining

* Why can't drones check their languages

* Everyone speaks how they should

* Removes world string debug stuff

* Currently failing to massage radio code into working

* The radio transmits the languages!

* ,0 to talk common

* Replaces speech wheel with language menu

* Observers can speak all languages

* pAIs now speak languages FOREVER

* New action button for language menu

* pAIs have an action button to open their language menu

* AIs can talk and all that

* AIs have a language menu button

* Fixes supermatter making strange noises

* Fixes AI holopads

* Fixes request consoles

* Fixes bots making strange sounds

* Meaningless MMI change

* Some caching of datums

* Brains in MMIs speak common

* Ratvarian AIs can only speak Ratvarian

* Tables can speak common, apparently

* Removes var in args

* Fixes the (AI Eye) problem

Thanks to Shadowmobile for their help with this one.

* Fixes tape recorders

* Fixes humans being able to speak in languages they did not know

* Adds some new posibrain names

Honk.

* The voice analyzer replies in the language you spoke to it

* Gives swarmers only swarmer language

* `initial_languages` var.

* OMNITONGUE, clockwork restrictions

* Fixes barmaid and bardrone language abilities

* Code review I

* Omnitongue correction

* Code review II

* Removes force_compose var
2017-04-02 21:03:40 +02:00
c0
6f2ca062f1 Refactors action intent selectors, adds support for simple mobs having more than one intent 2017-01-27 14:15:56 +03:00
Mervill
55e8396926 persistant -> persistent (#22072) 2016-12-10 05:44:48 -05:00
Mervill
481cc07dcf m_intent now uses defines 2016-12-03 00:25:44 -08:00
chowdermcarthor
c7e474ccae Neck Slots (#21169)
* Added in a neckslot. Moved some tie items over to said neckslot.

* Changng some stuff to fix the new neckslot items.

* no message

* Altered comment to say that the old tie system is being kept as-is due to armbands and such instead of just avoiding conflicts.

* no message

* Changed the number for this.

* Fixed jaws of life not having a category, thus they only would show up when searched.
2016-10-26 19:03:41 +13:00
phil235
143e4ce172 Made the wheel system generic, so future coders can make different wheel types.
I gave the talk wheel to aliens, monkeys and cyborgs.
2016-09-16 14:45:05 +02:00
Remie Richards
00738bd2a3 More than 2 hands!? WHAAAAAAT 2016-09-02 16:10:16 +01:00
c0
24c6d8e876 feature -> refactor 2016-03-30 03:27:28 +03:00
c0
f71ab62e79 HUD item slots no longer show item placeholders when there are actual items inside 2016-03-22 08:00:38 +03:00
phil235
fdec37b76f Merge branch 'master' of https://github.com/tgstation/-tg-station into VisionUpdateRefactor
Conflicts:
	code/_onclick/hud/alien.dm
	code/_onclick/hud/alien_larva.dm
	code/_onclick/hud/hud.dm
	code/_onclick/hud/human.dm
	code/_onclick/hud/monkey.dm
	code/_onclick/hud/other_mobs.dm
	code/_onclick/hud/robot.dm
	code/game/machinery/Sleeper.dm
	code/modules/mob/living/carbon/alien/larva/death.dm
	code/modules/mob/living/carbon/brain/death.dm
	code/modules/mob/living/carbon/human/death.dm
	code/modules/mob/living/carbon/human/life.dm
	code/modules/mob/living/carbon/human/species.dm
	code/modules/mob/living/carbon/life.dm
	code/modules/mob/living/carbon/monkey/death.dm
	code/modules/mob/living/death.dm
	code/modules/mob/living/life.dm
	code/modules/mob/living/silicon/ai/death.dm
	code/modules/mob/living/silicon/ai/life.dm
	code/modules/mob/living/silicon/ai/login.dm
	code/modules/mob/living/silicon/pai/death.dm
	code/modules/mob/living/silicon/robot/death.dm
	code/modules/mob/living/silicon/robot/robot.dm
	code/modules/mob/mob_defines.dm
2016-02-06 15:42:13 +01:00
Bjorn Neergaard
7a47b43c53 Re-implement screen overlays
This fixes 510 showing all overlays in the rightclick menu
2016-02-04 17:19:44 -06:00
Bjorn Neergaard
063dd9fb84 Get the code running on 510
* Travis for 510
* Remove json, list2text, text2list, bygex
* Change blind and click catcher to a low plane
2016-02-04 17:19:40 -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
Razharas
cdc32a50c3 Made special object instead of using blindscreen
Made special object instead of using blindscreen
2015-06-06 07:10:46 +03:00
Razharas
fea00718a0 Made swap hands use screen object
Made swap hands use screen object
Also now blindness is restricting your ability to click
You can shoot at darkness now, it calculates the turf you want to shoot
Added toggleable verb into the prefs tab for autoclick
Made proc that calculates turf from screen loc and origin turf
2015-06-04 07:47:20 +03:00
Remie Richards
5b20448e2b Monkeys can now wear hats! Monkeys can now also wear all masks, instead of the select few they had icons for (which have been removed, since they are no longer needed) 2015-03-26 15:23:52 +00:00
MrPerson
e7ba8df654 Moved all pull icon updating to update_icon(), to reduce copy+paste.
Made the pull icon update_icon() as part of creation as requested by oranges.
2015-03-13 12:10:13 -07:00
MrPerson
24dcf08b2e Merge branch 'master' of https://github.com/tgstation/-tg-station into alert_alert_ur_a_faget
Conflicts:
	code/modules/mob/living/carbon/alien/humanoid/life.dm
	code/modules/mob/living/carbon/alien/larva/life.dm
	code/modules/mob/living/carbon/alien/life.dm
	code/modules/mob/living/carbon/monkey/life.dm
	icons/mob/screen_alien.dmi
2015-03-02 12:04:38 -08: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
phil235
c8b0a21baa Fixes a lot of duplicated code in life and its subprocs for carbon mobs.
Fixes cyborg and monkeys no seeing any flash when flashed.
2015-02-21 00:37:04 +01:00
tkdrg
3752254766 Revert "Adds mouse pointers for different ui styles" 2014-12-31 02:17:50 -03:00
paprka
56d54d1294 Added changelog and fixes compile errors with preferences 2014-12-28 18:24:53 -08:00
paprka
2e8907ed4c adds a preference for custom pointers 2014-12-28 18:13:48 -08:00
paprka
5b9a831a90 adds mouse pointers for different ui styles 2014-12-27 03:06:55 -08:00
JJRcop
2dabc8fd39 Turns /obj/screen/Click() into subtypes 2014-10-30 15:49:38 -04:00
Menshin
8beda90c81 * Added a "stop pulling" button to monkeys and alien larva
* Make aliens use their hud "intent button".
* Make monkeys use the current selected (e.g midnight) hud "intent button".
2014-05-28 16:28:53 +02:00
errorage
c89f3b83d0 Adds framework for multiple UI styles for humans, with a no-UI mode being the first example. Also makes all mobs' UIs scalable.
- Rewrote all UI element positions to use values that are anchored to NORTH, SOUTH, EAST, WEST and CENTER instead of absolute numbers. Changing view range now no longer messes up the UI.
Screenshots:
http://www.ss13.eu/uiscaling_human.png (human)
http://www.ss13.eu/uiscaling_borg.png (cyborg)
http://www.ss13.eu/uiscaling_alien.png (alien)
http://www.ss13.eu/uiscaling_monkey.png (monkey)
- Changing the view range no longer messes up shortsightedness and welding mask dither effects
Screenshots:
http://www.ss13.eu/uiscaling_welding.png (welding mask)
http://www.ss13.eu/uiscaling_shortsight.png (shortsightedness)
- The flash overlay now covers the entire screen no matter what the view range is
- The damage overlay and blindness overlay are now centered even if you change the view range. They are however images of a fixed size, so they only cover a part of the screen. This one is better than it was, but still 'imperfect'. I'm guessing we'll have to wait until we switch to byond 500 for a better solution to this.
Screenshot:
http://www.ss13.eu/uiscaling_dead.png (critical condition)
- Pressing F12 now no longer only switches between the standard and a reduced overlay, it cycles through all available UI styles, of which there are currently three: Standard UI, reduced UI and no UI (intended for taking screenshots while alive). Note that this does not remove the blindness, damage and flash overlays, it however removes all damage indication icons (like suffocation, fire damage, etc)
Screenshot:
http://www.ss13.eu/uiscaling_blank.png (no UI)
2013-12-29 12:04:37 +01:00
Miauw
2b6046feb8 Fixed #1830 Monkeys now have a resist button on their HUD. 2013-12-22 16:36:26 +01:00
Razharas
e6eab9b7e9 Rewrote stings
Stings are now special cases of carbons' clicks
All the problems with stings-items were solved automatically by this
Clicking the ability sets your active sting
Currently active sting is shown on the UI
Changed sting icons to fit the UI
Clicking other ability will reset the active sting to the new one
Added "retract stinger" ability so you can get rid of any active sting
Added autoequip of items below you if you go from monkey to human form
as ling
Added commented-out greater form, just because
Monkeys now have chem counter in their UI just like humans
Monkeys have active sting icon in UI as well
Hope its not too much commits for one pull request
Also changed some of the previous additiong to ABSTRACT items in
show_inv
2013-11-21 20:36:08 +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