mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-16 21:22:40 +00:00
Buildmode enhancement and removes simple_animal for real this time.
This commit is contained in:
@@ -501,7 +501,7 @@ Turf and target are seperate in case you want to teleport some distance from a t
|
|||||||
moblist.Add(M)
|
moblist.Add(M)
|
||||||
for(var/mob/new_player/M in sortmob)
|
for(var/mob/new_player/M in sortmob)
|
||||||
moblist.Add(M)
|
moblist.Add(M)
|
||||||
for(var/mob/living/simple_animal/M in sortmob)
|
for(var/mob/living/simple_mob/M in sortmob)
|
||||||
moblist.Add(M)
|
moblist.Add(M)
|
||||||
// for(var/mob/living/silicon/hivebot/M in sortmob)
|
// for(var/mob/living/silicon/hivebot/M in sortmob)
|
||||||
// mob_list.Add(M)
|
// mob_list.Add(M)
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
|
|
||||||
#define isbot(A) istype(A, /mob/living/bot)
|
#define isbot(A) istype(A, /mob/living/bot)
|
||||||
|
|
||||||
#define isxeno(A) istype(A, /mob/living/simple_animal/xeno)
|
#define isxeno(A) istype(A, /mob/living/simple_mob/animal/space/alien)
|
||||||
|
|
||||||
#define isopenspace(A) istype(A, /turf/simulated/open)
|
#define isopenspace(A) istype(A, /turf/simulated/open)
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
return 0
|
return 0
|
||||||
user << "<span class='notice'>You stab \the [L] with a hidden integrated hypo, attempting to bring them back...</span>"
|
user << "<span class='notice'>You stab \the [L] with a hidden integrated hypo, attempting to bring them back...</span>"
|
||||||
if(istype(L, /mob/living/simple_mob))
|
if(istype(L, /mob/living/simple_mob))
|
||||||
var/mob/living/simple_animal/SM = L
|
var/mob/living/simple_mob/SM = L
|
||||||
SM.health = SM.getMaxHealth() / 3
|
SM.health = SM.getMaxHealth() / 3
|
||||||
SM.stat = CONSCIOUS
|
SM.stat = CONSCIOUS
|
||||||
dead_mob_list -= SM
|
dead_mob_list -= SM
|
||||||
|
|||||||
@@ -201,7 +201,7 @@ var/prison_shuttle_timeleft = 0
|
|||||||
for(var/mob/living/carbon/bug in end_location) // If someone somehow is still in the shuttle's docking area...
|
for(var/mob/living/carbon/bug in end_location) // If someone somehow is still in the shuttle's docking area...
|
||||||
bug.gib()
|
bug.gib()
|
||||||
|
|
||||||
for(var/mob/living/simple_animal/pest in end_location) // And for the other kind of bug...
|
for(var/mob/living/simple_mob/pest in end_location) // And for the other kind of bug...
|
||||||
pest.gib()
|
pest.gib()
|
||||||
|
|
||||||
start_location.move_contents_to(end_location)
|
start_location.move_contents_to(end_location)
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ var/specops_shuttle_timeleft = 0
|
|||||||
for(var/mob/living/carbon/bug in end_location) // If someone somehow is still in the shuttle's docking area...
|
for(var/mob/living/carbon/bug in end_location) // If someone somehow is still in the shuttle's docking area...
|
||||||
bug.gib()
|
bug.gib()
|
||||||
|
|
||||||
for(var/mob/living/simple_animal/pest in end_location) // And for the other kind of bug...
|
for(var/mob/living/simple_mob/pest in end_location) // And for the other kind of bug...
|
||||||
pest.gib()
|
pest.gib()
|
||||||
|
|
||||||
start_location.move_contents_to(end_location)
|
start_location.move_contents_to(end_location)
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ var/syndicate_elite_shuttle_timeleft = 0
|
|||||||
for(var/mob/living/carbon/bug in end_location) // If someone somehow is still in the shuttle's docking area...
|
for(var/mob/living/carbon/bug in end_location) // If someone somehow is still in the shuttle's docking area...
|
||||||
bug.gib()
|
bug.gib()
|
||||||
|
|
||||||
for(var/mob/living/simple_animal/pest in end_location) // And for the other kind of bug...
|
for(var/mob/living/simple_mob/pest in end_location) // And for the other kind of bug...
|
||||||
pest.gib()
|
pest.gib()
|
||||||
|
|
||||||
start_location.move_contents_to(end_location)
|
start_location.move_contents_to(end_location)
|
||||||
|
|||||||
@@ -476,9 +476,6 @@ About the new airlock wires panel:
|
|||||||
return
|
return
|
||||||
..(user)
|
..(user)
|
||||||
|
|
||||||
/obj/machinery/door/airlock/bumpopen(mob/living/simple_animal/user as mob)
|
|
||||||
..(user)
|
|
||||||
|
|
||||||
/obj/machinery/door/airlock/proc/isElectrified()
|
/obj/machinery/door/airlock/proc/isElectrified()
|
||||||
if(src.electrified_until != 0)
|
if(src.electrified_until != 0)
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
/obj/machinery/door/attack_generic(var/mob/user, var/damage)
|
/obj/machinery/door/attack_generic(var/mob/user, var/damage)
|
||||||
if(isanimal(user))
|
if(isanimal(user))
|
||||||
var/mob/living/simple_mob/S = user
|
var/mob/living/simple_mob/S = user
|
||||||
if(damage >= 10)
|
if(damage >= 5)
|
||||||
visible_message("<span class='danger'>\The [user] smashes into the [src]!</span>")
|
visible_message("<span class='danger'>\The [user] smashes into the [src]!</span>")
|
||||||
playsound(src, S.attack_sound, 75, 1)
|
playsound(src, S.attack_sound, 75, 1)
|
||||||
take_damage(damage)
|
take_damage(damage)
|
||||||
|
|||||||
@@ -409,7 +409,7 @@ var/list/turret_icons
|
|||||||
/obj/machinery/porta_turret/attack_generic(mob/living/L, damage)
|
/obj/machinery/porta_turret/attack_generic(mob/living/L, damage)
|
||||||
if(isanimal(L))
|
if(isanimal(L))
|
||||||
var/mob/living/simple_mob/S = L
|
var/mob/living/simple_mob/S = L
|
||||||
if(damage >= 10)
|
if(damage >= 5)
|
||||||
var/incoming_damage = round(damage - (damage / 5)) //Turrets are slightly armored, assumedly.
|
var/incoming_damage = round(damage - (damage / 5)) //Turrets are slightly armored, assumedly.
|
||||||
visible_message("<span class='danger'>\The [S] [pick(S.attacktext)] \the [src]!</span>")
|
visible_message("<span class='danger'>\The [S] [pick(S.attacktext)] \the [src]!</span>")
|
||||||
take_damage(incoming_damage)
|
take_damage(incoming_damage)
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
var/usable = 0
|
var/usable = 0
|
||||||
if(user.Adjacent(T) && user.get_active_hand() == src && !user.stat && !user.restrained())
|
if(user.Adjacent(T) && user.get_active_hand() == src && !user.stat && !user.restrained())
|
||||||
usable = 1
|
usable = 1
|
||||||
if(!user.IsAdvancedToolUser() && istype(user, /mob/living/simple_animal))
|
if(!user.IsAdvancedToolUser() && istype(user, /mob/living/simple_mob))
|
||||||
var/mob/living/simple_mob/S = user
|
var/mob/living/simple_mob/S = user
|
||||||
if(!S.IsHumanoidToolUser(src))
|
if(!S.IsHumanoidToolUser(src))
|
||||||
usable = 0
|
usable = 0
|
||||||
|
|||||||
@@ -292,7 +292,7 @@ var/list/tape_roll_applications = list()
|
|||||||
add_fingerprint(M)
|
add_fingerprint(M)
|
||||||
if (!allowed(M)) //only select few learn art of not crumpling the tape
|
if (!allowed(M)) //only select few learn art of not crumpling the tape
|
||||||
M << "<span class='warning'>You are not supposed to go past [src]...</span>"
|
M << "<span class='warning'>You are not supposed to go past [src]...</span>"
|
||||||
if(M.a_intent == I_HELP && !(istype(M, /mob/living/simple_animal)))
|
if(M.a_intent == I_HELP && !(istype(M, /mob/living/simple_mob)))
|
||||||
return 0
|
return 0
|
||||||
crumple()
|
crumple()
|
||||||
return ..(mover)
|
return ..(mover)
|
||||||
|
|||||||
@@ -269,9 +269,8 @@
|
|||||||
|
|
||||||
/obj/item/weapon/melee/baton/shocker/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone)
|
/obj/item/weapon/melee/baton/shocker/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone)
|
||||||
..(target, user, hit_zone)
|
..(target, user, hit_zone)
|
||||||
if(istype(target, /mob/living/simple_animal) && status)
|
if(status && target.has_AI())
|
||||||
var/mob/living/simple_animal/SA = target
|
target.taunt(user)
|
||||||
SA.taunt(user)
|
|
||||||
|
|
||||||
// Borg version, for the lost module.
|
// Borg version, for the lost module.
|
||||||
/obj/item/weapon/melee/baton/shocker/robot
|
/obj/item/weapon/melee/baton/shocker/robot
|
||||||
|
|||||||
@@ -206,7 +206,7 @@
|
|||||||
user.setClickCooldown(user.get_attack_speed())
|
user.setClickCooldown(user.get_attack_speed())
|
||||||
if(!damage)
|
if(!damage)
|
||||||
return
|
return
|
||||||
if(damage >= 10)
|
if(damage >= 5)
|
||||||
visible_message("<span class='danger'>[user] smashes into [src]!</span>")
|
visible_message("<span class='danger'>[user] smashes into [src]!</span>")
|
||||||
if(reinf)
|
if(reinf)
|
||||||
damage = damage / 2
|
damage = damage / 2
|
||||||
|
|||||||
@@ -27,16 +27,16 @@
|
|||||||
|
|
||||||
cleaving = TRUE
|
cleaving = TRUE
|
||||||
var/hit_mobs = 0
|
var/hit_mobs = 0
|
||||||
for(var/mob/living/simple_animal/SA in range(get_turf(target), 1))
|
for(var/mob/living/simple_mob/SM in range(get_turf(target), 1))
|
||||||
if(SA.stat == DEAD) // Don't beat a dead horse.
|
if(SM.stat == DEAD) // Don't beat a dead horse.
|
||||||
continue
|
continue
|
||||||
if(SA == user) // Don't hit ourselves. Simple mobs shouldn't be able to do this but that might change later to be able to hit all mob/living-s.
|
if(SM == user) // Don't hit ourselves. Simple mobs shouldn't be able to do this but that might change later to be able to hit all mob/living-s.
|
||||||
continue
|
continue
|
||||||
if(SA == target) // We (presumably) already hit the target before cleave() was called. orange() should prevent this but just to be safe...
|
if(SM == target) // We (presumably) already hit the target before cleave() was called. orange() should prevent this but just to be safe...
|
||||||
continue
|
continue
|
||||||
if(!SA.Adjacent(user) || !SA.Adjacent(target)) // Cleaving only hits mobs near the target mob and user.
|
if(!SM.Adjacent(user) || !SM.Adjacent(target)) // Cleaving only hits mobs near the target mob and user.
|
||||||
continue
|
continue
|
||||||
if(resolve_attackby(SA, user, attack_modifier = 0.5)) // Hit them with the weapon. This won't cause recursive cleaving due to the cleaving variable being set to true.
|
if(resolve_attackby(SM, user, attack_modifier = 0.5)) // Hit them with the weapon. This won't cause recursive cleaving due to the cleaving variable being set to true.
|
||||||
hit_mobs++
|
hit_mobs++
|
||||||
|
|
||||||
cleave_visual(user, target)
|
cleave_visual(user, target)
|
||||||
|
|||||||
@@ -462,9 +462,11 @@
|
|||||||
if(L in holder.selected_mobs)
|
if(L in holder.selected_mobs)
|
||||||
// Todo: Select graphic only the admin can see?
|
// Todo: Select graphic only the admin can see?
|
||||||
holder.selected_mobs -= L
|
holder.selected_mobs -= L
|
||||||
|
user.client.images -= L.selected_image
|
||||||
to_chat(user, span("notice", "Deselected \the [L]."))
|
to_chat(user, span("notice", "Deselected \the [L]."))
|
||||||
else
|
else
|
||||||
holder.selected_mobs += L
|
holder.selected_mobs += L
|
||||||
|
user.client.images += L.selected_image
|
||||||
to_chat(user, span("notice", "Selected \the [L]."))
|
to_chat(user, span("notice", "Selected \the [L]."))
|
||||||
else
|
else
|
||||||
to_chat(user, span("warning", "\The [L] is not AI controlled."))
|
to_chat(user, span("warning", "\The [L] is not AI controlled."))
|
||||||
|
|||||||
@@ -259,62 +259,6 @@
|
|||||||
ai_log("handle_stance_strategical() : Exiting.", AI_LOG_TRACE)
|
ai_log("handle_stance_strategical() : Exiting.", AI_LOG_TRACE)
|
||||||
ai_log("++++++++++ Slow Process Ending ++++++++++", AI_LOG_TRACE)
|
ai_log("++++++++++ Slow Process Ending ++++++++++", AI_LOG_TRACE)
|
||||||
|
|
||||||
/*
|
|
||||||
//Yes I'm breaking this into two if()'s for ease of reading
|
|
||||||
//If we ARE ALLOWED TO
|
|
||||||
if(returns_home && home_turf && !astarpathing && (world.time - stance_changed) > 10 SECONDS)
|
|
||||||
if(get_dist(src,home_turf) > wander_distance)
|
|
||||||
move_to_delay = initial(move_to_delay)*2 //Walk back.
|
|
||||||
GoHome()
|
|
||||||
else
|
|
||||||
stop_automated_movement = 0
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
// For proccessing the current stance, or setting and processing a new one
|
|
||||||
/mob/living/simple_animal/proc/handle_stance(var/new_stance)
|
|
||||||
if(ai_inactive)
|
|
||||||
stance = STANCE_IDLE
|
|
||||||
return
|
|
||||||
|
|
||||||
if(new_stance)
|
|
||||||
set_stance(new_stance)
|
|
||||||
|
|
||||||
switch(stance)
|
|
||||||
if(STANCE_IDLE)
|
|
||||||
target_mob = null
|
|
||||||
a_intent = I_HELP
|
|
||||||
annoyed = max(0,annoyed--)
|
|
||||||
|
|
||||||
//Yes I'm breaking this into two if()'s for ease of reading
|
|
||||||
//If we ARE ALLOWED TO
|
|
||||||
if(returns_home && home_turf && !astarpathing && (world.time - stance_changed) > 10 SECONDS)
|
|
||||||
if(get_dist(src,home_turf) > wander_distance)
|
|
||||||
move_to_delay = initial(move_to_delay)*2 //Walk back.
|
|
||||||
GoHome()
|
|
||||||
else
|
|
||||||
stop_automated_movement = 0
|
|
||||||
|
|
||||||
//Search for targets while idle
|
|
||||||
if(hostile)
|
|
||||||
FindTarget()
|
|
||||||
if(STANCE_FOLLOW)
|
|
||||||
annoyed = 15
|
|
||||||
FollowTarget()
|
|
||||||
if(follow_until_time && world.time > follow_until_time)
|
|
||||||
LoseFollow()
|
|
||||||
return
|
|
||||||
if(hostile)
|
|
||||||
FindTarget()
|
|
||||||
if(STANCE_APPROACH)
|
|
||||||
annoyed = 50
|
|
||||||
a_intent = I_HURT
|
|
||||||
RequestHelp()
|
|
||||||
MoveToTarget()
|
|
||||||
if(STANCE_FIGHT)
|
|
||||||
annoyed = 50
|
|
||||||
AttackTarget()
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Helper proc to turn AI 'busy' mode on or off without having to check if there is an AI, to simplify writing code.
|
// Helper proc to turn AI 'busy' mode on or off without having to check if there is an AI, to simplify writing code.
|
||||||
/mob/living/proc/set_AI_busy(value)
|
/mob/living/proc/set_AI_busy(value)
|
||||||
|
|||||||
@@ -72,7 +72,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
// Spore things
|
// Spore things
|
||||||
/datum/blob_type/proc/on_spore_death(mob/living/simple_animal/hostile/blob/spore/S)
|
/datum/blob_type/proc/on_spore_death(mob/living/simple_mob/blob/spore/S)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -120,7 +120,7 @@
|
|||||||
user << "<span class='danger'>The gibber is locked and running, wait for it to finish.</span>"
|
user << "<span class='danger'>The gibber is locked and running, wait for it to finish.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
if(!(istype(victim, /mob/living/carbon)) && !(istype(victim, /mob/living/simple_animal)) )
|
if(!(istype(victim, /mob/living/carbon)) && !(istype(victim, /mob/living/simple_mob)) )
|
||||||
user << "<span class='danger'>This is not suitable for the gibber!</span>"
|
user << "<span class='danger'>This is not suitable for the gibber!</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -238,7 +238,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/deck/MouseDrop(mob/user as mob) // Code from Paper bin, so you can still pick up the deck
|
/obj/item/weapon/deck/MouseDrop(mob/user as mob) // Code from Paper bin, so you can still pick up the deck
|
||||||
if((user == usr && (!( usr.restrained() ) && (!( usr.stat ) && (usr.contents.Find(src) || in_range(src, usr))))))
|
if((user == usr && (!( usr.restrained() ) && (!( usr.stat ) && (usr.contents.Find(src) || in_range(src, usr))))))
|
||||||
if(!istype(usr, /mob/living/simple_animal))
|
if(!istype(usr, /mob/living/simple_mob))
|
||||||
if( !usr.get_active_hand() ) //if active hand is empty
|
if( !usr.get_active_hand() ) //if active hand is empty
|
||||||
var/mob/living/carbon/human/H = user
|
var/mob/living/carbon/human/H = user
|
||||||
var/obj/item/organ/external/temp = H.organs_by_name["r_hand"]
|
var/obj/item/organ/external/temp = H.organs_by_name["r_hand"]
|
||||||
@@ -256,7 +256,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/deck/verb_pickup(mob/user as mob) // Snowflaked so pick up verb work as intended
|
/obj/item/weapon/deck/verb_pickup(mob/user as mob) // Snowflaked so pick up verb work as intended
|
||||||
if((user == usr && (!( usr.restrained() ) && (!( usr.stat ) && (usr.contents.Find(src) || in_range(src, usr))))))
|
if((user == usr && (!( usr.restrained() ) && (!( usr.stat ) && (usr.contents.Find(src) || in_range(src, usr))))))
|
||||||
if(!istype(usr, /mob/living/simple_animal))
|
if(!istype(usr, /mob/living/simple_mob))
|
||||||
if( !usr.get_active_hand() ) //if active hand is empty
|
if( !usr.get_active_hand() ) //if active hand is empty
|
||||||
var/mob/living/carbon/human/H = user
|
var/mob/living/carbon/human/H = user
|
||||||
var/obj/item/organ/external/temp = H.organs_by_name["r_hand"]
|
var/obj/item/organ/external/temp = H.organs_by_name["r_hand"]
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
/mob/living/silicon/seen_cult_turfs()
|
/mob/living/silicon/seen_cult_turfs()
|
||||||
return list()
|
return list()
|
||||||
|
|
||||||
/mob/living/simple_animal/seen_cult_turfs()
|
/mob/living/simple_mob/seen_cult_turfs()
|
||||||
return seen_turfs_in_range(src, 1)
|
return seen_turfs_in_range(src, 1)
|
||||||
|
|
||||||
/mob/living/simple_mob/construct/shade/seen_cult_turfs()
|
/mob/living/simple_mob/construct/shade/seen_cult_turfs()
|
||||||
|
|||||||
@@ -206,7 +206,7 @@
|
|||||||
else
|
else
|
||||||
if(declare_arrests)
|
if(declare_arrests)
|
||||||
var/action = arrest_type ? "detaining" : "arresting"
|
var/action = arrest_type ? "detaining" : "arresting"
|
||||||
if(istype(target, /mob/living/simple_animal))
|
if(istype(target, /mob/living/simple_mob))
|
||||||
action = "fighting"
|
action = "fighting"
|
||||||
global_announcer.autosay("[src] is [action] a level [threat] [action != "fighting" ? "suspect" : "threat"] <b>[target_name(target)]</b> in <b>[get_area(src)]</b>.", "[src]", "Security")
|
global_announcer.autosay("[src] is [action] a level [threat] [action != "fighting" ? "suspect" : "threat"] <b>[target_name(target)]</b> in <b>[get_area(src)]</b>.", "[src]", "Security")
|
||||||
UnarmedAttack(target)
|
UnarmedAttack(target)
|
||||||
@@ -260,8 +260,8 @@
|
|||||||
C.handcuffed = new /obj/item/weapon/handcuffs(C)
|
C.handcuffed = new /obj/item/weapon/handcuffs(C)
|
||||||
C.update_inv_handcuffed()
|
C.update_inv_handcuffed()
|
||||||
busy = 0
|
busy = 0
|
||||||
else if(istype(M, /mob/living/simple_animal))
|
else if(istype(M, /mob/living/simple_mob))
|
||||||
var/mob/living/simple_animal/S = M
|
var/mob/living/simple_mob/S = M
|
||||||
S.Weaken(xeno_stun_strength)
|
S.Weaken(xeno_stun_strength)
|
||||||
S.adjustBruteLoss(xeno_harm_strength)
|
S.adjustBruteLoss(xeno_harm_strength)
|
||||||
do_attack_animation(M)
|
do_attack_animation(M)
|
||||||
|
|||||||
@@ -16,6 +16,8 @@
|
|||||||
dsma.blend_mode = BLEND_ADD
|
dsma.blend_mode = BLEND_ADD
|
||||||
dsoverlay.appearance = dsma
|
dsoverlay.appearance = dsma
|
||||||
|
|
||||||
|
selected_image = image(icon = 'icons/mob/screen1.dmi', loc = src, icon_state = "centermarker")
|
||||||
|
|
||||||
/mob/living/Destroy()
|
/mob/living/Destroy()
|
||||||
dsoverlay.loc = null //I'll take my coat with me
|
dsoverlay.loc = null //I'll take my coat with me
|
||||||
dsoverlay = null
|
dsoverlay = null
|
||||||
@@ -29,6 +31,7 @@
|
|||||||
nest = null
|
nest = null
|
||||||
if(buckled)
|
if(buckled)
|
||||||
buckled.unbuckle_mob(src, TRUE)
|
buckled.unbuckle_mob(src, TRUE)
|
||||||
|
qdel(selected_image)
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
//mob verbs are faster than object verbs. See mob/verb/examine.
|
//mob verbs are faster than object verbs. See mob/verb/examine.
|
||||||
|
|||||||
@@ -340,7 +340,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
adjustBruteLoss(damage)
|
adjustBruteLoss(damage)
|
||||||
add_attack_logs(user,src,"Generic attack (probably animal)", admin_notify = FALSE) //Usually due to simple_animal attacks
|
add_attack_logs(user,src,"Generic attack (probably animal)", admin_notify = FALSE) //Usually due to simple_mob attacks
|
||||||
if(ai_holder)
|
if(ai_holder)
|
||||||
ai_holder.react_to_attack(user)
|
ai_holder.react_to_attack(user)
|
||||||
src.visible_message("<span class='danger'>[user] has [attack_message] [src]!</span>")
|
src.visible_message("<span class='danger'>[user] has [attack_message] [src]!</span>")
|
||||||
|
|||||||
@@ -67,3 +67,5 @@
|
|||||||
var/makes_dirt = TRUE //FALSE if the mob shouldn't be making dirt on the ground when it walks
|
var/makes_dirt = TRUE //FALSE if the mob shouldn't be making dirt on the ground when it walks
|
||||||
|
|
||||||
var/looking_elsewhere = FALSE //If the mob's view has been relocated to somewhere else, like via a camera or with binocs
|
var/looking_elsewhere = FALSE //If the mob's view has been relocated to somewhere else, like via a camera or with binocs
|
||||||
|
|
||||||
|
var/image/selected_image = null // Used for buildmode AI control stuff.
|
||||||
|
|||||||
@@ -111,34 +111,6 @@
|
|||||||
return active_spell.on_ranged_cast(A, src)
|
return active_spell.on_ranged_cast(A, src)
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
// Used to cast spells.
|
|
||||||
/mob/living/simple_animal/technomancer_golem/RangedAttack(var/atom/A, var/params)
|
|
||||||
if(active_spell)
|
|
||||||
spellcast_pre_animation()
|
|
||||||
if(active_spell.cast_methods & CAST_RANGED)
|
|
||||||
active_spell.on_ranged_cast(A, src)
|
|
||||||
spellcast_post_animation()
|
|
||||||
|
|
||||||
/mob/living/simple_animal/technomancer_golem/UnarmedAttack(var/atom/A, var/proximity)
|
|
||||||
if(proximity)
|
|
||||||
if(active_spell)
|
|
||||||
spellcast_pre_animation()
|
|
||||||
if(!Adjacent(A)) // Need to check again since they might've moved while 'warming up'.
|
|
||||||
spellcast_post_animation()
|
|
||||||
return
|
|
||||||
var/effective_cooldown = round(active_spell.cooldown * core.cooldown_modifier, 5)
|
|
||||||
if(active_spell.cast_methods & CAST_MELEE)
|
|
||||||
active_spell.on_melee_cast(A, src)
|
|
||||||
else if(active_spell.cast_methods & CAST_RANGED)
|
|
||||||
active_spell.on_ranged_cast(A, src)
|
|
||||||
spellcast_post_animation()
|
|
||||||
src.setClickCooldown(effective_cooldown)
|
|
||||||
else
|
|
||||||
..()
|
|
||||||
*/
|
|
||||||
|
|
||||||
/mob/living/simple_mob/mechanical/technomancer_golem/melee_pre_animation(atom/A)
|
/mob/living/simple_mob/mechanical/technomancer_golem/melee_pre_animation(atom/A)
|
||||||
if(active_spell && active_spell.cast_methods & CAST_MELEE|CAST_RANGED) // If they're trying to melee-cast a spell, use the special animation instead.
|
if(active_spell && active_spell.cast_methods & CAST_MELEE|CAST_RANGED) // If they're trying to melee-cast a spell, use the special animation instead.
|
||||||
special_pre_animation(A)
|
special_pre_animation(A)
|
||||||
|
|||||||
@@ -537,7 +537,7 @@ proc/is_blind(A)
|
|||||||
|
|
||||||
return threatcount
|
return threatcount
|
||||||
|
|
||||||
/mob/living/simple_animal/assess_perp(var/obj/access_obj, var/check_access, var/auth_weapons, var/check_records, var/check_arrest)
|
/mob/living/simple_mob/assess_perp(var/obj/access_obj, var/check_access, var/auth_weapons, var/check_records, var/check_arrest)
|
||||||
var/threatcount = ..()
|
var/threatcount = ..()
|
||||||
if(. == SAFE_PERP)
|
if(. == SAFE_PERP)
|
||||||
return SAFE_PERP
|
return SAFE_PERP
|
||||||
|
|||||||
@@ -237,7 +237,7 @@
|
|||||||
|
|
||||||
/mob/living/carbon/human/Animalize()
|
/mob/living/carbon/human/Animalize()
|
||||||
|
|
||||||
var/list/mobtypes = typesof(/mob/living/simple_animal)
|
var/list/mobtypes = typesof(/mob/living/simple_mob)
|
||||||
var/mobpath = input("Which type of mob should [src] turn into?", "Choose a type") in mobtypes
|
var/mobpath = input("Which type of mob should [src] turn into?", "Choose a type") in mobtypes
|
||||||
|
|
||||||
if(!safe_animal(mobpath))
|
if(!safe_animal(mobpath))
|
||||||
@@ -271,7 +271,7 @@
|
|||||||
|
|
||||||
/mob/proc/Animalize()
|
/mob/proc/Animalize()
|
||||||
|
|
||||||
var/list/mobtypes = typesof(/mob/living/simple_animal)
|
var/list/mobtypes = typesof(/mob/living/simple_mob)
|
||||||
var/mobpath = input("Which type of mob should [src] turn into?", "Choose a type") in mobtypes
|
var/mobpath = input("Which type of mob should [src] turn into?", "Choose a type") in mobtypes
|
||||||
|
|
||||||
if(!safe_animal(mobpath))
|
if(!safe_animal(mobpath))
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/paper_bin/MouseDrop(mob/user as mob)
|
/obj/item/weapon/paper_bin/MouseDrop(mob/user as mob)
|
||||||
if((user == usr && (!( usr.restrained() ) && (!( usr.stat ) && (usr.contents.Find(src) || in_range(src, usr))))))
|
if((user == usr && (!( usr.restrained() ) && (!( usr.stat ) && (usr.contents.Find(src) || in_range(src, usr))))))
|
||||||
if(!istype(usr, /mob/living/simple_animal))
|
if(!istype(usr, /mob/living/simple_mob))
|
||||||
if( !usr.get_active_hand() ) //if active hand is empty
|
if( !usr.get_active_hand() ) //if active hand is empty
|
||||||
var/mob/living/carbon/human/H = user
|
var/mob/living/carbon/human/H = user
|
||||||
var/obj/item/organ/external/temp = H.organs_by_name["r_hand"]
|
var/obj/item/organ/external/temp = H.organs_by_name["r_hand"]
|
||||||
|
|||||||
@@ -185,7 +185,6 @@
|
|||||||
/obj/machinery/atmospherics,
|
/obj/machinery/atmospherics,
|
||||||
/obj/machinery/power/emitter,
|
/obj/machinery/power/emitter,
|
||||||
/obj/machinery/field_generator,
|
/obj/machinery/field_generator,
|
||||||
/mob/living/simple_animal,
|
|
||||||
/obj/machinery/door/blast,
|
/obj/machinery/door/blast,
|
||||||
/obj/machinery/particle_accelerator/control_box,
|
/obj/machinery/particle_accelerator/control_box,
|
||||||
/obj/structure/particle_accelerator/fuel_chamber,
|
/obj/structure/particle_accelerator/fuel_chamber,
|
||||||
|
|||||||
@@ -211,7 +211,7 @@
|
|||||||
for(var/mob/living/carbon/bug in destination)
|
for(var/mob/living/carbon/bug in destination)
|
||||||
bug.gib()
|
bug.gib()
|
||||||
|
|
||||||
for(var/mob/living/simple_animal/pest in destination)
|
for(var/mob/living/simple_mob/pest in destination)
|
||||||
pest.gib()
|
pest.gib()
|
||||||
|
|
||||||
origin.move_contents_to(destination, direction=direction)
|
origin.move_contents_to(destination, direction=direction)
|
||||||
|
|||||||
@@ -2580,7 +2580,7 @@
|
|||||||
#include "code\ZAS\Zone.dm"
|
#include "code\ZAS\Zone.dm"
|
||||||
#include "interface\interface.dm"
|
#include "interface\interface.dm"
|
||||||
#include "interface\skin.dmf"
|
#include "interface\skin.dmf"
|
||||||
#include "maps\example\example.dm"
|
#include "maps\southern_cross\southern_cross.dm"
|
||||||
#include "maps\submaps\space_submaps\space.dm"
|
#include "maps\submaps\space_submaps\space.dm"
|
||||||
#include "maps\submaps\surface_submaps\mountains\mountains.dm"
|
#include "maps\submaps\surface_submaps\mountains\mountains.dm"
|
||||||
#include "maps\submaps\surface_submaps\mountains\mountains_areas.dm"
|
#include "maps\submaps\surface_submaps\mountains\mountains_areas.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user