Skip to content

Commit

Permalink
Merge pull request #3 from Catalaria/Kaizoku-2.0
Browse files Browse the repository at this point in the history
Kaizoku 2.0
  • Loading branch information
Catalaria authored Nov 3, 2024
2 parents 1ab78b0 + a92bd26 commit ee80888
Show file tree
Hide file tree
Showing 297 changed files with 6,912 additions and 637 deletions.
3 changes: 3 additions & 0 deletions code/__DEFINES/DNA.dm
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,9 @@
#define NO_ORGAN_FEATURES 22
#define NO_BODYPART_FEATURES 23

//Abyssariad only
#define KITSUNE_TONGUE 24

//organ defines
#define STANDARD_ORGAN_THRESHOLD 100
#define STANDARD_ORGAN_HEALING 0.001
Expand Down
2 changes: 1 addition & 1 deletion code/__DEFINES/customization/sprite_accessory.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@
#define KEY_FACE_HAIR_COLOR "facehair"
#define KEY_EYE_COLOR "eye"
#define KEY_SKIN_COLOR "skin"
#define KEY_CHEST_COLOR "chest"
#define KEY_CHEST_COLOR "chest"
6 changes: 6 additions & 0 deletions code/__DEFINES/is_helpers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,12 @@ GLOBAL_LIST_INIT(our_forest_sex, typecacheof(list(
#define ishalfelf(A) (is_species(A, /datum/species/human/halfelf))
#define istiefling(A) (is_species(A, /datum/species/tieberian))

//RT Kaizoku Species
#define isabyssariad(A) (is_species(A, /datum/species/abyssariad))
#define iskitsune(A) (is_species(A, /datum/species/abyssariad/kitsune))
#define isoni(A) (is_species(A, /datum/species/abyssariad/oni))
#define istengu(A) (is_species(A, /datum/species/abyssariad/tengu))

//more carbon mobs
#define ismonkey(A) (istype(A, /mob/living/carbon/monkey))

Expand Down
2 changes: 2 additions & 0 deletions code/__DEFINES/medical.dm
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,12 @@
#define ORGAN_SLOT_PARASITE_EGG "parasite_egg"
#define ORGAN_SLOT_REGENERATIVE_CORE "regen_core"


#define BODYPART_FEATURE_HAIR "hair"
#define BODYPART_FEATURE_FACIAL_HAIR "facehair"
#define BODYPART_FEATURE_ACCESSORY "accessory"
#define BODYPART_FEATURE_FACE_DETAIL "facedetail"
#define BODYPART_FEATURE_KITSUNE_TONGUE "kitsune_tongue"

//flags for requirements for a surgery step
#define SURGERY_BLOODY (1<<0)
Expand Down
28 changes: 28 additions & 0 deletions code/__DEFINES/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -464,3 +464,31 @@

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

#define SKIN_COLOUR_NOTHING "ffffff"

//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"

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

//ONI 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"
3 changes: 1 addition & 2 deletions code/__DEFINES/roguetown.dm
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
//used in various places
#define ALL_RACES_LIST list("human", "dwarf", "elf", "tiefling", "aasimar", "orc", "zizombie", "abyssariad")
#define ALL_RACES_LIST list("human", "dwarf", "elf", "tiefling", "aasimar", "orc", "zizombie", "abyssariad")

#define ALL_RACES_LIST_NAMES list("Humen", "Half-Elf", "Dark Elf", "Elf", "Dwarf","Tiefling", "Aasimar", "Kitsune", "Tengu", "Oni", "Kappa")


#define ALL_CLERIC_PATRONS list(/datum/patron/divine/astrata, /datum/patron/divine/noc, /datum/patron/divine/eora, /datum/patron/divine/dendor, /datum/patron/divine/necra, /datum/patron/divine/pestra)
#define ALL_TEMPLAR_PATRONS list(/datum/patron/divine/astrata, /datum/patron/divine/noc, /datum/patron/divine/dendor, /datum/patron/divine/necra, /datum/patron/divine/pestra)

Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/say.dm
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
#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
45 changes: 43 additions & 2 deletions code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#define TRAIT_ASSASSIN "Assassin Training" //used for the assassin drifter's unique mechanics.
#define TRAIT_BARDIC_TRAINING "Bardic Training"

#define TRAIT_KAIZOKU "Foglander Cultured"
#define TRAIT_MISSING_NOSE "Missing Nose" //halved stamina regeneration
#define TRAIT_DISFIGURED "Disfigured"
#define TRAIT_SPELLCOCKBLOCK "Bewitched" //prevents spellcasting
Expand Down Expand Up @@ -78,8 +79,7 @@ GLOBAL_LIST_INIT(roguetraits, list(
TRAIT_LEECHIMMUNE = "Leeches are reluctant to bite me.",
TRAIT_ASSASSIN = "My soul has been tainted by the god of murder.",
TRAIT_RETARD_ANATOMY = "My anatomy is inhumen, preventing me from wearing hats and shoes.",
TRAIT_MALUMFIRE = "My hands are blessed by Malum to forge items of superb quality.",
TRAIT_BARDIC_TRAINING = "Xylixian inspiration grants my songs boons and ailments."
TRAIT_MALUMFIRE = "My hands are blessed by Malum to forge items of superb quality."
))

// trait accessor defines
Expand Down Expand Up @@ -346,3 +346,44 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define SLEEPING_CARP_TRAIT "sleeping_carp"
#define MADE_UNCLONEABLE "made-uncloneable"
#define TIMESTOP_TRAIT "timestop"



/*
/datum/species/abyssariad/on_species_gain(mob/living/carbon/C, datum/species/old_species) //make abyssariads PQ locked
..()
RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech)
C.grant_language(/datum/language/common)
C.grant_language(/datum/language/abyssal)
C.cmode_music = 'sound/music/combatabyssariad.ogg'
C.mind.teach_anvil_recipe(/datum/anvil_recipe/armor/platemask/menpo)
C.verbs |= /mob/proc/praise
C.verbs |= /mob/proc/yoo
C.verbs |= /mob/proc/throatsing
ADD_TRAIT(C, TRAIT_KAIZOKU, TRAIT_GENERIC) //Cultural Trait. Must not be considered a 'buff' or 'debuff'.
/obj/item/book/granter/crafting_recipe
var/list/crafting_recipe_types = list()
if(HAS_TRAIT(user, TRAIT_FREERUNNING))
/obj/item/book/granter/crafting_recipe/on_reading_finished(mob/user)
. = ..()
if(!user.mind)
return
for(var/crafting_recipe_type in crafting_recipe_types)
var/datum/crafting_recipe/R = crafting_recipe_type
user.mind.teach_crafting_recipe(crafting_recipe_type)
to_chat(user,"<span class='notice'>I learned how to make [initial(R.name)].</span>")
/obj/item/book/granter/crafting_recipe/cooking_sweets_101
name = "Cooking Desserts 101"
desc = ""
crafting_recipe_types = list(
/datum/crafting_recipe/food/mimetart,
/datum/crafting_recipe/food/berrytart,
/datum/crafting_recipe/food/cocolavatart,
/datum/crafting_recipe/food/clowncake,
/datum/crafting_recipe/food/vanillacake
*/
3 changes: 2 additions & 1 deletion code/__HELPERS/global_lists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, GLOB.body_markings_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/lizard, GLOB.tails_list_lizard)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/lizard, GLOB.animated_tails_list_lizard)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tongue/kitsune, GLOB.tongue_list_kitsune)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tongue_animated/kitsune, GLOB.animated_tongue_list_kitsune)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, GLOB.tails_list_human)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/human, GLOB.animated_tails_list_human)
init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, GLOB.snouts_list)
Expand All @@ -38,7 +40,6 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/caps, GLOB.caps_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_wings, GLOB.moth_wings_list)


