mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-08-25 22:28:00 +01:00
Splitting drakes out into their own job, which replaces the joinable version.
This commit is contained in:
@@ -4,6 +4,8 @@
|
||||
color = COLOR_BEASTY_BROWN
|
||||
max_w_class = ITEMSIZE_LARGE
|
||||
max_storage_space = INVENTORY_STANDARD_SPACE
|
||||
icon_state = "harness"
|
||||
icon = 'icons/mob/drake_harness.dmi'
|
||||
|
||||
/// Null, or a list of (/obj/item/foo = "item key"), or (/path = ("item key", proc/handler)).
|
||||
var/list/attachable_types
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
/mob/living/simple_mob/animal/get_examine_desc()
|
||||
return flavor_text || desc
|
||||
|
||||
|
||||
/mob/living/simple_mob/animal/verb/set_flavour_text()
|
||||
set name = "Set Flavour Text"
|
||||
set category = "IC"
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
/mob/living/simple_mob/animal/sif/grafadreka
|
||||
name = "grafadreka"
|
||||
desc = "A large, sleek snow drake with heavy claws, powerful jaws and many pale spines along its body."
|
||||
player_msg = "You are a large Sivian pack predator in symbiosis with the local bioluminescent bacteria. You can eat glowing \
|
||||
tree fruit to fuel your <b>ranged spitting attack</b> and <b>poisonous bite</b> (on <span class = 'danger'>harm intent</span>), as well as <b>healing saliva</b> \
|
||||
(on <b><font color = '#009900'>help intent</font></b>).<br>There are humans moving through your territory; whether you help them get home safely, or treat them as a snack, \
|
||||
is up to you."
|
||||
player_msg = {"<b>You are a large Sivian pack predator.</b>
|
||||
There are humans moving through your territory; whether you help them get home safely, or treat them as a snack, is up to you.
|
||||
You can eat glowing tree fruit to fuel your <b>ranged spitting attack</b> and <b>poisonous bite</b> (on <span class = 'danger'>harm intent</span>), as well as <b>healing saliva</b> (on <b><font color = '#009900'>help intent</font></b>)."}
|
||||
color = "#608894"
|
||||
icon = 'icons/mob/drake_adult.dmi'
|
||||
catalogue_data = list(/datum/category_item/catalogue/fauna/grafadreka)
|
||||
@@ -96,7 +95,13 @@
|
||||
|
||||
/// A convenience value for whether this drake is the trained subtype.
|
||||
var/trained_drake = FALSE
|
||||
var/list/understands_languages
|
||||
|
||||
// universal_understand is buggy and produces double lines, so we'll just do this hack instead.
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/say_understands(mob/other, datum/language/speaking)
|
||||
if (!speaking || (speaking.name in understands_languages))
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/Initialize()
|
||||
charisma = rand(5, 15)
|
||||
|
||||
+6
-33
@@ -8,6 +8,7 @@
|
||||
var/const/ATTACHED_RADIO = "radio"
|
||||
var/const/ATTACHED_ARMOR = "armor plate"
|
||||
var/const/ATTACHED_LIGHT = "light"
|
||||
var/const/ATTACHED_ID = "access card"
|
||||
|
||||
/// An attachable_types list shared between drake harness instances.
|
||||
var/static/list/grafadreka_attachable_types = list(
|
||||
@@ -21,9 +22,14 @@
|
||||
ATTACHED_ARMOR,
|
||||
/obj/item/storage/internal/animal_harness/grafadreka/proc/UpdateArmor
|
||||
),
|
||||
/obj/item/card/id = ATTACHED_ID,
|
||||
/obj/item/flashlight = ATTACHED_LIGHT
|
||||
)
|
||||
|
||||
/obj/item/storage/internal/animal_harness/grafadreka/GetIdCard()
|
||||
return attached_items[ATTACHED_ID]
|
||||
|
||||
|
||||
/obj/item/storage/internal/animal_harness/grafadreka/Destroy()
|
||||
attachable_types = null
|
||||
return ..()
|
||||
@@ -60,36 +66,3 @@
|
||||
/obj/item/storage/mre/menu13
|
||||
))
|
||||
new mre_type (src)
|
||||
|
||||
|
||||
// Station/Science drake harness contents on spawn
|
||||
/obj/item/storage/internal/animal_harness/grafadreka/expedition/CreateAttachments()
|
||||
var/mob/living/owner = loc
|
||||
if (!istype(owner))
|
||||
return
|
||||
attached_items[ATTACHED_RADIO] = new /obj/item/radio (owner)
|
||||
new /obj/item/stack/medical/bruise_pack (src)
|
||||
new /obj/item/stack/medical/ointment (src)
|
||||
new /obj/item/storage/mre/menu13 (src) // The good stuff
|
||||
var/obj/item/gps/explorer/on/gps = new (owner)
|
||||
gps.SetTag(owner.name)
|
||||
attached_items[ATTACHED_GPS] = gps
|
||||
attached_items[ATTACHED_LIGHT] = new /obj/item/flashlight/glowstick/grafadreka (owner)
|
||||
|
||||
|
||||
|
||||
/obj/item/flashlight/glowstick/grafadreka
|
||||
name = "high duration glowstick"
|
||||
action_button_name = null
|
||||
|
||||
|
||||
/obj/item/flashlight/glowstick/grafadreka/Initialize()
|
||||
. = ..()
|
||||
var/obj/item/flashlight/glowstick/archetype = pick(typesof(/obj/item/flashlight/glowstick) - type)
|
||||
flashlight_colour = initial(archetype.flashlight_colour)
|
||||
icon_state = initial(archetype.icon_state)
|
||||
item_state = initial(archetype.item_state)
|
||||
fuel = rand(3200, 4800)
|
||||
on = TRUE
|
||||
update_icon()
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
+5
@@ -3,6 +3,11 @@
|
||||
icon = 'icons/mob/drake_baby.dmi'
|
||||
mob_size = MOB_SMALL
|
||||
desc = "An immature snow drake, not long out of the shell."
|
||||
|
||||
player_msg = {"<b>You are a very small Sivian pack predator.</b>
|
||||
The Sivian forest is dark and full of terrors, and you are young and weak. Try to stay alive.
|
||||
You can eat glowing tree fruit to fuel your <b>ranged spitting attack</b> and <b>poisonous bite</b> (on <span class = 'danger'>harm intent</span>), as well as <b>healing saliva</b> (on <b><font color = '#009900'>help intent</font></b>)."}
|
||||
|
||||
is_baby = TRUE
|
||||
offset_compiled_icon = null
|
||||
|
||||
|
||||
@@ -106,17 +106,6 @@ Field studies suggest analytical abilities on par with some species of cepholapo
|
||||
weaken = 0
|
||||
eyeblur = 2
|
||||
|
||||
|
||||
/obj/structure/animal_den/ghost_join/grafadreka
|
||||
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
|
||||
|
||||
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/rainbow/setup_colours()
|
||||
glow_colour = get_random_colour(TRUE)
|
||||
fur_colour = get_random_colour(TRUE)
|
||||
|
||||
+15
-20
@@ -1,9 +1,9 @@
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/trained
|
||||
desc = "A large, sleek snow drake with heavy claws, powerful jaws and many pale spines along its body. This one is wearing some kind of harness; maybe it belongs to someone."
|
||||
player_msg = "You are a large Sivian pack predator in symbiosis with the local bioluminescent bacteria. You can eat glowing \
|
||||
tree fruit to fuel your <b>ranged spitting attack</b> and <b>poisonous bite</b> (on <span class = 'danger'>harm intent</span>), as well as <b>healing saliva</b> \
|
||||
(on <b><font color = '#009900'>help intent</font></b>).<br>Using <font color='#e0a000'>grab intent</font> you can pick up and drop items on by clicking them or yourself, \
|
||||
and can interact with some simple machines like buttons and levers.<br>Unlike your wild kin, you are <b>trained</b> and work happily with your two-legged packmates."
|
||||
desc = "A sleek snow drake with heavy claws, powerful jaws and many sharp spines along its body. This one is wearing some kind of harness; maybe it belongs to someone."
|
||||
player_msg = {"<b>You are a large Sivian pack predator.</b>
|
||||
Unlike your wild kin, you are <b>trained</b> and work happily with your two-legged packmates.
|
||||
You can eat glowing tree fruit to fuel your <b>ranged spitting attack</b> and <b>poisonous bite</b> (on <span class = 'danger'>harm intent</span>), as well as <b>healing saliva</b> (on <b><font color = '#009900'>help intent</font></b>).
|
||||
Using <font color='#e0a000'>grab intent</font> you can pick up and drop items by clicking them or yourself, and can interact with some simple machines like buttons and levers."}
|
||||
faction = "station"
|
||||
ai_holder_type = null // These guys should not exist without players.
|
||||
gender = PLURAL // Will take gender from prefs = set to non-NEUTER here to avoid randomizing in Initialize().
|
||||
@@ -11,6 +11,10 @@
|
||||
dexterity = MOB_DEXTERITY_SIMPLE_MACHINES
|
||||
harness = /obj/item/storage/internal/animal_harness/grafadreka/trained
|
||||
trained_drake = TRUE
|
||||
understands_languages = list(
|
||||
LANGUAGE_GALCOM,
|
||||
LANGUAGE_SIVIAN
|
||||
)
|
||||
|
||||
/// On clicking with an item, stuff that should use behaviors instead of being placed in storage.
|
||||
var/static/list/allow_type_to_pass = list(
|
||||
@@ -19,23 +23,21 @@
|
||||
/obj/item/reagent_containers/syringe
|
||||
)
|
||||
|
||||
var/static/list/trained_drake_languages = list(
|
||||
LANGUAGE_GALCOM,
|
||||
LANGUAGE_SIVIAN
|
||||
)
|
||||
|
||||
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/trained/Destroy()
|
||||
if (istype(harness))
|
||||
QDEL_NULL(harness)
|
||||
return ..()
|
||||
|
||||
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/trained/GetIdCard()
|
||||
return harness?.GetIdCard()
|
||||
|
||||
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/trained/add_glow()
|
||||
. = ..()
|
||||
if (. && harness)
|
||||
var/image/I = .
|
||||
I.icon_state = "[I.icon_state]-pannier"
|
||||
I.icon_state = "[I.icon_state]-[harness.icon_state]"
|
||||
|
||||
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/trained/Logout()
|
||||
@@ -61,17 +63,10 @@
|
||||
return harness.handle_attack_hand(user)
|
||||
|
||||
|
||||
// universal_understand is buggy and produces double lines, so we'll just do this hack instead.
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/trained/say_understands(mob/other, datum/language/speaking)
|
||||
if (!speaking || (speaking.name in trained_drake_languages))
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/trained/update_icon()
|
||||
. = ..()
|
||||
if (harness)
|
||||
var/image/I = image(icon, "[current_icon_state]-pannier")
|
||||
var/image/I = image(harness.icon, "[current_icon_state]-[harness.icon_state]")
|
||||
I.color = harness.color
|
||||
I.appearance_flags |= (RESET_COLOR|PIXEL_SCALE|KEEP_APART)
|
||||
if (offset_compiled_icon)
|
||||
|
||||
Reference in New Issue
Block a user