Skip to content

Commit

Permalink
Kaizoku, The Sanctuary Beyond the Storm - CHAPTER I (#1264)
Browse files Browse the repository at this point in the history
Kaizoku DLC content part 1 (initial merge)
  • Loading branch information
Catalaria authored Jan 28, 2025
1 parent a1787e1 commit 1791e19
Show file tree
Hide file tree
Showing 492 changed files with 11,056 additions and 498 deletions.
12 changes: 12 additions & 0 deletions code/__DEFINES/colors.dm
Original file line number Diff line number Diff line change
Expand Up @@ -182,3 +182,15 @@
if("Dunked in water")
return CLOTHING_WET


//Kaizoku Assets.

#define CLOTHING_RONIN "#861e1e"
#define CLOTHING_EIDOLON "#613a3f"
#define CLOTHING_TOWERYAKKO "#804d97"
#define CLOTHING_KABUKIMONO "#9b874f"

#define CLOTHING_THUNDER "#be8b48"
#define CLOTHING_STORM "#1a2677"
#define CLOTHING_OCEAN "#56928a"
#define CLOTHING_ISLAND "#bd3541"
4 changes: 4 additions & 0 deletions code/__DEFINES/combat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -328,3 +328,7 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list(
#define BULLET_ACT_FORCE_PIERCE "PIERCE" //It pierces through the object regardless of the bullet being piercing by default.
#define BULLET_ACT_TURF "TURF" //It hit us but it should hit something on the same turf too. Usually used for turfs.
#define BULLET_ACT_MISS "MISS"

//Kaizoku Assets.

#define MANCATCHER /datum/intent/polearm/thrust/mancatcher
1 change: 1 addition & 0 deletions code/__DEFINES/inventory.dm
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,7 @@
#define FACE (MOUTH | NOSE | EYES)
#define FULL_HEAD (HEAD | MOUTH | NOSE | EYES | EARS | HAIR)
#define HEAD_EXCEPT_MOUTH (HEAD | NOSE | EYES | EARS | HAIR)
#define HEAD_EXCEPT_EYES (HEAD | MOUTH | NOSE | EARS | HAIR)
#define HEAD_NECK (HEAD | MOUTH | NOSE | EYES | EARS | HAIR | NECK)
#define BELOW_HEAD (CHEST | GROIN | VITALS | ARMS | HANDS | LEGS | FEET)
#define BELOW_CHEST (GROIN | VITALS | LEGS | FEET) //for water
Expand Down
4 changes: 4 additions & 0 deletions code/__DEFINES/is_helpers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,10 @@ GLOBAL_LIST_INIT(our_forest_sex, typecacheof(list(
#define issnowelf(A) (is_species(A, /datum/species/elf/snow))
#define ishalfelf(A) (is_species(A, /datum/species/human/halfelf))
#define istiefling(A) (is_species(A, /datum/species/tieberian))
#define isabyssariad(A) (is_species(A, /datum/species/abyssariad))
#define ischangeling(A) (is_species(A, /datum/species/abyssariad/changeling))
#define isogrun(A) (is_species(A, /datum/species/abyssariad/ogrun))
#define isskylancer(A) (is_species(A, /datum/species/abyssariad/skylancer))

//more carbon mobs
#define ismonkey(A) (istype(A, /mob/living/carbon/monkey))
Expand Down
38 changes: 38 additions & 0 deletions code/__DEFINES/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -466,3 +466,41 @@

//SPECIAL SKIN TONES
#define SKIN_COLOR_ROT "878f79"

//DEFAULT ABYSSARIAD SKIN TONES
#define SKIN_COLOR_OATHBOUND_MUQIAN "ffe0d1"
#define SKIN_COLOR_OATHBOUND_KAIZOKU "fcccb3"
#define SKIN_COLOR_OATHBOUND_SHUHEN "edc6b3"
#define SKIN_COLOR_OATHBOUND_LINYOU "e2b9a3"
#define SKIN_COLOR_OATHBOUND_DUSTWALKER "d9a284"
#define SKIN_COLOR_WARPCASTER_MUQIAN "c9a893"
#define SKIN_COLOR_WARPCASTER_KAIZOKU "ba9882"
#define SKIN_COLOR_WARPCASTER_SHUHEN "99745d"
#define SKIN_COLOR_WARPCASTER_LINYOU "745441"
#define SKIN_COLOR_WARPCASTER_DUSTWALKER "302017"

//SKYLANCER UNIQUE SKIN TONE
#define SKIN_COLOR_PEPPERSBLOW "771111"

//OGRE SKIN TONES
#define SKIN_COLOR_DEFIANCE "bb5155" //RED DEFAULT
#define SKIN_COLOR_DEFIANCE_SANGUINE "771111"
#define SKIN_COLOR_STABILITY "6a9479"
#define SKIN_COLOR_STABILITY_INTELLECT "286940"
#define SKIN_COLOR_SERENITY "65a9ad"
#define SKIN_COLOR_SERENITY_PEACE "5958a3"
#define SKIN_COLOR_AUDACY "aa8e3a"
#define SKIN_COLOR_AUDACY_MYSTERY "635834"
#define SKIN_COLOR_BLANK_PURIFICATED "d8e1e2"


//UNDINE SKIN TONES
#define SKIN_COLOR_SWAMPCLAN "728400" //GREEN DEFAULT
#define SKIN_COLOR_JUNGLECLAN "7a5e1b"
#define SKIN_COLOR_LEAFCLAN "5ea889"
#define SKIN_COLOR_BOGCLAN "1b7a5e"
#define SKIN_COLOR_FORESTCLAN "5FB098"
#define SKIN_COLOR_SHADOWCLAN "60609e"
#define SKIN_COLOR_FIREBLOOMCLAN "E26846"
#define SKIN_COLOR_ABYSSALCLAN "a198b8"
s
4 changes: 2 additions & 2 deletions code/__DEFINES/roguetown.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//used in various places
#define ALL_RACES_LIST list("human", "dwarf", "elf", "tiefling", "aasimar", "orc", "zizombie")
#define ALL_RACES_LIST list("human", "dwarf", "elf", "tiefling", "aasimar", "orc", "zizombie", "abyssariad")

#define ALL_PLAYER_RACES_BY_NAME list("Humen", "Half-Elf", "Dark Elf", "Elf", "Dwarf","Tiefling", "Aasimar")
#define ALL_PLAYER_RACES_BY_NAME list("Humen", "Half-Elf", "Dark Elf", "Elf", "Dwarf","Tiefling", "Aasimar", "Changeling", "Skylancer", "Ogrun", "Undine")

#define ALL_TEMPLE_PATRONS list(/datum/patron/divine/astrata, /datum/patron/divine/noc, /datum/patron/divine/eora, /datum/patron/divine/pestra, /datum/patron/divine/malum)
#define ALL_CLERIC_PATRONS list(/datum/patron/divine/astrata, /datum/patron/divine/noc, /datum/patron/divine/eora, /datum/patron/divine/necra, /datum/patron/divine/pestra, /datum/patron/divine/dendor, /datum/patron/divine/malum)
Expand Down
2 changes: 2 additions & 0 deletions code/__DEFINES/say.dm
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@
#define SPAN_DELF "delf"
#define SPAN_HELL "hellspeak"
#define SPAN_BEAST "beast"
#define SPAN_ABYSSAL "abyssal"


//bitflag #defines for return value of the radio() proc.
#define ITALICS 1
Expand Down
3 changes: 3 additions & 0 deletions code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@
#define TRAIT_SHOCKIMMUNE "Shock Immunity"
#define TRAIT_LONGSTRIDER "Longstrider"
#define TRAIT_MOB_FIRE_IMMUNE "Fire Immune" // Not actual full immunity but reduces effect of fire_act()
#define TRAIT_KAIZOKU "Foglander Cultured"


#define TRAIT_BASHDOORS "bashdoors"
#define TRAIT_NOMOOD "no_mood"
Expand Down Expand Up @@ -112,6 +114,7 @@ GLOBAL_LIST_INIT(roguetraits, list(
TRAIT_INTRAINING = "I'm going to be a knight someday! I can use training dummies more effectively than others.",
TRAIT_MALUMFIRE = "My hands are blessed by Malum to forge items of superb quality.",
TRAIT_MOB_FIRE_IMMUNE = span_info("I am not easily burned by flames."),
TRAIT_KAIZOKU = "Whether by birth or by learning, I've inherited the Islander ways instead of Imperial culture.",
))

// trait accessor defines
Expand Down
3 changes: 3 additions & 0 deletions code/controllers/subsystem/mapping.dm
Original file line number Diff line number Diff line change
Expand Up @@ -271,11 +271,14 @@ SUBSYSTEM_DEF(mapping)
++space_levels_so_far
add_new_zlevel("Empty Area [space_levels_so_far]", ZTRAITS_SPACE)

/* // Deprecated tg code, we don't have lavaland, thus we don't load it.
// load mining
if(config.minetype == "lavaland")
LoadGroup(FailedZs, "Lavaland", "map_files/Mining", "Lavaland.dmm", default_traits = ZTRAITS_LAVALAND)
else if (!isnull(config.minetype))
INIT_ANNOUNCE("WARNING: An unknown minetype '[config.minetype]' was set! This is being ignored! Update the maploader code!")
*/

#endif

if(LAZYLEN(FailedZs)) //but seriously, unless the server's filesystem is messed up this will never happen
Expand Down
15 changes: 15 additions & 0 deletions code/controllers/subsystem/rogue/devotion.dm
Original file line number Diff line number Diff line change
Expand Up @@ -160,3 +160,18 @@
to_chat(src, "<font color='purple'>I gained [prayersesh] devotion!</font>")
return
to_chat(src, "<font color='purple'>I gained [prayersesh] devotion!</font>")

//kaizoku asset

/datum/devotion/cleric_holder/proc/grant_spells_sohei(mob/living/carbon/human/H)
if(!H || !H.mind)
return

var/datum/patron/A = H.patron
var/list/spelllist = list(/obj/effect/proc_holder/spell/invoked/icebind, A.t0)
for(var/spell_type in spelllist)
if(!spell_type || H.mind.has_spell(spell_type))
continue
H.mind.AddSpell(new spell_type)
level = CLERIC_T0
max_devotion = 150
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,11 @@
"Dwarf",
"Tiefling",
"Dark Elf",
"Aasimar"
"Aasimar",
"Changeling",
"Skylancer",
"Ogrun",
"Undine"
)
maximum_possible_slots = 0

Expand Down
8 changes: 8 additions & 0 deletions code/datums/components/crafting/crafting.dm
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,14 @@
if(M.density)
to_chat(user, "<span class='warning'>Something in the way.</span>")
return
if(R.req_kaizoku) //Requires Fog-island/Heartfell culture.
if(HAS_TRAIT(user, TRAIT_KAIZOKU))
to_chat(user, "<span class='warning'>I literally cannot fathom how imperials do this. Case hardening? Riveting? Fullering? Fluting? What is that?</span>")
return //If abyssariad of someone from Heartfell, you can't make imperial crafts. Hopefully this will be brought over to Smithing too.
if(R.req_antikaizoku) //Requires Imperial or 'else' culture.
if(!HAS_TRAIT(user, TRAIT_KAIZOKU))
to_chat(user, "<span class='warning'>I literally cannot fathom how islanders do this. Differential hardening? Steel folding? Lost-wax casting? Tatami? What is that?</span>")
return //If not Abyssariad or someone from Heartfell, you can't make islander crafts. Hopefully this will be brought over to Smithing too.
if(R.req_table)
if(!(locate(/obj/structure/table) in T))
to_chat(user, "<span class='warning'>I need to make this on a table.</span>")
Expand Down
2 changes: 2 additions & 0 deletions code/datums/components/crafting/recipes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
var/craftdiff = 1
var/sellprice = 0
//crafting diff, every diff removes 25% chance to craft
var/req_kaizoku = FALSE
var/req_antikaizoku = FALSE
/*
/datum/crafting_recipe/example
name = ""
Expand Down
6 changes: 6 additions & 0 deletions code/datums/gods/patrons/divine_pantheon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@
flaws= "Reckless, Stubborn, Destructive"
worshippers = "Sailors of the Sea and Sky, Horrid Sea-Creachers, Fog Islanders"
sins = "Fear, Hubris, Trying to Tame the Seas"
t0 = /obj/effect/proc_holder/spell/invoked/lesser_heal/abyssal
t1 = /obj/effect/proc_holder/spell/invoked/projectile/purify
t2 = /obj/effect/proc_holder/spell/invoked/icebind
t3 = null
// t3 = /obj/effect/proc_holder/spell/invoked/elemental //Not finished.


/datum/patron/divine/necra
name = "Necra"
Expand Down
90 changes: 90 additions & 0 deletions code/datums/status_effects/rogue/debuff.dm
Original file line number Diff line number Diff line change
Expand Up @@ -405,3 +405,93 @@
name = "Chilled"
desc = "I can barely feel my limbs!"
icon_state = "chilled"


//////////////////////Kaizoku stuff//////////////////

//frozentomb

/datum/status_effect/abyssaltomb //Abyssor-followers should instantly break away from this coffin.
id = "abyssor_frozen"
status_type = STATUS_EFFECT_UNIQUE
duration = -1
examine_text = "You've been frozen within an abyssal tomb."
alert_type = /atom/movable/screen/alert/status_effect/frozen
var/obj/structure/abyssaltomb/tomb
var/attempts = 0 // special feature that increases difficulty with each failed struggle attempt against the ice coffin. Or that's what I intended for it to be.

/atom/movable/screen/alert/status_effect/frozen
name = "Abyssal Submission"
desc = "Imprisoned by frozen tides, beneath the deep blue."
icon_state = "intomb"
icon = 'icons/roguetown/kaizoku/misc/screen_alert.dmi'

//Normal Freeze

/atom/movable/screen/alert/status_effect/debuff/freezing //the abyss is cold.
name = "Abyssal Frostnip"
desc = "<span class='boldwarning'>Frost-bitten and touched by the ancient god, seeping through time and existence. The god feels, spreads and carves your skin.</span>\n" //that's abyssor.
icon_state = "freezing"
icon = 'icons/roguetown/kaizoku/misc/screen_alert.dmi'

/atom/movable/screen/alert/status_effect/debuff/freezing/severe //the abyss is VERY cold.
name = "Abyssal Frostbite"
desc = "<span class='boldwarning'>It carries his touch, the cold for those who trespassed his domain. Ice crystals carves patterns upon where he gazes, the stare is on you.</span>\n" //that's abyssor.
icon_state = "freezing_severe"
icon = 'icons/roguetown/kaizoku/misc/screen_alert.dmi'

/datum/status_effect/debuff/freezing
id = "freezing"
alert_type = /atom/movable/screen/alert/status_effect/debuff/freezing
duration = 30 SECONDS
effectedstats = list("speed" = -3, "endurance" = -2)

/datum/status_effect/debuff/freezing/tick()
if(iscarbon(owner))
var/mob/living/carbon/C = owner
C.adjustOxyLoss(-6, 0) //it will actually allow you to breath underwater.
if(prob(50))
C.adjustFireLoss(2)
C.Jitter(3)

/datum/status_effect/debuff/freezing/on_apply()
if(iscarbon(owner))
var/mob/living/carbon/C = owner
to_chat(C, "<span class='info'>The frigid spike manifests supernatural cold within me.</span>")

/datum/status_effect/debuff/freezing/on_remove()
if(iscarbon(owner))
var/mob/living/carbon/C = owner
C.remove_status_effect(/datum/status_effect/debuff/freezing)
to_chat(C, "<span class='info'>I feel the suffocating cold vanishing, as body warmth returns to me.</span>")
// severe freezing

/datum/status_effect/debuff/freezing
id = "freezing"
alert_type = /atom/movable/screen/alert/status_effect/debuff/freezing/severe
duration = 30 SECONDS
effectedstats = list("speed" = -5, "endurance" = -4, "strength" = -2)

/datum/status_effect/debuff/freezing/severe/on_apply()
if(iscarbon(owner))
var/mob/living/carbon/C = owner
if(C.has_status_effect(/datum/status_effect/debuff/freezing))
C.remove_status_effect(/datum/status_effect/debuff/freezing)
to_chat(C, "<span class='info'>The biting cold intensified. Cold, abyssal tendrils roams and invades the surface of my skin.</span>")
else
to_chat(C, "<span class='info'>Torturous, carving frost upon my core! It reaches down into my spine in soul-rending agony!</span>")
return ..()

/datum/status_effect/debuff/freezing/severe/on_remove()
if(iscarbon(owner))
var/mob/living/carbon/C = owner
C.apply_status_effect(/datum/status_effect/debuff/freezing)// Allows transition from severe freezing to normal freezing. Your body is warming up.
to_chat(C, "<span class='info'>The excruciating icy tendrils retreats, leaving behind a bone-chilling cold weighting upon my muscles.</span>")

/datum/status_effect/debuff/freezing/severe/tick()
if(iscarbon(owner))
var/mob/living/carbon/C = owner
C.adjustOxyLoss(-6, 0) // Same underwater breathing
if(prob(50))
C.adjustFireLoss(4)
C.Jitter(3)
10 changes: 10 additions & 0 deletions code/datums/stress/negative_events.dm
Original file line number Diff line number Diff line change
Expand Up @@ -288,3 +288,13 @@
timer = 60 MINUTES
stressadd = 1
desc = "<span class='red'>I feel useless...</span>"

/datum/stressevent/raider
timer = 1 MINUTES
stressadd = 1
desc = "<span class='red'>Vicious sea raider, they prey on fellow men.</span>"

/datum/stressevent/whaler
timer = 1 MINUTES
stressadd = 1
desc = "<span class='red'>Filthy corrupted whaler. Never forget the Storm Lord.</span>"
19 changes: 19 additions & 0 deletions code/game/objects/effects/effect_system/effects_smoke.dm
Original file line number Diff line number Diff line change
Expand Up @@ -336,3 +336,22 @@
smoke.effect_type = smoke_type
smoke.set_up(range, location)
smoke.start()

/////////////////////////////////////////////
// kaizoku stupid smoke
/////////////////////////////////////////////

/obj/effect/particle_effect/smoke/bad/stupid
lifetime = 20
color = "#1b802c"
opaque = FALSE

/obj/effect/particle_effect/smoke/bad/stupid/smoke_mob(mob/living/carbon/M)
if(..())
M.add_nausea(4)
M.adjustToxLoss(5, 0)
M.emote("cough")
return 1

/datum/effect_system/smoke_spread/bad/stupid
effect_type = /obj/effect/particle_effect/smoke/bad/stupid
Loading

0 comments on commit 1791e19

Please sign in to comment.