Christmas Gift (#7474)

This commit is contained in:
FluffMedic
2024-01-04 17:14:00 -05:00
committed by GitHub
parent 1f1479f6af
commit 6f0fa34a57
13 changed files with 1046 additions and 285 deletions

View File

@@ -0,0 +1,299 @@
#define MAT_WISP "strange wisp"
#define MAT_FROSCALE "frost scale"
#define MAT_CRYSCALE "crystal scale"
#define MAT_DREAMSCALE "furred scale"
#define MAT_SHELLCHITIN "shell chitin"
/datum/material/wisp
name = MAT_WISP
icon_colour = "#F13C00"
stack_type = /obj/item/stack/material/wisp
stack_origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4)
icon_base = "solid"
icon_reinf = "reinf_mesh"
integrity = 30
weight = 10
ignition_point = T0C+600
melting_point = T0C+800
protectiveness = 5
conductive = 0
opacity = 0.5
reflectivity = 30
supply_conversion_value = 6
/obj/item/stack/material/wisp
name = "Strange Wisp"
desc = "The by-product of mob grinding."
icon = 'modular_chomp/icons/obj/crafting.dmi'
icon_state = "wisp"
default_type = MAT_WISP
no_variants = FALSE
pass_color = TRUE
strict_color_stacking = TRUE
/datum/material/frostscale
name = MAT_FROSCALE
icon_colour = "#0000CC"
stack_type = /obj/item/stack/material/frostscale
stack_origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4)
icon_base = "solid"
icon_reinf = "reinf_mesh"
integrity = 250
weight = 50
ignition_point = T0C+20
melting_point = T0C+40
protectiveness = 30
conductive = 0
opacity = 0.5
reflectivity = 0
supply_conversion_value = 8
/obj/item/stack/material/frostscale
name = "Frost Scale"
desc = "The by-product of mob grinding."
icon = 'modular_chomp/icons/obj/crafting.dmi'
icon_state = "scale"
color = "#0000CC"
default_type = MAT_FROSCALE
no_variants = FALSE
pass_color = TRUE
strict_color_stacking = TRUE
/datum/material/crystalscale
name = MAT_CRYSCALE
icon_colour = "#006633"
stack_type = /obj/item/stack/material/crystalscale
stack_origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4)
icon_base = "solid"
icon_reinf = "reinf_mesh"
integrity = 250
weight = 10
radiation_resistance = 25 //less then lead because it's lighter then lead.
protectiveness = 30
conductive = 0
opacity = 0.25
reflectivity = 60
supply_conversion_value = 4
/obj/item/stack/material/crystalscale
name = "Crystak Scale"
desc = "The by-product of mob grinding."
icon = 'modular_chomp/icons/obj/crafting.dmi'
icon_state = "scale"
color = "#006633"
default_type = MAT_CRYSCALE
no_variants = FALSE
pass_color = TRUE
strict_color_stacking = TRUE
/datum/material/dreamscale
name = MAT_DREAMSCALE
icon_colour = "#006633"
stack_type = /obj/item/stack/material/dreamscale
stack_origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4)
icon_base = "solid"
icon_reinf = "reinf_mesh"
integrity = 200
weight = 30
ignition_point = T0C+200
melting_point = T0C+400
protectiveness = 60
reflectivity = 30
supply_conversion_value = 1
/obj/item/stack/material/dreamscale
name = "Dream Scale"
desc = "The by-product of mob grinding."
icon = 'modular_chomp/icons/obj/crafting.dmi'
icon_state = "scale"
default_type = MAT_DREAMSCALE
no_variants = FALSE
pass_color = TRUE
strict_color_stacking = TRUE
/datum/material/shellchitin
name = MAT_SHELLCHITIN
icon_colour = "#006633"
stack_type = /obj/item/stack/material/dreamscale
stack_origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4)
icon_base = "solid"
icon_reinf = "reinf_mesh"
integrity = 250
weight = 100
ignition_point = T0C+300
melting_point = T0C+600
protectiveness = 50
reflectivity = 0
supply_conversion_value = 1
/obj/item/stack/material/shellchitin
name = "Shell Chitin"
desc = "The by-product of mob grinding."
icon = 'modular_chomp/icons/obj/crafting.dmi'
icon_state = "shell"
default_type = MAT_SHELLCHITIN
no_variants = FALSE
pass_color = TRUE
strict_color_stacking = TRUE
//Putting this here for now because in intial PRs, I enjoy making/altering as few files as possible.
//Solar ray stuff
/obj/item/clothing/suit/armor/firecloak
name = "solar cloak"
desc = "A strange cloak made from remnants of solar rays."
icon = 'icons/inventory/accessory/item.dmi'
icon_state = "seccloak"
color = "#F13C00"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 10, bio = 0, rad = 0)
/obj/item/clothing/suit/armor/firecloak/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(istype(damage_source, /obj/item/projectile))
return FALSE
if(attacker && attacker != user)
shoot_fire(attacker)
else
return FALSE
/obj/item/clothing/suit/armor/firecloak/proc/shoot_fire(mob/target)
var/obj/item/projectile/P = new /obj/item/projectile/fire(get_turf(src))
P.launch_projectile(target, BP_TORSO, src)
/obj/item/weapon/material/sword/rapier/solar
name = "solar rapier"
desc = "A slender, fancy and sharply pointed sword, wisps of fire swirling around it."
icon_state = "rapier"
item_state = "rapier"
slot_flags = SLOT_BELT
applies_material_colour = 0
force_divisor = 0.50
color = "#F13C00"
/obj/item/weapon/material/sword/rapier/solar/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone)
. = ..()
target.add_modifier(/datum/modifier/fire/weak, 12 SECONDS) //should be 12 damage?
//Icicle
/obj/item/weapon/gun/energy/icelauncher
name = "Strange Pistol"
desc = "A homemade and somehow functional icicle launcher."
icon = 'icons/obj/gun_ch.dmi'
icon_state = "ziplas"
item_state = "ziplas"
color = "#0000CC"
w_class = ITEMSIZE_SMALL
slot_flags = SLOT_BELT|SLOT_BACK
charge_cost = 300 //You got 5 shot
battery_lock = 1
projectile_type = /obj/item/projectile/icicle //But it hurts a lot
cell_type = /obj/item/weapon/cell/device/weapon
/obj/item/clothing/shoes/boots/frost
name = "frost boots"
desc = "Handmade boots of scavanged bits."
icon_state = "winterboots"
color = "#0000CC"
cold_protection = FEET
min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE
heat_protection = FEET
max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE
snow_speed = -1
rock_climbing = TRUE
item_flags = NOSLIP
//Turtle
/obj/item/weapon/material/twohanded/sledgehammer/gravity
name = "Gravity Sledgehammer"
desc = "A sledgehammer in bits of a gravity turtle's shell."
unwielded_force_divisor = 0.25
force_divisor = 0.40 //
dulled_divisor = 0.80 //Still metal on a stick
w_class = ITEMSIZE_LARGE
slot_flags = SLOT_BACK
force_wielded = 25
applies_material_colour = 1
/obj/item/weapon/material/twohanded/sledgehammer/gravity/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone)
. = ..()
var/atom/target_zone = get_edge_target_turf(user,get_dir(user, target))
if(!target.anchored)
target.throw_at(target_zone, 6, 2, user, FALSE)
user.visible_message("<span class='warning'>\The [src] discharges with a thunderous boom!</span>")
playsound(src, 'sound/weapons/resonator_blast.ogg', 100, 1, -1)
//Eel stuff
/obj/item/weapon/material/twohanded/fireaxe/scythe/harvester
name = "Scaled Scythe"
desc = "A scythe cladded in dream eel scales, allowing for better defense at the cost of offense."
force_wielded = 18
force_divisor = 0.3 // 18 with hardness 60 (steel)
unwielded_force_divisor = 0.10
var/defend_chance = 50
var/projectile_parry_chance = 50
/obj/item/clothing/suit/armor/alien/dreamercloak
name = "Dreamer Cloak"
desc = "A strange cloak, something about it feels off."
icon = 'icons/inventory/accessory/item.dmi'
icon_state = "seccloak" //custom sprite for this for sure.
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
block_chance = 35
slowdown = -0.5
//uggg, why isnt this apart of the base material melee weapons
/obj/item/weapon/material/twohanded/fireaxe/scythe/harvester/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(.)
return .
if(default_parry_check(user, attacker, damage_source) && prob(defend_chance))
user.visible_message("<span class='danger'>\The [user] parries [attack_text] with \the [src]!</span>")
return 1
if(unique_parry_check(user, attacker, damage_source) && prob(projectile_parry_chance))
user.visible_message("<span class='danger'>\The [user] deflects [attack_text] with \the [src]!</span>")
return 1
return 0
/obj/item/clothing/gloves/toxinregen
name = "purging gloves"
desc = "A pair of gloves with a small storage of green liquid on the outside. On the inside, a a hypodermic needle can be seen \
on each glove."
icon_state = "regen"
item_state = "graygloves"
siemens_coefficient = 0
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_COLD_PROTECTION_TEMPERATURE
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_HEAT_PROTECTION_TEMPERATURE
/obj/item/clothing/gloves/toxinregen/equipped(var/mob/living/carbon/human/H)
if(H && H.gloves == src)
wearer = H
if(wearer.can_feel_pain())
to_chat(H, "<span class='danger'>You feel a stabbing sensation in your hands as you slide \the [src] on!</span>")
wearer.custom_pain("You feel a sharp pain in your hands!",1)
..()
/obj/item/clothing/gloves/toxinregen/dropped(var/mob/living/carbon/human/H)
..()
if(wearer)
if(wearer.can_feel_pain())
to_chat(wearer, "<span class='danger'>You feel the hypodermic needles as you slide \the [src] off!</span>")
wearer.custom_pain("Your hands hurt like hell!",1)
wearer = null
/obj/item/clothing/gloves/toxinregen/New()
START_PROCESSING(SSobj, src)
..()
/obj/item/clothing/gloves/toxinregen/Destroy()
wearer = null
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/clothing/gloves/toxinregen/process()
if(!wearer || wearer.isSynthetic() || wearer.stat == DEAD || wearer.nutrition <= 10)
return
if(wearer.getToxLoss())
wearer.adjustToxLoss(-0.5)

