From 2e1948eb1c8025ddfa1bbe307b9a21d13e73ee98 Mon Sep 17 00:00:00 2001 From: uporotiy Date: Tue, 4 Jan 2011 22:04:51 +0000 Subject: [PATCH] Lizards! git-svn-id: http://tgstation13.googlecode.com/svn/trunk@780 316c924e-a436-60f5-8080-3fe189b3f50e --- code/game/objects/livestock.dm | 145 ++++++++++++++++++++------------- icons/mob/livestock.dmi | Bin 17541 -> 17200 bytes 2 files changed, 90 insertions(+), 55 deletions(-) diff --git a/code/game/objects/livestock.dm b/code/game/objects/livestock.dm index 0aa573d0789..01c18c954aa 100644 --- a/code/game/objects/livestock.dm +++ b/code/game/objects/livestock.dm @@ -16,6 +16,7 @@ var/frustration = 0 //How long it's gone without reaching it's target. var/patience = 35 //The maximum time it'll chase a target. var/mob/living/carbon/target //It's combat target. + var/list/mob/living/carbon/flee_from = new/list() var/list/path_target = new/list() //The path to the combat target. var/turf/trg_idle //It's idle target, the one it's following but not attacking. @@ -25,6 +26,7 @@ var/maxhealth = 25 var/health = 25 var/aggressive = 0 + var/cowardly = 0 //PLEASE do not mix with agressive, I have no idea what its behaviour will be then flags = 258.0 var/strength = 10 //The damage done by the creature if it attacks something. var/cycle_pause = 5 @@ -230,62 +232,83 @@ set background = 1 if (!alive) //If it isn't alive, it shouldn't be doing anything. return - if (!target) - if (path_target.len) path_target = new/list() //No target but there's still path data? reset it. - var/last_health = INFINITY //Set as high as possible as an initial value. - var/view = view_range-2 //Actual sight slightly lower then it's total sight. - for (var/mob/living/carbon/C in range(view,src.loc)) //Checks all carbon creatures in range. - if (!aggressive) //Is this animal angry? If not, what the fuck are you doing? - break - if (C.stat == 2 || !can_see(src,C,view_range) || (!can_see(src,C,(view_range / 2)) && C.invisibility >= 1)) - continue - if(C:stunned || C:paralysis || C:weakened) - target = C - break - if(C:health < last_health) //Selects the target but does NOT break the FOR loop. - last_health = C:health // As such, it'll keep going until it finds the one with the - target = C // lowest health. - if(target) //Does it have a target NOW? - if (aggressive) //Double checking if it is aggressive or not. - set_attack() - else if(state != 2) //If it doesn't have a target and it isn't idling already, idle. - set_idle() - idle() - else if(target) //It already has a target? YAY! - var/turf/distance = get_dist(src, target) - if (src.aggressive) //I probably don't need this check, but just in case. - set_attack() - else - set_idle() - idle() - if(can_see(src,target,view_range )) //Can I see it? - if(distance <= 1) //Am I close enough to attack it? - for(var/mob/O in viewers(world.view,src)) - O.show_message("\red [src.target] has been attacked by [src.name]!", 1, "\red You hear someone fall.", 2) - target:bruteloss += strength - special_attack() - src.loc = target.loc - set_null() - step_towards(src,get_step_towards2(src , target)) // Move towards the target. - else - if( !path_target.len ) //Don't have a path yet but do have a target? - path_attack(target) //Find a path! - if(!path_target.len) //Still no path? - set_null() //Fuck this shit. - if( path_target.len ) //Ok, I DO have a path - var/turf/next = path_target[1] //Select the next square to move to. - if(next in range(1,src)) //Is it next to it? - path_attack(target) //Re-find path. - if(!path_target.len) //If can't path to the target, it gets really angry. - src.frustration += 5 + if (cowardly) //cowardly = 1 stuff + if (!flee_from.len) //checking for threats + var/view = view_range-2 //Actual sight slightly lower then it's total sight. + for (var/mob/living/carbon/C in range(view,src.loc)) + if ((get_dir(src,C) & dir) || (C.m_intent=="run" && C.moved_recently)) //if it can see or hear anyone nearby, start fleeing + flee_from += C + if (flee_from.len) //ohgodrun + var/viable_dirs = 0 + for(var/mob/living/carbon/C in flee_from) + if(!(C in view(src,view_range))) //first, see if someone who it has been fleeing from is still there. if not, delete that guy from the list + flee_from -= C else - next = path_target[1] //If it CAN path to the target, select the next move point - path_target -= next - step_towards(src,next) //And move in that direction. - if (get_dist(src, src.target) >= distance) src.frustration++ //If it hasn't reached the target yet, get a little angry. - else src.frustration-- //It reached the target! Get less angry. - if(frustration >= patience) set_null() //If too angry? Fuck this shit. - if(target) + viable_dirs |= get_dir(src,C) + viable_dirs = 15 - viable_dirs //so it runs AWAY from those directions, not TOWARDS them + if(viable_dirs) //if there is somewhere to run, DO IT DAMNIT + var/list/turfs_to_move_to = new/list() + for(var/turf/T in orange(src,1)) + if((get_dir(src,T) & viable_dirs) == get_dir(src,T)) + turfs_to_move_to += T + src.Move(pick(turfs_to_move_to)) + if (aggressive) //aggressive = 1 stuff + if (!target) + if (path_target.len) path_target = new/list() //No target but there's still path data? reset it. + var/last_health = INFINITY //Set as high as possible as an initial value. + var/view = view_range-2 //Actual sight slightly lower then it's total sight. + for (var/mob/living/carbon/C in range(view,src.loc)) //Checks all carbon creatures in range. + if (!aggressive) //Is this animal angry? If not, what the fuck are you doing? + break + if (C.stat == 2 || !can_see(src,C,view_range) || (!can_see(src,C,(view_range / 2)) && C.invisibility >= 1)) + continue + if(C:stunned || C:paralysis || C:weakened) + target = C + break + if(C:health < last_health) //Selects the target but does NOT break the FOR loop. + last_health = C:health // As such, it'll keep going until it finds the one with the + target = C // lowest health. + if(target) //Does it have a target NOW? + if (aggressive) //Double checking if it is aggressive or not. + set_attack() + else if(state != 2) //If it doesn't have a target and it isn't idling already, idle. + set_idle() + idle() + else if(target) //It already has a target? YAY! + var/turf/distance = get_dist(src, target) + if (src.aggressive) //I probably don't need this check, but just in case. + set_attack() + else + set_idle() + idle() + if(can_see(src,target,view_range )) //Can I see it? + if(distance <= 1) //Am I close enough to attack it? + for(var/mob/O in viewers(world.view,src)) + O.show_message("\red [src.target] has been attacked by [src.name]!", 1, "\red You hear someone fall.", 2) + target:bruteloss += strength + special_attack() + src.loc = target.loc + set_null() + step_towards(src,get_step_towards2(src , target)) // Move towards the target. + else + if( !path_target.len ) //Don't have a path yet but do have a target? + path_attack(target) //Find a path! + if(!path_target.len) //Still no path? + set_null() //Fuck this shit. + if( path_target.len ) //Ok, I DO have a path + var/turf/next = path_target[1] //Select the next square to move to. + if(next in range(1,src)) //Is it next to it? + path_attack(target) //Re-find path. + if(!path_target.len) //If can't path to the target, it gets really angry. + src.frustration += 5 + else + next = path_target[1] //If it CAN path to the target, select the next move point + path_target -= next + step_towards(src,next) //And move in that direction. + if (get_dist(src, src.target) >= distance) src.frustration++ //If it hasn't reached the target yet, get a little angry. + else src.frustration-- //It reached the target! Get less angry. + if(frustration >= patience) set_null() //If too angry? Fuck this shit. + if(target || flee_from.len) spawn(cycle_pause / 3) src.process() else @@ -413,6 +436,18 @@ stun_chance = 40 intelligence = "Assistant" +/obj/livestock/lizard + name = "Lizard" + desc = "A cute tiny lizard." + icon_state = "lizard" + cowardly = 1 + health = 10 + maxhealth = 10 + strength = 2 + cycle_pause = 10 + patience = 50 + view_range = 7 + /* Commented out because of filthy xeno-lovers. /obj/livestock/cow name = "Pigmy Cow" diff --git a/icons/mob/livestock.dmi b/icons/mob/livestock.dmi index cedaeaf5066bc99458a958862c74832028fdf9cc..d833643d5c183b57a0f8186d1ff4d8e83def0af1 100644 GIT binary patch literal 17200 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 N%JLd=l`>`_{|BNy3rqk2 literal 17541 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