mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 11:13:16 +00:00
woops forgot to delete screenshot helper code
This commit is contained in:
@@ -48,249 +48,3 @@
|
|||||||
name = "Fat Sect Drone (Taur)"
|
name = "Fat Sect Drone (Taur)"
|
||||||
icon_state = "fatsectdrone"
|
icon_state = "fatsectdrone"
|
||||||
extra_overlay = "fatsectdrone_markings"
|
extra_overlay = "fatsectdrone_markings"
|
||||||
|
|
||||||
/obj/item/weapon/pen/debughelper
|
|
||||||
name = "debug pen"
|
|
||||||
|
|
||||||
/obj/item/weapon/pen/debugpen/attack_self(var/mob/user)
|
|
||||||
if (user.client)
|
|
||||||
var/mob/living/pred = user.client.spawn_character_debug()
|
|
||||||
if (istype(pred))
|
|
||||||
inbelly_spawn_debug(user.client, pred, FALSE)
|
|
||||||
|
|
||||||
|
|
||||||
/client/proc/spawn_character_debug()
|
|
||||||
var/client/picked_client = src
|
|
||||||
if(!istype(picked_client))
|
|
||||||
return
|
|
||||||
|
|
||||||
//I frontload all the questions so we don't have a half-done process while you're reading.
|
|
||||||
var/location = "Right Here"
|
|
||||||
if(location == "Cancel" || !location)
|
|
||||||
return
|
|
||||||
|
|
||||||
var/announce = "No"
|
|
||||||
if(announce == "Cancel")
|
|
||||||
return
|
|
||||||
else if(announce == "Yes") //Too bad buttons can't just have 1/0 values and different display strings
|
|
||||||
announce = 1
|
|
||||||
else
|
|
||||||
announce = 0
|
|
||||||
|
|
||||||
var/inhabit = "No"
|
|
||||||
if(inhabit == "Cancel")
|
|
||||||
return
|
|
||||||
else if(inhabit == "Yes")
|
|
||||||
inhabit = 1
|
|
||||||
else
|
|
||||||
inhabit = 0
|
|
||||||
|
|
||||||
//Name matching is ugly but mind doesn't persist to look at.
|
|
||||||
var/charjob
|
|
||||||
var/records
|
|
||||||
var/datum/data/record/record_found
|
|
||||||
record_found = find_general_record("name",picked_client.prefs.real_name)
|
|
||||||
|
|
||||||
//Found their record, they were spawned previously
|
|
||||||
if(record_found)
|
|
||||||
var/samejob = "Yes"
|
|
||||||
if(samejob == "Yes")
|
|
||||||
charjob = record_found.fields["real_rank"]
|
|
||||||
else if(samejob == USELESS_JOB) //VOREStation Edit - Visitor not Assistant
|
|
||||||
charjob = USELESS_JOB //VOREStation Edit - Visitor not Assistant
|
|
||||||
else
|
|
||||||
records = "No"
|
|
||||||
if(records == "Cancel")
|
|
||||||
return
|
|
||||||
if(records == "Yes")
|
|
||||||
records = 1
|
|
||||||
else
|
|
||||||
records = 0
|
|
||||||
|
|
||||||
//Well you're not reloading their job or they never had one.
|
|
||||||
if(!charjob)
|
|
||||||
var/pickjob = "-No Job-"
|
|
||||||
if(!pickjob)
|
|
||||||
return
|
|
||||||
if(pickjob != "-No Job-")
|
|
||||||
charjob = pickjob
|
|
||||||
|
|
||||||
//If you've picked a job by now, you can equip them.
|
|
||||||
var/equipment
|
|
||||||
if(charjob)
|
|
||||||
equipment = "No"
|
|
||||||
if(equipment == "Cancel")
|
|
||||||
return
|
|
||||||
else if(equipment == "Yes")
|
|
||||||
equipment = 1
|
|
||||||
else
|
|
||||||
equipment = 0
|
|
||||||
|
|
||||||
//For logging later
|
|
||||||
var/admin = key_name_admin(src)
|
|
||||||
var/player_key = picked_client.key
|
|
||||||
//VOREStation Add - Needed for persistence
|
|
||||||
var/picked_ckey = picked_client.ckey
|
|
||||||
var/picked_slot = picked_client.prefs.default_slot
|
|
||||||
//VOREStation Add End
|
|
||||||
|
|
||||||
var/mob/living/carbon/human/new_character
|
|
||||||
var/spawnloc
|
|
||||||
var/showy
|
|
||||||
|
|
||||||
//Where did you want to spawn them?
|
|
||||||
switch(location)
|
|
||||||
if("Right Here") //Spawn them on your turf
|
|
||||||
spawnloc = get_turf(src.mob)
|
|
||||||
showy = "No"
|
|
||||||
if(showy == "Cancel")
|
|
||||||
return
|
|
||||||
if(showy == "Drop Pod")
|
|
||||||
showy = tgui_alert(src,"Destructive drop pods cause damage in a 3x3 and may break turfs. Polite drop pods lightly damage the turfs but won't break through.", "Drop Pod", list("Polite", "Destructive", "Cancel")) // reusing var
|
|
||||||
if(showy == "Cancel")
|
|
||||||
return
|
|
||||||
|
|
||||||
if("Arrivals") //Spawn them at a latejoin spawnpoint
|
|
||||||
spawnloc = pick(latejoin)
|
|
||||||
|
|
||||||
else //I have no idea how you're here
|
|
||||||
to_chat(src, "Invalid spawn location choice.")
|
|
||||||
return
|
|
||||||
|
|
||||||
//Did we actually get a loc to spawn them?
|
|
||||||
if(!spawnloc)
|
|
||||||
to_chat(src, "Couldn't get valid spawn location.")
|
|
||||||
return
|
|
||||||
|
|
||||||
new_character = new(spawnloc)
|
|
||||||
|
|
||||||
if(showy == "Telesparks")
|
|
||||||
anim(spawnloc,new_character,'icons/mob/mob.dmi',,"phasein",,new_character.dir)
|
|
||||||
playsound(spawnloc, "sparks", 50, 1)
|
|
||||||
var/datum/effect/effect/system/spark_spread/spk = new(new_character)
|
|
||||||
spk.set_up(5, 0, new_character)
|
|
||||||
spk.attach(new_character)
|
|
||||||
spk.start()
|
|
||||||
|
|
||||||
//We were able to spawn them, right?
|
|
||||||
if(!new_character)
|
|
||||||
to_chat(src, "Something went wrong and spawning failed.")
|
|
||||||
return
|
|
||||||
|
|
||||||
//Write the appearance and whatnot out to the character
|
|
||||||
picked_client.prefs.copy_to(new_character)
|
|
||||||
if(new_character.dna)
|
|
||||||
new_character.dna.ResetUIFrom(new_character)
|
|
||||||
new_character.sync_organ_dna()
|
|
||||||
if(inhabit)
|
|
||||||
new_character.key = player_key
|
|
||||||
//Were they any particular special role? If so, copy.
|
|
||||||
if(new_character.mind)
|
|
||||||
var/datum/antagonist/antag_data = get_antag_data(new_character.mind.special_role)
|
|
||||||
if(antag_data)
|
|
||||||
antag_data.add_antagonist(new_character.mind)
|
|
||||||
antag_data.place_mob(new_character)
|
|
||||||
|
|
||||||
//VOREStation Add - Required for persistence
|
|
||||||
if(new_character.mind)
|
|
||||||
new_character.mind.loaded_from_ckey = picked_ckey
|
|
||||||
new_character.mind.loaded_from_slot = picked_slot
|
|
||||||
//VOREStation Add End
|
|
||||||
|
|
||||||
for(var/lang in picked_client.prefs.alternate_languages)
|
|
||||||
var/datum/language/chosen_language = GLOB.all_languages[lang]
|
|
||||||
if(chosen_language)
|
|
||||||
if(is_lang_whitelisted(src,chosen_language) || (new_character.species && (chosen_language.name in new_character.species.secondary_langs)))
|
|
||||||
new_character.add_language(lang)
|
|
||||||
|
|
||||||
//If desired, apply equipment.
|
|
||||||
if(equipment)
|
|
||||||
if(charjob)
|
|
||||||
job_master.EquipRank(new_character, charjob, 1, announce)
|
|
||||||
if(new_character.mind)
|
|
||||||
new_character.mind.assigned_role = charjob
|
|
||||||
new_character.mind.role_alt_title = job_master.GetPlayerAltTitle(new_character, charjob)
|
|
||||||
equip_custom_items(new_character) //CHOMPEdit readded to enable custom_item.txt
|
|
||||||
|
|
||||||
//If desired, add records.
|
|
||||||
if(records)
|
|
||||||
data_core.manifest_inject(new_character)
|
|
||||||
|
|
||||||
//A redraw for good measure
|
|
||||||
new_character.regenerate_icons()
|
|
||||||
|
|
||||||
new_character.update_transform() //VOREStation Edit
|
|
||||||
|
|
||||||
//If we're announcing their arrival
|
|
||||||
if(announce)
|
|
||||||
AnnounceArrival(new_character, new_character.mind.assigned_role, "Common", new_character.z)
|
|
||||||
|
|
||||||
log_admin("[admin] has spawned [player_key]'s character [new_character.real_name].")
|
|
||||||
message_admins("[admin] has spawned [player_key]'s character [new_character.real_name].", 1)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
feedback_add_details("admin_verb","RSPCH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
||||||
|
|
||||||
// Drop pods
|
|
||||||
if(showy == "Polite")
|
|
||||||
var/turf/T = get_turf(new_character)
|
|
||||||
new /obj/structure/drop_pod/polite(T, new_character)
|
|
||||||
to_chat(new_character, "Please wait for your arrival.")
|
|
||||||
else if(showy == "Destructive")
|
|
||||||
var/turf/T = get_turf(new_character)
|
|
||||||
new /obj/structure/drop_pod(T, new_character)
|
|
||||||
to_chat(new_character, "Please wait for your arrival.")
|
|
||||||
else
|
|
||||||
to_chat(new_character, "You have been fully spawned. Enjoy the game.")
|
|
||||||
|
|
||||||
return new_character
|
|
||||||
|
|
||||||
|
|
||||||
/proc/inbelly_spawn_debug(client/prey, mob/living/pred, var/absorbed = FALSE)
|
|
||||||
var/obj/belly/target_belly = pick(pred.vore_organs)
|
|
||||||
// All this is basically admin late spawn-in, but skipping all parts related to records and equipment and with predteremined location
|
|
||||||
var/player_key = prey.key
|
|
||||||
var/picked_ckey = prey.ckey
|
|
||||||
var/picked_slot = prey.prefs.default_slot
|
|
||||||
var/mob/living/carbon/human/new_character
|
|
||||||
|
|
||||||
new_character = new(null) // Spawn them in nullspace first. Can't have "Defaultname Defaultnameson slides into your Stomach".
|
|
||||||
|
|
||||||
if(!new_character)
|
|
||||||
return
|
|
||||||
|
|
||||||
prey.prefs.copy_to(new_character)
|
|
||||||
if(new_character.dna)
|
|
||||||
new_character.dna.ResetUIFrom(new_character)
|
|
||||||
new_character.sync_organ_dna()
|
|
||||||
if(new_character.mind)
|
|
||||||
var/datum/antagonist/antag_data = get_antag_data(new_character.mind.special_role)
|
|
||||||
if(antag_data)
|
|
||||||
antag_data.add_antagonist(new_character.mind)
|
|
||||||
antag_data.place_mob(new_character)
|
|
||||||
|
|
||||||
for(var/lang in prey.prefs.alternate_languages)
|
|
||||||
var/datum/language/chosen_language = GLOB.all_languages[lang]
|
|
||||||
if(chosen_language)
|
|
||||||
if(is_lang_whitelisted(prey,chosen_language) || (new_character.species && (chosen_language.name in new_character.species.secondary_langs)))
|
|
||||||
new_character.add_language(lang)
|
|
||||||
for(var/key in prey.prefs.language_custom_keys)
|
|
||||||
if(prey.prefs.language_custom_keys[key])
|
|
||||||
var/datum/language/keylang = GLOB.all_languages[prey.prefs.language_custom_keys[key]]
|
|
||||||
if(keylang)
|
|
||||||
new_character.language_keys[key] = keylang
|
|
||||||
|
|
||||||
new_character.regenerate_icons()
|
|
||||||
|
|
||||||
new_character.update_transform()
|
|
||||||
|
|
||||||
new_character.forceMove(target_belly) // Now that they're all setup and configured, send them to their destination.
|
|
||||||
|
|
||||||
if(absorbed)
|
|
||||||
target_belly.absorb_living(new_character) // Glorp.
|
|
||||||
|
|
||||||
log_admin("[prey] (as [new_character.real_name] has spawned inside one of [pred]'s bellies.") // Log it. Avoid abuse.
|
|
||||||
message_admins("[prey] (as [new_character.real_name] has spawned inside one of [pred]'s bellies.", 1)
|
|
||||||
|
|
||||||
return new_character // incase its ever needed
|
|
||||||
Reference in New Issue
Block a user