Skip to content

Commit 5829d4f

Browse files
Absolucy567TurtleGDNgit
authored
Evil Oni Addition of Doom and Gloom (#7095)
Co-authored-by: Goobliner <[email protected]> Co-authored-by: 567Turtle <[email protected]> Co-authored-by: GDN <[email protected]>
1 parent 0a9bb70 commit 5829d4f

File tree

24 files changed

+420
-3
lines changed

24 files changed

+420
-3
lines changed

code/__DEFINES/is_helpers.dm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ GLOBAL_LIST_INIT(turfs_openspace, typecacheof(list(
9898
#define isoozeling(A) (is_species(A, /datum/species/oozeling))
9999
#define iszombie(A) (is_species(A, /datum/species/zombie))
100100
#define isskeleton(A) (is_species(A, /datum/species/skeleton))
101+
#define isoni(A) (is_species(A, /datum/species/oni)) //Monkestation Addition
101102
#define ismoth(A) (is_species(A, /datum/species/moth))
102103
#define isethereal(A) (is_species(A, /datum/species/ethereal))
103104
#define isvampire(A) (is_species(A,/datum/species/vampire))

code/__DEFINES/mobs.dm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@
127127
#define SPECIES_ZOMBIE_KROKODIL "krokodil_zombie"
128128
#define SPECIES_OOZELING "oozeling"
129129
#define SPECIES_IPC "ipc"
130+
#define SPECIES_ONI "oni" //Monkestation Addition
130131
#define SPECIES_SIMIAN "simian" //Monkestation Addition
131132
#define SPECIES_GOBLIN "goblin" //Monkestation Addition
132133
#define SPECIES_FLORAN "floran" //Monkestation Addition

code/__HELPERS/global_lists.dm

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@
5757
init_sprite_accessory_subtypes(/datum/sprite_accessory/arm_wingsopen, GLOB.arm_wingsopen_list) //NON-MODULE CHANGE
5858
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/avian, GLOB.tails_list_avian) //NON-MODULE CHANGE
5959
init_sprite_accessory_subtypes(/datum/sprite_accessory/plumage, GLOB.avian_ears_list) //NON-MODULE CHANGE
60+
init_sprite_accessory_subtypes(/datum/sprite_accessory/oni_tail, GLOB.oni_tail_list) //Monkestation Addition
61+
init_sprite_accessory_subtypes(/datum/sprite_accessory/oni_wings, GLOB.oni_wings_list) //Monkestation Addition
62+
init_sprite_accessory_subtypes(/datum/sprite_accessory/oni_horns, GLOB.oni_horns_list) //Monkestation Addition
6063

6164
/// Inits GLOB.species_list. Not using GLOBAL_LIST_INIT b/c it depends on GLOB.string_lists
6265
/proc/init_species_list()

code/__HELPERS/mobs.dm

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,12 @@
140140
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/avian, GLOB.tails_list_avian)
141141
if(!length(GLOB.avian_ears_list))
142142
init_sprite_accessory_subtypes(/datum/sprite_accessory/plumage, GLOB.avian_ears_list)
143+
if(!GLOB.oni_tail_list.len)
144+
init_sprite_accessory_subtypes(/datum/sprite_accessory/oni_tail, GLOB.oni_tail_list)
145+
if(!GLOB.oni_wings_list.len)
146+
init_sprite_accessory_subtypes(/datum/sprite_accessory/oni_tail, GLOB.oni_wings_list)
147+
if(!GLOB.oni_horns_list.len)
148+
init_sprite_accessory_subtypes(/datum/sprite_accessory/oni_horns, GLOB.oni_horns_list)
143149
//Monkestation Addition End
144150

145151
//For now we will always return none for tail_human and ears. | "For now" he says.
@@ -182,6 +188,9 @@
182188
"arm_wings" = pick(GLOB.arm_wings_list),
183189
"ears_avian" = pick(GLOB.avian_ears_list),
184190
"tail_avian" = pick(GLOB.tails_list_avian),
191+
"oni_tail" = pick(GLOB.oni_tail_list), //Monkestation Addition
192+
"oni_wings" = pick(GLOB.oni_wings_list), //Monkestation Addition
193+
"oni_horns" = pick(GLOB.oni_horns_list), //Monkestation Addition
185194
))
186195

187196
/proc/random_hairstyle(gender)

code/_globalvars/lists/flavor_misc.dm

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ GLOBAL_LIST_EMPTY(floran_leaves_list) //Monkestation Addition
5959
GLOBAL_LIST_EMPTY(satyr_fluff_list) //Monkestation Addition
6060
GLOBAL_LIST_EMPTY(satyr_tail_list) //Monkestation Addition
6161
GLOBAL_LIST_EMPTY(satyr_horns_list) //Monkestation Addition
62+
GLOBAL_LIST_EMPTY(oni_tail_list) //Monkestation Addition
63+
GLOBAL_LIST_EMPTY(oni_wings_list) //Monkestation Addition
64+
GLOBAL_LIST_EMPTY(oni_horns_list) //Monkestation Addition
6265

