mirror of
https://github.com/goonstation/goonstation-2016.git
synced 2026-07-09 16:12:21 +01:00
253 lines
7.8 KiB
Plaintext
253 lines
7.8 KiB
Plaintext
/////////FOR LOGGING TO STATS FILE/////////
|
|
|
|
//Called in tickets New() in datacore.dm
|
|
/proc/statlog_ticket(var/datum/ticket/T, var/mob/living/M)
|
|
var/message[] = new()
|
|
message["data_type"] = "tickets"
|
|
message["data_status"] = "insert"
|
|
message["data_timestamp"] = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")
|
|
|
|
message["target"] = T.target
|
|
message["reason"] = T.reason
|
|
message["issuer"] = M.real_name
|
|
message["issuer_job"] = M.job
|
|
message["target_byond_key"] = T.target_byond_key
|
|
message["issuer_byond_key"] = M.key
|
|
|
|
hublog << list2params(message)
|
|
|
|
//Called in fines New() in datacore.dm
|
|
/proc/statlog_fine(var/datum/fine/F, var/mob/living/M)
|
|
var/message[] = new()
|
|
message["data_type"] = "fines"
|
|
message["data_status"] = "insert"
|
|
message["data_timestamp"] = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")
|
|
message["byond_uid"] = F.ID
|
|
|
|
message["target"] = F.target
|
|
message["reason"] = F.reason
|
|
message["issuer"] = M.real_name
|
|
message["issuer_job"] = M.job
|
|
message["amount"] = F.amount
|
|
message["target_byond_key"] = F.target_byond_key
|
|
message["issuer_byond_key"] = M.key
|
|
|
|
hublog << list2params(message)
|
|
|
|
//Called in crittergauntlet.dm
|
|
/proc/statlog_gauntlet(var/mobs, var/final_score, var/last_completed_wave)
|
|
if (final_score == 0 && last_completed_wave < 2)
|
|
return
|
|
var/message[] = new()
|
|
message["data_type"] = "gauntlet_high_scores"
|
|
message["data_status"] = "insert"
|
|
message["data_timestamp"] = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")
|
|
message["names"] = mobs
|
|
message["score"] = final_score
|
|
message["highest_wave"] = last_completed_wave
|
|
|
|
hublog << list2params(message)
|
|
|
|
//Called in living death() in living.dm
|
|
/proc/statlog_death(var/mob/living/M,var/gibbed)
|
|
var/message[] = new()
|
|
message["data_type"] = "deaths"
|
|
message["data_status"] = "insert"
|
|
message["data_timestamp"] = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")
|
|
|
|
message["mob_name"] = M.real_name
|
|
message["mob_job"] = M.job
|
|
message["mob_byond_key"] = M.key
|
|
var/atom/T = get_turf(M)
|
|
if (!T) T = M
|
|
message["x"] = T.x
|
|
message["y"] = T.y
|
|
message["z"] = T.z
|
|
message["bruteloss"] = M.get_brute_damage()
|
|
message["fireloss"] = M.get_burn_damage()
|
|
message["toxloss"] = M.get_toxin_damage()
|
|
message["oxyloss"] = M.get_oxygen_deprivation()
|
|
message["gibbed"] = gibbed ? 1 : 0
|
|
|
|
hublog << list2params(message)
|
|
|
|
//Called in syndicate and integrated Topic() in uplinks.dm
|
|
/proc/statlog_traitor_item(var/mob/living/M, var/itemIdentifier, var/cost)
|
|
if (!istype(M))
|
|
return 1
|
|
|
|
var/message[] = new()
|
|
message["data_type"] = "traitor_items"
|
|
message["data_status"] = "insert"
|
|
message["data_timestamp"] = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")
|
|
|
|
message["mob_name"] = M.real_name
|
|
message["mob_job"] = M.job
|
|
message["mob_byond_key"] = M.key
|
|
var/atom/T = get_turf(M)
|
|
if (!T) T = M
|
|
message["x"] = T.x
|
|
message["y"] = T.y
|
|
message["z"] = T.z
|
|
message["item"] = itemIdentifier ? itemIdentifier : "???"
|
|
message["cost"] = isnum(cost) ? "[cost]" : "0"
|
|
|
|
hublog << list2params(message)
|
|
|
|
//Called in gameticker.dm in proc/declare_completion
|
|
/proc/statlog_traitors()
|
|
var/list/datum/mind/traitors = get_all_enemies()
|
|
|
|
for (var/datum/mind/M in traitors)
|
|
var/message[] = new()
|
|
message["data_type"] = "traitors"
|
|
message["data_status"] = "insert"
|
|
message["data_timestamp"] = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")
|
|
|
|
message["mob_name"] = M.current.real_name
|
|
message["mob_job"] = M.current.job
|
|
message["mob_byond_key"] = M.key
|
|
|
|
if (M.objectives)
|
|
var/overallSuccess = 1
|
|
var/count = 1
|
|
for(var/datum/objective/objective in M.objectives)
|
|
#ifdef CREW_OBJECTIVES
|
|
if (istype(objective, /datum/objective/crew)) continue
|
|
#endif
|
|
message["objective[count]"] = objective.explanation_text
|
|
if(objective.check_completion())
|
|
message["success[count]"] = 1
|
|
else
|
|
message["success[count]"] = 0
|
|
overallSuccess = 0
|
|
count++
|
|
|
|
message["success"] = overallSuccess
|
|
message["objective_count"] = count - 1
|
|
|
|
var/traitor_type = M.special_role
|
|
message["traitor_type"] = traitor_type
|
|
var/special
|
|
switch(traitor_type)
|
|
if ("changeling")
|
|
if (M.current)
|
|
var/datum/abilityHolder/changeling/C = M.current.get_ability_holder(/datum/abilityHolder/changeling)
|
|
if (C && istype(C))
|
|
special = C.absorbtions
|
|
if ("vampire")
|
|
if (M.current)
|
|
special = M.current.get_vampire_blood(1)
|
|
if ("wizard")
|
|
if (M.current)
|
|
var/datum/abilityHolder/wizard/W = M.current.get_ability_holder(/datum/abilityHolder/wizard)
|
|
if (W && istype(W))
|
|
var/spells = ""
|
|
for (var/datum/targetable/spell/S in W.abilities)
|
|
if (spells != "")
|
|
spells += ", "
|
|
spells += S.name
|
|
if ("werewolf")
|
|
for (var/datum/objective/specialist/werewolf/feed/O in M.objectives)
|
|
if (O && istype(O, /datum/objective/specialist/werewolf/feed/))
|
|
special = O.mobs_fed_on.len
|
|
if ("vampthrall")
|
|
if (M.master)
|
|
var/mob/mymaster = whois_ckey_to_mob_reference(M.master)
|
|
if (mymaster) special = mymaster.real_name
|
|
if ("spyslave")
|
|
if (M.master)
|
|
var/mob/mymaster = whois_ckey_to_mob_reference(M.master)
|
|
if (mymaster) special = mymaster.real_name
|
|
if ("mindslave")
|
|
if (M.master)
|
|
var/mob/mymaster = whois_ckey_to_mob_reference(M.master)
|
|
if (mymaster) special = mymaster.real_name
|
|
if ("nukeop")
|
|
if (istype(ticker.mode, /datum/game_mode/nuclear))
|
|
special = syndicate_name()
|
|
if (ticker.mode:nuke_detonated)
|
|
message["success"] = 1
|
|
|
|
message["special"] = special
|
|
|
|
if (M.late_special_role)
|
|
message["late_joiner"] = 1
|
|
/*else if (M.random_event_special_role)
|
|
message["random_event"] = 1*/
|
|
else
|
|
message["late_joiner"] = 0
|
|
//message["random_event"] = 0
|
|
|
|
hublog << list2params(message)
|
|
|
|
//BEES
|
|
/proc/statlog_bees(var/obj/critter/domestic_bee/B)
|
|
var/message[] = new()
|
|
message["data_type"] = "bees"
|
|
message["data_status"] = "insert"
|
|
message["data_timestamp"] = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")
|
|
|
|
message["name"] = B.name
|
|
|
|
if(B.beeMom)
|
|
message["mom"] = B.beeMom.real_name
|
|
|
|
hublog << list2params(message)
|
|
|
|
//Called in gameticker.dm at proc/declare_completion, ai_laws.dm at set_zeroth_law and add_supplied_law
|
|
/proc/statlog_ailaws(var/during, var/law, adder)
|
|
|
|
|
|
//For individual laws
|
|
if (during)
|
|
var/message[] = new()
|
|
message["data_type"] = "ai_laws"
|
|
message["data_status"] = "insert"
|
|
message["data_timestamp"] = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")
|
|
|
|
if (ismob(adder))
|
|
var/mob/M = adder
|
|
message["uploader_name"] = M.real_name
|
|
message["uploader_key"] = M.key
|
|
message["uploader_job"] = M.job
|
|
else
|
|
message["uploader_name"] = "Ion Storm"
|
|
message["uploader_key"] = "Random Event"
|
|
message["uploader_job"] = ""
|
|
|
|
message["type"] = "during"
|
|
message["law_text"] = html_decode(law)
|
|
|
|
hublog << list2params(message)
|
|
return 1
|
|
//For end of round laws
|
|
else
|
|
for (var/mob/living/silicon/ai/aiPlayer in mobs)
|
|
var/laws[] = new()
|
|
if (ticker.centralized_ai_laws.zeroth)
|
|
laws["0"] = ticker.centralized_ai_laws.zeroth
|
|
|
|
var/list/suppliedLaws = ticker.centralized_ai_laws.supplied
|
|
var/count = 4
|
|
for (var/i = 1, i <= suppliedLaws.len, i++)
|
|
var/lawText = suppliedLaws[i]
|
|
if (length(lawText) > 0)
|
|
laws["[count]"] = lawText
|
|
count++
|
|
|
|
for (var/key in laws)
|
|
var/message[] = new()
|
|
message["data_type"] = "ai_laws"
|
|
message["data_status"] = "insert"
|
|
message["data_timestamp"] = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")
|
|
|
|
message["ai_name"] = aiPlayer.real_name
|
|
message["ai_key"] = aiPlayer.key
|
|
message["type"] = "end"
|
|
message["law_number"] = key
|
|
message["law_text"] = html_decode(laws[key])
|
|
|
|
hublog << list2params(message)
|
|
|
|
return 1 |