mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-16 21:22:40 +00:00
Makes sif trees pretty. Also, scale can now be adjusted in the X axis and Y axis separately.
This commit is contained in:
@@ -16,7 +16,8 @@
|
|||||||
var/moved_recently = 0
|
var/moved_recently = 0
|
||||||
var/mob/pulledby = null
|
var/mob/pulledby = null
|
||||||
var/item_state = null // Used to specify the item state for the on-mob overlays.
|
var/item_state = null // Used to specify the item state for the on-mob overlays.
|
||||||
var/icon_scale = 1 // Used to scale icons up or down in update_transform().
|
var/icon_scale_x = 1 // Used to scale icons up or down horizonally in update_transform().
|
||||||
|
var/icon_scale_y = 1 // Used to scale icons up or down vertically in update_transform().
|
||||||
var/icon_rotation = 0 // Used to rotate icons in update_transform()
|
var/icon_rotation = 0 // Used to rotate icons in update_transform()
|
||||||
var/old_x = 0
|
var/old_x = 0
|
||||||
var/old_y = 0
|
var/old_y = 0
|
||||||
@@ -469,13 +470,16 @@
|
|||||||
|
|
||||||
/atom/movable/proc/update_transform()
|
/atom/movable/proc/update_transform()
|
||||||
var/matrix/M = matrix()
|
var/matrix/M = matrix()
|
||||||
M.Scale(icon_scale)
|
M.Scale(icon_scale_x, icon_scale_y)
|
||||||
M.Turn(icon_rotation)
|
M.Turn(icon_rotation)
|
||||||
src.transform = M
|
src.transform = M
|
||||||
|
|
||||||
// Use this to set the object's scale.
|
// Use this to set the object's scale.
|
||||||
/atom/movable/proc/adjust_scale(new_scale)
|
/atom/movable/proc/adjust_scale(new_scale_x, new_scale_y)
|
||||||
icon_scale = new_scale
|
if(isnull(new_scale_y))
|
||||||
|
new_scale_y = new_scale_x
|
||||||
|
icon_scale_x = new_scale_x
|
||||||
|
icon_scale_y = new_scale_y
|
||||||
update_transform()
|
update_transform()
|
||||||
|
|
||||||
/atom/movable/proc/adjust_rotation(new_rotation)
|
/atom/movable/proc/adjust_rotation(new_rotation)
|
||||||
|
|||||||
@@ -14,11 +14,27 @@
|
|||||||
var/product_amount = 10 // How much of a stack you get, if the above is defined.
|
var/product_amount = 10 // How much of a stack you get, if the above is defined.
|
||||||
var/is_stump = FALSE // If true, suspends damage tracking and most other effects.
|
var/is_stump = FALSE // If true, suspends damage tracking and most other effects.
|
||||||
var/indestructable = FALSE // If true, the tree cannot die.
|
var/indestructable = FALSE // If true, the tree cannot die.
|
||||||
|
var/randomize_size = FALSE // If true, the tree will choose a random scale in the X and Y directions to stretch.
|
||||||
|
|
||||||
/obj/structure/flora/tree/Initialize()
|
/obj/structure/flora/tree/Initialize()
|
||||||
icon_state = choose_icon_state()
|
icon_state = choose_icon_state()
|
||||||
|
|
||||||
|
if(randomize_size)
|
||||||
|
icon_scale_x = rand(90, 125) / 100
|
||||||
|
icon_scale_y = rand(90, 125) / 100
|
||||||
|
|
||||||
|
if(prob(50))
|
||||||
|
icon_scale_x *= -1
|
||||||
|
update_transform()
|
||||||
|
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
/obj/structure/flora/tree/update_transform()
|
||||||
|
var/matrix/M = matrix()
|
||||||
|
M.Scale(icon_scale_x, icon_scale_y)
|
||||||
|
M.Translate(0, 16*(icon_scale_y-1))
|
||||||
|
animate(src, transform = M, time = 10)
|
||||||
|
|
||||||
// Override this for special icons.
|
// Override this for special icons.
|
||||||
/obj/structure/flora/tree/proc/choose_icon_state()
|
/obj/structure/flora/tree/proc/choose_icon_state()
|
||||||
return icon_state
|
return icon_state
|
||||||
@@ -57,8 +73,11 @@
|
|||||||
/obj/structure/flora/tree/proc/hit_animation()
|
/obj/structure/flora/tree/proc/hit_animation()
|
||||||
var/init_px = pixel_x
|
var/init_px = pixel_x
|
||||||
var/shake_dir = pick(-1, 1)
|
var/shake_dir = pick(-1, 1)
|
||||||
animate(src, transform=turn(matrix(), shake_animation_degrees * shake_dir), pixel_x=init_px + 2*shake_dir, time=1)
|
var/matrix/M = matrix()
|
||||||
animate(transform=null, pixel_x=init_px, time=6, easing=ELASTIC_EASING)
|
M.Scale(icon_scale_x, icon_scale_y)
|
||||||
|
M.Translate(0, 16*(icon_scale_y-1))
|
||||||
|
animate(src, transform=turn(M, shake_animation_degrees * shake_dir), pixel_x=init_px + 2*shake_dir, time=1)
|
||||||
|
animate(transform=M, pixel_x=init_px, time=6, easing=ELASTIC_EASING)
|
||||||
|
|
||||||
// Used when the tree gets hurt.
|
// Used when the tree gets hurt.
|
||||||
/obj/structure/flora/tree/proc/adjust_health(var/amount, var/damage_wood = FALSE)
|
/obj/structure/flora/tree/proc/adjust_health(var/amount, var/damage_wood = FALSE)
|
||||||
@@ -247,13 +266,19 @@
|
|||||||
base_state = "tree_sif"
|
base_state = "tree_sif"
|
||||||
product = /obj/item/stack/material/log/sif
|
product = /obj/item/stack/material/log/sif
|
||||||
catalogue_data = list(/datum/category_item/catalogue/flora/sif_tree)
|
catalogue_data = list(/datum/category_item/catalogue/flora/sif_tree)
|
||||||
|
randomize_size = TRUE
|
||||||
|
var/light_shift = 0
|
||||||
|
|
||||||
|
/obj/structure/flora/tree/sif/choose_icon_state()
|
||||||
|
light_shift = rand(0, 5)
|
||||||
|
return "[base_state][light_shift]"
|
||||||
|
|
||||||
/obj/structure/flora/tree/sif/Initialize()
|
/obj/structure/flora/tree/sif/Initialize()
|
||||||
|
. = ..()
|
||||||
update_icon()
|
update_icon()
|
||||||
return ..()
|
|
||||||
|
|
||||||
/obj/structure/flora/tree/sif/update_icon()
|
/obj/structure/flora/tree/sif/update_icon()
|
||||||
set_light(5, 1, "#33ccff")
|
set_light(5 - light_shift, 1, "#33ccff") // 5 variants, missing bulbs. 5th has no bulbs, so no glow.
|
||||||
var/image/glow = image(icon = 'icons/obj/flora/deadtrees.dmi', icon_state = "[base_state]_glow")
|
var/image/glow = image(icon = icon, icon_state = "[base_state][light_shift]_glow")
|
||||||
glow.plane = PLANE_LIGHTING_ABOVE
|
glow.plane = PLANE_LIGHTING_ABOVE
|
||||||
overlays = list(glow)
|
overlays = list(glow)
|
||||||
|
|||||||
@@ -781,7 +781,8 @@ Loot piles can be depleted, if loot_depleted is turned on. Note that players wh
|
|||||||
// Todo: Better loot.
|
// Todo: Better loot.
|
||||||
/obj/structure/loot_pile/mecha/gygax/dark/adv
|
/obj/structure/loot_pile/mecha/gygax/dark/adv
|
||||||
icon_state = "darkgygax_adv-broken"
|
icon_state = "darkgygax_adv-broken"
|
||||||
icon_scale = 1.5
|
icon_scale_x = 1.5
|
||||||
|
icon_scale_y = 1.5
|
||||||
pixel_y = 8
|
pixel_y = 8
|
||||||
|
|
||||||
/obj/structure/loot_pile/mecha/gygax/medgax
|
/obj/structure/loot_pile/mecha/gygax/medgax
|
||||||
|
|||||||
@@ -42,7 +42,8 @@
|
|||||||
var/accuracy // Positive numbers makes hitting things with guns easier, negatives make it harder.
|
var/accuracy // Positive numbers makes hitting things with guns easier, negatives make it harder.
|
||||||
var/accuracy_dispersion // Positive numbers make gun firing cover a wider tile range, and therefore more inaccurate. Negatives help negate dispersion penalties.
|
var/accuracy_dispersion // Positive numbers make gun firing cover a wider tile range, and therefore more inaccurate. Negatives help negate dispersion penalties.
|
||||||
var/metabolism_percent // Adjusts the mob's metabolic rate, which affects reagent processing. Won't affect mobs without reagent processing.
|
var/metabolism_percent // Adjusts the mob's metabolic rate, which affects reagent processing. Won't affect mobs without reagent processing.
|
||||||
var/icon_scale_percent // Makes the holder's icon get scaled up or down.
|
var/icon_scale_x_percent // Makes the holder's icon get scaled wider or thinner.
|
||||||
|
var/icon_scale_y_percent // Makes the holder's icon get scaled taller or shorter.
|
||||||
var/attack_speed_percent // Makes the holder's 'attack speed' (click delay) shorter or longer.
|
var/attack_speed_percent // Makes the holder's 'attack speed' (click delay) shorter or longer.
|
||||||
var/pain_immunity // Makes the holder not care about pain while this is on. Only really useful to human mobs.
|
var/pain_immunity // Makes the holder not care about pain while this is on. Only really useful to human mobs.
|
||||||
var/pulse_modifier // Modifier for pulse, will be rounded on application, then added to the normal 'pulse' multiplier which ranges between 0 and 5 normally. Only applied if they're living.
|
var/pulse_modifier // Modifier for pulse, will be rounded on application, then added to the normal 'pulse' multiplier which ranges between 0 and 5 normally. Only applied if they're living.
|
||||||
@@ -73,7 +74,7 @@
|
|||||||
holder.modifiers.Remove(src)
|
holder.modifiers.Remove(src)
|
||||||
if(mob_overlay_state) // We do this after removing ourselves from the list so that the overlay won't remain.
|
if(mob_overlay_state) // We do this after removing ourselves from the list so that the overlay won't remain.
|
||||||
holder.update_modifier_visuals()
|
holder.update_modifier_visuals()
|
||||||
if(icon_scale_percent) // Correct the scaling.
|
if(icon_scale_x_percent || icon_scale_y_percent) // Correct the scaling.
|
||||||
holder.update_transform()
|
holder.update_transform()
|
||||||
if(client_color)
|
if(client_color)
|
||||||
holder.update_client_color()
|
holder.update_client_color()
|
||||||
@@ -140,7 +141,7 @@
|
|||||||
mod.on_applied()
|
mod.on_applied()
|
||||||
if(mod.mob_overlay_state)
|
if(mod.mob_overlay_state)
|
||||||
update_modifier_visuals()
|
update_modifier_visuals()
|
||||||
if(mod.icon_scale_percent)
|
if(mod.icon_scale_x_percent || mod.icon_scale_y_percent)
|
||||||
update_transform()
|
update_transform()
|
||||||
if(mod.client_color)
|
if(mod.client_color)
|
||||||
update_client_color()
|
update_client_color()
|
||||||
@@ -232,8 +233,11 @@
|
|||||||
effects += "Your metabolism is [metabolism_percent > 1.0 ? "faster" : "slower"], \
|
effects += "Your metabolism is [metabolism_percent > 1.0 ? "faster" : "slower"], \
|
||||||
causing reagents in your body to process, and hunger to occur [multipler_to_percentage(metabolism_percent, TRUE)] [metabolism_percent > 1.0 ? "faster" : "slower"]."
|
causing reagents in your body to process, and hunger to occur [multipler_to_percentage(metabolism_percent, TRUE)] [metabolism_percent > 1.0 ? "faster" : "slower"]."
|
||||||
|
|
||||||
if(!isnull(icon_scale_percent))
|
if(!isnull(icon_scale_x_percent))
|
||||||
effects += "Your appearance is [multipler_to_percentage(icon_scale_percent, TRUE)] [icon_scale_percent > 1 ? "larger" : "smaller"]."
|
effects += "Your appearance is [multipler_to_percentage(icon_scale_x_percent, TRUE)] [icon_scale_x_percent > 1 ? "wider" : "thinner"]."
|
||||||
|
|
||||||
|
if(!isnull(icon_scale_y_percent))
|
||||||
|
effects += "Your appearance is [multipler_to_percentage(icon_scale_y_percent, TRUE)] [icon_scale_y_percent > 1 ? "taller" : "shorter"]."
|
||||||
|
|
||||||
if(!isnull(attack_speed_percent))
|
if(!isnull(attack_speed_percent))
|
||||||
effects += "The delay between attacking is [multipler_to_percentage(attack_speed_percent, TRUE)] [disable_duration_percent > 1.0 ? "longer" : "shorter"]."
|
effects += "The delay between attacking is [multipler_to_percentage(attack_speed_percent, TRUE)] [disable_duration_percent > 1.0 ? "longer" : "shorter"]."
|
||||||
|
|||||||
@@ -56,7 +56,8 @@ the artifact triggers the rage.
|
|||||||
outgoing_melee_damage_percent = 1.5 // 50% more damage from melee.
|
outgoing_melee_damage_percent = 1.5 // 50% more damage from melee.
|
||||||
max_health_percent = 1.5 // More health as a buffer, however the holder might fall into crit after this expires if they're mortally wounded.
|
max_health_percent = 1.5 // More health as a buffer, however the holder might fall into crit after this expires if they're mortally wounded.
|
||||||
disable_duration_percent = 0.25 // Disables only last 25% as long.
|
disable_duration_percent = 0.25 // Disables only last 25% as long.
|
||||||
icon_scale_percent = 1.2 // Look scarier.
|
icon_scale_x_percent = 1.2 // Look scarier.
|
||||||
|
icon_scale_y_percent = 1.2
|
||||||
pain_immunity = TRUE // Avoid falling over from shock (at least until it expires).
|
pain_immunity = TRUE // Avoid falling over from shock (at least until it expires).
|
||||||
|
|
||||||
// The less good stuff.
|
// The less good stuff.
|
||||||
|
|||||||
@@ -64,25 +64,29 @@
|
|||||||
name = "Larger"
|
name = "Larger"
|
||||||
desc = "Your body is larger than average."
|
desc = "Your body is larger than average."
|
||||||
|
|
||||||
icon_scale_percent = 1.1
|
icon_scale_x_percent = 1.1
|
||||||
|
icon_scale_y_percent = 1.1
|
||||||
|
|
||||||
/datum/modifier/trait/large
|
/datum/modifier/trait/large
|
||||||
name = "Large"
|
name = "Large"
|
||||||
desc = "Your body is a bit larger than average."
|
desc = "Your body is a bit larger than average."
|
||||||
|
|
||||||
icon_scale_percent = 1.05
|
icon_scale_x_percent = 1.05
|
||||||
|
icon_scale_y_percent = 1.05
|
||||||
|
|
||||||
/datum/modifier/trait/small
|
/datum/modifier/trait/small
|
||||||
name = "Small"
|
name = "Small"
|
||||||
desc = "Your body is a bit smaller than average."
|
desc = "Your body is a bit smaller than average."
|
||||||
|
|
||||||
icon_scale_percent = 0.95
|
icon_scale_x_percent = 0.95
|
||||||
|
icon_scale_y_percent = 0.95
|
||||||
|
|
||||||
/datum/modifier/trait/smaller
|
/datum/modifier/trait/smaller
|
||||||
name = "Smaller"
|
name = "Smaller"
|
||||||
desc = "Your body is smaller than average."
|
desc = "Your body is smaller than average."
|
||||||
|
|
||||||
icon_scale_percent = 0.9
|
icon_scale_x_percent = 0.9
|
||||||
|
icon_scale_y_percent = 0.9
|
||||||
|
|
||||||
/datum/modifier/trait/colorblind_protanopia
|
/datum/modifier/trait/colorblind_protanopia
|
||||||
name = "Protanopia"
|
name = "Protanopia"
|
||||||
|
|||||||
@@ -14,7 +14,8 @@
|
|||||||
|
|
||||||
disable_duration_percent = 0.25 // Disables only last 25% as long.
|
disable_duration_percent = 0.25 // Disables only last 25% as long.
|
||||||
incoming_damage_percent = 0.5 // 50% incoming damage.
|
incoming_damage_percent = 0.5 // 50% incoming damage.
|
||||||
icon_scale_percent = 1.2 // Become a bigger target.
|
icon_scale_x_percent = 1.2 // Become a bigger target.
|
||||||
|
icon_scale_y_percent = 1.2
|
||||||
pain_immunity = TRUE
|
pain_immunity = TRUE
|
||||||
|
|
||||||
slowdown = 2
|
slowdown = 2
|
||||||
|
|||||||
@@ -1120,7 +1120,7 @@
|
|||||||
if(species.default_language)
|
if(species.default_language)
|
||||||
add_language(species.default_language)
|
add_language(species.default_language)
|
||||||
|
|
||||||
if(species.icon_scale != 1)
|
if(species.icon_scale_x != 1 || species.icon_scale_y != 1)
|
||||||
update_transform()
|
update_transform()
|
||||||
|
|
||||||
if(species.base_color && default_colour)
|
if(species.base_color && default_colour)
|
||||||
|
|||||||
@@ -32,7 +32,8 @@
|
|||||||
var/tail_animation // If set, the icon to obtain tail animation states from.
|
var/tail_animation // If set, the icon to obtain tail animation states from.
|
||||||
var/tail_hair
|
var/tail_hair
|
||||||
|
|
||||||
var/icon_scale = 1 // Makes the icon larger/smaller.
|
var/icon_scale_x = 1 // Makes the icon wider/thinner.
|
||||||
|
var/icon_scale_y = 1 // Makes the icon taller/shorter.
|
||||||
|
|
||||||
var/race_key = 0 // Used for mob icon cache string.
|
var/race_key = 0 // Used for mob icon cache string.
|
||||||
var/icon/icon_template // Used for mob icon generation for non-32x32 species.
|
var/icon/icon_template // Used for mob icon generation for non-32x32 species.
|
||||||
|
|||||||
@@ -121,13 +121,17 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
|||||||
|
|
||||||
/mob/living/carbon/human/update_transform()
|
/mob/living/carbon/human/update_transform()
|
||||||
// First, get the correct size.
|
// First, get the correct size.
|
||||||
var/desired_scale = icon_scale
|
var/desired_scale_x = icon_scale_x
|
||||||
|
var/desired_scale_y = icon_scale_y
|
||||||
|
|
||||||
desired_scale *= species.icon_scale
|
desired_scale_x *= species.icon_scale_x
|
||||||
|
desired_scale_y *= species.icon_scale_y
|
||||||
|
|
||||||
for(var/datum/modifier/M in modifiers)
|
for(var/datum/modifier/M in modifiers)
|
||||||
if(!isnull(M.icon_scale_percent))
|
if(!isnull(M.icon_scale_x_percent))
|
||||||
desired_scale *= M.icon_scale_percent
|
desired_scale_x *= M.icon_scale_x_percent
|
||||||
|
if(!isnull(M.icon_scale_y_percent))
|
||||||
|
desired_scale_y *= M.icon_scale_y_percent
|
||||||
|
|
||||||
// Regular stuff again.
|
// Regular stuff again.
|
||||||
var/matrix/M = matrix()
|
var/matrix/M = matrix()
|
||||||
@@ -139,12 +143,12 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
|||||||
|
|
||||||
if(lying && !species.prone_icon) //Only rotate them if we're not drawing a specific icon for being prone.
|
if(lying && !species.prone_icon) //Only rotate them if we're not drawing a specific icon for being prone.
|
||||||
M.Turn(90)
|
M.Turn(90)
|
||||||
M.Scale(desired_scale)
|
M.Scale(desired_scale_x, desired_scale_y)
|
||||||
M.Translate(1,-6)
|
M.Translate(1,-6)
|
||||||
layer = MOB_LAYER -0.01 // Fix for a byond bug where turf entry order no longer matters
|
layer = MOB_LAYER -0.01 // Fix for a byond bug where turf entry order no longer matters
|
||||||
else
|
else
|
||||||
M.Scale(desired_scale)
|
M.Scale(desired_scale_x, desired_scale_y)
|
||||||
M.Translate(0, 16*(desired_scale-1))
|
M.Translate(0, 16*(desired_scale_y-1))
|
||||||
layer = MOB_LAYER // Fix for a byond bug where turf entry order no longer matters
|
layer = MOB_LAYER // Fix for a byond bug where turf entry order no longer matters
|
||||||
|
|
||||||
animate(src, transform = M, time = anim_time)
|
animate(src, transform = M, time = anim_time)
|
||||||
|
|||||||
@@ -1115,15 +1115,18 @@ default behaviour is:
|
|||||||
|
|
||||||
/mob/living/update_transform()
|
/mob/living/update_transform()
|
||||||
// First, get the correct size.
|
// First, get the correct size.
|
||||||
var/desired_scale = icon_scale
|
var/desired_scale_x = icon_scale_x
|
||||||
|
var/desired_scale_y = icon_scale_y
|
||||||
for(var/datum/modifier/M in modifiers)
|
for(var/datum/modifier/M in modifiers)
|
||||||
if(!isnull(M.icon_scale_percent))
|
if(!isnull(M.icon_scale_x_percent))
|
||||||
desired_scale *= M.icon_scale_percent
|
desired_scale_x *= M.icon_scale_x_percent
|
||||||
|
if(!isnull(M.icon_scale_y_percent))
|
||||||
|
desired_scale_y *= M.icon_scale_y_percent
|
||||||
|
|
||||||
// Now for the regular stuff.
|
// Now for the regular stuff.
|
||||||
var/matrix/M = matrix()
|
var/matrix/M = matrix()
|
||||||
M.Scale(desired_scale)
|
M.Scale(desired_scale_x, desired_scale_y)
|
||||||
M.Translate(0, 16*(desired_scale-1))
|
M.Translate(0, 16*(desired_scale_y-1))
|
||||||
animate(src, transform = M, time = 10)
|
animate(src, transform = M, time = 10)
|
||||||
|
|
||||||
// This handles setting the client's color variable, which makes everything look a specific color.
|
// This handles setting the client's color variable, which makes everything look a specific color.
|
||||||
|
|||||||
@@ -217,7 +217,8 @@
|
|||||||
the ferocity of other apex predators in this region of Sif. As such, it is a very invasive species."
|
the ferocity of other apex predators in this region of Sif. As such, it is a very invasive species."
|
||||||
description_info = "This slime makes other entities near it feel much colder, and is more resilient to the cold. It also has learned advanced combat tactics from \
|
description_info = "This slime makes other entities near it feel much colder, and is more resilient to the cold. It also has learned advanced combat tactics from \
|
||||||
having to endure the harsh world outside its lab. Note that processing this large slime will give six cores."
|
having to endure the harsh world outside its lab. Note that processing this large slime will give six cores."
|
||||||
icon_scale = 2
|
icon_scale_x = 2
|
||||||
|
icon_scale_y = 2
|
||||||
optimal_combat = TRUE // Gotta be sharp to survive out there.
|
optimal_combat = TRUE // Gotta be sharp to survive out there.
|
||||||
rabid = TRUE
|
rabid = TRUE
|
||||||
rainbow_core_candidate = FALSE
|
rainbow_core_candidate = FALSE
|
||||||
|
|||||||
@@ -57,7 +57,8 @@
|
|||||||
icon_state = "commonblackbird"
|
icon_state = "commonblackbird"
|
||||||
icon_dead = "commonblackbird-dead"
|
icon_dead = "commonblackbird-dead"
|
||||||
tt_desc = "E Turdus merula"
|
tt_desc = "E Turdus merula"
|
||||||
icon_scale = 0.5
|
icon_scale_x = 0.5
|
||||||
|
icon_scale_y = 0.5
|
||||||
|
|
||||||
/mob/living/simple_mob/animal/passive/bird/azure_tit
|
/mob/living/simple_mob/animal/passive/bird/azure_tit
|
||||||
name = "azure tit"
|
name = "azure tit"
|
||||||
@@ -65,7 +66,8 @@
|
|||||||
icon_state = "azuretit"
|
icon_state = "azuretit"
|
||||||
icon_dead = "azuretit-dead"
|
icon_dead = "azuretit-dead"
|
||||||
tt_desc = "E Cyanistes cyanus"
|
tt_desc = "E Cyanistes cyanus"
|
||||||
icon_scale = 0.5
|
icon_scale_x = 0.5
|
||||||
|
icon_scale_y = 0.5
|
||||||
|
|
||||||
/mob/living/simple_mob/animal/passive/bird/european_robin
|
/mob/living/simple_mob/animal/passive/bird/european_robin
|
||||||
name = "european robin"
|
name = "european robin"
|
||||||
@@ -73,7 +75,8 @@
|
|||||||
icon_state = "europeanrobin"
|
icon_state = "europeanrobin"
|
||||||
icon_dead = "europeanrobin-dead"
|
icon_dead = "europeanrobin-dead"
|
||||||
tt_desc = "E Erithacus rubecula"
|
tt_desc = "E Erithacus rubecula"
|
||||||
icon_scale = 0.5
|
icon_scale_x = 0.5
|
||||||
|
icon_scale_y = 0.5
|
||||||
|
|
||||||
/mob/living/simple_mob/animal/passive/bird/goldcrest
|
/mob/living/simple_mob/animal/passive/bird/goldcrest
|
||||||
name = "goldcrest"
|
name = "goldcrest"
|
||||||
@@ -82,7 +85,8 @@
|
|||||||
icon_state = "goldcrest"
|
icon_state = "goldcrest"
|
||||||
icon_dead = "goldcrest-dead"
|
icon_dead = "goldcrest-dead"
|
||||||
tt_desc = "E Regulus regulus"
|
tt_desc = "E Regulus regulus"
|
||||||
icon_scale = 0.5
|
icon_scale_x = 0.5
|
||||||
|
icon_scale_y = 0.5
|
||||||
|
|
||||||
/mob/living/simple_mob/animal/passive/bird/ringneck_dove
|
/mob/living/simple_mob/animal/passive/bird/ringneck_dove
|
||||||
name = "ringneck dove"
|
name = "ringneck dove"
|
||||||
@@ -90,4 +94,5 @@
|
|||||||
icon_state = "ringneckdove"
|
icon_state = "ringneckdove"
|
||||||
icon_dead = "ringneckdove-dead"
|
icon_dead = "ringneckdove-dead"
|
||||||
tt_desc = "E Streptopelia risoria" // This is actually disputed IRL but since we can't tell the future it'll stay the same for 500+ years.
|
tt_desc = "E Streptopelia risoria" // This is actually disputed IRL but since we can't tell the future it'll stay the same for 500+ years.
|
||||||
icon_scale = 0.5
|
icon_scale_x = 0.5
|
||||||
|
icon_scale_y = 0.5
|
||||||
|
|||||||
@@ -32,7 +32,8 @@
|
|||||||
icon_state = "sif_crab"
|
icon_state = "sif_crab"
|
||||||
icon_living = "sif_crab"
|
icon_living = "sif_crab"
|
||||||
icon_dead = "sif_crab_dead"
|
icon_dead = "sif_crab_dead"
|
||||||
icon_scale = 1.5
|
icon_scale_x = 1.5
|
||||||
|
icon_scale_y = 1.5
|
||||||
|
|
||||||
faction = "crabs"
|
faction = "crabs"
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,8 @@
|
|||||||
name = "big shantak"
|
name = "big shantak"
|
||||||
desc = "A piglike creature with a bright iridiscent mane that sparkles as though lit by an inner light. \
|
desc = "A piglike creature with a bright iridiscent mane that sparkles as though lit by an inner light. \
|
||||||
This one seems bigger than the others, and has a commanding presence."
|
This one seems bigger than the others, and has a commanding presence."
|
||||||
icon_scale = 1.5
|
icon_scale_x = 1.5
|
||||||
|
icon_scale_y = 1.5
|
||||||
maxHealth = 125
|
maxHealth = 125
|
||||||
player_msg = "You have the ability to <b>command other shantaks to follow you</b>."
|
player_msg = "You have the ability to <b>command other shantaks to follow you</b>."
|
||||||
|
|
||||||
|
|||||||
@@ -105,7 +105,8 @@
|
|||||||
name = "siege engine hivebot"
|
name = "siege engine hivebot"
|
||||||
desc = "A large robot capable of delivering long range bombardment."
|
desc = "A large robot capable of delivering long range bombardment."
|
||||||
projectiletype = /obj/item/projectile/arc/test
|
projectiletype = /obj/item/projectile/arc/test
|
||||||
icon_scale = 2
|
icon_scale_x = 2
|
||||||
|
icon_scale_y = 2
|
||||||
icon_state = "red"
|
icon_state = "red"
|
||||||
icon_living = "red"
|
icon_living = "red"
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,8 @@
|
|||||||
desc = "A large robot."
|
desc = "A large robot."
|
||||||
maxHealth = 10 LASERS_TO_KILL // 300 health
|
maxHealth = 10 LASERS_TO_KILL // 300 health
|
||||||
health = 10 LASERS_TO_KILL
|
health = 10 LASERS_TO_KILL
|
||||||
icon_scale = 2
|
icon_scale_x = 2
|
||||||
|
icon_scale_y = 2
|
||||||
player_msg = "You have a very large amount of health."
|
player_msg = "You have a very large amount of health."
|
||||||
|
|
||||||
|
|
||||||
@@ -49,7 +50,8 @@
|
|||||||
desc = "A robot clad in heavy armor."
|
desc = "A robot clad in heavy armor."
|
||||||
maxHealth = 5 LASERS_TO_KILL // 150 health.
|
maxHealth = 5 LASERS_TO_KILL // 150 health.
|
||||||
health = 5 LASERS_TO_KILL
|
health = 5 LASERS_TO_KILL
|
||||||
icon_scale = 1.5
|
icon_scale_x = 1.5
|
||||||
|
icon_scale_y = 1.5
|
||||||
player_msg = "You are heavily armored."
|
player_msg = "You are heavily armored."
|
||||||
// Note that armor effectively makes lasers do about 9 damage instead of 30,
|
// Note that armor effectively makes lasers do about 9 damage instead of 30,
|
||||||
// so it has an effective health of ~16.6 LASERS_TO_KILL if regular lasers are used.
|
// so it has an effective health of ~16.6 LASERS_TO_KILL if regular lasers are used.
|
||||||
|
|||||||
@@ -77,7 +77,8 @@
|
|||||||
catalogue_data = list(/datum/category_item/catalogue/technology/adv_dark_gygax)
|
catalogue_data = list(/datum/category_item/catalogue/technology/adv_dark_gygax)
|
||||||
icon_state = "darkgygax_adv"
|
icon_state = "darkgygax_adv"
|
||||||
wreckage = /obj/structure/loot_pile/mecha/gygax/dark/adv
|
wreckage = /obj/structure/loot_pile/mecha/gygax/dark/adv
|
||||||
icon_scale = 1.5
|
icon_scale_x = 1.5
|
||||||
|
icon_scale_y = 1.5
|
||||||
movement_shake_radius = 14
|
movement_shake_radius = 14
|
||||||
|
|
||||||
maxHealth = 450
|
maxHealth = 450
|
||||||
|
|||||||
@@ -106,7 +106,8 @@
|
|||||||
friendly = list("pokes") //Anything nice the Behemoth would do would still Kill the Human. Leave it at poke.
|
friendly = list("pokes") //Anything nice the Behemoth would do would still Kill the Human. Leave it at poke.
|
||||||
attack_sound = 'sound/weapons/heavysmash.ogg'
|
attack_sound = 'sound/weapons/heavysmash.ogg'
|
||||||
resistance = 10
|
resistance = 10
|
||||||
icon_scale = 2
|
icon_scale_x = 2
|
||||||
|
icon_scale_y = 2
|
||||||
var/energy = 0
|
var/energy = 0
|
||||||
var/max_energy = 1000
|
var/max_energy = 1000
|
||||||
armor = list(
|
armor = list(
|
||||||
|
|||||||
@@ -14,7 +14,8 @@
|
|||||||
icon_dead = "slime adult dead"
|
icon_dead = "slime adult dead"
|
||||||
glow_range = 5
|
glow_range = 5
|
||||||
glow_intensity = 4
|
glow_intensity = 4
|
||||||
icon_scale = 2 // Twice as big as the xenobio variant.
|
icon_scale_x = 2 // Twice as big as the xenobio variant.
|
||||||
|
icon_scale_y = 2
|
||||||
pixel_y = -10 // Since the base sprite isn't centered properly, the pixel auto-adjustment needs some help.
|
pixel_y = -10 // Since the base sprite isn't centered properly, the pixel auto-adjustment needs some help.
|
||||||
default_pixel_y = -10 // To prevent resetting above var.
|
default_pixel_y = -10 // To prevent resetting above var.
|
||||||
|
|
||||||
@@ -63,7 +64,8 @@
|
|||||||
check_armour = "melee"
|
check_armour = "melee"
|
||||||
armor_penetration = 30
|
armor_penetration = 30
|
||||||
speed = 2
|
speed = 2
|
||||||
icon_scale = 2 // It hits like a truck.
|
icon_scale_x = 2 // It hits like a truck.
|
||||||
|
icon_scale_y = 2
|
||||||
sharp = TRUE
|
sharp = TRUE
|
||||||
|
|
||||||
/obj/item/projectile/icicle/on_impact(atom/A)
|
/obj/item/projectile/icicle/on_impact(atom/A)
|
||||||
|
|||||||
@@ -162,7 +162,8 @@
|
|||||||
/obj/item/projectile/arc/radioactive
|
/obj/item/projectile/arc/radioactive
|
||||||
name = "radiation blast"
|
name = "radiation blast"
|
||||||
icon_state = "green_pellet"
|
icon_state = "green_pellet"
|
||||||
icon_scale = 2
|
icon_scale_x = 2
|
||||||
|
icon_scale_y = 2
|
||||||
var/rad_power = 50
|
var/rad_power = 50
|
||||||
|
|
||||||
/obj/item/projectile/arc/radioactive/on_impact(turf/T)
|
/obj/item/projectile/arc/radioactive/on_impact(turf/T)
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 33 KiB |
Reference in New Issue
Block a user