[reviewpls] Adds moodlets to the game - [Please give suggestions for trait additions in comments]

This commit is contained in:
Qustinnus
2018-03-08 02:15:57 +01:00
committed by CitadelStationBot
parent 4d0b7133c8
commit a96a28f3d6
86 changed files with 1220 additions and 43 deletions
@@ -13,7 +13,8 @@ GLOBAL_LIST_EMPTY(antagonists)
var/replace_banned = TRUE //Should replace jobbaned player with ghosts if granted.
var/list/objectives = list()
var/antag_memory = ""//These will be removed with antag datum
var/antag_moodlet //typepath of moodlet that the mob will gain with their status
//Antag panel properties
var/show_in_antagpanel = TRUE //This will hide adding this antag type in antag panel, use only for internal subtypes that shouldn't be added directly but still show if possessed by mind
var/antagpanel_category = "Uncategorized" //Antagpanel will display these together, REQUIRED
@@ -67,6 +68,7 @@ GLOBAL_LIST_EMPTY(antagonists)
if(!silent)
greet()
apply_innate_effects()
give_antag_moodies()
if(is_banned(owner.current) && replace_banned)
replace_banned_player()
@@ -88,6 +90,7 @@ GLOBAL_LIST_EMPTY(antagonists)
/datum/antagonist/proc/on_removal()
remove_innate_effects()
clear_antag_moodies()
if(owner)
LAZYREMOVE(owner.antag_datums, src)
if(!silent && owner.current)
@@ -103,6 +106,20 @@ GLOBAL_LIST_EMPTY(antagonists)
/datum/antagonist/proc/farewell()
return
/datum/antagonist/proc/give_antag_moodies()
if(!antag_moodlet)
return
GET_COMPONENT_FROM(mood, /datum/component/mood, owner.current)
if(mood)
mood.add_event("antag_moodlet", antag_moodlet)
/datum/antagonist/proc/clear_antag_moodies()
if(!antag_moodlet)
return
GET_COMPONENT_FROM(mood, /datum/component/mood, owner.current)
if(mood)
mood.add_event("antag_moodlet")
//Returns the team antagonist belongs to if any.
/datum/antagonist/proc/get_team()
return
@@ -183,7 +200,7 @@ GLOBAL_LIST_EMPTY(antagonists)
edit_memory(usr)
owner.traitor_panel()
return
//Some commands might delete/modify this datum clearing or changing owner
var/datum/mind/persistent_owner = owner
@@ -231,4 +248,4 @@ GLOBAL_LIST_EMPTY(antagonists)
name = custom_name
else
return
..()
..()
+2 -1
View File
@@ -4,6 +4,7 @@
job_rank = ROLE_BROTHER
var/special_role = ROLE_BROTHER
var/datum/team/brother_team/team
antag_moodlet = /datum/mood_event/focused
/datum/antagonist/brother/create_team(datum/team/brother_team/new_team)
if(!new_team)
@@ -151,4 +152,4 @@
add_objective(new/datum/objective/steal, TRUE)
/datum/team/brother_team/antag_listing_name()
return "[name] blood brothers"
return "[name] blood brothers"
@@ -7,6 +7,7 @@
roundend_category = "changelings"
antagpanel_category = "Changeling"
job_rank = ROLE_CHANGELING
antag_moodlet = /datum/mood_event/focused
var/you_are_greet = TRUE
var/give_objectives = TRUE
@@ -542,4 +543,4 @@
return ..() + "([changelingID])"
/datum/antagonist/changeling/xenobio/antag_listing_name()
return ..() + "(Xenobio)"
return ..() + "(Xenobio)"
@@ -4,6 +4,7 @@
roundend_category = "clock cultists"
antagpanel_category = "Clockcult"
job_rank = ROLE_SERVANT_OF_RATVAR
antag_moodlet = /datum/mood_event/cult
var/datum/action/innate/hierophant/hierophant_network = new()
var/datum/team/clockcult/clock_team
var/make_team = TRUE //This should be only false for tutorial scarabs
@@ -216,4 +217,4 @@
parts += "<span class='header'>Ratvar's servants were:</span>"
parts += printplayerlist(members - eminence)
return "<div class='panel clockborder'>[parts.Join("<br>")]</div>"
return "<div class='panel clockborder'>[parts.Join("<br>")]</div>"
+1
View File
@@ -4,6 +4,7 @@
name = "Cultist"
roundend_category = "cultists"
antagpanel_category = "Cult"
antag_moodlet = /datum/mood_event/cult
var/datum/action/innate/cult/comm/communion = new
var/datum/action/innate/cult/mastervote/vote = new
var/datum/action/innate/cult/blood_magic/magic = new
+5 -4
View File
@@ -9,6 +9,7 @@
var/role = ERT_SEC
var/high_alert = FALSE
show_in_antagpanel = FALSE
antag_moodlet = /datum/mood_event/focused
/datum/antagonist/ert/on_gain()
update_name()
@@ -71,11 +72,11 @@
/datum/antagonist/ert/greet()
if(!ert_team)
return
var/leader = role == ERT_LEADER || role == DEATHSQUAD_LEADER
to_chat(owner, "<B><font size=3 color=red>You are the [name].</font></B>")
var/missiondesc = "Your squad is being sent on a mission to [station_name()] by Nanotrasen's Security Division."
if(leader) //If Squad Leader
missiondesc += " Lead your squad to ensure the completion of the mission. Board the shuttle when your team is ready."
@@ -83,6 +84,6 @@
missiondesc += " Follow orders given to you by your squad leader."
if(role != DEATHSQUAD && role != DEATHSQUAD_LEADER)
missiondesc += "Avoid civilian casualites when possible."
missiondesc += "<BR><B>Your Mission</B> : [ert_team.mission.explanation_text]"
to_chat(owner,missiondesc)
+2 -1
View File
@@ -3,6 +3,7 @@
antagpanel_category = "Ninja"
job_rank = ROLE_NINJA
show_name_in_check_antagonists = TRUE
antag_moodlet = /datum/mood_event/focused
var/helping_station = FALSE
var/give_objectives = TRUE
var/give_equipment = TRUE
@@ -149,4 +150,4 @@
/datum/antagonist/ninja/proc/update_ninja_icons_removed(var/mob/living/carbon/human/ninja)
var/datum/atom_hud/antag/ninjahud = GLOB.huds[ANTAG_HUD_NINJA]
ninjahud.leave_hud(ninja)
set_antag_hud(ninja, null)
set_antag_hud(ninja, null)
+3 -2
View File
@@ -3,6 +3,7 @@
roundend_category = "syndicate operatives" //just in case
antagpanel_category = "NukeOp"
job_rank = ROLE_OPERATIVE
antag_moodlet = /datum/mood_event/focused
var/datum/team/nuclear/nuke_team
var/always_new_team = FALSE //If not assigned a team by default ops will try to join existing ones, set this to TRUE to always create new team.
var/send_to_spawnpoint = TRUE //Should the user be moved to default spawnpoint.
@@ -136,7 +137,7 @@
to_chat(owner.current, "The nuclear authorization code is: <B>[code]</B>")
else
to_chat(admin, "<span class='danger'>No valid nuke found!</span>")
/datum/antagonist/nukeop/leader
name = "Nuclear Operative Leader"
nukeop_outfit = /datum/outfit/syndicate/leader
@@ -366,4 +367,4 @@
return common_part + disk_report
/datum/team/nuclear/is_gamemode_hero()
return SSticker.mode.name == "nuclear emergency"
return SSticker.mode.name == "nuclear emergency"
@@ -6,6 +6,7 @@
roundend_category = "revolutionaries" // if by some miracle revolutionaries without revolution happen
antagpanel_category = "Revolution"
job_rank = ROLE_REV
antag_moodlet = /datum/mood_event/revolution
var/hud_type = "rev"
var/datum/team/revolution/rev_team
@@ -365,4 +366,4 @@
return common_part + heads_report
/datum/team/revolution/is_gamemode_hero()
return SSticker.mode.name == "revolution"
return SSticker.mode.name == "revolution"
@@ -3,6 +3,7 @@
roundend_category = "traitors"
antagpanel_category = "Traitor"
job_rank = ROLE_TRAITOR
antag_moodlet = /datum/mood_event/focused
var/should_specialise = TRUE //do we split into AI and human, set to true on inital assignment only
var/ai_datum = /datum/antagonist/traitor/AI
var/human_datum = /datum/antagonist/traitor/human
@@ -11,7 +12,7 @@
var/give_objectives = TRUE
var/should_give_codewords = TRUE
/datum/antagonist/traitor/human
show_in_antagpanel = FALSE
@@ -343,7 +344,7 @@
var/static/icon/badass = icon('icons/badass.dmi', "badass")
uplink_text += "<BIG>[icon2html(badass, world)]</BIG>"
result += uplink_text
result += objectives_text
var/special_role_text = lowertext(name)
@@ -361,4 +362,4 @@
<b>The code responses were:</b> <span class='codephrase'>[GLOB.syndicate_code_response]</span><br>"
/datum/antagonist/traitor/is_gamemode_hero()
return SSticker.mode.name == "traitor"
return SSticker.mode.name == "traitor"
+2 -1
View File
@@ -3,6 +3,7 @@
roundend_category = "wizards/witches"
antagpanel_category = "Wizard"
job_rank = ROLE_WIZARD
antag_moodlet = /datum/mood_event/focused
var/give_objectives = TRUE
var/strip = TRUE //strip before equipping
var/allow_rename = TRUE
@@ -331,4 +332,4 @@
parts += "<span class='header'>[master_wizard.owner.name] apprentices were:</span>"
parts += printplayerlist(members - master_wizard.owner)
return "<div class='panel redborder'>[parts.Join("<br>")]</div>"
return "<div class='panel redborder'>[parts.Join("<br>")]</div>"