6366
GLOBAL_LIST_INIT(color_list_ethereal, list(
6467
"Blue" = "#3399ff",

code/datums/dna.dm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -520,6 +520,7 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block())
520520
var/species_holder = initial(mrace.species_language_holder)
521521
language_holder = new species_holder(src)
522522
update_atom_languages()
523+
update_bodypart_speed_modifier()
523524
log_mob_tag("SPECIES: [key_name(src)] \[[mrace]\]")
524525

525526
/mob/living/carbon/human/set_species(datum/species/mrace, icon_update = TRUE, pref_load = FALSE)
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
/datum/species/oni
2+
name = "\improper Oni"
3+
plural_form = "Onis"
4+
id = SPECIES_ONI
5+
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
6+
sexes = TRUE
7+
inherent_biotypes = MOB_ORGANIC | MOB_HUMANOID
8+
inherent_traits = list(
9+
TRAIT_MUTANT_COLORS,
10+
)
11+
bodypart_overrides = list(
12+
BODY_ZONE_HEAD = /obj/item/bodypart/head/oni,
13+
BODY_ZONE_CHEST = /obj/item/bodypart/chest/oni,
14+
BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left/oni,
15+
BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right/oni,
16+
BODY_ZONE_L_LEG = /obj/item/bodypart/leg/left/oni,
17+
BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/oni,
18+
)
19+
external_organs = list(
20+
/obj/item/organ/external/goblin_ears = "Long",
21+
/obj/item/organ/external/oni_horns = "Oni",
22+
/obj/item/organ/external/oni_wings = "Normal",
23+
/obj/item/organ/external/oni_tail = "Spade",
24+
)
25+
mutantlungs = /obj/item/organ/internal/lungs/oni
26+
mutanttongue = /obj/item/organ/internal/tongue/oni
27+
maxhealthmod = 1.1
28+
stunmod = 1.2
29+
heatmod = 0.8
30+
coldmod = 2
31+
bodytemp_heat_damage_limit = BODYTEMP_HEAT_DAMAGE_LIMIT + 10 CELCIUS
32+
bodytemp_cold_damage_limit = BODYTEMP_COLD_DAMAGE_LIMIT + 15 CELCIUS
33+
34+
/mob/living/carbon/human/species/oni
35+
race = /datum/species/oni
36+
37+
/datum/species/oni/get_species_description()
38+
return "A species of slightly larger then average humanoids, with vibrant skin and features not too dissimilair from the oni of folklore."
39+
40+
/datum/species/oni/prepare_human_for_preview(mob/living/carbon/human/oni)
41+
oni.dna.features["oni_horns"] = "Oni"
42+
oni.dna.features["oni_wings"] = "Normal"
43+
oni.dna.features["oni_tail"] = "Spade"
44+
var/datum/color_palette/generic_colors/colors = oni.dna.color_palettes[/datum/color_palette/generic_colors]
45+
colors.mutant_color = "#2D80CC"
46+
oni.update_body(TRUE)
47+
48+
/datum/species/oni/create_pref_unique_perks()
49+
var/list/to_add = list()
50+
51+
to_add += list(
52+
list(
53+
SPECIES_PERK_TYPE = SPECIES_POSITIVE_PERK,
54+
SPECIES_PERK_ICON = "band-aid",
55+
SPECIES_PERK_NAME = "Thick Skin",
56+
SPECIES_PERK_DESC = "Your body is naturally more resillient, having more health then the average shmoe.", // an extra 10% health
57+
),
58+
list(
59+
SPECIES_PERK_TYPE = SPECIES_NEGATIVE_PERK,
60+
SPECIES_PERK_ICON = "bolt",
61+
SPECIES_PERK_NAME = "Weak Nerves",
62+
SPECIES_PERK_DESC = "You're stunned for longer then most.", // an extra 20% stun time.
63+
),
64+
list(
65+
SPECIES_PERK_TYPE = SPECIES_NEGATIVE_PERK,
66+
SPECIES_PERK_ICON = "wind",
67+
SPECIES_PERK_NAME = "Heavy Footed",
68+
SPECIES_PERK_DESC = "You're a tad slower then the normal norman.", // 10% slower then normal.
69+
),
70+
list(
71+
SPECIES_PERK_TYPE = SPECIES_POSITIVE_PERK,
72+
SPECIES_PERK_ICON = "shield-alt",
73+
SPECIES_PERK_NAME = "Steel Bones",
74+
SPECIES_PERK_DESC = "You're more resistant to being wounded, things like limb loss and lacerations are less likely to happen to you.", // TRAIT_HARDLY_INJURED
75+
),
76+
list(
77+
SPECIES_PERK_TYPE = SPECIES_POSITIVE_PERK,
78+
SPECIES_PERK_ICON = "temperature-low",
79+
SPECIES_PERK_NAME = "Heat-Acclimated",
80+
SPECIES_PERK_DESC = "Your lungs aren't used to filtering cold air, and are very sensitive to it. On the flipside, your lungs like hot air much more! Your skin however, is just as susceptible to heat as anybody.", // higher cold damage thresholds, the opposite is also true
81+
),
82+
list(
83+
SPECIES_PERK_TYPE = SPECIES_POSITIVE_PERK,
84+
SPECIES_PERK_ICON = "sun",
85+
SPECIES_PERK_NAME = "Pyromancy",
86+
SPECIES_PERK_DESC = "Your lungs can build up and then expel flames.", // fire ball!
87+
),
88+
)
89+
90+
return to_add

code/modules/reagents/chemistry/reagents/other_reagents.dm

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -925,6 +925,14 @@
925925
taste_description = "plasma"
926926
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_NO_RANDOM_RECIPE
927927

928+
/datum/reagent/mutationtoxin/oni
929+
name = "Oni Mutation Toxin"
930+
description = "A demonic toxin."
931+
color = "#F11514" // RGB: 241, 21, 20
932+
race = /datum/species/oni
933+
taste_description = "hellfire"
934+
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED | REAGENT_NO_RANDOM_RECIPE
935+
928936
#undef MUT_MSG_IMMEDIATE
929937
#undef MUT_MSG_EXTENDED
930938
#undef MUT_MSG_ABOUT2TURN
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/obj/item/bodypart/head/oni
2+
icon_greyscale = 'icons/mob/species/oni/bodyparts.dmi'
3+
limb_id = SPECIES_ONI
4+
palette = /datum/color_palette/generic_colors
5+
palette_key = MUTANT_COLOR
6+
composition_effects = list(TRAIT_HARDLY_WOUNDED = 0.5)
7+
8+
/obj/item/bodypart/chest/oni
9+
icon_greyscale = 'icons/mob/species/oni/bodyparts.dmi'
10+
limb_id = SPECIES_ONI
11+
palette = /datum/color_palette/generic_colors
12+
palette_key = MUTANT_COLOR
13+
composition_effects = list(TRAIT_HARDLY_WOUNDED = 0.5)
14+
15+
/obj/item/bodypart/arm/left/oni
16+
icon_greyscale = 'icons/mob/species/oni/bodyparts.dmi'
17+
limb_id = SPECIES_ONI
18+
palette = /datum/color_palette/generic_colors
19+
palette_key = MUTANT_COLOR
20+
composition_effects = list(TRAIT_HARDLY_WOUNDED = 0.5)
21+
22+
/obj/item/bodypart/arm/right/oni
23+
icon_greyscale = 'icons/mob/species/oni/bodyparts.dmi'
24+
limb_id = SPECIES_ONI
25+
palette = /datum/color_palette/generic_colors
26+
palette_key = MUTANT_COLOR
27+
composition_effects = list(TRAIT_HARDLY_WOUNDED = 0.5)
28+
29+
/obj/item/bodypart/leg/left/oni
30+
icon_greyscale = 'icons/mob/species/oni/bodyparts.dmi'
31+
limb_id = SPECIES_ONI
32+
palette = /datum/color_palette/generic_colors
33+
palette_key = MUTANT_COLOR
34+
composition_effects = list(TRAIT_HARDLY_WOUNDED = 0.5)
35+
speed_modifier = 0.05
36+
37+
/obj/item/bodypart/leg/right/oni
38+
icon_greyscale = 'icons/mob/species/oni/bodyparts.dmi'
39+
limb_id = SPECIES_ONI
40+
palette = /datum/color_palette/generic_colors
41+
palette_key = MUTANT_COLOR
42+
composition_effects = list(TRAIT_HARDLY_WOUNDED = 0.5)
43+
speed_modifier = 0.05

code/modules/surgery/organs/internal/tongue/_tongue.dm

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -743,3 +743,8 @@ GLOBAL_LIST_INIT(english_to_zombie, list())
743743
message = floran_ecks.Replace(message, "eck[repeat_string(max(draw_length - 2, 1), "s")]$1")
744744
message = floran_eckS.Replace(message, "ECK[repeat_string(max(draw_length - 2, 1), "S")]$1")
745745
speech_args[SPEECH_MESSAGE] = message
746+
747+
/obj/item/organ/internal/tongue/oni
748+
name = "oni tongue"
749+
liked_foodtypes = GORE | MEAT | SEAFOOD
750+
disliked_foodtypes = VEGETABLES | GROSS

0 commit comments

Comments
 (0)