Skip to content

Commit

Permalink
Merge pull request #60 from MistakeNot4892/map/karzerfeste
Browse files Browse the repository at this point in the history
[IDB IGNORE] [MDB IGNORE] WIP for new dungeon-focused map.
  • Loading branch information
MistakeNot4892 authored Jan 4, 2025
2 parents 4cba91c + 84aa652 commit f4e81e2
Show file tree
Hide file tree
Showing 69 changed files with 100,319 additions and 21 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ jobs:
runs-on: ubuntu-22.04
strategy:
matrix:
map_path: [example, tradeship, exodus, ministation, shaded_hills, away_sites_testing, modpack_testing, planets_testing]
map_path: [example, tradeship, exodus, ministation, shaded_hills, karzerfeste, away_sites_testing, modpack_testing, planets_testing]
steps:
- uses: actions/checkout@v3
- name: Setup Cache
Expand Down
7 changes: 7 additions & 0 deletions code/game/turfs/floors/subtypes/floor_natural.dm
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,13 @@
color = "#ae9e66"
_flooring = /decl/flooring/sand

/turf/floor/rock/basalt/sand
name = "sand"
icon = 'icons/turf/flooring/sand.dmi'
icon_state = "sand0"
color = "#ae9e66"
_flooring = /decl/flooring/sand

/turf/floor/rock/sand/water
color = COLOR_SKY_BLUE
fill_reagent_type = /decl/material/liquid/water
Expand Down
5 changes: 4 additions & 1 deletion code/modules/mob/living/human/human_attackhand.dm
Original file line number Diff line number Diff line change
Expand Up @@ -228,9 +228,12 @@
rand_damage *= damage_multiplier
real_damage = max(1, real_damage)
// Apply additional unarmed effects.
attack.apply_effects(H, src, rand_damage, hit_zone)
attack.apply_attack_effects(H, src, rand_damage, hit_zone)
// Finally, apply damage to target
apply_damage(real_damage, attack.get_damage_type(), hit_zone, damage_flags=attack.damage_flags())
if(attack.apply_cooldown)
H.setClickCooldown(attack.apply_cooldown)

if(istype(ai))
ai.retaliate(user)
return TRUE
Expand Down
21 changes: 11 additions & 10 deletions code/modules/mob/living/human/unarmed_attack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
var/eye_attack_text_victim
var/list/usable_with_limbs = list(BP_L_HAND, BP_R_HAND)
var/is_starting_default = FALSE
var/apply_cooldown = DEFAULT_ATTACK_COOLDOWN

/decl/natural_attack/proc/summarize()
var/list/usable_limbs = list()
Expand Down Expand Up @@ -74,7 +75,7 @@
return damage

// Returns TRUE if further affects should be applied.
/decl/natural_attack/proc/apply_effects(mob/living/user, mob/living/target, attack_damage, zone)
/decl/natural_attack/proc/apply_attack_effects(mob/living/user, mob/living/target, attack_damage, zone)

if(target.stat == DEAD)
return FALSE
Expand Down Expand Up @@ -161,16 +162,16 @@
return (src.sharp? DAM_SHARP : 0)|(src.edge? DAM_EDGE : 0)

/decl/natural_attack/bite
name = "bite"
name = "bite"
selector_icon_state = "attack_bite"
attack_verb = list("bit")
attack_noun = list("mouth")
attack_sound = 'sound/weapons/bite.ogg'
shredding = 0
damage = 0
sharp = 0
edge = 0
usable_with_limbs = list(BP_HEAD)
attack_verb = list("bit")
attack_noun = list("mouth")
attack_sound = 'sound/weapons/bite.ogg'
shredding = 0
damage = 5
sharp = 0
edge = 0
usable_with_limbs = list(BP_HEAD)

/decl/natural_attack/bite/sharp
attack_verb = list("bit", "chomped")
Expand Down
4 changes: 2 additions & 2 deletions code/modules/mob/living/living.dm
Original file line number Diff line number Diff line change
Expand Up @@ -406,7 +406,7 @@ default behaviour is:
/mob/living/proc/update_damage_overlays(update_icons = TRUE)

// first check whether something actually changed about damage appearance
var/damage_appearance = ""
var/damage_appearance = get_overlay_state_modifier() || ""
for(var/obj/item/organ/external/O in get_external_organs())
damage_appearance += O.damage_state || "00"

Expand All @@ -426,7 +426,7 @@ default behaviour is:
continue
var/icon/DI
var/use_colour = (BP_IS_PROSTHETIC(O) ? SYNTH_BLOOD_COLOR : O.species.get_species_blood_color(src))
var/cache_index = "[O.damage_state]/[O.bodytype.type]/[O.icon_state]/[use_colour]/[O.species.name]"
var/cache_index = "[O.damage_state]/[O.bodytype.uid]/[O.icon_state]/[use_colour]/[O.species.name]"
if(!(cache_index in damage_icon_parts))
var/damage_overlay_icon = O.bodytype.get_damage_overlays(src)
if(check_state_in_icon(O.damage_state, damage_overlay_icon))
Expand Down
1 change: 1 addition & 0 deletions code/modules/mob/living/living_attackhand.dm
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
attackby(attacking_with, predator)
else
attack_animal(predator)
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
return TRUE
return FALSE