//Species
for(var/spath in subtypesof(/datum/species))
var/datum/species/S = new spath()
Expand Down
2 changes: 2 additions & 0 deletions code/__HELPERS/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, GLOB.tails_list_human)
if(!GLOB.tails_list_lizard.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/lizard, GLOB.tails_list_lizard)
if(!GLOB.tongue_list_kitsune.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tongue/kitsune, GLOB.tongue_list_kitsune)
if(!GLOB.snouts_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, GLOB.snouts_list)
if(!GLOB.horns_list.len)
Expand Down
2 changes: 2 additions & 0 deletions code/_globalvars/lists/flavor_misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ GLOBAL_LIST_EMPTY(socks_list) //stores /datum/sprite_accessory/socks indexed by
GLOBAL_LIST_EMPTY(body_markings_list)
GLOBAL_LIST_EMPTY(tails_list_lizard)
GLOBAL_LIST_EMPTY(animated_tails_list_lizard)
GLOBAL_LIST_EMPTY(tongue_list_kitsune)
GLOBAL_LIST_EMPTY(animated_tongue_list_kitsune)
GLOBAL_LIST_EMPTY(snouts_list)
GLOBAL_LIST_EMPTY(horns_list)
GLOBAL_LIST_EMPTY(frills_list)
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 can't 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 it.
if(R.req_antikaizoku) //Requires Imperial or 'else' culture.
if(HAS_TRAIT(user, TRAIT_KAIZOKU))
to_chat(user, "<span class='warning'>I literally can't fanthom how whalers and imperials do this. Case hardening? Riveting? Fullering? Fluting? What is that?</span>")
return //If abyssariad of someone from Heartfell, you can't make it.
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/pin_removal
name = "Pin Removal"
Expand Down
9 changes: 9 additions & 0 deletions code/datums/gods/faiths/r_abyssanctum.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/datum/faith/reactionary_abyssanctum
name = "Reactionary Abyssanctum"
desc = "Never fear the primordial soup, as it is the TRUE progenitor of all.\n\
We are the Champions Loyalist distrusting of the Pantheonistic illusions. Ever if our breathen fell into their false words of unity, we still remain steadfast.\
Only the one who fed from Weeping God's tears is elected as the Godhead by action alone. Astrata is all but a false idol for fools. \
Feed the ocean, it grows in size and power. Feed the stars, it becomes the chaotic all-swallowing dark globe of destruction. \
So we shall raid, conquer and purify - what we did with demons, we shall do with those who does not bow to the ocean's will."
godhead = /datum/patron/abyssanctum/tideweavers //actually Abyssor, but since it isn't how this code works...
preference_accessible = FALSE
2 changes: 1 addition & 1 deletion code/datums/gods/patrons/divine_pantheon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -102,4 +102,4 @@
t0 = /obj/effect/proc_holder/spell/invoked/lesser_heal
t1 = /obj/effect/proc_holder/spell/invoked/projectile/eoracurse
t2 = /obj/effect/proc_holder/spell/invoked/bud
t3 = null
t3 = null
49 changes: 49 additions & 0 deletions code/datums/gods/patrons/r_abyssanctum.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/datum/patron/abyssanctum //Content for my next work: Abyssariad Antags.
name = null
associated_faith = /datum/faith/reactionary_abyssanctum
confess_lines = list(
"ASTRATA IS NOTHING BUT A FALSE IDOL!",
"THE EIGHT DIVINES YOU CALL GODS ARE NOTHING SHORT OF CORRUPT PLAGUE!",
"ABYSSOR IS THE ONLY ONE WORTHY OF THE THRONE!",
"THE WEEPING GOD EMPOWERED THE TRUE GODHEAD OF THIS WORLD!"
)

