Skip to content

Commit

Permalink
Merge pull request #78 from UniquaSa/class
Browse files Browse the repository at this point in the history
Several ports time.
  • Loading branch information
TheGreatKitsune authored Nov 21, 2024
2 parents a062ca3 + 29963da commit 4999025
Show file tree
Hide file tree
Showing 134 changed files with 5,073 additions and 255 deletions.
10 changes: 7 additions & 3 deletions code/__DEFINES/DNA.dm
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@
#define EYE_COLOR_LIST list("#865900", "#06b400", "#312f27", "#008e83", "#002d8e", "#c16c00")

#define MIN_PENIS_SIZE 1
#define MAX_PENIS_SIZE 3
#define MAX_PENIS_SIZE 5
#define DEFAULT_PENIS_SIZE 2

#define PENIS_TYPE_PLAIN 1
Expand All @@ -175,13 +175,17 @@
#define ERECT_STATE_HARD 2

#define MIN_TESTICLES_SIZE 1
#define MAX_TESTICLES_SIZE 3
#define MAX_TESTICLES_SIZE 5
#define DEFAULT_TESTICLES_SIZE 2

#define MIN_BREASTS_SIZE 0
#define MAX_BREASTS_SIZE 10
#define MAX_BREASTS_SIZE 16 //
#define DEFAULT_BREASTS_SIZE 3

#define DEFAULT_BELLY_SIZE 0
#define MIN_BELLY_SIZE 0
#define MAX_BELLY_SIZE 10

#define DEFAULT_BUTT_SIZE 0
#define MIN_BUTT_SIZE 0
#define MAX_BUTT_SIZE 5
3 changes: 3 additions & 0 deletions code/__DEFINES/components.dm
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,8 @@
#define COMSIG_ATOM_ORBIT_STOP "atom_orbit_stop" //called when an atom stops orbiting another atom: (atom)
/////////////////
#define COMSIG_ATOM_ATTACK_GHOST "atom_attack_ghost" //from base of atom/attack_ghost(): (mob/dead/observer/ghost)
#define COMSIG_ATOM_ATTACK_HAND_RIGHT "atom_attack_hand_right" //from base of atom/attack_hand(): (mob/user)
#define COMSIG_ATOM_MIDDLE_CLICK "atom_middle_click" //from base of atom/attack_hand(): (mob/user)
#define COMSIG_ATOM_ATTACK_HAND "atom_attack_hand" //from base of atom/attack_hand(): (mob/user)
#define COMSIG_ATOM_ATTACK_PAW "atom_attack_paw" //from base of atom/attack_paw(): (mob/user)
#define COMPONENT_NO_ATTACK_HAND 1 //works on all 3.
Expand Down Expand Up @@ -267,6 +269,7 @@
#define COMSIG_ITEM_ATTACK_QDELETED "item_attack_qdeleted" //from base of obj/item/attack_qdeleted(): (atom/target, mob/user, params)
#define COMSIG_ITEM_EQUIPPED "item_equip" //from base of obj/item/equipped(): (/mob/equipper, slot)
#define COMSIG_ITEM_DROPPED "item_drop" //from base of obj/item/dropped(): (mob/user)
#define COMSIG_ITEM_DROPPED_TURF "item_drop_turf" //from base of obj/item/dropped(): (mob/user)
#define COMSIG_ITEM_PICKUP "item_pickup" //from base of obj/item/pickup(): (/mob/taker)
#define COMSIG_ITEM_ATTACK_ZONE "item_attack_zone" //from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone)
#define COMSIG_ITEM_IMBUE_SOUL "item_imbue_soul" //return a truthy value to prevent ensouling, checked in /obj/effect/proc_holder/spell/targeted/lichdom/cast(): (mob/user)
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/customization/mob_descriptors.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#define MOB_DESCRIPTOR_SLOT_BREASTS 12
#define MOB_DESCRIPTOR_SLOT_VAGINA 13
#define MOB_DESCRIPTOR_SLOT_HEIGHT 14
#define MOB_DESCRIPTOR_SLOT_BUTT 15

