mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
@@ -509,17 +509,22 @@ var/list/global/slot_flags_enumeration = list(
|
||||
return
|
||||
if(!usr.canmove || usr.stat || usr.restrained() || !Adjacent(usr))
|
||||
return
|
||||
if((!istype(usr, /mob/living/carbon)) || (istype(usr, /mob/living/carbon/brain)))//Is humanoid, and is not a brain
|
||||
if(isanimal(usr)) //VOREStation Edit Start - Allows simple mobs with hands to use the pickup verb
|
||||
var/mob/living/simple_mob/s = usr
|
||||
if(!s.has_hands)
|
||||
to_chat(usr, "<span class='warning'>You can't pick things up!</span>")
|
||||
return
|
||||
else if((!istype(usr, /mob/living/carbon)) || (istype(usr, /mob/living/carbon/brain)))//Is humanoid, and is not a brain
|
||||
to_chat(usr, "<span class='warning'>You can't pick things up!</span>")
|
||||
return
|
||||
var/mob/living/carbon/C = usr
|
||||
var/mob/living/L = usr
|
||||
if( usr.stat || usr.restrained() )//Is not asleep/dead and is not restrained
|
||||
to_chat(usr, "<span class='warning'>You can't pick things up!</span>")
|
||||
return
|
||||
if(src.anchored) //Object isn't anchored
|
||||
to_chat(usr, "<span class='warning'>You can't pick that up!</span>")
|
||||
return
|
||||
if(C.get_active_hand()) //Hand is not full
|
||||
if(L.get_active_hand()) //Hand is not full //VOREStation Edit End
|
||||
to_chat(usr, "<span class='warning'>Your hand is full.</span>")
|
||||
return
|
||||
if(!istype(src.loc, /turf)) //Object is on a turf
|
||||
|
||||
@@ -397,6 +397,13 @@
|
||||
if(ishuman(usr) || isrobot(usr))
|
||||
add_fingerprint(usr)
|
||||
toggle(usr)
|
||||
else if(isanimal(usr)) //VOREStation Addition Start
|
||||
var/mob/living/simple_mob/s = usr
|
||||
if(s.has_hands)
|
||||
add_fingerprint(usr)
|
||||
toggle(usr)
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>This mob type can't use this verb.</span>") //VOREStation Addition End
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>This mob type can't use this verb.</span>")
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
var/oreAmount = 7
|
||||
var/knock_sound = 'sound/machines/door/knock_glass.ogg'
|
||||
var/knock_hammer_sound = 'sound/weapons/sonic_jackhammer.ogg'
|
||||
|
||||
|
||||
/obj/structure/simple_door/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
TemperatureAct(exposed_temperature)
|
||||
|
||||
@@ -173,7 +173,7 @@
|
||||
return
|
||||
|
||||
/obj/structure/simple_door/bullet_act(var/obj/item/projectile/Proj)
|
||||
hardness -= Proj.force/10
|
||||
take_damage(Proj.damage/10)
|
||||
CheckHardness()
|
||||
|
||||
/obj/structure/simple_door/take_damage(var/damage)
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
var/static/list/has_rocks = list("dirt5", "dirt6", "dirt7", "dirt8", "dirt9")
|
||||
|
||||
/turf/simulated/floor/outdoors/newdirt/attack_hand(mob/user)
|
||||
if(user.pulling)
|
||||
return ..()
|
||||
var/static/list/has_rocks = list("dirt5", "dirt6", "dirt7", "dirt8", "dirt9")
|
||||
if(!Adjacent(user))
|
||||
return ..()
|
||||
if(user.a_intent != I_HELP)
|
||||
return ..()
|
||||
if(icon_state in has_rocks)
|
||||
user.visible_message("[user] loosens rocks from \the [src]...", "You loosen rocks from \the [src]...")
|
||||
if(do_after(user, 5 SECONDS, exclusive = TASK_USER_EXCLUSIVE))
|
||||
@@ -76,4 +79,4 @@
|
||||
S.pixel_y = rand(-6,6)
|
||||
sticks = FALSE
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You don't see any loose sticks...</span>")
|
||||
to_chat(user, "<span class='notice'>You don't see any loose sticks...</span>")
|
||||
|
||||
@@ -70,10 +70,10 @@
|
||||
// Step 4, give us our selected target.
|
||||
/datum/ai_holder/proc/give_target(new_target, urgent = FALSE)
|
||||
ai_log("give_target() : Given '[new_target]', urgent=[urgent].", AI_LOG_TRACE)
|
||||
|
||||
|
||||
if(target)
|
||||
remove_target()
|
||||
|
||||
|
||||
target = new_target
|
||||
|
||||
if(target != null)
|
||||
@@ -282,7 +282,7 @@
|
||||
|
||||
// Checks to see if an atom attacked us lately
|
||||
/datum/ai_holder/proc/check_attacker(var/atom/movable/A)
|
||||
return (A in attackers)
|
||||
return (A.name in attackers)
|
||||
|
||||
// We were attacked by this thing recently
|
||||
/datum/ai_holder/proc/add_attacker(var/atom/movable/A)
|
||||
|
||||
@@ -198,6 +198,10 @@
|
||||
emote_sound = pick(smolsound)
|
||||
else
|
||||
emote_sound = pick(bigsound)
|
||||
else if(istype(user, /mob/living/silicon/pai))
|
||||
var/mob/living/silicon/pai/me = user
|
||||
if(me.chassis == "teppi")
|
||||
emote_sound = pick(bigsound)
|
||||
else if(user.size_multiplier >= 1.5)
|
||||
emote_sound = pick(bigsound)
|
||||
else
|
||||
|
||||
@@ -13,7 +13,14 @@
|
||||
var/obj/item/organ/external/L = H.get_organ(limb)
|
||||
if(istype(L) && L.is_usable() && !L.splinted)
|
||||
return TRUE
|
||||
return FALSE
|
||||
else if(isanimal(user)) //VOREStation Addition Start
|
||||
var/mob/living/simple_mob/S = user
|
||||
if(S.has_hands)
|
||||
return TRUE
|
||||
else if(ispAI(user))
|
||||
return TRUE
|
||||
else //VOREStation Addition End
|
||||
return FALSE
|
||||
|
||||
/decl/emote/audible/snap/do_emote(var/atom/user, var/extra_params)
|
||||
if(!can_snap(user))
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
for(var/turf/T as anything in all_turfs)
|
||||
if(T.is_outdoors())
|
||||
turfs_to_use += T
|
||||
|
||||
|
||||
if(!turfs_to_use.len)
|
||||
warning("Fake sun placed on a level where it can't find any outdoor turfs to color at [x],[y],[z].")
|
||||
return
|
||||
@@ -131,23 +131,14 @@
|
||||
"color" = "#F4EA55"
|
||||
),
|
||||
list(
|
||||
"brightness" = 1.0,
|
||||
"brightness" = 4.0,
|
||||
"color" = "#F07AD8"
|
||||
),
|
||||
list(
|
||||
"brightness" = 1.0,
|
||||
"color" = "#b4361f"
|
||||
),
|
||||
|
||||
list(
|
||||
"brightness" = 0.7,
|
||||
"brightness" = 4.0,
|
||||
"color" = "#f3932d"
|
||||
),
|
||||
|
||||
list(
|
||||
"brightness" = 0.1,
|
||||
"color" = "#B92B00"
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
/obj/effect/fake_sun/cool
|
||||
|
||||
@@ -384,7 +384,17 @@
|
||||
return result
|
||||
|
||||
/mob/living/proc/setMaxHealth(var/newMaxHealth)
|
||||
health = (health/maxHealth) * (newMaxHealth) //VOREStation Add - Adjust existing health
|
||||
var/h_mult = maxHealth / newMaxHealth //VOREStation Add Start - Calculate change multiplier
|
||||
if(bruteloss) //In case a damage value is 0, divide by 0 bad
|
||||
bruteloss = round(bruteloss / h_mult) //Health is calculated on life based on damage types, so we update the damage and let life handle health
|
||||
if(fireloss)
|
||||
fireloss = round(fireloss / h_mult)
|
||||
if(toxloss)
|
||||
toxloss = round(toxloss / h_mult)
|
||||
if(oxyloss)
|
||||
oxyloss = round(oxyloss / h_mult)
|
||||
if(cloneloss)
|
||||
cloneloss = round(cloneloss / h_mult) //VOREStation Add End
|
||||
maxHealth = newMaxHealth
|
||||
|
||||
/mob/living/Stun(amount)
|
||||
|
||||
@@ -17,7 +17,8 @@ var/list/_silicon_default_emotes = list(
|
||||
|
||||
/mob/living/silicon/pai/get_available_emotes()
|
||||
|
||||
var/list/fulllist = global._silicon_default_emotes.Copy()
|
||||
var/list/fulllist = list()
|
||||
fulllist |= _silicon_default_emotes
|
||||
fulllist |= _robot_default_emotes
|
||||
fulllist |= _human_default_emotes
|
||||
return fulllist
|
||||
return fulllist
|
||||
|
||||
@@ -173,6 +173,9 @@
|
||||
if(Process_Spacemove())
|
||||
return TRUE
|
||||
|
||||
if(has_hands)
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/human/can_ztravel()
|
||||
if(incapacitated())
|
||||
return FALSE
|
||||
|
||||
@@ -618,6 +618,10 @@
|
||||
to_chat(user, "<span class='notice'>They aren't able to be devoured.</span>")
|
||||
log_and_message_admins("[key_name_admin(src)] attempted to devour [key_name_admin(prey)] against their prefs ([prey ? ADMIN_JMP(prey) : "null"])")
|
||||
return FALSE
|
||||
if(prey.absorbed || pred.absorbed)
|
||||
to_chat(user, "<span class='warning'>They aren't aren't in a state to be devoured.</span>")
|
||||
return FALSE
|
||||
|
||||
// Slipnoms from chompstation downstream, credit to cadyn for the original PR.
|
||||
// Prepare messages
|
||||
if(prey.is_slipping)
|
||||
|
||||
Reference in New Issue
Block a user