mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 05:00:55 +01:00
[MIRROR] Basepixels (#1512)
* Basepixels (#54652) * Basepixels Co-authored-by: Rohesie <rohesie@gmail.com>
This commit is contained in:
@@ -479,8 +479,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
/mob/dead/observer/stop_orbit(datum/component/orbiter/orbits)
|
||||
. = ..()
|
||||
//restart our floating animation after orbit is done.
|
||||
pixel_y = 0
|
||||
animate(src, pixel_y = 2, time = 10, loop = -1)
|
||||
pixel_y = base_pixel_y
|
||||
animate(src, pixel_y = base_pixel_y + 2, time = 1 SECONDS, loop = -1)
|
||||
|
||||
/mob/dead/observer/verb/jumptomob() //Moves the ghost instead of just changing the ghosts's eye -Nodrak
|
||||
set category = "Ghost"
|
||||
|
||||
@@ -173,8 +173,8 @@
|
||||
if(I.pulledby)
|
||||
I.pulledby.stop_pulling()
|
||||
update_inv_hands()
|
||||
I.pixel_x = initial(I.pixel_x)
|
||||
I.pixel_y = initial(I.pixel_y)
|
||||
I.pixel_x = I.base_pixel_x
|
||||
I.pixel_y = I.base_pixel_y
|
||||
return hand_index
|
||||
|
||||
//Puts the item into the first available left hand if possible and calls all necessary triggers/updates. returns 1 on success.
|
||||
@@ -284,8 +284,8 @@
|
||||
/mob/proc/dropItemToGround(obj/item/I, force = FALSE, silent = FALSE)
|
||||
. = doUnEquip(I, force, drop_location(), FALSE, silent = silent)
|
||||
if(. && I) //ensure the item exists and that it was dropped properly.
|
||||
I.pixel_x = rand(-6,6)
|
||||
I.pixel_y = rand(-6,6)
|
||||
I.pixel_x = I.base_pixel_x + rand(-6, 6)
|
||||
I.pixel_y = I.base_pixel_y + rand(-6, 6)
|
||||
|
||||
//for when the item will be immediately placed in a loc other than the ground
|
||||
/mob/proc/transferItemToLoc(obj/item/I, newloc = null, force = FALSE, silent = TRUE)
|
||||
|
||||
@@ -116,7 +116,7 @@ Des: Removes all infected images from the alien.
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/alien/get_standard_pixel_y_offset(lying = 0)
|
||||
/mob/living/carbon/alien/get_standard_pixel_y_offset(lying = FALSE)
|
||||
return initial(pixel_y)
|
||||
|
||||
/mob/living/carbon/alien/proc/alien_evolve(mob/living/carbon/alien/new_xeno)
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
pulledby.stop_pulling()
|
||||
. = 0
|
||||
|
||||
/mob/living/carbon/alien/humanoid/get_standard_pixel_y_offset(lying = 0)
|
||||
/mob/living/carbon/alien/humanoid/get_standard_pixel_y_offset(lying = FALSE)
|
||||
if(leaping)
|
||||
return -32
|
||||
else if(custom_pixel_y_offset)
|
||||
|
||||
@@ -34,15 +34,15 @@
|
||||
icon = alt_icon
|
||||
alt_icon = old_icon
|
||||
icon_state = "alien[caste]_leap"
|
||||
pixel_x = -32
|
||||
pixel_y = -32
|
||||
pixel_x = base_pixel_x - 32
|
||||
pixel_y = base_pixel_y - 32
|
||||
else
|
||||
if(alt_icon != initial(alt_icon))
|
||||
var/old_icon = icon
|
||||
icon = alt_icon
|
||||
alt_icon = old_icon
|
||||
pixel_x = get_standard_pixel_x_offset(body_position == LYING_DOWN)
|
||||
pixel_y = get_standard_pixel_y_offset(body_position == LYING_DOWN)
|
||||
pixel_x = base_pixel_x + get_standard_pixel_x_offset(body_position == LYING_DOWN)
|
||||
pixel_y = base_pixel_y + get_standard_pixel_y_offset(body_position == LYING_DOWN)
|
||||
update_inv_hands()
|
||||
update_inv_handcuffed()
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
status_flags = 0
|
||||
ventcrawler = VENTCRAWLER_NONE //pull over that ass too fat
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
bubble_icon = "alienroyal"
|
||||
mob_size = MOB_SIZE_LARGE
|
||||
layer = LARGE_MOB_LAYER //above most mobs, but below speechbubbles
|
||||
|
||||
@@ -406,7 +406,7 @@
|
||||
update_inv_legcuffed()
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/get_standard_pixel_y_offset(lying = 0)
|
||||
/mob/living/carbon/get_standard_pixel_y_offset(lying = FALSE)
|
||||
if(lying)
|
||||
return -6
|
||||
else
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
changed++
|
||||
ntransform.TurnTo(lying_prev , lying_angle)
|
||||
if(!lying_angle) //Lying to standing
|
||||
final_pixel_y = get_standard_pixel_y_offset()
|
||||
final_pixel_y = base_pixel_y + get_standard_pixel_y_offset()
|
||||
else //if(lying != 0)
|
||||
if(lying_prev == 0) //Standing to lying
|
||||
pixel_y = get_standard_pixel_y_offset()
|
||||
final_pixel_y = get_standard_pixel_y_offset(lying_angle)
|
||||
pixel_y = base_pixel_y + get_standard_pixel_y_offset()
|
||||
final_pixel_y = base_pixel_y + get_standard_pixel_y_offset(lying_angle)
|
||||
if(dir & (EAST|WEST)) //Facing east or west
|
||||
final_dir = pick(NORTH, SOUTH) //So you fall on your side rather than your face or ass
|
||||
if(resize != RESIZE_DEFAULT_SIZE)
|
||||
|
||||
@@ -338,22 +338,22 @@
|
||||
M.setDir(get_dir(M, src))
|
||||
switch(M.dir)
|
||||
if(NORTH)
|
||||
animate(M, pixel_x = 0, pixel_y = offset, 3)
|
||||
animate(M, pixel_x = M.base_pixel_x, pixel_y = M.base_pixel_y + offset, 3)
|
||||
if(SOUTH)
|
||||
animate(M, pixel_x = 0, pixel_y = -offset, 3)
|
||||
animate(M, pixel_x = M.base_pixel_x, pixel_y = M.base_pixel_y - offset, 3)
|
||||
if(EAST)
|
||||
if(M.lying_angle == 270) //update the dragged dude's direction if we've turned
|
||||
M.set_lying_angle(90)
|
||||
animate(M, pixel_x = offset, pixel_y = 0, 3)
|
||||
animate(M, pixel_x = M.base_pixel_x + offset, pixel_y = M.base_pixel_y, 3)
|
||||
if(WEST)
|
||||
if(M.lying_angle == 90)
|
||||
M.set_lying_angle(270)
|
||||
animate(M, pixel_x = -offset, pixel_y = 0, 3)
|
||||
animate(M, pixel_x = M.base_pixel_x - offset, pixel_y = M.base_pixel_y, 3)
|
||||
|
||||
/mob/living/proc/reset_pull_offsets(mob/living/M, override)
|
||||
if(!override && M.buckled)
|
||||
return
|
||||
animate(M, pixel_x = 0, pixel_y = 0, 1)
|
||||
animate(M, pixel_x = base_pixel_x, pixel_y = base_pixel_y, 1)
|
||||
|
||||
//mob verbs are a lot faster than object verbs
|
||||
//for more info on why this is not atom/pull, see examinate() in mob.dm
|
||||
@@ -935,7 +935,7 @@
|
||||
animate(src, pixel_y = pixel_y - 2, time = 10, loop = -1)
|
||||
setMovetype(movement_type | FLOATING)
|
||||
else if(((!on || fixed) && (movement_type & FLOATING)))
|
||||
animate(src, pixel_y = get_standard_pixel_y_offset(lying_angle), time = 10)
|
||||
animate(src, pixel_y = base_pixel_y + get_standard_pixel_y_offset(lying_angle), time = 1 SECONDS)
|
||||
setMovetype(movement_type & ~FLOATING)
|
||||
|
||||
// The src mob is trying to strip an item from someone
|
||||
@@ -1023,8 +1023,8 @@
|
||||
var/amplitude = min(4, (jitteriness/100) + 1)
|
||||
var/pixel_x_diff = rand(-amplitude, amplitude)
|
||||
var/pixel_y_diff = rand(-amplitude/3, amplitude/3)
|
||||
var/final_pixel_x = get_standard_pixel_x_offset(body_position == LYING_DOWN)
|
||||
var/final_pixel_y = get_standard_pixel_y_offset(body_position == LYING_DOWN)
|
||||
var/final_pixel_x = base_pixel_x + get_standard_pixel_x_offset(body_position == LYING_DOWN)
|
||||
var/final_pixel_y = base_pixel_y + get_standard_pixel_y_offset(body_position == LYING_DOWN)
|
||||
animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff , time = 2, loop = 6)
|
||||
animate(pixel_x = final_pixel_x , pixel_y = final_pixel_y , time = 2)
|
||||
setMovetype(movement_type & ~FLOATING) // If we were without gravity, the bouncing animation got stopped, so we make sure to restart it in next life().
|
||||
@@ -1041,10 +1041,10 @@
|
||||
loc_temp = heat_turf.temperature
|
||||
return loc_temp
|
||||
|
||||
/mob/living/proc/get_standard_pixel_x_offset(lying = 0)
|
||||
/mob/living/proc/get_standard_pixel_x_offset(lying = FALSE)
|
||||
return initial(pixel_x)
|
||||
|
||||
/mob/living/proc/get_standard_pixel_y_offset(lying = 0)
|
||||
/mob/living/proc/get_standard_pixel_y_offset(lying = FALSE)
|
||||
return initial(pixel_y)
|
||||
|
||||
/mob/living/cancel_camera()
|
||||
|
||||
@@ -276,8 +276,8 @@
|
||||
|
||||
/mob/living/simple_animal/chick/Initialize()
|
||||
. = ..()
|
||||
pixel_x = rand(-6, 6)
|
||||
pixel_y = rand(0, 10)
|
||||
pixel_x = base_pixel_x + rand(-6, 6)
|
||||
pixel_y = base_pixel_y + rand(0, 10)
|
||||
add_cell_sample()
|
||||
|
||||
/mob/living/simple_animal/chick/add_cell_sample()
|
||||
@@ -347,8 +347,8 @@
|
||||
icon_state = "[icon_prefix]_[body_color]"
|
||||
icon_living = "[icon_prefix]_[body_color]"
|
||||
icon_dead = "[icon_prefix]_[body_color]_dead"
|
||||
pixel_x = rand(-6, 6)
|
||||
pixel_y = rand(0, 10)
|
||||
pixel_x = base_pixel_x + rand(-6, 6)
|
||||
pixel_y = base_pixel_y + rand(0, 10)
|
||||
++chicken_count
|
||||
add_cell_sample()
|
||||
|
||||
|
||||
@@ -182,6 +182,7 @@
|
||||
maxHealth = 20
|
||||
health = 20
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
mob_size = MOB_SIZE_LARGE
|
||||
random_color = FALSE
|
||||
food_type = list()
|
||||
|
||||
@@ -40,8 +40,9 @@
|
||||
multiply_chance = replicate
|
||||
faction -= "neutral"
|
||||
transform = initial(transform)
|
||||
pixel_y = initial(pixel_y)
|
||||
pixel_x = initial(pixel_x)
|
||||
pixel_x = base_pixel_x
|
||||
pixel_y = base_pixel_y
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/illusion/examine(mob/user)
|
||||
if(parent_mob)
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
projectilesound = 'sound/weapons/pierce.ogg'
|
||||
ranged_cooldown_time = 30
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
layer = LARGE_MOB_LAYER
|
||||
speed = 10
|
||||
stat_attack = HARD_CRIT
|
||||
@@ -123,7 +124,9 @@
|
||||
icon_state = "lily_pad"
|
||||
layer = BELOW_MOB_LAYER
|
||||
pixel_x = -32
|
||||
base_pixel_x = -32
|
||||
pixel_y = -32
|
||||
base_pixel_y = -32
|
||||
duration = 30
|
||||
|
||||
/mob/living/simple_animal/hostile/jungle/leaper/Initialize()
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
speed = 1
|
||||
ranged = 1
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
move_to_delay = 10
|
||||
aggro_vision_range = 9
|
||||
speak_emote = list("chitters")
|
||||
|
||||
@@ -15,11 +15,13 @@
|
||||
icon_dead = "mook_dead"
|
||||
mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
pixel_y = -8
|
||||
base_pixel_y = -8
|
||||
maxHealth = 45
|
||||
health = 45
|
||||
melee_damage_lower = 30
|
||||
melee_damage_upper = 30
|
||||
pixel_y = -8
|
||||
ranged = TRUE
|
||||
ranged_cooldown_time = 10
|
||||
pass_flags = LETPASSTHROW
|
||||
@@ -217,7 +219,9 @@
|
||||
icon_state = "mook_leap_cloud"
|
||||
layer = BELOW_MOB_LAYER
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
pixel_y = -16
|
||||
base_pixel_y = -16
|
||||
duration = 10
|
||||
|
||||
#undef MOOK_ATTACK_NEUTRAL
|
||||
|
||||
@@ -18,7 +18,9 @@
|
||||
melee_damage_lower = 30
|
||||
melee_damage_upper = 30
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
pixel_y = -14
|
||||
base_pixel_y = -14
|
||||
minimum_distance = 3
|
||||
move_to_delay = 20
|
||||
vision_range = 9
|
||||
|
||||
@@ -40,6 +40,7 @@ Difficulty: Medium
|
||||
ranged = TRUE
|
||||
ranged_cooldown_time = 16
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
crusher_loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator, /obj/item/crusher_trophy/miner_eye)
|
||||
loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator)
|
||||
wander = FALSE
|
||||
|
||||
@@ -54,6 +54,7 @@ Difficulty: Hard
|
||||
melee_queue_distance = 20 // as far as possible really, need this because of blood warp
|
||||
ranged = TRUE
|
||||
pixel_x = -32
|
||||
base_pixel_x = -32
|
||||
del_on_death = TRUE
|
||||
crusher_loot = list(/obj/structure/closet/crate/necropolis/bubblegum/crusher)
|
||||
loot = list(/obj/structure/closet/crate/necropolis/bubblegum)
|
||||
|
||||
@@ -44,6 +44,7 @@ Difficulty: Very Hard
|
||||
move_to_delay = 10
|
||||
ranged = TRUE
|
||||
pixel_x = -32
|
||||
base_pixel_x = -32
|
||||
del_on_death = TRUE
|
||||
gps_name = "Angelic Signal"
|
||||
achievement_type = /datum/award/achievement/boss/colossus_kill
|
||||
|
||||
@@ -58,6 +58,7 @@ Difficulty: Medium
|
||||
move_to_delay = 5
|
||||
ranged = TRUE
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
crusher_loot = list(/obj/structure/closet/crate/necropolis/dragon/crusher)
|
||||
loot = list(/obj/structure/closet/crate/necropolis/dragon)
|
||||
butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30)
|
||||
|
||||
@@ -42,8 +42,10 @@
|
||||
achievement_type = /datum/award/achievement/boss/legion_kill
|
||||
crusher_achievement_type = /datum/award/achievement/boss/legion_crusher
|
||||
score_achievement_type = /datum/award/score/legion_score
|
||||
pixel_y = -16
|
||||
pixel_x = -32
|
||||
base_pixel_x = -32
|
||||
pixel_y = -16
|
||||
base_pixel_y = -16
|
||||
loot = list(/obj/item/stack/sheet/bone = 3)
|
||||
vision_range = 13
|
||||
wander = FALSE
|
||||
|
||||
@@ -29,6 +29,7 @@ Difficulty: Hard
|
||||
melee_queue_distance = 20 // as far as possible really, need this because of charging and teleports
|
||||
ranged = TRUE
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
loot = list()
|
||||
butcher_results = list()
|
||||
guaranteed_butcher_results = list(/obj/item/wendigo_blood = 1)
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
icon_dead = "watcher_dead"
|
||||
health_doll_icon = "watcher"
|
||||
pixel_x = -10
|
||||
base_pixel_x = -10
|
||||
throw_message = "bounces harmlessly off of"
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 15
|
||||
|
||||
@@ -95,6 +95,7 @@ While using this makes the system rely on OnFire, it still gives options for tim
|
||||
icon = 'icons/obj/lavaland/tumor.dmi'
|
||||
icon_state = "tumor"
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
light_color = COLOR_SOFT_RED
|
||||
light_range = 3
|
||||
anchored = TRUE
|
||||
|
||||
@@ -162,6 +162,7 @@
|
||||
maxHealth = 150
|
||||
health = 150
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
speed = 10
|
||||
harm_intent_damage = 5
|
||||
melee_damage_lower = 5
|
||||
@@ -187,6 +188,7 @@
|
||||
maxHealth = 400
|
||||
health = 400
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
speed = 2
|
||||
harm_intent_damage = 15
|
||||
melee_damage_lower = 15
|
||||
@@ -284,6 +286,7 @@
|
||||
maxHealth = 130
|
||||
health = 130
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
speed = -5
|
||||
harm_intent_damage = 10
|
||||
melee_damage_lower = 10
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
mob_size = MOB_SIZE_LARGE
|
||||
armour_penetration = 30
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
turns_per_move = 5
|
||||
ranged = TRUE
|
||||
mouse_opacity = MOUSE_OPACITY_ICON
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
mob_size = MOB_SIZE_LARGE
|
||||
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
|
||||
harm_intent_damage = 5
|
||||
melee_damage_lower = 8
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/venus_human_trap/Moved(atom/OldLoc, Dir)
|
||||
. = ..()
|
||||
pixel_x = dir & (NORTH|WEST) ? 2 : -2
|
||||
pixel_x = base_pixel_x + (dir & (NORTH|WEST) ? 2 : -2)
|
||||
|
||||
/mob/living/simple_animal/hostile/venus_human_trap/AttackingTarget()
|
||||
. = ..()
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
maxHealth = 50
|
||||
health = 50
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
harm_intent_damage = 5
|
||||
obj_damage = 0
|
||||
melee_damage_lower = 0
|
||||
|
||||
@@ -142,10 +142,11 @@
|
||||
if(buckled)
|
||||
buckled.unbuckle_mob(src,force=1)
|
||||
buckled = null
|
||||
pixel_x = initial(pixel_x)
|
||||
pixel_y = initial(pixel_y)
|
||||
pixel_x = base_pixel_x
|
||||
pixel_y = base_pixel_y
|
||||
|
||||
return ..()
|
||||
|
||||
..(gibbed)
|
||||
|
||||
/mob/living/simple_animal/parrot/get_status_tab_items()
|
||||
. = ..()
|
||||
|
||||
Reference in New Issue
Block a user