View File

@@ -31,4 +31,95 @@
list(/obj/item/stack/material/leather = 1)
)
time = 240
category = CAT_MISC
category = CAT_MISC
/datum/crafting_recipe/solarcloak
name = "solar cloak"
result = /obj/item/clothing/suit/armor/firecloak
reqs = list(
list(/obj/item/stack/material/cloth = 10),
list(/obj/item/stack/material/wisp = 2)
)
time = 60
category = CAT_CLOTHING
/datum/crafting_recipe/dreamcloak
name = "solar cloak"
result = /obj/item/clothing/suit/armor/alien/dreamercloak
reqs = list(
list(/obj/item/stack/material/cloth = 10),
list(/obj/item/stack/material/dreamscale = 2)
)
time = 60
category = CAT_CLOTHING
/datum/crafting_recipe/toxinregengloves
name = "purging gloves"
result = /obj/item/clothing/gloves/toxinregen
reqs = list(
list(/obj/item/stack/material/cloth = 10),
list(/obj/item/stack/material/crystalscale = 2),
list(/obj/item/stack/material/resin = 8),
/obj/item/weapon/stock_parts/capacitor = 1
)
time = 60
category = CAT_CLOTHING
/datum/crafting_recipe/iceboots
name = "frost boots"
result = /obj/item/clothing/shoes/boots/frost
reqs = list(
list(/obj/item/stack/material/frostscale = 2),
/obj/item/clothing/shoes/boots/winter = 1
)
time = 60
category = CAT_CLOTHING
/datum/crafting_recipe/strangepistol
name = "Strange Weapon"
result = /obj/item/weapon/gun/energy/icelauncher
reqs = list(
list(/obj/item/stack/material/steel = 8),
list(/obj/item/stack/material/plastic = 3),
list(/obj/item/weapon/cell/device = 1),
list(/obj/item/stack/material/frostscale = 2)
)
time = 60
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/solarrapier
name = "Solar Rapier"
result = /obj/item/weapon/material/sword/rapier/solar
reqs = list(
list(/obj/item/stack/material/steel = 15),
list(/obj/item/stack/material/leather = 3),
list(/obj/item/stack/material/wisp = 2)
)
time = 60
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/gravityhammer
name = "Gravity Hammer"
result = /obj/item/weapon/material/twohanded/sledgehammer/gravity
reqs = list(list(/obj/item/stack/material/steel = 15),
list(/obj/item/stack/material/leather = 3),
list(/obj/item/stack/material/shellchitin = 2),
list(/obj/item/weapon/cell/high = 1)
)
time = 60
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/harvester
name = "Harvester"
result = /obj/item/weapon/material/twohanded/fireaxe/scythe/harvester
reqs = list(list(/obj/item/stack/material/steel = 15),
list(/obj/item/stack/material/leather = 3),
list(/obj/item/stack/material/dreamscale = 2)
)
time = 60
category = CAT_WEAPONRY
subcategory = CAT_WEAPON

