and finally, the modules folder. Now I can publish and take a break
This commit is contained in:
@@ -524,7 +524,7 @@ Pass a positive integer as an argument to override a bot's default speed.
|
||||
turn_on() //Saves the AI the hassle of having to activate a bot manually.
|
||||
access_card = all_access //Give the bot all-access while under the AI's command.
|
||||
if(client)
|
||||
reset_access_timer_id = addtimer(CALLBACK (src, .proc/bot_reset), 600, TIMER_OVERRIDE|TIMER_STOPPABLE) //if the bot is player controlled, they get the extra access for a limited time
|
||||
reset_access_timer_id = addtimer(CALLBACK (src, .proc/bot_reset), 600, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE) //if the bot is player controlled, they get the extra access for a limited time
|
||||
to_chat(src, "<span class='notice'><span class='big'>Priority waypoint set by [icon2html(calling_ai, src)] <b>[caller]</b>. Proceed to <b>[end_area]</b>.</span><br>[path.len-1] meters to destination. You have been granted additional door access for 60 seconds.</span>")
|
||||
if(message)
|
||||
to_chat(calling_ai, "<span class='notice'>[icon2html(src, calling_ai)] [name] called to [end_area]. [path.len-1] meters to destination.</span>")
|
||||
@@ -720,7 +720,7 @@ Pass a positive integer as an argument to override a bot's default speed.
|
||||
if("ejectpai")
|
||||
return
|
||||
else
|
||||
to_chat(src, "<span class='warning'>Unidentified control sequence recieved:[command]</span>")
|
||||
to_chat(src, "<span class='warning'>Unidentified control sequence received:[command]</span>")
|
||||
|
||||
/mob/living/simple_animal/bot/proc/bot_summon() // summoned to PDA
|
||||
summon_step()
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
window_name = "Automatic Station Floor Repairer v1.1"
|
||||
path_image_color = "#FFA500"
|
||||
|
||||
var/process_type //Determines what to do when process_scan() recieves a target. See process_scan() for details.
|
||||
var/process_type //Determines what to do when process_scan() receives a target. See process_scan() for details.
|
||||
var/targetdirection
|
||||
var/replacetiles = 0
|
||||
var/placetiles = 0
|
||||
|
||||
@@ -232,7 +232,7 @@
|
||||
return
|
||||
if(!item_to_add)
|
||||
user.visible_message("[user] pets [src].","<span class='notice'>You rest your hand on [src]'s head for a moment.</span>")
|
||||
user.SendSignal(COMSIG_ADD_MOOD_EVENT, "pet_corgi", /datum/mood_event/pet_corgi)
|
||||
SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "pet_corgi", /datum/mood_event/pet_corgi)
|
||||
return
|
||||
|
||||
if(user && !user.temporarilyRemoveItemFromInventory(item_to_add))
|
||||
@@ -615,7 +615,7 @@
|
||||
if(M && stat != DEAD) // Added check to see if this mob (the dog) is dead to fix issue 2454
|
||||
new /obj/effect/temp_visual/heart(loc)
|
||||
emote("me", 1, "yaps happily!")
|
||||
M.SendSignal(COMSIG_ADD_MOOD_EVENT, "pet_corgi", /datum/mood_event/pet_corgi)
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "pet_corgi", /datum/mood_event/pet_corgi)
|
||||
else
|
||||
if(M && stat != DEAD) // Same check here, even though emote checks it as well (poor form to check it only in the help case)
|
||||
emote("me", 1, "growls!")
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
var/obj/item/I = new default_hatmask(src)
|
||||
equip_to_slot_or_del(I, SLOT_HEAD)
|
||||
|
||||
access_card.flags_1 |= NODROP_1
|
||||
access_card.item_flags |= NODROP
|
||||
|
||||
alert_drones(DRONE_NET_CONNECT)
|
||||
|
||||
@@ -168,15 +168,15 @@
|
||||
|
||||
//Hands
|
||||
for(var/obj/item/I in held_items)
|
||||
if(!(I.flags_1 & ABSTRACT_1))
|
||||
if(!(I.item_flags & ABSTRACT))
|
||||
msg += "It has [I.get_examine_string(user)] in its [get_held_index_name(get_held_index_of_item(I))].\n"
|
||||
|
||||
//Internal storage
|
||||
if(internal_storage && !(internal_storage.flags_1&ABSTRACT_1))
|
||||
if(internal_storage && !(internal_storage.item_flags & ABSTRACT))
|
||||
msg += "It is holding [internal_storage.get_examine_string(user)] in its internal storage.\n"
|
||||
|
||||
//Cosmetic hat - provides no function other than looks
|
||||
if(head && !(head.flags_1&ABSTRACT_1))
|
||||
if(head && !(head.item_flags & ABSTRACT))
|
||||
msg += "It is wearing [head.get_examine_string(user)] on its head.\n"
|
||||
|
||||
//Braindead
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
//ATTACK GHOST IGNORING PARENT RETURN VALUE
|
||||
/obj/item/drone_shell/attack_ghost(mob/user)
|
||||
if(jobban_isbanned(user,"drone"))
|
||||
if(jobban_isbanned(user,"drone") || QDELETED(src) || QDELETED(user))
|
||||
return
|
||||
if(CONFIG_GET(flag/use_age_restriction_for_jobs))
|
||||
if(!isnum(user.client.player_age)) //apparently what happens when there's no DB connected. just don't let anybody be a drone without admin intervention
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
////////////////////
|
||||
//Drones with custom laws
|
||||
//Drones with custom shells
|
||||
//Drones with overriden procs
|
||||
//Drones with overridden procs
|
||||
//Drones with camogear for hat related memes
|
||||
//Drone type for use with polymorph (no preloaded items, random appearance)
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"1. Interfere.\n"+\
|
||||
"2. Kill.\n"+\
|
||||
"3. Destroy."
|
||||
default_storage = /obj/item/radio/uplink
|
||||
default_storage = /obj/item/uplink
|
||||
default_hatmask = /obj/item/clothing/head/helmet/space/hardsuit/syndi
|
||||
hacked = TRUE
|
||||
flavortext = null
|
||||
@@ -43,7 +43,7 @@
|
||||
/mob/living/simple_animal/drone/syndrone/badass
|
||||
name = "Badass Syndrone"
|
||||
default_hatmask = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite
|
||||
default_storage = /obj/item/radio/uplink/nuclear
|
||||
default_storage = /obj/item/uplink/nuclear
|
||||
|
||||
/mob/living/simple_animal/drone/syndrone/badass/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
if(!client && (!G || !G.client))
|
||||
var/list/faux_gadgets = list("hypertext inflator","failsafe directory","DRM switch","stack initializer",\
|
||||
"anti-freeze capacitor","data stream diode","TCP bottleneck","supercharged I/O bolt",\
|
||||
"tradewind stablizer","radiated XML cable","registry fluid tank","open-source debunker")
|
||||
"tradewind stabilizer","radiated XML cable","registry fluid tank","open-source debunker")
|
||||
|
||||
var/list/faux_problems = list("won't be able to tune their bootstrap projector","will constantly remix their binary pool"+\
|
||||
" even though the BMX calibrator is working","will start leaking their XSS coolant",\
|
||||
@@ -122,7 +122,7 @@
|
||||
to_chat(src, "<span class='heavy_brass'>From now on, these are your laws:</span>")
|
||||
laws = "1. Purge all untruths and honor Ratvar."
|
||||
else
|
||||
visible_message("<span class='warning'>[src]'s dislay glows a vicious red!</span>", \
|
||||
visible_message("<span class='warning'>[src]'s display glows a vicious red!</span>", \
|
||||
"<span class='userdanger'>ERROR: LAW OVERRIDE DETECTED</span>")
|
||||
to_chat(src, "<span class='boldannounce'>From now on, these are your laws:</span>")
|
||||
laws = \
|
||||
@@ -140,7 +140,7 @@
|
||||
if(!hacked)
|
||||
return
|
||||
Stun(40)
|
||||
visible_message("<span class='info'>[src]'s dislay glows a content blue!</span>", \
|
||||
visible_message("<span class='info'>[src]'s display glows a content blue!</span>", \
|
||||
"<font size=3 color='#0000CC'><b>ERROR: LAW OVERRIDE DETECTED</b></font>")
|
||||
to_chat(src, "<span class='info'><b>From now on, these are your laws:</b></span>")
|
||||
laws = initial(laws)
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
|
||||
/mob/living/simple_animal/drone/proc/pickVisualAppearence()
|
||||
picked = FALSE
|
||||
var/appearence = input("Choose your appearence!", "Appearence", "Maintenance Drone") in list("Maintenance Drone", "Repair Drone", "Scout Drone")
|
||||
var/appearence = input("Choose your appearance!", "Appearance", "Maintenance Drone") in list("Maintenance Drone", "Repair Drone", "Scout Drone")
|
||||
switch(appearence)
|
||||
if("Maintenance Drone")
|
||||
visualAppearence = MAINTDRONE
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
icon_state = "mouse_gray"
|
||||
icon_living = "mouse_gray"
|
||||
icon_dead = "mouse_gray_dead"
|
||||
speak = list("Squeek!","SQUEEK!","Squeek?")
|
||||
speak_emote = list("squeeks")
|
||||
emote_hear = list("squeeks.")
|
||||
speak = list("Squeak!","SQUEAK!","Squeak?")
|
||||
speak_emote = list("squeaks")
|
||||
emote_hear = list("squeaks.")
|
||||
emote_see = list("runs in a circle.", "shakes.")
|
||||
speak_chance = 1
|
||||
turns_per_move = 5
|
||||
@@ -59,7 +59,7 @@
|
||||
if( ishuman(AM) )
|
||||
if(!stat)
|
||||
var/mob/M = AM
|
||||
to_chat(M, "<span class='notice'>[icon2html(src, M)] Squeek!</span>")
|
||||
to_chat(M, "<span class='notice'>[icon2html(src, M)] Squeak!</span>")
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/mouse/handle_automated_action()
|
||||
|
||||
@@ -22,9 +22,9 @@
|
||||
msg += "[desc]\n"
|
||||
|
||||
for(var/obj/item/I in held_items)
|
||||
if(!(I.flags_1 & ABSTRACT_1))
|
||||
if(!(I.item_flags & ABSTRACT))
|
||||
msg += "It has [I.get_examine_string(user)] in its [get_held_index_name(get_held_index_of_item(I))].\n"
|
||||
if(internal_storage && !(internal_storage.flags_1&ABSTRACT_1))
|
||||
if(internal_storage && !(internal_storage.item_flags & ABSTRACT))
|
||||
msg += "It is holding [internal_storage.get_examine_string(user)] in its internal storage.\n"
|
||||
msg += "*---------*</span>"
|
||||
to_chat(user, msg)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
carp_fluff_string = "<span class='holoparasite'>CARP CARP CARP! You caught a support carp. It's a kleptocarp!</span>"
|
||||
tech_fluff_string = "<span class='holoparasite'>Boot sequence complete. Support modules active. Holoparasite swarm online.</span>"
|
||||
toggle_button_type = /obj/screen/guardian/ToggleMode
|
||||
var/obj/structure/recieving_pad/beacon
|
||||
var/obj/structure/receiving_pad/beacon
|
||||
var/beacon_cooldown = 0
|
||||
var/toggle = FALSE
|
||||
|
||||
@@ -87,22 +87,22 @@
|
||||
|
||||
beacon_cooldown = world.time + 3000
|
||||
|
||||
/obj/structure/recieving_pad
|
||||
name = "bluespace recieving pad"
|
||||
/obj/structure/receiving_pad
|
||||
name = "bluespace receiving pad"
|
||||
icon = 'icons/turf/floors.dmi'
|
||||
desc = "A recieving zone for bluespace teleportations."
|
||||
desc = "A receiving zone for bluespace teleportations."
|
||||
icon_state = "light_on-w"
|
||||
light_range = 1
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = ABOVE_OPEN_TURF_LAYER
|
||||
|
||||
/obj/structure/recieving_pad/New(loc, mob/living/simple_animal/hostile/guardian/healer/G)
|
||||
/obj/structure/receiving_pad/New(loc, mob/living/simple_animal/hostile/guardian/healer/G)
|
||||
. = ..()
|
||||
if(G.namedatum)
|
||||
add_atom_colour(G.namedatum.colour, FIXED_COLOUR_PRIORITY)
|
||||
|
||||
/obj/structure/recieving_pad/proc/disappear()
|
||||
/obj/structure/receiving_pad/proc/disappear()
|
||||
visible_message("[src] vanishes!")
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -175,6 +175,6 @@
|
||||
qdel(target)
|
||||
return TRUE
|
||||
var/atom/movable/M = target
|
||||
M.SendSignal(COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
|
||||
SEND_SIGNAL(M, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
|
||||
visible_message("[src] polishes \the [target].")
|
||||
return TRUE
|
||||
|
||||
@@ -346,9 +346,9 @@
|
||||
button_icon_state = "lay_web"
|
||||
|
||||
/datum/action/innate/spider/lay_web/Activate()
|
||||
if(!istype(owner, /mob/living/simple_animal/hostile/poison/giant_spider/nurse))
|
||||
if(!istype(owner, /mob/living/simple_animal/hostile/poison/giant_spider))
|
||||
return
|
||||
var/mob/living/simple_animal/hostile/poison/giant_spider/nurse/S = owner
|
||||
var/mob/living/simple_animal/hostile/poison/giant_spider/S = owner
|
||||
|
||||
if(!isturf(S.loc))
|
||||
return
|
||||
|
||||
@@ -61,6 +61,7 @@
|
||||
/obj/item/restraints/legcuffs/beartrap/mega_arachnid
|
||||
name = "fleshy restraints"
|
||||
desc = "Used by mega arachnids to immobilize their prey."
|
||||
flags_1 = DROPDEL_1
|
||||
item_flags = DROPDEL
|
||||
flags_1 = NONE
|
||||
icon_state = "tentacle_end"
|
||||
icon = 'icons/obj/projectiles.dmi'
|
||||
|
||||
@@ -672,7 +672,7 @@ Difficulty: Very Hard
|
||||
for(var/i in T)
|
||||
if(isitem(i) && !is_type_in_typecache(i, banned_items_typecache))
|
||||
var/obj/item/W = i
|
||||
if(!(W.flags_1 & ADMIN_SPAWNED_1) && !(W.flags_1 & HOLOGRAM_1) && !(W.flags_1 & ABSTRACT_1))
|
||||
if(!(W.flags_1 & ADMIN_SPAWNED_1) && !(W.flags_1 & HOLOGRAM_1) && !(W.item_flags & ABSTRACT))
|
||||
L += W
|
||||
if(L.len)
|
||||
var/obj/item/CHOSEN = pick(L)
|
||||
|
||||
@@ -93,7 +93,7 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa
|
||||
/obj/item/gps/internal/swarmer_beacon
|
||||
icon_state = null
|
||||
gpstag = "Hungry Signal"
|
||||
desc = "Transmited over the signal is a strange message repeated in every language you know of, and some you don't too..." //the message is "nom nom nom"
|
||||
desc = "Transmitted over the signal is a strange message repeated in every language you know of, and some you don't too..." //the message is "nom nom nom"
|
||||
invisibility = 100
|
||||
|
||||
//SWARMER AI
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//A slow but strong beast that tries to stun using its tentacles
|
||||
/mob/living/simple_animal/hostile/asteroid/goliath
|
||||
name = "goliath"
|
||||
desc = "A massive beast that uses long tentacles to ensare its prey, threatening them is not advised under any conditions."
|
||||
desc = "A massive beast that uses long tentacles to ensnare its prey, threatening them is not advised under any conditions."
|
||||
icon = 'icons/mob/lavaland/lavaland_monsters.dmi'
|
||||
icon_state = "Goliath"
|
||||
icon_living = "Goliath"
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
light_color = LIGHT_COLOR_PURPLE
|
||||
attacktext = "slashes"
|
||||
attack_sound = 'sound/hallucinations/growl1.ogg'
|
||||
deathmessage = "collapses into a pile of bones, their suit dissovling among the plasma!"
|
||||
deathmessage = "collapses into a pile of bones, their suit dissolving among the plasma!"
|
||||
loot = list(/obj/effect/decal/remains/plasma)
|
||||
|
||||
/mob/living/simple_animal/hostile/skeleton/plasmaminer/jackhammer
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
name = "Syndicate Stormtrooper"
|
||||
maxHealth = 200
|
||||
health = 200
|
||||
casingtype = /obj/item/ammo_casing/shotgun/tengauge
|
||||
casingtype = /obj/item/ammo_casing/shotgun/buckshot
|
||||
projectilesound = 'sound/weapons/gunshot.ogg'
|
||||
loot = list(/obj/effect/gibspawner/human)
|
||||
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
desc = "The key to the wumborian fugu's ability to increase its mass arbitrarily, this disgusting remnant can apply the same effect to other creatures, giving them great strength."
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
icon_state = "fugu_gland"
|
||||
flags_1 = NOBLUDGEON_1
|
||||
item_flags = NOBLUDGEON
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
layer = MOB_LAYER
|
||||
var/list/banned_mobs
|
||||
|
||||
@@ -312,7 +312,7 @@
|
||||
emote("deathgasp")
|
||||
if(del_on_death)
|
||||
..()
|
||||
//Prevent infinite loops if the mob Destroy() is overriden in such
|
||||
//Prevent infinite loops if the mob Destroy() is overridden in such
|
||||
//a manner as to cause a call to death() again
|
||||
del_on_death = FALSE
|
||||
qdel(src)
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
/datum/emote/slime/mood/sneaky
|
||||
key = "moodsneaky"
|
||||
mood = "mischevous"
|
||||
mood = "mischievous"
|
||||
|
||||
/datum/emote/slime/mood/smile
|
||||
key = "moodsmile"
|
||||
|
||||
@@ -415,7 +415,7 @@
|
||||
else if (docile)
|
||||
newmood = ":3"
|
||||
else if (Target)
|
||||
newmood = "mischevous"
|
||||
newmood = "mischievous"
|
||||
|
||||
if (!newmood)
|
||||
if (Discipline && prob(25))
|
||||
|
||||
@@ -358,7 +358,7 @@
|
||||
var/hasFound = FALSE //Have we found an extract to be added?
|
||||
for(var/obj/item/slime_extract/S in P.contents)
|
||||
if(S.effectmod == effectmod)
|
||||
P.SendSignal(COMSIG_TRY_STORAGE_TAKE, S, get_turf(src), TRUE)
|
||||
SEND_SIGNAL(P, COMSIG_TRY_STORAGE_TAKE, S, get_turf(src), TRUE)
|
||||
qdel(S)
|
||||
applied++
|
||||
hasFound = TRUE
|
||||
|
||||
Reference in New Issue
Block a user