Merge remote-tracking branch 'origin/master' into krakatoa

This commit is contained in:
Bib Bob
2023-02-13 18:08:14 -06:00
23 changed files with 799 additions and 156 deletions
+3
View File
@@ -0,0 +1,3 @@
#define MARKING_NONDIGI_ONLY (1 << 0)
#define MARKING_DIGITIGRADE_ONLY (1 << 1)
#define MARKING_ALL_LEGS MARKING_NONDIGI_ONLY|MARKING_DIGITIGRADE_ONLY
@@ -10,4 +10,4 @@
icon_state = "wood_stairs2"
/obj/effect/floor_decal/stairs/dark_stairs
icon_state = "dark_stairs"
icon_state = "dark_stairs"
@@ -18,3 +18,4 @@
/obj/effect/floor_decal/snow/floor/pointy
icon_state = "snowfloorpointy"
@@ -14,6 +14,24 @@
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/ears/protogen
name = "Protogen"
desc = ""
icon = 'icons/mob/vore/ears_ch.dmi'
icon_state = "protogen"
extra_overlay = "protogen_fluff"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/ears/miqote
name = "Miqo'te"
desc = ""
icon = 'icons/mob/vore/ears_ch.dmi'
icon_state = "miqote"
extra_overlay = "miqote_inner"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/ears/vale
name = "VALE Model Ear Coloring"
desc = ""
@@ -1,3 +1,7 @@
/datum/sprite_accessory/marking
var/digitigrade_acceptance = MARKING_NONDIGI_ONLY
var/digitigrade_icon = 'icons/mob/human_races/markings_digi_ch.dmi'
/datum/sprite_accessory/marking/ch
icon = 'icons/mob/human_races/markings_ch.dmi'
@@ -149,65 +153,196 @@
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/protogen_snout
name = "Protogen Snout"
icon_state = "protogen_snout"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/hshark_snout
name = "HShark Snout"
icon_state = "hshark_snout"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/hshark_head
name = "HShark Head"
icon_state = "hshark"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/ram_horns
name = "Ram Horns"
icon_state = "ram_horns"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/neckfluff
name = "Neck Fluff"
icon_state = "neckfluff"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/husky_chest
name = "Husky Chest"
icon_state = "husky"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO, BP_GROIN)
/datum/sprite_accessory/marking/ch/fox_head
name = "Fox Head"
icon_state = "fox"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/fox_chest
name = "Fox Chest"
icon_state = "fox"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO, BP_GROIN)
/datum/sprite_accessory/marking/ch/fox_hsocks
name = "Fox Hand Socks"
icon_state = "fox"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_ARM, BP_R_HAND, BP_L_ARM, BP_L_HAND)
/datum/sprite_accessory/marking/ch/fox_lsocks
name = "Fox Leg Socks"
icon_state = "fox"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG,BP_R_FOOT,BP_L_LEG,BP_L_FOOT)
digitigrade_acceptance = MARKING_ALL_LEGS
/datum/sprite_accessory/marking/ch/tiger_head
name = "Tiger Head"
icon_state = "tiger"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/tiger_chest
name = "Tiger Chest"
icon_state = "tiger"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO, BP_GROIN)
/datum/sprite_accessory/marking/ch/tiger_arms
name = "Tiger Arms"
icon_state = "tiger"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_ARM, BP_R_HAND, BP_L_ARM, BP_L_HAND)
/datum/sprite_accessory/marking/ch/tiger_legs
name = "Tiger Legs"
icon_state = "tiger"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG,BP_R_FOOT,BP_L_LEG,BP_L_FOOT)
digitigrade_acceptance = MARKING_ALL_LEGS
/datum/sprite_accessory/marking/ch/gradient_arms
name = "Gradient Arms"
icon_state = "gradient"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_ARM, BP_R_HAND, BP_L_ARM, BP_L_HAND)
/datum/sprite_accessory/marking/ch/gradient_legs
name = "Gradient Legs"
icon_state = "gradient"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG,BP_R_FOOT,BP_L_LEG,BP_L_FOOT)
digitigrade_acceptance = MARKING_ALL_LEGS
/datum/sprite_accessory/marking/ch/hawk_talons
name = "Hawk Talons (Legs)"
icon_state = "hawktalon"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG,BP_R_FOOT,BP_L_LEG,BP_L_FOOT)
digitigrade_acceptance = MARKING_ALL_LEGS
/datum/sprite_accessory/marking/ch/deer_hooves
name = "Deer Hooves"
icon_state = "deerhoof"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_FOOT, BP_L_FOOT)
digitigrade_acceptance = MARKING_ALL_LEGS
/datum/sprite_accessory/marking/ch/frills_simple
name = "Frills (Simple)"
icon_state = "frills_simple"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/frills_short
name = "Frills (Short)"
icon_state = "frills_short"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/frills_aquatic
name = "Frills (Aquatic)"
icon_state = "frills_aqua"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/guilmonhead
name = "Guilmon head"
icon_state = "guilmon_head"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
name = "Guilmon head"
icon_state = "guilmon_head"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/guilmonchest
name = "Guilmon Chest"
icon_state = "guilmon_chest"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO)
name = "Guilmon Chest"
icon_state = "guilmon_chest"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO)
/datum/sprite_accessory/marking/ch/guilmonchestmarking
name = "Guilmon Chest Markings"
icon_state = "guilmon_marking"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO)
name = "Guilmon Chest Markings"
icon_state = "guilmon_marking"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO)
/datum/sprite_accessory/marking/ch/guilmonarms
name = "Guilmon arms"
icon_state = "guilmon"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_ARM,BP_L_ARM,BP_R_HAND,BP_L_HAND)
name = "Guilmon arms"
icon_state = "guilmon"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_ARM,BP_L_ARM,BP_R_HAND,BP_L_HAND)
/datum/sprite_accessory/marking/ch/guilmonRLeg
name = "Guilmon Right leg"
icon_state = "guilmon"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG)
name = "Guilmon Right leg"
icon_state = "guilmon"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG)
/datum/sprite_accessory/marking/ch/guilmonLleg
name = "Guilmon Left leg"
icon_state = "guilmon"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG)
name = "Guilmon Left leg"
icon_state = "guilmon"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG)
/datum/sprite_accessory/marking/ch/guilmondigiRleg1
name = "Guilmon digigrade right leg 1"
icon_state = "guilmon_digitigrade_1"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG)
name = "Guilmon digigrade right leg 1"
icon_state = "guilmon_digitigrade_1"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG)
/datum/sprite_accessory/marking/ch/guilmondigiLleg1
name = "Guilmon digigrade left leg 1"
icon_state = "guilmon_digitigrade_1"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG)
name = "Guilmon digigrade left leg 1"
icon_state = "guilmon_digitigrade_1"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG)
/datum/sprite_accessory/marking/ch/guilmondigiRleg2
name = "Guilmon digigrade right leg 2"
icon_state = "guilmon_digitigrade_2"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG)
name = "Guilmon digigrade right leg 2"
icon_state = "guilmon_digitigrade_2"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG)
/datum/sprite_accessory/marking/ch/guilmondigiLleg2
name = "Guilmon digigrade left leg 2"
icon_state = "guilmon_digitigrade_2"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG)
name = "Guilmon digigrade left leg 2"
icon_state = "guilmon_digitigrade_2"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG)
/datum/sprite_accessory/tail/special/orca_tail
name = "Orca Tail"
@@ -332,6 +467,7 @@
//Digitigrade markings
/datum/sprite_accessory/marking/digi
icon = 'icons/mob/human_races/markings_digi_ch.dmi'
digitigrade_acceptance = MARKING_DIGITIGRADE_ONLY
/datum/sprite_accessory/marking/digi/fullleft
name = "Digitigrade Full Left Leg(Only works with digitigrade legs)"
@@ -22,6 +22,17 @@
icon = 'icons/mob/vore/tails_ch.dmi'
icon_state = "zorgoia"
extra_overlay = "zorgoia_fluff"
extra_overlay2 = "zorgoia_fluff_top"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/leopard
name = "Leopard tail, dual-color (vwag)"
icon = 'icons/mob/vore/tails_ch.dmi'
icon_state = "leopard"
ani_state = "leopard_w"
extra_overlay = "leopard_spots"
extra_overlay_w = "leopard_spots_w"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
@@ -144,17 +155,17 @@
extra_overlay = "bigringtail_markings"
/datum/sprite_accessory/tail/longtail/desert_nightstalker
name = "Desert Nightstalker Tail (vwag)"
icon = 'icons/mob/vore/taurs_ch.dmi'
icon_state = "nightstalker_desert"
ani_state = "nightstalker_desert_w"
do_colouration = 0 // We're not coloring this, these are pre-colored
color_blend_mode = ICON_ADD
name = "Desert Nightstalker Tail (vwag)"
icon = 'icons/mob/vore/taurs_ch.dmi'
icon_state = "nightstalker_desert"
ani_state = "nightstalker_desert_w"
do_colouration = 0 // We're not coloring this, these are pre-colored
color_blend_mode = ICON_ADD
/datum/sprite_accessory/tail/longtail/diamondback_nightstalker
name = "Diamondback Nightstalker Tail (dual-color, vwag)"
icon = 'icons/mob/vore/taurs_ch.dmi'
icon_state = "nightstalker_diamondback"
ani_state = "nightstalker_diamondback_w"
extra_overlay = "nightstalker_diamondback_markings"
extra_overlay_w = "nightstalker_diamondback_markings_w"
name = "Diamondback Nightstalker Tail (dual-color, vwag)"
icon = 'icons/mob/vore/taurs_ch.dmi'
icon_state = "nightstalker_diamondback"
ani_state = "nightstalker_diamondback_w"
extra_overlay = "nightstalker_diamondback_markings"
extra_overlay_w = "nightstalker_diamondback_markings_w"
@@ -30,6 +30,7 @@ Controlled by the player_tips subsystem under code/controllers/subsystems/player
to_chat(M, SPAN_NOTICE("[tip]"))
last_tip = tip
last_tip_time = world.time
tip_delay = rand(min_tip_delay, max_tip_delay)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

