Skip to content

Commit

Permalink
Ports Bloodsuckers and Monster Hunters from Fulpstation (yogstation13…
Browse files Browse the repository at this point in the history
…#13273)

* bs and mh

above

* updoot

d

* fix 2

* updoot 3

* updoot 4

* updoot 5

* quick psosible fix

* updoot 6

* quick fix 2

* pr updoot (probably)

* updoot 7

* possible maybable fix

* second maybable possible fix

* should work for checks

* updoot 8

* attempt 2

* mindslave hud

* reupdates hud.dmi

* quickfix 1

* hotfix 2

* quickfix 3

* quickfix 5

* quickfix 4

* quick fix 6

* clean 1

* quickfix 7

* quickfix 8

* turns all clans flavor only

* code improvement + fixes

* things i forgot

* Revert yarn

* fix to huds

* quickfix 9

* quickfix 10

* quickfix 11

* quick fix 12 (the lugening)

* fuck

Co-authored-by: Theos <[email protected]>

* d

Co-authored-by: John Willard <[email protected]>

* p

Co-authored-by: John Willard <[email protected]>

* saves yogstation

* penis

* why can't we have nice things

* quickfix 13

* ssssssssss

* hell

* summon traps

* this probably is a good idea

* heolp

* merge master into poggy

* Revert "merge master into poggy"

This reverts commit c346759.

* amogus

* possibly fixes the gamemode idk it compiles

* makes stuff not cringe

* i hate webeditor

* i hate webeditor

* i hate webeditor

* fixessss

* ducky

* 2

* o

Co-authored-by: adamsong <[email protected]>

Co-authored-by: Byemoh <[email protected]>
Co-authored-by: JohnFulpWillard <[email protected]>
Co-authored-by: Theos <[email protected]>
Co-authored-by: adamsong <[email protected]>
  • Loading branch information
5 people authored Apr 10, 2022
1 parent 76aab0c commit 7414777
Show file tree
Hide file tree
Showing 112 changed files with 7,435 additions and 15 deletions.
6 changes: 6 additions & 0 deletions code/__DEFINES/antagonists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -101,3 +101,9 @@
#define TIER_BLADE 5
#define TIER_3 6
#define TIER_ASCEND 7

//Bloodsuckers
#define IS_BLOODSUCKER(mob) (mob?.mind?.has_antag_datum(/datum/antagonist/bloodsucker))
#define IS_VASSAL(mob) (mob?.mind?.has_antag_datum(/datum/antagonist/vassal))
#define IS_MONSTERHUNTER(mob) (mob?.mind?.has_antag_datum(/datum/antagonist/monsterhunter))

2 changes: 2 additions & 0 deletions code/__DEFINES/atom_hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@
#define ANTAG_HUD_HERETIC 29
#define ANTAG_HUD_MINDSLAVE 30
#define ANTAG_HUD_ZOMBIE 31
#define ANTAG_HUD_BLOODSUCKER 32
#define ANTAG_HUD_MHUNTER 33

// Notification action types
#define NOTIFY_JUMP "jump"
Expand Down
70 changes: 70 additions & 0 deletions code/__DEFINES/bloodsuckers.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
/**
* Bloodsucker defines
*/
/// Determines Bloodsucker regeneration rate
#define BS_BLOOD_VOLUME_MAX_REGEN 700
/// Cost to torture someone, in blood
#define TORTURE_BLOOD_COST "15"
/// Cost to convert someone after successful torture, in blood
#define TORTURE_CONVERSION_COST "50"
/// Deals with constant processes off of LifeTick()
#define COMSIG_LIVING_BIOLOGICAL_LIFE "biological_life"
/// Once blood is this low, will enter Frenzy
#define FRENZY_THRESHOLD_ENTER 25
/// Once blood is this high, will exit Frenzy
#define FRENZY_THRESHOLD_EXIT 250
/// You have special interactions with Bloodsuckers
#define TRAIT_BLOODSUCKER_HUNTER "bloodsucker_hunter"

/**
* Cooldown defines
* Used in Cooldowns Bloodsuckers use to prevent spamming
*/
///Spam prevention for healing messages.
#define BLOODSUCKER_SPAM_HEALING (15 SECONDS)
///Span prevention for Sol messages.
#define BLOODSUCKER_SPAM_SOL (30 SECONDS)

/**
* Clan defines
*/
#define CLAN_BRUJAH "Brujah Clan"
#define CLAN_NOSFERATU "Nosferatu Clan"
#define CLAN_TREMERE "Tremere Clan"
#define CLAN_VENTRUE "Ventrue Clan"
#define CLAN_MALKAVIAN "Malkavian Clan"
#define CLAN_TOREADOR "Toreador Clan"
#define CLAN_GANGREL "Gangrel Clan"
#define CLAN_LASOMBRA "Lasombra Clan"

/**
* Power defines
*/
/// This Power can't be used in Torpor
#define BP_CANT_USE_IN_TORPOR (1<<0)
/// This Power can't be used in Frenzy unless you're part of Brujah
#define BP_CANT_USE_IN_FRENZY (1<<1)
/// This Power can't be used with a stake in you
#define BP_CANT_USE_WHILE_STAKED (1<<2)
/// This Power can't be used while incapacitated
#define BP_CANT_USE_WHILE_INCAPACITATED (1<<3)
/// This Power can't be used while unconscious
#define BP_CANT_USE_WHILE_UNCONSCIOUS (1<<4)

/// This Power can be purchased by Bloodsuckers
#define BLOODSUCKER_CAN_BUY (1<<0)
/// This Power can be purchased by Tremere Bloodsuckers
#define TREMERE_CAN_BUY (1<<1)
/// This Power can be purchased by Vassals
#define VASSAL_CAN_BUY (1<<2)
/// This Power can be purchased by Monster Hunters
#define HUNTER_CAN_BUY (1<<3)

/// This Power is a Toggled Power
#define BP_AM_TOGGLE (1<<0)
/// This Power is a Single-Use Power
#define BP_AM_SINGLEUSE (1<<1)
/// This Power has a Static cooldown
#define BP_AM_STATIC_COOLDOWN (1<<2)
/// This Power doesn't cost bloot to run while unconscious
#define BP_AM_COSTLESS_UNCONSCIOUS (1<<3)
3 changes: 3 additions & 0 deletions code/__DEFINES/melee.dm
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
#define MARTIALART_CQC_COOK "CQC cook"
#define MARTIALART_PLASMAFIST "plasma fist"
#define MARTIALART_FLYINGFANG "flying fang"
#define MARTIALART_HUNTERFU "hunterfu"
#define MARTIALART_FRENZYGRAB "frenzy grabbing"


//Weapon stat defines
#define SWING_SPEED "swing_speed"
Expand Down
9 changes: 9 additions & 0 deletions code/__DEFINES/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -488,3 +488,12 @@ GLOBAL_LIST_INIT(pda_styles, list(MONO, VT, ORBITRON, SHARE))
#define ALIGNMENT_GOOD "good"
#define ALIGNMENT_NEUT "neutral"
#define ALIGNMENT_EVIL "evil"

/// Whether we have succesfully hidden out blood level
#define BLOODSUCKER_HIDE_BLOOD "hide_blood_volume"
/// 1 tile down
#define ui_blood_display "WEST:6,CENTER-1:0"
/// 2 tiles down
#define ui_vamprank_display "WEST:6,CENTER-2:-5"
/// 6 pixels to the right, zero tiles & 5 pixels DOWN.
#define ui_sunlight_display "WEST:6,CENTER-0:0"
9 changes: 7 additions & 2 deletions code/__DEFINES/role_preferences.dm
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,10 @@
#define ROLE_HORROR "Eldritch Horror" // Yogs
#define ROLE_INFILTRATOR "Infiltrator" // Yogs
#define ROLE_ZOMBIE "Zombie"

#define ROLE_BLOODSUCKER "Bloodsucker"
#define ROLE_VAMPIRICACCIDENT "Vampiric Accident"
#define ROLE_BLOODSUCKERBREAKOUT "Bloodsucker Breakout"
#define ROLE_MONSTERHUNTER "Monster Hunter"

//Missing assignment means it's not a gamemode specific role, IT'S NOT A BUG OR ERROR.
//The gamemode specific ones are just so the gamemodes can query whether a player is old enough
Expand Down Expand Up @@ -85,7 +88,9 @@ GLOBAL_LIST_INIT(special_roles, list(
ROLE_DARKSPAWN = /datum/game_mode/darkspawn,
ROLE_SENTIENCE,
ROLE_ZOMBIE = /datum/game_mode/zombie,
ROLE_FUGITIVE
ROLE_FUGITIVE,
ROLE_BLOODSUCKER = /datum/game_mode/bloodsucker,
ROLE_MONSTERHUNTER,
))

//Job defines for what happens when you fail to qualify for any job during job selection
Expand Down
4 changes: 4 additions & 0 deletions code/__DEFINES/status_effects.dm
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@

#define STATUS_EFFECT_DETERMINED /datum/status_effect/determined //currently in a combat high from being seriously wounded

#define STATUS_EFFECT_FRENZY /datum/status_effect/frenzy //Makes you fast and stronger

/////////////
// DEBUFFS //
/////////////
Expand Down Expand Up @@ -147,6 +149,8 @@

#define STATUS_EFFECT_PROGENITORCURSE /datum/status_effect/progenitor_curse

#define STATUS_EFFECT_MASQUERADE /datum/status_effect/masquerade

/////////////
// SLIME //
/////////////
Expand Down
6 changes: 6 additions & 0 deletions code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@
#define TRAIT_EASILY_WOUNDED "easy_limb_wound"
#define TRAIT_HARDLY_WOUNDED "hard_limb_wound"
#define TRAIT_TOXINLOVER "toxinlover"
#define TRAIT_TOXIMMUNE "toxin_immune"
#define TRAIT_NOBREATH "no_breath"
#define TRAIT_ANTIMAGIC "anti_magic"
#define TRAIT_HOLY "holy"
Expand Down Expand Up @@ -216,6 +217,9 @@
#define TRAIT_NO_PASSIVE_HEATING "no-passive-heating"
#define TRAIT_BLOODY_MESS "bloody_mess" //from heparin, makes open bleeding wounds rapidly spill more blood
#define TRAIT_COAGULATING "coagulating" //from coagulant reagents, this doesn't affect the bleeding itself but does affect the bleed warning messages
#define TRAIT_NOPULSE "nopulse" // Your heart doesn't beat
#define TRAIT_MASQUERADE "masquerade" // Falsifies Health analyzer blood levels
#define TRAIT_COLDBLOODED "coldblooded" // Your body is literal room temperature. Does not make you immune to the temp

//non-mob traits
/// Used for limb-based paralysis, where replacing the limb will fix it.
Expand Down Expand Up @@ -319,6 +323,8 @@
#define GUARDIAN_TRAIT "guardian_trait"
#define RANDOM_BLACKOUTS "random_blackouts"
#define MADE_UNCLONEABLE "made-uncloneable"
#define BLOODSUCKER_TRAIT "bloodsucker_trait"
#define FRENZY_TRAIT "frenzy_trait"
#define HORROR_TRAIT "horror"

///Traits given by station traits
Expand Down
4 changes: 4 additions & 0 deletions code/_onclick/hud/hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
var/obj/screen/ling/chems/lingchemdisplay
var/obj/screen/ling/sting/lingstingdisplay

var/obj/screen/bloodsucker/blood_counter/blood_display
var/obj/screen/bloodsucker/rank_counter/vamprank_display
var/obj/screen/bloodsucker/sunlight_counter/sunlight_display

var/obj/screen/blobpwrdisplay

var/obj/screen/alien_plasma_display
Expand Down
33 changes: 33 additions & 0 deletions code/_onclick/hud/human.dm
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,31 @@
icon_state = "power_display"
screen_loc = ui_lingchemdisplay

/obj/screen/bloodsucker
icon = 'icons/mob/actions/actions_bloodsucker.dmi'
invisibility = INVISIBILITY_ABSTRACT

/obj/screen/bloodsucker/proc/clear()
invisibility = INVISIBILITY_ABSTRACT

/obj/screen/bloodsucker/proc/update_counter()
invisibility = 0

/obj/screen/bloodsucker/blood_counter
name = "Blood Consumed"
icon_state = "blood_display"
screen_loc = ui_blood_display

/obj/screen/bloodsucker/rank_counter
name = "Bloodsucker Rank"
icon_state = "rank"
screen_loc = ui_vamprank_display

/obj/screen/bloodsucker/sunlight_counter
name = "Solar Flare Timer"
icon_state = "sunlight_night"
screen_loc = ui_sunlight_display

/datum/hud/human/New(mob/living/carbon/human/owner)
..()
owner.overlay_fullscreen("see_through_darkness", /obj/screen/fullscreen/see_through_darkness)
Expand Down Expand Up @@ -302,6 +327,14 @@
devilsouldisplay = new /obj/screen/devil/soul_counter
infodisplay += devilsouldisplay

//bloodsuckers
blood_display = new /obj/screen/bloodsucker/blood_counter
infodisplay += blood_display
vamprank_display = new /obj/screen/bloodsucker/rank_counter
infodisplay += vamprank_display
sunlight_display = new /obj/screen/bloodsucker/sunlight_counter
infodisplay += sunlight_display

zone_select = new /obj/screen/zone_sel()
zone_select.icon = ui_style
zone_select.update_icon(mymob)
Expand Down
4 changes: 3 additions & 1 deletion code/datums/hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ GLOBAL_LIST_INIT(huds, list(
ANTAG_HUD_HERETIC = new/datum/atom_hud/antag/hidden(),
ANTAG_HUD_MINDSLAVE = new/datum/atom_hud/antag/hidden(),
ANTAG_HUD_ZOMBIE = new/datum/atom_hud/antag(),
ANTAG_HUD_INFILTRATOR = new/datum/atom_hud/antag() // Yogs
ANTAG_HUD_INFILTRATOR = new/datum/atom_hud/antag(), // Yogs
ANTAG_HUD_BLOODSUCKER = new/datum/atom_hud/antag(),
ANTAG_HUD_MHUNTER = new/datum/atom_hud/antag/hidden()
))

/datum/atom_hud
Expand Down
Loading

0 comments on commit 7414777

Please sign in to comment.