#define CUSTOM_DESCRIPTOR_AMOUNT 2
#define CUSTOM_DESCRIPTOR_TEXT_LENGTH 32
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/inventory.dm
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@
#define HIDEBELT (1<<12)
#define HIDECROTCH (1<<13)
#define HIDETAIL (1<<14)
#define HIDEBUTT (1<<15)

//blocking_behavior var on clothing items
#define BLOCKBOOTS (1<<0)
Expand Down
2 changes: 2 additions & 0 deletions code/__DEFINES/is_helpers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,8 @@ GLOBAL_LIST_INIT(our_forest_sex, typecacheof(list(
#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))
#define iskobold(A) (is_species(A, /datum/species/kobold))
#define isvermin(A) (is_species(A, /datum/species/anthromorphsmall))

//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 @@ -63,6 +63,8 @@
#define ORGAN_SLOT_BREASTS "breasts"
#define ORGAN_SLOT_VAGINA "vagina"
#define ORGAN_SLOT_BELLY "belly"
#define ORGAN_SLOT_BUTT "butt"


#define BODYPART_FEATURE_HAIR "hair"
#define BODYPART_FEATURE_FACIAL_HAIR "facehair"
Expand Down
97 changes: 50 additions & 47 deletions code/__DEFINES/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,56 +13,59 @@


//Human Overlays Indexes/////////
#define MUTATIONS_LAYER 49 //mutations. Tk headglows, cold resistance glow, etc
#define CLOAK_BEHIND_LAYER 48
#define HANDS_BEHIND_LAYER 47
#define BELT_BEHIND_LAYER 46
#define BACK_BEHIND_LAYER 45
#define BODY_BEHIND_LAYER 44 //certain mutantrace features (tail when looking south) that must appear behind the body parts
#define BODY_UNDER_LAYER 43 // Things under the bodyparts but above the "behind body" layer
#define BODYPARTS_LAYER 42 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
#define BODY_ADJ_LAYER 41 //certain mutantrace features (snout, body markings) that must appear above the body parts
#define BODY_LAYER 40 //underwear, undershirts, socks, eyes, lips(makeup)
#define FRONT_MUTATIONS_LAYER 39 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
#define DAMAGE_LAYER 38 //damage indicators (cuts and burns)
#define LEG_PART_LAYER 37
#define PANTS_LAYER 36
#define SHOES_LAYER 35
#define LEG_DAMAGE_LAYER 34
#define LEGSLEEVE_LAYER 33
#define SHOESLEEVE_LAYER 32
#define SHIRT_LAYER 31
#define WRISTS_LAYER 30
#define ARMOR_LAYER 29
#define TABARD_LAYER 28
#define BELT_LAYER 27 //only when looking south
#define UNDER_CLOAK_LAYER 26
#define HANDS_PART_LAYER 25
#define GLOVES_LAYER 24
#define ARM_DAMAGE_LAYER 23
#define SHIRTSLEEVE_LAYER 22
#define GLOVESLEEVE_LAYER 21
#define WRISTSLEEVE_LAYER 20
#define ARMORSLEEVE_LAYER 19
#define RING_LAYER 18
#define GLASSES_LAYER 17
#define NECK_LAYER 16
#define CLOAK_LAYER 15 //only when looking north or west/east
#define HAIR_LAYER 14 //TODO: make part of head layer?
#define MASK_LAYER 13
#define HAIREXTRA_LAYER 12
#define MOUTH_LAYER 11
#define HEAD_LAYER 10
#define BACK_LAYER 9 //only when looking north
#define HANDS_LAYER 8
#define HANDCUFF_LAYER 7
#define LEGCUFF_LAYER 6
#define BODY_FRONT_LAYER 5
#define BODY_FRONT_FRONT_LAYER 4
#define MUTATIONS_LAYER 52 //mutations. Tk headglows, cold resistance glow, etc
#define CLOAK_BEHIND_LAYER 51
#define HANDS_BEHIND_LAYER 50
#define BELT_BEHIND_LAYER 49
#define BACK_BEHIND_LAYER 48
#define BODY_BEHIND_LAYER 47 //certain mutantrace features (tail when looking south) that must appear behind the body parts
#define BODY_UNDER_LAYER 46 // Things under the bodyparts but above the "behind body" layer
#define BODYPARTS_LAYER 45 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
#define BODY_ADJ_LAYER 44 //certain mutantrace features (snout, body markings) that must appear above the body parts
#define BODY_LAYER 43 //underwear, undershirts, socks, eyes, lips(makeup)
#define FRONT_MUTATIONS_LAYER 42 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
#define DAMAGE_LAYER 41 //damage indicators (cuts and burns)
#define PANTS_LAYER 40
#define SHOES_LAYER 39
#define LEG_PART_LAYER 38
#define LEG_DAMAGE_LAYER 37
#define LEGSLEEVE_LAYER 36
#define SHOESLEEVE_LAYER 35
#define SHIRT_LAYER 34
#define WRISTS_LAYER 33
#define ARMOR_LAYER 32
#define TABARD_LAYER 31
#define BELT_LAYER 30 //only when looking south
#define UNDER_CLOAK_LAYER 29
#define HANDS_PART_LAYER 28
#define GLOVES_LAYER 27
#define ARM_DAMAGE_LAYER 26
#define SHIRTSLEEVE_LAYER 25
#define GLOVESLEEVE_LAYER 24
#define WRISTSLEEVE_LAYER 23
#define ARMORSLEEVE_LAYER 22
#define RING_LAYER 21
#define GLASSES_LAYER 20
#define NECK_LAYER 19
#define CLOAK_LAYER 18 //only when looking north or west/east
#define HAIR_LAYER 17 //TODO: make part of head layer?
#define MASK_LAYER 16
#define HAIREXTRA_LAYER 15
#define MOUTH_LAYER 14
#define HEAD_LAYER 13
#define BACK_LAYER 12 //only when looking north
#define HANDS_LAYER 11
#define HANDCUFF_LAYER 10
#define LEGCUFF_LAYER 9
#define BODY_FRONT_LAYER 8
#define BODY_FRONT_FRONT_LAYER 7
#define BODY_FRONT_FRONT_FRONT_LAYER 6
#define BODY_FFFFRONT_LAYER 5
#define BODY_FFFFFRONT_LAYER 4
#define HALO_LAYER 3 //blood cult ascended halo, because there's currently no better solution for adding/removing
#define FIRE_LAYER 2 //If you're on fire
#define TURF_LAYER 1 //If you're on fire
#define TOTAL_LAYERS 49 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
#define TOTAL_LAYERS 51 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;

#define BACK_CLOAK_SOUTH_LAYER (BODY_BEHIND_LAYER+1)

Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,7 @@
#define OFFSET_ARMOR "wear_armor"
#define OFFSET_HANDS "hands"
#define OFFSET_UNDIES "underwear"
#define OFFSET_BUTT "butt"

#define OFFSET_ID_F "wear_ringf"
#define OFFSET_GLOVES_F "glovesf"
Expand Down
26 changes: 21 additions & 5 deletions code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
#define TRAIT_GOODRUNNER "Good Runner"



//Hearthstone port (Tracking)
#define TRAIT_PERFECT_TRACKER "Perfect Tracker" //Will always find any tracks and analyzes them perfectly.
#define TRAIT_NOCSIGHT "Blessing of Noc" // I can see just a bit more clearly in darkness.
Expand Down Expand Up @@ -98,6 +99,14 @@

//Hearthstone Port
#define TRAIT_MALUMSGRACE "Malum's Grace"
#define TRAIT_STRONGTHROW "Strong Throw" // 1.5x throw distance and force
#define TRAIT_MARTIALARTIST "Martial Artist" //more unarmed combat options
#define TRAIT_PUGILIST "Pugilist" //more punch damage
#define TRAIT_DEATHBYSNOOSNOO "Bed Breaker" // double sex damage (requires strong intent)
#define TRAIT_WILDMAGIC "Wild Magic" //low chance for insane stuff to happen when casting
#define TRAIT_FIENDKISS "Kiss of the Fiend" //after casting some spells, hurl a firebolt at the same location
#define TRAIT_POISONBITE "Venomous Bite" // Adds tox damage on bites

//Caustic Additions
#define TRAIT_ABYSSORS_BLESSING "Abyssor's Blessing"
#define TRAIT_FLAMING_TOUCH "Flaming Touch"
Expand Down Expand Up @@ -158,7 +167,7 @@ GLOBAL_LIST_INIT(roguetraits, list(
TRAIT_SEEDKNOW = span_info("I know which seeds grow which crops."),
TRAIT_PERFECT_TRACKER = span_info("I am the perfect tracker. No tracks will deceive my eyes, nor will they hide their secrets from me."),//Hearthstone port.
TRAIT_NOCSIGHT = span_info("Noc blesses my eyes to be unburdened by the night."), //Hearthstone change.
TRAIT_CIVILIZEDBARBARIAN = span_info("Your fists are heavier."),
TRAIT_CIVILIZEDBARBARIAN = span_info("My fists are heavier and Improvised weapons are my specialty."),
TRAIT_COMICSANS = span_sans("I am cursed with a odd voice."),
TRAIT_SQUIRE_REPAIR = span_info("I know my way around my Master's tools."),
TRAIT_WATERBREATHING = span_info("I do not drown in bodies of water."),
Expand All @@ -169,17 +178,24 @@ GLOBAL_LIST_INIT(roguetraits, list(
TRAIT_DEATHSIGHT = span_info("I can feel when someone nearby draws the Undermaiden's attention."),
TRAIT_XYLIX = span_info("I know how to speak in code that only fellow tricksters can understand."),
TRAIT_CABAL = span_info("In secret, I have studied the ways of Her ascension, and know of others of the Cabal."),
TRAIT_HORDE = span_info("BY BLOOD AND BONE, I AM OF GRAGGAR'S ANOINTED! I FEEL THE STRENGTH IN OTHERS WHO ARE THE SAME."),
TRAIT_DEPRAVED = span_info("The languid scent of Her debauchery is known to me, and I can detect its sordid presence upon others."),
TRAIT_HORDE = span_bloody("BY BLOOD AND BONE, I AM OF GRAGGAR'S ANOINTED! I FEEL THE STRENGTH IN OTHERS WHO ARE THE SAME."),
TRAIT_DEPRAVED = span_love("The languid scent of Her debauchery is known to me, and I can detect its sordid presence upon others."),
//Hearthstone Port
TRAIT_MALUMSGRACE = "Malum is my muse.",
TRAIT_MALUMSGRACE = span_info("Malum is my muse."),
TRAIT_DEATHBYSNOOSNOO = span_bloody("It's an unlucky thing to share my bed, I can break pelvis with strong intent."),
TRAIT_STRONGTHROW = span_info("My throws are mighty!"),
TRAIT_MARTIALARTIST = span_info("I have better kicks."),
TRAIT_PUGILIST = span_info("I have stronger punches."),
TRAIT_WILDMAGIC = span_info("My magic sometimes has unexpected consequences."),
TRAIT_FIENDKISS = span_info("When I cast projectile magic, the fiend also hurls a fire bolt at the same location."),
TRAIT_POISONBITE = span_info("My bites inject venom into my target."),
//Caustic Changes
TRAIT_GOODRUNNER = span_info("I can run without breaking a sweat!"),
TRAIT_FORTITUDE = span_info("The typical drain I feel from day to day life is lessened, my athleticism greater."),
TRAIT_GUIDANCE = span_info("Arcyne assistance guides my weapons."),
TRAIT_ABYSSORS_BLESSING = span_info("I feel like I can course through water with ease... Yet, my body tires faster than I remembered."),
TRAIT_FLAMING_TOUCH = span_info("My arms surge with flames, each strike I deal burns my enemies at cost of my own health!"),
TRAIT_DECAYEDHANDS = span_warning("My hands have decayed for far too long, I do not have the dexterity to pick up items.")
TRAIT_DECAYEDHANDS = span_warning("My hands have decayed for far too long, I do not have the dexterity to pick up items."),
))

// trait accessor defines
Expand Down
18 changes: 16 additions & 2 deletions code/_globalvars/customization/organ_customization.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,22 @@ GLOBAL_LIST_INIT(named_penis_sizes, list(
"Small" = 1,
"Average" = 2,
"Large" = 3,
"massive" = 4,
"enormous" = 5,
))

GLOBAL_LIST_INIT(named_ball_sizes, list(
"small" = 1,
"average" = 2,
"large" = 3,
"massive" = 4,
"enormous" = 5,
"gigantic" = 6,
))

GLOBAL_LIST_INIT(named_breast_sizes, list(
"flat" = 0,
"sery small" = 1,
"Flat" = 0,
"Very small" = 1,
"small" = 2,
"normal" = 3,
"large" = 4,
Expand All @@ -37,6 +42,15 @@ GLOBAL_LIST_INIT(named_belly_sizes, list(
"ungodly big" = 10,
))

GLOBAL_LIST_INIT(named_butt_sizes, list(
"flat" = 0,
"small" = 1,
"medium" = 2,
"large" = 3,
"massive" = 4,
"enormous" = 5,
))

GLOBAL_LIST_INIT(customizer_choices, build_customizer_choices())
GLOBAL_LIST_INIT(customizers, build_customizers())

Expand Down
7 changes: 7 additions & 0 deletions code/_globalvars/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,13 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_SEEPRICES" = TRAIT_SEEPRICES,
//Hearthstone Port
"TRAIT_MALUMSGRACE" = TRAIT_MALUMSGRACE,
"TRAIT_DEATHBYSNOOSNOO" = TRAIT_DEATHBYSNOOSNOO,
"TRAIT_STRONGTHROW" = TRAIT_STRONGTHROW,
"TRAIT_MARTIALARTIST" = TRAIT_MARTIALARTIST,
"TRAIT_PUGILIST" = TRAIT_PUGILIST,
"TRAIT_POISONBITE" = TRAIT_POISONBITE,
"TRAIT_WILDMAGIC" = TRAIT_WILDMAGIC,
"TRAIT_FIENDKISS" = TRAIT_FIENDKISS,
//Caustic Changes
"TRAIT_ABYSSORS_BLESSING" = TRAIT_ABYSSORS_BLESSING, // NOT To be confused with Abyssors Swim! You will still fatigue in water!
"TRAIT_FLAMING_TOUCH" = TRAIT_FLAMING_TOUCH
Expand Down
1 change: 1 addition & 0 deletions code/_onclick/click.dm
Original file line number Diff line number Diff line change
Expand Up @@ -500,6 +500,7 @@
// swap_hand()

/atom/proc/MiddleClick(mob/user, params)
SEND_SIGNAL(src, COMSIG_ATOM_MIDDLE_CLICK, user)
return

/turf/open/MiddleClick(mob/user, params)
Expand Down
8 changes: 8 additions & 0 deletions code/_onclick/other_mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,12 @@
if(!apply_damage(dam2do, BRUTE, def_zone, armor_block, user))
nodmg = TRUE
next_attack_msg += " <span class='warning'>Armor stops the damage.</span>"
if(HAS_TRAIT(user, TRAIT_POISONBITE))
if(src.reagents)
var/poison = user.STACON/2
src.reagents.add_reagent(/datum/reagent/toxin/venom, poison/2)
src.reagents.add_reagent(/datum/reagent/medicine/soporpot, poison)
to_chat(user, span_warning("Your fangs inject venom into [src]!"))

var/datum/wound/caused_wound
if(!nodmg)
Expand Down Expand Up @@ -474,6 +480,8 @@
. = TRUE
if(interaction_flags_atom & INTERACT_ATOM_ATTACK_HAND)
. = _try_interact(user)
SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_HAND_RIGHT, user)


//Return a non FALSE value to cancel whatever called this from propagating, if it respects it.
/atom/proc/_try_interact(mob/user)
Expand Down
4 changes: 4 additions & 0 deletions code/controllers/subsystem/throwing.dm
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,10 @@ SUBSYSTEM_DEF(throwing)
src.target_zone = target_zone
src.extra = extra

if(HAS_TRAIT(src.target, TRAIT_STRONGTHROW))
src.maxrange *= 1.5
src.force *= 1.5

/datum/thrownthing/Destroy()
SSthrowing.processing -= thrownthing
thrownthing.throwing = null
Expand Down
Loading

0 comments on commit 4999025

Please sign in to comment.