Skip to content

Commit

Permalink
Merge pull request #46 from wewman222/main
Browse files Browse the repository at this point in the history
Macro Update
  • Loading branch information
TheGreatKitsune authored Oct 28, 2024
2 parents 60ae08d + 7560d9d commit 7b54c20
Show file tree
Hide file tree
Showing 6 changed files with 355 additions and 0 deletions.
2 changes: 2 additions & 0 deletions code/__DEFINES/is_helpers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,8 @@ GLOBAL_LIST_INIT(our_forest_sex, typecacheof(list(
#define ishalforc(A) (is_species(A, /datum/species/halforc))
#define isargonian(A) (is_species(A, /datum/species/lizard/brazil))
#define isgoblinp(A) (is_species(A, /datum/species/goblinp))
#define isanthrom(A) (is_species(A, /datum/species/anthromacro))
#define isdemim(A) (is_species(A, /datum/species/demimacro))

//more carbon mobs
#define ismonkey(A) (istype(A, /mob/living/carbon/monkey))
Expand Down
19 changes: 19 additions & 0 deletions code/modules/jobs/job_types/roguetown/adventurer/adventurer.dm
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,25 @@ GLOBAL_VAR_INIT(adventurer_hugbox_duration_still, 3 MINUTES)
H.advsetup = 1
H.invisibility = INVISIBILITY_MAXIMUM
H.become_blind("advsetup")
if(H.dna?.species)
if(isanthrom(H))
H.change_stat("strength", 8)
H.change_stat("constitution", 8)
H.change_stat("endurance", 8)
H.change_stat("speed", -8)
H.change_stat("speed", -4)
H.transform = H.transform.Scale(2.25, 2.25)
H.transform = H.transform.Translate(0, (0.25 * 16))
H.update_transform()
if(isdemim(H))
H.change_stat("strength", 8)
H.change_stat("constitution", 8)
H.change_stat("endurance", 8)
H.change_stat("speed", -8)
H.change_stat("speed", -4)
H.transform = H.transform.Scale(2.25, 2.25)
H.transform = H.transform.Translate(0, (0.25 * 16))
H.update_transform()

if(GLOB.adventurer_hugbox_duration)
///FOR SOME RETARDED FUCKING REASON THIS REFUSED TO WORK WITHOUT A FUCKING TIMER IT JUST FUCKED SHIT UP
Expand Down
19 changes: 19 additions & 0 deletions code/modules/jobs/job_types/roguetown/adventurer/pilgrim.dm
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,25 @@
H.advsetup = 1
H.invisibility = INVISIBILITY_MAXIMUM
H.become_blind("advsetup")
if(H.dna?.species)
if(isanthrom(H))
H.change_stat("strength", 8)
H.change_stat("constitution", 8)
H.change_stat("endurance", 8)
H.change_stat("speed", -8)
H.change_stat("speed", -4)
H.transform = H.transform.Scale(2.25, 2.25)
H.transform = H.transform.Translate(0, (0.25 * 16))
H.update_transform()
if(isdemim(H))
H.change_stat("strength", 8)
H.change_stat("constitution", 8)
H.change_stat("endurance", 8)
H.change_stat("speed", -8)
H.change_stat("speed", -4)
H.transform = H.transform.Scale(2.25, 2.25)
H.transform = H.transform.Translate(0, (0.25 * 16))
H.update_transform()

if(GLOB.adventurer_hugbox_duration)
///FOR SOME RETARDED FUCKING REASON THIS REFUSED TO WORK WITHOUT A FUCKING TIMER IT JUST FUCKED SHIT UP
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
/mob/living/carbon/human/species/anthromacro
race = /datum/species/anthromacro

/datum/species/anthromacro
name = "Goliath"
id = "anthromacro"
desc = "Some species of Wild-Kin hail from Graggarite touched bloodlines, and have the size, and temper to match. (ONLY WORKS FOR ADVENTURER AND PILGRIM!!!)"
default_color = "444"
species_traits = list(
MUTCOLORS,
EYECOLOR,
LIPS,
HAIR,
)
inherent_traits = list(TRAIT_NOMOBSWAP)
inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID
attack_verb = "slash"
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT
possible_ages = ALL_AGES_LIST
limbs_icon_m = 'icons/roguetown/mob/bodies/m/mt.dmi'
limbs_icon_f = 'icons/roguetown/mob/bodies/f/fm.dmi'
dam_icon = 'icons/roguetown/mob/bodies/dam/dam_male.dmi'
dam_icon_f = 'icons/roguetown/mob/bodies/dam/dam_female.dmi'


soundpack_m = /datum/voicepack/male
soundpack_f = /datum/voicepack/female
offset_features = list(
OFFSET_ID = list(0,1), OFFSET_GLOVES = list(0,1), OFFSET_WRISTS = list(0,1),\
OFFSET_CLOAK = list(0,1), OFFSET_FACEMASK = list(0,1), OFFSET_HEAD = list(0,1), \
OFFSET_FACE = list(0,1), OFFSET_BELT = list(0,1), OFFSET_BACK = list(0,1), \
OFFSET_NECK = list(0,1), OFFSET_MOUTH = list(0,1), OFFSET_PANTS = list(0,1), \
OFFSET_SHIRT = list(0,1), OFFSET_ARMOR = list(0,1), OFFSET_HANDS = list(0,1), OFFSET_UNDIES = list(0,1), \
OFFSET_ID_F = list(0,-1), OFFSET_GLOVES_F = list(0,0), OFFSET_WRISTS_F = list(0,0), OFFSET_HANDS_F = list(0,0), \
OFFSET_CLOAK_F = list(0,0), OFFSET_FACEMASK_F = list(0,-1), OFFSET_HEAD_F = list(0,-1), \
OFFSET_FACE_F = list(0,-1), OFFSET_BELT_F = list(0,0), OFFSET_BACK_F = list(0,-1), \
OFFSET_NECK_F = list(0,-1), OFFSET_MOUTH_F = list(0,-1), OFFSET_PANTS_F = list(0,0), \
OFFSET_SHIRT_F = list(0,0), OFFSET_ARMOR_F = list(0,0), OFFSET_UNDIES_F = list(0,-1), \
)
specstats = list("strength" = 0, "perception" = 1, "intelligence" = -1, "constitution" = 0, "endurance" = 1, "speed" = -1, "fortune" = 0)
specstats_f = list("strength" = -1, "perception" = 0, "intelligence" = 2, "constitution" = -1, "endurance" = 0, "speed" = 1, "fortune" = 0)
race_bonus = list(STAT_PERCEPTION = 1)
enflamed_icon = "widefire"
organs = list(
ORGAN_SLOT_BRAIN = /obj/item/organ/brain,
ORGAN_SLOT_HEART = /obj/item/organ/heart,
ORGAN_SLOT_LUNGS = /obj/item/organ/lungs,
ORGAN_SLOT_EYES = /obj/item/organ/eyes,
ORGAN_SLOT_EARS = /obj/item/organ/ears,
ORGAN_SLOT_TONGUE = /obj/item/organ/tongue,
ORGAN_SLOT_LIVER = /obj/item/organ/liver,
ORGAN_SLOT_STOMACH = /obj/item/organ/stomach,
ORGAN_SLOT_APPENDIX = /obj/item/organ/appendix,
//ORGAN_SLOT_TESTICLES = /obj/item/organ/testicles,
//ORGAN_SLOT_PENIS = /obj/item/organ/penis/knotted,
//ORGAN_SLOT_BREASTS = /obj/item/organ/breasts,
//ORGAN_SLOT_VAGINA = /obj/item/organ/vagina,
)
bodypart_features = list(
/datum/bodypart_feature/hair/head,
/datum/bodypart_feature/hair/facial,
)
customizers = list(
/datum/customizer/organ/eyes/humanoid,
/datum/customizer/bodypart_feature/hair/head/humanoid,
/datum/customizer/bodypart_feature/hair/facial/humanoid,
/datum/customizer/bodypart_feature/accessory,
/datum/customizer/bodypart_feature/face_detail,
/datum/customizer/bodypart_feature/underwear,
/datum/customizer/organ/tail/,
/datum/customizer/organ/tail_feature/,
/datum/customizer/organ/snout/,
/datum/customizer/organ/ears/,
/datum/customizer/organ/horns/,
/datum/customizer/organ/frills/,
/datum/customizer/organ/wings/,
/datum/customizer/organ/neck_feature/,
/datum/customizer/organ/testicles/,
/datum/customizer/organ/penis/,
/datum/customizer/organ/breasts/animal,
/datum/customizer/organ/vagina/,
)
body_marking_sets = list(
/datum/body_marking_set/none,
/datum/body_marking_set/belly,
/datum/body_marking_set/bellysocks,
/datum/body_marking_set/tiger,
/datum/body_marking_set/tiger_dark,
)
body_markings = list(
/datum/body_marking/plain,
/datum/body_marking/tiger,
/datum/body_marking/tiger/dark,
/datum/body_marking/sock,
/datum/body_marking/socklonger,
/datum/body_marking/tips,
/datum/body_marking/bellyscale,
/datum/body_marking/bellyscaleslim,
/datum/body_marking/bellyscalesmooth,
/datum/body_marking/bellyscaleslimsmooth,
/datum/body_marking/buttscale,
/datum/body_marking/belly,
/datum/body_marking/bellyslim,
/datum/body_marking/butt,
/datum/body_marking/tie,
/datum/body_marking/tiesmall,
/datum/body_marking/backspots,
/datum/body_marking/front,
/datum/body_marking/drake_eyes,
/datum/body_marking/tonage,
/datum/body_marking/spotted,
)
descriptor_choices = list(
/datum/descriptor_choice/height,
/datum/descriptor_choice/body,
/datum/descriptor_choice/stature,
/datum/descriptor_choice/face,
/datum/descriptor_choice/face_exp,
/datum/descriptor_choice/skin_all,
/datum/descriptor_choice/voice,
/datum/descriptor_choice/prominent_one_wild,
/datum/descriptor_choice/prominent_two_wild,
/datum/descriptor_choice/prominent_three_wild,
/datum/descriptor_choice/prominent_four_wild,
)

/datum/species/anthromacro/on_species_gain(mob/living/carbon/C, datum/species/old_species)
..()
RegisterSignal(C, COMSIG_MOB_SAY, PROC_REF(handle_speech))

/datum/species/anthromacro/on_species_loss(mob/living/carbon/C)
. = ..()
UnregisterSignal(C, COMSIG_MOB_SAY)

/datum/species/anthromacro/check_roundstart_eligible()
return TRUE

/datum/species/anthromacro/qualifies_for_rank(rank, list/features)
return TRUE

/datum/species/anthromacro/get_random_features()
var/list/returned = MANDATORY_FEATURE_LIST
var/main_color
var/second_color
var/third_color
var/random = rand(1,6)
switch(random)
if(1)
main_color = "FFFFFF"
second_color = "333333"
third_color = "333333"
if(2)
main_color = "FFFFDD"
second_color = "DD6611"
third_color = "AA5522"
if(3)
main_color = "DD6611"
second_color = "FFFFFF"
third_color = "DD6611"
if(4)
main_color = "CCCCCC"
second_color = "FFFFFF"
third_color = "FFFFFF"
if(5)
main_color = "AA5522"
second_color = "CC8833"
third_color = "FFFFFF"
if(6)
main_color = "FFFFDD"
second_color = "FFEECC"
third_color = "FFDDBB"
returned["mcolor"] = main_color
returned["mcolor2"] = second_color
returned["mcolor3"] = third_color
return returned

137 changes: 137 additions & 0 deletions code/modules/mob/living/carbon/human/species_types/furry/demimacro.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
/mob/living/carbon/human/species/demimacro
race = /datum/species/demimacro

/datum/species/demimacro
name = "Half-Giants"
id = "demimacro"
desc = "Similar to Goliaths, these beasts trace their lineage to graggarite roots. They may be a tad more friendly however. Just a bit. (ONLY WORKS WITH ADVENTURERS AND PILGRIMS)"
skin_tone_wording = "Ancestry"
default_color = "FFFFFF"
species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,STUBBLE,OLDGREY,MUTCOLORS_PARTSONLY)
inherent_traits = list(TRAIT_NOMOBSWAP)
default_features = MANDATORY_FEATURE_LIST
use_skintones = TRUE
possible_ages = ALL_AGES_LIST
skinned_type = /obj/item/stack/sheet/animalhide/human
disliked_food = NONE
liked_food = NONE
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT
limbs_icon_m = 'icons/roguetown/mob/bodies/m/mt.dmi'
limbs_icon_f = 'icons/roguetown/mob/bodies/f/fm.dmi'
dam_icon = 'icons/roguetown/mob/bodies/dam/dam_male.dmi'
dam_icon_f = 'icons/roguetown/mob/bodies/dam/dam_female.dmi'
soundpack_m = /datum/voicepack/male
soundpack_f = /datum/voicepack/female
offset_features = list(
OFFSET_ID = list(0,1), OFFSET_GLOVES = list(0,1), OFFSET_WRISTS = list(0,1),\
OFFSET_CLOAK = list(0,1), OFFSET_FACEMASK = list(0,1), OFFSET_HEAD = list(0,1), \
OFFSET_FACE = list(0,1), OFFSET_BELT = list(0,1), OFFSET_BACK = list(0,1), \
OFFSET_NECK = list(0,1), OFFSET_MOUTH = list(0,1), OFFSET_PANTS = list(0,1), \
OFFSET_SHIRT = list(0,1), OFFSET_ARMOR = list(0,1), OFFSET_HANDS = list(0,1), OFFSET_UNDIES = list(0,1), \
OFFSET_ID_F = list(0,-1), OFFSET_GLOVES_F = list(0,0), OFFSET_WRISTS_F = list(0,0), OFFSET_HANDS_F = list(0,0), \
OFFSET_CLOAK_F = list(0,0), OFFSET_FACEMASK_F = list(0,-1), OFFSET_HEAD_F = list(0,-1), \
OFFSET_FACE_F = list(0,-1), OFFSET_BELT_F = list(0,0), OFFSET_BACK_F = list(0,-1), \
OFFSET_NECK_F = list(0,-1), OFFSET_MOUTH_F = list(0,-1), OFFSET_PANTS_F = list(0,0), \
OFFSET_SHIRT_F = list(0,0), OFFSET_ARMOR_F = list(0,0), OFFSET_UNDIES_F = list(0,-1), \
)
specstats = list("strength" = 0, "perception" = 1, "intelligence" = -1, "constitution" = 0, "endurance" = 1, "speed" = -1, "fortune" = 0)
specstats_f = list("strength" = -1, "perception" = 0, "intelligence" = 2, "constitution" = -1, "endurance" = 0, "speed" = 1, "fortune" = 0)
race_bonus = list(STAT_PERCEPTION = 1)
enflamed_icon = "widefire"
bodypart_features = list(
/datum/bodypart_feature/hair/head,
/datum/bodypart_feature/hair/facial,
)
customizers = list(
/datum/customizer/organ/eyes/humanoid,
/datum/customizer/bodypart_feature/hair/head/humanoid,
/datum/customizer/bodypart_feature/hair/facial/humanoid,
/datum/customizer/bodypart_feature/accessory,
/datum/customizer/bodypart_feature/face_detail,
/datum/customizer/bodypart_feature/underwear,
/datum/customizer/organ/ears/demihuman,
/datum/customizer/organ/horns/demihuman,
/datum/customizer/organ/tail/demihuman,
/datum/customizer/organ/testicles/human,
/datum/customizer/organ/penis/canine,
/datum/customizer/organ/breasts/animal,
/datum/customizer/organ/vagina/animal,
)
body_marking_sets = list(
/datum/body_marking_set/none,
/datum/body_marking_set/socks,
)
body_markings = list(
/datum/body_marking/tonage,
/datum/body_marking/socklonger,
/datum/body_marking/tips,
)
descriptor_choices = list(
/datum/descriptor_choice/height,
/datum/descriptor_choice/body,
/datum/descriptor_choice/stature,
/datum/descriptor_choice/face,
/datum/descriptor_choice/face_exp,
/datum/descriptor_choice/skin,
/datum/descriptor_choice/voice,
/datum/descriptor_choice/prominent_one_wild,
/datum/descriptor_choice/prominent_two_wild,
/datum/descriptor_choice/prominent_three_wild,
/datum/descriptor_choice/prominent_four_wild,
)

/datum/species/demimacro/check_roundstart_eligible()
return TRUE

/datum/species/demimacro/qualifies_for_rank(rank, list/features)
return TRUE

/datum/species/demimacro/on_species_gain(mob/living/carbon/C, datum/species/old_species)
. = ..()
RegisterSignal(C, COMSIG_MOB_SAY, PROC_REF(handle_speech))

/datum/species/demimacro/on_species_loss(mob/living/carbon/C)
. = ..()
UnregisterSignal(C, COMSIG_MOB_SAY)

/datum/species/demimacro/get_random_features()
var/list/returned = MANDATORY_FEATURE_LIST
var/main_color
var/random = rand(1,8)
//Choose from a variety of mostly brightish, animal, matching colors
switch(random)
if(1)
main_color = ORANGE_FUR
if(2)
main_color = LIGHTGREY_FUR
if(3)
main_color = DARKGREY_FUR
if(4)
main_color = LIGHTORANGE_FUR
if(5)
main_color = LIGHTBROWN_FUR
if(6)
main_color = WHITEBROWN_FUR
if(7)
main_color = DARKBROWN_FUR
if(8)
main_color = BLACK_FUR
returned["mcolor"] = main_color
returned["mcolor2"] = main_color
returned["mcolor3"] = main_color
return returned

/datum/species/demihuman/get_skin_list()
return list(
"Grenzelhoft" = SKIN_COLOR_GRENZELHOFT,
"Hammerhold" = SKIN_COLOR_HAMMERHOLD,
"Avar" = SKIN_COLOR_AVAR,
"Rockhill" = SKIN_COLOR_ROCKHILL,
"Otava" = SKIN_COLOR_OTAVA,
"Etrusca" = SKIN_COLOR_ETRUSCA,
"Gronn" = SKIN_COLOR_GRONN,
"Giza" = SKIN_COLOR_GIZA,
"Shalvistine" = SKIN_COLOR_SHALVISTINE,
"Lalvestine" = SKIN_COLOR_LALVESTINE,
"Ebon" = SKIN_COLOR_EBON,
)
2 changes: 2 additions & 0 deletions roguetown.dme
Original file line number Diff line number Diff line change
Expand Up @@ -3576,4 +3576,6 @@
#include "modular_hearthstone\code\modules\mob\living\simple_animal\rogue\simple_skeleton.dm"
#include "modular_hearthstone\code\modules\reagents\reagent_containers\lux.dm"
#include "modular_hearthstone\code\modules\spells\roguetown\wizard.dm"
#include "code\modules\mob\living\carbon\human\species_types\furry\anthromacro.dm"
#include "code\modules\mob\living\carbon\human\species_types\furry\demimacro.dm"
// END_INCLUDE

0 comments on commit 7b54c20

Please sign in to comment.