View File

@@ -0,0 +1,34 @@
/datum/supply_pack/misc/solarray
name = "Exotic crate - Solar Ray"
contains = list()
cost = 100
containertype = /obj/structure/largecrate/animal/solarray
containername = "Exotic crate"
/datum/supply_pack/misc/livingice
name = "Exotic crate - Living Ice"
contains = list()
cost = 100
containertype = /obj/structure/largecrate/animal/livingice
containername = "Exotic crate"
/datum/supply_pack/misc/radcrab
name = "Exotic crate - Crystaline Crab"
contains = list()
cost = 100
containertype = /obj/structure/largecrate/animal/radcrab
containername = "Exotic crate"
/datum/supply_pack/misc/dreameel
name = "Exotic crate - Dream Eel"
contains = list()
cost = 100
containertype = /obj/structure/largecrate/animal/dreameel
containername = "Exotic crate"
/datum/supply_pack/misc/gravityshell
name = "Exotic crate - Gravity Shell"
contains = list()
cost = 100
containertype = /obj/structure/largecrate/animal/gravityshell
containername = "Exotic crate"

View File

@@ -23,3 +23,28 @@
name = "SWOOPIE XL CleanBot Starter Kit"
desc = "WARNING: HAZARDOUS CONTENTS. HANDLE WITH CAUTION. Consult spiritual observer intervention to avoid rogue units. (That means ghosts. Ominous.)"
starts_with = list(/mob/living/simple_mob/vore/aggressive/corrupthound/swoopie)
/obj/structure/largecrate/animal/solarray
name = "Exotic crate"
desc = "WARNING: HAZARDOUS CONTENTS. HANDLE WITH CAUTION"
starts_with = list(/mob/living/simple_mob/vore/spacecritter/solarray)
/obj/structure/largecrate/animal/livingice
name = "Exotic crate"
desc = "WARNING: HAZARDOUS CONTENTS. HANDLE WITH CAUTION"
starts_with = list(/mob/living/simple_mob/vore/spacecritter/livingice)
/obj/structure/largecrate/animal/radcrab
name = "Exotic crate"
desc = "WARNING: HAZARDOUS CONTENTS. HANDLE WITH CAUTION"
starts_with = list(/mob/living/simple_mob/vore/spacecritter/radcrab)
/obj/structure/largecrate/animal/dreameel
name = "Exotic crate"
desc = "WARNING: HAZARDOUS CONTENTS. HANDLE WITH CAUTION"
starts_with = list(/mob/living/simple_mob/vore/spacecritter/dreameel)
/obj/structure/largecrate/animal/gravityshell
name = "Exotic crate"
desc = "WARNING: HAZARDOUS CONTENTS. HANDLE WITH CAUTION"
starts_with = list(/mob/living/simple_mob/vore/spacecritter/gravityshell)

View File

@@ -57,18 +57,18 @@
danger = rand(0,2)
switch(danger)
if(DANGER_CRAB)
spawn_types = list(/mob/living/simple_mob/vore/radcrab)
spawn_types = list(/mob/living/simple_mob/vore/spacecritter/radcrab)
min_number = 1
max_number = 4
dangerstring = "crystaline crabs"
if(DANGER_ICE)
spawn_types = list(/mob/living/simple_mob/vore/livingice)
spawn_types = list(/mob/living/simple_mob/vore/spacecritter/livingice)
min_number = 1
max_number = 4
dangerstring = "strange entities"
if(DANGER_RAY)
spawn_types = list(/mob/living/simple_mob/vore/solarray)
spawn_types = list(/mob/living/simple_mob/vore/spacecritter/solarray)
min_number = 1
max_number = 4
dangerstring = "solar rays"

View File

