mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-11 10:22:13 +00:00
Revert "i can't believe kevin made me code"
This reverts commit 7f38564838.
This commit is contained in:
@@ -56,10 +56,6 @@
|
|||||||
#define ADMIN_LOOKUPFLW(user) "[key_name_admin(user)][ADMIN_QUE(user)] [ADMIN_FLW(user)]"
|
#define ADMIN_LOOKUPFLW(user) "[key_name_admin(user)][ADMIN_QUE(user)] [ADMIN_FLW(user)]"
|
||||||
#define ADMIN_SET_SD_CODE "(<a href='?_src_=holder;[HrefToken(TRUE)];set_selfdestruct_code=1'>SETCODE</a>)"
|
#define ADMIN_SET_SD_CODE "(<a href='?_src_=holder;[HrefToken(TRUE)];set_selfdestruct_code=1'>SETCODE</a>)"
|
||||||
#define ADMIN_FULLMONTY_NONAME(user) "[ADMIN_QUE(user)] [ADMIN_PP(user)] [ADMIN_VV(user)] [ADMIN_SM(user)] [ADMIN_FLW(user)] [ADMIN_TP(user)] [ADMIN_INDIVIDUALLOG(user)] [ADMIN_SMITE(user)]"
|
#define ADMIN_FULLMONTY_NONAME(user) "[ADMIN_QUE(user)] [ADMIN_PP(user)] [ADMIN_VV(user)] [ADMIN_SM(user)] [ADMIN_FLW(user)] [ADMIN_TP(user)] [ADMIN_INDIVIDUALLOG(user)] [ADMIN_SMITE(user)]"
|
||||||
//ambition port start
|
|
||||||
#define ADMIN_TPMONTY_NONAME(user) "[ADMIN_QUE(user)] [ADMIN_JMP(user)] [ADMIN_FLW(user)]"
|
|
||||||
#define ADMIN_TPMONTY(user) "[key_name_admin(user)] [ADMIN_TPMONTY_NONAME(user)]"
|
|
||||||
//ambition port end
|
|
||||||
#define ADMIN_FULLMONTY(user) "[key_name_admin(user)] [ADMIN_FULLMONTY_NONAME(user)]"
|
#define ADMIN_FULLMONTY(user) "[key_name_admin(user)] [ADMIN_FULLMONTY_NONAME(user)]"
|
||||||
#define ADMIN_JMP(src) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>)"
|
#define ADMIN_JMP(src) "(<a href='?_src_=holder;[HrefToken(TRUE)];adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>)"
|
||||||
#define COORD(src) "[src ? "([src.x],[src.y],[src.z])" : "nonexistent location"]"
|
#define COORD(src) "[src ? "([src.x],[src.y],[src.z])" : "nonexistent location"]"
|
||||||
|
|||||||
@@ -27,7 +27,6 @@
|
|||||||
|
|
||||||
//INDEXES
|
//INDEXES
|
||||||
#define COOLDOWN_EMPLOYMENT_CABINET "employment cabinet"
|
#define COOLDOWN_EMPLOYMENT_CABINET "employment cabinet"
|
||||||
#define COOLDOWN_AMBITION "ambition"
|
|
||||||
|
|
||||||
|
|
||||||
//TIMER COOLDOWN MACROS
|
//TIMER COOLDOWN MACROS
|
||||||
@@ -41,12 +40,6 @@
|
|||||||
|
|
||||||
#define TIMER_COOLDOWN_END(cd_source, cd_index) LAZYREMOVE(cd_source.cooldowns, cd_index)
|
#define TIMER_COOLDOWN_END(cd_source, cd_index) LAZYREMOVE(cd_source.cooldowns, cd_index)
|
||||||
|
|
||||||
#define COOLDOWN_START(cd_source, cd_index, cd_time) LAZYSET(cd_source.cooldowns, cd_index, addtimer(CALLBACK(GLOBAL_PROC, /proc/end_cooldown, cd_source, cd_index), cd_time))
|
|
||||||
|
|
||||||
#define COOLDOWN_CHECK(cd_source, cd_index) LAZYACCESS(cd_source.cooldowns, cd_index)
|
|
||||||
|
|
||||||
#define COOLDOWN_END(cd_source, cd_index) LAZYREMOVE(cd_source.cooldowns, cd_index)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Stoppable timer cooldowns.
|
* Stoppable timer cooldowns.
|
||||||
* Use indexes the same as the regular tiemr cooldowns.
|
* Use indexes the same as the regular tiemr cooldowns.
|
||||||
|
|||||||
@@ -86,9 +86,6 @@
|
|||||||
#define EMOTE_OMNI 4
|
#define EMOTE_OMNI 4
|
||||||
|
|
||||||
//Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam
|
//Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam
|
||||||
//ambition port start
|
|
||||||
#define MAX_AMBITION_LEN 1024
|
|
||||||
//ambition port end
|
|
||||||
#define MAX_MESSAGE_LEN 4096 //Citadel edit: What's the WORST that could happen?
|
#define MAX_MESSAGE_LEN 4096 //Citadel edit: What's the WORST that could happen?
|
||||||
#define MAX_FLAVOR_LEN 4096
|
#define MAX_FLAVOR_LEN 4096
|
||||||
#define MAX_TASTE_LEN 40 //lick... vore... ew...
|
#define MAX_TASTE_LEN 40 //lick... vore... ew...
|
||||||
|
|||||||
@@ -13,9 +13,6 @@
|
|||||||
#define UNSETEMPTY(L) if (L && !length(L)) L = null
|
#define UNSETEMPTY(L) if (L && !length(L)) L = null
|
||||||
#define LAZYCOPY(L) (L ? L.Copy() : list() )
|
#define LAZYCOPY(L) (L ? L.Copy() : list() )
|
||||||
#define LAZYREMOVE(L, I) if(L) { L -= I; if(!length(L)) { L = null; } }
|
#define LAZYREMOVE(L, I) if(L) { L -= I; if(!length(L)) { L = null; } }
|
||||||
//ambition port start
|
|
||||||
#define LAZYCUT(L, S, E) if((length(L) >= S) && (E == 0 || length(L) >= (E - 1))) { L.Cut(S, E); if(!length(L)) { L = null; } }
|
|
||||||
//ambition port end
|
|
||||||
#define LAZYADD(L, I) if(!L) { L = list(); } L += I;
|
#define LAZYADD(L, I) if(!L) { L = list(); } L += I;
|
||||||
#define LAZYOR(L, I) if(!L) { L = list(); } L |= I;
|
#define LAZYOR(L, I) if(!L) { L = list(); } L |= I;
|
||||||
#define LAZYFIND(L, V) L ? L.Find(V) : 0
|
#define LAZYFIND(L, V) L ? L.Find(V) : 0
|
||||||
|
|||||||
@@ -491,11 +491,6 @@
|
|||||||
currrent_category = A.roundend_category
|
currrent_category = A.roundend_category
|
||||||
previous_category = A
|
previous_category = A
|
||||||
result += A.roundend_report()
|
result += A.roundend_report()
|
||||||
//ambition port start
|
|
||||||
for(var/count in 1 to LAZYLEN(A.owner.ambitions))
|
|
||||||
result += "<br><B>Ambition #[count]</B>: [A.owner.ambitions[count]]"
|
|
||||||
//ambition port end
|
|
||||||
|
|
||||||
result += "<br><br>"
|
result += "<br><br>"
|
||||||
CHECK_TICK
|
CHECK_TICK
|
||||||
|
|
||||||
|
|||||||
@@ -441,8 +441,3 @@
|
|||||||
config_entry_value = TRUE
|
config_entry_value = TRUE
|
||||||
|
|
||||||
/datum/config_entry/string/centcom_ban_db // URL for the CentCom Galactic Ban DB API
|
/datum/config_entry/string/centcom_ban_db // URL for the CentCom Galactic Ban DB API
|
||||||
|
|
||||||
//ambition port start
|
|
||||||
/datum/config_entry/number/max_ambitions // Maximum number of ambitions a mind can store.
|
|
||||||
config_entry_value = 5
|
|
||||||
//amibiton port end
|
|
||||||
|
|||||||
@@ -49,11 +49,6 @@
|
|||||||
/// A weak reference to another datum
|
/// A weak reference to another datum
|
||||||
var/datum/weakref/weak_reference
|
var/datum/weakref/weak_reference
|
||||||
|
|
||||||
//ambition port start
|
|
||||||
///Lazy associative list of currently active cooldowns.
|
|
||||||
var/list/cooldowns
|
|
||||||
//ambition port end
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Lazy associative list of currently active cooldowns.
|
* Lazy associative list of currently active cooldowns.
|
||||||
*
|
*
|
||||||
@@ -266,11 +261,3 @@
|
|||||||
return
|
return
|
||||||
SEND_SIGNAL(source, COMSIG_CD_RESET(index), S_TIMER_COOLDOWN_TIMELEFT(source, index))
|
SEND_SIGNAL(source, COMSIG_CD_RESET(index), S_TIMER_COOLDOWN_TIMELEFT(source, index))
|
||||||
TIMER_COOLDOWN_END(source, index)
|
TIMER_COOLDOWN_END(source, index)
|
||||||
|
|
||||||
//ambition port start
|
|
||||||
///Callback called by a timer to end an associative-list-indexed cooldown.
|
|
||||||
/proc/end_cooldown(datum/source, index)
|
|
||||||
if(QDELETED(source))
|
|
||||||
return
|
|
||||||
COOLDOWN_END(source, index)
|
|
||||||
//ambition port end
|
|
||||||
|
|||||||
@@ -28,10 +28,6 @@
|
|||||||
yourself.
|
yourself.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
//ambition port start
|
|
||||||
#define AMBITION_COOLDOWN_TIME (5 SECONDS)
|
|
||||||
//ambition port end
|
|
||||||
|
|
||||||
|
|
||||||
/datum/mind
|
/datum/mind
|
||||||
var/key
|
var/key
|
||||||
@@ -72,11 +68,6 @@
|
|||||||
/// Our skill holder.
|
/// Our skill holder.
|
||||||
var/datum/skill_holder/skill_holder
|
var/datum/skill_holder/skill_holder
|
||||||
|
|
||||||
//ambition port start
|
|
||||||
/// Lazy list for antagonists to set goals they wish to achieve, to be shown at the round-end report.
|
|
||||||
var/list/ambitions
|
|
||||||
//ambition port end
|
|
||||||
|
|
||||||
///What character we spawned in as- either at roundstart or latejoin, so we know for persistent scars if we ended as the same person or not
|
///What character we spawned in as- either at roundstart or latejoin, so we know for persistent scars if we ended as the same person or not
|
||||||
var/mob/original_character
|
var/mob/original_character
|
||||||
|
|
||||||
@@ -182,10 +173,7 @@
|
|||||||
qdel(A)
|
qdel(A)
|
||||||
return
|
return
|
||||||
A.owner = src
|
A.owner = src
|
||||||
//ambitions port start
|
LAZYADD(antag_datums, A)
|
||||||
do_add_antag_datum(A)
|
|
||||||
//ambitions port end
|
|
||||||
|
|
||||||
A.create_team(team)
|
A.create_team(team)
|
||||||
var/datum/team/antag_team = A.get_team()
|
var/datum/team/antag_team = A.get_team()
|
||||||
if(antag_team)
|
if(antag_team)
|
||||||
@@ -193,14 +181,6 @@
|
|||||||
A.on_gain()
|
A.on_gain()
|
||||||
return A
|
return A
|
||||||
|
|
||||||
//ambitions port start
|
|
||||||
/datum/mind/proc/do_add_antag_datum(instanced_datum)
|
|
||||||
. = LAZYLEN(antag_datums)
|
|
||||||
LAZYADD(antag_datums, instanced_datum)
|
|
||||||
if(!.)
|
|
||||||
current.verbs += /mob/proc/edit_ambitions
|
|
||||||
//ambitions port end
|
|
||||||
|
|
||||||
/datum/mind/proc/remove_antag_datum(datum_type)
|
/datum/mind/proc/remove_antag_datum(datum_type)
|
||||||
if(!datum_type)
|
if(!datum_type)
|
||||||
return
|
return
|
||||||
@@ -215,15 +195,6 @@
|
|||||||
var/datum/antagonist/A = a
|
var/datum/antagonist/A = a
|
||||||
A.on_removal()
|
A.on_removal()
|
||||||
|
|
||||||
//ambitions port start
|
|
||||||
/datum/mind/proc/do_remove_antag_datum(instanced_datum)
|
|
||||||
. = LAZYLEN(antag_datums)
|
|
||||||
LAZYREMOVE(antag_datums, instanced_datum)
|
|
||||||
if(. && !LAZYLEN(antag_datums))
|
|
||||||
current.verbs -= /mob/proc/edit_ambitions
|
|
||||||
ambitions = null
|
|
||||||
//ambitions port end
|
|
||||||
|
|
||||||
/datum/mind/proc/has_antag_datum(datum_type, check_subtypes = TRUE)
|
/datum/mind/proc/has_antag_datum(datum_type, check_subtypes = TRUE)
|
||||||
if(!datum_type)
|
if(!datum_type)
|
||||||
return
|
return
|
||||||
@@ -403,10 +374,10 @@
|
|||||||
message_admins("[ADMIN_LOOKUPFLW(current)] has been created by [ADMIN_LOOKUPFLW(creator)], an antagonist.")
|
message_admins("[ADMIN_LOOKUPFLW(current)] has been created by [ADMIN_LOOKUPFLW(creator)], an antagonist.")
|
||||||
to_chat(current, "<span class='userdanger'>Despite your creators current allegiances, your true master remains [creator.real_name]. If their loyalties change, so do yours. This will never change unless your creator's body is destroyed.</span>")
|
to_chat(current, "<span class='userdanger'>Despite your creators current allegiances, your true master remains [creator.real_name]. If their loyalties change, so do yours. This will never change unless your creator's body is destroyed.</span>")
|
||||||
|
|
||||||
//ambitions port start
|
/datum/mind/proc/show_memory(mob/recipient, window=1)
|
||||||
/datum/mind/proc/show_memory()
|
if(!recipient)
|
||||||
var/list/output = list("<B>[current.real_name]'s Memories:</B><br>")
|
recipient = current
|
||||||
//ambitions port end
|
var/output = "<B>[current.real_name]'s Memories:</B><br>"
|
||||||
output += memory
|
output += memory
|
||||||
|
|
||||||
|
|
||||||
@@ -427,211 +398,17 @@
|
|||||||
output += "<li>Conspirator: [M.name]</li>"
|
output += "<li>Conspirator: [M.name]</li>"
|
||||||
output += "</ul>"
|
output += "</ul>"
|
||||||
|
|
||||||
//ambition port start
|
if(window)
|
||||||
if(LAZYLEN(ambitions))
|
recipient << browse(output,"window=memory")
|
||||||
for(var/count in 1 to LAZYLEN(ambitions))
|
else if(all_objectives.len || memory)
|
||||||
output += "<br><B>Ambition #[count]</B>: [ambitions[count]]"
|
to_chat(recipient, "<i>[output]</i>")
|
||||||
|
|
||||||
if(!memory && !length(all_objectives) && !LAZYLEN(ambitions))
|
|
||||||
output += "<ul><li><I><B>NONE</B></I></ul>"
|
|
||||||
|
|
||||||
return output.Join()
|
|
||||||
|
|
||||||
|
|
||||||
/datum/mind/proc/show_editable_ambitions()
|
|
||||||
var/list/output = list("<b>[current.real_name]'s Ambitions:</b><br><ul>")
|
|
||||||
if(!LAZYLEN(ambitions))
|
|
||||||
output += "<li><i><b>NONE</b></i>"
|
|
||||||
if(LAZYLEN(antag_datums))
|
|
||||||
output +="<li>(<a href='?src=[REF(src)];add_ambition=1'>Add Ambition</a>)"
|
|
||||||
else
|
|
||||||
for(var/count in 1 to LAZYLEN(ambitions))
|
|
||||||
output += "<li><B>Ambition #[count]</B> (<a href='?src=[REF(src)];edit_ambition=[count]'>Edit</a>) (<a href='?src=[REF(src)];remove_ambition=[count]'>Remove</a>):<br>[ambitions[count]]"
|
|
||||||
if(LAZYLEN(ambitions) < 5)
|
|
||||||
output += "<li>(<a href='?src=[REF(src)];add_ambition=1'>Add Ambition</a>)"
|
|
||||||
output += "<li>(<a href='?src=[REF(src)];refresh_ambitions=1'>Refresh</a>)</ul>"
|
|
||||||
return output.Join()
|
|
||||||
|
|
||||||
|
|
||||||
/mob/proc/edit_ambitions()
|
|
||||||
set name = "Ambitions"
|
|
||||||
set category = "IC"
|
|
||||||
set desc = "View and edit your character's ambitions."
|
|
||||||
mind.do_edit_ambitions()
|
|
||||||
|
|
||||||
|
|
||||||
/datum/mind/proc/do_edit_ambitions()
|
|
||||||
var/datum/browser/popup = new(usr, "ambitions", "Ambitions")
|
|
||||||
popup.set_content(show_editable_ambitions())
|
|
||||||
popup.open()
|
|
||||||
//ambition port end
|
|
||||||
|
|
||||||
/datum/mind/Topic(href, href_list)
|
/datum/mind/Topic(href, href_list)
|
||||||
//ambition port start
|
|
||||||
if (href_list["refresh_ambitions"])
|
|
||||||
do_edit_ambitions()
|
|
||||||
return
|
|
||||||
|
|
||||||
else if (href_list["add_ambition"])
|
|
||||||
if(!check_rights(R_ADMIN))
|
|
||||||
if(usr != current)
|
|
||||||
return
|
|
||||||
if(COOLDOWN_CHECK(src, COOLDOWN_AMBITION))
|
|
||||||
to_chat(usr, "<span class='warning'>You must wait [AMBITION_COOLDOWN_TIME * 10] seconds between changes.</span>")
|
|
||||||
return
|
|
||||||
if(!isliving(current))
|
|
||||||
return
|
|
||||||
if(!antag_datums)
|
|
||||||
return
|
|
||||||
var/max_ambitions = CONFIG_GET(number/max_ambitions)
|
|
||||||
if(LAZYLEN(ambitions) >= max_ambitions)
|
|
||||||
to_chat(usr, "<span class='warning'>There's a limit of [max_ambitions] ambitions. Edit or remove some to accomodate for your new additions.</span>")
|
|
||||||
do_edit_ambitions()
|
|
||||||
return
|
|
||||||
var/new_ambition = stripped_multiline_input(usr, "Write new ambition", "Ambition", "", MAX_AMBITION_LEN)
|
|
||||||
if(isnull(new_ambition))
|
|
||||||
return
|
|
||||||
if(!check_rights(R_ADMIN))
|
|
||||||
if(usr != current)
|
|
||||||
return
|
|
||||||
if(COOLDOWN_CHECK(src, COOLDOWN_AMBITION))
|
|
||||||
to_chat(usr, "<span class='warning'>You must wait [AMBITION_COOLDOWN_TIME * 10] seconds between changes.</span>")
|
|
||||||
return
|
|
||||||
if(!isliving(current))
|
|
||||||
to_chat(usr, "<span class='warning'>The mind holder is no longer a living creature.</span>")
|
|
||||||
return
|
|
||||||
if(!antag_datums)
|
|
||||||
to_chat(usr, "<span class='warning'>The mind holder is no longer an antagonist.</span>")
|
|
||||||
return
|
|
||||||
if(LAZYLEN(ambitions) >= max_ambitions)
|
|
||||||
to_chat(usr, "<span class='warning'>There's a limit of [max_ambitions] ambitions. Edit or remove some to accomodate for your new additions.</span>")
|
|
||||||
do_edit_ambitions()
|
|
||||||
return
|
|
||||||
COOLDOWN_START(src, COOLDOWN_AMBITION, AMBITION_COOLDOWN_TIME)
|
|
||||||
LAZYADD(ambitions, new_ambition)
|
|
||||||
if(usr == current)
|
|
||||||
log_game("[key_name(usr)] has created their ambition of index [LAZYLEN(ambitions)].\nNEW AMBITION:\n[new_ambition]")
|
|
||||||
else
|
|
||||||
log_game("[key_name(usr)] has created [key_name(current)]'s ambition of index [LAZYLEN(ambitions)].\nNEW AMBITION:\n[new_ambition]")
|
|
||||||
message_admins("[ADMIN_TPMONTY(usr)] has created [ADMIN_TPMONTY(current)]'s ambition of index [LAZYLEN(ambitions)].")
|
|
||||||
do_edit_ambitions()
|
|
||||||
return
|
|
||||||
|
|
||||||
else if (href_list["edit_ambition"])
|
|
||||||
if(!check_rights(R_ADMIN))
|
|
||||||
if(usr != current)
|
|
||||||
return
|
|
||||||
if(COOLDOWN_CHECK(src, COOLDOWN_AMBITION))
|
|
||||||
to_chat(usr, "<span class='warning'>You must wait [AMBITION_COOLDOWN_TIME * 10] seconds between changes.</span>")
|
|
||||||
return
|
|
||||||
if(!isliving(current))
|
|
||||||
return
|
|
||||||
if(!antag_datums)
|
|
||||||
return
|
|
||||||
var/ambition_index = text2num(href_list["edit_ambition"])
|
|
||||||
if(!isnum(ambition_index) || ambition_index < 0 || ambition_index % 1)
|
|
||||||
log_admin_private("[key_name(usr)] attempted to edit their ambitions with and invalid ambition_index ([ambition_index]) at [AREACOORD(usr.loc)].")
|
|
||||||
message_admins("[ADMIN_TPMONTY(usr)] attempted to edit their ambitions with and invalid ambition_index ([ambition_index]). Possible HREF exploit.")
|
|
||||||
return
|
|
||||||
if(ambition_index > LAZYLEN(ambitions))
|
|
||||||
return
|
|
||||||
var/old_ambition = ambitions[ambition_index]
|
|
||||||
var/new_ambition = stripped_multiline_input(usr, "Write new ambition", "Ambition", ambitions[ambition_index], MAX_AMBITION_LEN)
|
|
||||||
if(isnull(new_ambition))
|
|
||||||
return
|
|
||||||
if(!check_rights(R_ADMIN))
|
|
||||||
if(usr != current)
|
|
||||||
return
|
|
||||||
if(COOLDOWN_CHECK(src, COOLDOWN_AMBITION))
|
|
||||||
to_chat(usr, "<span class='warning'>You must wait [AMBITION_COOLDOWN_TIME * 10] seconds between changes.</span>")
|
|
||||||
return
|
|
||||||
if(!isliving(current))
|
|
||||||
to_chat(usr, "<span class='warning'>The mind holder is no longer a living creature.</span>")
|
|
||||||
return
|
|
||||||
if(!antag_datums)
|
|
||||||
to_chat(usr, "<span class='warning'>The mind holder is no longer an antagonist.</span>")
|
|
||||||
return
|
|
||||||
if(ambition_index > LAZYLEN(ambitions))
|
|
||||||
to_chat(usr, "<span class='warning'>The ambition we were editing was deleted before we finished. Aborting.</span>")
|
|
||||||
do_edit_ambitions()
|
|
||||||
return
|
|
||||||
if(old_ambition != ambitions[ambition_index])
|
|
||||||
to_chat(usr, "<span class='warning'>The ambition has changed since we started editing it. Aborting to prevent data loss.</span>")
|
|
||||||
do_edit_ambitions()
|
|
||||||
return
|
|
||||||
COOLDOWN_START(src, COOLDOWN_AMBITION, AMBITION_COOLDOWN_TIME)
|
|
||||||
ambitions[ambition_index] = new_ambition
|
|
||||||
if(usr == current)
|
|
||||||
log_game("[key_name(usr)] has edited their ambition of index [ambition_index].\nOLD AMBITION:\n[old_ambition]\nNEW AMBITION:\n[new_ambition]")
|
|
||||||
else
|
|
||||||
log_game("[key_name(usr)] has edited [key_name(current)]'s ambition of index [ambition_index].\nOLD AMBITION:\n[old_ambition]\nNEW AMBITION:\n[new_ambition]")
|
|
||||||
message_admins("[ADMIN_TPMONTY(usr)] has edited [ADMIN_TPMONTY(current)]'s ambition of index [ambition_index].")
|
|
||||||
do_edit_ambitions()
|
|
||||||
return
|
|
||||||
|
|
||||||
else if (href_list["remove_ambition"])
|
|
||||||
if(!check_rights(R_ADMIN))
|
|
||||||
if(usr != current)
|
|
||||||
return
|
|
||||||
if(COOLDOWN_CHECK(src, COOLDOWN_AMBITION))
|
|
||||||
to_chat(usr, "<span class='warning'>You must wait [AMBITION_COOLDOWN_TIME * 10] seconds between changes.</span>")
|
|
||||||
return
|
|
||||||
if(!isliving(current))
|
|
||||||
return
|
|
||||||
if(!antag_datums)
|
|
||||||
return
|
|
||||||
var/ambition_index = text2num(href_list["remove_ambition"])
|
|
||||||
if(ambition_index > LAZYLEN(ambitions))
|
|
||||||
do_edit_ambitions()
|
|
||||||
return
|
|
||||||
if(!isnum(ambition_index) || ambition_index < 0 || ambition_index % 1)
|
|
||||||
log_admin_private("[key_name(usr)] attempted to remove an ambition with and invalid ambition_index ([ambition_index]) at [AREACOORD(usr.loc)].")
|
|
||||||
message_admins("[ADMIN_TPMONTY(usr)] attempted to remove an ambition with and invalid ambition_index ([ambition_index]). Possible HREF exploit.")
|
|
||||||
return
|
|
||||||
var/old_ambition = ambitions[ambition_index]
|
|
||||||
if(alert(usr, "Are you sure you want to delete this ambition?", "Delete ambition", "Yes", "No") != "Yes")
|
|
||||||
return
|
|
||||||
if(!check_rights(R_ADMIN))
|
|
||||||
if(usr != current)
|
|
||||||
return
|
|
||||||
if(COOLDOWN_CHECK(src, COOLDOWN_AMBITION))
|
|
||||||
to_chat(usr, "<span class='warning'>You must wait [AMBITION_COOLDOWN_TIME * 10] seconds between changes.</span>")
|
|
||||||
return
|
|
||||||
if(!isliving(current))
|
|
||||||
to_chat(usr, "<span class='warning'>The mind holder is no longer a living creature. The ambition we were deleting should no longer exist already.</span>")
|
|
||||||
return
|
|
||||||
if(!antag_datums)
|
|
||||||
to_chat(usr, "<span class='warning'>The mind holder is no longer an antagonist. The ambition we were deleting should no longer exist already.</span>")
|
|
||||||
return
|
|
||||||
if(ambition_index > LAZYLEN(ambitions))
|
|
||||||
to_chat(usr, "<span class='warning'>The ambition we were deleting was deleted before we finished. No need to continue.</span>")
|
|
||||||
do_edit_ambitions()
|
|
||||||
return
|
|
||||||
if(old_ambition != ambitions[ambition_index])
|
|
||||||
to_chat(usr, "<span class='warning'>The ambition has changed since we started considering its deletion. Aborting to prevent conflicts.</span>")
|
|
||||||
do_edit_ambitions()
|
|
||||||
return
|
|
||||||
COOLDOWN_START(src, COOLDOWN_AMBITION, AMBITION_COOLDOWN_TIME)
|
|
||||||
LAZYCUT(ambitions, ambition_index, ambition_index + 1)
|
|
||||||
if(usr == current)
|
|
||||||
log_game("[key_name(usr)] has deleted their ambition of index [ambition_index].\nDELETED AMBITION:\n[old_ambition]")
|
|
||||||
else
|
|
||||||
log_game("[key_name(usr)] has deleted [key_name(current)]'s ambition of index [ambition_index].\nDELETED AMBITION:\n[old_ambition]")
|
|
||||||
message_admins("[ADMIN_TPMONTY(usr)] has deleted [ADMIN_TPMONTY(current)]'s ambition of index [ambition_index].")
|
|
||||||
do_edit_ambitions()
|
|
||||||
return
|
|
||||||
if(!check_rights(R_ADMIN))
|
if(!check_rights(R_ADMIN))
|
||||||
return
|
return
|
||||||
|
|
||||||
var/self_antagging = usr == current
|
var/self_antagging = usr == current
|
||||||
|
|
||||||
if(href_list["edit_ambitions_panel"])
|
|
||||||
do_edit_ambitions()
|
|
||||||
return
|
|
||||||
else if(href_list["refresh_antag_panel"])
|
|
||||||
traitor_panel()
|
|
||||||
return
|
|
||||||
//ambition port end
|
|
||||||
if(href_list["add_antag"])
|
if(href_list["add_antag"])
|
||||||
add_antag_wrapper(text2path(href_list["add_antag"]),usr)
|
add_antag_wrapper(text2path(href_list["add_antag"]),usr)
|
||||||
if(href_list["remove_antag"])
|
if(href_list["remove_antag"])
|
||||||
@@ -1037,7 +814,3 @@
|
|||||||
..()
|
..()
|
||||||
mind.assigned_role = ROLE_PAI
|
mind.assigned_role = ROLE_PAI
|
||||||
mind.special_role = ""
|
mind.special_role = ""
|
||||||
|
|
||||||
//ambition port start
|
|
||||||
#undef AMBITION_COOLDOWN_TIME
|
|
||||||
//ambition port end
|
|
||||||
|
|||||||
@@ -97,14 +97,10 @@ GLOBAL_VAR(antag_prototypes)
|
|||||||
alert("This mind doesn't have a mob, or is deleted! For some reason!", "Edit Memory")
|
alert("This mind doesn't have a mob, or is deleted! For some reason!", "Edit Memory")
|
||||||
return
|
return
|
||||||
|
|
||||||
//ambition port start
|
var/out = "<B>[name]</B>[(current && (current.real_name!=name))?" (as [current.real_name])":""]<br>"
|
||||||
var/list/out = list(
|
out += "Mind currently owned by key: [key] [active?"(synced)":"(not synced)"]<br>"
|
||||||
"<B>[name]</B>[(current && (current.real_name!=name))?" (as [current.real_name])":""]<br>\
|
out += "Assigned role: [assigned_role]. <a href='?src=[REF(src)];role_edit=1'>Edit</a><br>"
|
||||||
Mind currently owned by key: [key] [active?"(synced)":"(not synced)"]<br>\
|
out += "Faction and special role: <b><font color='red'>[special_role]</font></b><br>"
|
||||||
Assigned role: [assigned_role]. <a href='?src=[REF(src)];role_edit=1'>Edit</a><br>\
|
|
||||||
Faction and special role: <b><font color='red'>[special_role]</font></b><br>"
|
|
||||||
)
|
|
||||||
//ambition port end
|
|
||||||
|
|
||||||
var/special_statuses = get_special_statuses()
|
var/special_statuses = get_special_statuses()
|
||||||
if(length(special_statuses))
|
if(length(special_statuses))
|
||||||
@@ -195,16 +191,6 @@ GLOBAL_VAR(antag_prototypes)
|
|||||||
//Uplink
|
//Uplink
|
||||||
if(ishuman(current))
|
if(ishuman(current))
|
||||||
var/uplink_info = "<i><b>Uplink</b></i>:"
|
var/uplink_info = "<i><b>Uplink</b></i>:"
|
||||||
//ambition port start
|
|
||||||
//Ambitions
|
|
||||||
out += "<b>[current.real_name]'s Ambitions:</b> <a href='?src=[REF(src)];edit_ambitions_panel=1'>Edit Ambitions</a><br><ul>"
|
|
||||||
if(!LAZYLEN(ambitions))
|
|
||||||
out += "<li><i><b>NONE</b></i><li>"
|
|
||||||
else
|
|
||||||
for(var/count in 1 to LAZYLEN(ambitions))
|
|
||||||
out += "<li><B>Ambition #[count]</B>:<br>[ambitions[count]]"
|
|
||||||
out += "</ul>"
|
|
||||||
|
|
||||||
var/datum/component/uplink/U = find_syndicate_uplink()
|
var/datum/component/uplink/U = find_syndicate_uplink()
|
||||||
if(U)
|
if(U)
|
||||||
uplink_info += "<a href='?src=[REF(src)];common=takeuplink'>take</a>"
|
uplink_info += "<a href='?src=[REF(src)];common=takeuplink'>take</a>"
|
||||||
@@ -218,16 +204,14 @@ GLOBAL_VAR(antag_prototypes)
|
|||||||
|
|
||||||
out += uplink_info + "<br>"
|
out += uplink_info + "<br>"
|
||||||
//Common Memory
|
//Common Memory
|
||||||
out += "<br><span>Common Memory:</span>"
|
var/common_memory = "<span>Common Memory:</span>"
|
||||||
out += memory
|
common_memory += memory
|
||||||
out += "<a href='?src=[REF(src)];memory_edit=1'>Edit Memory</a><br>"
|
common_memory += "<a href='?src=[REF(src)];memory_edit=1'>Edit Memory</a>"
|
||||||
|
out += common_memory + "<br>"
|
||||||
//Other stuff
|
//Other stuff
|
||||||
out += get_common_admin_commands()
|
out += get_common_admin_commands()
|
||||||
out += "<br><a href='?src=[REF(src)];refresh_antag_panel=1'>Refresh</a>"
|
|
||||||
|
|
||||||
var/datum/browser/panel = new(usr, "traitorpanel", "", 600, 600)
|
var/datum/browser/panel = new(usr, "traitorpanel", "", 600, 600)
|
||||||
panel.set_content(out.Join())
|
|
||||||
//ambition port end
|
|
||||||
panel.set_content(out)
|
panel.set_content(out)
|
||||||
panel.open()
|
panel.open()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -35,9 +35,8 @@ GLOBAL_LIST_EMPTY(antagonists)
|
|||||||
|
|
||||||
/datum/antagonist/Destroy()
|
/datum/antagonist/Destroy()
|
||||||
GLOB.antagonists -= src
|
GLOB.antagonists -= src
|
||||||
//ambition port start
|
if(owner)
|
||||||
owner?.do_remove_antag_datum(src)
|
LAZYREMOVE(owner.antag_datums, src)
|
||||||
//ambition port end
|
|
||||||
owner = null
|
owner = null
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
@@ -134,9 +133,7 @@ GLOBAL_LIST_EMPTY(antagonists)
|
|||||||
remove_innate_effects()
|
remove_innate_effects()
|
||||||
clear_antag_moodies()
|
clear_antag_moodies()
|
||||||
if(owner)
|
if(owner)
|
||||||
//ambition port start
|
LAZYREMOVE(owner.antag_datums, src)
|
||||||
owner.do_remove_antag_datum(src)
|
|
||||||
//ambition port end
|
|
||||||
for(var/A in skill_modifiers)
|
for(var/A in skill_modifiers)
|
||||||
owner.remove_skill_modifier(GET_SKILL_MOD_ID(A, type))
|
owner.remove_skill_modifier(GET_SKILL_MOD_ID(A, type))
|
||||||
if(!silent && owner.current)
|
if(!silent && owner.current)
|
||||||
|
|||||||
@@ -65,9 +65,7 @@
|
|||||||
user.copy_languages(target, LANGUAGE_ABSORB)
|
user.copy_languages(target, LANGUAGE_ABSORB)
|
||||||
|
|
||||||
if(target.mind && user.mind)//if the victim and user have minds
|
if(target.mind && user.mind)//if the victim and user have minds
|
||||||
//ambition port start
|
target.mind.show_memory(user, 0) //I can read your mind, kekeke. Output all their notes.
|
||||||
to_chat(user, "<i>[target.mind.show_memory()]</i>") //I can read your mind. Output all their notes.
|
|
||||||
//ambition port end
|
|
||||||
|
|
||||||
//Some of target's recent speech, so the changeling can attempt to imitate them better.
|
//Some of target's recent speech, so the changeling can attempt to imitate them better.
|
||||||
//Recent as opposed to all because rounds tend to have a LOT of text.
|
//Recent as opposed to all because rounds tend to have a LOT of text.
|
||||||
|
|||||||
@@ -2,10 +2,7 @@
|
|||||||
..()
|
..()
|
||||||
//Mind updates
|
//Mind updates
|
||||||
sync_mind()
|
sync_mind()
|
||||||
//ambition port start
|
mind.show_memory(src, 0)
|
||||||
if(mind.memory || mind.antag_datums)
|
|
||||||
to_chat(src, "<i>[mind.show_memory()]</i>")
|
|
||||||
//ambition port end
|
|
||||||
|
|
||||||
//Round specific stuff
|
//Round specific stuff
|
||||||
if(SSticker.mode)
|
if(SSticker.mode)
|
||||||
|
|||||||
@@ -441,11 +441,7 @@
|
|||||||
set category = "IC"
|
set category = "IC"
|
||||||
set desc = "View your character's notes memory."
|
set desc = "View your character's notes memory."
|
||||||
if(mind)
|
if(mind)
|
||||||
//ambition port start
|
mind.show_memory(src)
|
||||||
var/datum/browser/popup = new(src, "memory", "Memory and Notes")
|
|
||||||
popup.set_content(mind.show_memory())
|
|
||||||
popup.open()
|
|
||||||
//ambition port
|
|
||||||
else
|
else
|
||||||
to_chat(src, "You don't have a mind datum for some reason, so you can't look at your notes, if you had any.")
|
to_chat(src, "You don't have a mind datum for some reason, so you can't look at your notes, if you had any.")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user