|
| 1 | +/datum/antagonist/bloodsucker |
| 2 | + ///Used for assigning your name |
| 3 | + var/bloodsucker_name |
| 4 | + ///Used for assigning your title |
| 5 | + var/bloodsucker_title |
| 6 | + ///Used for assigning your reputation |
| 7 | + var/bloodsucker_reputation |
| 8 | + |
| 9 | +//////////////////////////////////////////////////////////////////////////////////// |
| 10 | +//--------------------------------Credits flavour---------------------------------// |
| 11 | +//////////////////////////////////////////////////////////////////////////////////// |
| 12 | +/// Evaluates the conditions of the bloodsucker at the end of each round to pick a flavor message to add |
| 13 | +/datum/antagonist/bloodsucker/proc/get_flavor(objectives_complete, optional_objectives_complete) |
| 14 | + var/list/flavor = list() |
| 15 | + var/flavor_message |
| 16 | + var/alive = owner?.current?.stat != DEAD //Technically not necessary because of Final Death objective? |
| 17 | + var/escaped = ((owner.current.onCentCom() || owner.current.onSyndieBase()) && alive) |
| 18 | + flavor += "<div><font color='#6d6dff'>Epilogue: </font>" |
| 19 | + var/message_color = "#ef2f3c" |
| 20 | + |
| 21 | + flavor_message += "flavour texts are a work in progress, stay tuned." |
| 22 | + // if(objectives_complete) |
| 23 | + // if(optional_objectives_complete) |
| 24 | + // message_color = "#008000" |
| 25 | + // if(broke_masquerade) |
| 26 | + // if(escaped) |
| 27 | + // flavor_message += pick(list( |
| 28 | + // "What matters of the Masquerade to you? Let it crumble into dust as your tyranny whips forward to dine on more stations. |
| 29 | + // News of your butchering exploits will quickly spread, and you know what will encompass the minds of mortals and undead alike. Fear." |
| 30 | + // )) |
| 31 | + // else if(alive) |
| 32 | + // flavor_message += pick(list( |
| 33 | + // "Blood still pumps in your veins as you lay stranded on the station. No doubt the wake of chaos left in your path will attract danger, but greater power than you've ever felt courses through your body. |
| 34 | + // Let the Camarilla and the witchers come. You will be waiting." |
| 35 | + // )) |
| 36 | + // else |
| 37 | + // if(escaped) |
| 38 | + // flavor_message += pick(list( |
| 39 | + // "You step off the spacecraft with a mark of pride at a superbly completed mission. Upon arriving back at CentCom, an unassuming assistant palms you an invitation stamped with the Camarilla seal. |
| 40 | + // High society awaits: a delicacy you have earned." |
| 41 | + // )) |
| 42 | + // else if(alive) |
| 43 | + // flavor_message += pick(list( |
| 44 | + // "This station has become your own slice of paradise. Your mission completed, you turn on the others who were stranded, ripe for your purposes. |
| 45 | + // Who knows? If they prove to elevate your power enough, perhaps a new bloodline might be founded here." |
| 46 | + // )) |
| 47 | + // else |
| 48 | + // message_color = "#517fff" |
| 49 | + // if(broke_masquerade) |
| 50 | + // if(escaped) |
| 51 | + // flavor_message += pick(list( |
| 52 | + // "Your mission accomplished, you step off the spacecraft, feeling the mark of exile on your neck. Your allies gone, your veins thrum with a singular purpose: survival." |
| 53 | + // )) |
| 54 | + // else if(alive) |
| 55 | + // flavor_message += pick(list( |
| 56 | + // "You survived, but you broke the Masquerade, your blood-stained presence clear and your power limited. No doubt death in the form of claw or stake hails its approach. Perhaps it's time to understand the cattles' fascinations with the suns." |
| 57 | + // )) |
| 58 | + // else |
| 59 | + // if(escaped) |
| 60 | + // flavor_message += pick(list( |
| 61 | + // "A low profile has always suited you best, conspiring enough to satiate the clan and keep your head low. It's not luxorious living, though death is a less kind alternative. On to the next station." |
| 62 | + // )) |
| 63 | + // else if(alive) |
| 64 | + // flavor_message += pick(list( |
| 65 | + // "You completed your mission and kept your identity free of heresy, though your mark here is not strong enough to lay a claim. Best stow away when the next shuttle comes around." |
| 66 | + // )) |
| 67 | + |
| 68 | + if(!message_color || (!alive && !escaped)) //perish or just fuck up and fail your primary objectives |
| 69 | + message_color = "#ef2f3c" |
| 70 | + flavor_message += pick(list( |
| 71 | + "Thus ends the story of [return_full_name(TRUE)]. No doubt future generations will look back on your legacy and reflect on the lessons of the past. If they remember you at all." |
| 72 | + )) |
| 73 | + |
| 74 | + flavor += "<font color=[message_color]>[flavor_message]</font></div>" |
| 75 | + return "<div>[flavor.Join("<br>")]</div>" |
| 76 | + |
| 77 | + |
| 78 | +/* |
| 79 | + * # Bloodsucker Names |
| 80 | + * |
| 81 | + * All Bloodsuckers get a name, and gets a better one when they hit Rank 4. |
| 82 | + */ |
| 83 | + |
| 84 | +/// Names |
| 85 | +/datum/antagonist/bloodsucker/proc/SelectFirstName() |
| 86 | + if(owner.current.gender == MALE) |
| 87 | + bloodsucker_name = pick( |
| 88 | + "Desmond","Rudolph","Dracula","Vlad","Pyotr","Gregor", |
| 89 | + "Cristian","Christoff","Marcu","Andrei","Constantin", |
| 90 | + "Gheorghe","Grigore","Ilie","Iacob","Luca","Mihail","Pavel", |
| 91 | + "Vasile","Octavian","Sorin","Sveyn","Aurel","Alexe","Iustin", |
| 92 | + "Theodor","Dimitrie","Octav","Damien","Magnus","Caine","Abel", // Romanian/Ancient |
| 93 | + "Lucius","Gaius","Otho","Balbinus","Arcadius","Romanos","Alexios","Vitellius", // Latin |
| 94 | + "Melanthus","Teuthras","Orchamus","Amyntor","Axion", // Greek |
| 95 | + "Thoth","Thutmose","Osorkon,","Nofret","Minmotu","Khafra", // Egyptian |
| 96 | + "Dio", |
| 97 | + ) |
| 98 | + else |
| 99 | + bloodsucker_name = pick( |
| 100 | + "Islana","Tyrra","Greganna","Pytra","Hilda", |
| 101 | + "Andra","Crina","Viorela","Viorica","Anemona", |
| 102 | + "Camelia","Narcisa","Sorina","Alessia","Sophia", |
| 103 | + "Gladda","Arcana","Morgan","Lasarra","Ioana","Elena", |
| 104 | + "Alina","Rodica","Teodora","Denisa","Mihaela", |
| 105 | + "Svetla","Stefania","Diyana","Kelssa","Lilith", // Romanian/Ancient |
| 106 | + "Alexia","Athanasia","Callista","Karena","Nephele","Scylla","Ursa", // Latin |
| 107 | + "Alcestis","Damaris","Elisavet","Khthonia","Teodora", // Greek |
| 108 | + "Nefret","Ankhesenpep", // Egyptian |
| 109 | + ) |
| 110 | + |
| 111 | +/datum/antagonist/bloodsucker/proc/SelectTitle(am_fledgling = 0, forced = FALSE) |
| 112 | + // Already have Title |
| 113 | + if(!forced && bloodsucker_title != null) |
| 114 | + return |
| 115 | + // Titles [Master] |
| 116 | + if(!am_fledgling) |
| 117 | + if(owner.current.gender == MALE) |
| 118 | + bloodsucker_title = pick ("Count","Baron","Viscount","Prince","Duke","Tzar","Dreadlord","Lord","Master") |
| 119 | + else |
| 120 | + bloodsucker_title = pick ("Countess","Baroness","Viscountess","Princess","Duchess","Tzarina","Dreadlady","Lady","Mistress") |
| 121 | + to_chat(owner, span_announce("You have earned a title! You are now known as <i>[return_full_name(TRUE)]</i>!")) |
| 122 | + // Titles [Fledgling] |
| 123 | + else |
| 124 | + bloodsucker_title = null |
| 125 | + |
| 126 | + |
| 127 | + |
| 128 | +/datum/antagonist/bloodsucker/proc/AmFledgling() |
| 129 | + return !bloodsucker_title |
| 130 | + |
| 131 | +/datum/antagonist/bloodsucker/proc/return_full_name(include_rep = FALSE) |
| 132 | + |
| 133 | + var/fullname |
| 134 | + // Name First |
| 135 | + fullname = (bloodsucker_name ? bloodsucker_name : owner.current.name) |
| 136 | + // Title |
| 137 | + if(bloodsucker_title) |
| 138 | + fullname = bloodsucker_title + " " + fullname |
| 139 | + // Rep |
| 140 | + if(include_rep && bloodsucker_reputation) |
| 141 | + fullname = fullname + " the " + bloodsucker_reputation |
| 142 | + |
| 143 | + return fullname |
| 144 | + |
| 145 | +/datum/antagonist/bloodsucker/proc/SelectReputation(am_fledgling = FALSE, forced = FALSE) |
| 146 | + // Already have Reputation |
| 147 | + if(!forced && bloodsucker_reputation != null) |
| 148 | + return |
| 149 | + |
| 150 | + if(am_fledgling) |
| 151 | + bloodsucker_reputation = pick( |
| 152 | + "Crude","Callow","Unlearned","Neophyte","Novice","Unseasoned", |
| 153 | + "Fledgling","Young","Neonate","Scrapling","Untested","Unproven", |
| 154 | + "Unknown","Newly Risen","Born","Scavenger","Unknowing","Unspoiled", |
| 155 | + "Disgraced","Defrocked","Shamed","Meek","Timid","Broken","Fresh", |
| 156 | + ) |
| 157 | + else if(owner.current.gender == MALE && prob(10)) |
| 158 | + bloodsucker_reputation = pick("King of the Damned", "Blood King", "Emperor of Blades", "Sinlord", "God-King") |
| 159 | + else if(owner.current.gender == FEMALE && prob(10)) |
| 160 | + bloodsucker_reputation = pick("Queen of the Damned", "Blood Queen", "Empress of Blades", "Sinlady", "God-Queen") |
| 161 | + else |
| 162 | + bloodsucker_reputation = pick( |
| 163 | + "Butcher","Blood Fiend","Crimson","Red","Black","Terror", |
| 164 | + "Nightman","Feared","Ravenous","Fiend","Malevolent","Wicked", |
| 165 | + "Ancient","Plaguebringer","Sinister","Forgotten","Wretched","Baleful", |
| 166 | + "Inqisitor","Harvester","Reviled","Robust","Betrayer","Destructor", |
| 167 | + "Damned","Accursed","Terrible","Vicious","Profane","Vile", |
| 168 | + "Depraved","Foul","Slayer","Manslayer","Sovereign","Slaughterer", |
| 169 | + "Forsaken","Mad","Dragon","Savage","Villainous","Nefarious", |
| 170 | + "Inquisitor","Marauder","Horrible","Immortal","Undying","Overlord", |
| 171 | + "Corrupt","Hellspawn","Tyrant","Sanguineous", |
| 172 | + ) |
| 173 | + |
| 174 | + to_chat(owner, span_announce("You have earned a reputation! You are now known as <i>[return_full_name(TRUE)]</i>!")) |
0 commit comments