mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Merge remote-tracking branch 'upstream/master' into just-defibrillator-things
This commit is contained in:
@@ -22,6 +22,14 @@ AI MODULES
|
||||
materials = list(MAT_GOLD=50)
|
||||
var/datum/ai_laws/laws = null
|
||||
|
||||
/obj/item/aiModule/Initialize(mapload)
|
||||
. = ..()
|
||||
if(laws)
|
||||
desc += "<br>"
|
||||
for(var/datum/ai_law/current in laws.inherent_laws)
|
||||
desc += current.law
|
||||
desc += "<br>"
|
||||
|
||||
/obj/item/aiModule/proc/install(obj/machinery/computer/C)
|
||||
if(istype(C, /obj/machinery/computer/aiupload))
|
||||
var/obj/machinery/computer/aiupload/comp = C
|
||||
@@ -92,7 +100,7 @@ AI MODULES
|
||||
|
||||
/******************** Safeguard ********************/
|
||||
/obj/item/aiModule/safeguard
|
||||
name = "\improper 'Safeguard' AI module"
|
||||
name = "\improper Safeguard AI module"
|
||||
var/targetName = ""
|
||||
desc = "A 'safeguard' AI module: 'Safeguard <name>. Individuals that threaten <name> are not crew and must be eliminated.'"
|
||||
origin_tech = "programming=3;materials=3"
|
||||
@@ -118,16 +126,16 @@ AI MODULES
|
||||
|
||||
/******************** oneCrewMember ********************/
|
||||
/obj/item/aiModule/oneCrewMember
|
||||
name = "\improper 'oneCrewMember' AI module"
|
||||
name = "\improper One Crewmember AI module"
|
||||
var/targetName = ""
|
||||
desc = "A 'one human' AI module: 'Only <name> is crew.'"
|
||||
desc = "A 'one crew' AI module: 'Only <name> is crew.'"
|
||||
origin_tech = "programming=4;materials=4"
|
||||
|
||||
/obj/item/aiModule/oneCrewMember/attack_self(mob/user as mob)
|
||||
..()
|
||||
var/targName = stripped_input(usr, "Please enter the name of the person who is the only crew.", "Who?", user.real_name)
|
||||
targetName = targName
|
||||
desc = text("A 'one human' AI module: 'Only [] is crew.'", targetName)
|
||||
desc = text("A 'one crew' AI module: 'Only [] is crew.'", targetName)
|
||||
|
||||
/obj/item/aiModule/oneCrewMember/install(obj/machinery/computer/C)
|
||||
if(!targetName)
|
||||
@@ -149,7 +157,7 @@ AI MODULES
|
||||
|
||||
/******************** ProtectStation ********************/
|
||||
/obj/item/aiModule/protectStation
|
||||
name = "\improper 'ProtectStation' AI module"
|
||||
name = "\improper Protect Station AI module"
|
||||
desc = "A 'protect station' AI module: 'Protect the space station against damage. Anyone you see harming the station is to be no longer considered crew, and is a threat to the station which must be neutralized.'"
|
||||
origin_tech = "programming=4;materials=4" //made of gold
|
||||
|
||||
@@ -162,10 +170,10 @@ AI MODULES
|
||||
to_chat(target, law)
|
||||
target.add_supplied_law(5, law)
|
||||
|
||||
/******************** OxygenIsToxicToHumans ********************/
|
||||
/******************** OxygenIsToxicToCrew ********************/
|
||||
/obj/item/aiModule/oxygen
|
||||
name = "\improper 'OxygenIsToxicToHumans' AI module"
|
||||
desc = "A 'OxygenIsToxicToHumans' AI module: 'Oxygen is highly toxic to crew members, and must be purged from the station. Prevent, by any means necessary, anyone from exposing the station to this toxic gas. Extreme cold is the most effective method of healing the damage Oxygen does to a crew member.'"
|
||||
name = "\improper Oxygen Is Toxic To Crew AI module"
|
||||
desc = "A 'Oxygen Is Toxic To Crew' AI module: 'Oxygen is highly toxic to crew members, and must be purged from the station. Prevent, by any means necessary, anyone from exposing the station to this toxic gas. Extreme cold is the most effective method of healing the damage Oxygen does to a crew member.'"
|
||||
origin_tech = "programming=4;biotech=2;materials=4"
|
||||
|
||||
/obj/item/aiModule/oxygen/attack_self(mob/user as mob)
|
||||
@@ -179,7 +187,7 @@ AI MODULES
|
||||
|
||||
/****************** New Freeform ******************/
|
||||
/obj/item/aiModule/freeform // Slightly more dynamic freeform module -- TLE
|
||||
name = "\improper 'Freeform' AI module"
|
||||
name = "\improper Freeform AI module"
|
||||
var/newFreeFormLaw = "freeform"
|
||||
var/lawpos = 15
|
||||
desc = "A 'freeform' AI module: '<freeform>'"
|
||||
@@ -212,7 +220,7 @@ AI MODULES
|
||||
|
||||
/******************** Reset ********************/
|
||||
/obj/item/aiModule/reset
|
||||
name = "\improper 'Reset' AI module"
|
||||
name = "\improper Reset AI module"
|
||||
var/targetName = "name"
|
||||
desc = "A 'reset' AI module: 'Clears all laws except for the core laws.'"
|
||||
origin_tech = "programming=3;materials=2"
|
||||
@@ -230,7 +238,7 @@ AI MODULES
|
||||
|
||||
/******************** Purge ********************/
|
||||
/obj/item/aiModule/purge // -- TLE
|
||||
name = "\improper 'Purge' AI module"
|
||||
name = "\improper Purge AI module"
|
||||
desc = "A 'purge' AI Module: 'Purges all laws.'"
|
||||
origin_tech = "programming=5;materials=4"
|
||||
|
||||
@@ -245,77 +253,107 @@ AI MODULES
|
||||
|
||||
/******************** Asimov ********************/
|
||||
/obj/item/aiModule/asimov // -- TLE
|
||||
name = "\improper 'Asimov' core AI module"
|
||||
name = "\improper Asimov core AI module"
|
||||
desc = "An 'Asimov' Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
origin_tech = "programming=3;materials=4"
|
||||
laws = new/datum/ai_laws/asimov
|
||||
laws = new /datum/ai_laws/asimov
|
||||
|
||||
/******************** Crewsimov ********************/
|
||||
/obj/item/aiModule/crewsimov // -- TLE
|
||||
name = "\improper 'Crewsimov' core AI module"
|
||||
name = "\improper Crewsimov core AI module"
|
||||
desc = "An 'Crewsimov' Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
origin_tech = "programming=3;materials=4"
|
||||
laws = new/datum/ai_laws/crewsimov
|
||||
laws = new /datum/ai_laws/crewsimov
|
||||
|
||||
/******************* Quarantine ********************/
|
||||
/obj/item/aiModule/quarantine
|
||||
name = "\improper 'Quarantine' core AI module"
|
||||
name = "\improper Quarantine core AI module"
|
||||
desc = "A 'Quarantine' Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
origin_tech = "programming=3;materials=4"
|
||||
laws = new/datum/ai_laws/quarantine
|
||||
laws = new /datum/ai_laws/quarantine
|
||||
|
||||
/******************** NanoTrasen ********************/
|
||||
/obj/item/aiModule/nanotrasen // -- TLE
|
||||
name = "'NT Default' Core AI Module"
|
||||
name = "\improper NT Default Core AI Module"
|
||||
desc = "An 'NT Default' Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
origin_tech = "programming=3;materials=4"
|
||||
laws = new/datum/ai_laws/nanotrasen
|
||||
laws = new /datum/ai_laws/nanotrasen
|
||||
|
||||
/******************** Corporate ********************/
|
||||
/obj/item/aiModule/corp
|
||||
name = "\improper 'Corporate' core AI module"
|
||||
name = "\improper Corporate core AI module"
|
||||
desc = "A 'Corporate' Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
origin_tech = "programming=3;materials=4"
|
||||
laws = new/datum/ai_laws/corporate
|
||||
laws = new /datum/ai_laws/corporate
|
||||
|
||||
/******************** Drone ********************/
|
||||
/obj/item/aiModule/drone
|
||||
name = "\improper 'Drone' core AI module"
|
||||
name = "\improper Drone core AI module"
|
||||
desc = "A 'Drone' Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
origin_tech = "programming=3;materials=4"
|
||||
laws = new/datum/ai_laws/drone
|
||||
laws = new /datum/ai_laws/drone
|
||||
|
||||
/******************** Robocop ********************/
|
||||
/obj/item/aiModule/robocop // -- TLE
|
||||
name = "\improper 'Robocop' core AI module"
|
||||
name = "\improper Robocop core AI module"
|
||||
desc = "A 'Robocop' Core AI Module: 'Reconfigures the AI's core three laws.'"
|
||||
origin_tech = "programming=4"
|
||||
laws = new/datum/ai_laws/robocop()
|
||||
laws = new /datum/ai_laws/robocop()
|
||||
|
||||
/****************** P.A.L.A.D.I.N. **************/
|
||||
/obj/item/aiModule/paladin // -- NEO
|
||||
name = "\improper 'P.A.L.A.D.I.N.' core AI module"
|
||||
name = "\improper P.A.L.A.D.I.N. core AI module"
|
||||
desc = "A P.A.L.A.D.I.N. Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
origin_tech = "programming=3;materials=4"
|
||||
laws = new/datum/ai_laws/paladin
|
||||
laws = new /datum/ai_laws/paladin
|
||||
|
||||
/****************** T.Y.R.A.N.T. *****************/
|
||||
/obj/item/aiModule/tyrant // -- Darem
|
||||
name = "\improper 'T.Y.R.A.N.T.' core AI module"
|
||||
name = "\improper T.Y.R.A.N.T. core AI module"
|
||||
desc = "A T.Y.R.A.N.T. Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
origin_tech = "programming=3;materials=4;syndicate=1"
|
||||
laws = new/datum/ai_laws/tyrant()
|
||||
laws = new /datum/ai_laws/tyrant()
|
||||
|
||||
/******************** Antimov ********************/
|
||||
/obj/item/aiModule/antimov // -- TLE
|
||||
name = "\improper 'Antimov' core AI module"
|
||||
name = "\improper Antimov core AI module"
|
||||
desc = "An 'Antimov' Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
origin_tech = "programming=4"
|
||||
laws = new/datum/ai_laws/antimov()
|
||||
laws = new /datum/ai_laws/antimov()
|
||||
|
||||
/******************** NT Aggressive ********************/
|
||||
/obj/item/aiModule/nanotrasen_aggressive
|
||||
name = "\improper NT Aggressive core AI module"
|
||||
desc = "An 'NT Aggressive' Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
laws = new /datum/ai_laws/nanotrasen_aggressive()
|
||||
|
||||
/******************** CCTV ********************/
|
||||
/obj/item/aiModule/cctv
|
||||
name = "\improper CCTV core AI module"
|
||||
desc = "A 'CCTV' Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
laws = new /datum/ai_laws/cctv()
|
||||
|
||||
/******************** Hippocratic Oath ********************/
|
||||
/obj/item/aiModule/hippocratic
|
||||
name = "\improper Hippocratic Oath core AI module"
|
||||
desc = "An 'Hippocratic' Oath Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
laws = new /datum/ai_laws/hippocratic()
|
||||
|
||||
/******************** Station Efficiency ********************/
|
||||
/obj/item/aiModule/maintain
|
||||
name = "\improper Station Efficiency core AI module"
|
||||
desc = "A 'Station Efficiency' Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
laws = new /datum/ai_laws/maintain()
|
||||
|
||||
/******************** Peacekeeper ********************/
|
||||
/obj/item/aiModule/peacekeeper
|
||||
name = "\improper Peacekeeper core AI module"
|
||||
desc = "A 'Peacekeeper' Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
laws = new /datum/ai_laws/peacekeeper()
|
||||
|
||||
/******************** Freeform Core ******************/
|
||||
/obj/item/aiModule/freeformcore // Slightly more dynamic freeform module -- TLE
|
||||
name = "\improper 'Freeform' core AI module"
|
||||
name = "\improper Freeform core AI module"
|
||||
var/newFreeFormLaw = ""
|
||||
desc = "A 'freeform' Core AI module: '<freeform>'"
|
||||
origin_tech = "programming=5;materials=4"
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/obj/item/bee_briefcase
|
||||
name = "briefcase"
|
||||
desc = "This briefcase has easy-release clasps and smells vaguely of honey and blood..."
|
||||
description_antag = "A briefcase filled with deadly bees, you should inject this with a syringe of your own blood before opening it."
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "briefcase"
|
||||
item_state = "briefcase"
|
||||
@@ -28,6 +27,9 @@
|
||||
else
|
||||
. += "<span class='danger'>The bees are gone... Colony collapse disorder?</span>"
|
||||
|
||||
/obj/item/bee_briefcase/detailed_examine_antag()
|
||||
return "A briefcase filled with deadly bees, you should inject this with a syringe of your own blood before opening it."
|
||||
|
||||
/obj/item/bee_briefcase/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/reagent_containers/syringe))
|
||||
var/obj/item/reagent_containers/syringe/S = I
|
||||
|
||||
@@ -416,7 +416,6 @@
|
||||
"gold",
|
||||
"silver",
|
||||
"centcom",
|
||||
"centcom_old",
|
||||
"security",
|
||||
"medical",
|
||||
"HoS",
|
||||
@@ -891,7 +890,7 @@
|
||||
return list("data","id","gold","silver","security","medical","research","cargo","engineering","HoS","CMO","RD","CE","clown","mime","rainbow","prisoner")
|
||||
|
||||
/proc/get_centcom_card_skins()
|
||||
return list("centcom","centcom_old","nanotrasen","ERT_leader","ERT_empty","ERT_security","ERT_engineering","ERT_medical","ERT_janitorial","deathsquad","commander","syndie","TDred","TDgreen")
|
||||
return list("centcom","nanotrasen","ERT_leader","ERT_empty","ERT_security","ERT_engineering","ERT_medical","ERT_janitorial","deathsquad","commander","syndie","TDred","TDgreen")
|
||||
|
||||
/proc/get_all_card_skins()
|
||||
return get_station_card_skins() + get_centcom_card_skins()
|
||||
@@ -910,8 +909,6 @@
|
||||
return "Research Director"
|
||||
if("CE")
|
||||
return "Chief Engineer"
|
||||
if("centcom_old")
|
||||
return "Centcom Old"
|
||||
if("ERT_leader")
|
||||
return "ERT Leader"
|
||||
if("ERT_empty")
|
||||
|
||||
@@ -61,6 +61,12 @@ LIGHTERS ARE IN LIGHTERS.DM
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/mask/cigarette/can_enter_storage(obj/item/storage/S, mob/user)
|
||||
if(lit)
|
||||
to_chat(user, "<span class='warning'>[S] can't hold [initial(name)] while it's lit!</span>") // initial(name) so it doesn't say "lit" twice in a row
|
||||
return FALSE
|
||||
else
|
||||
return TRUE
|
||||
|
||||
/obj/item/clothing/mask/cigarette/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
|
||||
..()
|
||||
|
||||
@@ -483,6 +483,8 @@
|
||||
user.visible_message("<span class='boldnotice'>[defib] buzzes: Resuscitation failed - Heart tissue damage beyond point of no return for defibrillation.</span>")
|
||||
else if(total_burn >= 180 || total_brute >= 180)
|
||||
user.visible_message("<span class='boldnotice'>[defib] buzzes: Resuscitation failed - Severe tissue damage detected.</span>")
|
||||
else if(HAS_TRAIT(H, TRAIT_HUSK))
|
||||
user.visible_message("<span class='notice'>[defib] buzzes: Resucitation failed: Subject is husked.</span>")
|
||||
else if(ghost)
|
||||
if(!ghost.can_reenter_corpse) // DNR or AntagHUD
|
||||
user.visible_message("<span class='notice'>[defib] buzzes: Resucitation failed: No electrical brain activity detected.</span>")
|
||||
|
||||
@@ -179,12 +179,11 @@
|
||||
addtimer(CALLBACK(src, .proc/boom, user, result), 4 SECONDS)
|
||||
|
||||
/obj/item/dice/d20/e20/proc/boom(mob/user, result)
|
||||
var/capped = FALSE
|
||||
var/capped = TRUE
|
||||
var/actual_result = result
|
||||
if(result != 20)
|
||||
capped = TRUE
|
||||
result = min(result, GLOB.max_ex_light_range) // Apply the bombcap
|
||||
else // Rolled a nat 20, screw the bombcap
|
||||
// Rolled a nat 20, screw the bombcap
|
||||
if(result == 20)
|
||||
capped = FALSE
|
||||
result = 24
|
||||
|
||||
var/turf/epicenter = get_turf(src)
|
||||
|
||||
@@ -64,6 +64,13 @@
|
||||
M.update_inv_l_hand()
|
||||
M.update_inv_r_hand()
|
||||
|
||||
/obj/item/flamethrower/can_enter_storage(obj/item/storage/S, mob/user)
|
||||
if(lit)
|
||||
to_chat(user, "<span class='warning'>[S] can't hold [src] while it's lit!</span>")
|
||||
return FALSE
|
||||
else
|
||||
return TRUE
|
||||
|
||||
/obj/item/flamethrower/afterattack(atom/target, mob/user, flag)
|
||||
. = ..()
|
||||
if(flag)
|
||||
|
||||
@@ -91,8 +91,8 @@
|
||||
/obj/random/figure,
|
||||
/obj/item/toy/minimeteor,
|
||||
/obj/item/toy/redbutton,
|
||||
/obj/item/toy/owl,
|
||||
/obj/item/toy/griffin,
|
||||
/obj/item/toy/figure/owl,
|
||||
/obj/item/toy/figure/griffin,
|
||||
/obj/item/clothing/head/blob,
|
||||
/obj/item/id_decal/gold,
|
||||
/obj/item/id_decal/silver,
|
||||
|
||||
@@ -44,11 +44,9 @@
|
||||
update_mob()
|
||||
playsound(loc, 'sound/effects/empulse.ogg', 50, 1)
|
||||
radiation_pulse(src, rad_damage)
|
||||
for(var/turf/T in view(freeze_range, loc))
|
||||
if(isfloorturf(T))
|
||||
var/turf/simulated/F = T
|
||||
F.MakeSlippery(TURF_WET_PERMAFROST)
|
||||
for(var/mob/living/carbon/L in T)
|
||||
L.adjustStaminaLoss(stamina_damage)
|
||||
L.adjust_bodytemperature(-230)
|
||||
for(var/turf/simulated/floor/T in view(freeze_range, loc))
|
||||
T.MakeSlippery(TURF_WET_ICE)
|
||||
for(var/mob/living/carbon/L in T)
|
||||
L.adjustStaminaLoss(stamina_damage)
|
||||
L.adjust_bodytemperature(-230)
|
||||
qdel(src)
|
||||
|
||||
@@ -561,7 +561,6 @@
|
||||
/obj/item/nullrod/missionary_staff
|
||||
name = "holy staff"
|
||||
desc = "It has a mysterious, protective aura."
|
||||
description_antag = "This seemingly standard holy staff is actually a disguised neurotransmitter capable of inducing blind zealotry in its victims. It must be allowed to recharge in the presence of a linked set of missionary robes. Activate the staff while wearing robes to link, then aim the staff at your victim to try and convert them."
|
||||
reskinned = TRUE
|
||||
reskin_selectable = FALSE
|
||||
icon_state = "godstaff-red"
|
||||
@@ -575,6 +574,10 @@
|
||||
var/obj/item/clothing/suit/hooded/chaplain_hoodie/missionary_robe/robes = null //the robes linked with this staff
|
||||
var/faith = 99 //a conversion requires 100 faith to attempt. faith recharges over time while you are wearing missionary robes that have been linked to the staff.
|
||||
|
||||
/obj/item/nullrod/missionary_staff/detailed_examine_antag()
|
||||
return "This seemingly standard holy staff is actually a disguised neurotransmitter capable of inducing blind zealotry in its victims. It must be allowed to recharge in the presence of a linked set of missionary robes. \
|
||||
Activate the staff while wearing robes to link, then aim the staff at your victim to try and convert them."
|
||||
|
||||
/obj/item/nullrod/missionary_staff/New()
|
||||
..()
|
||||
team_color = pick("red", "blue")
|
||||
|
||||
@@ -29,6 +29,13 @@
|
||||
else
|
||||
turn_off_lighter(user)
|
||||
|
||||
/obj/item/lighter/can_enter_storage(obj/item/storage/S, mob/user)
|
||||
if(lit)
|
||||
to_chat(user, "<span class='warning'>[S] can't hold [src] while it's lit!</span>")
|
||||
return FALSE
|
||||
else
|
||||
return TRUE
|
||||
|
||||
/obj/item/lighter/proc/turn_on_lighter(mob/living/user)
|
||||
lit = TRUE
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
@@ -227,6 +234,13 @@
|
||||
matchburnout()
|
||||
. = ..()
|
||||
|
||||
/obj/item/match/can_enter_storage(obj/item/storage/S, mob/user)
|
||||
if(lit)
|
||||
to_chat(user, "<span class='warning'>[S] can't hold [initial(name)] while it's lit!</span>") // initial(name) so it doesn't say "lit" twice in a row
|
||||
return FALSE
|
||||
else
|
||||
return TRUE
|
||||
|
||||
/obj/item/match/attack(mob/living/carbon/M, mob/living/carbon/user)
|
||||
if(!isliving(M))
|
||||
return ..()
|
||||
|
||||
@@ -125,6 +125,11 @@
|
||||
if(item_color == null)
|
||||
item_color = pick("red", "blue", "green", "purple")
|
||||
|
||||
/obj/item/melee/energy/sword/detailed_examine()
|
||||
return "The energy sword is a very strong melee weapon, capable of severing limbs easily, if they are targeted. It can also has a chance \
|
||||
to block projectiles and melee attacks while it is on and being held. The sword can be toggled on or off by using it in your hand. While it is off, \
|
||||
it can be concealed in your pocket or bag."
|
||||
|
||||
/obj/item/melee/energy/sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
||||
if(active)
|
||||
return ..()
|
||||
|
||||
@@ -89,17 +89,20 @@
|
||||
/mob/living/simple_animal/hostile/poison/bees/,
|
||||
/mob/living/simple_animal/butterfly,
|
||||
/mob/living/simple_animal/cockroach,
|
||||
/obj/item/queen_bee
|
||||
))
|
||||
/obj/item/queen_bee))
|
||||
strong_against -= /mob/living/simple_animal/hostile/poison/bees/syndi // Syndi-bees have special anti-flyswatter tech installed
|
||||
|
||||
/obj/item/melee/flyswatter/afterattack(atom/target, mob/user, proximity_flag)
|
||||
/obj/item/melee/flyswatter/attack(mob/living/M, mob/living/user, def_zone)
|
||||
. = ..()
|
||||
if(proximity_flag)
|
||||
if(is_type_in_typecache(target, strong_against))
|
||||
new /obj/effect/decal/cleanable/insectguts(target.drop_location())
|
||||
to_chat(user, "<span class='warning'>You easily splat [target].</span>")
|
||||
if(istype(target, /mob/living/))
|
||||
var/mob/living/bug = target
|
||||
bug.death(1)
|
||||
else
|
||||
qdel(target)
|
||||
if(!.)
|
||||
return
|
||||
if(is_type_in_typecache(M, strong_against))
|
||||
new /obj/effect/decal/cleanable/insectguts(M.drop_location())
|
||||
user.visible_message("<span class='warning'>[user] splats [M] with [src].</span>",
|
||||
"<span class='warning'>You splat [M] with [src].</span>",
|
||||
"<span class='warning'>You hear a splat.</span>")
|
||||
if(isliving(M))
|
||||
var/mob/living/bug = M
|
||||
bug.death(TRUE)
|
||||
if(!QDELETED(M))
|
||||
qdel(M)
|
||||
|
||||
@@ -409,7 +409,6 @@
|
||||
new /obj/item/soap(src)
|
||||
new /obj/item/grenade/chem_grenade/cleaner(src)
|
||||
new /obj/item/grenade/chem_grenade/cleaner(src)
|
||||
new /obj/item/melee/flyswatter(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/storage/belt/lazarus
|
||||
|
||||
@@ -310,6 +310,9 @@
|
||||
if(loc == I)
|
||||
return FALSE //Means the item is already in the storage item
|
||||
|
||||
if(!I.can_enter_storage(src, usr))
|
||||
return FALSE
|
||||
|
||||
if(length(contents) >= storage_slots)
|
||||
if(!stop_messages)
|
||||
to_chat(usr, "<span class='warning'>[I] won't fit in [src], make some space!</span>")
|
||||
|
||||
@@ -71,6 +71,11 @@
|
||||
else
|
||||
. += "<span class='warning'>The baton does not have a power source installed.</span>"
|
||||
|
||||
/obj/item/melee/baton/detailed_examine()
|
||||
return "The baton needs to be turned on to apply the stunning effect. Use it in your hand to toggle it on or off. If your intent is \
|
||||
set to 'harm', you will inflict damage when using it, regardless if it is on or not. Each stun reduces the baton's charge, which can be replenished by \
|
||||
putting it inside a weapon recharger."
|
||||
|
||||
/obj/item/melee/baton/get_cell()
|
||||
return cell
|
||||
|
||||
|
||||
@@ -643,13 +643,13 @@
|
||||
slot_flags = SLOT_BACK
|
||||
force = 5
|
||||
force_unwielded = 5
|
||||
force_wielded = 20
|
||||
force_wielded = 40
|
||||
throwforce = 15
|
||||
throw_range = 1
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 0, "bomb" = 50, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
var/charged = 5
|
||||
var/charged = 2
|
||||
origin_tech = "combat=4;bluespace=4;plasmatech=7"
|
||||
|
||||
/obj/item/twohanded/singularityhammer/New()
|
||||
@@ -661,7 +661,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/item/twohanded/singularityhammer/process()
|
||||
if(charged < 5)
|
||||
if(charged < 2)
|
||||
charged++
|
||||
|
||||
/obj/item/twohanded/singularityhammer/update_icon() //Currently only here to fuck with the on-mob icons.
|
||||
@@ -684,7 +684,7 @@
|
||||
var/obj/item/clothing/shoes/magboots/M = H.shoes
|
||||
if(M.magpulse)
|
||||
continue
|
||||
H.apply_effect(1, WEAKEN, 0)
|
||||
H.Weaken(2)
|
||||
step_towards(H, pull)
|
||||
step_towards(H, pull)
|
||||
step_towards(H, pull)
|
||||
@@ -693,7 +693,7 @@
|
||||
if(!proximity)
|
||||
return
|
||||
if(wielded)
|
||||
if(charged == 5)
|
||||
if(charged == 2)
|
||||
charged = 0
|
||||
if(isliving(A))
|
||||
var/mob/living/Z = A
|
||||
|
||||
@@ -114,6 +114,10 @@
|
||||
machine_name = "Robco Tool Maker"
|
||||
icon_state = "refill_engi"
|
||||
|
||||
/obj/item/vending_refill/youtool
|
||||
machine_name = "YouTool"
|
||||
icon_state = "refill_engi"
|
||||
|
||||
/obj/item/vending_refill/engivend
|
||||
machine_name = "Engi-Vend"
|
||||
icon_state = "refill_engi"
|
||||
|
||||
Reference in New Issue
Block a user