Skip to content

Commit

Permalink
add: Ashwalkers survival update (#5893) [testmerge][75240b2]
Browse files Browse the repository at this point in the history
  • Loading branch information
actions-user committed Feb 2, 2025
1 parent 5e35d40 commit fac2fa6
Show file tree
Hide file tree
Showing 38 changed files with 620 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -244,14 +244,14 @@
/turf/simulated/floor/lava,
/area/ruin/unpowered/ash_walkers)
"aK" = (
/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck,
/obj/structure/stone_tile/block/cracked{
dir = 8
},
/obj/structure/stone_tile/cracked{
dir = 1
},
/obj/structure/stone_tile,
/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck,
/turf/simulated/floor/indestructible/boss/indoors,
/area/ruin/unpowered/ash_walkers)
"aM" = (
Expand All @@ -277,6 +277,7 @@
/area/ruin/unpowered/ash_walkers)
"aP" = (
/obj/structure/stone_tile,
/obj/item/healthanalyzer/gem_analyzer,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/ash_walkers)
"aQ" = (
Expand Down Expand Up @@ -372,6 +373,7 @@
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/ash_walkers)
"bc" = (
/mob/living/simple_animal/hostile/asteroid/gutlunch/guthen,
/obj/structure/stone_tile/block{
dir = 4
},
Expand All @@ -381,7 +383,6 @@
/obj/structure/stone_tile{
dir = 4
},
/mob/living/simple_animal/hostile/asteroid/gutlunch/guthen,
/turf/simulated/floor/indestructible/boss/indoors,
/area/ruin/unpowered/ash_walkers)
"bd" = (
Expand Down Expand Up @@ -485,7 +486,7 @@
/obj/structure/stone_tile/cracked{
dir = 4
},
/obj/item/rcd/preloaded,
/obj/item/stack/fireproof_rods/twentyfive,
/turf/simulated/floor/indestructible/boss,
/area/ruin/unpowered/ash_walkers)
"bn" = (
Expand Down Expand Up @@ -1424,6 +1425,14 @@
},
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"Vf" = (
/obj/structure/stone_tile{
dir = 1
},
/obj/effect/mapping_helpers/no_lava,
/obj/machinery/smartfridge/drying_rack/ash,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)

(1,1,1) = {"
aa
Expand Down Expand Up @@ -1590,7 +1599,7 @@ ba
bn
bz
ak
cb
Vf
df
bX
co
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,7 @@
#define isunathi(A) (is_species(A, /datum/species/unathi))
#define isashwalker(A) (is_species(A, /datum/species/unathi/ashwalker))
#define isashwalkershaman(A) (is_species(A, /datum/species/unathi/ashwalker/shaman))
#define isdraconid(A) (is_species(A, /datum/species/unathi/draconid))
#define istajaran(A) (is_species(A, /datum/species/tajaran))
#define isvulpkanin(A) (is_species(A, /datum/species/vulpkanin))
#define isskrell(A) (is_species(A, /datum/species/skrell))
Expand Down
3 changes: 2 additions & 1 deletion code/datums/mapgen/LavalandGenerator.dm
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@
/obj/structure/flora/ash/stem_shroom = 2,
/obj/structure/flora/ash/cacti = 1,
/obj/structure/flora/ash/tall_shroom = 2,
/obj/structure/flora/ash/fireblossom = 2
/obj/structure/flora/ash/fireblossom = 2,
/obj/structure/flora/ash/coaltree = 1
)

smoothing_iterations = 50
Expand Down
19 changes: 19 additions & 0 deletions code/game/objects/items/devices/scanners.dm
Original file line number Diff line number Diff line change
Expand Up @@ -732,6 +732,25 @@ REAGENT SCANNER
origin_tech = "magnets=2;biotech=2"
usesound = 'sound/items/deconstruct.ogg'