Expand Down
1 change: 1 addition & 0 deletions code/modules/mob/living/silicon/robot/robot.dm
Original file line number Diff line number Diff line change
Expand Up @@ -653,6 +653,7 @@
var/decl/species/user_species = user.get_species()
if(user_species?.can_shred(user))
attack_generic(user, rand(30,50), "slashed")
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
return TRUE
. = ..()

Expand Down
1 change: 1 addition & 0 deletions code/modules/mob/living/simple_animal/_simple_animal.dm
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,7 @@ var/global/list/simplemob_icon_bitflag_cache = list()
take_damage(dealt_damage, damage_type, damage_flags = damage_flags, inflicter = user)
user.visible_message(SPAN_DANGER("\The [user] [harm_verb] \the [src]!"))
user.do_attack_animation(src)
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
return TRUE

/mob/living/simple_animal/attackby(var/obj/item/O, var/mob/user)
Expand Down
2 changes: 1 addition & 1 deletion code/modules/species/species_attack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@
damage = 2
usable_with_limbs = list(BP_CHEST, BP_GROIN)

/decl/natural_attack/slime_glomp/apply_effects(mob/living/user, mob/living/target, attack_damage, zone)
/decl/natural_attack/slime_glomp/apply_attack_effects(mob/living/user, mob/living/target, attack_damage, zone)
. = ..()
if(.)
user.apply_stored_shock_to(target)
Expand Down
80 changes: 80 additions & 0 deletions maps/karzerfeste/areas/_area.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
/area/karzerfeste
name = "Burg Karzerfeste"
abstract_type = /area/karzerfeste
allow_xenoarchaeology_finds = FALSE
icon = 'maps/karzerfeste/areas/icons.dmi'
icon_state = "area"
base_turf = /turf/floor/rock/basalt
fishing_failure_prob = 5
fishing_results = list(
/mob/living/simple_animal/aquatic/fish = 10,
/mob/living/simple_animal/aquatic/fish/grump = 10,
/obj/item/mollusc = 5,
/obj/item/mollusc/barnacle/fished = 5,
/obj/item/mollusc/clam/fished/pearl = 3,
/obj/item/trash/mollusc_shell/clam = 1,
/obj/item/trash/mollusc_shell/barnacle = 1,
/obj/item/remains/mouse = 1,
/obj/item/remains/lizard = 1,
/obj/item/stick = 1,
/obj/item/trash/mollusc_shell = 1,
)
sound_env = GENERIC
ambience = list()
var/list/additional_fishing_results

/area/karzerfeste/Initialize()
if(additional_fishing_results)
for(var/fish in additional_fishing_results)
fishing_results[fish] = additional_fishing_results[fish]
. = ..()

/area/karzerfeste/outside
name = "\improper Wilderness"
color = COLOR_GREEN
is_outside = OUTSIDE_YES
sound_env = PLAIN
ambience = list(
'sound/effects/wind/wind_2_1.ogg',
'sound/effects/wind/wind_2_2.ogg',
'sound/effects/wind/wind_3_1.ogg',
'sound/effects/wind/wind_4_1.ogg',
'sound/effects/wind/wind_4_2.ogg',
'sound/effects/wind/wind_5_1.ogg'
)
area_blurb_category = /area/karzerfeste/outside
interior_ambient_light_modifier = -0.3
area_flags = AREA_FLAG_EXTERNAL | AREA_FLAG_IS_BACKGROUND
additional_fishing_results = list(
/mob/living/simple_animal/aquatic/fish/large = 5,
/mob/living/simple_animal/aquatic/fish/large/salmon = 5,
/mob/living/simple_animal/aquatic/fish/large/trout = 5,
/mob/living/simple_animal/aquatic/fish/large/pike = 3
)

/area/karzerfeste/outside/above
name = "\improper Heights"
color = COLOR_GRAY80

// Forest level
/area/karzerfeste/outside/forest
name = "\improper Western Forest"
sound_env = FOREST

/area/karzerfeste/outside/forest/woods
name = "\improper Western Woods"

/area/karzerfeste/outside/forest/lake
name = "\improper Western Lake"
additional_fishing_results = list(
/mob/living/simple_animal/aquatic/fish/large/bass = 5,
/mob/living/simple_animal/aquatic/fish/large/trout = 5,
/mob/living/simple_animal/aquatic/fish/large/javelin = 5,
/mob/living/simple_animal/hostile/aquatic/carp = 3,
/mob/living/simple_animal/aquatic/fish/large/koi = 1
)
color = COLOR_BLUE_GRAY

