Adding baby drakes.

This commit is contained in:
MistakeNot4892
2022-08-25 00:25:03 +10:00
parent 9a4211bdb8
commit ffbcc8c800
8 changed files with 37 additions and 19 deletions
+1 -1
View File
@@ -129,7 +129,7 @@
icon_state = "frost"
/obj/random/mob/sif/grafadreka/item_to_spawn()
return pick(prob(3);/mob/living/simple_mob/animal/sif/grafadreka/hibernate,
return pick(prob(3);/mob/living/simple_mob/animal/sif/grafadreka/hatchling,
prob(12);/mob/living/simple_mob/animal/sif/grafadreka)
/obj/random/mob/spider
+6 -3
View File
@@ -12,8 +12,8 @@
/obj/structure/animal_den/proc/remove_from_den(var/atom/movable/AM)
AM.dropInto(get_turf(src))
if(ismob(AM))
var/mob/M = AM
if(isliving(AM))
var/mob/living/M = AM
if(M.resting)
M.lay_down() // you woke them up :(
if(M.client)
@@ -115,10 +115,11 @@
var/list/output = ..()
if(isobserver(user))
if(critter)
var/mob/critter_type = islist(critter) ? critter[1] : critter
if(ban_check && ckey_is_jobbanned(user.ckey, ban_check))
output += SPAN_WARNING("You are banned from [ban_check] roles and cannot join via this den.")
else if(user.MayRespawn(TRUE))
output += SPAN_NOTICE("<b>Click on the den to join as \a [initial(critter.name)].</b>")
output += SPAN_NOTICE("<b>Click on the den to join as \a [initial(critter_type.name)].</b>")
else
output += SPAN_WARNING("This den is no longer available for joining.")
return output
@@ -134,6 +135,8 @@
/obj/structure/animal_den/ghost_join/proc/transfer_personality(var/mob/user)
set waitfor = FALSE
if(length(critter))
critter = pickweight(critter)
if(!ispath(critter))
return
@@ -110,7 +110,9 @@ var/global/list/last_drake_howl = list()
M << 'sound/effects/drakehowl_far.ogg'
/mob/living/simple_mob/animal/sif/grafadreka/get_available_emotes()
return global._default_mob_emotes | /decl/emote/audible/drake_howl
if(!is_baby)
return global._default_mob_emotes | /decl/emote/audible/drake_howl
return global._default_mob_emotes
// Overriding this to handle sitting.
/mob/living/simple_mob/animal/sif/grafadreka/lay_down()
@@ -153,7 +155,6 @@ var/global/list/last_drake_howl = list()
bitesize = 10 // chomp
has_langs = list("Drake")
universal_understand = TRUE // they are smarties, even if they don't have the vocal cords to speak back.
see_in_dark = 8 // on par with Taj
@@ -216,6 +217,7 @@ var/global/list/last_drake_howl = list()
var/tmp/base_colour
var/tmp/eye_colour
var/offset_compiled_icon = -16
var/is_baby = FALSE
var/sitting = FALSE
var/next_spit = 0
@@ -385,7 +387,8 @@ var/global/list/last_drake_howl = list()
for(var/image/adding in add_images)
adding.appearance_flags |= (RESET_COLOR|PIXEL_SCALE|KEEP_APART)
adding.pixel_x = -16 // Offset here so that things like modifiers, runechat text, etc. are centered
if(offset_compiled_icon)
adding.pixel_x = offset_compiled_icon // Offset here so that things like modifiers, runechat text, etc. are centered
add_overlay(adding)
// We do this last so the default mob icon_state can be used for the overlays.
@@ -485,7 +488,9 @@ var/global/list/last_drake_howl = list()
/mob/living/simple_mob/animal/sif/grafadreka/proc/get_local_alpha()
var/pack = FALSE
var/mob/living/simple_mob/animal/sif/grafadreka/alpha = src
var/mob/living/simple_mob/animal/sif/grafadreka/alpha
if(!is_baby)
alpha = src
for(var/mob/living/simple_mob/animal/sif/grafadreka/beta in hearers(7, loc))
if(beta == src || beta.is_baby || beta.stat == DEAD)
continue
@@ -562,8 +567,10 @@ var/global/list/last_drake_howl = list()
/mob/living/simple_mob/animal/sif/grafadreka/Login()
. = ..()
if(client)
if(client && !is_baby)
dominance = INFINITY // Let players lead by default.
else // But not if they are a baby.
dominance = 0
/mob/living/simple_mob/animal/sif/grafadreka/Logout()
. = ..()
@@ -576,8 +583,12 @@ var/global/list/last_drake_howl = list()
emote_hear = list("hisses", "rattles", "rasps", "barks")
/obj/structure/animal_den/ghost_join/grafadreka
name = "grafadreka den"
critter = /mob/living/simple_mob/animal/sif/grafadreka/hibernate
name = "drake den"
critter = /mob/living/simple_mob/animal/sif/grafadreka
/obj/structure/animal_den/ghost_join/grafadreka_hatchling
name = "drake hatchling den"
critter = /mob/living/simple_mob/animal/sif/grafadreka/hatchling
// Subtypes!
/mob/living/simple_mob/animal/sif/grafadreka/rainbow/setup_colours()
@@ -588,17 +599,13 @@ var/global/list/last_drake_howl = list()
eye_colour = get_random_colour(TRUE)
..()
/mob/living/simple_mob/animal/sif/grafadreka/hibernate/Initialize()
. = ..()
dominance = 0
lay_down()
/mob/living/simple_mob/animal/sif/grafadreka/hatchling
name = "grafadreka hatchling"
icon = 'icons/mob/drake_baby.dmi'
mob_size = MOB_SMALL
desc = "An immature snow drake, not long out of the shell."
is_baby = TRUE
offset_compiled_icon = null
melee_damage_lower = 3
melee_damage_upper = 5
@@ -169,3 +169,11 @@
if(food)
give_destination(get_turf(food))
return
/mob/living/simple_mob/animal/sif/grafadreka/hatchling/IWasAttackedBy(var/mob/living/attacker)
. = ..()
if(attacked_by_human)
for(var/mob/living/simple_mob/animal/sif/grafadreka/friend in viewers(world.view, src))
if(friend == src || !IIsAlly(friend))
continue
friend.IWasAttackedBy(attacker)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

@@ -79,8 +79,8 @@
prob(45);/mob/living/simple_mob/animal/sif/shantak,
prob(15);/mob/living/simple_mob/animal/sif/kururak/hibernate,
prob(10);/mob/living/simple_mob/animal/sif/kururak,
prob(5);/mob/living/simple_mob/animal/sif/grafadreka/hibernate,
prob(3);/mob/living/simple_mob/animal/sif/grafadreka,
prob(10);/mob/living/simple_mob/animal/sif/grafadreka,
prob(1);/mob/living/simple_mob/animal/sif/grafadreka/hatchling,
prob(3);/mob/living/simple_mob/animal/giant_spider,
prob(8);/mob/living/simple_mob/animal/giant_spider/hunter,
prob(3);/mob/living/simple_mob/animal/giant_spider/webslinger,
@@ -4,7 +4,7 @@
"d" = (/obj/random/junk,/obj/random/humanoidremains,/turf/simulated/mineral/floor/sif,/area/submap/GrafadrekaDen)
"e" = (/obj/random/mob/sif/grafadreka,/turf/simulated/mineral/floor/sif,/area/submap/GrafadrekaDen)
"f" = (/turf/simulated/mineral/floor/sif,/area/submap/GrafadrekaDen)
"g" = (/obj/structure/animal_den/ghost_join/grafadreka,/turf/simulated/mineral/floor/sif,/area/submap/GrafadrekaDen)
"g" = (/obj/structure/animal_den/ghost_join/grafadreka_hatchling,/turf/simulated/mineral/floor/sif,/area/submap/GrafadrekaDen)
"h" = (/obj/random/junk,/turf/simulated/mineral/floor/sif,/area/submap/GrafadrekaDen)
"i" = (/obj/random/outcrop,/turf/simulated/mineral/floor/sif,/area/submap/GrafadrekaDen)
"j" = (/obj/random/humanoidremains,/obj/random/coin,/obj/random/contraband,/obj/random/projectile/random,/turf/simulated/mineral/floor/sif,/area/submap/GrafadrekaDen)