/obj/item/healthanalyzer/gem_analyzer
name = "eye of health"
desc = "Необычный самоцвет в форме сердца."
ru_names = list(
NOMINATIVE = "глаз здоровья",
GENITIVE = "глаза здоровья",
DATIVE = "глазу здоровья",
ACCUSATIVE = "глаз здоровья",
INSTRUMENTAL = "глазом здоровья",
PREPOSITIONAL = "глазе здоровья"
)
icon = 'icons/obj/device.dmi'
icon_state = "Gem_analyzer"
item_state = "gem_analyzer"
origin_tech = null

/obj/item/healthanalyzer/gem_analyzer/attackby(obj/item/I, mob/user, params)
return ATTACK_CHAIN_BLOCKED_ALL

/obj/item/reagent_scanner
name = "reagent scanner"
desc = "A hand-held reagent scanner which identifies chemical agents and blood types."
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/stacks/sheets/leather.dm
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ GLOBAL_LIST_INIT(sinew_recipes, list ( \
if(!do_after(user, 5 SECONDS * I.toolspeed, src, category = DA_CAT_TOOL))
return ATTACK_CHAIN_PROCEED
to_chat(user, span_notice("You cut the hair from [src]."))
var/obj/item/stack/sheet/hairlesshide/hide = new(drop_location(), amount)
var/obj/item/stack/sheet/hairlesshide/hide = new(drop_location(), 3 * amount)
hide.add_fingerprint(user)
qdel(src)
return ATTACK_CHAIN_BLOCKED_ALL
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/weapons/shields.dm
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@
item_state = "goliath_shield"
materials = list()
origin_tech = "materials=1;combat=3;biotech=2"
block_chance = 30
block_chance = 45
obj_integrity = 380
max_integrity = 380

Expand Down
35 changes: 35 additions & 0 deletions code/game/objects/items/weapons/weaponry.dm
Original file line number Diff line number Diff line change
Expand Up @@ -440,6 +440,41 @@
w_class = WEIGHT_CLASS_BULKY
block_chance = 30

/obj/item/nutcracker
name = "nutcracker"
desc = "Простейшая дубина из кости, воплощает в себе силу природы и первобытную мощь."
ru_names = list(
NOMINATIVE = "колотушка",
GENITIVE = "колотушки",
DATIVE = "колотушке",
ACCUSATIVE = "колотушка",
INSTRUMENTAL = "колотушкой",
PREPOSITIONAL = "колотушке"
)
icon_state = "nutcracker"
item_state = "nutcracker"
hitsound = 'sound/weapons/kolotushka_smash.ogg'
slot_flags = ITEM_SLOT_BELT
force = 3
throwforce = 3
w_class = WEIGHT_CLASS_NORMAL
var/stamina_damage = 22

/obj/item/nutcracker/afterattack(atom/target, mob/user, proximity, params, status)
if(!isliving(target) || !proximity || user.incapacitated() || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))
return

var/mob/living/victim = target
if(isrobot(victim))
if(prob(30))
victim.flash_eyes(3 SECONDS)
victim.Stun(3 SECONDS)

if(ishuman(victim))
victim.apply_damage(stamina_damage, STAMINA, blocked = victim.getarmor(user.zone_selected, MELEE))
if(prob(30))
victim.Knockdown(3 SECONDS)

/obj/item/melee/ghostface_knife
name = "Knife"
desc = "Очень острый нож. Судя по потёртостям и засохшей крови, он совсем не валялся без дела."
Expand Down
24 changes: 24 additions & 0 deletions code/game/objects/structures/watercloset.dm
Original file line number Diff line number Diff line change
Expand Up @@ -705,6 +705,14 @@
can_rotate = 0
resistance_flags = UNACIDABLE

/obj/structure/sink/puddle/Initialize(mapload)
. = ..()

var/static/list/loc_connections = list(
COMSIG_ATOM_ENTERED = PROC_REF(on_entered),
)
AddElement(/datum/element/connect_loc, loc_connections)


/obj/structure/sink/puddle/attack_hand(mob/user)
flick("puddle-splash", src)
Expand Down Expand Up @@ -734,6 +742,22 @@

return ..()

/obj/structure/sink/puddle/proc/on_entered(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs)
SIGNAL_HANDLER
wash(arrived)

/obj/structure/sink/puddle/proc/wash(atom/target)
if(isitem(target))
var/obj/item/item = target
item.extinguish()

if(isliving(target))
var/mob/living/l_target = target
l_target.ExtinguishMob()
l_target.adjust_fire_stacks(-20)
to_chat(l_target, span_warning("You've been drenched in water!"))

target.clean_blood()

//////////////////////////////////
// Bathroom Fixture Items //
Expand Down
41 changes: 39 additions & 2 deletions code/modules/clothing/gloves/miscellaneous.dm
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,47 @@

/obj/item/clothing/gloves/fingerless/weaver
name = "weaver chitin gloves"
desc = "Grey gloves without fingertips made from the hide of a dead arachnid found on lavaland. Makes wearer stronger in disarming ability."
desc = "Серые перчатки без кончиков пальцев, сделанные из шкуры мертвого паукообразного, найденного на Лаваленде. Улучшает способности владельца к обезоруживанию."
ru_names = list(
NOMINATIVE = "перчатки из хитина ткача",
GENITIVE = "перчаток из хитина ткача",
DATIVE = "перчаткам из хитина ткача",
ACCUSATIVE = "перчатки из хитина ткача",
INSTRUMENTAL = "перчатками из хитина ткача",
PREPOSITIONAL = "перчатках из хитина ткача"
)
icon_state = "weaver_chitin"
item_state = "weaver_chitin"
extra_knock_chance = 5
extra_knock_chance = 20
var/stamdamage_low = 10
var/stamdamage_high = 15

/obj/item/clothing/gloves/fingerless/weaver/Touch(atom/A, proximity)
. = FALSE
if(!ishuman(loc))
return FALSE

var/mob/living/carbon/human/user = loc
if(!user.mind || user.mind.martial_art)
return FALSE

if(user.a_intent != INTENT_HARM || !proximity || isturf(A))
return FALSE

var/damage = rand(user.dna.species.punchdamagelow + user.physiology.punch_damage_low, user.dna.species.punchdamagehigh + user.physiology.punch_damage_high)
var/stamindamage = rand(stamdamage_low, stamdamage_high)
if(ishuman(A))
user.do_attack_animation(A, "kick")
playsound(get_turf(user), 'sound/effects/hit_punch.ogg', 50, 1, -1)
var/mob/living/carbon/human/target = A
var/obj/item/organ/external/affecting = target.get_organ(ran_zone(user.zone_selected))
add_attack_logs(user, target, "Melee attacked with weaver gloves")

target.visible_message(span_danger("[user] сокрушает [target] [declent_ru(INSTRUMENTAL)]!"))

target.apply_damage(damage, BRUTE, affecting)
target.apply_damage(stamindamage, STAMINA, affecting)
return TRUE

/obj/item/clothing/gloves/cyborg
desc = "beep boop borp"
Expand Down
4 changes: 2 additions & 2 deletions code/modules/clothing/suits/armor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -647,7 +647,7 @@
item_state = "goliath_cloak"
desc = "A staunch, practical cape made out of numerous monster materials, it is coveted amongst exiles & hermits."
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/twohanded/spear, /obj/item/organ/internal/regenerative_core/legion, /obj/item/kitchen/knife/combat/survival, /obj/item/twohanded/kinetic_crusher, /obj/item/hierophant_club, /obj/item/twohanded/fireaxe/boneaxe)
armor = list("melee" = 40, "bullet" = 15, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 60) //a fair alternative to bone armor, requiring alternative materials and gaining a suit slot
armor = list(MELEE = 40, BULLET = 15, LASER = 30, ENERGY = 15, BOMB = 35, BIO = 0, RAD = 0, FIRE = 80, ACID = 60) //a fair alternative to bone armor, requiring alternative materials and gaining a suit slot
hoodtype = /obj/item/clothing/head/hooded/goliath
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS

Expand All @@ -656,7 +656,7 @@
icon_state = "golhood"
item_state = "golhood"
desc = "A protective & concealing hood."
armor = list("melee" = 40, "bullet" = 15, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 60)
armor = list(MELEE = 40, BULLET = 15, LASER = 30, ENERGY = 15, BOMB = 35, BIO = 0, RAD = 0, FIRE = 80, ACID = 60)
flags_inv = HIDEHAIR
flags_cover = HEADCOVERSEYES

Expand Down
43 changes: 39 additions & 4 deletions code/modules/crafting/recipes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -675,6 +675,21 @@
result = /obj/item/stack/medical/splint/tribal
category = CAT_PRIMAL

/datum/crafting_recipe/primitive_surgical_kit
name = "Primitive surgical kit"
time = 30
reqs = list(/obj/item/stack/sheet/bone = 6,
/obj/item/stack/sheet/sinew = 3)
result = list(/obj/item/retractor/primitive_retractor,
/obj/item/hemostat/primitive_hemostat,
/obj/item/cautery/primitive_cautery,
/obj/item/scalpel/primitive_scalpel,
/obj/item/primitive_saw,
/obj/item/bonegel/primitive_bonegel,
/obj/item/FixOVein/primitive_FixOVein,
/obj/item/bonesetter/primitive_bonesetter)
category = CAT_PRIMAL

