Stasis Cage Exporting (#19612)

* sellable stasis cage

* Sellable mobs

* crate code cleanup

* export fix

* clamp

* sold mobs should vanish
This commit is contained in:
Will
2026-07-16 20:12:59 -04:00
committed by GitHub
parent f16080262e
commit 5d2ed77b57
19 changed files with 176 additions and 37 deletions
+18 -5
View File
@@ -27,23 +27,36 @@
if(istype(AM,/obj/effect))
return 0
var/final_output = span_boldnotice("\The [src] assesses the supply point value of \the [AM]...\n")
var/final_output = span_boldnotice("\The [src] assesses the value of \the [AM]...\n")
playsound(src, 'sound/machines/beep.ogg', 50, 1)
// Some things cannot be sold
if(isliving(AM) || isstructure(AM) || isturf(AM))
if(isliving(AM) || isturf(AM))
final_output += span_danger("-Cannot be sold.")
to_chat(user,final_output)
return 0
// Get item value
var/value = SEND_SIGNAL(AM,COMSIG_ITEM_SCAN_PROFIT)
var/value = 0
if(istype(AM,/obj/structure/closet/crate))
// Scan all contents in crate
for(var/atom/movable/thing in AM.contents)
value += SEND_SIGNAL(thing,COMSIG_ITEM_SCAN_PROFIT)
else
// Get single item value
value = SEND_SIGNAL(AM,COMSIG_ITEM_SCAN_PROFIT)
if(!value)
final_output += span_danger("-It's worth nothing.")
to_chat(user,final_output)
return 0
// Stasis cages are for RESEARCH!
if(istype(AM,/obj/structure/stasis_cage))
final_output += span_notice("-Its contents can be studied for [value] research points.")
to_chat(user,final_output)
return value
var/price = SSsupply.points_to_cash(value)
final_output += span_notice("-It can be sold for [value] points, or [price] [price > 1 ? "thalers" : "thaler"]")
final_output += span_notice("-It can be sold for [value] supply points, or [price] [price > 1 ? "thalers" : "thaler"]")
to_chat(user,final_output)
return value
@@ -166,12 +166,14 @@
var/heal_countdown = 5 //VOREStation Edit - A cooldown ticker for passive healing
var/list/myid_access = list() //VOREStation Edit
var/ID_provided = FALSE //VOREStation Edit
// VOREStation Add: Move/Shoot/Attack delays based on damage
var/damage_fatigue_mult = 1 // Our multiplier for how heavily mobs are affected by injury. [UPDATE THIS IF THE FORMULA CHANGES]: Formula = injury_level = round(rand(1,3) * damage_fatigue_mult * clamp(((rand(2,5) * (h / getMaxHealth())) - rand(0,2)), 1, 5))
var/injury_level = 0 // What our injury level is. Rather than being the flat damage, this is the amount added to various delays to simulate injuries in a manner as lightweight as possible.
var/threshold = 0.6 // When we start slowing down. Configure this setting per-mob. Default is 60%
var/injury_enrages = FALSE // Do injuries enrage (aka strengthen) our mob? If yes, we'll interpret how hurt we are differently.
// VOREStation Add End
// Stasis cage cargo export values
var/export_research_value // Amount of research points gained when this mob is sold from cargo in a stasis cage
var/export_research_diminished_max // Amount of mobs that can be sold before the value reaches its lowest point
var/has_recoloured = FALSE
var/hunting_cooldown = 0
@@ -129,6 +129,8 @@
no_pull_when_living = TRUE
export_research_value = TECHWEB_TIER_1_POINTS
export_research_diminished_max = 3
/mob/living/simple_mob/animal/giant_spider/Initialize(mapload)
. = ..()
@@ -35,6 +35,9 @@
can_be_drop_prey = FALSE
export_research_value = TECHWEB_TIER_2_POINTS
export_research_diminished_max = 4
/mob/living/simple_mob/animal/space/alien/drone
name = "alien drone"
icon_state = "aliend_running"
@@ -30,6 +30,9 @@
can_be_drop_prey = FALSE
allow_mind_transfer = TRUE
export_research_value = TECHWEB_TIER_1_POINTS
export_research_diminished_max = 3
/datum/say_list/bear
speak = list("RAWR!","Rawr!","GRR!","Growl!")
emote_see = list("stares ferociously", "stomps")
@@ -67,6 +67,9 @@
var/random_color = FALSE
var/rarechance = 1
export_research_value = TECHWEB_TIER_1_POINTS
export_research_diminished_max = 4
var/static/list/carp_colors = list(\
"lightpurple" = "#c3b9f1", \
"lightpink" = "#da77a8", \
@@ -110,6 +110,9 @@ I think I covered everything.
special_attack_max_range = 10
special_attack_cooldown = 80
export_research_value = TECHWEB_TIER_4_POINTS
export_research_diminished_max = 2
plane = MOB_PLANE
//Dragon vars
@@ -78,6 +78,9 @@
can_be_drop_prey = FALSE
allow_mind_transfer = TRUE
export_research_value = TECHWEB_TIER_1_POINTS
export_research_diminished_max = 3
/mob/living/simple_mob/vore/aggressive/corrupthound/prettyboi
name = "corrupt corrupt hound"
desc = "Bad boy machine broke as well. Seems an attempt was made to achieve a less threatening look, and this one is definitely having some conflicting feelings about it."
@@ -72,6 +72,9 @@
can_be_drop_prey = FALSE
export_research_value = TECHWEB_TIER_2_POINTS
export_research_diminished_max = 3
/mob/living/simple_mob/vore/aggressive/deathclaw/Login()
. = ..()
if(!riding_datum)
@@ -58,6 +58,9 @@
pain_emote_1p = list("yelp", "whine", "bark", "growl")
pain_emote_3p = list("yelps", "whines", "barks", "growls")
export_research_value = TECHWEB_TIER_2_POINTS
export_research_diminished_max = 3
/mob/living/simple_mob/vore/greatwolf/black
name = "great black wolf"
desc = "A massive black wolf with a sandy colored underside, and intimidating amber eyes. Much like a dire wolf, but bigger. Passive, until you give it a reason to not be."
@@ -53,6 +53,9 @@
pain_emote_1p = list("yelp", "whine", "bark", "growl")
pain_emote_3p = list("yelps", "whines", "barks", "growls")
export_research_value = TECHWEB_TIER_2_POINTS
export_research_diminished_max = 2
/datum/category_item/catalogue/fauna/leopardmander
name = "Sivian Fauna - Va'aen Drake"
desc = "Classification: S Draconis uncia\
@@ -65,6 +65,9 @@ GLOBAL_VAR_INIT(moth_amount, 0)
allow_mind_transfer = TRUE
glow_override = TRUE
export_research_value = TECHWEB_TIER_1_POINTS
export_research_diminished_max = 6
/datum/say_list/solargrub
emote_see = list("squelches", "squishes")
@@ -72,6 +72,9 @@
glow_override = TRUE
export_research_value = TECHWEB_TIER_2_POINTS
export_research_diminished_max = 4
/datum/say_list/solarmoth
emote_see = list("flutters")
@@ -120,3 +120,6 @@
/mob/living/simple_mob/vore/aggressive
mob_bump_flag = HEAVY
export_research_value = TECHWEB_TIER_1_POINTS
export_research_diminished_max = 5