@@ -0,0 +1,299 @@
// Props
/obj/structure/prop/desert_rock
icon = 'modular_chomp/icons/obj/desert_planet/desert_rocks.dmi'
desc = "Sandy and smooth from erosion."
density = TRUE
anchored = TRUE
/obj/structure/prop/desert_rock/rock
name = "desert rock"
/obj/structure/prop/desert_rock/rock/attack_hand(mob/living/user)
if(user.is_incorporeal())
return
to_chat(user, "You push on the [src].")
var/movedir = user.dir
if(do_after(user, 3 SECONDS, src))
step(src, movedir)
/obj/structure/prop/desert_rock/rock/New()
..()
icon_state = "desert_rock[rand(0,6)]"
/obj/structure/prop/desert_rock/pebble
name = "sandy pebble"
density = FALSE
/obj/structure/prop/desert_rock/pebble/Crossed(atom/movable/AM as mob|obj)
if(AM.is_incorporeal())
return
if(istype(AM, /mob/living))
var/mob/living/M = AM
if(M.m_intent == "run" && prob(5))
M.Weaken(2)
to_chat(M, "You trip over the [src]!")
/obj/structure/prop/desert_rock/pebble/New()
..()
icon_state = "desert_pebble[rand(0,6)]"
/obj/structure/prop/desert_rock/anthill
name = "ant hill"
desc = "See how many ants you can spot."
icon = 'modular_chomp/icons/obj/desert_planet/desert_plants.dmi'
icon_state = "anthill0"
/obj/structure/prop/desert_rock/anthill/New()
..()
icon_state = "anthill[rand(0,2)]"
/obj/structure/prop/desert_planet64x64
name = "large rock"
desc = "Sandy and smooth from erosion."
icon = 'modular_chomp/icons/obj/desert_planet/desert_props_64x64.dmi'
density = TRUE
anchored = TRUE
can_buckle = FALSE
/obj/structure/prop/desert_planet64x64/lrock
icon_state = "lrock"
/obj/structure/prop/desert_planet64x64/lrock1
icon_state = "lrock1"
/obj/structure/prop/desert_planet64x64/lrock2
icon_state = "lrock2"
/obj/structure/prop/desert_planet64x64/lrock3
icon_state = "lrock3"
/obj/structure/prop/desert_planet64x64/lrock4
icon_state = "lrock4"
/obj/structure/prop/desert_planet64x64/lribs
name = "ribs"
desc = "Bleached white by baking sunlight."
icon_state = "lribs"
/obj/structure/prop/desert_planet64x64/lribs1
name = "ribs"
desc = "Bleached white by baking sunlight."
icon_state = "lribs1"
/obj/structure/prop/desert_planet64x64/lskull
name = "skull"
desc = "Bleached white by baking sunlight."
icon_state = "lskull"
/obj/structure/prop/desert_planet64x64/lbone
name = "bone"
desc = "Bleached white by baking sunlight."
icon_state = "lbone"
/obj/structure/prop/desert_planet64x64/palmuria
name = "palm"
desc = "Stout and bushy."
icon_state = "palmuria"
/obj/structure/prop/desert_planet64x64/palmuria1
name = "palm"
desc = "Stout and bushy."
icon_state = "palmuria1"
/obj/structure/prop/desert_planet160x160
name = "desert large boulder"
desc = "Sandy and smooth from erosion."
icon = 'modular_chomp/icons/obj/desert_planet/desert_planet_160x160.dmi'
density = TRUE
anchored = TRUE
can_buckle = FALSE
/obj/structure/prop/desert_planet160x160/largeboulder
icon_state = "large_boulder"
/obj/structure/prop/desert_planet160x160/tallboulder
icon_state = "tall_boulder"
/obj/structure/prop/desert_planet160x160/boulder
icon_state = "boulder"
/obj/structure/prop/desert_planet160x160/lcactus
name = "cactus"
desc = "Large and prickly."
icon_state = "lcactus"
/obj/structure/prop/desert_planet160x160/lcactus1
name = "cactus"
desc = "Large and prickly."
icon_state = "lcactus1"
/obj/structure/prop/desert_planet160x160/lcactus2
name = "cactus"
desc = "Large and prickly."
icon_state = "lcactus2"
/obj/structure/prop/desert_planet160x160/lcactus3
name = "cactus"
desc = "Large and prickly."
icon_state = "lcactus3"
// Flora
/obj/structure/flora/desert_planet
name = "desert plant"
desc = "Probably a succulent."
icon = 'modular_chomp/icons/obj/desert_planet/desert_plants.dmi'
/obj/structure/flora/desert_planet/potted_plant
name = "potted plant"
desc = "Colloquially known as a pot plant."
icon_state = "potplant0"
/obj/structure/flora/desert_planet/potted_plant/New()
..()
icon_state = "potplant[rand(0,2)]"
/obj/structure/flora/desert_planet/thicket
name = "thicket"
desc = "Weedy growths."
icon_state = "thicket0"
/obj/structure/flora/desert_planet/thicket/New()
..()
icon_state = "thicket[rand(0,6)]"
/obj/structure/flora/desert_planet/shrub
name = "shrub"
desc = "Dense and weedy."
icon_state = "shrub0"
/obj/structure/flora/desert_planet/shrub/New()
..()
icon_state = "shrub[rand(0,5)]"
/obj/structure/flora/desert_planet/bush
name = "bush"
desc = "Denser and weedier."
icon_state = "bush0"
/obj/structure/flora/desert_planet/bush/New()
..()
icon_state = "bush[rand(0,5)]"
/obj/structure/flora/desert_planet/barrelcacti
name = "barrel cacti"
desc = "Small, adorable, and begging for a hug."
icon_state = "barrelcacti0"
/obj/structure/flora/desert_planet/barrelcacti/New()
..()
icon_state = "barrelcacti[rand(0,3)]"
/obj/structure/flora/desert_planet/palmy
name = "yucca bush"
desc = "Probably not actually a yucca."
icon_state = "palmy0"
/obj/structure/flora/desert_planet/palmy/New()
..()
icon_state = "palmy[rand(0,2)]"
/obj/structure/flora/desert_planet/shrubber
name = "thorny bush"
desc = "Makes for great fur accessories."
icon_state = "shrubber0"
/obj/structure/flora/desert_planet/shrubber/New()
..()
icon_state = "shrubber[rand(0,2)]"
/obj/structure/flora/desert_planet/lbarrelcacti
name = "barrel cactus"
desc = "Absolutely begging for pets."
icon_state = "lbarrelcacti0"
/obj/structure/flora/desert_planet/lbarrelcacti/New()
..()
icon_state = "lbarrelcacti[rand(0,2)]"
// Trees
/obj/structure/flora/tree/desert_planet
name = "palm tree"
desc = "Tall palm tree, makes for a good shade."
icon = 'modular_chomp/icons/obj/desert_planet/desert_planet_160x160.dmi'
density = FALSE
anchored = TRUE
can_buckle = FALSE
product = /obj/item/stack/material/log
product_amount = 50
health = 2000
max_health = 2000
//var/fruit
/obj/structure/flora/tree/desert_planet/palmtreeb
icon_state = "palmtreeb"
base_state = "palmr" // Necessary for stumps to work.
/obj/structure/flora/tree/desert_planet/palmtreeb1
icon_state = "palmtreeb1"
base_state = "palml"
/obj/structure/flora/tree/desert_planet/palmtree
icon_state = "palmtree"
base_state = "palmr"
/obj/structure/flora/tree/desert_planet/palmtree1
icon_state = "palmtree1"
base_state = "palml"
/obj/structure/flora/tree/desert_planet/mpalmtreeb
icon_state = "mpalmtreeb"
base_state = "palmr"
/obj/structure/flora/tree/desert_planet/mpalmtreeb1
icon_state = "mpalmtreeb1"
base_state = "palml"
/obj/structure/flora/tree/desert_planet/mpalmtree
icon_state = "mpalmtree"
base_state = "palml"
/obj/structure/flora/tree/desert_planet/mpalmtree1
icon_state = "mpalmtree1"
base_state = "palmr"
/obj/structure/flora/tree/desert_planet/spalmtree
icon_state = "spalmtree"
base_state = "palmls"
/obj/structure/flora/tree/desert_planet/spalmtree1
icon_state = "spalmtree1"
base_state = "palmrs"
/obj/structure/flora/tree/desert_planet/spalmtree3
icon_state = "spalmtree3"
base_state = "palmls"
/obj/structure/flora/tree/desert_planet/spalmtree4
icon_state = "spalmtree4"
base_state = "palmrs"
/obj/structure/flora/tree/desert_planet/desert_tree
name = "barren tree"
desc = "Completely barren."
icon_state = "desert_tree"
base_state = "desert"
/obj/structure/flora/tree/desert_planet/desert_tree1
name = "gnarled tree"
desc = "Twisted but living."
icon_state = "desert_tree1"
base_state = "desert"
/obj/structure/flora/tree/desert_planet/desert_tree3
name = "hardy tree"
desc = "Thriving despite the conditions."
icon_state = "desert_tree3"
base_state = "desert"
product_amount = 100
health = 4000
max_health = 4000
@@ -1,136 +1,257 @@
/* Testing
// Parent turf.
/turf/simulated/floor/outdoors/desert_planet
name = "sand"
desc = "Salty and gritty."
icon = 'modular_chomp/icons/turf/desert_tiles.dmi'
icon_edge = 'modular_chomp/icons/turf/outdoors_edge.dmi'
can_dig = FALSE
/turf/simulated/floor/outdoors/desert_planet/sand
name = "sand"
desc = "Sandy, taste salty and gritty."
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
desc = "Salty and gritty."
icon_state = "sand0"
edge_blending_priority = 2
turf_layers = list(/turf/simulated/floor/outdoors/rocks)
initial_flooring = /decl/flooring/sand
can_dig = false
*/
initial_flooring = /decl/flooring/desert_planet/sand
/turf/simulated/floor/outdoors/desert_planet/sand
name = "sand"
desc = "Salty and gritty."
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
icon_state = "sand"
edge_blending_priority = 3
turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand)
// Necessary to get the edges to generate correctly since we use a random-ish icon_state. Inelegant to hard code, but this is a one-off case.
/turf/simulated/floor/outdoors/desert_planet/sand/get_edge_icon_state()
return "sand"
/* Testing
/decl/flooring/outdoors/sand
name = "sand"
desc = "Salty and gritty."
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
icon_base = "sand"
footstep_sounds = list("human" = list(
'sound/effects/footstep/asteroid1.ogg',
'sound/effects/footstep/asteroid2.ogg',
'sound/effects/footstep/asteroid3.ogg',
'sound/effects/footstep/asteroid4.ogg',
'sound/effects/footstep/asteroid5.ogg',
'sound/effects/footstep/MedDirt1.ogg',
'sound/effects/footstep/MedDirt2.ogg',
'sound/effects/footstep/MedDirt3.ogg',
'sound/effects/footstep/MedDirt4.ogg'))
/turf/simulated/floor/outdoors/desert_planet/sand/Initialize(mapload)
. = ..()
icon_state = "sand[rand(0,2)]"
/turf/simulated/floor/outdoors/sand/Initialize(mapload)
var/possiblesands = list(
"ironsand1" = 50,
"ironsand2" = 1,
"ironsand3" = 1,
"ironsand4" = 1,
"ironsand5" = 1,
"ironsand6" = 1,
"ironsand7" = 1,
"ironsand8" = 1,
"ironsand9" = 1,
"ironsand10" = 1,
"ironsand11" = 1,
"ironsand12" = 1,
"ironsand13" = 1,
"ironsand14" = 1,
"ironsand15" = 1
)
flooring_override = pickweight(possiblesands)
return ..()
/turf/simulated/floor/water/hotspring
name = "Hotsprings"
desc = "A natural hotspring connecting to an aquifer. It seems the facility was built ontop of it."
edge_blending_priority = -2
movement_cost = 8
depth = 2
water_state = "water_shallow"
outdoors = FALSE
/turf/simulated/floor/water/hotspring/Entered(atom/movable/AM, atom/oldloc)
if(istype(AM, /mob/living))
var/mob/living/L = AM
L.update_water()
if(L.check_submerged() <= 0)
return
if(!istype(oldloc, /turf/simulated/floor/water/hotspring))
to_chat(L, "<span class='warning'>You feel an overwhelming wave of warmth from entering \the [src]!</span>")
AM.water_act(5)
..()
*/
/turf/simulated/floor/outdoors/desert_planet/sand/attackby(var/obj/item/W, var/mob/user)
if(istype(W, /obj/item/weapon/shovel))
to_chat(user, "<span class='notice'>You begin to remove \the [src] with your [W].</span>")
if(do_after(user, 4 SECONDS * W.toolspeed))
to_chat(user, "<span class='notice'>\The [src] has been dug up, and now lies in a pile nearby.</span>")
icon_state = "sand_dug"
new /obj/item/weapon/ore/glass (src)
else
to_chat(user, "<span class='notice'>You decide to not finish removing \the [src].</span>")
else
..()
/turf/simulated/floor/outdoors/desert_planet/deep_sand
name = "sand"
desc = "Salty and gritty."
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
icon_state = "deep_sand"
edge_blending_priority = 2
turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand)
desc = "Really gets everywhere."
icon_state = "deep_sand0"
edge_blending_priority = 1
movement_cost = 3
initial_flooring = /decl/flooring/desert_planet/deep_sand
/turf/simulated/floor/outdoors/desert_planet/deep_sand/Initialize(mapload)
. = ..()
icon_state = "deep_sand[rand(0,2)]"
/turf/simulated/floor/outdoors/desert_planet/grass
name = "grass"
desc = "Lively green grass, soft to walk on."
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
icon_state = "grass"
edge_blending_priority = 6
turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand)
edge_blending_priority = 5
initial_flooring = /decl/flooring/desert_planet/grass
/turf/simulated/floor/outdoors/desert_planet/deep_grass
name = "dense grass"
desc = "Dense patch of grass, seems like a soft spot to lay on."
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
icon_state = "deep_grass"
edge_blending_priority = 7
turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand)
edge_blending_priority = 6
initial_flooring = /decl/flooring/desert_planet/deep_grass
/turf/simulated/floor/outdoors/desert_planet/gravel
name = "gravel"
desc = "Mix of dirt and sand, it crumbles in your hand."
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
icon_state = "gravel"
edge_blending_priority = 5
turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand)
edge_blending_priority = 3
initial_flooring = /decl/flooring/desert_planet/gravel
/turf/simulated/floor/outdoors/desert_planet/mud
name = "mud"
desc = "Squishy damp dirt, smells muddy."
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
icon_state = "mud"
edge_blending_priority = 4
turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand)
initial_flooring = /decl/flooring/desert_planet/mud
// At last we've come full circle, a floor which is actually a wall.
/turf/simulated/floor/outdoors/desert_planet/stonewall
name = "sandstone"
desc = "Rough sandstone."
icon_state = "stonewall"
density = TRUE
opacity = TRUE
edge_blending_priority = 7
initial_flooring = /decl/flooring/desert_planet/stonewall
turf_layers = list(/turf/simulated/floor/outdoors/rocks)
var/last_act = 0
// Stolen from mineral turf code.
/turf/simulated/floor/outdoors/desert_planet/stonewall/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(!user.IsAdvancedToolUser())
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
return
if(istype(W, /obj/item/weapon/pickaxe))
if(!istype(user.loc, /turf))
return
var/obj/item/weapon/pickaxe/P = W
if(last_act + P.digspeed > world.time)//prevents message spam
return
last_act = world.time
playsound(user, P.drill_sound, 20, 1)
to_chat(user, "<span class='notice'>You start [P.drill_verb].</span>")
if(do_after(user,P.digspeed))
to_chat(user, "<span class='notice'>You finish [P.drill_verb] \the [src].</span>")
new /obj/item/stack/material/sandstone(src)
density = FALSE
opacity = FALSE
demote() // Converts the turf to the next layer in turf_layers.
..()
/turf/simulated/floor/outdoors/desert_planet/sandrock
name = "sandstone tiles"
desc = "Tightly joined in a mesmerizing lattice."
icon_state = "sandrock"
density = TRUE
opacity = TRUE
initial_flooring = /decl/flooring/desert_planet/sandrock
// Declarations (for initial_flooring)
/decl/flooring/desert_planet // Yeah don't use this one, it's a parent just for setting icon.
name = "desert stuff"
desc = "If you see this, this turf is using the wrong decl."
icon = 'modular_chomp/icons/turf/desert_tiles.dmi'
icon_base = null
/decl/flooring/desert_planet/sand
name = "sand"
desc = "Salty and gritty."
icon_base = "sand"
has_base_range = 2
/decl/flooring/desert_planet/deep_sand
name = "sand"
desc = "Really gets everywhere."
icon_base = "deep_sand"
has_base_range = 2
/decl/flooring/desert_planet/grass
name = "grass"
desc = "Lively green grass, soft to walk on."
icon_base = "grass"
/decl/flooring/desert_planet/deep_grass
name = "dense grass"
desc = "Dense patch of grass, seems like a soft spot to lay on."
icon_base = "deep_grass"
/decl/flooring/desert_planet/gravel
name = "gravel"
desc = "Mix of dirt and sand, it crumbles in your hand."
icon_base = "gravel"
/decl/flooring/desert_planet/mud
name = "mud"
desc = "Squishy damp dirt, smells muddy."
icon_base = "mud"
/decl/flooring/desert_planet/stonewall
name = "sandstone"
desc = "Rough sandstone."
icon_base = "stonewall"
/decl/flooring/desert_planet/sandrock
name = "sandstone tiles"
desc = "Tightly joined in a mesmerizing lattice."
icon_base = "sandrock"
flags = TURF_HAS_EDGES | TURF_HAS_CORNERS
/*
/obj/effect/floor_decal/desert_planet/floor/sand0_edge
name = "sand0_edge"
icon = 'icons/turf/desert_planet.dmi'
icon_state = "sand0_edge"
/obj/effect/floor_decal/desert_planet/floor/gravel_edge
name = "gravel_edge"
icon = 'icons/turf/desert_planet.dmi'
icon_state = "gravel_edge"
/obj/effect/floor_decal/desert_planet/floor/mud_edge
name = "mud_edge"
icon = 'icons/turf/desert_planet.dmi'
icon_state = "mud_edge"
/obj/effect/floor_decal/desert_planet/floor/grass_edge
name = "grass_edge"
icon = 'icons/turf/desert_planet.dmi'
icon_state = "grass_edge"
/obj/effect/floor_decal/desert_planet/floor/deep_grass_edge
name = "deep_grass_edge"
icon = 'icons/turf/desert_planet.dmi'
icon_state = "deep_grass_edge"
*/
/* #No idea how water tiles work
/turf/simulated/floor/outdoors/desert_planet/water
name = "water"
desc = "Clear cool water, looks potable."
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
icon = 'icons/turf/desert_planet.dmi'
icon_state = "water"
edge_blending_priority = 8
var/water_state = "water_shallow"
var/under_state = "sand"
can_be_plated = FALSE
outdoors = OUTDOORS_YES
flags = TURF_ACID_IMMUNE
layer = WATER_FLOOR_LAYER
can_dirty = FALSE // It's water
var/depth = 1 // Higher numbers indicates deeper water.
var/reagent_type = "water"
edge_blending_priority = 2
turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand)
/turf/simulated/floor/outdoors/desert_planet/deep_water
name = "deep water"
desc = "deep enough you can't see the bottom of it."
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
icon = 'icons/turf/desert_planet.dmi'
icon_state = "deep_water"
edge_blending_priority = 9
var/water_state = "water_shallow"
var/under_state = "sand"
can_be_plated = FALSE
outdoors = OUTDOORS_YES
flags = TURF_ACID_IMMUNE
layer = WATER_FLOOR_LAYER
can_dirty = FALSE // It's water
var/depth = 2 // Higher numbers indicates deeper water.
var/reagent_type = "water"
edge_blending_priority = 4
turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand)
//I want this for the water tiles
/turf/simulated/floor/water
name = "shallow water"
desc = "A body of water. It seems shallow enough to walk through, if needed."
icon = 'icons/turf/outdoors.dmi'
icon_state = "seashallow" // So it shows up in the map editor as water.
var/water_state = "water_shallow"
var/under_state = "rock"
edge_blending_priority = -1
movement_cost = 4
can_be_plated = FALSE
outdoors = OUTDOORS_YES
flags = TURF_ACID_IMMUNE
layer = WATER_FLOOR_LAYER
can_dirty = FALSE // It's water
var/depth = 1 // Higher numbers indicates deeper water.
var/reagent_type = "water"
// var/datum/looping_sound/water/soundloop CHOMPEdit: Removing soundloop for now.
*/
@@ -0,0 +1,47 @@
/mob/living/simple_mob/animal/passive/dog/stray
name = "dog"
desc = "The most standard dog you have ever seen, it even smells like one."
tt_desc = "Canis lupus familiaris"
//faction = "mexico" //They are from Mexico. //Amusing but this prompts aggression from crew-aligned mobs.
icon = 'modular_chomp/icons/turf/desert_tiles.dmi'
icon_state = "dog"
item_state = "dog"
icon_living = "dog"
icon_rest = "dog"
icon_dead = "dog"
health = 50
maxHealth = 50
mob_size = MOB_SMALL
pass_flags = PASSTABLE
can_pull_size = ITEMSIZE_TINY
can_pull_mobs = MOB_PULL_NONE
layer = MOB_LAYER
density = 1
movement_cooldown = 0.75 //roughly a bit faster than a person
response_help = "pets"
response_disarm = "rolls aside"
response_harm = "stomps"
melee_damage_lower = 5
melee_damage_upper = 7
attacktext = list("nips", "bumps", "scratches")
vore_taste = "wet dog"
min_oxy = 16 //Require atleast 16kPA oxygen
minbodytemp = 223 //Below -50 Degrees Celcius
maxbodytemp = 523 //Above 80 Degrees Celcius
heat_damage_per_tick = 3
cold_damage_per_tick = 3
meat_amount = 7
holder_type = /obj/item/weapon/holder/armadillo
ai_holder_type = /datum/ai_holder/simple_mob/armadillo
speak_emote = list("rumbles", "chirr?", "churr")
say_list_type = /datum/say_list/armadillo
@@ -4,10 +4,11 @@
// preferentially take digitigrade value from owner if available, THEN DNA.
// this allows limbs to be set properly when being printed in the bioprinter without an owner
// this also allows the preview mannequin to update properly because customisation topic calls don't call a DNA check
var/check_digi = istype(src,/obj/item/organ/external/leg) || istype(src,/obj/item/organ/external/foot)
if(owner)
digitigrade = owner.digitigrade && (istype(src,/obj/item/organ/external/leg) || istype(src,/obj/item/organ/external/foot))
digitigrade = check_digi && owner.digitigrade
else if(dna)
digitigrade = dna.digitigrade && (istype(src,/obj/item/organ/external/leg) || istype(src,/obj/item/organ/external/foot))
digitigrade = check_digi && dna.digitigrade
var/robotic_digi = prosthetic_digi && digitigrade //could make it so the prosthetic digi var is more of a "does this limb have a custom digitigrade sprite for its robospriting" but this is fine for now
@@ -57,13 +58,15 @@
if((!istype(src,/obj/item/organ/external/head) && !(force_icon && !robotic_digi)) || (model && owner && owner.synth_markings))
for(var/M in markings)
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
var/isdigitype = istype(mark_style,/datum/sprite_accessory/marking/digi)
if(!(digitigrade ^ isdigitype)) //Equivalent to XNOR; this code will only run if either both digitigrade and isdigitype are true, or if both are false.
var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) // VOREStation edit
add_overlay(mark_s) //So when it's not on your body, it has icons
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
icon_cache_key += "[M][markings[M]["color"]]"
var/isdigitype = mark_style.digitigrade_acceptance
if(check_digi)
if (!(isdigitype & (digitigrade ? MARKING_DIGITIGRADE_ONLY : MARKING_NONDIGI_ONLY))) //checks flags based on which digitigrade type the limb is
continue
var/icon/mark_s = new/icon("icon" = digitigrade ? mark_style.digitigrade_icon : mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) // VOREStation edit
add_overlay(mark_s) //So when it's not on your body, it has icons
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
icon_cache_key += "[M][markings[M]["color"]]"
if(body_hair && islist(h_col) && h_col.len >= 3)
var/cache_key = "[body_hair]-[icon_name]-[h_col[1]][h_col[2]][h_col[3]]"
if(!limb_icon_cache[cache_key])
Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 18 KiB

+3
View File
@@ -71,6 +71,7 @@
#include "code\__defines\misc_ch.dm"
#include "code\__defines\misc_vr.dm"
#include "code\__defines\mobs.dm"
#include "code\__defines\mobs_ch.dm"
#include "code\__defines\mobs_vr.dm"
#include "code\__defines\mobs_yw.dm"
#include "code\__defines\nifsoft.dm"
@@ -4525,6 +4526,7 @@
#include "modular_chomp\code\game\machinery\airconditioner_ch.dm"
#include "modular_chomp\code\game\machinery\autolathe_armory.dm"
#include "modular_chomp\code\game\objects\items\clockwork\ratvarian_spear.dm"
#include "modular_chomp\code\game\objects\structures\desert_planet_structures.dm"
#include "modular_chomp\code\game\objects\structures\loot_pile.dm"
#include "modular_chomp\code\game\objects\structures\watercloset_ch.dm"
#include "modular_chomp\code\game\objects\structures\crate_lockers\largecrate.dm"
@@ -4591,6 +4593,7 @@
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\gygax.dm"
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\occult\constructs\juggernaut.dm"
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\bigdragon.dm"
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\desert_planet_mobs.dm"
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\greatwolf.dm"
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\swoopie.dm"
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\vore.dm"