/datum/crafting_recipe/bonedagger
name = "Bone Dagger"
result = /obj/item/kitchen/knife/combat/survival/bone
Expand All @@ -695,7 +710,7 @@
result = /obj/item/shield/riot/goliath
time = 6 SECONDS
reqs = list(/obj/item/stack/sheet/bone = 4,
/obj/item/stack/sheet/animalhide/goliath_hide = 3)
/obj/item/stack/sheet/animalhide/goliath_hide = 2)
category = CAT_PRIMAL

/datum/crafting_recipe/bonespear
Expand Down Expand Up @@ -798,6 +813,10 @@
category = CAT_PRIMAL
alert_admins_on_craft = TRUE

/datum/crafting_recipe/bonfire/coaltree
name = "Bonfire (coaltree)"
reqs = list(/obj/item/reagent_containers/food/snacks/grown/ash_flora/coaltree_log = 5)

/datum/crafting_recipe/rake //Category resorting incoming
name = "Rake"
time = 30
Expand Down Expand Up @@ -1485,9 +1504,9 @@
time = 5 SECONDS
reqs = list(/obj/item/clothing/suit/hooded/goliath = 1,
/obj/item/stack/sheet/animalhide/goliath_hide = 2, //2 plates for the cloak plus 2 here plus 3 for plating the armor = 7 total
/obj/item/stack/sheet/animalhide/weaver_chitin = 10,
/obj/item/stack/sheet/bone = 8,
/obj/item/stack/sheet/sinew = 10)
/obj/item/stack/sheet/animalhide/weaver_chitin = 6,
/obj/item/stack/sheet/bone = 5,
/obj/item/stack/sheet/sinew = 5)
category = CAT_PRIMAL

/datum/crafting_recipe/pathtreads
Expand Down Expand Up @@ -1619,3 +1638,19 @@
category = CAT_ROBOT
always_availible = FALSE
time = 1 SECONDS

/datum/crafting_recipe/ashrack
name = "Primitive drying rack"
result = /obj/machinery/smartfridge/drying_rack/ash
time = 15 SECONDS
reqs = list(/obj/item/stack/sheet/wood = 2,
/obj/item/stack/sheet/sinew = 1)
category = CAT_PRIMAL

/datum/crafting_recipe/nutcracker
name = "Nutcracker" //Колотушка
result = /obj/item/nutcracker
time = 4 SECONDS
reqs = list(/obj/item/stack/sheet/bone = 2,
/obj/item/stack/sheet/animalhide/weaver_chitin = 2)
category = CAT_PRIMAL
Loading

0 comments on commit fac2fa6

Please sign in to comment.