@@ -111,6 +111,7 @@
//Spacedust doesn't work, commenting this out.
//new /datum/event_meta(EVENT_LEVEL_MODERATE, "Space Dust", /datum/event/dust, 0, list(ASSIGNMENT_ENGINEER = 20), 1, 0, 50),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Exotic Infestation", /datum/event/dangerinfestation, -30, list(ASSIGNMENT_ENGINEER = 20, ASSIGNMENT_SCIENCE = 5, ASSIGNMENT_ANY = 2)),
//Check if wormhole code is good and then move to enabled.
// new /datum/event_meta(EVENT_LEVEL_MODERATE, "Wormholes", /datum/event/wormholes, 20, list(ASSIGNMENT_ANY = 5)),
// new /datum/event_meta(EVENT_LEVEL_MODERATE, "Lost Spiders", /datum/event/spider_migration, 0, list(ASSIGNMENT_SECURITY = 30), 1), //YW EDIT //CHOMPStation Edit: Moved to disabled. This is a YW feature that spawns spiders on carp spawns.
@@ -130,7 +131,7 @@
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Space Vines", /datum/event/spacevine, 20, list(ASSIGNMENT_ENGINEER = 15), 1),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1, min_jobs = list(ASSIGNMENT_CARGO = 1)),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Viral Infection", /datum/event/viral_infection, -50, list(ASSIGNMENT_MEDICAL = 25), 1, min_jobs = list(ASSIGNMENT_MEDICAL = 2)),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Excotic Infestation", /datum/event/dangerinfestation, -60, list(ASSIGNMENT_ENGINEER = 15, ASSIGNMENT_SCIENCE = 5, ASSIGNMENT_ANY = 1)),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Exotic Horde Infestation", /datum/event/highdangerinfestation, -50, list(ASSIGNMENT_ENGINEER = 20, ASSIGNMENT_SCIENCE = 5, ASSIGNMENT_ANY = 2)),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meaty Ores Wave", /datum/event/meteor_wave/meatyores, -90, list(ASSIGNMENT_ENGINEER = 50, ASSIGNMENT_MEDICAL = 10, ASSIGNMENT_ANY = 1), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
)
add_disabled_events(list(

View File

@@ -0,0 +1,124 @@
#define LOC_RIOT 0
#define LOC_ATMOS 1
#define LOC_DISPOSAL 2
#define LOC_TECH 3
#define LOC_VAULT 4
#define LOC_VIRO 5
#define LOC_BRIDGE 6
#define LOC_BRIG 7
#define DANGER_CRAB 0
#define DANGER_ICE 1
#define DANGER_RAY 2
#define DANGER_EEL 3
#define DANGER_TURTLE 4
//infestation event of a diffrent variety
//meant for engineering and science to exploit
/datum/event/highdangerinfestation
announceWhen = 10
endWhen = 11
var/location
var/locstring
var/danger
var/dangerstring
/datum/event/highdangerinfestation/start()
location = rand(0,7)
var/list/turf/simulated/floor/turfs = list()
var/spawn_area_type
switch(location)
if(LOC_RIOT)
spawn_area_type = /area/security/riot_control
locstring = "riot control"
if(LOC_ATMOS)
spawn_area_type = /area/engineering/atmos
locstring = "atmospherics"
if(LOC_DISPOSAL)
spawn_area_type = /area/maintenance/disposal
locstring = "the disposal"
if(LOC_TECH)
spawn_area_type = /area/storage/tech
locstring = "technical storage"
if(LOC_VAULT)
spawn_area_type = /area/security/nuke_storage
locstring = "the vault"
if(LOC_VIRO)
spawn_area_type = /area/medical/virology
locstring = "the virogoly"
if(LOC_BRIDGE)
spawn_area_type = /area/bridge
locstring = "the bridge"
if(LOC_BRIG)
spawn_area_type = /area/security/prison
locstring = "the brig"
for(var/areapath in typesof(spawn_area_type))
var/area/A = locate(areapath)
for(var/turf/simulated/floor/F in A.contents)
//VOREStation Edit - Fixes event
var/blocked = FALSE
for(var/atom/movable/AM in F)
if(AM.density)
blocked = TRUE
if(!blocked)
turfs += F
var/list/spawn_types = list()
var/min_number
var/max_number
danger = rand(0,4)
switch(danger)
if(DANGER_CRAB)
spawn_types = list(/mob/living/simple_mob/vore/spacecritter/radcrab)
min_number = 2
max_number = 6
dangerstring = "crystaline crabs"
if(DANGER_ICE)
spawn_types = list(/mob/living/simple_mob/vore/spacecritter/livingice)
min_number = 2
max_number = 6
dangerstring = "strange entities"
if(DANGER_RAY)
spawn_types = list(/mob/living/simple_mob/vore/spacecritter/solarray)
min_number = 2
max_number = 6
dangerstring = "solar rays"
if(DANGER_EEL)
spawn_types = list(/mob/living/simple_mob/vore/spacecritter/dreameel)
min_number = 2
max_number = 6
dangerstring = "strange entities"
if(DANGER_TURTLE)
spawn_types = list(/mob/living/simple_mob/vore/spacecritter/gravityshell)
min_number = 2
max_number = 6
dangerstring = "strange entities"
spawn(0)
var/num = rand(min_number,max_number)
while(turfs.len > 0 && num > 0)
var/turf/simulated/floor/T = pick(turfs)
turfs.Remove(T)
num--
var/spawn_type = pick(spawn_types)
new spawn_type(T)
/datum/event/highdangerinfestation/announce()
command_announcement.Announce("Bioscans indicate that [dangerstring] have been entered [locstring]. Contain them before they start causing damage.", "Alien infestation")
#undef LOC_RIOT
#undef LOC_ATMOS
#undef LOC_DISPOSAL
#undef LOC_TECH
#undef LOC_VAULT
#undef LOC_VIRO
#undef LOC_BRIDGE
#undef LOC_BRIG
#undef DANGER_CRAB
#undef DANGER_ICE
#undef DANGER_RAY
#undef DANGER_EEL
#undef DANGER_TURTLE

View File

@@ -53,4 +53,30 @@
/obj/item/weapon/reagent_containers/food/snacks/metroidmeat/Initialize()
. = ..()
reagents.add_reagent("protein", 3)
reagents.add_reagent("liquidlife", 3)
reagents.add_reagent("liquidlife", 3)
/obj/item/weapon/reagent_containers/food/snacks/meat/raymeat
name = "Solar Ray Meat"
desc = "You aren't sure how ediable this is"
icon_state = "meat"
center_of_mass = list("x"=17, "y"=16)
nutriment_amt = 3
nutriment_desc = list("protein" = 3, "capsaicin" = 8, "condensedcapsaicin" = 8)
/obj/item/weapon/reagent_containers/food/snacks/meat/eelmeat
name = "Eel Meat"
desc = "A slice from an eel"
icon_state = "meat"
center_of_mass = list("x"=17, "y"=16)
nutriment_amt = 3
nutriment_desc = list("protein" = 3, "shockchem" = 1)
/obj/item/weapon/reagent_containers/food/snacks/meat/gravityshell
name = "Gravity Shell Meat"
desc = "A slice from a gravity shell"
icon_state = "meat"
center_of_mass = list("x"=17, "y"=16)
nutriment_amt = 3
nutriment_desc = list("protein" = 24)

View File

@@ -1,282 +1,3 @@
/mob/living/simple_mob/vore/solarray //solar moth lite, dies to water
name = "solar ray"
desc = "A sting ray of fire, drifting around"
icon = 'modular_chomp/icons/mob/spaceinvader.dmi'
icon_state = "solarray"
icon_living = "solarray"
icon_dead = "solarray-dead"
health = 30
maxHealth = 30
movement_cooldown = 3 // Lower is faster.
aquatic_movement = 0 // If set, the mob will move through fluids with no hinderance.
minbodytemp = 0 // Minimum "okay" temperature in kelvin
maxbodytemp = 10000 // Maximum of above
heat_damage_per_tick = 3 // Amount of damage applied if animal's body temperature is higher than maxbodytemp
cold_damage_per_tick = 2 // Same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp
min_oxy = 0 // Oxygen in moles, minimum, 0 is 'no minimum'
max_oxy = 0 // Oxygen in moles, maximum, 0 is 'no maximum'
min_tox = 0 // Phoron min
max_tox = 0 // Phoron max
min_co2 = 0 // CO2 min
max_co2 = 0 // CO2 max
min_n2 = 0 // N2 min
max_n2 = 0 // N2 max
unsuitable_atoms_damage = 2 // This damage is taken when atmos doesn't fit all the requirements above
melee_damage_lower = 12 // Lower bound of randomized melee damage
melee_damage_upper = 12 // Upper bound of randomized melee damage
attacktext = list("incinerate") // "You are [attacktext] by the mob!"
melee_miss_chance = 0 // percent chance to miss a melee attack.
attack_armor_type = "energy" // What armor does this check?
attack_armor_pen = 30 // How much armor pen this attack has.
attack_sharp = FALSE // Is the attack sharp?
attack_edge = FALSE // Does the attack have an edge?
melee_attack_delay = 1.5 // If set, the mob will do a windup animation and can miss if the target moves out of the way.
ai_holder_type = /datum/ai_holder/simple_mob/retaliate
hovering = TRUE
//Damage resistances
grab_resist = 0 // Chance for a grab attempt to fail. Note that this is not a true resist and is just a prob() of failure.
resistance = 0 // Damage reduction for all types
armor = list( // Values for normal getarmor() checks
"melee" = 90,
"bullet" = 95,
"laser" = 100,
"energy" = 100,
"bomb" = 0,
"bio" = 100,
"rad" = 100
)
armor_soak = list( // Values for getsoak() checks.
"melee" = 7,
"bullet" = 7,
"laser" = 7,
"energy" = 7,
"bomb" = 0,
"bio" = 0,
"rad" = 0
)
heat_resist = 1.0
cold_resist = 1.0
shock_resist = 0.0
water_resist = 0.0
taser_kill = 0
var/mycolour = COLOR_RED //Variable Lighting colours
var/original_temp = null //Value to remember temp
var/set_temperature = T0C + 5000 //Sets the target point of 10k degrees celsius
var/heating_power = 50000
/mob/living/simple_mob/vore/solarray/Life()
. = ..()
if(icon_state != icon_dead) //I mean on death() Life() should disable but i guess doesnt hurt to make sure -shark
var/turf/moth_loc = get_turf(src)
if(isturf(moth_loc) && moth_loc.air)
var/datum/gas_mixture/env = moth_loc.return_air() //Gets all the information on the local air.
var/transfer_moles = 0.25 * env.total_moles //The bigger the room, the harder it is to heat the room.
var/datum/gas_mixture/removed = env.remove(transfer_moles)
var/heat_transfer = removed.get_thermal_energy_change(set_temperature)
if(heat_transfer > 0 && env.temperature < T0C + 200) //This should start heating the room at a moderate pace up to 200 degrees celsius.
heat_transfer = min(heat_transfer , heating_power) //limit by the power rating of the heater
removed.add_thermal_energy(heat_transfer)
else if(heat_transfer > 0 && env.temperature < set_temperature) //Set temperature is 10,000 degrees celsius. So this thing will start cooking crazy hot between the temperatures of 200C and 10,000C.
heating_power = original_temp*100 //Changed to work variable -shark //FLAME ON! This will make the moth heat up the room at an incredible rate.
heat_transfer = min(heat_transfer , heating_power) //limit by the power rating of the heater. Except it's hot, so yeah.
removed.add_thermal_energy(heat_transfer)
else
return
env.merge(removed)
//Since I'm changing hyper mode to be variable we need to store old power
original_temp = heating_power
/mob/living/simple_mob/vore/livingice //frost solar moth or blue slime on crack. Dies to lasers or slighly toasty rooms
name = "living icicle"
desc = "A strange creature, a floating shard of ice"
icon = 'modular_chomp/icons/mob/spaceinvader.dmi'
icon_state = "hermitcrab"
icon_living = "hermitcrab"
icon_dead = "hermitcrab-dead"
health = 30
maxHealth = 30
movement_cooldown = 3 //VOREStation Edit - 1 is slower than normal human speed // Lower is faster.
aquatic_movement = 0 // If set, the mob will move through fluids with no hinderance.
minbodytemp = 0 // Minimum "okay" temperature in kelvin
maxbodytemp = 300 // Maximum of above
heat_damage_per_tick = 15 // Amount of damage applied if animal's body temperature is higher than maxbodytemp
cold_damage_per_tick = 15 // Same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp
min_oxy = 0 // Oxygen in moles, minimum, 0 is 'no minimum'
max_oxy = 0 // Oxygen in moles, maximum, 0 is 'no maximum'
min_tox = 0 // Phoron min
max_tox = 6 // Phoron max
min_co2 = 0 // CO2 min
max_co2 = 0 // CO2 max
min_n2 = 0 // N2 min
max_n2 = 0 // N2 max
unsuitable_atoms_damage = 2 // This damage is taken when atmos doesn't fit all the requirements above
melee_damage_lower = 30 // Lower bound of randomized melee damage
melee_damage_upper = 30 // Upper bound of randomized melee damage
attacktext = list("attacked") // "You are [attacktext] by the mob!"
melee_miss_chance = 0 // percent chance to miss a melee attack.
attack_armor_type = "melee" // What armor does this check?
attack_armor_pen = 0 // How much armor pen this attack has.
attack_sharp = FALSE // Is the attack sharp?
attack_edge = FALSE // Does the attack have an edge?
melee_attack_delay = 3 // If set, the mob will do a windup animation and can miss if the target moves out of the way..
ai_holder_type = /datum/ai_holder/simple_mob/retaliate
hovering = TRUE
//Damage resistances
grab_resist = 0 // Chance for a grab attempt to fail. Note that this is not a true resist and is just a prob() of failure.
resistance = 0 // Damage reduction for all types
armor = list( // Values for normal getarmor() checks
"melee" = 100,
"bullet" = 100,
"laser" = 0,
"energy" = 0,
"bomb" = 0,
"bio" = 100,
"rad" = 100
)
armor_soak = list( // Values for getsoak() checks.
"melee" = 7,
"bullet" = 7,
"laser" = 0,
"energy" = 0,
"bomb" = 0,
"bio" = 0,
"rad" = 0
)
heat_resist = 0.0
cold_resist = 0.0
shock_resist = 0.0
water_resist = 1.0
/mob/living/simple_mob/vore/livingice/proc/cold_aura()
for(var/mob/living/L in view(2, src))
var/turf/T = get_turf(src)
var/datum/gas_mixture/env = T.return_air()
if(env)
env.add_thermal_energy(-5 * 1000)
/mob/living/simple_mob/vore/radcrab //bullets, melee, and cold all crack the poor thing's shell
name = "crystaline crab"
desc = "A largeish hermit crab glowing green, irradting the nearby area"
icon = 'modular_chomp/icons/mob/spaceinvader.dmi'
icon_state = "hermitcrab"
icon_living = "hermitcrab"
icon_dead = "hermitcrab-dead"
health = 30
maxHealth = 30
movement_cooldown = 3 //VOREStation Edit - 1 is slower than normal human speed // Lower is faster.
aquatic_movement = 1 // If set, the mob will move through fluids with no hinderance.
minbodytemp = 260 // Minimum "okay" temperature in kelvin
maxbodytemp = 10000 // Maximum of above
heat_damage_per_tick = 15 // Amount of damage applied if animal's body temperature is higher than maxbodytemp
cold_damage_per_tick = 15 // Same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp
min_oxy = 0 // Oxygen in moles, minimum, 0 is 'no minimum'
max_oxy = 0 // Oxygen in moles, maximum, 0 is 'no maximum'
min_tox = 0 // Phoron min
max_tox = 0 // Phoron max
min_co2 = 0 // CO2 min
max_co2 = 5 // CO2 max
min_n2 = 0 // N2 min
max_n2 = 0 // N2 max
unsuitable_atoms_damage = 2 // This damage is taken when atmos doesn't fit all the requirements above
melee_damage_lower = 2 // Lower bound of randomized melee damage
melee_damage_upper = 2 // Upper bound of randomized melee damage
attacktext = list("pinches") // "You are [attacktext] by the mob!"
melee_miss_chance = 0 // percent chance to miss a melee attack.
attack_armor_type = "melee" // What armor does this check?
attack_armor_pen = 100 // How much armor pen this attack has.
attack_sharp = TRUE // Is the attack sharp?
attack_edge = TRUE // Does the attack have an edge?
melee_attack_delay = 0 // If set, the mob will do a windup animation and can miss if the target moves out of the way.
ai_holder_type = /datum/ai_holder/simple_mob/retaliate
hovering = TRUE
//Damage resistances
grab_resist = 0 // Chance for a grab attempt to fail. Note that this is not a true resist and is just a prob() of failure.
resistance = 0 // Damage reduction for all types
armor = list( // Values for normal getarmor() checks
"melee" = -50,
"bullet" = 0,
"laser" = 100,
"energy" = 100,
"bomb" = 0,
"bio" = 100,
"rad" = 100
)
armor_soak = list( // Values for getsoak() checks.
"melee" = 0,
"bullet" = 0,
"laser" = 7,
"energy" = 7,
"bomb" = 0,
"bio" = 0,
"rad" = 0
)
heat_resist = 0.0
cold_resist = 0.0
shock_resist = 0.0
water_resist = 1.0
taser_kill = 0
var/rads = 75
/mob/living/simple_mob/vore/radcrab/handle_special()
if(stat != DEAD)
irradiate()
..()
/mob/living/simple_mob/vore/radcrab/proc/irradiate()
SSradiation.radiate(src, rads)
/mob/living/simple_mob/vore/solarray
vore_bump_chance = 80
vore_bump_emote = "devours"
vore_active = 1
vore_capacity = 1
vore_pounce_chance = 0
vore_default_mode = DM_DIGEST
/mob/living/simple_mob/vore/livingice
vore_bump_chance = 0
vore_bump_emote = "devours"
vore_active = 1
vore_capacity = 1
vore_pounce_chance = 0
vore_default_mode = DM_DIGEST
/mob/living/simple_mob/vore/radcrab
vore_bump_chance = 40
vore_bump_emote = "devours"
vore_active = 1
vore_capacity = 1
vore_pounce_chance = 0
vore_default_mode = DM_DIGEST
/mob/living/simple_mob/vore/aggressive/rat
maxHealth = 75

View File

@@ -0,0 +1,436 @@
/mob/living/simple_mob/vore/spacecritter
icon = 'modular_chomp/icons/mob/spaceinvader.dmi'
health = 30
maxHealth = 30
movement_cooldown = 3
aquatic_movement = 0
minbodytemp = 0
maxbodytemp = 10000 // Maximum of above
heat_damage_per_tick = 3
cold_damage_per_tick = 2
min_oxy = 0
max_oxy = 0
min_tox = 0
max_tox = 0
min_co2 = 0
max_co2 = 0
min_n2 = 0
max_n2 = 0
unsuitable_atoms_damage = 2
melee_damage_lower = 12
melee_damage_upper = 12
melee_miss_chance = 0
melee_attack_delay = 1.5
ai_holder_type = /datum/ai_holder/simple_mob/retaliate
hovering = TRUE
heat_resist = 1.0
cold_resist = 1.0
shock_resist = 0.0
water_resist = 1.0
taser_kill = 0
var/evolve = "/mob/living/simple_mob/vore/solarray/galaxyray"
var/feed = "/obj/item/weapon/ore/phoron"
var/evolvekey = "/obj/item/stack/material/tritium"
var/copy = "/mob/living/simple_mob/vore/solarray"
/mob/living/simple_mob/vore/spacecritter/attackby(var/obj/item/O, var/mob/user)
if(istype(O, evolvekey))
user.drop_from_inventory(O)
qdel(O)
evolve()
if(istype(O, feed))
user.drop_from_inventory(O)
qdel(O)
duplicate()
else
.=..()
/mob/living/simple_mob/vore/spacecritter/proc/evolve()
var/mob/living/L
L = new evolve(get_turf(src))
if(mind)
src.mind.transfer_to(L)
visible_message("<span class='warning'>\The [src] suddenly evolves!</span>")
qdel(src)
/mob/living/simple_mob/vore/spacecritter/proc/duplicate()
visible_message("<span class='warning'>\The [src] splits into two!</span>")
new copy (src.loc)
/mob/living/simple_mob/vore/spacecritter/solarray //solar moth lite, dies to water
name = "solar ray"
desc = "A sting ray of fire, drifting around"
icon = 'modular_chomp/icons/mob/spaceinvader.dmi'
icon_state = "solarray"
icon_living = "solarray"
icon_dead = "solarray-dead"
attacktext = list("incinerate")
attack_armor_type = "energy"
attack_armor_pen = 30
water_resist = 0
var/mycolour = COLOR_RED //Variable Lighting colours
var/original_temp = null //Value to remember temp
var/set_temperature = T0C + 5000 //Sets the target point of 10k degrees celsius
var/heating_power = 50000
evolve = "/mob/living/simple_mob/vore/solarray/galaxyray"
feed = "/obj/item/weapon/ore/phoron"
evolvekey = "/obj/item/stack/material/tritium"
copy = "/mob/living/simple_mob/vore/spacecritter/solarray"
/mob/living/simple_mob/vore/spacecritter/solarray/Life()
. = ..()
if(icon_state != icon_dead) //I mean on death() Life() should disable but i guess doesnt hurt to make sure -shark
var/turf/moth_loc = get_turf(src)
if(isturf(moth_loc) && moth_loc.air)
var/datum/gas_mixture/env = moth_loc.return_air() //Gets all the information on the local air.
var/transfer_moles = 0.25 * env.total_moles //The bigger the room, the harder it is to heat the room.
var/datum/gas_mixture/removed = env.remove(transfer_moles)
var/heat_transfer = removed.get_thermal_energy_change(set_temperature)
if(heat_transfer > 0 && env.temperature < T0C + 200) //This should start heating the room at a moderate pace up to 200 degrees celsius.
heat_transfer = min(heat_transfer , heating_power) //limit by the power rating of the heater
removed.add_thermal_energy(heat_transfer)
else if(heat_transfer > 0 && env.temperature < set_temperature) //Set temperature is 10,000 degrees celsius. So this thing will start cooking crazy hot between the temperatures of 200C and 10,000C.
heating_power = original_temp*100 //Changed to work variable -shark //FLAME ON! This will make the moth heat up the room at an incredible rate.
heat_transfer = min(heat_transfer , heating_power) //limit by the power rating of the heater. Except it's hot, so yeah.
removed.add_thermal_energy(heat_transfer)
else
return
env.merge(removed)
//Since I'm changing hyper mode to be variable we need to store old power
original_temp = heating_power
/mob/living/simple_mob/vore/spacecritter/solarray/galaxyray
name = "galaxy ray"
icon_state = "galaxyray"
icon_living = "galaxyray"
health = 75
maxHealth = 75
set_temperature = T0C + 15000
heating_power = 150000
size_multiplier = 1.5
/mob/living/simple_mob/vore/spacecritter/livingice //dark blue slime but more chilly. Dies to lasers or slighly toasty rooms
name = "living icicle"
desc = "A strange creature, a crab like creature seemingly made of ice"
icon = 'modular_chomp/icons/mob/spaceinvader.dmi'
icon_state = "livingice"
icon_living = "livingice"
icon_dead = "livingice-dead"
minbodytemp = 0 // Minimum "okay" temperature in kelvin
maxbodytemp = 300 // Maximum of above
hovering = FALSE
heat_resist = 0.2
cold_resist = 1.0
evolve = "/mob/living/simple_mob/vore/spacecritter/livingice/iceberg"
feed = "/obj/item/stack/material/snow"
evolvekey = "/obj/item/weapon/reagent_containers/food/snacks/coldchili"
copy = "/mob/living/simple_mob/vore/spacecritter/livingice"
var/chilltemp = -20
/mob/living/simple_mob/vore/spacecritter/livingice/handle_special()
if(stat != DEAD)
cold_aura()
..()
/mob/living/simple_mob/vore/spacecritter/livingice/proc/cold_aura()
for(var/mob/living/L in view(2, src))
var/turf/T = get_turf(src)
var/datum/gas_mixture/env = T.return_air()
if(env)
env.add_thermal_energy(chilltemp * 1000)
/mob/living/simple_mob/vore/spacecritter/livingice/iceberg
name = "living iceberg"
desc = "A giant strange creature, a crab like creature seemingly made of ice"
size_multiplier = 3.0
health = 75
maxHealth = 75
chilltemp = -50
/mob/living/simple_mob/vore/spacecritter/radcrab //bullets, melee, and cold all crack the poor thing's shell
name = "crystaline crab"
desc = "A largeish hermit crab glowing green, irradting the nearby area"
icon = 'modular_chomp/icons/mob/spaceinvader.dmi'
icon_state = "hermitcrab"
icon_living = "hermitcrab"
icon_dead = "hermitcrab-dead"
aquatic_movement = 1 // If set, the mob will move through fluids with no hinderance.
minbodytemp = 260 // Minimum "okay" temperature in kelvin
maxbodytemp = 10000 // Maximum of above
melee_damage_lower = 2 // Lower bound of randomized melee damage
melee_damage_upper = 2 // Upper bound of randomized melee damage
attacktext = list("pinches") // "You are [attacktext] by the mob!"
attack_armor_type = "melee" // What armor does this check?
attack_armor_pen = 100 // How much armor pen this attack has.
var/rads = 50
evolve = "/mob/living/simple_mob/vore/spacecritter/radcrab/supermattercrab"
feed = "/obj/item/weapon/ore/uranium"
evolvekey = "/obj/item/stack/material/uranium"
copy = "/mob/living/simple_mob/vore/spacecritter/radcrab"
/mob/living/simple_mob/vore/spacecritter/radcrab/handle_special()
if(stat != DEAD)
irradiate()
..()
/mob/living/simple_mob/vore/spacecritter/radcrab/proc/irradiate()
SSradiation.radiate(src, rads)
/mob/living/simple_mob/vore/spacecritter/radcrab/supermattercrab
size_multiplier = 1.5
health = 75
maxHealth = 75
rads = 150
name = "energized crystaline crab"
icon_state = "superhermitcrab"
icon_living = "superhermitcrab"
icon_dead = "hermitcrab-dead"
/mob/living/simple_mob/vore/spacecritter/dreameel
name = "dream eel"
desc = "A eel floating through it's own thick cloud"
icon = 'modular_chomp/icons/mob/spaceinvader.dmi'
icon_state = "dreameel"
icon_living = "dreameel"
icon_dead = "dreameel-dead"
movement_cooldown = -1 // Lower is faster.
attacktext = list("bitten") // "You are [attacktext] by the mob!"
var/artifact_master = /datum/component/artifact_master/dreameel
evolve = "/mob/living/simple_mob/vore/spacecritter/dreameel/nightmare"
feed = "/obj/item/weapon/reagent_containers/food/snacks/carpmeat"
evolvekey = "/obj/item/stack/material/phoron"
copy = "/mob/living/simple_mob/vore/spacecritter/dreameel"
/datum/component/artifact_master/dreameel
make_effects = list(
/datum/artifact_effect/gassleeping
)
/mob/living/simple_mob/vore/spacecritter/dreameel/nightmare
name = "dream eel"
desc = "A eel floating through it's own thick cloud"
icon = 'modular_chomp/icons/mob/spaceinvader.dmi'
icon_state = "dreameel"
icon_living = "dreameel"
movement_cooldown = -5
color = "#9933FF"
artifact_master = /datum/component/artifact_master/nightmare
/datum/component/artifact_master/nightmare
make_effects = list(
/datum/artifact_effect/gasphoron
)
/mob/living/simple_mob/vore/spacecritter/gravityshell
name = "Gravity Shell"
desc = "A metallic turtle"
icon = 'modular_chomp/icons/mob/spaceinvader.dmi'
icon_state = "gravityshell"
icon_living = "gravityshell"
icon_dead = "gravityshell-dead"
movement_cooldown = 5 // Lower is faster.
armor_soak = list( // Values for getsoak() checks.
"melee" = 7,
"bullet" = 7,
"laser" = 7,
"energy" = 7,
"bomb" = 0,
"bio" = 0,
"rad" = 0
)
var/artifact_master = /datum/component/artifact_master/gravity
evolve = "/mob/living/simple_mob/vore/spacecritter/gravityshell/cleanse"
feed = "/obj/item/stack/material/concrete"
evolvekey = "/obj/item/stack/material/tritium"
copy = "/mob/living/simple_mob/vore/spacecritter/gravityshell"
/datum/component/artifact_master/gravity
make_effects = list(
/datum/artifact_effect/extreme/gravity_wave
)
/mob/living/simple_mob/vore/spacecritter/gravityshell/cleanse
size_multiplier = 0.5
health = 75
maxHealth = 75
artifact_master = /datum/component/artifact_master/gasoxy
icon_state = "cleanseshell"
icon_living = "cleanseshell"
icon_dead = "cleanseshell-dead"
/datum/component/artifact_master/gasoxy
make_effects = list(
/datum/artifact_effect/gasoxy
)
/mob/living/simple_mob/vore/spacecritter/solarray
vore_bump_chance = 80
vore_bump_emote = "devours"
vore_active = 1
vore_capacity = 1
vore_pounce_chance = 0
vore_default_mode = DM_DIGEST
/mob/living/simple_mob/vore/spacecritter/livingice
vore_bump_chance = 0
vore_bump_emote = "devours"
vore_active = 1
vore_capacity = 1
vore_pounce_chance = 0
vore_default_mode = DM_DIGEST
/mob/living/simple_mob/vore/spacecritter/radcrab
vore_bump_chance = 40
vore_bump_emote = "devours"
vore_active = 1
vore_capacity = 1
vore_pounce_chance = 0
vore_default_mode = DM_DIGEST
/mob/living/simple_mob/vore/spacecritter/dreameel
vore_bump_chance = 40
vore_bump_emote = "devours"
vore_active = 1
vore_capacity = 1
vore_pounce_chance = 0
vore_default_mode = DM_DIGEST
/mob/living/simple_mob/vore/spacecritter/gravityshell
vore_bump_chance = 40
vore_bump_emote = "devours"
vore_active = 1
vore_capacity = 1
vore_pounce_chance = 0
vore_default_mode = DM_DIGEST
/mob/living/simple_mob/vore/solarray
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/raymeat
meat_amount = 8
tame_items = list(
/obj/item/stack/tile/grass = 50
)
butchery_loot = list(\
/obj/item/stack/material/wisp = 3\
)
harvest_tool = /obj/item/weapon/weldingtool
harvest_cooldown = 10 MINUTES
harvest_delay = 30 SECONDS
harvest_recent = 0
harvest_per_hit = 1
harvest_verb = "harvested"
harvest_results = list(
/obj/item/stack/material/wisp = 1
)
/mob/living/simple_mob/vore/livingice
meat_type = /obj/item/stack/material/snow
meat_amount = 18
tame_items = list(
/obj/item/stack/material/snow = 10
)
butchery_loot = list(\
/obj/item/stack/material/frostscale = 3\
)
harvest_tool = /obj/item/weapon/tool/wirecutters
harvest_cooldown = 10 MINUTES
harvest_delay = 30 SECONDS
harvest_recent = 0
harvest_per_hit = 1
harvest_verb = "harvested"
harvest_results = list(
/obj/item/stack/material/frostscale = 1
)
/mob/living/simple_mob/vore/radcrab
meat_type = /obj/item/weapon/reagent_containers/food/snacks/crabmeat
meat_amount = 8
tame_items = list(
/obj/item/weapon/ore/uranium = 50
)
butchery_loot = list(\
/obj/item/stack/material/crystalscale = 3\
)
harvest_tool = /obj/item/weapon/tool/crowbar
harvest_cooldown = 10 MINUTES
harvest_delay = 30 SECONDS
harvest_recent = 0
harvest_per_hit = 1
harvest_verb = "harvested"
harvest_results = list(
/obj/item/stack/material/crystalscale = 1
)
/mob/living/simple_mob/vore/dreameel
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/eelmeat
meat_amount = 2
tame_items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat/gravityshell = 40
)
butchery_loot = list(\
/obj/item/stack/material/dreamscale = 3\
)
harvest_tool = /obj/item/weapon/tool/wirecutters
harvest_cooldown = 10 MINUTES
harvest_delay = 30 SECONDS
harvest_recent = 0
harvest_per_hit = 1
harvest_verb = "harvested"
harvest_results = list(
/obj/item/stack/material/dreamscale = 1
)
/mob/living/simple_mob/vore/gravityshell
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/gravityshell
meat_amount = 8
tame_items = list(
/obj/item/weapon/reagent_containers/food/snacks/crabmeat = 50
)
butchery_loot = list(\
/obj/item/stack/material/shellchitin = 3\
)
harvest_tool = /obj/item/weapon/tool/crowbar
harvest_cooldown = 10 MINUTES
harvest_delay = 30 SECONDS
harvest_recent = 0
harvest_per_hit = 1
harvest_verb = "harvested"
harvest_results = list(
/obj/item/stack/material/shellchitin = 1
)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 699 B

View File

@@ -4615,6 +4615,7 @@
#include "modular_chomp\code\datums\components\gargoyle.dm"
#include "modular_chomp\code\datums\components\squeak.dm"
#include "modular_chomp\code\datums\components\xenoqueen.dm"
#include "modular_chomp\code\datums\crafting\items.dm"
#include "modular_chomp\code\datums\crafting\recipes.dm"
#include "modular_chomp\code\datums\interfaces\appearance.dm"
#include "modular_chomp\code\datums\outfits\jobs\cargo.dm"
@@ -4622,6 +4623,7 @@
#include "modular_chomp\code\datums\outfits\jobs\noncrew.dm"
#include "modular_chomp\code\datums\supplypacks\contraband.dm"
#include "modular_chomp\code\datums\supplypacks\medical.dm"
#include "modular_chomp\code\datums\supplypacks\misc.dm"
#include "modular_chomp\code\datums\supplypacks\science.dm"
#include "modular_chomp\code\datums\supplypacks\security.dm"
#include "modular_chomp\code\datums\underwear\socks.dm"
@@ -4716,6 +4718,7 @@
#include "modular_chomp\code\modules\emotes\definitions\audible_pain.dm"
#include "modular_chomp\code\modules\event\dangerinfestation.dm"
#include "modular_chomp\code\modules\event\event_container_ch.dm"
#include "modular_chomp\code\modules\event\heavydangerinfestation.dm"
#include "modular_chomp\code\modules\events\meatyores.dm"
#include "modular_chomp\code\modules\exploration\lootsafe.dm"
#include "modular_chomp\code\modules\food\drinkgglass\metaglass.dm"
@@ -4839,6 +4842,7 @@
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\greatwolf.dm"
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\jelly.dm"
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\smokestar.dm"
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\spacecritters.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"
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\wolf.dm"