mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-25 22:28:44 +01:00
Progress
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
/// Allow admin to add or remove traits of datum
|
||||
/datum/admins/proc/modify_traits(datum/D)
|
||||
if(!D)
|
||||
return
|
||||
|
||||
var/add_or_remove = input("Remove/Add?", "Trait Remove/Add") as null|anything in list("Add","Remove")
|
||||
if(!add_or_remove)
|
||||
return
|
||||
var/list/availible_traits = list()
|
||||
|
||||
switch(add_or_remove)
|
||||
if("Add")
|
||||
for(var/key in GLOB.traits_by_type)
|
||||
if(istype(D,key))
|
||||
availible_traits += GLOB.traits_by_type[key]
|
||||
if("Remove")
|
||||
if(!GLOB.trait_name_map)
|
||||
GLOB.trait_name_map = generate_trait_name_map()
|
||||
for(var/trait in D.status_traits)
|
||||
var/name = GLOB.trait_name_map[trait] || trait
|
||||
availible_traits[name] = trait
|
||||
|
||||
var/chosen_trait = input("Select trait to modify", "Trait") as null|anything in availible_traits
|
||||
if(!chosen_trait)
|
||||
return
|
||||
chosen_trait = availible_traits[chosen_trait]
|
||||
|
||||
var/source = "adminabuse"
|
||||
switch(add_or_remove)
|
||||
if("Add") //Not doing source choosing here intentionally to make this bit faster to use, you can always vv it.
|
||||
ADD_TRAIT(D,chosen_trait,source)
|
||||
if("Remove")
|
||||
var/specific = input("All or specific source ?", "Trait Remove/Add") as null|anything in list("All","Specific")
|
||||
if(!specific)
|
||||
return
|
||||
switch(specific)
|
||||
if("All")
|
||||
source = null
|
||||
if("Specific")
|
||||
source = input("Source to be removed","Trait Remove/Add") as null|anything in D.status_traits[chosen_trait]
|
||||
if(!source)
|
||||
return
|
||||
REMOVE_TRAIT(D,chosen_trait,source)
|
||||
@@ -0,0 +1,3 @@
|
||||
/obj/item/weapon/rig
|
||||
var/protean = 0
|
||||
var/obj/item/weapon/storage/backpack/rig_storage
|
||||
+4
-4
@@ -84,7 +84,7 @@
|
||||
/obj/item/organ/internal/nano/orchestrator
|
||||
name = "orchestrator module"
|
||||
desc = "A small computer, designed for highly parallel workloads."
|
||||
icon = 'icons/mob/species/protean/protean.dmi'
|
||||
icon = 'modular_chomp/icons/mob/species/protean/protean.dmi'
|
||||
icon_state = "orchestrator"
|
||||
organ_tag = O_ORCH
|
||||
parent_organ = BP_TORSO
|
||||
@@ -96,7 +96,7 @@
|
||||
/obj/item/organ/internal/nano/refactory
|
||||
name = "refactory module"
|
||||
desc = "A miniature metal processing unit and nanite factory."
|
||||
icon = 'icons/mob/species/protean/protean.dmi'
|
||||
icon = 'modular_chomp/icons/mob/species/protean/protean.dmi'
|
||||
icon_state = "refactory"
|
||||
organ_tag = O_FACT
|
||||
parent_organ = BP_TORSO
|
||||
@@ -144,7 +144,7 @@
|
||||
/obj/item/organ/internal/mmi_holder/posibrain/nano
|
||||
name = "protean posibrain"
|
||||
desc = "A more advanced version of the standard posibrain, typically found in protean bodies."
|
||||
icon = 'icons/mob/species/protean/protean.dmi'
|
||||
icon = 'modular_chomp/icons/mob/species/protean/protean.dmi'
|
||||
icon_state = "posi"
|
||||
parent_organ = BP_TORSO
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
/obj/item/device/mmi/digital/posibrain/nano
|
||||
name = "protean posibrain"
|
||||
desc = "A more advanced version of the standard posibrain, typically found in protean bodies."
|
||||
icon = 'icons/mob/species/protean/protean.dmi'
|
||||
icon = 'modular_chomp/icons/mob/species/protean/protean.dmi'
|
||||
icon_state = "posi"
|
||||
|
||||
/obj/item/device/mmi/digital/posibrain/nano/Initialize()
|
||||
|
||||
+13
-9
@@ -90,7 +90,7 @@
|
||||
set desc = "Allows you to regrow limbs and replace organs."
|
||||
set category = "Abilities"
|
||||
set hidden = TRUE
|
||||
|
||||
|
||||
if(nutrition < 250)
|
||||
to_chat(src, "<span class='warning'>You lack the energy to begin regeneration!</span>")
|
||||
return
|
||||
@@ -324,7 +324,7 @@
|
||||
visible_message("<span class='notice'>[src] devours some of the [substance] right off the stack!</span>")
|
||||
else
|
||||
to_chat(src,"<span class='notice'>You're completely capped out on [substance]!</span>")
|
||||
|
||||
|
||||
////
|
||||
// Blob Form
|
||||
////
|
||||
@@ -338,7 +338,7 @@
|
||||
if(!isturf(to_locate.loc))
|
||||
to_chat(to_locate,"<span class='warning'>You need more space to perform this action!</span>")
|
||||
return
|
||||
|
||||
|
||||
//Blob form
|
||||
if(temporary_form)
|
||||
if(health < maxHealth*0.5)
|
||||
@@ -478,13 +478,11 @@ CHOMP Removal end*/
|
||||
icon_state = "blob"
|
||||
to_call = /mob/living/carbon/human/proc/nano_blobform
|
||||
|
||||
/*CHOMP removal start - This doesn't do anything at all now. Normal resize proc is being used instead.
|
||||
/obj/effect/protean_ability/change_volume //CHOMP Edit
|
||||
/obj/effect/protean_ability/change_volume
|
||||
ability_name = "Change Volume"
|
||||
desc = "Alter your size between 25% and 200%." //CHOMP Edit - Removed talk about requiring metal
|
||||
desc = "Alter your size between 25% and 200%."
|
||||
icon_state = "volume"
|
||||
to_call = /mob/living/carbon/human/proc/nano_set_size
|
||||
CHOMP removal end*/
|
||||
to_call = /mob/living/proc/set_size
|
||||
|
||||
/obj/effect/protean_ability/reform_limb
|
||||
ability_name = "Ref - Single Limb"
|
||||
@@ -497,11 +495,17 @@ CHOMP removal end*/
|
||||
desc = "Rebuild your entire body into whatever design you want, assuming you have 10,000 metal."
|
||||
icon_state = "body"
|
||||
to_call = /mob/living/carbon/human/proc/nano_regenerate
|
||||
|
||||
|
||||
/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."
|
||||
icon_state = "metal"
|
||||
to_call = /mob/living/carbon/human/proc/nano_metalnom
|
||||
|
||||
/obj/effect/protean_ability/metal_nom
|
||||
ability_name = "Hardsuit Transform"
|
||||
desc = "Coalesce your naniteswarm into their control module, allowing others to wear you."
|
||||
icon_state = "rig"
|
||||
to_call = /mob/living/carbon/human/proc/nano_metalnom
|
||||
|
||||
#undef PER_LIMB_STEEL_COST
|
||||
|
||||
+31
@@ -19,6 +19,8 @@
|
||||
boot_type = /obj/item/clothing/shoes/magboots/rig/protean
|
||||
chest_type = /obj/item/clothing/suit/space/rig/protean
|
||||
glove_type = /obj/item/clothing/gloves/gauntlets/rig/protean
|
||||
canremove = 0
|
||||
protean = 1
|
||||
|
||||
//I doooon't think I can get rig_back.dmi as a _ch file. That is part of /obj/item/weapon/rig/update_icon(var/update_mob_icon).
|
||||
|
||||
@@ -32,6 +34,35 @@
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/rig/protean/New(var/newloc, var/mob/living/carbon/human/P)
|
||||
if(P)
|
||||
myprotean = P
|
||||
if(P.back)
|
||||
addtimer(CALLBACK(src, .proc/AssimilateBag, P), 5)
|
||||
|
||||
else
|
||||
to_chat(P, "Couldn't find a backpack to assimilate.")
|
||||
..(newloc)
|
||||
|
||||
/obj/item/weapon/rig/protean/proc/AssimilateBag(var/mob/living/carbon/human/P)
|
||||
var/obj/B = P.back
|
||||
P.unEquip(P.back)
|
||||
B.forceMove(src)
|
||||
rig_storage = B
|
||||
to_chat(P, "Your equipped backpack has been integrated into your rigsuit. See the storage module in your rig interface.")
|
||||
P.equip_to_slot_if_possible(src, slot_back)
|
||||
|
||||
/obj/item/weapon/rig/protean/attack_hand(mob/user as mob)
|
||||
if (src.loc == user)
|
||||
src.rig_storage.open(user)
|
||||
else
|
||||
..()
|
||||
for(var/mob/M in range(1))
|
||||
if (M.s_active == src)
|
||||
src.rig_storage.close(M)
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
|
||||
/obj/item/clothing/head/helmet/space/rig/protean
|
||||
name = "mass"
|
||||
desc = "A helmet-shaped clump of nanomachines."
|
||||
|
||||
+3
-17
@@ -34,11 +34,8 @@
|
||||
blood_volume = 0
|
||||
min_age = 18
|
||||
max_age = 200
|
||||
brute_mod = 1
|
||||
burn_mod = 1
|
||||
oxy_mod = 0
|
||||
radiation_mod = 0 //Can't be assed with fandangling rad protections while blob formed/suited
|
||||
item_slowdown_mod = 1
|
||||
|
||||
hazard_low_pressure = -1 //Space doesn't bother them
|
||||
hazard_high_pressure = INFINITY //consistency
|
||||
@@ -53,7 +50,6 @@
|
||||
|
||||
body_temperature = 290
|
||||
|
||||
siemens_coefficient = 1
|
||||
rarity_value = 5
|
||||
|
||||
genders = list(MALE, FEMALE, PLURAL, NEUTER)
|
||||
@@ -96,12 +92,7 @@
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_wings,
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_tail,
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_ears,
|
||||
/mob/living/carbon/human/proc/succubus_drain,
|
||||
/mob/living/carbon/human/proc/slime_feed,
|
||||
/mob/living/carbon/human/proc/succubus_drain_finalize,
|
||||
/mob/living/carbon/human/proc/succubus_drain_lethal,
|
||||
/mob/living/proc/eat_trash
|
||||
) //CHOMP Edit - Added succ stuff that promies have too. Also changed nano_set_size to standard set_size so there is no metal cost.
|
||||
) //removed fetish verbs, since non-customs can pick neutral traits now
|
||||
|
||||
var/global/list/abilities = list()
|
||||
|
||||
@@ -156,8 +147,7 @@
|
||||
else
|
||||
H.nif.durability = 25
|
||||
|
||||
var/obj/item/weapon/rig/protean/prig = new /obj/item/weapon/rig/protean(H)
|
||||
prig.myprotean = H
|
||||
new /obj/item/weapon/rig/protean(H,H)
|
||||
|
||||
/datum/species/protean/hug(var/mob/living/carbon/human/H, var/mob/living/target)
|
||||
return ..() //Wut
|
||||
@@ -179,10 +169,6 @@
|
||||
|
||||
to_chat(H, "<span class='warning'>You died as a Protean. Please sit out of the round for at least 5 or 10 minutes before respawning, to represent the time it would take to ship a new-you to the station, depending on how you died.</span>")
|
||||
|
||||
spawn(1)
|
||||
if(H)
|
||||
H.gib()
|
||||
|
||||
/datum/species/protean/handle_environment_special(var/mob/living/carbon/human/H)
|
||||
if((H.getActualBruteLoss() + H.getActualFireLoss()) > H.maxHealth*0.5 && isturf(H.loc)) //So, only if we're not a blob (we're in nullspace) or in someone (or a locker, really, but whatever)
|
||||
return ..() //Any instakill shot runtimes since there are no organs after this. No point to not skip these checks, going to nullspace anyway.
|
||||
@@ -333,7 +319,7 @@ CHOMP Removal end*/
|
||||
/obj/item/clothing/accessory/permit/nanotech
|
||||
name = "\improper P.A.N. card"
|
||||
desc = "This is a 'Permit for Advanced Nanotechnology' card. It allows the owner to possess and operate advanced nanotechnology on NanoTrasen property. It must be renewed on a monthly basis."
|
||||
icon = 'icons/mob/species/protean/protean.dmi'
|
||||
icon = 'modular_chomp/icons/mob/species/protean/protean.dmi'
|
||||
icon_state = "permit_pan"
|
||||
|
||||
var/validstring = "VALID THROUGH END OF: "
|
||||
|
||||
Reference in New Issue
Block a user