mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
info topic improvements
This commit is contained in:
@@ -230,18 +230,32 @@ var/world_topic_spam_protect_time = world.timeofday
|
||||
|
||||
return "Bad Key"
|
||||
|
||||
var/search = input["info"]
|
||||
var/ckey = ckey(search)
|
||||
var/list/search = params2list(input["info"])
|
||||
var/list/ckeysearch = list()
|
||||
for(var/text in search)
|
||||
ckeysearch += ckey(text)
|
||||
|
||||
var/list/match = list()
|
||||
|
||||
for(var/mob/M in mob_list)
|
||||
if(findtext(M.name, search))
|
||||
match += M
|
||||
else if(M.ckey == ckey)
|
||||
match += M
|
||||
else if(M.mind && findtext(M.mind.assigned_role, search))
|
||||
match += M
|
||||
var/strings = list(M.name, M.ckey)
|
||||
if(M.mind)
|
||||
strings += M.mind.assigned_role
|
||||
strings += M.mind.special_role
|
||||
for(var/text in strings)
|
||||
if(ckey(text) in ckeysearch)
|
||||
match[M] += 10 // an exact match is far better than a partial one
|
||||
else
|
||||
for(var/searchstr in search)
|
||||
if(findtext(text, searchstr))
|
||||
match[M] += 1
|
||||
|
||||
var/maxstrength = 0
|
||||
for(var/mob/M in match)
|
||||
maxstrength = max(match[M], maxstrength)
|
||||
for(var/mob/M in match)
|
||||
if(match[M] < maxstrength)
|
||||
match -= M
|
||||
|
||||
if(!match.len)
|
||||
return "No matches"
|
||||
|
||||
Reference in New Issue
Block a user