Applies what my mom taught me about conflict resolution

This commit is contained in:
Dave
2019-03-01 16:16:29 -05:00
committed by Unknown
140 changed files with 2769 additions and 833 deletions
+9 -9
View File
@@ -231,16 +231,10 @@
if(amount < used)
return FALSE
amount -= used
if(amount < 1)
if(isrobot(loc))
var/mob/living/silicon/robot/R = loc
if(locate(src) in R.module.modules)
R.module.modules -= src
if(R)
R.unEquip(src, TRUE)
zero_amount()
if(check)
zero_amount()
update_icon()
return 1
return TRUE
/obj/item/stack/proc/get_amount()
return amount
@@ -307,6 +301,12 @@
/obj/item/stack/proc/zero_amount()
if(amount < 1)
if(isrobot(loc))
var/mob/living/silicon/robot/R = loc
if(locate(src) in R.module.modules)
R.module.modules -= src
if(usr)
usr.unEquip(src, TRUE)
qdel(src)
return TRUE
return FALSE
@@ -122,6 +122,10 @@ var/global/list/datum/stack_recipe/silverfancy_tile_recipes = list ( \
mineralType = "titanium"
materials = list(MAT_TITANIUM=500)
/obj/item/stack/tile/mineral/titanium/purple
turf_type = /turf/simulated/floor/mineral/titanium/purple
icon_state = "tile_plasma"
/obj/item/stack/tile/mineral/plastitanium
name = "plas-titanium tile"
singular_name = "plas-titanium floor tile"
+5
View File
@@ -338,6 +338,7 @@
H.emote("gasp")
if(!H.undergoing_cardiac_arrest() && (prob(10) || defib.combat)) // Your heart explodes.
H.set_heartattack(TRUE)
H.shock_internal_organs(100)
add_attack_logs(user, M, "Stunned with [src]")
defib.deductcharge(revivecost)
cooldown = 1
@@ -388,6 +389,7 @@
update_icon()
return
H.set_heartattack(FALSE)
H.shock_internal_organs(100)
user.visible_message("<span class='boldnotice'>[defib] pings: Cardiac arrhythmia corrected.</span>")
M.visible_message("<span class='warning'>[M]'s body convulses a bit.")
playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1)
@@ -422,6 +424,7 @@
H.emote("gasp")
if(tplus > tloss)
H.setBrainLoss( max(0, min(99, ((tlimit - tplus) / tlimit * 100))))
H.shock_internal_organs(100)
H.med_hud_set_health()
H.med_hud_set_status()
defib.deductcharge(revivecost)
@@ -484,6 +487,7 @@
H.Weaken(5)
if(!H.undergoing_cardiac_arrest() && prob(10)) // Your heart explodes.
H.set_heartattack(TRUE)
H.shock_internal_organs(100)
playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1)
H.emote("gasp")
add_attack_logs(user, M, "Stunned with [src]")
@@ -539,6 +543,7 @@
H.emote("gasp")
if(tplus > tloss)
H.setBrainLoss( max(0, min(99, ((tlimit - tplus) / tlimit * 100))))
H.shock_internal_organs(100)
if(isrobot(user))
var/mob/living/silicon/robot/R = user
R.cell.use(revivecost)
+62 -57
View File
@@ -18,10 +18,11 @@
var/datatype = 0
var/value = 0
/obj/item/dnainjector/New()
/obj/item/dnainjector/Initialize()
. = ..()
if(datatype && block)
buf=new
buf.dna=new
buf = new
buf.dna = new
buf.types = datatype
buf.dna.ResetSE()
SetValue(value)
@@ -37,29 +38,29 @@
return selblock
/obj/item/dnainjector/proc/GetState(var/selblock=0)
var/real_block=GetRealBlock(selblock)
if(buf.types&DNA2_BUF_SE)
var/real_block = GetRealBlock(selblock)
if(buf.types & DNA2_BUF_SE)
return buf.dna.GetSEState(real_block)
else
return buf.dna.GetUIState(real_block)
/obj/item/dnainjector/proc/SetState(var/on, var/selblock=0)
var/real_block=GetRealBlock(selblock)
if(buf.types&DNA2_BUF_SE)
var/real_block = GetRealBlock(selblock)
if(buf.types & DNA2_BUF_SE)
return buf.dna.SetSEState(real_block,on)
else
return buf.dna.SetUIState(real_block,on)
/obj/item/dnainjector/proc/GetValue(var/selblock=0)
var/real_block=GetRealBlock(selblock)
if(buf.types&DNA2_BUF_SE)
var/real_block = GetRealBlock(selblock)
if(buf.types & DNA2_BUF_SE)
return buf.dna.GetSEValue(real_block)
else
return buf.dna.GetUIValue(real_block)
/obj/item/dnainjector/proc/SetValue(var/val,var/selblock=0)
var/real_block=GetRealBlock(selblock)
if(buf.types&DNA2_BUF_SE)
var/real_block = GetRealBlock(selblock)
if(buf.types & DNA2_BUF_SE)
return buf.dna.SetSEValue(real_block,val)
else
return buf.dna.SetUIValue(real_block,val)
@@ -73,6 +74,10 @@
if(istype(M, /mob/living/carbon/human))
H = M
if(!buf)
log_runtime(EXCEPTION("[src] used by [user] on [M] failed to initialize properly."), src)
return
spawn(0) //Some mutations have sleeps in them, like monkey
if(!(NOCLONE in M.mutations) && !(H && (NO_DNA in H.dna.species.species_traits))) // prevents drained people from having their DNA changed
var/prev_ue = M.dna.unique_enzymes
@@ -160,7 +165,7 @@
value = 0xFFF
//block = 2
/obj/item/dnainjector/hulkmut/New()
/obj/item/dnainjector/hulkmut/Initialize()
block = HULKBLOCK
..()
@@ -171,7 +176,7 @@
value = 0x001
//block = 2
/obj/item/dnainjector/antihulk/New()
/obj/item/dnainjector/antihulk/Initialize()
block = HULKBLOCK
..()
@@ -182,7 +187,7 @@
value = 0xFFF
//block = 8
/obj/item/dnainjector/xraymut/New()
/obj/item/dnainjector/xraymut/Initialize()
block = XRAYBLOCK
..()
@@ -193,7 +198,7 @@
value = 0x001
//block = 8
/obj/item/dnainjector/antixray/New()
/obj/item/dnainjector/antixray/Initialize()
block = XRAYBLOCK
..()
@@ -204,7 +209,7 @@
value = 0xFFF
//block = 10
/obj/item/dnainjector/firemut/New()
/obj/item/dnainjector/firemut/Initialize()
block = FIREBLOCK
..()
@@ -215,7 +220,7 @@
value = 0x001
//block = 10
/obj/item/dnainjector/antifire/New()
/obj/item/dnainjector/antifire/Initialize()
block = FIREBLOCK
..()
@@ -226,7 +231,7 @@
value = 0xFFF
//block = 12
/obj/item/dnainjector/telemut/New()
/obj/item/dnainjector/telemut/Initialize()
block = TELEBLOCK
..()
@@ -242,7 +247,7 @@
value = 0x001
//block = 12
/obj/item/dnainjector/antitele/New()
/obj/item/dnainjector/antitele/Initialize()
block = TELEBLOCK
..()
@@ -253,7 +258,7 @@
value = 0xFFF
//block = 2
/obj/item/dnainjector/nobreath/New()
/obj/item/dnainjector/nobreath/Initialize()
block = BREATHLESSBLOCK
..()
@@ -264,7 +269,7 @@
value = 0x001
//block = 2
/obj/item/dnainjector/antinobreath/New()
/obj/item/dnainjector/antinobreath/Initialize()
block = BREATHLESSBLOCK
..()
@@ -275,7 +280,7 @@
value = 0xFFF
//block = 2
/obj/item/dnainjector/remoteview/New()
/obj/item/dnainjector/remoteview/Initialize()
block = REMOTEVIEWBLOCK
..()
@@ -286,7 +291,7 @@
value = 0x001
//block = 2
/obj/item/dnainjector/antiremoteview/New()
/obj/item/dnainjector/antiremoteview/Initialize()
block = REMOTEVIEWBLOCK
..()
@@ -297,7 +302,7 @@
value = 0xFFF
//block = 2
/obj/item/dnainjector/regenerate/New()
/obj/item/dnainjector/regenerate/Initialize()
block = REGENERATEBLOCK
..()
@@ -308,7 +313,7 @@
value = 0x001
//block = 2
/obj/item/dnainjector/antiregenerate/New()
/obj/item/dnainjector/antiregenerate/Initialize()
block = REGENERATEBLOCK
..()
@@ -319,7 +324,7 @@
value = 0xFFF
//block = 2
/obj/item/dnainjector/runfast/New()
/obj/item/dnainjector/runfast/Initialize()
block = INCREASERUNBLOCK
..()
@@ -330,7 +335,7 @@
value = 0x001
//block = 2
/obj/item/dnainjector/antirunfast/New()
/obj/item/dnainjector/antirunfast/Initialize()
block = INCREASERUNBLOCK
..()
@@ -341,7 +346,7 @@
value = 0xFFF
//block = 2
/obj/item/dnainjector/morph/New()
/obj/item/dnainjector/morph/Initialize()
block = MORPHBLOCK
..()
@@ -352,7 +357,7 @@
value = 0x001
//block = 2
/obj/item/dnainjector/antimorph/New()
/obj/item/dnainjector/antimorph/Initialize()
block = MORPHBLOCK
..()
@@ -363,7 +368,7 @@
value = 0xFFF
//block = 2
/obj/item/dnainjector/noprints/New()
/obj/item/dnainjector/noprints/Initialize()
block = NOPRINTSBLOCK
..()
@@ -374,7 +379,7 @@
value = 0x001
//block = 2
/obj/item/dnainjector/antinoprints/New()
/obj/item/dnainjector/antinoprints/Initialize()
block = NOPRINTSBLOCK
..()
@@ -385,7 +390,7 @@
value = 0xFFF
//block = 2
/obj/item/dnainjector/insulation/New()
/obj/item/dnainjector/insulation/Initialize()
block = SHOCKIMMUNITYBLOCK
..()
@@ -396,7 +401,7 @@
value = 0x001
//block = 2
/obj/item/dnainjector/antiinsulation/New()
/obj/item/dnainjector/antiinsulation/Initialize()
block = SHOCKIMMUNITYBLOCK
..()
@@ -407,7 +412,7 @@
value = 0xFFF
//block = 2
/obj/item/dnainjector/midgit/New()
/obj/item/dnainjector/midgit/Initialize()
block = SMALLSIZEBLOCK
..()
@@ -418,7 +423,7 @@
value = 0x001
//block = 2
/obj/item/dnainjector/antimidgit/New()
/obj/item/dnainjector/antimidgit/Initialize()
block = SMALLSIZEBLOCK
..()
@@ -430,7 +435,7 @@
value = 0x001
//block = 1
/obj/item/dnainjector/antiglasses/New()
/obj/item/dnainjector/antiglasses/Initialize()
block = GLASSESBLOCK
..()
@@ -441,7 +446,7 @@
value = 0xFFF
//block = 1
/obj/item/dnainjector/glassesmut/New()
/obj/item/dnainjector/glassesmut/Initialize()
block = GLASSESBLOCK
..()
@@ -452,7 +457,7 @@
value = 0xFFF
//block = 3
/obj/item/dnainjector/epimut/New()
/obj/item/dnainjector/epimut/Initialize()
block = EPILEPSYBLOCK
..()
@@ -463,7 +468,7 @@
value = 0x001
//block = 3
/obj/item/dnainjector/antiepi/New()
/obj/item/dnainjector/antiepi/Initialize()
block = EPILEPSYBLOCK
..()
@@ -474,7 +479,7 @@
value = 0x001
//block = 5
/obj/item/dnainjector/anticough/New()
/obj/item/dnainjector/anticough/Initialize()
block = COUGHBLOCK
..()
@@ -485,7 +490,7 @@
value = 0xFFF
//block = 5
/obj/item/dnainjector/coughmut/New()
/obj/item/dnainjector/coughmut/Initialize()
block = COUGHBLOCK
..()
@@ -496,7 +501,7 @@
value = 0xFFF
//block = 6
/obj/item/dnainjector/clumsymut/New()
/obj/item/dnainjector/clumsymut/Initialize()
block = CLUMSYBLOCK
..()
@@ -507,7 +512,7 @@
value = 0x001
//block = 6
/obj/item/dnainjector/anticlumsy/New()
/obj/item/dnainjector/anticlumsy/Initialize()
block = CLUMSYBLOCK
..()
@@ -518,7 +523,7 @@
value = 0x001
//block = 7
/obj/item/dnainjector/antitour/New()
/obj/item/dnainjector/antitour/Initialize()
block = TWITCHBLOCK
..()
@@ -529,7 +534,7 @@
value = 0xFFF
//block = 7
/obj/item/dnainjector/tourmut/New()
/obj/item/dnainjector/tourmut/Initialize()
block = TWITCHBLOCK
..()
@@ -540,7 +545,7 @@
value = 0xFFF
//block = 9
/obj/item/dnainjector/stuttmut/New()
/obj/item/dnainjector/stuttmut/Initialize()
block = NERVOUSBLOCK
..()
@@ -552,7 +557,7 @@
value = 0x001
//block = 9
/obj/item/dnainjector/antistutt/New()
/obj/item/dnainjector/antistutt/Initialize()
block = NERVOUSBLOCK
..()
@@ -563,7 +568,7 @@
value = 0xFFF
//block = 11
/obj/item/dnainjector/blindmut/New()
/obj/item/dnainjector/blindmut/Initialize()
block = BLINDBLOCK
..()
@@ -574,7 +579,7 @@
value = 0x001
//block = 11
/obj/item/dnainjector/antiblind/New()
/obj/item/dnainjector/antiblind/Initialize()
block = BLINDBLOCK
..()
@@ -585,7 +590,7 @@
value = 0xFFF
//block = 12
/obj/item/dnainjector/telemut/New()
/obj/item/dnainjector/telemut/Initialize()
block = TELEBLOCK
..()
@@ -596,7 +601,7 @@
value = 0x001
//block = 12
/obj/item/dnainjector/antitele/New()
/obj/item/dnainjector/antitele/Initialize()
block = TELEBLOCK
..()
@@ -607,7 +612,7 @@
value = 0xFFF
//block = 13
/obj/item/dnainjector/deafmut/New()
/obj/item/dnainjector/deafmut/Initialize()
block = DEAFBLOCK
..()
@@ -618,7 +623,7 @@
value = 0x001
//block = 13
/obj/item/dnainjector/antideaf/New()
/obj/item/dnainjector/antideaf/Initialize()
block = DEAFBLOCK
..()
@@ -629,7 +634,7 @@
value = 0xFFF
//block = 2
/obj/item/dnainjector/hallucination/New()
/obj/item/dnainjector/hallucination/Initialize()
block = HALLUCINATIONBLOCK
..()
@@ -640,7 +645,7 @@
value = 0x001
//block = 2
/obj/item/dnainjector/antihallucination/New()
/obj/item/dnainjector/antihallucination/Initialize()
block = HALLUCINATIONBLOCK
..()
@@ -651,7 +656,7 @@
value = 0xFFF
//block = 14
/obj/item/dnainjector/h2m/New()
/obj/item/dnainjector/h2m/Initialize()
block = MONKEYBLOCK
..()
@@ -662,6 +667,6 @@
value = 0x001
//block = 14
/obj/item/dnainjector/m2h/New()
/obj/item/dnainjector/m2h/Initialize()
block = MONKEYBLOCK
..()
+23 -2
View File
@@ -9,12 +9,16 @@
* Rolling Pins
* Candy Moulds
* Sushi Mat
* Circular cutter
*/
/obj/item/kitchen
icon = 'icons/obj/kitchen.dmi'
origin_tech = "materials=1"
/*
* Utensils
*/
@@ -179,6 +183,7 @@
origin_tech = "biotech=3;combat=2"
attack_verb = list("shanked", "shivved")
/*
* Rolling Pins
*/
@@ -251,7 +256,7 @@
desc = "It has the shape of a sucker imprinted into it."
icon_state = "mould_loli"
/*
/*
* Sushi Mat
*/
/obj/item/kitchen/sushimat
@@ -263,4 +268,20 @@
throw_speed = 3
throw_range = 3
w_class = WEIGHT_CLASS_SMALL
attack_verb = list("rolled", "cracked", "battered", "thrashed")
attack_verb = list("rolled", "cracked", "battered", "thrashed")
/// circular cutter by Ume
/obj/item/kitchen/cutter
name = "generic circular cutter"
desc = "A generic circular cutter for cookies and other things."
icon = 'icons/obj/kitchen.dmi'
icon_state = "circular_cutter"
force = 5
throwforce = 5
throw_speed = 3
throw_range = 3
w_class = WEIGHT_CLASS_SMALL
attack_verb = list("bashed", "slashed", "pricked", "thrashed")
+1 -1
View File
@@ -9,7 +9,7 @@
item_state = "lighter-g"
var/icon_on = "lighter-g-on"
var/icon_off = "lighter-g"
w_class = WEIGHT_CLASS_SMALL
w_class = WEIGHT_CLASS_TINY
throwforce = 4
flags = CONDUCT
slot_flags = SLOT_BELT
@@ -460,6 +460,19 @@
return ..()
/obj/item/storage/bag/tray/cookies_tray
var/cookie = /obj/item/reagent_containers/food/snacks/cookie
/obj/item/storage/bag/tray/cookies_tray/New() /// By Azule Utama, thank you a lot!
..()
for(var/i in 1 to 6)
var/obj/item/C = new cookie(src)
handle_item_insertion(C) // Done this way so the tray actually has the cookies visible when spawned
rebuild_overlays()
/obj/item/storage/bag/tray/cookies_tray/sugarcookie
cookie = /obj/item/reagent_containers/food/snacks/sugarcookie
/*
* Chemistry bag
*/
@@ -172,6 +172,10 @@
playsound(L, 'sound/weapons/genhit.ogg', 50, 1)
return
if(iscarbon(L))
var/mob/living/carbon/C = L
C.shock_internal_organs(33)
L.Stun(stunforce)
L.Weaken(stunforce)
L.apply_effect(STUTTER, stunforce)
+20 -1
View File
@@ -140,7 +140,7 @@
return
var/mob/living/carbon/human/H = user
var/choice = input(user, "Something to change?", "Magical Grooming") as null|anything in list("Name", "Body")
var/choice = input(user, "Something to change?", "Magical Grooming") as null|anything in list("Name", "Body", "Voice")
switch(choice)
if("Name")
@@ -172,6 +172,25 @@
AC.whitelist = race_list
ui_users[user] = AC
AC.ui_interact(user)
if("Voice")
var/voice_choice = input(user, "Perhaps...", "Voice effects") as null|anything in list("Comic Sans", "Wingdings", "Swedish", "Chav")
var/voice_mutation
switch(voice_choice)
if("Comic Sans")
voice_mutation = COMICBLOCK
if("Wingdings")
voice_mutation = WINGDINGSBLOCK
if("Swedish")
voice_mutation = SWEDEBLOCK
if("Chav")
voice_mutation = CHAVBLOCK
if(voice_mutation)
if(H.dna.GetSEState(voice_mutation))
H.dna.SetSEState(voice_mutation, FALSE)
genemutcheck(H, voice_mutation, null, MUTCHK_FORCED)
else
H.dna.SetSEState(voice_mutation, TRUE)
genemutcheck(H, voice_mutation, null, MUTCHK_FORCED)
/obj/structure/mirror/magic/attackby(obj/item/I, mob/living/user, params)
return