From 9b20879ba52481cd8419a917aecdce7bc5a96a14 Mon Sep 17 00:00:00 2001 From: Artur Date: Sun, 1 Dec 2019 00:07:07 +0200 Subject: [PATCH] Ditto --- code/__DEFINES/antagonists.dm | 16 ++++++++++++ code/__DEFINES/bloodsucker.dm | 14 ---------- .../bloodsucker/datum_bloodsucker.dm | 23 ++-------------- .../bloodsucker/powers/bs_gohome.dm | 26 ------------------- .../bloodsucker/powers/bs_haste.dm | 11 -------- .../bloodsucker/powers/bs_masquerade.dm | 1 - .../antagonists/bloodsucker/powers/bs_veil.dm | 11 +++++++- .../bloodsucker/powers/v_recuperate.dm | 7 ----- 8 files changed, 28 insertions(+), 81 deletions(-) delete mode 100644 code/__DEFINES/bloodsucker.dm diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index b2f05fd5f8..d25f8779c0 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -40,3 +40,19 @@ #define NOT_DOMINATING -1 #define MAX_LEADERS_GANG 4 #define INITIAL_DOM_ATTEMPTS 3 + +//Bloodsucker defines +// Bloodsucker related antag datums +#define ANTAG_DATUM_BLOODSUCKER /datum/antagonist/bloodsucker +#define ANTAG_DATUM_VASSAL /datum/antagonist/vassal +#define ANTAG_DATUM_HUNTER /datum/antagonist/vamphunter + +// BLOODSUCKER +#define BLOODSUCKER_LEVEL_TO_EMBRACE 3 +#define BLOODSUCKER_FRENZY_TIME 25 // How long the vamp stays in frenzy. +#define BLOODSUCKER_FRENZY_OUT_TIME 300 // How long the vamp goes back into frenzy. +#define BLOODSUCKER_STARVE_VOLUME 5 // Amount of blood, below which a Vamp is at risk of frenzy. + +#define CAT_STRUCTURE "Structures" + +#define MARTIALART_HUNTER "hunter-fu" diff --git a/code/__DEFINES/bloodsucker.dm b/code/__DEFINES/bloodsucker.dm deleted file mode 100644 index 08b70004cc..0000000000 --- a/code/__DEFINES/bloodsucker.dm +++ /dev/null @@ -1,14 +0,0 @@ -// Bloodsucker related antag datums -#define ANTAG_DATUM_BLOODSUCKER /datum/antagonist/bloodsucker -#define ANTAG_DATUM_VASSAL /datum/antagonist/vassal -#define ANTAG_DATUM_HUNTER /datum/antagonist/vamphunter - -// BLOODSUCKER -#define BLOODSUCKER_LEVEL_TO_EMBRACE 3 -#define BLOODSUCKER_FRENZY_TIME 25 // How long the vamp stays in frenzy. -#define BLOODSUCKER_FRENZY_OUT_TIME 300 // How long the vamp goes back into frenzy. -#define BLOODSUCKER_STARVE_VOLUME 5 // Amount of blood, below which a Vamp is at risk of frenzy. - -#define CAT_STRUCTURE "Structures" - -#define MARTIALART_HUNTER "hunter-fu" diff --git a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm index 2dba2f9587..6561c51a6e 100644 --- a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm +++ b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm @@ -262,7 +262,6 @@ datum/antagonist/bloodsucker/proc/RankUp() set waitfor = FALSE if (!owner || !owner.current) return - vamplevel_unspent ++ // Spend Rank Immediately? if (istype(owner.current.loc, /obj/structure/closet/crate/coffin)) @@ -272,7 +271,6 @@ datum/antagonist/bloodsucker/proc/RankUp() if (vamplevel_unspent >= 2) to_chat(owner, "Bloodsucker Tip: If you cannot find or steal a coffin to use, they can be built from wooden planks.
") - datum/antagonist/bloodsucker/proc/LevelUpPowers() for(var/datum/action/bloodsucker/power in powers) power.level_current ++ @@ -281,10 +279,9 @@ datum/antagonist/bloodsucker/proc/SpendRank() set waitfor = FALSE if (vamplevel_unspent <= 0 || !owner || !owner.current || !owner.current.client) return - ///////// // Powers - + //TODO: Make this into a radial // Purchase Power Prompt var/list/options = list() // Taken from gasmask.dm, for Clown Masks. for(var/pickedpower in typesof(/datum/action/bloodsucker)) @@ -293,7 +290,6 @@ datum/antagonist/bloodsucker/proc/SpendRank() if (!(locate(power) in powers) && initial(power.bloodsucker_can_buy)) options[initial(power.name)] = power // TESTING: After working with TGUI, it seems you can use initial() to view the variables inside a path? options["\[ Not Now \]"] = null - // Abort? if (options.len > 1) var/choice = input(owner.current, "You have the opportunity to grow more ancient. Select a power to advance your Rank.", "Your Blood Thickens...") in options @@ -312,12 +308,10 @@ datum/antagonist/bloodsucker/proc/SpendRank() to_chat(owner.current, "You have learned [initial(P.name)]!") else to_chat(owner.current, "You grow more ancient by the night!") - ///////// // Advance Powers (including new) LevelUpPowers() - - ///////// + //////// // Advance Stats if (ishuman(owner.current)) var/mob/living/carbon/human/H = owner.current @@ -332,34 +326,21 @@ datum/antagonist/bloodsucker/proc/SpendRank() regenRate += 0.05 // Points of brute healed (starts at 0.3) feedAmount += 2 // Increase how quickly I munch down vics (15) maxBloodVolume += 50 // Increase my max blood (600) - - ///////// - vamplevel ++ vamplevel_unspent -- // Assign True Reputation if (vamplevel == 4) SelectReputation(am_fledgling=FALSE, forced=TRUE) - to_chat(owner.current, "You are now a rank [vamplevel] Bloodsucker. Your strength, resistence, health, feed rate, regen rate, and maximum blood have all increased!") to_chat(owner.current, "Your existing powers have all ranked up as well!") to_chat(owner.current, "However, your weakness to fire and sunlight have also increased!") - update_hud(TRUE) - owner.current.playsound_local(null, 'sound/effects/pope_entry.ogg', 25, 1) // Play THIS sound for user only. The "null" is where turf would go if a location was needed. Null puts it right in their head. - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - - //This handles the application of antag huds/special abilities /datum/antagonist/bloodsucker/apply_innate_effects(mob/living/mob_override) return diff --git a/code/modules/antagonists/bloodsucker/powers/bs_gohome.dm b/code/modules/antagonists/bloodsucker/powers/bs_gohome.dm index 4d76b93418..514fa8805a 100644 --- a/code/modules/antagonists/bloodsucker/powers/bs_gohome.dm +++ b/code/modules/antagonists/bloodsucker/powers/bs_gohome.dm @@ -17,7 +17,6 @@ must_be_capacitated = TRUE can_be_immobilized = TRUE - /datum/action/bloodsucker/gohome/CheckCanUse(display_error) . = ..() if(!.) @@ -28,52 +27,32 @@ if (display_error) to_chat(owner, "Your coffin has been destroyed!") return FALSE - return TRUE - - /datum/action/bloodsucker/gohome/ActivatePower() - var/mob/living/carbon/user = owner var/datum/antagonist/bloodsucker/bloodsuckerdatum = owner.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) - - // IMPORTANT: Check for lair at every step! It might get destroyed. - to_chat(user, "You focus on separating your consciousness from your physical form...") - - // STEP ONE: Flicker Lights - - // From statue.dm for(var/obj/machinery/light/L in view(3, get_turf(owner))) // /obj/machinery/light/proc/flicker(var/amount = rand(10, 20)) L.flicker(5) playsound(get_turf(owner), 'sound/effects/singlebeat.ogg', 20, 1) - sleep(50) - for(var/obj/machinery/light/L in view(3, get_turf(owner))) // /obj/machinery/light/proc/flicker(var/amount = rand(10, 20)) L.flicker(5) playsound(get_turf(owner), 'sound/effects/singlebeat.ogg', 40, 1) - sleep(50) - for(var/obj/machinery/light/L in view(6, get_turf(owner))) // /obj/machinery/light/proc/flicker(var/amount = rand(10, 20)) L.flicker(5) playsound(get_turf(owner), 'sound/effects/singlebeat.ogg', 60, 1) - - // ( STEP TWO: Lights OFF? ) - // CHECK: Still have Coffin? if (!istype(bloodsuckerdatum) || !bloodsuckerdatum.coffin) to_chat(user, "Your coffin has been destroyed! You no longer have a destination.") return FALSE - if (!owner) return - // SEEN?: (effects ONLY if there are witnesses! Otherwise you just POOF) // NOTE: Stolen directly from statue.dm, thanks guys! var/am_seen = FALSE // Do Effects (seen by anyone) @@ -89,7 +68,6 @@ if (!M.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)) drop_item = TRUE break - // LOSE CUFFS if(user.handcuffed) var/obj/O = user.handcuffed @@ -97,7 +75,6 @@ if(user.legcuffed) var/obj/O = user.legcuffed user.dropItemToGround(O) - // SEEN! if (drop_item) // DROP: Clothes, held items, and cuffs etc @@ -116,7 +93,6 @@ puff.effect_type = /obj/effect/particle_effect/smoke/vampsmoke puff.set_up(3, 0, get_turf(owner)) puff.start() - // TELEPORT: Move to Coffin & Close it! do_teleport(owner, bloodsuckerdatum.coffin, no_effects=TRUE) // in teleport.dm? // SLEEP @@ -134,8 +110,6 @@ bloodsuckerdatum.coffin.update_icon() // Lock Coffin bloodsuckerdatum.coffin.LockMe(owner) - - // ( STEP FIVE: Create animal at prev location? ) //var/mob/living/simple_animal/SA = /mob/living/simple_animal/hostile/retaliate/bat // pick(/mob/living/simple_animal/mouse,/mob/living/simple_animal/mouse,/mob/living/simple_animal/mouse, /mob/living/simple_animal/hostile/retaliate/bat) //prob(300) /mob/living/simple_animal/mouse, //new SA (owner.loc) diff --git a/code/modules/antagonists/bloodsucker/powers/bs_haste.dm b/code/modules/antagonists/bloodsucker/powers/bs_haste.dm index 8cfed3192a..53db94ef66 100644 --- a/code/modules/antagonists/bloodsucker/powers/bs_haste.dm +++ b/code/modules/antagonists/bloodsucker/powers/bs_haste.dm @@ -14,10 +14,6 @@ message_Trigger = ""//"Whom will you subvert to your will?" bloodsucker_can_buy = TRUE must_be_capacitated = TRUE - //var/datum/martial_art/vamphaste/haste_cqc // Assign this when - - - /datum/action/bloodsucker/targeted/haste/CheckCanUse(display_error) . = ..() @@ -30,11 +26,9 @@ return FALSE return TRUE - /datum/action/bloodsucker/targeted/haste/CheckValidTarget(atom/A) return isturf(A) || A.loc != owner.loc // Anything will do, if it's not me or my square - /datum/action/bloodsucker/targeted/haste/CheckCanTarget(atom/A, display_error) // DEFAULT CHECKS (Distance) if (!..()) @@ -44,8 +38,6 @@ // return FALSE return TRUE - - /datum/action/bloodsucker/targeted/haste/FireTargetedPower(atom/A) // set waitfor = FALSE <---- DONT DO THIS!We WANT this power to hold up ClickWithPower(), so that we can unlock the power when it's done. var/mob/living/user = owner @@ -59,7 +51,6 @@ while(get_turf(owner) != T && safety > 0 && !(isliving(target) && target.Adjacent(owner))) user.canmove = FALSE //Dont move while doing the thing, or itll break safety -- - // Did I get knocked down? if (owner && owner.incapacitated(ignore_restraints=TRUE,ignore_grab=TRUE))// owner.incapacitated()) // We're gonna cancel. But am I on the ground? Spin me! @@ -68,7 +59,6 @@ new /datum/forced_movement(owner, get_ranged_target_turf(owner, send_dir, 1), 1, FALSE) owner.spin(10) break - // Spin/Stun people we pass. //var/mob/living/newtarget = locate(/mob/living) in oview(1, owner) var/list/mob/living/foundtargets = list() @@ -87,7 +77,6 @@ if (user) user.update_canmove() //Let the poor guy move again - /datum/action/bloodsucker/targeted/haste/DeactivatePower(mob/living/user = owner, mob/living/target) ..() // activate = FALSE user.update_canmove() diff --git a/code/modules/antagonists/bloodsucker/powers/bs_masquerade.dm b/code/modules/antagonists/bloodsucker/powers/bs_masquerade.dm index 7a35d9edfa..6ee17b3014 100644 --- a/code/modules/antagonists/bloodsucker/powers/bs_masquerade.dm +++ b/code/modules/antagonists/bloodsucker/powers/bs_masquerade.dm @@ -30,7 +30,6 @@ // NOTE: Firing off vulgar powers disables your Masquerade! - /*/datum/action/bloodsucker/masquerade/CheckCanUse(display_error) if(!..(display_error))// DEFAULT CHECKS return FALSE diff --git a/code/modules/antagonists/bloodsucker/powers/bs_veil.dm b/code/modules/antagonists/bloodsucker/powers/bs_veil.dm index 1985f6be13..02fb49a536 100644 --- a/code/modules/antagonists/bloodsucker/powers/bs_veil.dm +++ b/code/modules/antagonists/bloodsucker/powers/bs_veil.dm @@ -24,8 +24,11 @@ var/prev_hair_color var/prev_facial_hair_color var/prev_underwear + var/prev_undie_color var/prev_undershirt + var/prev_shirt_color var/prev_socks + var/prev_socks_color var/prev_disfigured var/list/prev_features // For lizards and such @@ -72,13 +75,16 @@ prev_hair_color = H.hair_color prev_facial_hair_color = H.facial_hair_color prev_underwear = H.underwear + prev_undie_color = H.undie_color prev_undershirt = H.undershirt + prev_shirt_color = H.shirt_color prev_socks = H.socks + prev_socks_color = H.socks_color //prev_eye_color prev_disfigured = HAS_TRAIT(H, TRAIT_DISFIGURED) // I was disfigured! //prev_disabilities = H.disabilities prev_features = H.dna.features - // Change Appearance + // Change Appearance, not randomizing clothes colour, itll just be janky H.gender = pick(MALE, FEMALE) H.skin_tone = random_skin_tone() H.hair_style = random_hair_style(H.gender) @@ -127,8 +133,11 @@ H.hair_color = prev_hair_color H.facial_hair_color = prev_facial_hair_color H.underwear = prev_underwear + H.undie_color = prev_undie_color H.undershirt = prev_undershirt + H.shirt_color = prev_shirt_color H.socks = prev_socks + H.socks_color = prev_socks_color //H.disabilities = prev_disabilities // Restore HUSK, CLUMSY, etc. if (prev_disfigured) diff --git a/code/modules/antagonists/bloodsucker/powers/v_recuperate.dm b/code/modules/antagonists/bloodsucker/powers/v_recuperate.dm index f2496e63cc..27277b215b 100644 --- a/code/modules/antagonists/bloodsucker/powers/v_recuperate.dm +++ b/code/modules/antagonists/bloodsucker/powers/v_recuperate.dm @@ -1,7 +1,3 @@ - - - - /datum/action/bloodsucker/vassal/recuperate name = "Sanguine Recuperation" desc = "Slowly heal brute damage while active. This process is exhausting, and requires some of your tainted blood." @@ -9,9 +5,6 @@ amToggle = TRUE bloodcost = 5 cooldown = 100 - - - // Deal STAMINA damage over time, trickle down blood, and heal wounds. /datum/action/bloodsucker/vassal/recuperate/CheckCanUse(display_error)