/datum/patron/abyssanctum/tideweavers
name = "The Tideweaver branch"
domain = "Warrior sect of Abyssanctum, defenders and enforcers. Performs military expeditions"
desc = "To navigate one must adapt to the rhythms of the ocean. The whalers cannot understand cooperation, only conquest, so we must show them for what conquest is actually for."
flaws = "Reckless, Stubborn, Destructive"
worshippers = "Soheis, Hwarangs and any Warrior monk in general"
sins = "Fear, Hubris, Dishonor, Trying to tame water and storms"
confess_lines = list(
"ABYSSOR BE PRAISED! THE TEN-SIDED DICE OF FATE CALLS IT.",
"TELL ME, LITTLE FOLLOWER OF WEEPING GOD. HOW IT FEELS TO BE REPLACED?",
"DO YOU THINK HE WILL COME BACK? YOUR WEEPING GOD IS NOTHING BUT THE PAST!"
)

/datum/patron/abyssanctum/curators
name = "The Curator Branch"
domain = "Social sect of Abyssanctum, healers, caretakers of knowledge. Directly manifests Abyssor's will."
desc = "The whispers of the sea holds secrets that will lead any mortal inzane. To allow the frail mind to understand, we must digest it down to the world."
flaws = "Reckless, Stubborn, Destructive"
worshippers = "Abyssariad Sea Explorers, Tome Wardens, Abyssanctum Acolytes"
sins = "Fear, Hubris, Dishonor, Trying to tame water and storms"
confess_lines = list(
"You are as worthless as a summer ant, and SHALL NEVER KNOW THE TRUTH IN MY MIND!",
"Your fate will remain foggy. Forever. Abyssor, witness my glory!",
"The flow of the ocean has all you need. You'd better drown yourself NOW!",
"Drown yourself, so you can be reborn as a Abyssariad as YOU should. You plagued freak."
)

