Removed nanoaugs, they were unbalanced and never used outside of badmins shitting things up.

They also added extra checks to

-Everytime a mob attacked (checking for super strength and electric hands)
-Every time a mob was attacked (checking for dermal armour)
-Every time a human was shot (checking for reflex)
-Every time a human breathed (checking for rebreather)
-Every tick of human life (checking for regen)
-Every hud update (checking for radar)

Not to mention just cluttered mob code in general. I know there won't be any noticeable performance increase from this but seeing as they were never going to be finished (I asked Doohl beforehand) and mob code is messy enough as is, I think only good can come of removing the code.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5587 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
Kortgstation@gmail.com
2013-01-20 10:45:20 +00:00
parent e2391d2eb8
commit b0077b3498
27 changed files with 224 additions and 477 deletions
@@ -333,7 +333,7 @@
if ("hurt")
var/damage = rand(1, 9)
if (prob(90))
if ((HULK in M.mutations) || (SUPRSTR in M.augmentations))//HULK SMASH
if (HULK in M.mutations)//HULK SMASH
damage += 14
spawn(0)
Weaken(damage) // Why can a hulk knock an alien out but not knock out a human? Damage is robust enough.
@@ -313,7 +313,7 @@
else
var/damage = rand(1, 9)
if (prob(90))
if ((HULK in M.mutations) || (SUPRSTR in M.augmentations))
if (HULK in M.mutations)
damage += 5
spawn(0)
Paralyse(1)
-152
View File
@@ -347,158 +347,6 @@
src.hud_used.hotkey_ui_hidden = 1
/*
Radar-related things
*/
/mob/living/carbon/human/proc/close_radar()
radar_open = 0
for(var/obj/screen/x in client.screen)
if( (x.name == "radar" && x.icon == 'icons/misc/radar.dmi') || (x in radar_blips) )
client.screen -= x
del(x)
place_radar_closed()
/mob/living/carbon/human/proc/place_radar_closed()
var/obj/screen/closedradar = new()
closedradar.icon = 'icons/misc/radar.dmi'
closedradar.icon_state = "radarclosed"
closedradar.screen_loc = "WEST,NORTH-1"
closedradar.name = "radar closed"
client.screen += closedradar
/mob/living/carbon/human/proc/start_radar()
for(var/obj/screen/x in client.screen)
if(x.name == "radar closed" && x.icon == 'icons/misc/radar.dmi')
client.screen -= x
del(x)
var/obj/screen/cornerA = new()
cornerA.icon = 'icons/misc/radar.dmi'
cornerA.icon_state = "radar(1,1)"
cornerA.screen_loc = "WEST,NORTH-2"
cornerA.name = "radar"
var/obj/screen/cornerB = new()
cornerB.icon = 'icons/misc/radar.dmi'
cornerB.icon_state = "radar(2,1)"
cornerB.screen_loc = "WEST+1,NORTH-2"
cornerB.name = "radar"
var/obj/screen/cornerC = new()
cornerC.icon = 'icons/misc/radar.dmi'
cornerC.icon_state = "radar(1,2)"
cornerC.screen_loc = "WEST,NORTH-1"
cornerC.name = "radar"
var/obj/screen/cornerD = new()
cornerD.icon = 'icons/misc/radar.dmi'
cornerD.icon_state = "radar(2,2)"
cornerD.screen_loc = "WEST+1,NORTH-1"
cornerD.name = "radar"
client.screen += cornerA
client.screen += cornerB
client.screen += cornerC
client.screen += cornerD
radar_open = 1
while(radar_open && (RADAR in augmentations))
update_radar()
sleep(6)
/mob/living/carbon/human/proc/update_radar()
if(!client) return
var/list/found_targets = list()
var/max_dist = 29 // 29 tiles is the max distance
// If the mob is inside a turf, set the center to the object they're in
var/atom/distance_ref = src
if(!isturf(src.loc))
distance_ref = loc
// Clear the radar_blips cache
for(var/x in radar_blips)
client.screen -= x
del(x)
radar_blips = list()
var/starting_px = 3
var/starting_py = 3
for(var/mob/living/M in orange(max_dist, distance_ref))
if(M.stat == 2) continue
found_targets.Add(M)
for(var/obj/mecha/M in orange(max_dist, distance_ref))
if(!M.occupant) continue
found_targets.Add(M)
for(var/obj/structure/closet/C in orange(max_dist, distance_ref))
for(var/mob/living/M in C.contents)
if(M.stat == 2) continue
found_targets.Add(M)
// Loop through all living mobs in a range.
for(var/atom/A in found_targets)
var/a_x = A.x
var/a_y = A.y
if(!isturf(A.loc))
a_x = A.loc.x
a_y = A.loc.y
var/blip_x = max_dist + (-( distance_ref.x-a_x ) ) + starting_px
var/blip_y = max_dist + (-( distance_ref.y-a_y ) ) + starting_py
var/obj/screen/blip = new()
blip.icon = 'icons/misc/radar.dmi'
blip.name = "Blip"
blip.layer = 21
blip.screen_loc = "WEST:[blip_x-1],NORTH-2:[blip_y-1]" // offset -1 because the center of the blip is not at the bottomleft corner (14)
if(istype(A, /mob/living))
var/mob/living/M = A
if(ishuman(M))
if(M:wear_id)
var/job = M:wear_id:GetJobName()
if(job == "Security Officer")
blip.icon_state = "secblip"
blip.name = "Security Officer"
else if(job == "Captain" || job == "Research Director" || job == "Chief Engineer" || job == "Chief Medical Officer" || job == "Head of Security" || job == "Head of Personnel")
blip.icon_state = "headblip"
blip.name = "Station Head"
else
blip.icon_state = "civblip"
blip.name = "Civilian"
else
blip.icon_state = "civblip"
blip.name = "Civilian"
else if(issilicon(M))
blip.icon_state = "roboblip"
blip.name = "Robotic Organism"
else
blip.icon_state = "unknownblip"
blip.name = "Unknown Organism"
else if(istype(A, /obj/mecha))
blip.icon_state = "roboblip"
blip.name = "Robotic Organism"
radar_blips.Add(blip)
client.screen += blip
/mob/living/carbon/human/update_action_buttons()
var/num = 1
if(!src.hud_used) return
@@ -43,7 +43,6 @@
var/armor_block = run_armor_check(affecting, "melee")
if(HULK in M.mutations) damage += 5
if(SUPRSTR in M.augmentations) damage += 5
playsound(loc, "punch", 25, 1, -1)
@@ -99,25 +98,6 @@
if("hurt")
if(ELECTRICHANDS in M.augmentations)
var/gendertxt = "their"
if(M.gender == MALE)
gendertxt = "his"
if(M.gender == FEMALE)
gendertxt = "her"
visible_message("\red <B>[M] has shocked [src] with [gendertxt] bare hands!</B>")
M.attack_log += text("\[[time_stamp()]\] <font color='red'>Used Electric Hands nanoaug power on [src.name] ([src.ckey])</font>")
src.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been shocked by [M.name] with the Electric Hands nanoaug ([M.ckey])</font>")
log_attack("<font color='red'>[M.name] ([M.ckey]) used Electric Hands nanoaug on [src.name], shocking them ([src.ckey])</font>")
var/armorblock = run_armor_check(M.zone_sel.selecting, "energy")
apply_effects(5,5,0,0,5,0,0,armorblock)
return
M.attack_log += text("\[[time_stamp()]\] <font color='red'>Punched [src.name] ([src.ckey])</font>")
src.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been punched by [M.name] ([M.ckey])</font>")
@@ -151,7 +131,6 @@
var/armor_block = run_armor_check(affecting, "melee")
if(HULK in M.mutations) damage += 5
if(SUPRSTR in M.augmentations) damage += 5
switch(attack_verb)
if("slash")
@@ -175,9 +175,6 @@
if(blocked)
damage = (damage/(blocked+1))
if(DERMALARMOR in augmentations)
damage = damage - (round(damage*0.35)) // reduce damage by 35%
switch(damagetype)
if(BRUTE)
damageoverlaytemp = 20
+1 -27
View File
@@ -172,32 +172,6 @@
if((COLD_RESISTANCE in mutations) || (prob(1)))
heal_organ_damage(0,1)
// Make nanoregen heal youu, -3 all damage types
if(NANOREGEN in augmentations)
var/healed = 0
if(getToxLoss())
adjustToxLoss(-3)
healed = 1
if(getOxyLoss())
adjustOxyLoss(-3)
healed = 1
if(getCloneLoss())
adjustCloneLoss(-3)
healed = 1
if(getBruteLoss())
heal_organ_damage(3,0)
healed = 1
if(getFireLoss())
heal_organ_damage(0,3)
healed = 1
if(halloss > 0)
halloss -= 3
if(halloss < 0) halloss = 0
healed = 1
if(healed)
if(prob(5))
src << "\blue You feel your wounds mending..."
if ((HULK in mutations) && health <= 25)
mutations.Remove(HULK)
update_mutations() //update our mutation overlays
@@ -329,7 +303,7 @@
proc/handle_breath(datum/gas_mixture/breath)
if((status_flags & GODMODE) || REBREATHER in augmentations)
if((status_flags & GODMODE))
return
if(!breath || (breath.total_moles() == 0) || suiciding)
@@ -472,21 +472,12 @@
O.show_message(text("\red [] has grabbed [] passively!", M, src), 1)
else
if(ELECTRICHANDS in M.augmentations)
var/gendertxt = "their"
if(M.gender == MALE)
gendertxt = "his"
if(M.gender == FEMALE)
gendertxt = "her"
visible_message("\red <B>[M] has shocked [src] with [gendertxt] bare hands!</B>")
return
var/damage = rand(1, 9)
attacked += 10
if (prob(90))
if ((HULK in M.mutations) || (SUPRSTR in M.augmentations))
if (HULK in M.mutations)
damage += 5
if(Victim)
Victim = null
@@ -65,18 +65,20 @@
emote_see = list("jiggles", "bounces in place")
var/colour = "grey"
/mob/living/simple_animal/slime/adult/Die()
/mob/living/simple_animal/adultslime/New()
..()
overlays += "aslime-:33"
/mob/living/simple_animal/slime/adult/Die()
var/mob/living/simple_animal/slime/S1 = new /mob/living/simple_animal/slime (src.loc)
S1.icon_state = "[src.colour] baby slime"
S1.icon_state = "[src.colour] adult slime"
S1.icon_living = "[src.colour] adult slime"
S1.icon_dead = "[src.colour] adult slime dead"
S1.icon_living = "[src.colour] baby slime"
S1.icon_dead = "[src.colour] baby slime dead"
S1.colour = "[src.colour]"
var/mob/living/simple_animal/slime/S2 = new /mob/living/simple_animal/slime (src.loc)
S2.icon_state = "[src.colour] baby slime"
S2.icon_state = "[src.colour] adult slime"
S2.icon_living = "[src.colour] adult slime"
S2.icon_dead = "[src.colour] adult slime dead"
S2.icon_living = "[src.colour] baby slime"
S2.icon_dead = "[src.colour] baby slime dead"
S2.colour = "[src.colour]"
del(src)
-3
View File
@@ -140,9 +140,6 @@
var/list/mutations = list() //Carbon -- Doohl
//see: setup.dm for list of mutations
var/list/augmentations = list() //Carbon -- Doohl
//see: setup.dm for list of augmentations
var/voice_name = "unidentifiable voice"
var/voice_message = null // When you are not understood by others (replaced with just screeches, hisses, chimpers etc.)
var/say_message = null // When you are understood by others. Currently only used by aliens and monkeys in their say_quote procs
+2 -8
View File
@@ -456,12 +456,6 @@
usr:inv3.icon_state = "inv3"
usr:module_active = null
if("radar")
usr:close_radar()
if("radar closed")
usr:start_radar()
else
DblClick()
return
@@ -641,7 +635,7 @@
if(CM.handcuffed && CM.canmove && (CM.last_special <= world.time))
CM.next_move = world.time + 100
CM.last_special = world.time + 100
if(isalienadult(CM) || (HULK in usr.mutations) || (SUPRSTR in CM.augmentations))//Don't want to do a lot of logic gating here.
if(isalienadult(CM) || (HULK in usr.mutations))//Don't want to do a lot of logic gating here.
usr << "\red You attempt to break your handcuffs. (This will take around 5 seconds and you need to stand still)"
for(var/mob/O in viewers(CM))
O.show_message(text("\red <B>[] is trying to break the handcuffs!</B>", CM), 1)
@@ -679,7 +673,7 @@
else if(CM.legcuffed && CM.canmove && (CM.last_special <= world.time))
CM.next_move = world.time + 100
CM.last_special = world.time + 100
if(isalienadult(CM) || (HULK in usr.mutations) || (SUPRSTR in CM.augmentations))//Don't want to do a lot of logic gating here.
if(isalienadult(CM) || (HULK in usr.mutations))//Don't want to do a lot of logic gating here.
usr << "\red You attempt to break your legcuffs. (This will take around 5 seconds and you need to stand still)"
for(var/mob/O in viewers(CM))
O.show_message(text("\red <B>[] is trying to break the legcuffs!</B>", CM), 1)
+5 -11
View File
@@ -74,18 +74,12 @@
loc = A.loc
return 0// nope.avi
// check for dodge (i can't place in bullet_act because then things get wonky)
if(!M.stat && !M.lying && (REFLEXES in M.augmentations) && prob(85))
var/message = pick("[M] skillfully dodges the [name]!", "[M] ducks, dodging the [name]!", "[M] effortlessly jumps out of the way of the [name]!", "[M] dodges the [name] in one graceful movement!", "[M] leans back, dodging the [name] narrowly!", "[M] sidesteps, avoiding the [name] narrowly.", "[M] barely weaves out of the way of the [name].")
M.visible_message("\red <B>[message]</B>")
forcedodge = 1
var/distance = get_dist(original,loc)
def_zone = ran_zone(def_zone, 100-(5*distance)) //Lower accurancy/longer range tradeoff.
if(silenced)
M << "\red You've been shot in the [parse_zone(def_zone)] by the [src.name]!"
else
var/distance = get_dist(original,loc)
def_zone = ran_zone(def_zone, 100-(5*distance)) //Lower accurancy/longer range tradeoff.
if(silenced)
M << "\red You've been shot in the [parse_zone(def_zone)] by the [src.name]!"
else
visible_message("\red [A.name] is hit by the [src.name] in the [parse_zone(def_zone)]!")//X has fired Y is now given by the guns so you cant tell who shot you if you could not see the shooter
visible_message("\red [A.name] is hit by the [src.name] in the [parse_zone(def_zone)]!")//X has fired Y is now given by the guns so you cant tell who shot you if you could not see the shooter
if(istype(firer, /mob))
M.attack_log += "\[[time_stamp()]\] <b>[firer]/[firer.ckey]</b> shot <b>[M]/[M.ckey]</b> with a <b>[src]</b>"