Merge remote-tracking branch 'refs/remotes/VOREStation/master'

This commit is contained in:
killer653
2017-09-09 12:39:53 -04:00
24 changed files with 156 additions and 32 deletions
+21
View File
@@ -0,0 +1,21 @@
/obj/item/device/paicard/attack_ghost(mob/user as mob)
if(src.pai != null) //Have a person in them already?
user.examinate(src)
return
var/choice = input(user, "You sure you want to inhabit this PAI?") in list("Yes", "No")
var/pai_name = input(user, "Choose your character's name", "Character Name") as text
var/actual_pai_name = sanitize_name(pai_name)
var/pai_key
if (isnull(pai_name))
return
if(choice == "Yes")
pai_key = user.key
else
return
var/turf/location = get_turf(src)
var/obj/item/device/paicard/card = new(location)
var/mob/living/silicon/pai/pai = new(card)
qdel(src)
pai.key = pai_key
card.setPersonality(pai)
pai.SetName(actual_pai_name)
+1
View File
@@ -125,6 +125,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
/obj/machinery/hologram/holopad/proc/create_holo(mob/living/silicon/ai/A, turf/T = loc)
var/obj/effect/overlay/aiholo/hologram = new(T)//Spawn a blank effect at the location. //VOREStation Edit to specific type for adding vars
hologram.master = A //VOREStation Edit: So you can reference the master AI from in the hologram procs
hologram.icon = A.holo_icon
//hologram.mouse_opacity = 0//So you can't click on it. //VOREStation Removal
hologram.layer = FLY_LAYER//Above all the other objects/mobs. Or the vast majority of them.
+1 -1
View File
@@ -6,7 +6,7 @@
density = 1
throwpass = 1
climbable = 1
layer = 3.2 //Just above doors
// layer = 3.2 //Just above doors // Vorestation Edit
anchored = 1
flags = ON_BORDER
icon_state = "railing0"
@@ -51,3 +51,8 @@
display_name = "KH Life Crystal"
path = /obj/item/weapon/storage/box/khcrystal
description = "A small necklace device that will notify an offsite cloning facility should you expire after activating it."
/datum/gear/accessory/tronket
display_name = "Metal necklace"
description = "A shiny steel chain with a vague metallic object dangling off it."
path = /obj/item/clothing/accessory/tronket
@@ -1,3 +1,11 @@
/*/datum/gear/head/cap/sol
display_name = "cap, sol"
path = /obj/item/clothing/head/soft/sol*/
path = /obj/item/clothing/head/soft/sol*/
/datum/gear/head/headbando
display_name = "Basic Headband"
path = /obj/item/clothing/head/fluff/headbando
/datum/gear/head/headbando/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
+10 -2
View File
@@ -207,6 +207,12 @@ var/list/ai_verbs_hidden = list( // For why this exists, refer to https://xkcd.c
src << radio_text
// Vorestation Edit: Meta Info for AI's. Mostly used for Holograms
if (client)
var/meta_info = client.prefs.metadata
if (meta_info)
ooc_notes = meta_info
if (malf && !(mind in malf.current_antagonists))
show_laws()
src << "<b>These laws may be changed by other players, or by you being the traitor.</b>"
@@ -418,10 +424,12 @@ var/list/ai_verbs_hidden = list( // For why this exists, refer to https://xkcd.c
..()
/mob/living/silicon/ai/Topic(href, href_list)
if(..()) //VOREstation edit: So the AI can actually can actually get its OOC prefs read
return
if(usr != src)
return
if(..())
return
/*if(..()) // <------ MOVED FROM HERE
return*/
if (href_list["mach_close"])
if (href_list["mach_close"] == "aialerts")
viewalerts = 0
+6 -5
View File
@@ -1,13 +1,14 @@
/mob/living/silicon/pai/death(gibbed)
if(card)
card.removePersonality()
if(gibbed)
src.loc = get_turf(card)
qdel(card)
else
//if(gibbed) //VOREStation Edit Start. This prevents pAIs from joining back into their card after the card's killed
src.loc = get_turf(card)
qdel(card)
/*else
close_up()
qdel(card)*/ //VOREStation Edit End.
if(mind)
qdel(mind)
..(gibbed)
ghostize()
qdel(src)
qdel(src)
@@ -4,10 +4,16 @@
var/msg = ""
switch(src.stat)
if(CONSCIOUS)
if(!src.client) msg += "\nIt appears to be in stand-by mode." //afk
if(UNCONSCIOUS) msg += "\n<span class='warning'>It doesn't seem to be responding.</span>"
if(DEAD) msg += "\n<span class='deadsay'>It looks completely unsalvageable.</span>"
if(!src.client) msg += "\nIt appears to be in stand-by mode.\n" //afk
if(UNCONSCIOUS) msg += "\n<span class='warning'>It doesn't seem to be responding.</span>\n"
if(DEAD) msg += "\n<span class='deadsay'>It looks completely unsalvageable.</span>\n"
msg += attempt_vr(src,"examine_bellies_pai",args) //VOREStation Edit
// VOREStation Edit: Start
if(ooc_notes)
msg += "<span class = 'deptradio'>OOC Notes:</span> <a href='?src=\ref[src];ooc_notes=1'>\[View\]</a>\n"
// VOREStation Edit: End
msg += "\n*---------*"
if(print_flavor_text()) msg += "\n[print_flavor_text()]\n"
@@ -103,6 +103,12 @@
verbs += /mob/living/silicon/pai/proc/choose_chassis
verbs += /mob/living/silicon/pai/proc/choose_verbs
// Vorestation Edit: Meta Info for pAI's
if (client)
var/meta_info = client.prefs.metadata
if (meta_info)
ooc_notes = meta_info
//PDA
pda = new(src)
spawn(5)
@@ -763,17 +763,14 @@
/mob/living/silicon/robot/Topic(href, href_list)
if(..())
return 1
//All Topic Calls that are only for the Cyborg go here
if(usr != src)
return 1
if (href_list["showalerts"])
subsystem_alarm_monitor()
return 1
// VOREStation Edit: Start
if(href_list["ooc_notes"])
src.Examine_OOC()
return
// VOREStation Edit: End
if (href_list["mod"])
var/obj/item/O = locate(href_list["mod"])
@@ -0,0 +1,5 @@
/mob/living/silicon/Topic(href, href_list) //For Robots and pAI's. And possibly AI's too.
if(href_list["ooc_notes"])
src.Examine_OOC()
return 1
return ..()
+15 -4
View File
@@ -6,12 +6,14 @@
/obj/effect/overlay/aiholo
var/mob/living/bellied //Only belly one person at a time. No huge vore-organs setup for AIs.
var/mob/living/silicon/ai/master //This will receive the AI controlling the Hologram. For referencing purposes.
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
alpha = HOLO_ORIGINAL_ALPHA //Half alpha here rather than in the icon so we can toggle it easily.
color = HOLO_ORIGINAL_COLOR //This is the blue from icons.dm that it was before.
desc = "A hologram representing an AI persona."
/obj/effect/overlay/aiholo/Destroy()
drop_prey()
walk(src, 0) // Because we might have called walk_to, we must stop the walk loop or BYOND keeps an internal reference to us forever.
return ..()
@@ -41,10 +43,6 @@
color = HOLO_ORIGINAL_COLOR
alpha = HOLO_ORIGINAL_ALPHA
/obj/effect/overlay/aiholo/Destroy()
drop_prey()
return ..()
/mob/living/silicon/ai/verb/holo_nom()
set name = "Hardlight Nom"
set category = "AI Commands"
@@ -95,3 +93,16 @@
if(user.client)
src.examine(user)
return
//This can go here with all the references.
/obj/effect/overlay/aiholo/examine(mob/user)
. = ..(user)
var/msg = "\n"
//If you need an ooc_notes copy paste, this is NOT the one to use.
var/ooc_notes = master.ooc_notes
if(ooc_notes)
msg += "<span class = 'deptradio'>OOC Notes:</span> <a href='?src=\ref[master];ooc_notes=1'>\[View\]</a>\n"
user << msg
@@ -191,7 +191,7 @@
name = "Serdy's Weapon Box"
has_items = list(
/obj/item/weapon/permit/gun/fluff/silencedmp5a5,
/obj/item/weapon/gun/projectile/revolver/detective/fluff/serdy)
/obj/item/weapon/gun/projectile/colt/fluff/serdy)
/*
@@ -1468,4 +1468,15 @@ Departamental Swimsuits, for general use
icon_state = "sfjacket"
icon_override = 'icons/vore/custom_clothes_vr.dmi'
item_state = "sfjacket_mob"
item_state = "sfjacket_mob"
//General use
/obj/item/clothing/head/fluff/headbando
name = "basic headband"
desc = "Perfect for martial artists, sweaty rogue operators, and tunnel gangsters."
icon = 'icons/vore/custom_items_vr.dmi'
icon_state = "headbando"
icon_override = 'icons/vore/custom_clothes_vr.dmi'
item_state = "headbando"
@@ -189,6 +189,16 @@
ammo_type = /obj/item/ammo_casing/a357/stun
// SilencedMP5A5 : Serdykov Antoz
/obj/item/weapon/gun/projectile/colt/fluff/serdy
name = "Raikov PPS/45"
desc = "An expertly crafted and reliable .45 sidearm with a 7 round single-stack magazine, originally built and in 2369 for frontier men and peacekeepers. The frame and slide are nickel plated, and it has a synthetic black ivory grip. The words 'Krasnaya Raketa' are engraved on the slide near the muzzle. It's relatively thin, but heavy. It also has an ambidextrous mag release and safety lever, making it grippable in either hand comfortably."
icon = 'icons/vore/custom_guns_vr.dmi'
item_state = "raikov"
icon_state = "raikov"
fire_sound = 'sound/weapons/45pistol_vr.ogg'
magazine_type = /obj/item/ammo_magazine/m45/rubber
/* //Commented out due to weapon change.
/obj/item/weapon/gun/projectile/revolver/detective/fluff/serdy //This forces it to be .38 bullets only
name = "Vintage S&W Model 10"
desc = "It's a classic S&W Model 10 revolver. This one in particular is beautifully restored with a chromed black frame and cylinder, and a nice redwood grip. The name 'Serdykov A.' is engraved into the base of the grip."
@@ -198,6 +208,7 @@
fire_sound = 'sound/weapons/deagle.ogg'
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
ammo_type = /obj/item/ammo_casing/a38r //Rubber rounds.
*/
// LuminescentRing : Briana Moore
/obj/item/weapon/gun/projectile/derringer/fluff/briana
@@ -996,6 +996,30 @@ obj/item/weapon/material/hatchet/tacknife/combatknife/fluff/katarina/handle_shie
item_state_slots = list(slot_r_hand_str = "glasses", slot_l_hand_str = "glasses")
item_flags = AIRTIGHT
//verkister: Opie Eggbert - Spiffy fluff goggles
/obj/item/clothing/glasses/spiffygogs
name = "Chad Goggles"
desc = "You can almost feel the raw power radiating off these strange specs."
icon = 'icons/vore/custom_items_vr.dmi'
icon_override = 'icons/vore/custom_clothes_vr.dmi'
icon_state = "spiffygogs"
item_state_slots = list(slot_r_hand_str = "glasses", slot_l_hand_str = "glasses")
toggleable = 1
off_state = "spiffygogsup"
//General use
/obj/item/clothing/accessory/tronket
name = "metal necklace"
desc = "A shiny steel chain with a vague metallic object dangling off it."
w_class = ITEMSIZE_SMALL
icon = 'icons/vore/custom_items_vr.dmi'
icon_override = 'icons/vore/custom_clothes_vr.dmi'
icon_state = "tronket"
item_state = "tronket"
overlay_state = "tronket"
slot_flags = SLOT_TIE
slot = "over"
//The perfect adminboos device?
/obj/item/device/perfect_tele
name = "personal translocator"
+11 -9
View File
@@ -263,7 +263,7 @@ var/const/RESIZE_A_SMALLTINY = (RESIZE_SMALL + RESIZE_TINY) / 2
return 1
if(src.a_intent == I_GRAB && src.canmove && !src.buckled)
if((src.get_effective_size() - tmob.get_effective_size()) >= 0.75)
if((src.get_effective_size() - tmob.get_effective_size()) >= 0.50)
now_pushing = 0
src.forceMove(tmob.loc)
@@ -272,15 +272,17 @@ var/const/RESIZE_A_SMALLTINY = (RESIZE_SMALL + RESIZE_TINY) / 2
// User is a human (capable of scooping) and not wearing shoes! Scoop into foot slot!
equip_to_slot_if_possible(tmob.get_scooped(H), slot_shoes, 0, 1)
if(istype(H.tail_style, /datum/sprite_accessory/tail/taur/naga))
src << "You wrap up [tmob] with your powerful tail!"
tmob << "[src] binds you with their powerful tail!"
src << "You slither over [tmob] with your large, thick tail, smushing them against the ground before coiling up around them, trapping them within the tight confines of your tail!"
tmob << "[src] slithers over you with their large, thick tail, smushing you against the ground before coiling up around you, trapping you within the tight confines of their tail!"
else
src << "You clench your toes around [tmob]'s body!"
tmob << "[src] grabs your body with their toes!"
src << "You pin [tmob] down onto the floor with your foot and curl your toes up around their body, trapping them inbetween them!"
tmob << "[src] pins you down to the floor with their foot and curls their toes up around your body, trapping you inbetween them!"
else if(istype(H) && istype(H.tail_style, /datum/sprite_accessory/tail/taur/naga))
src << "You carefully squish [tmob] under your tail!"
tmob << "[src] pins you under their tail!"
src << "You squish [tmob] under your large, thick tail, forcing them onto the ground!"
tmob << "[src] pins you under their large, thick tail, forcing you onto the ground!!"
tmob.resting = 1
else
src << "You pin [tmob] beneath your foot!"
tmob << "[src] pins you beneath their foot!"
src << "You step down onto [tmob], squishing them and forcing them down to the ground!"
tmob << "[src] steps down and squishes you with their foot, forcing you down to the ground!"
tmob.resting = 1
return 1
+5
View File
@@ -622,6 +622,11 @@ character_name: Cameron Eggbert
item_path: /obj/item/weapon/disk/limb/eggnerdltd
}
{
ckey: verkister
character_name: Opie Eggbert
item_path: /obj/item/clothing/glasses/spiffygogs
}
{
ckey: virgo113
character_name: Verin Raharra
item_path: /obj/item/clothing/suit/storage/hazardvest/fluff/verin
Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 KiB

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.
+2
View File
@@ -97,6 +97,7 @@
#include "code\_onclick\drag_drop.dm"
#include "code\_onclick\item_attack.dm"
#include "code\_onclick\observer.dm"
#include "code\_onclick\observer_vr.dm"
#include "code\_onclick\other_mobs.dm"
#include "code\_onclick\rig.dm"
#include "code\_onclick\telekinesis.dm"
@@ -1857,6 +1858,7 @@
#include "code\modules\mob\living\silicon\login.dm"
#include "code\modules\mob\living\silicon\say.dm"
#include "code\modules\mob\living\silicon\silicon.dm"
#include "code\modules\mob\living\silicon\silicon_vr.dm"
#include "code\modules\mob\living\silicon\subystems.dm"
#include "code\modules\mob\living\silicon\ai\ai.dm"
#include "code\modules\mob\living\silicon\ai\ai_movement.dm"