/datum/patron/abyssanctum/purifiers
name = "Purifier Branch"
domain = "Purifying sect of Abyssanctum, frequently called upon to put an end on paranormal activities- from heretics, demons and dragons."
desc = "The tides wash away the impurities of the land; As just like the tides, we cleanse the world of this corruption."
flaws = "Reckless, Stubborn, Destructive"
worshippers = "Anyone specialized in demon/dragon slaying, exorcism, wisp-capturing, soul-draining, and mana-feeding"
sins = "Fear, Hubris, Dishonor, Trying to tame water and storms"
confess_lines = list(
"I shall PURIFY your soul from this PANTHEONISTIC TAINT.",
"Go on, punish me. Your soul will be the next thing that will be on my hands!",
"You believe your FUTILE GODS are UNTAINTED? Try harder to make me laugh. You're failing on this."
)
22 changes: 22 additions & 0 deletions code/datums/status_effects/rogue/roguebuff.dm
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,11 @@
desc = "<span class='nicegreen'>I am tripping balls.</span>\n"
icon_state = "acid"

/atom/movable/screen/alert/status_effect/debuff/fleshmerge
name = "Corruption"
desc = "<span class='nicegreen'>Something... is not right...</span>\n"
icon_state = "acid"

/datum/status_effect/buff/ozium
id = "ozium"
alert_type = /atom/movable/screen/alert/status_effect/buff/druqks
Expand All @@ -99,6 +104,23 @@
var/mob/living/carbon/C = owner
C.remove_stress(/datum/stressevent/ozium)

/datum/status_effect/buff/bliss
id = "corruption bliss"
alert_type = /atom/movable/screen/alert/status_effect/debuff/fleshmerge
duration = 2 MINUTES

/datum/status_effect/buff/bliss/on_apply()
. = ..()
if(iscarbon(owner))
var/mob/living/carbon/C = owner
C.add_stress(/datum/stressevent/bliss)

/datum/status_effect/buff/bliss/on_remove()
. = ..()
if(iscarbon(owner))
var/mob/living/carbon/C = owner
C.remove_stress(/datum/stressevent/bliss)

/datum/status_effect/buff/moondust
id = "moondust"
alert_type = /atom/movable/screen/alert/status_effect/buff/druqks
Expand Down
10 changes: 10 additions & 0 deletions code/datums/stress/negative_events.dm
Original file line number Diff line number Diff line change
Expand Up @@ -293,3 +293,13 @@
timer = 3 MINUTES
stressadd = 6
desc = "<span class='red'>I slept on the floor! What am I?! An animal?!</span>"

/datum/stressevent/raider
timer = 1 MINUTES
stressadd = 1
desc = "<span class='red'>Jeopardous 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 Daughter.</span>"
5 changes: 5 additions & 0 deletions code/datums/stress/positive_events.dm
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,11 @@
desc = "<span class='blue'>I've taken a hit and entered a painless world.</span>"
timer = 999 MINUTES

/datum/stressevent/bliss
stressadd = 0
desc = "<span class='blue'>It feels like... nothing. I should take more of this.</span>"
timer = 5 MINUTES

/datum/stressevent/moondust
stressadd = -5
desc = "<span class='green'>Moondust surges through me.</span>"
Expand Down
6 changes: 5 additions & 1 deletion code/game/area/roguetownareas.dm
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,8 @@ GLOBAL_LIST_INIT(roguetown_areas_typecache, typecacheof(/area/rogue/indoors/town
/mob/living/simple_animal/hostile/retaliate/rogue/spider = 80,
/mob/living/carbon/human/species/goblin/npc/ambush/sea = 50,
/mob/living/simple_animal/hostile/retaliate/rogue/troll = 35,
/mob/living/simple_animal/hostile/retaliate/rogue/bogbug = 70)
/mob/living/simple_animal/hostile/retaliate/rogue/sewercarrion = 70,
/mob/living/simple_animal/hostile/retaliate/rogue/sewercarrion/necrobug = 40)

first_time_text = "THE TERRORBOG"
converted_type = /area/rogue/indoors/shelter/bog
Expand Down Expand Up @@ -600,6 +601,9 @@ GLOBAL_LIST_INIT(roguetown_areas_typecache, typecacheof(/area/rogue/indoors/town
droning_sound_night = null
ambientrain = RAIN_SEWER
converted_type = /area/rogue/outdoors/exposed/under/sewer
ambush_mobs = list(
/mob/living/simple_animal/hostile/retaliate/rogue/sewercarrion = 70,
/mob/living/simple_animal/hostile/retaliate/rogue/sewercarrion/necrobug = 40)

/area/rogue/outdoors/exposed/under/sewer
icon_state = "sewer"
Expand Down
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 @@ -338,3 +338,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 ee80888

Please sign in to comment.