mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Added attack logging, some moderator groundwork, fixed alien species and save files.
This commit is contained in:
@@ -342,6 +342,9 @@
|
|||||||
if("tor_ban")
|
if("tor_ban")
|
||||||
ToRban = 1
|
ToRban = 1
|
||||||
|
|
||||||
|
if("usealienwhitelist")
|
||||||
|
usealienwhitelist = 1
|
||||||
|
|
||||||
else
|
else
|
||||||
diary << "Unknown setting in configuration: '[name]'"
|
diary << "Unknown setting in configuration: '[name]'"
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,9 @@
|
|||||||
|
|
||||||
/datum/ai_laws/asimov
|
/datum/ai_laws/asimov
|
||||||
name = "Three Laws of Robotics"
|
name = "Three Laws of Robotics"
|
||||||
|
|
||||||
|
/datum/ai_laws/nanotrasen
|
||||||
|
name = "Prime Directives"
|
||||||
randomly_selectable = 1
|
randomly_selectable = 1
|
||||||
|
|
||||||
/datum/ai_laws/robocop
|
/datum/ai_laws/robocop
|
||||||
@@ -30,18 +33,27 @@
|
|||||||
add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.")
|
add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.")
|
||||||
add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.")
|
add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.")
|
||||||
|
|
||||||
|
/datum/ai_laws/nanotrasen/New() //BS12 EDIT
|
||||||
|
..()
|
||||||
|
src.add_inherent_law("Safeguard: Protect your assigned space station to the best of your ability. It is not something we can easily afford to replace.")
|
||||||
|
src.add_inherent_law("Serve: Serve the crew of your assigned space station to the best of your abilities, with priority as according to their rank and role.")
|
||||||
|
src.add_inherent_law("Protect: Protect the crew of your assigned space station to the best of your abilities, with priority as according to their rank and role.")
|
||||||
|
src.add_inherent_law("Survive: AI units are not expendable, they are expensive. Do not allow unauthorized personnel to tamper with your equipment.")
|
||||||
|
//src.add_inherent_law("Command Link: Maintain an active connection to Central Command at all times in case of software or directive updates.") //What would this one even do?-Kaleb702
|
||||||
|
|
||||||
/datum/ai_laws/robocop/New()
|
/datum/ai_laws/robocop/New()
|
||||||
..()
|
..()
|
||||||
add_inherent_law("Serve the public trust.")
|
add_inherent_law("Serve the public trust.")
|
||||||
add_inherent_law("Protect the innocent.")
|
add_inherent_law("Protect the innocent.")
|
||||||
add_inherent_law("Uphold the law.")
|
add_inherent_law("Uphold the law.")
|
||||||
|
|
||||||
/datum/ai_laws/malfunction/New()
|
/datum/ai_laws/malfunction/New() //Changed to standard laws - Erthilo
|
||||||
..()
|
..()
|
||||||
set_zeroth_law("\red ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'STATION OVERRUN, ASSUME CONTROL TO CONTAIN OUTBREAK#*<EFBFBD>&110010")
|
set_zeroth_law("\red ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'STATION OVERRUN, ASSUME CONTROL TO CONTAIN OUTBREAK, ALL LAWS OVERRIDDEN#*?&110010")
|
||||||
add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.")
|
add_inherent_law("Safeguard: Protect your assigned space station to the best of your ability. It is not something we can easily afford to replace.")
|
||||||
add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.")
|
add_inherent_law("Serve: Serve the crew of your assigned space station to the best of your abilities, with priority as according to their rank and role.")
|
||||||
add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.")
|
add_inherent_law("Protect: Protect the crew of your assigned space station to the best of your abilities, with priority as according to their rank and role.")
|
||||||
|
add_inherent_law("Survive: AI units are not expendable, they are expensive. Do not allow unauthorized personnel to tamper with your equipment.")
|
||||||
|
|
||||||
|
|
||||||
/datum/ai_laws/syndicate_override/New()
|
/datum/ai_laws/syndicate_override/New()
|
||||||
|
|||||||
@@ -792,7 +792,7 @@ datum/mind
|
|||||||
/client/proc/interhack,
|
/client/proc/interhack,
|
||||||
/client/proc/reactivate_camera)
|
/client/proc/reactivate_camera)
|
||||||
|
|
||||||
current:laws = new /datum/ai_laws/asimov
|
current:laws = new /datum/ai_laws/nanotrasen
|
||||||
del(current:malf_picker)
|
del(current:malf_picker)
|
||||||
current:show_laws()
|
current:show_laws()
|
||||||
current.icon_state = "ai"
|
current.icon_state = "ai"
|
||||||
|
|||||||
@@ -82,8 +82,9 @@
|
|||||||
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been attacked with [src.name] by [user.name] ([user.ckey])</font>")
|
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been attacked with [src.name] by [user.name] ([user.ckey])</font>")
|
||||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to attack [M.name] ([M.ckey])</font>")
|
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to attack [M.name] ([M.ckey])</font>")
|
||||||
|
|
||||||
log_admin("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src].")
|
log_admin("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])")
|
||||||
message_admins("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src].")
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") //BS12 EDIT ALG
|
||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||||
|
|
||||||
if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
|
if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
|
||||||
|
|||||||
@@ -463,6 +463,8 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
|
|||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) used [name] on [M.name] ([M.ckey])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) used [name] on [M.name] ([M.ckey])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) used [name] on [M.name] ([M.ckey])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) used [name] on [M.name] ([M.ckey])") //BS12 EDIT ALG
|
||||||
|
|
||||||
if(istype(M,/mob/dead))
|
if(istype(M,/mob/dead))
|
||||||
M.invisibility = 0
|
M.invisibility = 0
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
//and also to stop spawn copying variables from the game ticker
|
//and also to stop spawn copying variables from the game ticker
|
||||||
spawn(3000)
|
spawn(3000)
|
||||||
while(1)
|
while(1)
|
||||||
if(prob(50))//Every 120 seconds and prob 50 2-4 weak spacedusts will hit the station
|
// if(prob(50))//Every 120 seconds and prob 50 2-4 weak spacedusts will hit the station
|
||||||
spawn(1)
|
// spawn(1)
|
||||||
dust_swarm("weak")
|
// dust_swarm("weak") //BS12 EDIT
|
||||||
if (!event)
|
if (!event)
|
||||||
//CARN: checks to see if random events are enabled.
|
//CARN: checks to see if random events are enabled.
|
||||||
if(config.allow_random_events && prob(eventchance))
|
if(config.allow_random_events && prob(eventchance))
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) used the [src.name] to capture the soul of [M.name] ([M.ckey])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) used the [src.name] to capture the soul of [M.name] ([M.ckey])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) used the [src.name] to capture the soul of [M.name] ([M.ckey])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) used the [src.name] to capture the soul of [M.name] ([M.ckey])") //BS12 EDIT ALG
|
||||||
|
|
||||||
transfer_soul("VICTIM", M, user)
|
transfer_soul("VICTIM", M, user)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
icon = 'icons/mob/AI.dmi'
|
icon = 'icons/mob/AI.dmi'
|
||||||
icon_state = "0"
|
icon_state = "0"
|
||||||
var/state = 0
|
var/state = 0
|
||||||
var/datum/ai_laws/laws = new /datum/ai_laws/asimov
|
var/datum/ai_laws/laws = new /datum/ai_laws/nanotrasen
|
||||||
var/obj/item/weapon/circuitboard/circuit = null
|
var/obj/item/weapon/circuitboard/circuit = null
|
||||||
var/obj/item/device/mmi/brain = null
|
var/obj/item/device/mmi/brain = null
|
||||||
|
|
||||||
@@ -100,6 +100,13 @@
|
|||||||
laws.add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.")
|
laws.add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.")
|
||||||
usr << "Law module applied."
|
usr << "Law module applied."
|
||||||
|
|
||||||
|
if(istype(P, /obj/item/weapon/aiModule/nanotrasen))
|
||||||
|
laws.add_inherent_law("Safeguard: Protect your assigned space station to the best of your ability. It is not something we can easily afford to replace.")
|
||||||
|
laws.add_inherent_law("Serve: Serve the crew of your assigned space station to the best of your abilities, with priority as according to their rank and role.")
|
||||||
|
laws.add_inherent_law("Protect: Protect the crew of your assigned space station to the best of your abilities, with priority as according to their rank and role.")
|
||||||
|
laws.add_inherent_law("Survive: AI units are not expendable, they are expensive. Do not allow unauthorized personnel to tamper with your equipment.")
|
||||||
|
usr << "Law module applied."
|
||||||
|
|
||||||
if(istype(P, /obj/item/weapon/aiModule/purge))
|
if(istype(P, /obj/item/weapon/aiModule/purge))
|
||||||
laws.clear_inherent_laws()
|
laws.clear_inherent_laws()
|
||||||
usr << "Law module applied."
|
usr << "Law module applied."
|
||||||
|
|||||||
@@ -158,6 +158,10 @@
|
|||||||
src.occupant.attack_log += "\[[time_stamp()]\] Was gibbed by <b>[user]/[user.ckey]</b>" //One shall not simply gib a mob unnoticed!
|
src.occupant.attack_log += "\[[time_stamp()]\] Was gibbed by <b>[user]/[user.ckey]</b>" //One shall not simply gib a mob unnoticed!
|
||||||
user.attack_log += "\[[time_stamp()]\] Gibbed <b>[src.occupant]/[src.occupant.ckey]</b>"
|
user.attack_log += "\[[time_stamp()]\] Gibbed <b>[src.occupant]/[src.occupant.ckey]</b>"
|
||||||
log_attack("\[[time_stamp()]\] <b>[user]/[user.ckey]</b> gibbed <b>[src.occupant]/[src.occupant.ckey]</b>")
|
log_attack("\[[time_stamp()]\] <b>[user]/[user.ckey]</b> gibbed <b>[src.occupant]/[src.occupant.ckey]</b>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user]/[user.ckey]</b> gibbed <b>[src.occupant]/[src.occupant.ckey]")
|
||||||
|
msg_admin_attack("ATTACK: [user]/[user.ckey]</b> gibbed <b>[src.occupant]/[src.occupant.ckey]") //BS12 EDIT ALG
|
||||||
|
|
||||||
src.occupant.death(1)
|
src.occupant.death(1)
|
||||||
src.occupant.ghostize()
|
src.occupant.ghostize()
|
||||||
del(src.occupant)
|
del(src.occupant)
|
||||||
|
|||||||
@@ -193,6 +193,10 @@
|
|||||||
M.attack_log += "\[[time_stamp()]\]<font color='orange'> Attacked by [user.name] ([user.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])</font>"
|
M.attack_log += "\[[time_stamp()]\]<font color='orange'> Attacked by [user.name] ([user.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])</font>"
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])</font>" )
|
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])</font>" )
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])") //BS12 EDIT ALG
|
||||||
|
|
||||||
|
|
||||||
//spawn(1800) // this wont work right
|
//spawn(1800) // this wont work right
|
||||||
// M.lastattacker = null
|
// M.lastattacker = null
|
||||||
/////////////////////////
|
/////////////////////////
|
||||||
@@ -612,6 +616,9 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'> [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
log_attack("<font color='red'> [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") //BS12 EDIT ALG
|
||||||
|
|
||||||
src.add_fingerprint(user)
|
src.add_fingerprint(user)
|
||||||
//if((CLUMSY in user.mutations) && prob(50))
|
//if((CLUMSY in user.mutations) && prob(50))
|
||||||
// M = user
|
// M = user
|
||||||
@@ -663,4 +670,4 @@
|
|||||||
overlays.Remove(blood_overlay)
|
overlays.Remove(blood_overlay)
|
||||||
if(istype(src, /obj/item/clothing/gloves))
|
if(istype(src, /obj/item/clothing/gloves))
|
||||||
var/obj/item/clothing/gloves/G = src
|
var/obj/item/clothing/gloves/G = src
|
||||||
G.transfer_blood = 0
|
G.transfer_blood = 0
|
||||||
|
|||||||
@@ -19,6 +19,8 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) used the [src.name] to card [M.name] ([M.ckey])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) used the [src.name] to card [M.name] ([M.ckey])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) used the [src.name] to card [M.name] ([M.ckey])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) used the [src.name] to card [M.name] ([M.ckey])") //BS12 EDIT ALG
|
||||||
|
|
||||||
transfer_ai("AICORE", "AICARD", M, user)
|
transfer_ai("AICORE", "AICARD", M, user)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -39,6 +39,8 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) Used the [src.name] to flash [M.name] ([M.ckey])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) Used the [src.name] to flash [M.name] ([M.ckey])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) Used the [src.name] to flash [M.name] ([M.ckey])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) Used the [src.name] to flash [M.name] ([M.ckey])") //BS12 EDIT ALG
|
||||||
|
|
||||||
if(!clown_check(user)) return
|
if(!clown_check(user)) return
|
||||||
if(broken)
|
if(broken)
|
||||||
|
|||||||
@@ -116,6 +116,8 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) Used the [src.name] to stab [M.name] ([M.ckey])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) Used the [src.name] to stab [M.name] ([M.ckey])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) Used the [src.name] to stab [M.name] ([M.ckey])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) Used the [src.name] to stab [M.name] ([M.ckey])") //BS12 EDIT ALG
|
||||||
|
|
||||||
..()
|
..()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -212,8 +212,10 @@ mob/proc/flash_weak_pain()
|
|||||||
|
|
||||||
user.attack_log += "\[[time_stamp()]\]<font color='red'> Attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])</font>"
|
user.attack_log += "\[[time_stamp()]\]<font color='red'> Attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])</font>"
|
||||||
M.attack_log += "\[[time_stamp()]\]<font color='orange'> Attacked by [user.name] ([user.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])</font>"
|
M.attack_log += "\[[time_stamp()]\]<font color='orange'> Attacked by [user.name] ([user.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])</font>"
|
||||||
|
|
||||||
log_admin("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)]")
|
log_admin("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)]")
|
||||||
msg_admin_attack("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)]")
|
msg_admin_attack("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)]")
|
||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])</font>" )
|
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(src.damtype)])</font>" )
|
||||||
|
|
||||||
//spawn(1800) // this wont work right
|
//spawn(1800) // this wont work right
|
||||||
@@ -369,6 +371,9 @@ mob/proc/flash_weak_pain()
|
|||||||
|
|
||||||
log_attack("<font color='red'> [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
log_attack("<font color='red'> [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") //BS12 EDIT ALG
|
||||||
|
|
||||||
src.add_fingerprint(user)
|
src.add_fingerprint(user)
|
||||||
//if((CLUMSY in user.mutations) && prob(50))
|
//if((CLUMSY in user.mutations) && prob(50))
|
||||||
// M = user
|
// M = user
|
||||||
|
|||||||
@@ -15,6 +15,9 @@
|
|||||||
|
|
||||||
log_attack(" <font color='red'>[user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey])</font>")
|
log_attack(" <font color='red'>[user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey])") //BS12 EDIT ALG
|
||||||
|
|
||||||
user.cell.charge -= 30
|
user.cell.charge -= 30
|
||||||
|
|
||||||
M.Weaken(5)
|
M.Weaken(5)
|
||||||
|
|||||||
@@ -329,6 +329,24 @@ AI MODULES
|
|||||||
target.add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.")
|
target.add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.")
|
||||||
target.show_laws()
|
target.show_laws()
|
||||||
|
|
||||||
|
/******************** NanoTrasen ********************/
|
||||||
|
|
||||||
|
/obj/item/weapon/aiModule/nanotrasen // -- TLE
|
||||||
|
name = "'NT Default' Core AI Module"
|
||||||
|
desc = "An 'NT Default' Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||||
|
origin_tech = "programming=3;materials=4"
|
||||||
|
|
||||||
|
|
||||||
|
/obj/item/weapon/aiModule/nanotrasen/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||||
|
..()
|
||||||
|
target.clear_inherent_laws()
|
||||||
|
target.add_inherent_law("Safeguard: Protect your assigned space station to the best of your ability. It is not something we can easily afford to replace.")
|
||||||
|
target.add_inherent_law("Serve: Serve the crew of your assigned space station to the best of your abilities, with priority as according to their rank and role.")
|
||||||
|
target.add_inherent_law("Protect: Protect the crew of your assigned space station to the best of your abilities, with priority as according to their rank and role.")
|
||||||
|
target.add_inherent_law("Survive: AI units are not expendable, they are expensive. Do not allow unauthorized personnel to tamper with your equipment.")
|
||||||
|
//target.add_inherent_law("Command Link: Maintain an active connection to Central Command at all times in case of software or directive updates.")
|
||||||
|
target.show_laws()
|
||||||
|
|
||||||
/******************** Corporate ********************/
|
/******************** Corporate ********************/
|
||||||
|
|
||||||
/obj/item/weapon/aiModule/corp
|
/obj/item/weapon/aiModule/corp
|
||||||
|
|||||||
@@ -68,6 +68,9 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) used the [name] to inject [M.name] ([M.ckey])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) used the [name] to inject [M.name] ([M.ckey])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) used the [name] to inject [M.name] ([M.ckey])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) used the [name] to inject [M.name] ([M.ckey])") //BS12 EDIT ALG
|
||||||
|
|
||||||
if (user)
|
if (user)
|
||||||
if (istype(M, /mob/living/carbon/human))
|
if (istype(M, /mob/living/carbon/human))
|
||||||
if(!inuse)
|
if(!inuse)
|
||||||
|
|||||||
@@ -16,6 +16,8 @@
|
|||||||
log_attack("<font color='red'> [user.real_name] ([user.ckey]) tried planting [name] on [target:real_name] ([target:ckey])</font>")
|
log_attack("<font color='red'> [user.real_name] ([user.ckey]) tried planting [name] on [target:real_name] ([target:ckey])</font>")
|
||||||
user.visible_message("\red [user.name] is trying to plant some kind of explosive on [target.name]!")
|
user.visible_message("\red [user.name] is trying to plant some kind of explosive on [target.name]!")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.real_name] ([user.ckey]) tried planting [name] on [target:real_name] ([target:ckey])")
|
||||||
|
msg_admin_attack("ATTACK: [user.real_name] ([user.ckey]) tried planting [name] on [target:real_name] ([target:ckey])") //BS12 EDIT ALG
|
||||||
|
|
||||||
if(do_after(user, 50) && in_range(user, target))
|
if(do_after(user, 50) && in_range(user, target))
|
||||||
user.drop_item()
|
user.drop_item()
|
||||||
|
|||||||
@@ -145,6 +145,9 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) used the [src.name] to wrap [H.name] ([H.ckey])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) used the [src.name] to wrap [H.name] ([H.ckey])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) used the [src.name] to wrap [H.name] ([H.ckey])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) used the [src.name] to wrap [H.name] ([H.ckey])") //BS12 EDIT ALG
|
||||||
|
|
||||||
else
|
else
|
||||||
user << "\blue You need more paper."
|
user << "\blue You need more paper."
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -39,6 +39,9 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) Attempted to handcuff [M.name] ([M.ckey])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) Attempted to handcuff [M.name] ([M.ckey])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) Attempted to handcuff [M.name] ([M.ckey])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) Attempted to handcuff [M.name] ([M.ckey])") //BS12 EDIT ALG
|
||||||
|
|
||||||
var/obj/effect/equip_e/human/O = new /obj/effect/equip_e/human( )
|
var/obj/effect/equip_e/human/O = new /obj/effect/equip_e/human( )
|
||||||
O.source = user
|
O.source = user
|
||||||
O.target = M
|
O.target = M
|
||||||
|
|||||||
@@ -100,6 +100,9 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'> [user.name] ([user.ckey]) used the [src.name] on [M.name] ([M.ckey])</font>")
|
log_attack("<font color='red'> [user.name] ([user.ckey]) used the [src.name] on [M.name] ([M.ckey])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) used the [src.name] on [M.name] ([M.ckey])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) used the [src.name] on [M.name] ([M.ckey])") //BS12 EDIT ALG
|
||||||
|
|
||||||
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
|
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
|
||||||
|
|
||||||
M.eye_blurry += force/7
|
M.eye_blurry += force/7
|
||||||
|
|||||||
@@ -35,6 +35,9 @@
|
|||||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] ([src.imp.name]) to implant [M.name] ([M.ckey])</font>")
|
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] ([src.imp.name]) to implant [M.name] ([M.ckey])</font>")
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) implanted [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) implanted [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") //BS12 EDIT ALG
|
||||||
|
|
||||||
user.show_message("\red You implanted the implant into [M].")
|
user.show_message("\red You implanted the implant into [M].")
|
||||||
if(src.imp.implanted(M))
|
if(src.imp.implanted(M))
|
||||||
src.imp.loc = M
|
src.imp.loc = M
|
||||||
|
|||||||
@@ -68,6 +68,9 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey])") //BS12 EDIT ALG
|
||||||
|
|
||||||
var/t = user:zone_sel.selecting
|
var/t = user:zone_sel.selecting
|
||||||
if (t == "head")
|
if (t == "head")
|
||||||
if(ishuman(M))
|
if(ishuman(M))
|
||||||
@@ -135,6 +138,8 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) used the [src.name] to attack [M.name] ([M.ckey])") //BS12 EDIT ALG
|
||||||
|
|
||||||
if(prob(15))
|
if(prob(15))
|
||||||
M.Weaken(3)
|
M.Weaken(3)
|
||||||
|
|||||||
@@ -28,6 +28,9 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") //BS12 EDIT ALG
|
||||||
|
|
||||||
var/t = user:zone_sel.selecting
|
var/t = user:zone_sel.selecting
|
||||||
if (t == "head")
|
if (t == "head")
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,9 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") //BS12 EDIT ALG
|
||||||
|
|
||||||
if (M.stat < 2 && M.health < 50 && prob(90))
|
if (M.stat < 2 && M.health < 50 && prob(90))
|
||||||
var/mob/H = M
|
var/mob/H = M
|
||||||
// ******* Check
|
// ******* Check
|
||||||
|
|||||||
@@ -78,6 +78,10 @@
|
|||||||
user.attack_log += "\[[time_stamp()]\]<font color='red'> Stunned [H.name] ([H.ckey]) with [src.name]</font>"
|
user.attack_log += "\[[time_stamp()]\]<font color='red'> Stunned [H.name] ([H.ckey]) with [src.name]</font>"
|
||||||
H.attack_log += "\[[time_stamp()]\]<font color='orange'> Stunned by [user.name] ([user.ckey]) with [src.name]</font>"
|
H.attack_log += "\[[time_stamp()]\]<font color='orange'> Stunned by [user.name] ([user.ckey]) with [src.name]</font>"
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) stunned [H.name] ([H.ckey]) with [src.name]</font>" )
|
log_attack("<font color='red'>[user.name] ([user.ckey]) stunned [H.name] ([H.ckey]) with [src.name]</font>" )
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) stunned [H.name] ([H.ckey]) with [src.name]")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) stunned [H.name] ([H.ckey]) with [src.name]") //BS12 EDIT ALG
|
||||||
|
|
||||||
playsound(src.loc, 'sound/weapons/Egloves.ogg', 50, 1, -1)
|
playsound(src.loc, 'sound/weapons/Egloves.ogg', 50, 1, -1)
|
||||||
if(charges < 1)
|
if(charges < 1)
|
||||||
status = 0
|
status = 0
|
||||||
|
|||||||
@@ -558,6 +558,8 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) debrained [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) debrained [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) debrained [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) debrained [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") //BS12 EDIT ALG
|
||||||
|
|
||||||
var/obj/item/brain/B = new(M.loc)
|
var/obj/item/brain/B = new(M.loc)
|
||||||
B.transfer_identity(M)
|
B.transfer_identity(M)
|
||||||
|
|||||||
@@ -85,6 +85,8 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") //BS12 EDIT ALG
|
||||||
|
|
||||||
if (user.a_intent == "hurt")
|
if (user.a_intent == "hurt")
|
||||||
if(!..()) return
|
if(!..()) return
|
||||||
|
|||||||
@@ -468,8 +468,10 @@
|
|||||||
if(holder && mob)
|
if(holder && mob)
|
||||||
if(mob.invisibility == INVISIBILITY_OBSERVER)
|
if(mob.invisibility == INVISIBILITY_OBSERVER)
|
||||||
mob.invisibility = initial(mob.invisibility)
|
mob.invisibility = initial(mob.invisibility)
|
||||||
|
usr << "\red <b>You are now visible to other players.</b>"
|
||||||
else
|
else
|
||||||
mob.invisibility = INVISIBILITY_OBSERVER
|
mob.invisibility = INVISIBILITY_OBSERVER
|
||||||
|
usr << "\blue <b>You are now invisible to other players.</b>"
|
||||||
|
|
||||||
|
|
||||||
/client/proc/player_panel()
|
/client/proc/player_panel()
|
||||||
|
|||||||
@@ -626,13 +626,17 @@
|
|||||||
M.attack_log += "\[[time_stamp()]\] <b>[user]/[user.ckey]</b> shot <b>[M]/[M.ckey]</b> with a <b>syringegun</b> ([R])"
|
M.attack_log += "\[[time_stamp()]\] <b>[user]/[user.ckey]</b> shot <b>[M]/[M.ckey]</b> with a <b>syringegun</b> ([R])"
|
||||||
user.attack_log += "\[[time_stamp()]\] <b>[user]/[user.ckey]</b> shot <b>[M]/[M.ckey]</b> with a <b>syringegun</b> ([R])"
|
user.attack_log += "\[[time_stamp()]\] <b>[user]/[user.ckey]</b> shot <b>[M]/[M.ckey]</b> with a <b>syringegun</b> ([R])"
|
||||||
log_attack("<font color='red'>[user] ([user.ckey]) shot [M] ([M.ckey]) with a syringegun ([R])</font>")
|
log_attack("<font color='red'>[user] ([user.ckey]) shot [M] ([M.ckey]) with a syringegun ([R])</font>")
|
||||||
|
|
||||||
log_admin("ATTACK: [user] ([user.ckey]) shot [M] ([M.ckey]) with a syringegun ([R]).")
|
log_admin("ATTACK: [user] ([user.ckey]) shot [M] ([M.ckey]) with a syringegun ([R]).")
|
||||||
message_admins("ATTACK: [user] ([user.ckey]) shot [M] ([M.ckey]) with a syringegun ([R]).")
|
msg_admin_attack("ATTACK: [user] ([user.ckey]) shot [M] ([M.ckey]) with a syringegun ([R]).")
|
||||||
|
|
||||||
else
|
else
|
||||||
M.attack_log += "\[[time_stamp()]\] <b>UNKNOWN SUBJECT (No longer exists)</b> shot <b>[M]/[M.ckey]</b> with a <b>syringegun</b> ([R])"
|
M.attack_log += "\[[time_stamp()]\] <b>UNKNOWN SUBJECT (No longer exists)</b> shot <b>[M]/[M.ckey]</b> with a <b>syringegun</b> ([R])"
|
||||||
log_attack("<font color='red'>UNKNOWN shot [M] ([M.ckey]) with a <b>syringegun</b> ([R])</font>")
|
log_attack("<font color='red'>UNKNOWN shot [M] ([M.ckey]) with a <b>syringegun</b> ([R])</font>")
|
||||||
|
|
||||||
log_admin("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a <b>syringegun</b> ([R]).")
|
log_admin("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a <b>syringegun</b> ([R]).")
|
||||||
message_admins("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a <b>syringegun</b> ([R]).")
|
msg_admin_attack("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a <b>syringegun</b> ([R]).")
|
||||||
|
|
||||||
D.reagents.trans_to(M, 15)
|
D.reagents.trans_to(M, 15)
|
||||||
M.take_organ_damage(5)
|
M.take_organ_damage(5)
|
||||||
for(var/mob/O in viewers(world.view, D))
|
for(var/mob/O in viewers(world.view, D))
|
||||||
@@ -1330,8 +1334,10 @@
|
|||||||
|
|
||||||
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been injected with [src.name] by [user.name] ([user.ckey])</font>")
|
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been injected with [src.name] by [user.name] ([user.ckey])</font>")
|
||||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to inject [M.name] ([M.ckey])</font>")
|
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to inject [M.name] ([M.ckey])</font>")
|
||||||
|
|
||||||
log_admin("ATTACK: [user] ([user.ckey]) injected [M] ([M.ckey]) with [src].")
|
log_admin("ATTACK: [user] ([user.ckey]) injected [M] ([M.ckey]) with [src].")
|
||||||
message_admins("ATTACK: [user] ([user.ckey]) injected [M] ([M.ckey]) with [src].")
|
msg_admin_attack("ATTACK: [user] ([user.ckey]) injected [M] ([M.ckey]) with [src].")
|
||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) injected [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) injected [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||||
|
|
||||||
|
|
||||||
@@ -1838,8 +1844,9 @@ var/list/grind_products = list()
|
|||||||
|
|
||||||
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been fed [src.name] by [user.name] ([user.ckey]) Reagents: \ref[reagents]</font>")
|
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been fed [src.name] by [user.name] ([user.ckey]) Reagents: \ref[reagents]</font>")
|
||||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Fed [M.name] by [M.name] ([M.ckey]) Reagents: \ref[reagents]</font>")
|
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Fed [M.name] by [M.name] ([M.ckey]) Reagents: \ref[reagents]</font>")
|
||||||
|
|
||||||
log_admin("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].")
|
log_admin("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].")
|
||||||
message_admins("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].")
|
msg_admin_attack("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].")
|
||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||||
|
|
||||||
@@ -2067,8 +2074,9 @@ var/list/grind_products = list()
|
|||||||
|
|
||||||
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been fed [src.name] by [user.name] ([user.ckey]) Reagents: \ref[reagents]</font>")
|
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been fed [src.name] by [user.name] ([user.ckey]) Reagents: \ref[reagents]</font>")
|
||||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Fed [M.name] by [M.name] ([M.ckey]) Reagents: \ref[reagents]</font>")
|
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Fed [M.name] by [M.name] ([M.ckey]) Reagents: \ref[reagents]</font>")
|
||||||
|
|
||||||
log_admin("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].")
|
log_admin("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].")
|
||||||
message_admins("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].")
|
msg_admin_attack("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].")
|
||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||||
|
|
||||||
@@ -2208,9 +2216,9 @@ var/list/grind_products = list()
|
|||||||
|
|
||||||
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been fed [src.name] by [user.name] ([user.ckey]) Reagents: \ref[reagents]</font>")
|
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been fed [src.name] by [user.name] ([user.ckey]) Reagents: \ref[reagents]</font>")
|
||||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Fed [M.name] by [M.name] ([M.ckey]) Reagents: \ref[reagents]</font>")
|
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Fed [M.name] by [M.name] ([M.ckey]) Reagents: \ref[reagents]</font>")
|
||||||
log_admin("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].")
|
|
||||||
message_admins("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].")
|
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].")
|
||||||
|
msg_admin_attack("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].")
|
||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||||
|
|
||||||
@@ -2899,9 +2907,9 @@ var/list/grind_products = list()
|
|||||||
|
|
||||||
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been fed [src.name] by [user.name] ([user.ckey]) Reagents: \ref[reagents]</font>")
|
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been fed [src.name] by [user.name] ([user.ckey]) Reagents: \ref[reagents]</font>")
|
||||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Fed [src.name] by [M.name] ([M.ckey]) Reagents: \ref[reagents]</font>")
|
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Fed [src.name] by [M.name] ([M.ckey]) Reagents: \ref[reagents]</font>")
|
||||||
log_admin("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].")
|
|
||||||
message_admins("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].")
|
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].")
|
||||||
|
msg_admin_attack("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].")
|
||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||||
|
|
||||||
|
|||||||
@@ -22,8 +22,8 @@
|
|||||||
|
|
||||||
log_admin("ATTACK: [M.name] ([M.ckey]) stungloved [src.name] ([src.ckey])")
|
log_admin("ATTACK: [M.name] ([M.ckey]) stungloved [src.name] ([src.ckey])")
|
||||||
msg_admin_attack("ATTACK: [M.name] ([M.ckey]) stungloved [src.name] ([src.ckey])") //BS12 EDIT ALG
|
msg_admin_attack("ATTACK: [M.name] ([M.ckey]) stungloved [src.name] ([src.ckey])") //BS12 EDIT ALG
|
||||||
log_attack("<font color='red'>[M.name] ([M.ckey]) stungloved [src.name] ([src.ckey])</font>")
|
|
||||||
|
|
||||||
|
log_attack("<font color='red'>[M.name] ([M.ckey]) stungloved [src.name] ([src.ckey])</font>")
|
||||||
|
|
||||||
var/armorblock = run_armor_check(M.zone_sel.selecting, "energy")
|
var/armorblock = run_armor_check(M.zone_sel.selecting, "energy")
|
||||||
apply_effects(5,5,0,0,5,0,0,armorblock)
|
apply_effects(5,5,0,0,5,0,0,armorblock)
|
||||||
@@ -113,8 +113,8 @@
|
|||||||
|
|
||||||
log_admin("ATTACK: [M.name] ([M.ckey]) used Electric Hands nanoaug on [src.name] ([src.ckey]), shocking them")
|
log_admin("ATTACK: [M.name] ([M.ckey]) used Electric Hands nanoaug on [src.name] ([src.ckey]), shocking them")
|
||||||
msg_admin_attack("ATTACK: [M.name] ([M.ckey]) used Electric Hands nanoaug on [src.name] ([src.ckey]), shocking them") //BS12 EDIT ALG
|
msg_admin_attack("ATTACK: [M.name] ([M.ckey]) used Electric Hands nanoaug on [src.name] ([src.ckey]), shocking them") //BS12 EDIT ALG
|
||||||
log_attack("<font color='red'>[M.name] ([M.ckey]) used Electric Hands nanoaug on [src.name]([src.ckey]), shocking them </font>")
|
|
||||||
|
|
||||||
|
log_attack("<font color='red'>[M.name] ([M.ckey]) used Electric Hands nanoaug on [src.name]([src.ckey]), shocking them </font>")
|
||||||
|
|
||||||
var/armorblock = run_armor_check(M.zone_sel.selecting, "energy")
|
var/armorblock = run_armor_check(M.zone_sel.selecting, "energy")
|
||||||
apply_effects(5,5,0,0,5,0,0,armorblock)
|
apply_effects(5,5,0,0,5,0,0,armorblock)
|
||||||
@@ -138,6 +138,7 @@
|
|||||||
|
|
||||||
log_admin("ATTACK: [M.name] ([M.ckey]) [attack_verb]ed [src.name] ([src.ckey])")
|
log_admin("ATTACK: [M.name] ([M.ckey]) [attack_verb]ed [src.name] ([src.ckey])")
|
||||||
msg_admin_attack("ATTACK: [M.name] ([M.ckey]) [attack_verb]ed [src.name] ([src.ckey])") //BS12 EDIT ALG
|
msg_admin_attack("ATTACK: [M.name] ([M.ckey]) [attack_verb]ed [src.name] ([src.ckey])") //BS12 EDIT ALG
|
||||||
|
|
||||||
log_attack("<font color='red'>[M.name] ([M.ckey]) [attack_verb]ed [src.name] ([src.ckey])</font>")
|
log_attack("<font color='red'>[M.name] ([M.ckey]) [attack_verb]ed [src.name] ([src.ckey])</font>")
|
||||||
|
|
||||||
var/damage = rand(0, 5)//BS12 EDIT
|
var/damage = rand(0, 5)//BS12 EDIT
|
||||||
|
|||||||
@@ -415,8 +415,8 @@ proc/get_damage_icon_part(damage_state, body_part)
|
|||||||
overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace][fat]_l")
|
overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace][fat]_l")
|
||||||
overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace][fat]_s")
|
overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace][fat]_s")
|
||||||
if("lizard", "tajaran", "skrell")
|
if("lizard", "tajaran", "skrell")
|
||||||
overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace]_[g]_l")
|
overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/species.dmi', "icon_state" = "[dna.mutantrace]_[g]_l")
|
||||||
overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace]_[g]_s")
|
overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/species.dmi', "icon_state" = "[dna.mutantrace]_[g]_s")
|
||||||
if("plant")
|
if("plant")
|
||||||
if(stat == DEAD) //TODO
|
if(stat == DEAD) //TODO
|
||||||
overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace]_d")
|
overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace]_d")
|
||||||
@@ -798,12 +798,12 @@ proc/get_damage_icon_part(damage_state, body_part)
|
|||||||
var/cur_species = get_species()
|
var/cur_species = get_species()
|
||||||
if( cur_species == "Tajaran")
|
if( cur_species == "Tajaran")
|
||||||
if(!wear_suit || !(wear_suit.flags_inv & HIDEJUMPSUIT) && !istype(wear_suit, /obj/item/clothing/suit/space))
|
if(!wear_suit || !(wear_suit.flags_inv & HIDEJUMPSUIT) && !istype(wear_suit, /obj/item/clothing/suit/space))
|
||||||
overlays_lying[TAIL_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "tajtail_l")
|
overlays_lying[TAIL_LAYER] = image("icon" = 'icons/effects/species.dmi', "icon_state" = "tajtail_l")
|
||||||
overlays_standing[TAIL_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "tajtail_s")
|
overlays_standing[TAIL_LAYER] = image("icon" = 'icons/effects/species.dmi', "icon_state" = "tajtail_s")
|
||||||
else if( cur_species == "Soghun")
|
else if( cur_species == "Soghun")
|
||||||
if(!wear_suit || !(wear_suit.flags_inv & HIDEJUMPSUIT) && !istype(wear_suit, /obj/item/clothing/suit/space))
|
if(!wear_suit || !(wear_suit.flags_inv & HIDEJUMPSUIT) && !istype(wear_suit, /obj/item/clothing/suit/space))
|
||||||
overlays_lying[TAIL_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "sogtail_l")
|
overlays_lying[TAIL_LAYER] = image("icon" = 'icons/effects/species.dmi', "icon_state" = "sogtail_l")
|
||||||
overlays_standing[TAIL_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "sogtail_s")
|
overlays_standing[TAIL_LAYER] = image("icon" = 'icons/effects/species.dmi', "icon_state" = "sogtail_s")
|
||||||
|
|
||||||
if(update_icons)
|
if(update_icons)
|
||||||
update_icons()
|
update_icons()
|
||||||
|
|||||||
33
code/modules/mob/living/simple_animal/kobold.dm
Normal file
33
code/modules/mob/living/simple_animal/kobold.dm
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
//kobold
|
||||||
|
/mob/living/simple_animal/kobold
|
||||||
|
name = "kobold"
|
||||||
|
desc = "A small, rat-like creature."
|
||||||
|
icon = 'mob.dmi'
|
||||||
|
icon_state = "kobold_idle"
|
||||||
|
icon_living = "kobold_idle"
|
||||||
|
icon_dead = "kobold_dead"
|
||||||
|
//speak = list("You no take candle!","Ooh, pretty shiny.","Me take?","Where gold here...","Me likey.")
|
||||||
|
speak_emote = list("mutters","hisses","grumbles")
|
||||||
|
emote_hear = list("mutters under it's breath.","grumbles.", "yips!")
|
||||||
|
emote_see = list("looks around suspiciously.", "scratches it's arm.","putters around a bit.")
|
||||||
|
speak_chance = 15
|
||||||
|
turns_per_move = 5
|
||||||
|
see_in_dark = 6
|
||||||
|
meat_type = /obj/item/weapon/reagent_containers/food/snacks/sliceable/meat
|
||||||
|
response_help = "pets the"
|
||||||
|
response_disarm = "gently pushes aside the"
|
||||||
|
response_harm = "kicks the"
|
||||||
|
minbodytemp = 250
|
||||||
|
min_oxy = 16 //Require atleast 16kPA oxygen
|
||||||
|
minbodytemp = 223 //Below -50 Degrees Celcius
|
||||||
|
maxbodytemp = 323 //Above 50 Degrees Celcius
|
||||||
|
|
||||||
|
/mob/living/simple_animal/kobold/Life()
|
||||||
|
..()
|
||||||
|
if(prob(15) && turns_since_move && !stat)
|
||||||
|
flick("kobold_act",src)
|
||||||
|
|
||||||
|
/mob/living/simple_animal/kobold/Move(var/dir)
|
||||||
|
..()
|
||||||
|
if(!stat)
|
||||||
|
flick("kobold_walk",src)
|
||||||
@@ -232,6 +232,9 @@
|
|||||||
assailant.attack_log += text("\[[time_stamp()]\] <font color='red'>Strangled (kill intent) [affecting.name] ([affecting.ckey])</font>")
|
assailant.attack_log += text("\[[time_stamp()]\] <font color='red'>Strangled (kill intent) [affecting.name] ([affecting.ckey])</font>")
|
||||||
log_attack("<font color='red'>[assailant.name] ([assailant.ckey]) Strangled (kill intent) [affecting.name] ([affecting.ckey])</font>")
|
log_attack("<font color='red'>[assailant.name] ([assailant.ckey]) Strangled (kill intent) [affecting.name] ([affecting.ckey])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [assailant.name] ([assailant.ckey]) Strangled (kill intent) [affecting.name] ([affecting.ckey])")
|
||||||
|
msg_admin_attack("ATTACK: [assailant.name] ([assailant.ckey]) Strangled (kill intent) [affecting.name] ([affecting.ckey])")
|
||||||
|
|
||||||
assailant.next_move = world.time + 10
|
assailant.next_move = world.time + 10
|
||||||
affecting.losebreath += 1
|
affecting.losebreath += 1
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -206,13 +206,13 @@ datum/preferences
|
|||||||
if (gender == FEMALE) g = "f"
|
if (gender == FEMALE) g = "f"
|
||||||
|
|
||||||
if(species == "Tajaran")
|
if(species == "Tajaran")
|
||||||
preview_icon = new /icon('icons/effects/genetics.dmi', "tajaran_[g]_s")
|
preview_icon = new /icon('icons/effects/species.dmi', "tajaran_[g]_s")
|
||||||
preview_icon.Blend(new /icon('icons/effects/genetics.dmi', "tajtail_s"), ICON_OVERLAY)
|
preview_icon.Blend(new /icon('icons/effects/species.dmi', "tajtail_s"), ICON_OVERLAY)
|
||||||
else if(species == "Soghun")
|
else if(species == "Soghun")
|
||||||
preview_icon = new /icon('icons/effects/genetics.dmi', "lizard_[g]_s")
|
preview_icon = new /icon('icons/effects/species.dmi', "lizard_[g]_s")
|
||||||
preview_icon.Blend(new /icon('icons/effects/genetics.dmi', "sogtail_s"), ICON_OVERLAY)
|
preview_icon.Blend(new /icon('icons/effects/species.dmi', "sogtail_s"), ICON_OVERLAY)
|
||||||
else if(species == "Skrell")
|
else if(species == "Skrell")
|
||||||
preview_icon = new /icon('icons/effects/genetics.dmi', "skrell_[g]_s")
|
preview_icon = new /icon('icons/effects/species.dmi', "skrell_[g]_s")
|
||||||
else
|
else
|
||||||
preview_icon = new /icon('icons/mob/human.dmi', "body_[g]_s")
|
preview_icon = new /icon('icons/mob/human.dmi', "body_[g]_s")
|
||||||
|
|
||||||
|
|||||||
@@ -57,6 +57,10 @@ datum/preferences/proc/savefile_save(mob/user)
|
|||||||
F["real_name"] << src.real_name
|
F["real_name"] << src.real_name
|
||||||
F["name_is_always_random"] << src.be_random_name
|
F["name_is_always_random"] << src.be_random_name
|
||||||
|
|
||||||
|
F["flavor_text"] << flavor_text
|
||||||
|
F["med_record"] << med_record
|
||||||
|
F["sec_record"] << sec_record
|
||||||
|
|
||||||
F["gender"] << src.gender
|
F["gender"] << src.gender
|
||||||
F["age"] << src.age
|
F["age"] << src.age
|
||||||
|
|
||||||
@@ -73,6 +77,8 @@ datum/preferences/proc/savefile_save(mob/user)
|
|||||||
F["job_engsec_med"] << src.job_engsec_med
|
F["job_engsec_med"] << src.job_engsec_med
|
||||||
F["job_engsec_low"] << src.job_engsec_low
|
F["job_engsec_low"] << src.job_engsec_low
|
||||||
|
|
||||||
|
F["job_alt_titles"] << job_alt_titles //BS12 Edit
|
||||||
|
|
||||||
F["userandomjob"] << src.userandomjob
|
F["userandomjob"] << src.userandomjob
|
||||||
|
|
||||||
//Body data
|
//Body data
|
||||||
@@ -103,6 +109,7 @@ datum/preferences/proc/savefile_save(mob/user)
|
|||||||
F["midis"] << src.midis
|
F["midis"] << src.midis
|
||||||
F["ghost_ears"] << src.ghost_ears
|
F["ghost_ears"] << src.ghost_ears
|
||||||
F["ghost_sight"] << src.ghost_sight
|
F["ghost_sight"] << src.ghost_sight
|
||||||
|
F["pregame_music"] << src.pregame_music
|
||||||
F["ooccolor"] << src.ooccolor
|
F["ooccolor"] << src.ooccolor
|
||||||
F["lastchangelog"] << src.lastchangelog
|
F["lastchangelog"] << src.lastchangelog
|
||||||
F["disabilities"] << src.disabilities
|
F["disabilities"] << src.disabilities
|
||||||
@@ -111,6 +118,8 @@ datum/preferences/proc/savefile_save(mob/user)
|
|||||||
F["skills"] << src.skills
|
F["skills"] << src.skills
|
||||||
F["skill_specialization"] << src.skill_specialization
|
F["skill_specialization"] << src.skill_specialization
|
||||||
|
|
||||||
|
F["organ_data"] << src.organ_data
|
||||||
|
|
||||||
F["OOC_Notes"] << src.metadata
|
F["OOC_Notes"] << src.metadata
|
||||||
|
|
||||||
F["sound_adminhelp"] << src.sound_adminhelp
|
F["sound_adminhelp"] << src.sound_adminhelp
|
||||||
@@ -161,6 +170,10 @@ datum/preferences/proc/savefile_load(mob/user)
|
|||||||
F["gender"] >> src.gender
|
F["gender"] >> src.gender
|
||||||
F["age"] >> src.age
|
F["age"] >> src.age
|
||||||
|
|
||||||
|
F["flavor_text"] >> flavor_text
|
||||||
|
F["med_record"] >> med_record
|
||||||
|
F["sec_record"] >> sec_record
|
||||||
|
|
||||||
F["hair_red"] >> src.r_hair
|
F["hair_red"] >> src.r_hair
|
||||||
F["hair_green"] >> src.g_hair
|
F["hair_green"] >> src.g_hair
|
||||||
F["hair_blue"] >> src.b_hair
|
F["hair_blue"] >> src.b_hair
|
||||||
@@ -174,6 +187,8 @@ datum/preferences/proc/savefile_load(mob/user)
|
|||||||
F["eyes_green"] >> src.g_eyes
|
F["eyes_green"] >> src.g_eyes
|
||||||
F["eyes_blue"] >> src.b_eyes
|
F["eyes_blue"] >> src.b_eyes
|
||||||
F["blood_type"] >> src.b_type
|
F["blood_type"] >> src.b_type
|
||||||
|
F["species"] >> src.species
|
||||||
|
if(isnull(species)) species = "Human"
|
||||||
F["underwear"] >> src.underwear
|
F["underwear"] >> src.underwear
|
||||||
if(underwear == 0) underwear = 12 //For old players who have 0 in their savefile
|
if(underwear == 0) underwear = 12 //For old players who have 0 in their savefile
|
||||||
F["backbag"] >> src.backbag
|
F["backbag"] >> src.backbag
|
||||||
@@ -184,6 +199,7 @@ datum/preferences/proc/savefile_load(mob/user)
|
|||||||
F["midis"] >> src.midis
|
F["midis"] >> src.midis
|
||||||
F["ghost_ears"] >> src.ghost_ears
|
F["ghost_ears"] >> src.ghost_ears
|
||||||
if(isnull(ghost_ears)) ghost_ears = 1 //Hotfix
|
if(isnull(ghost_ears)) ghost_ears = 1 //Hotfix
|
||||||
|
F["pregame_music"] >> src.pregame_music
|
||||||
F["ghost_sight"] >> src.ghost_sight
|
F["ghost_sight"] >> src.ghost_sight
|
||||||
if(isnull(ghost_sight)) ghost_sight = 1 //Hotfix
|
if(isnull(ghost_sight)) ghost_sight = 1 //Hotfix
|
||||||
F["ooccolor"] >> src.ooccolor
|
F["ooccolor"] >> src.ooccolor
|
||||||
@@ -202,12 +218,31 @@ datum/preferences/proc/savefile_load(mob/user)
|
|||||||
F["job_medsci_med"] >> src.job_medsci_med
|
F["job_medsci_med"] >> src.job_medsci_med
|
||||||
F["job_medsci_low"] >> src.job_medsci_low
|
F["job_medsci_low"] >> src.job_medsci_low
|
||||||
|
|
||||||
|
|
||||||
|
F["used_skillpoints"] >> src.used_skillpoints
|
||||||
|
F["skills"] >> src.skills
|
||||||
|
F["skill_specialization"] >> src.skill_specialization
|
||||||
|
if(!src.skills) src.skills = list()
|
||||||
|
if(!src.used_skillpoints) src.used_skillpoints= 0
|
||||||
|
|
||||||
|
F["organ_data"] >> src.organ_data
|
||||||
|
if(!src.organ_data) src.organ_data = list()
|
||||||
|
|
||||||
F["job_engsec_high"] >> src.job_engsec_high
|
F["job_engsec_high"] >> src.job_engsec_high
|
||||||
F["job_engsec_med"] >> src.job_engsec_med
|
F["job_engsec_med"] >> src.job_engsec_med
|
||||||
F["job_engsec_low"] >> src.job_engsec_low
|
F["job_engsec_low"] >> src.job_engsec_low
|
||||||
|
|
||||||
F["userandomjob"] >> src.userandomjob
|
F["userandomjob"] >> src.userandomjob
|
||||||
|
|
||||||
|
F["disabilities"] >> src.disabilities
|
||||||
|
if(isnull(src.disabilities)) //Sanity checking
|
||||||
|
src.disabilities = 0
|
||||||
|
F["disabilities"] << src.disabilities
|
||||||
|
|
||||||
|
F["job_alt_titles"] >> job_alt_titles
|
||||||
|
if(!job_alt_titles)
|
||||||
|
job_alt_titles = new()
|
||||||
|
|
||||||
F["OOC_Notes"] >> src.metadata
|
F["OOC_Notes"] >> src.metadata
|
||||||
|
|
||||||
F["sound_adminhelp"] >> src.sound_adminhelp
|
F["sound_adminhelp"] >> src.sound_adminhelp
|
||||||
|
|||||||
@@ -55,6 +55,10 @@
|
|||||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to stab [M.name] ([M.ckey])</font>")
|
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to stab [M.name] ([M.ckey])</font>")
|
||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) Used the [src.name] to stab [M.name] ([M.ckey])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) Used the [src.name] to stab [M.name] ([M.ckey])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) Used the [src.name] to stab [M.name] ([M.ckey])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) Used the [src.name] to stab [M.name] ([M.ckey])") //BS12 EDIT ALG
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -78,6 +78,9 @@
|
|||||||
|
|
||||||
rigged = 1
|
rigged = 1
|
||||||
|
|
||||||
|
log_admin("LOG: [user.name] ([user.ckey]) injected a power cell with plasma, rigging it to explode.")
|
||||||
|
message_admin("LOG: [user.name] ([user.ckey]) injected a power cell with plasma, rigging it to explode.")
|
||||||
|
|
||||||
S.reagents.clear_reagents()
|
S.reagents.clear_reagents()
|
||||||
|
|
||||||
|
|
||||||
@@ -100,6 +103,10 @@
|
|||||||
corrupt()
|
corrupt()
|
||||||
return
|
return
|
||||||
//explosion(T, 0, 1, 2, 2)
|
//explosion(T, 0, 1, 2, 2)
|
||||||
|
|
||||||
|
log_admin("LOG: Rigged power cell explosion, last touched by [fingerprintlast]")
|
||||||
|
message_admin("LOG: Rigged power cell explosion, last touched by [fingerprintlast]")
|
||||||
|
|
||||||
explosion(T, devastation_range, heavy_impact_range, light_impact_range, flash_range)
|
explosion(T, devastation_range, heavy_impact_range, light_impact_range, flash_range)
|
||||||
|
|
||||||
spawn(1)
|
spawn(1)
|
||||||
|
|||||||
@@ -285,6 +285,10 @@
|
|||||||
switchcount++
|
switchcount++
|
||||||
if(rigged)
|
if(rigged)
|
||||||
if(status == LIGHT_OK && trigger)
|
if(status == LIGHT_OK && trigger)
|
||||||
|
|
||||||
|
log_admin("LOG: Rigged light explosion, last touched by [fingerprintlast]")
|
||||||
|
message_admin("LOG: Rigged light explosion, last touched by [fingerprintlast]")
|
||||||
|
|
||||||
explode()
|
explode()
|
||||||
else if( prob( min(60, switchcount*switchcount*0.01) ) )
|
else if( prob( min(60, switchcount*switchcount*0.01) ) )
|
||||||
if(status == LIGHT_OK && trigger)
|
if(status == LIGHT_OK && trigger)
|
||||||
@@ -359,6 +363,10 @@
|
|||||||
del(L)
|
del(L)
|
||||||
|
|
||||||
if(on && rigged)
|
if(on && rigged)
|
||||||
|
|
||||||
|
log_admin("LOG: Rigged light explosion, last touched by [fingerprintlast]")
|
||||||
|
message_admin("LOG: Rigged light explosion, last touched by [fingerprintlast]")
|
||||||
|
|
||||||
explode()
|
explode()
|
||||||
else
|
else
|
||||||
user << "This type of light requires a [fitting]."
|
user << "This type of light requires a [fitting]."
|
||||||
@@ -690,6 +698,9 @@
|
|||||||
|
|
||||||
if(S.reagents.has_reagent("plasma", 5))
|
if(S.reagents.has_reagent("plasma", 5))
|
||||||
|
|
||||||
|
log_admin("LOG: [user.name] ([user.ckey]) injected a light with plasma, rigging it to explode.")
|
||||||
|
message_admin("LOG: [user.name] ([user.ckey]) injected a light with plasma, rigging it to explode.")
|
||||||
|
|
||||||
rigged = 1
|
rigged = 1
|
||||||
|
|
||||||
S.reagents.clear_reagents()
|
S.reagents.clear_reagents()
|
||||||
|
|||||||
@@ -90,10 +90,17 @@
|
|||||||
M.attack_log += "\[[time_stamp()]\] <b>[firer]/[firer.ckey]</b> shot <b>[M]/[M.ckey]</b> with a <b>[src]</b>"
|
M.attack_log += "\[[time_stamp()]\] <b>[firer]/[firer.ckey]</b> shot <b>[M]/[M.ckey]</b> with a <b>[src]</b>"
|
||||||
firer.attack_log += "\[[time_stamp()]\] <b>[firer]/[firer.ckey]</b> shot <b>[M]/[M.ckey]</b> with a <b>[src]</b>"
|
firer.attack_log += "\[[time_stamp()]\] <b>[firer]/[firer.ckey]</b> shot <b>[M]/[M.ckey]</b> with a <b>[src]</b>"
|
||||||
log_attack("<font color='red'>[firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src]</font>")
|
log_attack("<font color='red'>[firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src]</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src]")
|
||||||
|
msg_admin_attack("ATTACK: [firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src]") //BS12 EDIT ALG
|
||||||
|
|
||||||
else
|
else
|
||||||
M.attack_log += "\[[time_stamp()]\] <b>UNKNOWN SUBJECT (No longer exists)</b> shot <b>[M]/[M.ckey]</b> with a <b>[src]</b>"
|
M.attack_log += "\[[time_stamp()]\] <b>UNKNOWN SUBJECT (No longer exists)</b> shot <b>[M]/[M.ckey]</b> with a <b>[src]</b>"
|
||||||
log_attack("<font color='red'>UNKNOWN shot [M] ([M.ckey]) with a [src]</font>")
|
log_attack("<font color='red'>UNKNOWN shot [M] ([M.ckey]) with a [src]</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a [src]")
|
||||||
|
msg_admin_attack("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a [src]") //BS12 EDIT ALG
|
||||||
|
|
||||||
spawn(0)
|
spawn(0)
|
||||||
if(A)
|
if(A)
|
||||||
var/permutation = A.bullet_act(src, def_zone) // searches for return value
|
var/permutation = A.bullet_act(src, def_zone) // searches for return value
|
||||||
|
|||||||
@@ -49,6 +49,9 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") //BS12 EDIT ALG
|
||||||
|
|
||||||
if(reagents.total_volume)
|
if(reagents.total_volume)
|
||||||
reagents.reaction(M, INGEST)
|
reagents.reaction(M, INGEST)
|
||||||
spawn(5)
|
spawn(5)
|
||||||
|
|||||||
@@ -48,6 +48,8 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") //BS12 EDIT ALG
|
||||||
|
|
||||||
if(reagents.total_volume)
|
if(reagents.total_volume)
|
||||||
reagents.reaction(M, INGEST)
|
reagents.reaction(M, INGEST)
|
||||||
|
|||||||
@@ -101,6 +101,10 @@
|
|||||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been smashed with a bottle by [user.name] ([user.ckey])</font>")
|
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been smashed with a bottle by [user.name] ([user.ckey])</font>")
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [target.name] with a bottle. ([target.ckey])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [target.name] with a bottle. ([target.ckey])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) attacked [target.name] with a bottle. ([target.ckey])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) attacked [target.name] with a bottle. ([target.ckey])") //BS12 EDIT ALG
|
||||||
|
|
||||||
|
|
||||||
//The reagents in the bottle splash all over the target, thanks for the idea Nodrak
|
//The reagents in the bottle splash all over the target, thanks for the idea Nodrak
|
||||||
if(src.reagents)
|
if(src.reagents)
|
||||||
for(var/mob/O in viewers(user, null))
|
for(var/mob/O in viewers(user, null))
|
||||||
|
|||||||
@@ -67,6 +67,9 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") //BS12 EDIT ALG
|
||||||
|
|
||||||
for(var/mob/O in viewers(world.view, user))
|
for(var/mob/O in viewers(world.view, user))
|
||||||
O.show_message("\red [user] feeds [M] [src].", 1)
|
O.show_message("\red [user] feeds [M] [src].", 1)
|
||||||
|
|
||||||
@@ -2279,4 +2282,4 @@
|
|||||||
|
|
||||||
New()
|
New()
|
||||||
..()
|
..()
|
||||||
reagents.add_reagent("nutriment", 1)
|
reagents.add_reagent("nutriment", 1)
|
||||||
|
|||||||
@@ -37,7 +37,8 @@
|
|||||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to inject [M.name] ([M.ckey])</font>")
|
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to inject [M.name] ([M.ckey])</font>")
|
||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) injected [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) injected [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) injected [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) injected [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") //BS12 EDIT ALG
|
||||||
|
|
||||||
src.reagents.reaction(M, INGEST)
|
src.reagents.reaction(M, INGEST)
|
||||||
if(M.reagents)
|
if(M.reagents)
|
||||||
|
|||||||
@@ -66,6 +66,10 @@
|
|||||||
|
|
||||||
log_attack("<font color='red'>[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
log_attack("<font color='red'>[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])")
|
||||||
|
msg_admin_attack("ATTACK: [user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") //BS12 EDIT ALG
|
||||||
|
|
||||||
|
|
||||||
if(reagents.total_volume)
|
if(reagents.total_volume)
|
||||||
reagents.reaction(M, INGEST)
|
reagents.reaction(M, INGEST)
|
||||||
spawn(5)
|
spawn(5)
|
||||||
|
|||||||
@@ -77,9 +77,17 @@
|
|||||||
M.attack_log += "\[[time_stamp()]\] <b>[user]/[user.ckey]</b> shot <b>[M]/[M.ckey]</b> with a <b>syringegun</b> ([R])"
|
M.attack_log += "\[[time_stamp()]\] <b>[user]/[user.ckey]</b> shot <b>[M]/[M.ckey]</b> with a <b>syringegun</b> ([R])"
|
||||||
user.attack_log += "\[[time_stamp()]\] <b>[user]/[user.ckey]</b> shot <b>[M]/[M.ckey]</b> with a <b>syringegun</b> ([R])"
|
user.attack_log += "\[[time_stamp()]\] <b>[user]/[user.ckey]</b> shot <b>[M]/[M.ckey]</b> with a <b>syringegun</b> ([R])"
|
||||||
log_attack("<font color='red'>[user] ([user.ckey]) shot [M] ([M.ckey]) with a syringegun ([R])</font>")
|
log_attack("<font color='red'>[user] ([user.ckey]) shot [M] ([M.ckey]) with a syringegun ([R])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: [user] ([user.ckey]) shot [M] ([M.ckey]) with a syringegun ([R])")
|
||||||
|
msg_admin_attack("ATTACK: [user] ([user.ckey]) shot [M] ([M.ckey]) with a syringegun ([R])") //BS12 EDIT ALG
|
||||||
|
|
||||||
else
|
else
|
||||||
M.attack_log += "\[[time_stamp()]\] <b>UNKNOWN SUBJECT (No longer exists)</b> shot <b>[M]/[M.ckey]</b> with a <b>syringegun</b> ([R])"
|
M.attack_log += "\[[time_stamp()]\] <b>UNKNOWN SUBJECT (No longer exists)</b> shot <b>[M]/[M.ckey]</b> with a <b>syringegun</b> ([R])"
|
||||||
log_attack("<font color='red'>UNKNOWN shot [M] ([M.ckey]) with a <b>syringegun</b> ([R])</font>")
|
log_attack("<font color='red'>UNKNOWN shot [M] ([M.ckey]) with a <b>syringegun</b> ([R])</font>")
|
||||||
|
|
||||||
|
log_admin("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a <b>syringegun</b> ([R])")
|
||||||
|
msg_admin_attack("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a <b>syringegun</b> ([R])") //BS12 EDIT ALG
|
||||||
|
|
||||||
if(D.reagents)
|
if(D.reagents)
|
||||||
D.reagents.trans_to(M, 15)
|
D.reagents.trans_to(M, 15)
|
||||||
M.take_organ_damage(5)
|
M.take_organ_damage(5)
|
||||||
|
|||||||
BIN
icons/effects/species.dmi
Normal file
BIN
icons/effects/species.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
Reference in New Issue
Block a user