/area/karzerfeste/outside/forest/deep
name = "\improper Western Deepwoods"
color = COLOR_DARK_GREEN_GRAY
35 changes: 35 additions & 0 deletions maps/karzerfeste/areas/caves.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/area/karzerfeste/caves
name = "\improper Subterrain"
color = COLOR_GRAY40
is_outside = OUTSIDE_NO
ambience = list(
'sound/ambience/ambimine.ogg',
'sound/ambience/song_game.ogg'
)
area_blurb_category = /area/karzerfeste/caves
sound_env = CAVE
area_flags = AREA_FLAG_IS_BACKGROUND

/area/karzerfeste/caves/poi
name = "\improper Subterrain - Points Of Interest"

/area/karzerfeste/outside/caves
name = "\improper Subterrain Chasm"
color = COLOR_GRAY80
sound_env = CAVE

/area/karzerfeste/caves/surface_east
name = "\improper Eastern Mountain Caverns"
color = COLOR_GRAY80

/area/karzerfeste/caves/surface_west
name = "\improper Western Mountain Caverns"
color = COLOR_GRAY80

/area/karzerfeste/caves/upper_east
name = "\improper Upper Eastern Caverns"
color = COLOR_GRAY80

/area/karzerfeste/caves/upper_west
name = "\improper Upper Western Caverns"
color = COLOR_GRAY40
Binary file added maps/karzerfeste/areas/icons.dmi
Binary file not shown.
59 changes: 59 additions & 0 deletions maps/karzerfeste/areas/keep.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/area/karzerfeste/keep
name = "\improper Keep Interior"
color = COLOR_GREEN_GRAY

/area/karzerfeste/keep/gatehouse
name = "\improper Eastern Gatehouse"
color = COLOR_BLUE_GRAY

/area/karzerfeste/keep/gatehouse/west
name = "\improper Western Gatehouse"
color = COLOR_BLUE_GRAY

/area/karzerfeste/keep/tower
name = "\improper Northwestern Tower"
color = COLOR_CIVIE_GREEN

/area/karzerfeste/keep/tower/two
name = "\improper Northeastern Tower"
color = COLOR_CIVIE_GREEN

/area/karzerfeste/keep/tower/three
name = "\improper Southwestern Tower"
color = COLOR_CIVIE_GREEN

/area/karzerfeste/keep/tower/four
name = "\improper Southeastern Tower"
color = COLOR_CIVIE_GREEN

/area/karzerfeste/outside/keep
name = "\improper Keep Exterior"
color = COLOR_GREEN

/area/karzerfeste/outside/keep/courtyard
name = "\improper Northern Courtyard"
color = COLOR_GREEN

/area/karzerfeste/outside/keep/above
name = "\improper Keep Heights"
color = COLOR_GREEN

/area/karzerfeste/outside/keep/gatehouse
name = "\improper Upper Gatehouse"
color = COLOR_BLUE_GRAY

/area/karzerfeste/outside/keep/tower
name = "\improper Upper Northwestern Tower"
color = COLOR_BLUE_GRAY

/area/karzerfeste/outside/keep/tower/two
name = "\improper Upper Northeastern Tower"
color = COLOR_BLUE_GRAY

/area/karzerfeste/outside/keep/tower/three
name = "\improper Upper Southwestern Tower"
color = COLOR_BLUE_GRAY

/area/karzerfeste/outside/keep/tower/four
name = "\improper Upper Southeastern Tower"
color = COLOR_BLUE_GRAY
4 changes: 4 additions & 0 deletions maps/karzerfeste/areas/road.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/area/karzerfeste/outside/road
name = "\improper South Road"
color = COLOR_CYAN

47 changes: 47 additions & 0 deletions maps/karzerfeste/areas/ward.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
/area/karzerfeste/ward
name = "\improper Karzerfeste Outer Ward"
color = COLOR_BRONZE

/area/karzerfeste/ward/wall
name = "\improper Western Outer Wall"
color = COLOR_BROWN

/area/karzerfeste/ward/wall/two
name = "\improper Southwestern Outer Wall"
color = COLOR_BROWN

/area/karzerfeste/ward/wall/three
name = "\improper Central Outer Wall"
color = COLOR_BROWN

/area/karzerfeste/ward/wall/four
name = "\improper Eastern Outer Wall"
color = COLOR_BROWN

/area/karzerfeste/ward/shrine
name = "\improper Western Shrine"
color = COLOR_BLUE

/area/karzerfeste/ward/shrine/east
name = "\improper Eastern Shrine"
color = COLOR_CYAN_BLUE

/area/karzerfeste/outside/ward
name = "\improper Karzerfest Outer Ward"
color = COLOR_BROWN

/area/karzerfeste/outside/ward/wall
name = "\improper Upper Western Outer Wall"
color = COLOR_BROWN

/area/karzerfeste/outside/ward/wall/two
name = "\improper Upper Southwestern Outer Wall"
color = COLOR_BROWN

/area/karzerfeste/outside/ward/wall/three
name = "\improper Upper Central Outer Wall"
color = COLOR_BROWN

/area/karzerfeste/outside/ward/wall/four
name = "\improper Upper Eastern Outer Wall"
color = COLOR_BROWN
Loading

0 comments on commit f4e81e2

Please sign in to comment.