Removes SNPCs (#36016)

* he's dead, jim

* a few stragglers

* Restores the populate world-verb
This commit is contained in:
vuonojenmustaturska
2018-02-28 08:11:34 +02:00
committed by CitadelStationBot
parent 3a6d5f9512
commit afb1ab021b
9 changed files with 18 additions and 1911 deletions
-1
View File
@@ -1254,7 +1254,6 @@
/turf/open/floor/plasteel/darkpurple,
/area/awaymission/research/interior/genetics)
"dP" = (
/mob/living/carbon/human/interactive/greytide,
/turf/open/floor/plasteel/darkpurple,
/area/awaymission/research/interior/genetics)
"dQ" = (
-5
View File
@@ -157,11 +157,6 @@
#define FUZZY_CHANCE_HIGH 85
#define FUZZY_CHANCE_LOW 50
#define CHANCE_TALK 1
//Traitor type defines
#define SNPC_BRUTE 1
#define SNPC_STEALTH 2
#define SNPC_MARTYR 3
#define SNPC_PSYCHO 4
#define TK_MAXRANGE 15
@@ -29,7 +29,6 @@ SUBSYSTEM_DEF(idlenpcpool)
//cache for sanic speed (lists are references anyways)
var/list/currentrun = src.currentrun
while(currentrun.len)
var/mob/living/simple_animal/SA = currentrun[currentrun.len]
--currentrun.len
+14 -128
View File
@@ -1,148 +1,34 @@
#define PROCESSING_SIMPLES 0
#define PROCESSING_NPCS 1
#define PROCESSING_DELEGATES 2
#define PROCESSING_ASSISTANTS 3
SUBSYSTEM_DEF(npcpool)
name = "NPC Pool"
flags = SS_POST_FIRE_TIMING|SS_NO_INIT|SS_BACKGROUND
priority = FIRE_PRIORITY_NPC
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
var/list/canBeUsed = list()
var/list/needsDelegate = list()
var/list/needsAssistant = list()
var/list/processing = list()
var/list/currentrun = list()
var/stage
/datum/controller/subsystem/npcpool/stat_entry()
..("NPCS:[processing.len]|D:[needsDelegate.len]|A:[needsAssistant.len]|U:[canBeUsed.len]")
/datum/controller/subsystem/npcpool/proc/stop_processing(mob/living/I)
processing -= I
currentrun -= I
needsDelegate -= I
canBeUsed -= I
needsAssistant -= I
var/list/activelist = GLOB.simple_animals[AI_ON]
..("NPCS:[activelist.len]")
/datum/controller/subsystem/npcpool/fire(resumed = FALSE)
//bot delegation and coordination systems
//General checklist/Tasks for delegating a task or coordinating it (for SNPCs)
// 1. Bot proximity to task target: if too far, delegate, if close, coordinate
// 2. Bot Health/status: check health with bots in local area, if their health is higher, delegate task to them, else coordinate
// 3. Process delegation: if a bot (or bots) has been delegated, assign them to the task.
// 4. Process coordination: if a bot(or bots) has been asked to coordinate, assign them to help.
// 5. Do all assignments: goes through the delegated/coordianted bots and assigns the right variables/tasks to them.
if (!resumed)
var/list/activelist = GLOB.simple_animals[AI_ON]
src.currentrun = activelist.Copy()
stage = PROCESSING_SIMPLES
//cache for sanic speed (lists are references anyways)
var/list/currentrun = src.currentrun
if(stage == PROCESSING_SIMPLES)
while(currentrun.len)
var/mob/living/simple_animal/SA = currentrun[currentrun.len]
--currentrun.len
if(!SA.ckey)
if(SA.stat != DEAD)
SA.handle_automated_movement()
if(SA.stat != DEAD)
SA.handle_automated_action()
if(SA.stat != DEAD)
SA.handle_automated_speech()
if (MC_TICK_CHECK)
return
stage = PROCESSING_NPCS
currentrun = processing.Copy()
src.currentrun = currentrun
var/list/canBeUsed = src.canBeUsed
if(stage == PROCESSING_NPCS)
while(currentrun.len)
var/mob/living/carbon/human/interactive/thing = currentrun[currentrun.len]
--currentrun.len
thing.InteractiveProcess()
var/checkInRange = view(MAX_RANGE_FIND,thing)
if(thing.IsDeadOrIncap(FALSE) || !(locate(thing.TARGET) in checkInRange))
needsDelegate += thing
else if(thing.doing & FIGHTING)
needsAssistant += thing
else
canBeUsed += thing
if (MC_TICK_CHECK)
return
stage = PROCESSING_DELEGATES
currentrun = needsDelegate //localcache
src.currentrun = currentrun
if(stage == PROCESSING_DELEGATES)
while(currentrun.len && canBeUsed.len)
var/mob/living/carbon/human/interactive/check = currentrun[currentrun.len]
var/mob/living/carbon/human/interactive/candidate = canBeUsed[canBeUsed.len]
--currentrun.len
var/helpProb = 0
var/list/chfac = check.faction
var/list/canfac = candidate.faction
var/facCount = LAZYLEN(chfac) * LAZYLEN(canfac)
for(var/C in chfac)
if(C in canfac)
helpProb = min(100,helpProb + 25)
if(helpProb >= 100)
break
if(facCount == 1 && helpProb)
helpProb = 100
if(prob(helpProb) && candidate.takeDelegate(check))
--canBeUsed.len
candidate.eye_color = "red"
candidate.update_icons()
if(MC_TICK_CHECK)
return
stage = PROCESSING_ASSISTANTS
currentrun = needsAssistant //localcache
src.currentrun = currentrun
//no need for the stage check
while(currentrun.len && canBeUsed.len)
var/mob/living/carbon/human/interactive/check = currentrun[currentrun.len]
var/mob/living/carbon/human/interactive/candidate = canBeUsed[canBeUsed.len]
while(currentrun.len)
var/mob/living/simple_animal/SA = currentrun[currentrun.len]
--currentrun.len
var/helpProb = 0
var/list/chfac = check.faction
var/list/canfac = candidate.faction
var/facCount = LAZYLEN(chfac) * LAZYLEN(canfac)
for(var/C in chfac)
if(C in canfac)
helpProb = min(100,helpProb + 25)
if(helpProb >= 100)
break
if(facCount == 1 && helpProb)
helpProb = 100
if(prob(helpProb) && candidate.takeDelegate(check,FALSE))
--canBeUsed.len
candidate.eye_color = "yellow"
candidate.update_icons()
if(!currentrun.len || MC_TICK_CHECK) //don't change SS state if it isn't necessary
return
/datum/controller/subsystem/npcpool/Recover()
processing = SSnpcpool.processing
if(!SA.ckey)
if(SA.stat != DEAD)
SA.handle_automated_movement()
if(SA.stat != DEAD)
SA.handle_automated_action()
if(SA.stat != DEAD)
SA.handle_automated_speech()
if (MC_TICK_CHECK)
return
+3 -6
View File
@@ -65,8 +65,6 @@ GLOBAL_LIST_INIT(admin_verbs_admin, world.AVerbsAdmin())
/client/proc/cmd_admin_check_player_exp, /* shows players by playtime */
/client/proc/toggle_antag_hud, /*toggle display of the admin antag hud*/
/client/proc/toggle_AI_interact, /*toggle admin ability to interact with machines as an AI*/
/client/proc/customiseSNPC, /* Customise any interactive crewmembers in the world */
/client/proc/resetSNPC, /* Resets any interactive crewmembers in the world */
/client/proc/open_shuttle_manipulator, /* Opens shuttle manipulator UI */
/client/proc/deadchat,
/client/proc/toggleprayers,
@@ -231,9 +229,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list(
/client/proc/toggle_nuke,
/client/proc/cmd_display_del_log,
/client/proc/toggle_antag_hud,
/client/proc/debug_huds,
/client/proc/customiseSNPC,
/client/proc/resetSNPC,
/client/proc/debug_huds
))
/client/proc/add_admin_verbs()
@@ -699,7 +695,8 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list(
while ((!tile || !istype(tile)) && --k > 0)
if (tile)
new/mob/living/carbon/human/interactive(tile)
var/mob/living/carbon/human/hooman = new(tile)
hooman.equipOutfit(pick(subtypesof(/datum/outfit)))
testing("Spawned test mob at [tile.x],[tile.y],[tile.z]")
while (!area && --j > 0)
@@ -261,15 +261,7 @@
if(InCritical())
msg += "[t_He] [t_is] barely conscious.\n"
if(getorgan(/obj/item/organ/brain))
if(istype(src, /mob/living/carbon/human/interactive))
var/mob/living/carbon/human/interactive/auto = src
if(auto.showexaminetext)
msg += "<span class='deadsay'>[t_He] appear[p_s()] to be some sort of sick automaton, [t_his] eyes are glazed over and [t_his] mouth is slightly agape.</span>\n"
if(auto.debugexamine)
var/dodebug = auto.doing2string(auto.doing)
var/interestdebug = auto.interest2string(auto.interest)
msg += "<span class='deadsay'>[t_He] [t_is] appears to be [interestdebug] and [dodebug].</span>\n"
else if(!key)
if(!key)
msg += "<span class='deadsay'>[t_He] [t_is] totally catatonic. The stresses of life in deep-space must have been too much for [t_him]. Any recovery is unlikely.</span>\n"
else if(!client)
msg += "[t_He] [t_has] a blank, absent-minded stare and appears completely unresponsive to anything. [t_He] may snap out of it soon.\n"
File diff suppressed because it is too large Load Diff
-137
View File
@@ -1,137 +0,0 @@
{
"nouns_insult": [
"gaylord",
"shitcurity",
"noob",
"comdom",
"greyshirt",
"tator",
"lingbin",
"bitch",
"whorelord",
"cluwne",
"monkey",
"cheesemonger",
"milkdrinker"
],
"adjective_objects": [
"big",
"small",
"tiny",
"round",
"square",
"oblong",
"colorful",
"dull",
"shiny",
"sparkling",
"blinking",
"awful"
],
"verbs_use": [
"touch",
"hold",
"poke",
"punch",
"smash",
"assault",
"wrench",
"tickle",
"modify",
"whack",
"beat",
"tackle",
"destroy"
],
"nouns_objects": [
"thing",
"tool",
"whatever",
"potential murder weapon",
"object",
"toy",
"device",
"whatever"
],
"nouns_generic": [
"you",
"you there",
"guy",
"person",
"dude",
"jerk",
"officer"
],
"curse_words": [
"damn",
"shit",
"arse",
"ass",
"wank",
"jerk",
"bitch"
],
"adjective_generic": [
"nice",
"pretty",
"ugly",
"bad",
"okay",
"stupid"
],
"verbs_move": [
"run",
"jog",
"leg it",
"slide",
"cheese it",
"walk",
"stroll",
"fly",
"scoot",
"yakkety",
"speed",
"fuck off",
"escape"
],
"verbs_touch": [
"pat",
"mess with",
"absorb",
"sneeze on",
"inject",
"rip",
"slap",
"grab",
"choke"
],
"adjective_insult": [
"ugly",
"repulsive",
"dumb",
"asian",
"mongoloid",
"childish",
"captain-like",
"monkey-like",
"whoreish",
"dimwit",
"jerk-face",
"vomit-inducer"
],
"nouns_body": [
"ass",
"head",
"face",
"arms",
"fingers",
"toes",
"chest",
"eyes",
"nails",
"groin",
"stomach",
"intestines",
"head"
]
}
-1
View File
@@ -1862,7 +1862,6 @@
#include "code\modules\mob\living\carbon\human\human_defines.dm"
#include "code\modules\mob\living\carbon\human\human_helpers.dm"
#include "code\modules\mob\living\carbon\human\human_movement.dm"
#include "code\modules\mob\living\carbon\human\interactive.dm"
#include "code\modules\mob\living\carbon\human\inventory.dm"
#include "code\modules\mob\living\carbon\human\life.dm"
#include "code\modules\mob\living\carbon\human\physiology.dm"