mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
more fixes
This commit is contained in:
11
_runtimestation.dm
Normal file
11
_runtimestation.dm
Normal file
@@ -0,0 +1,11 @@
|
||||
/*
|
||||
Toggle this var to 1 to compile using runtime station instead.
|
||||
Useful if you're constantly having to recompile to debug something.
|
||||
*/
|
||||
#define RUNTIME_STATION 0
|
||||
|
||||
#if RUNTIME_STATION
|
||||
#include "modular_chomp/maps/runtime/runtime_station_defines.dm"
|
||||
#include "modular_chomp/maps/runtime/runtime_station.dmm"
|
||||
#define USING_MAP_DATUM /datum/map/runtime_station
|
||||
#endif
|
||||
@@ -3,3 +3,14 @@
|
||||
return FALSE
|
||||
|
||||
return ..()
|
||||
/*
|
||||
/datum/ai_holder/can_see_target(atom/movable/the_target, view_range = vision_range)
|
||||
log_world("TARGET: [the_target] and TARGET.LOC: [the_target.loc]")
|
||||
if(the_target && !isturf(the_target.loc)) //CHOMPEdit, AI shouldn't be targetting people inside objects of any kind
|
||||
if(ismecha(the_target.loc)) //Except mechs, of course
|
||||
target = the_target.loc
|
||||
else
|
||||
return FALSE
|
||||
|
||||
return ..()
|
||||
*/
|
||||
@@ -316,10 +316,15 @@
|
||||
|
||||
/mob/living/simple_mob/protean_blob/Life()
|
||||
. = ..()
|
||||
if(. && istype(refactory) && humanform)
|
||||
if(!healing && (human_brute || human_burn) && refactory.get_stored_material(MAT_STEEL) >= 100)
|
||||
healing = humanform.add_modifier(/datum/modifier/protean/steel, origin = refactory)
|
||||
else if(healing && !(human_brute || human_burn))
|
||||
if(!humanform.nano_dead_check(src))
|
||||
if(. && istype(refactory) && humanform)
|
||||
if(!healing && (human_brute || human_burn) && refactory.get_stored_material(MAT_STEEL) >= 100)
|
||||
healing = humanform.add_modifier(/datum/modifier/protean/steel, origin = refactory)
|
||||
else if(healing && !(human_brute || human_burn))
|
||||
healing.expire()
|
||||
healing = null
|
||||
else
|
||||
if(healing)
|
||||
healing.expire()
|
||||
healing = null
|
||||
|
||||
@@ -438,7 +443,7 @@
|
||||
to_chat(src,"<span class='warning'>You can't change forms while inside something.</span>")
|
||||
return
|
||||
to_chat(src, "<span class='notice'>You rapidly disassociate your form</span>")
|
||||
if(force || do_after(src,20))
|
||||
if(force || do_after(src,20,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
handle_grasp() //It's possible to blob out before some key parts of the life loop. This results in things getting dropped at null. TODO: Fix the code so this can be done better.
|
||||
remove_micros(src, src) //Living things don't fare well in roblobs.
|
||||
if(buckled)
|
||||
@@ -545,7 +550,7 @@
|
||||
to_chat(blob,"<span class='warning'>You can't change forms while inside something.</span>")
|
||||
return
|
||||
to_chat(src, "<span class='notice'>You rapidly reassemble your form</span>")
|
||||
if(force || do_after(blob,20))
|
||||
if(force || do_after(blob,20,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
if(buckled)
|
||||
buckled.unbuckle_mob()
|
||||
if(LAZYLEN(buckled_mobs))
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
else
|
||||
blob = temporary_form
|
||||
active_regen = 1
|
||||
if(do_after(blob,50))
|
||||
if(do_after(blob,50,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
var/list/limblist = species.has_limbs[choice]
|
||||
var/limbpath = limblist["path"]
|
||||
var/obj/item/organ/external/new_eo = new limbpath(src)
|
||||
@@ -105,7 +105,7 @@
|
||||
var/obj/item/organ/internal/nano/refactory/refactory = nano_get_refactory()
|
||||
if(refactory.get_stored_material(MAT_STEEL) >= 10000)
|
||||
to_chat(caller, "<span class='notify'>You begin to rebuild. You will need to remain still.</span>")
|
||||
if(do_after(caller, 400))
|
||||
if(do_after(caller, 400,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
if(species?:OurRig) //Unsafe, but we should only ever be using this with a Protean
|
||||
species?:OurRig?:make_alive(src,1) //Re-using this proc
|
||||
refactory.use_stored_material(MAT_STEEL,refactory.get_stored_material(MAT_STEEL)) //Use all of our steel
|
||||
@@ -128,7 +128,7 @@
|
||||
oocnotes = 1
|
||||
to_chat(caller, "<span class='notify'>You begin to reassemble. You will need to remain still.</span>")
|
||||
caller.visible_message("<span class='notify'>[caller] rapidly contorts and shifts!</span>", "<span class='danger'>You begin to reassemble.</span>")
|
||||
if(do_after(caller, 40))
|
||||
if(do_after(caller, 40,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
if(client.prefs) //Make sure we didn't d/c
|
||||
var/obj/item/weapon/rig/protean/Rig = species?:OurRig
|
||||
GetAppearanceFromPrefs(flavour, oocnotes)
|
||||
@@ -258,7 +258,7 @@
|
||||
to_chat(caller, "<span class='warning'>You need to be repaired first before you can act!</span>")
|
||||
return
|
||||
to_chat(src, "<span class='notice'>You rapidly condense into your module.</span>")
|
||||
if(forced || do_after(caller,20))
|
||||
if(forced || do_after(caller,20,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
if(!temporary_form) //If you're human, force you into blob form before rig'ing
|
||||
nano_blobform(forced)
|
||||
spawn(2)
|
||||
@@ -363,15 +363,15 @@
|
||||
return
|
||||
if(G.loc == caller && G.state >= GRAB_AGGRESSIVE)
|
||||
caller.visible_message("<span class='warning'>[caller] is attempting to latch onto [target]!</span>", "<span class='danger'>You attempt to latch onto [target]!</span>")
|
||||
if(do_after(caller, 50, target))
|
||||
if(do_after(caller, 50, target,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
if(G.loc == caller && G.state >= GRAB_AGGRESSIVE)
|
||||
target.drop_from_inventory(target.back)
|
||||
caller.visible_message("<span class='danger'>[caller] latched onto [target]!</span>", "<span class='danger'>You latch yourself onto [target]!</span>")
|
||||
target.Weaken(3)
|
||||
nano_rig_transform(1)
|
||||
spawn(2) //Have to give time for the above proc to resolve
|
||||
S.OurRig.forceMove(target)
|
||||
target.equip_to_slot_if_possible(S.OurRig, slot_back)
|
||||
spawn(5) //Have to give time for the above proc to resolve
|
||||
//S.OurRig.forceMove(target)
|
||||
target.equip_to_slot(S.OurRig, slot_back)
|
||||
S.OurRig.Moved()
|
||||
spawn(1) //Same here :(
|
||||
S.OurRig.wearer = target
|
||||
@@ -445,7 +445,7 @@
|
||||
/// The actual abilities
|
||||
/obj/effect/protean_ability/into_blob
|
||||
ability_name = "Toggle Blobform"
|
||||
desc = "Discard your shape entirely, changing to a low-energy blob that can fit into small spaces. You'll consume steel to repair yourself in this form."
|
||||
desc = "Discard your shape entirely, changing to a low-energy blob. You'll consume steel to repair yourself in this form."
|
||||
icon_state = "blob"
|
||||
to_call = /mob/living/carbon/human/proc/nano_blobform
|
||||
|
||||
@@ -469,26 +469,26 @@
|
||||
|
||||
/obj/effect/protean_ability/metal_nom
|
||||
ability_name = "Ref - Store Metals"
|
||||
desc = "Store the metal you're holding. Your refactory can only store steel, and all other metals will be converted into nanites ASAP for various effects."
|
||||
desc = "Store the metal you're holding. Your refactory can only store steel."
|
||||
icon_state = "metal"
|
||||
to_call = /mob/living/carbon/human/proc/nano_metalnom
|
||||
|
||||
/obj/effect/protean_ability/hardsuit
|
||||
ability_name = "Hardsuit Transform"
|
||||
desc = "Coalesce your naniteswarm into their control module, allowing others to wear you."
|
||||
desc = "Coalesce your nanite swarm into their control module, allowing others to wear you."
|
||||
icon_state = "rig"
|
||||
to_call = /mob/living/carbon/human/proc/nano_rig_transform
|
||||
|
||||
/obj/effect/protean_ability/appearance_switch
|
||||
ability_name = "Blob Appearance"
|
||||
desc = "Toggle your blob appearance. Also affects your worn appearance."
|
||||
icon_state = "rig"
|
||||
icon_state = "switch"
|
||||
to_call = /mob/living/carbon/human/proc/appearance_switch
|
||||
|
||||
/obj/effect/protean_ability/latch_host
|
||||
ability_name = "Latch Host"
|
||||
desc = "Forcibly latch or unlatch your RIG from a host mob."
|
||||
icon_state = "rig"
|
||||
icon_state = "latch"
|
||||
to_call = /mob/living/carbon/human/proc/nano_latch
|
||||
|
||||
#undef PER_LIMB_STEEL_COST
|
||||
|
||||
@@ -94,8 +94,9 @@
|
||||
name = "mass"
|
||||
desc = "A helmet-shaped clump of nanomachines."
|
||||
light_overlay = "should not use a light overlay"
|
||||
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN)
|
||||
species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN)
|
||||
sprite_sheets = list(
|
||||
SPECIES_PROTEAN = 'modular_chomp/icons/mob/head_ch.dmi',
|
||||
SPECIES_HUMAN = 'modular_chomp/icons/mob/head_ch.dmi',
|
||||
SPECIES_TAJ = 'modular_chomp/icons/mob/species/tajaran/helmet_ch.dmi',
|
||||
SPECIES_SKRELL = 'modular_chomp/icons/mob/species/skrell/helmet_ch.dmi',
|
||||
@@ -114,6 +115,7 @@
|
||||
)
|
||||
|
||||
sprite_sheets_obj = list(
|
||||
SPECIES_PROTEAN = 'modular_chomp/icons/mob/head_ch.dmi',
|
||||
SPECIES_HUMAN = 'modular_chomp/icons/mob/head_ch.dmi',
|
||||
SPECIES_TAJ = 'modular_chomp/icons/mob/head_ch.dmi',
|
||||
SPECIES_SKRELL = 'modular_chomp/icons/mob/head_ch.dmi',
|
||||
@@ -136,8 +138,9 @@
|
||||
name = "mass"
|
||||
desc = "Glove-shaped clusters of nanomachines."
|
||||
siemens_coefficient= 0
|
||||
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN)
|
||||
species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN)
|
||||
sprite_sheets = list(
|
||||
SPECIES_PROTEAN = 'modular_chomp/icons/mob/hands_ch.dmi',
|
||||
SPECIES_HUMAN = 'modular_chomp/icons/mob/hands_ch.dmi',
|
||||
SPECIES_TAJ = 'modular_chomp/icons/mob/hands_ch.dmi',
|
||||
SPECIES_SKRELL = 'modular_chomp/icons/mob/hands_ch.dmi',
|
||||
@@ -177,8 +180,9 @@
|
||||
/obj/item/clothing/shoes/magboots/rig/protean
|
||||
name = "mass"
|
||||
desc = "Boot-shaped clusters of nanomachines."
|
||||
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN)
|
||||
species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN)
|
||||
sprite_sheets = list(
|
||||
SPECIES_PROTEAN = 'modular_chomp/icons/mob/feet_ch.dmi',
|
||||
SPECIES_HUMAN = 'modular_chomp/icons/mob/feet_ch.dmi',
|
||||
SPECIES_TAJ = 'modular_chomp/icons/mob/feet_ch.dmi',
|
||||
SPECIES_SKRELL = 'modular_chomp/icons/mob/feet_ch.dmi',
|
||||
@@ -219,7 +223,7 @@
|
||||
name = "mass"
|
||||
desc = "A body-hugging mass of nanomachines."
|
||||
can_breach = 0
|
||||
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN)
|
||||
species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN)
|
||||
allowed = list(
|
||||
/obj/item/weapon/gun,
|
||||
/obj/item/device/flashlight,
|
||||
@@ -229,6 +233,7 @@
|
||||
/obj/item/weapon/storage/backpack,
|
||||
)
|
||||
sprite_sheets = list(
|
||||
SPECIES_PROTEAN = 'modular_chomp/icons/mob/spacesuit_ch.dmi',
|
||||
SPECIES_HUMAN = 'modular_chomp/icons/mob/spacesuit_ch.dmi',
|
||||
SPECIES_TAJ = 'modular_chomp/icons/mob/species/tajaran/suit_ch.dmi',
|
||||
SPECIES_SKRELL = 'modular_chomp/icons/mob/species/skrell/suit_ch.dmi',
|
||||
@@ -305,7 +310,6 @@
|
||||
playsound(src, 'sound/machines/defib_success.ogg', 50, 0)
|
||||
new /obj/effect/gibspawner/robot(src.loc)
|
||||
src.atom_say("Contact received! Reassembly nanites calibrated. Estimated time to resucitation: 1 minute 30 seconds")
|
||||
dead = 0
|
||||
addtimer(CALLBACK(src, .proc/make_alive, myprotean?:humanform), 900)
|
||||
return
|
||||
if(istype(W,/obj/item/weapon/rig))
|
||||
@@ -431,7 +435,8 @@
|
||||
S = H.species
|
||||
S.pseudodead = 0
|
||||
to_chat(myprotean, "<span class='notice'>You have finished reconstituting.</span>")
|
||||
playsound(src, 'sound/machines/ping.ogg', 50, 0)
|
||||
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
|
||||
dead = 0
|
||||
|
||||
/obj/item/weapon/rig/protean/take_hit(damage, source, is_emp=0)
|
||||
return //We don't do that here
|
||||
@@ -527,6 +532,7 @@
|
||||
return
|
||||
if(istype(R, /obj/item/weapon/rig/protean))
|
||||
to_chat(user, "<span class='warning'>The world is not ready for such a technological singularity.</span>")
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You assimilate the [R] into the [src]. Mimicking its stats and appearance.</span>")
|
||||
for(var/obj/item/piece in list(gloves,helmet,boots,chest))
|
||||
piece.armor = R.armor.Copy()
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
flesh_color = "#505050"
|
||||
base_color = "#FFFFFF" //Color mult, start out with this
|
||||
|
||||
flags = NO_SCAN | NO_SLIP | NO_MINOR_CUT | NO_HALLUCINATION | NO_INFECT
|
||||
flags = NO_SCAN | NO_SLIP | NO_MINOR_CUT | NO_HALLUCINATION | NO_INFECT | NO_PAIN
|
||||
appearance_flags = HAS_SKIN_COLOR | HAS_EYE_COLOR | HAS_HAIR_COLOR | HAS_UNDERWEAR | HAS_LIPS
|
||||
spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED | SPECIES_WHITELIST_SELECTABLE
|
||||
health_hud_intensity = 2
|
||||
@@ -43,7 +43,6 @@
|
||||
item_slowdown_mod = 1.5 //Gentle encouragement to let others wear you
|
||||
|
||||
hazard_low_pressure = -1 //Space doesn't bother them
|
||||
hazard_high_pressure = 10 * ONE_ATMOSPHERE //Same as their RIG
|
||||
|
||||
cold_level_1 = -INFINITY
|
||||
cold_level_2 = -INFINITY
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
build_path = /obj/item/rig_module/mounted/phase
|
||||
|
||||
/datum/design/item/mechfab/rigsuit/defib
|
||||
name = "mounted defib unit"
|
||||
name = "hardsuit defib unit"
|
||||
desc = "A rig mounted defib and jumper kit combo."
|
||||
id = "rig_defib"
|
||||
req_tech = list(TECH_BIO = 5, TECH_MAGNET = 2, TECH_POWER = 3)
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 2.4 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 9.6 KiB |
2602
modular_chomp/maps/runtime/runtime_station.dmm
Normal file
2602
modular_chomp/maps/runtime/runtime_station.dmm
Normal file
File diff suppressed because it is too large
Load Diff
47
modular_chomp/maps/runtime/runtime_station_defines.dm
Normal file
47
modular_chomp/maps/runtime/runtime_station_defines.dm
Normal file
@@ -0,0 +1,47 @@
|
||||
#define Z_LEVEL_STATION_ONE 1
|
||||
|
||||
/datum/map/runtime_station
|
||||
name = "Runtime Station"
|
||||
full_name = "Southern Cross"
|
||||
path = "modular_chomp/maps/runtime/runtime_station"
|
||||
|
||||
lobby_icon = 'icons/misc/CHOMPSTATION.gif' //CHOMPStation Edit
|
||||
lobby_screens = list() //CHOMPStation Edit - CHOMPStation image
|
||||
id_hud_icons = 'icons/mob/hud_jobs_vr.dmi' //CHOMPStation Edit - Job icons for off-duty/exploration
|
||||
|
||||
zlevel_datum_type = /datum/map_z_level/runtime_station
|
||||
|
||||
station_name = "NLS Southern Cross"
|
||||
station_short = "Southern Cross"
|
||||
dock_name = "NCS Northern Star" // Now we're the centcom!
|
||||
boss_name = "Central Command"
|
||||
boss_short = "Centcom"
|
||||
company_name = "NanoTrasen"
|
||||
company_short = "NT"
|
||||
starsys_name = "Vir"
|
||||
use_overmap = FALSE
|
||||
|
||||
shuttle_docked_message = "The scheduled shuttle to the %dock_name% has docked with the station at docks one and two. It will depart in approximately %ETD%."
|
||||
shuttle_leaving_dock = "The Crew Transfer Shuttle has left the station. Estimate %ETA% until the shuttle docks at %dock_name%."
|
||||
shuttle_called_message = "A crew transfer to %dock_name% has been scheduled. The shuttle has been called. Those leaving should proceed to docks one and two in approximately %ETA%."
|
||||
shuttle_recall_message = "The scheduled crew transfer has been cancelled."
|
||||
emergency_shuttle_docked_message = "The Emergency Shuttle has docked with the station at docks one and two. You have approximately %ETD% to board the Emergency Shuttle."
|
||||
emergency_shuttle_leaving_dock = "The Emergency Shuttle has left the station. Estimate %ETA% until the shuttle docks at %dock_name%."
|
||||
emergency_shuttle_called_message = "An emergency evacuation shuttle has been called. It will arrive at docks one and two in approximately %ETA%."
|
||||
emergency_shuttle_recall_message = "The emergency shuttle has been recalled."
|
||||
usable_email_tlds = list("freemail.nt")
|
||||
allowed_spawns = list("Arrivals Shuttle","Gateway", "Cryogenic Storage", "Cyborg Storage", "Station gateway", "Sif plains")
|
||||
default_skybox = /datum/skybox_settings/southern_cross
|
||||
map_levels = list(
|
||||
Z_LEVEL_STATION_ONE
|
||||
)
|
||||
lateload_gateway = null
|
||||
|
||||
/datum/skybox_settings/southern_cross
|
||||
icon_state = "dyable"
|
||||
random_color = TRUE
|
||||
|
||||
/datum/map_z_level/runtime_station
|
||||
z = Z_LEVEL_STATION_ONE
|
||||
name = "Deck 1"
|
||||
base_turf = /turf/space
|
||||
@@ -10,6 +10,7 @@
|
||||
#define DEBUG
|
||||
// END_PREFERENCES
|
||||
// BEGIN_INCLUDE
|
||||
#include "_runtimestation.dm"
|
||||
#include "code\__spaceman_dmm.dm"
|
||||
#include "code\_away_mission_tests.dm"
|
||||
#include "code\_macros.dm"
|
||||
|
||||
Reference in New Issue
Block a user