action buttons

This commit is contained in:
Certhic
2018-11-03 10:57:19 +01:00
parent 2c0def4a82
commit 6381d15525
4 changed files with 44 additions and 93 deletions
-1
View File
@@ -319,7 +319,6 @@ Recharging stations are available in robotics, the dormitory bathrooms, and the
/obj/screen/alert/nymph
name = "Gestalt merge"
desc = "You have merged with a diona gestalt and are now part of it's biomass. You can still wiggle yourself free though."
icon_state = "nymph"
/obj/screen/alert/nymph/Click()
if(!usr || !usr.client)
-78
View File
@@ -1,78 +0,0 @@
/* Diony Nymph HUD */
/mob/living/simple_animal/diona/create_mob_hud()
if(client && !hud_used)
hud_used = new /datum/hud/diona(src)
/datum/hud/diona/New()
..()
static_inventory += diona_button(new /obj/screen/diona/blood())
static_inventory += diona_button(new /obj/screen/diona/merge())
static_inventory += diona_button(new /obj/screen/diona/evolve())
toggleable_inventory += new /obj/screen/diona/intent()
datum/hud/diona/proc/diona_button(var/obj/screen/diona/D)
var/obj/screen/diona/button/B = new /obj/screen/diona/button
B.overlays += D
B.master = D
B.screen_loc = D.screen_loc
return B
/obj/screen/diona/button
icon = 'icons/mob/actions.dmi'
icon_state = "bg_default"
/obj/screen/diona/button/Click(location, control, params)
return usr.client.Click(master, location, control, params)
/obj/screen/diona/intent
name = "Intent"
icon_state = "help"
icon = 'icons/mob/screen_simplemob.dmi'
screen_loc = ui_acti
/obj/screen/diona/intent/Click()
if(isnymph(usr))
var/mob/living/simple_animal/diona/N = usr
if(N.a_intent == INTENT_HELP)
N.a_intent = INTENT_HARM
else
N.a_intent = INTENT_HELP
icon_state = N.a_intent
/obj/screen/diona/blood
icon = 'icons/obj/bloodpack.dmi' //borrowing an icon
icon_state = "full"
name = "Steal blood"
desc = "Take a blood sample from a suitable donor."
screen_loc = ui_rhand
/obj/screen/diona/blood/Click()
if(isnymph(usr))
var/mob/living/simple_animal/diona/N = usr
N.steal_blood()
/obj/screen/diona/merge
icon = 'icons/mob/human_races/r_diona.dmi' //borrowing an icon
icon_state = "preview"
name = "Merge with gestalt"
desc = "Merge with another diona."
screen_loc = ui_lhand
/obj/screen/diona/merge/Click()
if(isnymph(usr))
var/mob/living/simple_animal/diona/N = usr
N.merge()
/obj/screen/diona/evolve
icon = 'icons/obj/cloning.dmi' //borrowing an icon
icon_state = "pod_1"
name = "Evolve"
desc = "Grow to a more complex form."
screen_loc = ui_storage1
/obj/screen/diona/evolve/Click()
if(isnymph(usr))
var/mob/living/simple_animal/diona/N = usr
N.evolve()
@@ -32,30 +32,62 @@
melee_damage_upper = 8
attacktext = "bites"
attack_sound = 'sound/weapons/bite.ogg'
var/chirp_sound = 'sound/misc/nymphchirp.ogg'
var/chirp_sound = 'sound/misc/nymphchirp.ogg' //used in emote
speed = 0
stop_automated_movement = 0
turns_per_move = 4
var/list/donors = list()
var/ready_evolve = 0
holder_type = /obj/item/holder/diona
can_collar = 1
can_collar = TRUE
a_intent = INTENT_HELP
var/gestalt_alert = "merged with gestalt"
var/evolve_donors = 5
var/awareness_donors = 3
var/nutrition_need = 500
var/gestalt_alert = "merged with gestalt" //used in adding and clearing alert
var/evolve_donors = 5 //amount of blood donors needed before evolving
var/awareness_donors = 3 //amount of blood donors needed for understand language
var/nutrition_need = 500 //amount of nutrition needed before evolving
var/datum/action/innate/diona/merge/merge_action = new()
var/datum/action/innate/diona/evolve/evolve_action = new()
var/datum/action/innate/diona/steal_blood/steal_blood_action = new()
/datum/action/innate/diona/merge
name = "Merge with gestalt"
icon_icon = 'icons/mob/human_races/r_diona.dmi'
button_icon_state = "preview"
/datum/action/innate/diona/merge/Activate()
var/mob/living/simple_animal/diona/user = owner
user.merge()
/datum/action/innate/diona/evolve
name = "Evolve"
icon_icon = 'icons/obj/cloning.dmi'
button_icon_state = "pod_1"
/datum/action/innate/diona/evolve/Activate()
var/mob/living/simple_animal/diona/user = owner
user.evolve()
/datum/action/innate/diona/steal_blood
name = "Steal blood"
icon_icon = 'icons/obj/bloodpack.dmi'
button_icon_state = "full"
/datum/action/innate/diona/steal_blood/Activate()
var/mob/living/simple_animal/diona/user = owner
user.steal_blood()
/mob/living/simple_animal/diona/New()
..()
if(name == initial(name)) //To stop Pun-Pun becoming generic.
name = "[name] ([rand(1, 1000)])"
real_name = name
add_language("Rootspeak")
merge_action.Grant(src)
evolve_action.Grant(src)
steal_blood_action.Grant(src)
/mob/living/simple_animal/diona/UnarmedAttack(var/atom/A)
if(isdiona(A) && (src in A.contents)) //can't attack your gestalt
@@ -78,7 +110,7 @@
else
get_scooped(M)
/mob/living/simple_animal/diona/proc/merge() //called by the hud (/obj/screen/diona/merge)
/mob/living/simple_animal/diona/proc/merge()
if(stat != CONSCIOUS)
return FALSE
@@ -107,7 +139,7 @@
else
return FALSE
/mob/living/simple_animal/diona/proc/split() //called by the hud (obj/screen/alert/nymph)
/mob/living/simple_animal/diona/proc/split()
if((stat != CONSCIOUS) || !isdiona(loc))
return FALSE
var/mob/living/carbon/human/D = loc
@@ -128,7 +160,7 @@
clear_alert(gestalt_alert)
return TRUE
/mob/living/simple_animal/diona/proc/evolve() //called by the hud (/obj/screen/diona/evolve)
/mob/living/simple_animal/diona/proc/evolve()
if(stat != CONSCIOUS)
return FALSE
@@ -168,7 +200,7 @@
qdel(src)
return TRUE
/mob/living/simple_animal/diona/proc/steal_blood() //called by the hud (/obj/screen/diona/blood)
/mob/living/simple_animal/diona/proc/steal_blood()
if(stat != CONSCIOUS)
return FALSE
@@ -208,7 +240,6 @@
return FALSE
if(donors.len == evolve_donors)
ready_evolve = 1
to_chat(src, "<span class='noticealien'>You feel ready to move on to your next stage of growth.</span>")
else if(donors.len == awareness_donors)
universal_understand = 1
-1
View File
@@ -128,7 +128,6 @@
#include "code\_onclick\hud\alien_larva.dm"
#include "code\_onclick\hud\bot.dm"
#include "code\_onclick\hud\constructs.dm"
#include "code\_onclick\hud\diona_nymph.dm"
#include "code\_onclick\hud\fullscreen.dm"
#include "code\_onclick\hud\guardian.dm"
#include "code\_onclick\hud\hud.dm"