Action Button Update

- Refactors action button backend
   - Action buttons are no longer checked on Life(), items are responsible
     for adding/removing/updating them.
   - Item action buttons are no longer a static action_button_name define,
     items define actions_types, which is a list of paths.
   - Items can now have multiple action buttons.
     - This is handled by new arguments to ui_action_click, the first
       parameter is the user, the second is the path of the action datum
       that was invoked.
 - Refactored how internals function
   - You may now directly switch internals without breaking anything.
   - The internals icon has been updated to be more consistent.
 - Added action buttons for jetpacks
 - Added action buttons for oxygen tanks
 - Uses-based implants now qdel() themselves when they run out of uses.
   This is somewhat a buff to traitor implants, but it's such a minor
   change. The actual reasoning is so that the action buttons are properly
   removed.
 - Fixed a bug with the "Boo" spell which resulted in IsAvailable failing
   for certain ghosts.
 - You can now shift-click on movable HUD elements to reset them to the
   proper position (thank fucking christ)
This commit is contained in:
Tigercat2000
2016-07-18 13:15:26 -07:00
parent 00558bd109
commit 56a09db739
97 changed files with 1230 additions and 1022 deletions
+4 -4
View File
@@ -297,11 +297,11 @@
var/turf/T = get_turf(holder.my_atom)
T.visible_message("<span class='warning'>The solution generates a strong vapor!</span>")
for(var/mob/living/carbon/C in range(T, 1))
if(!(C.wear_mask && (C.internals != null || C.wear_mask.flags & BLOCK_GAS_SMOKE_EFFECT)))
if(C.can_breathe_gas())
C.emote("gasp")
C.losebreath++
C.reagents.add_reagent("toxin",10)
C.reagents.add_reagent("neurotoxin2",20)
C.reagents.add_reagent("toxin", 10)
C.reagents.add_reagent("neurotoxin2", 20)
/datum/chemical_reaction/saltpetre
name = "saltpetre"
@@ -438,7 +438,7 @@
var/turf/T = get_turf(holder.my_atom)
T.visible_message("<span class='warning'>The solution generates a strong vapor!</span>")
for(var/mob/living/carbon/C in range(T, 1))
if(!(C.wear_mask && (C.internals != null || C.wear_mask.flags & BLOCK_GAS_SMOKE_EFFECT)))
if(C.can_breathe_gas())
C.reagents.add_reagent("jenkem", 25)
/datum/reagent/jenkem
+4 -4
View File
@@ -240,8 +240,8 @@
var/turf/T = get_turf(holder.my_atom)
T.visible_message("<span class='warning'>The solution generates a strong vapor!</span>")
for(var/mob/living/carbon/C in range(T, 1))
if(!(C.wear_mask && (C.internals != null || C.wear_mask.flags & BLOCK_GAS_SMOKE_EFFECT)))
C.reagents.add_reagent("cyanide",7)
if(C.can_breathe_gas())
C.reagents.add_reagent("cyanide", 7)
/datum/reagent/itching_powder
name = "Itching Powder"
@@ -672,8 +672,8 @@
var/turf/T = get_turf(holder.my_atom)
T.visible_message("<span class='warning'>The solution generates a strong vapor!</span>")
for(var/mob/living/carbon/C in range(T, 2))
if(!(C.wear_mask && (C.internals != null || C.wear_mask.flags & BLOCK_GAS_SMOKE_EFFECT)))
C.reagents.add_reagent("sarin",4)
if(C.can_breathe_gas())
C.reagents.add_reagent("sarin", 4)
/datum/reagent/sarin/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom