meanwhile as i driver tiger INSANE

This commit is contained in:
Aurorablade
2016-02-25 16:17:39 -05:00
parent 71ebef0338
commit 5f98feb0bc
32 changed files with 40 additions and 116 deletions
-1
View File
@@ -27,7 +27,6 @@
#define ORGAN_DEAD 1024
#define ORGAN_MUTATED 2048
#define ORGAN_ASSISTED 4096
#define ORGAN_ORGANIC 8192
#define DROPLIMB_EDGE 0
#define DROPLIMB_BLUNT 1
+1 -1
View File
@@ -19,7 +19,7 @@
//socks
init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, socks_list, socks_m, socks_f)
//init_subtypes(/datum/surgery_step, surgery_steps)
init_subtypes(/datum/surgery_step, surgery_steps)
for(var/path in (subtypesof(/datum/surgery)))
surgeries_list += new path()
+1
View File
@@ -72,4 +72,5 @@ var/global/list/blocked_mobs = list(/mob/living/simple_animal,
var/global/list/med_hud_users = list()
var/global/list/sec_hud_users = list()
var/global/list/antag_hud_users = list()
var/global/list/surgeries_list = list()
//items that ask to be called every cycle
-1
View File
@@ -27,4 +27,3 @@ var/global/list/power_monitors = list()
var/global/list/beacons = list()
var/global/list/shuttle_caller_list = list() //list of all communication consoles and AIs, for automatic shuttle calls when there are none.
var/global/list/tracked_implants = list() //list of all current implants that are tracked to work out what sort of trek everyone is on. Sadly not on lavaworld not implemented...
var/global/list/surgeries_list = list() //list of all surgeries by name, associated with their path.
+6 -1
View File
@@ -34,13 +34,18 @@
if(istype(src,/obj/item/robot_parts))//popup ovveride for direct attach
if(!attempt_initiate_surgery(src, M, user,1))
return 0
else
return 1
if(istype(src,/obj/item/weapon/screwdriver) && M.get_species() == "Machine")
if(!attempt_initiate_surgery(src, M, user))
return 0
else
return 1
if(is_sharp(src))
if(!attempt_initiate_surgery(src, M, user))
return 0
return
else
return 1
if (istype(M,/mob/living/carbon/brain))
messagesource = M:container
@@ -42,7 +42,7 @@
implant_overlay = null
origin_tech = "biotech=4"
slot = "eye_ling"
status = ORGAN_ORGANIC
status = 0
/obj/item/organ/internal/cyberimp/eyes/shield/ling/on_life()
..()
@@ -64,7 +64,7 @@
implant_overlay = null
origin_tech = "biotech=5;magnets=5"
slot = "eye_ling"
status = ORGAN_ORGANIC
status = 0
aug_message = "We feel a minute twitch in our eyes, and darkness creeps away."
/obj/item/organ/internal/cyberimp/eyes/thermals/ling/emp_act(severity)
@@ -161,7 +161,7 @@
user <<"<span class='warning'>...and you don't feel any different.</span>"
user.drop_item()
src.insert(user) //Consuming the heart literally replaces your heart with a demon heart. H A R D C O R E
insert(user) //Consuming the heart literally replaces your heart with a demon heart. H A R D C O R E
/obj/item/organ/internal/heart/demonheart/remove(mob/living/carbon/M, special = 0)
..()
+1 -1
View File
@@ -462,7 +462,7 @@ var/global/list/multiverse = list()
if("cyborg")
if(M.get_species() != "Machine")
for(var/obj/item/organ/internal/O in M.organs)
for(var/obj/item/organ/O in M.organs)
O.robotize()
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses)
M.equip_to_slot_or_del(sword, slot_r_hand)
-4
View File
@@ -324,17 +324,13 @@
user << "<span class='notice'>You clear the hatched egg.</span>"
playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
qdel(src)
return
if(GROWING)
user << "<span class='notice'>The child is not developed yet.</span>"
return
if(GROWN)
user << "<span class='notice'>You retrieve the child.</span>"
Burst(0)
return
else
user << "<span class='notice'>It feels slimy.</span>"
user.changeNext_move(CLICK_CD_MELEE)
/obj/structure/alien/egg/proc/GetFacehugger()
return locate(/obj/item/clothing/mask/facehugger) in contents
+1 -1
View File
@@ -247,7 +247,7 @@ REAGENT SCANNER
user.show_message("\blue Subject's pulse: <font color='[H.pulse == PULSE_THREADY || H.pulse == PULSE_NONE ? "red" : "blue"]'>[H.get_pulse(GETPULSE_TOOL)] bpm.</font>")
var/implant_detect
for(var/obj/item/organ/internal/cyberimp/CI in H.internal_organs)
if(CI.status == ORGAN_ROBOT )
if(CI.status == ORGAN_ROBOT)
implant_detect += "[H.name] is modified with a [CI.name].<br>"
if(implant_detect)
user.show_message("<span class='notice'>Detected cybernetic modifications:</span>")
-12
View File
@@ -112,10 +112,6 @@
affecting.heal_damage(src.heal_brute, src.heal_burn, 0)
use(1)
else
//if (can_operate(H)) //Checks if mob is lying down on table for surgery
// if (do_surgery(H,user,src))
// return
//else
user << "<span class='notice'>The [affecting.name] is cut open, you'll need more than some ointment!</span>"
/obj/item/stack/medical/bruise_pack/comfrey
@@ -177,10 +173,6 @@
affecting.heal_damage(heal_brute,0)
use(1)
else
//if (can_operate(H)) //Checks if mob is lying down on table for surgery
// if (do_surgery(H,user,src))
// return
//else
user << "<span class='notice'>The [affecting.name] is cut open, you'll need more than a bandage!</span>"
/obj/item/stack/medical/advanced/ointment
@@ -210,10 +202,6 @@
affecting.heal_damage(0,heal_burn)
use(1)
else
//if (can_operate(H)) //Checks if mob is lying down on table for surgery
// if (do_surgery(H,user,src))
// return
//else
user << "<span class='notice'>The [affecting.name] is cut open, you'll need more than a bandage!</span>"
/obj/item/stack/medical/splint
@@ -27,10 +27,6 @@
var/mob/living/carbon/human/H = M
var/obj/item/organ/external/S = H.get_organ(user.zone_sel.selecting)
//if(can_operate(H))
// if (do_surgery(H,user,src))
// return
if (S && (S.status & ORGAN_ROBOT))
if(S.get_damage())
S.heal_damage(15, 15, robo_repair = 1)
+1 -4
View File
@@ -54,7 +54,7 @@
if(!M.can_eat())
user << "<span class=warning>[M] cannot eat with a fork!</span>"
return
if(M == user)
M.visible_message("<span class='notice'>\The [user] eats some [loaded] from \the [src].</span>")
reagents.trans_to(M, reagents.total_volume)
@@ -69,9 +69,6 @@
overlays.Cut()
return
//if (can_operate(M))
// do_surgery(M, user, src)
/obj/item/weapon/kitchen/utensil/fork
name = "fork"
desc = "It's a fork. Sure is pointy."
+1 -1
View File
@@ -1640,7 +1640,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
else
O.robotize()
else
var/obj/item/organ/internal/I = character.get_int_organ(name)
var/obj/item/organ/internal/I = character.get_int_organ_tag(name)
if(I)
if(status == "assisted")
I.mechassist()
@@ -58,7 +58,6 @@
/mob/living/carbon/alien/adjustToxLoss(amount)
//moved to xeno organs
return
/mob/living/carbon/alien/adjustFireLoss(amount) // Weak to Fire
@@ -68,8 +67,6 @@
..(amount)
return
///mob/living/carbon/alien/getPlasma()
// return storedPlasma
/mob/living/carbon/alien/eyecheck()
return 2
@@ -83,16 +80,6 @@
/mob/living/carbon/alien/handle_environment(var/datum/gas_mixture/environment)
//If there are alien weeds on the ground then heal if needed or give some toxins
/*if(locate(/obj/structure/alien/weeds) in loc)
if(health >= maxHealth - getCloneLoss())
adjustToxLoss(plasma_rate)
else
adjustBruteLoss(-heal_rate)
adjustFireLoss(-heal_rate)
adjustOxyLoss(-heal_rate)
*///moved to organs
if(!environment)
return
@@ -179,8 +166,6 @@
..()
//if (client.statpanel == "Status")//ORGANS
// stat(null, "Plasma Stored: [getPlasma()]/[max_plasma]")
show_stat_emergency_shuttle_eta()
@@ -16,7 +16,7 @@
internal_organs += new /obj/item/organ/internal/xenos/acidgland
internal_organs += new /obj/item/organ/internal/xenos/resinspinner
..()
//
//Drones use the same base as generic humanoids.
//Drone verbs
@@ -29,7 +29,7 @@
// Queen check
var/no_queen = 1
for(var/mob/living/carbon/alien/humanoid/queen/Q in living_mob_list)
if(!Q.key && Q.get_int_organ(/obj/item/organ/internal/brain/))//Q.brain_op_stage != 4)
if(!Q.key && Q.get_int_organ(/obj/item/organ/internal/brain/))
continue
no_queen = 0
@@ -13,7 +13,7 @@ var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds
/obj/item/organ/internal/body_egg/alien_embryo/on_find(mob/living/finder)
..()
if(stage < 4)
finder << "It's small and weak, barely the size of a foetus."
finder << "It's small and weak, barely the size of a fetus."
else
finder << "It's grown quite large, and writhes slightly as you look at it."
if(prob(10))
@@ -72,10 +72,6 @@ var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds
if(stage == 5 && prob(50))
//for(var/datum/surgery/S in owner.surgeries)
// if(S.location == "chest" && istype(S.get_surgery_step(), /datum/surgery_step/manipulate_organs))
// AttemptGrow(0)
// return
AttemptGrow()
/obj/item/organ/internal/body_egg/alien_embryo/proc/AttemptGrow(var/gib_on_success = 1)
@@ -19,9 +19,6 @@
var/obj/item/head = null
var/obj/item/clothing/suit/wear_suit = null //TODO: necessary? Are they even used? ~Carn
//Surgery info
//var/datum/surgery_status/op_stage = new/datum/surgery_status
//Active emote/pose
var/pose = null
@@ -253,13 +253,13 @@
if(getBrainLoss() >= 60)
msg += "[t_He] [t_has] a stupid expression on [t_his] face.\n"
if(species.show_ssd && (!species.has_organ["brain"] || src.get_int_organ(/obj/item/organ/internal/brain)) && stat != DEAD)
if(species.show_ssd && (!species.has_organ["brain"] || get_int_organ(/obj/item/organ/internal/brain)) && stat != DEAD)
if(!key)
msg += "<span class='deadsay'>[t_He] [t_is] fast asleep. It doesn't look like they are waking up anytime soon.</span>\n"
else if(!client)
msg += "[t_He] [t_has] suddenly fallen asleep.\n"
if(!src.get_int_organ(/obj/item/organ/internal/brain) && !species.name == "Diona")
if(!get_int_organ(/obj/item/organ/internal/brain))
msg += "<span class='deadsay'>It appears that [t_his] brain is missing...</span>\n"
var/list/wound_flavor_text = list()
@@ -4,10 +4,8 @@
eyes.update_colour()
regenerate_icons()
///mob/living/carbon/var/list/internal_organs = list()
/mob/living/carbon/human/var/list/organs = list()
/mob/living/carbon/human/var/list/organs_by_name = list() // map organ names to organs
//mob/living/carbon/human/var/list/internal_organs_by_name = list() // so internal organs have less ickiness too
// Takes care of organ related updates, such as broken and missing limbs
/mob/living/carbon/human/proc/handle_organs()
+3 -3
View File
@@ -216,7 +216,7 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc
if(!(species.flags & RADIMMUNE))
if (radiation)
if(src.get_int_organ(/obj/item/organ/internal/nucleation/resonant_crystal))
if(get_int_organ(/obj/item/organ/internal/nucleation/resonant_crystal))
var/rads = radiation/25
radiation -= rads
radiation -= 0.1
@@ -886,7 +886,7 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc
//Vision //god knows why this is here
var/obj/item/organ/vision
if(species.vision_organ)
vision = src.get_int_organ(species.vision_organ)
vision = get_int_organ(species.vision_organ)
if(!species.vision_organ) // Presumably if a species has no vision organs, they see via some other means.
eye_blind = 0
@@ -1206,7 +1206,7 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc
/mob/living/carbon/human/proc/handle_heartbeat()
var/client/C = src.client
if(C && C.prefs.sound & SOUND_HEARTBEAT) //disable heartbeat by pref
var/obj/item/organ/internal/heart/H = src.get_int_organ(/obj/item/organ/internal/heart)
var/obj/item/organ/internal/heart/H = get_int_organ(/obj/item/organ/internal/heart)
if(!H) //H.status will runtime if there is no H (obviously)
return
@@ -144,15 +144,14 @@
for(var/obj/item/organ/internal/iorgan in H.internal_organs)
if((iorgan in H.internal_organs))
if(iorgan in H.internal_organs)
qdel(iorgan)
for(var/obj/item/organ/organ in H.contents)
if((organ in H.organs))
if(organ in H.organs)
qdel(organ)
if(H.organs) H.organs.Cut()
//if(H.internal_organs) H.internal_organs.Cut()
if(H.organs_by_name) H.organs_by_name.Cut()
H.organs = list()
+1 -1
View File
@@ -360,7 +360,7 @@
assailant.attack_log += text("\[[time_stamp()]\] <font color='red'>Pressed fingers into the eyes of [affecting.name] ([affecting.ckey])</font>")
affecting.attack_log += text("\[[time_stamp()]\] <font color='orange'>Had fingers pressed into their eyes by [assailant.name] ([assailant.ckey])</font>")
msg_admin_attack("[key_name(assailant)] has pressed his fingers into [key_name(affecting)]'s eyes.")
var/obj/item/organ/internal/eyes/eyes = affected.internal_organs_by_name["eyes"]
var/obj/item/organ/internal/eyes/eyes = affected.get_int_organ(/obj/item/organ/internal/eyes)
eyes.damage += rand(3,4)
if (eyes.damage >= eyes.min_broken_damage)
if(M.stat != 2)
@@ -186,7 +186,7 @@
continue
// Where we're going, we don't need eyes.
// Prosthetic eyes will also protect against this business.
var/obj/item/organ/internal/eyes/eyes = l.get_int_organ(/obj/item/organ/internal/eyes/)
var/obj/item/organ/internal/eyes/eyes = l.get_int_organ(/obj/item/organ/internal/eyes)
if(!istype(eyes))
continue
l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1,get_dist(l, src)) ) ) )
@@ -50,9 +50,6 @@
/obj/item/weapon/reagent_containers/attack_self(mob/user as mob)
return
/obj/item/weapon/reagent_containers/attack(mob/M as mob, mob/user as mob, def_zone)
return
// this prevented pills, food, and other things from being picked up by bags.
// possibly intentional, but removing it allows us to not duplicate functionality.
// -Sayu (storage conslidation)
+2 -2
View File
@@ -6,11 +6,11 @@
/datum/surgery/bone_repair
name = "bone repair"
steps = list(/datum/surgery_step/generic/cut_open,/datum/surgery_step/generic/clamp_bleeders,/datum/surgery_step/generic/retract_skin, /datum/surgery_step/glue_bone, /datum/surgery_step/set_bone,/datum/surgery_step/finish_bone,/datum/surgery_step/generic/cauterize)
possible_locs = list("chest","l_arm", "l_hand","r_arm","r_hand","r_leg","r_foot","l_leg","l_foot","groin")
possible_locs = list("chest", "l_arm", "l_hand", "r_arm", "r_hand","r_leg", "r_foot", "l_leg", "l_foot", "groin")
/datum/surgery/bone_repair/skull
name = "bone repair"
steps = list(/datum/surgery_step/generic/cut_open,/datum/surgery_step/generic/clamp_bleeders, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/glue_bone, /datum/surgery_step/mend_skull,/datum/surgery_step/finish_bone,/datum/surgery_step/generic/cauterize)
steps = list(/datum/surgery_step/generic/cut_open, /datum/surgery_step/generic/clamp_bleeders, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/glue_bone, /datum/surgery_step/mend_skull, /datum/surgery_step/finish_bone, /datum/surgery_step/generic/cauterize)
possible_locs = list("head")
/datum/surgery/bone_repair/can_start(mob/user, mob/living/carbon/target)
@@ -1,5 +1,3 @@
datumvars//note i am putting External in robolimbs.
#define STUN_SET_AMOUNT 2
/obj/item/organ/internal/cyberimp
+1 -1
View File
@@ -12,7 +12,7 @@
/obj/item/organ/internal/body_egg/New(loc)
if(iscarbon(loc))
src.insert(loc)
insert(loc)
return ..()
/obj/item/organ/internal/body_egg/insert(var/mob/living/carbon/M, special = 0)
+2 -34
View File
@@ -5,7 +5,7 @@ var/list/organ_cache = list()
icon = 'icons/obj/surgery.dmi'
var/dead_icon
var/mob/living/carbon/human/owner = null
var/status = ORGAN_ORGANIC
var/status = 0
var/vital //Lose a vital limb, die immediately.
var/damage = 0 // amount of damage to the organ
@@ -32,31 +32,6 @@ var/list/organ_cache = list()
var/sterile = 0 //can the organ be infected by germs?
var/tough = 0 //can organ be easily damaged?
/*/obj/item/organ/Destroy()
if(!owner)
return ..()
if(istype(owner, /mob/living/carbon))
if((owner.internal_organs) && (src in owner.internal_organs))
var/obj/item/organ/internal/O = src
O.remove(owner)
if(istype(owner, /mob/living/carbon/human))
var/obj/item/organ/internal/O = src
O.remove(owner)
if((owner.organs) && (src in owner.organs))
owner.organs -= src
if((owner.organs_by_name) && (src in owner.organs_by_name))
owner.organs_by_name -= src
if(src in owner.contents)
owner.contents -= src
return ..()*/
/obj/item/organ/proc/update_health()
return
@@ -97,8 +72,6 @@ var/list/organ_cache = list()
owner.death()
/obj/item/organ/process()
//if(loc != owner)
// owner = null
//dead already, no need for more processing
if(status & ORGAN_DEAD)
@@ -287,11 +260,6 @@ var/list/organ_cache = list()
if(!istype(owner))
return
//if(is_primary_organ())//Toddo from fethas:Do i need to move ths?
// owner.internal_organs_by_name[organ_tag] = null
// owner.internal_organs_by_name -= organ_tag
// owner.internal_organs_by_name -= null // uh what does this line even do this seems silly
owner.internal_organs -= src
var/obj/item/organ/external/affected = owner.get_organ(parent_organ)
@@ -320,7 +288,7 @@ var/list/organ_cache = list()
processing_objects -= src
affected.internal_organs |= src
if (!target.get_int_organ(src))
target.internal_organs |= src
target.internal_organs += src
src.loc = target
if(robotic)
status |= ORGAN_ROBOT
@@ -69,7 +69,6 @@
for(var/obj/item/organ/internal/O in internal_organs)
internal_organs -= O
O.remove(owner,special = 1)
//qdel(O)
if(children)
for(var/obj/item/organ/external/C in children)
@@ -389,6 +389,12 @@
M.mutations.Remove(CLUMSY)
M.mutations.Remove(COMICBLOCK)
genemutcheck(M,COMICBLOCK,null,MUTCHK_FORCED)
if(isturf(loc))
visible_message("<span class='warning'>[src] honks in on itself!</span>")
playsound(src, 'sound/items/AirHorn.ogg', 100, 1)
new /obj/item/weapon/bananapeel(get_turf(src.loc))
qdel(src)
/obj/item/organ/internal/honktumor/on_life()
@@ -396,7 +402,7 @@
return
if(organhonked < world.time)
organhonked = world.time+600
organhonked = world.time+900
owner << "<font color='red' size='7'>HONK</font>"
owner.sleeping = 0
owner.stuttering = 20
+1 -1
View File
@@ -293,7 +293,7 @@
I.remove(target)
I.loc = get_turf(target)
else
user.visible_message("[user] can't seem to extract anything from [target]'s [parse_zone(target_zone)]!",
user.visible_message("<span class='notice'>[user] can't seem to extract anything from [target]'s [parse_zone(target_zone)]!</span>",
"<span class='notice'>You can't extract anything from [target]'s [parse_zone(target_zone)]!</span>")
else if(current_type == "finish")