From 80a341d6a7e19856343105ce7e15b6862121a0f8 Mon Sep 17 00:00:00 2001 From: Certhic Date: Sun, 28 Oct 2018 15:10:43 +0100 Subject: [PATCH 1/4] nympphs fixes and gui --- code/__DEFINES/mobs.dm | 3 +- code/_onclick/hud/alert.dm | 14 ++ code/_onclick/hud/diona_nymph.dm | 68 +++++++++ .../living/simple_animal/friendly/diona.dm | 143 +++++++++--------- icons/mob/screen_alert.dmi | Bin 40571 -> 42674 bytes paradise.dme | 1 + 6 files changed, 156 insertions(+), 73 deletions(-) create mode 100644 code/_onclick/hud/diona_nymph.dm diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 580cb85d696..7412568704d 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -177,8 +177,7 @@ #define isbot(A) (istype((A), /mob/living/simple_animal/bot)) #define isswarmer(A) (istype((A), /mob/living/simple_animal/hostile/swarmer)) #define isguardian(A) (istype((A), /mob/living/simple_animal/hostile/guardian)) - - +#define isnymph(A) (istype((A), /mob/living/simple_animal/diona)) #define issilicon(A) (istype((A), /mob/living/silicon)) #define isAI(A) (istype((A), /mob/living/silicon/ai)) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index a187dfe3648..78d297848e4 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -315,6 +315,20 @@ Recharging stations are available in robotics, the dormitory bathrooms, and the desc = "Unit's power cell is running low. Recharging stations are available in robotics, the dormitory bathrooms, and the AI satellite." icon_state = "lowcell" +//Diona Nymph +/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) + return + else + if(istype(usr, /mob/living/simple_animal/diona)) + var/mob/living/simple_animal/D = usr + return D.resist() + //Need to cover all use cases - emag, illegal upgrade module, malf AI hack, traitor cyborg /obj/screen/alert/hacked name = "Hacked" diff --git a/code/_onclick/hud/diona_nymph.dm b/code/_onclick/hud/diona_nymph.dm new file mode 100644 index 00000000000..940485ec53a --- /dev/null +++ b/code/_onclick/hud/diona_nymph.dm @@ -0,0 +1,68 @@ +/* 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() + ..() + var/obj/screen/diona/blood = new /obj/screen/diona/blood() + var/obj/screen/diona/merge = new /obj/screen/diona/merge() + var/obj/screen/diona/evolve = new /obj/screen/diona/evolve() + var/obj/screen/diona/intent = new /obj/screen/diona/intent() + static_inventory += blood + static_inventory += merge + static_inventory += evolve + toggleable_inventory += intent + +/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 == "help") + N.a_intent = "harm" + else + N.a_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() + + diff --git a/code/modules/mob/living/simple_animal/friendly/diona.dm b/code/modules/mob/living/simple_animal/friendly/diona.dm index 669271f3ead..1543e260d71 100644 --- a/code/modules/mob/living/simple_animal/friendly/diona.dm +++ b/code/modules/mob/living/simple_animal/friendly/diona.dm @@ -32,6 +32,7 @@ melee_damage_upper = 8 attacktext = "bites" attack_sound = 'sound/weapons/bite.ogg' + var/chirp_sound = 'sound/misc/nymphchirp.ogg' speed = 0 stop_automated_movement = 0 @@ -42,6 +43,13 @@ holder_type = /obj/item/holder/diona can_collar = 1 + a_intent = INTENT_HELP + var/gestalt_alert = "merged with gestalt" + var/evolve_donors = 5 + var/awareness_donors = 3 + var/nutrition_need = 500 + + /mob/living/simple_animal/diona/New() ..() if(name == initial(name)) //To stop Pun-Pun becoming generic. @@ -49,7 +57,16 @@ real_name = name add_language("Rootspeak") - verbs += /mob/living/simple_animal/diona/proc/merge + +/mob/living/simple_animal/diona/UnarmedAttack(var/atom/A) + if(isdiona(A) && src in A.contents) //can't attack your gestalt + visible_message("[src] wiggles around a bit.") + else + ..() + +/mob/living/simple_animal/diona/resist() + ..() + split() /mob/living/simple_animal/diona/attack_hand(mob/living/carbon/human/M) //Let people pick the little buggers up. @@ -57,88 +74,68 @@ if(isdiona(M)) to_chat(M, "You feel your being twine with that of [src] as it merges with your biomass.") to_chat(src, "You feel your being twine with that of [M] as you merge with its biomass.") - verbs += /mob/living/simple_animal/diona/proc/split - verbs -= /mob/living/simple_animal/diona/proc/merge + throw_alert(gestalt_alert, /obj/screen/alert/nymph) //adds a screen alert that can call resist forceMove(M) else get_scooped(M) - ..() - -/mob/living/simple_animal/diona/proc/merge() - set category = "Diona" - set name = "Merge with gestalt" - set desc = "Merge with another diona." - - if(iscarbon(loc)) - verbs -= /mob/living/simple_animal/diona/proc/merge - return +/mob/living/simple_animal/diona/proc/merge() //called by the hud (/obj/screen/diona/merge) + if(!isnymph(src) || src.stat) + return FALSE var/list/choices = list() - for(var/mob/living/carbon/C in view(1,src)) - - if(!(Adjacent(C)) || !(C.client)) + for(var/mob/living/carbon/human/H in view(1,src)) + if(!(Adjacent(H)) || !isdiona(H)) continue + choices += H - if(ishuman(C)) - var/mob/living/carbon/human/D = C - if(isdiona(D)) - choices += C + if(!choices.len) + to_chat(src, "No suitable diona nearby.") var/mob/living/M = input(src,"Who do you wish to merge with?") in null|choices - if(!M || !src || !(Adjacent(M))) + if(!M || !src || !(Adjacent(M)) || src.stat) //input can take a while, so re-validate return - if(ishuman(M)) + if(isdiona(M)) to_chat(M, "You feel your being twine with that of [src] as it merges with your biomass.") M.status_flags |= PASSEMOTES - to_chat(src, "You feel your being twine with that of [M] as you merge with its biomass.") forceMove(M) - verbs += /mob/living/simple_animal/diona/proc/split - verbs -= /mob/living/simple_animal/diona/proc/merge + throw_alert("merged with gestalt", /obj/screen/alert/nymph) //adds a screen alert that can call resist + return TRUE else - return - -/mob/living/simple_animal/diona/proc/split() - set category = "Diona" - set name = "Split from gestalt" - set desc = "Split away from your gestalt as a lone nymph." - - if(!(iscarbon(loc))) - verbs -= /mob/living/simple_animal/diona/proc/split - return + return FALSE +/mob/living/simple_animal/diona/proc/split() //called by the hud (obj/screen/alert/nymph) + if(!isnymph(src) || src.stat || !isdiona(loc)) + return FALSE + var/mob/living/carbon/human/D = loc + T = get_turf(src) + if(!T) + return FALSE to_chat(loc, "You feel a pang of loss as [src] splits away from your biomass.") to_chat(src, "You wiggle out of the depths of [loc]'s biomass and plop to the ground.") + forceMove(T) + D.status_flags &= ~PASSEMOTES + clear_alert(gestalt_alert) + return TRUE - var/mob/living/M = loc - - forceMove(get_turf(src)) - verbs -= /mob/living/simple_animal/diona/proc/split - verbs += /mob/living/simple_animal/diona/proc/merge - - if(istype(M)) - for(var/atom/A in M.contents) - if(istype(A, /mob/living/simple_animal/borer) || istype(A, /obj/item/holder)) - return - M.status_flags &= ~PASSEMOTES - -/mob/living/simple_animal/diona/verb/evolve() - set category = "Diona" - set name = "Evolve" - set desc = "Grow to a more complex form." - - if(donors.len < 5) +/mob/living/simple_animal/diona/proc/evolve() //called by the hud (/obj/screen/diona/evolve) + if(!isnymph(src) || src.stat) + return FALSE + + if(donors.len < evolve_donors) to_chat(src, "You need more blood in order to ascend to a new state of consciousness...") - return + return FALSE - if(nutrition < 500) + if(nutrition < nutrition_need) to_chat(src, "You need to binge on weeds in order to have the energy to grow...") - return + return FALSE - split() + if(isdiona(loc) && !split()) //if it's merged with diona, needs to able to split before evolving + return FALSE + visible_message("[src] begins to shift and quiver, and erupts in a shower of shed bark as it splits into a tangle of nearly a dozen new dionaea.","You begin to shift and quiver, feeling your awareness splinter. All at once, we consume our stored nutrients to surge with growth, splitting into a tangle of at least a dozen new dionaea. We have attained our gestalt form.") var/mob/living/carbon/human/diona/adult = new(get_turf(loc)) @@ -162,28 +159,32 @@ unEquip(W) qdel(src) + return TRUE -/mob/living/simple_animal/diona/verb/steal_blood() - set category = "Diona" - set name = "Steal Blood" - set desc = "Take a blood sample from a suitable donor." - +/mob/living/simple_animal/diona/proc/steal_blood() //called by the hud (/obj/screen/diona/blood) + if(!isnymph(src) || src.stat) + return FALSE + var/list/choices = list() for(var/mob/living/carbon/human/H in oview(1,src)) - choices += H + if(Adjacent(H)) + choices += H + + if(!choices.len) + to_chat(src, "No suitable blood donors nearby.") var/mob/living/carbon/human/M = input(src,"Who do you wish to take a sample from?") in null|choices - if(!M || !src) + if(!M || !src || !(Adjacent(M)) || src.stat) //input can take a while, so re-validate return - if(NO_BLOOD in M.dna.species.species_traits) + if(!M.dna || NO_BLOOD in M.dna.species.species_traits) to_chat(src, "That donor has no blood to take.") - return + return FALSE if(donors.Find(M.real_name)) to_chat(src, "That donor offers you nothing new.") - return + return FALSE visible_message("[src] flicks out a feeler and neatly steals a sample of [M]'s blood.","You flick out a feeler and neatly steal a sample of [M]'s blood.") donors += M.real_name @@ -195,13 +196,13 @@ update_progression() /mob/living/simple_animal/diona/proc/update_progression() - if(!donors.len) + if(src.stat || !donors.len) return - if(donors.len == 5) + if(donors.len == evolve_donors) ready_evolve = 1 to_chat(src, "You feel ready to move on to your next stage of growth.") - else if(donors.len == 3) + else if(donors.len == awareness_donors) universal_understand = 1 to_chat(src, "You feel your awareness expand, and realize you know how to understand the creatures around you.") else @@ -237,6 +238,6 @@ if("chirp") message = "\The [src] chirps!" m_type = 2 //audible - playsound(src, 'sound/misc/nymphchirp.ogg', 40, 1, 1) + playsound(src, chirp_sound, 40, 1, 1) ..(act, m_type, message) \ No newline at end of file diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi index 56c1730fd3a3ecdedd394259cb85549421674389..6ef2a7bead366a359b82058914494f2b51faebab 100644 GIT binary patch literal 42674 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 AOaK4? literal 40571 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%0AWPuGJccjC|JG4aue45+7~Hs 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
jA`~+SA?=M$??6gZHp(jG*Jr2nOULTWKj8>b} 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

N9oWrA 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 Date: Mon, 29 Oct 2018 16:14:50 +0100 Subject: [PATCH 2/4] fixes --- code/_onclick/hud/alert.dm | 9 ++-- code/_onclick/hud/diona_nymph.dm | 6 +-- .../living/simple_animal/friendly/diona.dm | 44 +++++++++++-------- 3 files changed, 33 insertions(+), 26 deletions(-) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 78d297848e4..bee8a188078 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -323,11 +323,10 @@ Recharging stations are available in robotics, the dormitory bathrooms, and the /obj/screen/alert/nymph/Click() if(!usr || !usr.client) - return - else - if(istype(usr, /mob/living/simple_animal/diona)) - var/mob/living/simple_animal/D = usr - return D.resist() + return + if(isnymph(usr)) + var/mob/living/simple_animal/diona/D = usr + return D.resist() //Need to cover all use cases - emag, illegal upgrade module, malf AI hack, traitor cyborg /obj/screen/alert/hacked diff --git a/code/_onclick/hud/diona_nymph.dm b/code/_onclick/hud/diona_nymph.dm index 940485ec53a..6609e9a2093 100644 --- a/code/_onclick/hud/diona_nymph.dm +++ b/code/_onclick/hud/diona_nymph.dm @@ -23,10 +23,10 @@ /obj/screen/diona/intent/Click() if(isnymph(usr)) var/mob/living/simple_animal/diona/N = usr - if(N.a_intent == "help") - N.a_intent = "harm" + if(N.a_intent == INTENT_HELP) + N.a_intent = INTENT_HARM else - N.a_intent = "help" + N.a_intent = INTENT_HELP icon_state = N.a_intent /obj/screen/diona/blood diff --git a/code/modules/mob/living/simple_animal/friendly/diona.dm b/code/modules/mob/living/simple_animal/friendly/diona.dm index 1543e260d71..4a067cf9fd6 100644 --- a/code/modules/mob/living/simple_animal/friendly/diona.dm +++ b/code/modules/mob/living/simple_animal/friendly/diona.dm @@ -48,7 +48,6 @@ var/evolve_donors = 5 var/awareness_donors = 3 var/nutrition_need = 500 - /mob/living/simple_animal/diona/New() ..() @@ -59,7 +58,7 @@ add_language("Rootspeak") /mob/living/simple_animal/diona/UnarmedAttack(var/atom/A) - if(isdiona(A) && src in A.contents) //can't attack your gestalt + if(isdiona(A) && (src in A.contents)) //can't attack your gestalt visible_message("[src] wiggles around a bit.") else ..() @@ -80,7 +79,7 @@ get_scooped(M) /mob/living/simple_animal/diona/proc/merge() //called by the hud (/obj/screen/diona/merge) - if(!isnymph(src) || src.stat) + if(stat != CONSCIOUS) return FALSE var/list/choices = list() @@ -91,24 +90,25 @@ if(!choices.len) to_chat(src, "No suitable diona nearby.") + return FALSE var/mob/living/M = input(src,"Who do you wish to merge with?") in null|choices - if(!M || !src || !(Adjacent(M)) || src.stat) //input can take a while, so re-validate - return + if(!M || !src || !(Adjacent(M)) || stat != CONSCIOUS) //input can take a while, so re-validate + return FALSE if(isdiona(M)) to_chat(M, "You feel your being twine with that of [src] as it merges with your biomass.") M.status_flags |= PASSEMOTES to_chat(src, "You feel your being twine with that of [M] as you merge with its biomass.") forceMove(M) - throw_alert("merged with gestalt", /obj/screen/alert/nymph) //adds a screen alert that can call resist + throw_alert(gestalt_alert, /obj/screen/alert/nymph) //adds a screen alert that can call resist return TRUE else return FALSE /mob/living/simple_animal/diona/proc/split() //called by the hud (obj/screen/alert/nymph) - if(!isnymph(src) || src.stat || !isdiona(loc)) + if((stat != CONSCIOUS) || !isdiona(loc)) return FALSE var/mob/living/carbon/human/D = loc T = get_turf(src) @@ -117,12 +117,19 @@ to_chat(loc, "You feel a pang of loss as [src] splits away from your biomass.") to_chat(src, "You wiggle out of the depths of [loc]'s biomass and plop to the ground.") forceMove(T) - D.status_flags &= ~PASSEMOTES + + var/hasMobs = FALSE + for(var/atom/A in D.contents) + if(istype(A, /mob/) || istype(A, /obj/item/holder)) + hasMobs = TRUE + if(!hasMobs) + D.status_flags &= ~PASSEMOTES + clear_alert(gestalt_alert) return TRUE /mob/living/simple_animal/diona/proc/evolve() //called by the hud (/obj/screen/diona/evolve) - if(!isnymph(src) || src.stat) + if(stat != CONSCIOUS) return FALSE if(donors.len < evolve_donors) @@ -162,23 +169,24 @@ return TRUE /mob/living/simple_animal/diona/proc/steal_blood() //called by the hud (/obj/screen/diona/blood) - if(!isnymph(src) || src.stat) + if(stat != CONSCIOUS) return FALSE var/list/choices = list() for(var/mob/living/carbon/human/H in oview(1,src)) - if(Adjacent(H)) - choices += H + if(Adjacent(H) && H.dna && !(NO_BLOOD in H.dna.species.species_traits)) + choices += H if(!choices.len) to_chat(src, "No suitable blood donors nearby.") + return FALSE var/mob/living/carbon/human/M = input(src,"Who do you wish to take a sample from?") in null|choices - if(!M || !src || !(Adjacent(M)) || src.stat) //input can take a while, so re-validate - return + if(!M || !src || !(Adjacent(M)) || stat != CONSCIOUS) //input can take a while, so re-validate + return FALSE - if(!M.dna || NO_BLOOD in M.dna.species.species_traits) + if(!M.dna || (NO_BLOOD in M.dna.species.species_traits)) to_chat(src, "That donor has no blood to take.") return FALSE @@ -196,8 +204,8 @@ update_progression() /mob/living/simple_animal/diona/proc/update_progression() - if(src.stat || !donors.len) - return + if(stat != CONSCIOUS || !donors.len) + return FALSE if(donors.len == evolve_donors) ready_evolve = 1 @@ -220,7 +228,7 @@ return /mob/living/simple_animal/diona/emote(act, m_type=1, message = null) - if(stat) + if(stat != CONSCIOUS) return var/on_CD = 0 From 2c0def4a82546accd5475e0c6bca6e92bcdf1ce4 Mon Sep 17 00:00:00 2001 From: Certhic Date: Wed, 31 Oct 2018 20:01:45 +0100 Subject: [PATCH 3/4] button-iy --- code/_onclick/hud/diona_nymph.dm | 26 +++++++++++++------ .../living/simple_animal/friendly/diona.dm | 4 +-- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/code/_onclick/hud/diona_nymph.dm b/code/_onclick/hud/diona_nymph.dm index 6609e9a2093..fac671bfade 100644 --- a/code/_onclick/hud/diona_nymph.dm +++ b/code/_onclick/hud/diona_nymph.dm @@ -5,14 +5,24 @@ /datum/hud/diona/New() ..() - var/obj/screen/diona/blood = new /obj/screen/diona/blood() - var/obj/screen/diona/merge = new /obj/screen/diona/merge() - var/obj/screen/diona/evolve = new /obj/screen/diona/evolve() - var/obj/screen/diona/intent = new /obj/screen/diona/intent() - static_inventory += blood - static_inventory += merge - static_inventory += evolve - toggleable_inventory += intent + 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" diff --git a/code/modules/mob/living/simple_animal/friendly/diona.dm b/code/modules/mob/living/simple_animal/friendly/diona.dm index 4a067cf9fd6..6e0d8f2f1c7 100644 --- a/code/modules/mob/living/simple_animal/friendly/diona.dm +++ b/code/modules/mob/living/simple_animal/friendly/diona.dm @@ -73,7 +73,7 @@ if(isdiona(M)) to_chat(M, "You feel your being twine with that of [src] as it merges with your biomass.") to_chat(src, "You feel your being twine with that of [M] as you merge with its biomass.") - throw_alert(gestalt_alert, /obj/screen/alert/nymph) //adds a screen alert that can call resist + throw_alert(gestalt_alert, /obj/screen/alert/nymph, new_master = src) //adds a screen alert that can call resist forceMove(M) else get_scooped(M) @@ -102,7 +102,7 @@ M.status_flags |= PASSEMOTES to_chat(src, "You feel your being twine with that of [M] as you merge with its biomass.") forceMove(M) - throw_alert(gestalt_alert, /obj/screen/alert/nymph) //adds a screen alert that can call resist + throw_alert(gestalt_alert, /obj/screen/alert/nymph, new_master = src) //adds a screen alert that can call resist return TRUE else return FALSE From 6381d15525bb066d51ef73eaa6c433093ddfcf21 Mon Sep 17 00:00:00 2001 From: Certhic Date: Sat, 3 Nov 2018 10:57:19 +0100 Subject: [PATCH 4/4] action buttons --- code/_onclick/hud/alert.dm | 1 - code/_onclick/hud/diona_nymph.dm | 78 ------------------- .../living/simple_animal/friendly/diona.dm | 57 ++++++++++---- paradise.dme | 1 - 4 files changed, 44 insertions(+), 93 deletions(-) delete mode 100644 code/_onclick/hud/diona_nymph.dm diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index bee8a188078..44c5e53b31a 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -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) diff --git a/code/_onclick/hud/diona_nymph.dm b/code/_onclick/hud/diona_nymph.dm deleted file mode 100644 index fac671bfade..00000000000 --- a/code/_onclick/hud/diona_nymph.dm +++ /dev/null @@ -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() - - diff --git a/code/modules/mob/living/simple_animal/friendly/diona.dm b/code/modules/mob/living/simple_animal/friendly/diona.dm index 6e0d8f2f1c7..0ca0d287ede 100644 --- a/code/modules/mob/living/simple_animal/friendly/diona.dm +++ b/code/modules/mob/living/simple_animal/friendly/diona.dm @@ -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, "You feel ready to move on to your next stage of growth.") else if(donors.len == awareness_donors) universal_understand = 1 diff --git a/paradise.dme b/paradise.dme index 3fd491a299d..d35fedc2589 100644 --- a/paradise.dme +++ b/paradise.dme @@ -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"